+commit f6244d2cf231e1dc756f3e941e61b9bf124879bb
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Wed May 8 11:57:49 2013 +0900
+
+ Use the glob matching for filename
+
+ Regex is expensive to compare filenames. we already have the glob
+ matching
+ and it works enough in this case.
+
+ Prior to this change, renaming FcConfigGlobMatch() to FcStrGlobMatch()
+ and moving to fcstr.c
+
+ src/fccfg.c | 46 +---------------------------------------------
+ src/fcint.h | 4 ++++
+ src/fcmatch.c | 6 ++----
+ src/fcstr.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 51 insertions(+), 49 deletions(-)
+
+commit 03216ccf4ca0808f9c7b9513efcaeb7f4058b575
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Wed Apr 10 18:41:22 2013 +0900
+
+ Bug 63329 - make check fails: .. contents:: :depth: 2
+
+ Add back FcHashGetSHA256DigestFromFile() and fall back to it
+ when font isn't SFNT-based font because FT_Load_Sfnt_Table
+ fails with FT_Err_Invalid_Face_Handle.
+
+ src/fcfreetype.c | 32 ++++++++++++++++++++---------
+ src/fchash.c | 62
+ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/fcint.h | 4 ++++
+ 3 files changed, 88 insertions(+), 10 deletions(-)
+
+commit 77419a4dfdf41ed34dd03e74d0e4e6f89dbc65e1
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Wed Apr 10 11:14:39 2013 +0900
+
+ documented FC_HASH and FC_POSTSCRIPT_NAME
+
+ doc/fontconfig-devel.sgml | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit fc5a589abad0e8285f7d95007ebda76536e8fa7d
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Tue Apr 9 17:18:43 2013 +0900
+
+ Revert the previous change and rework to not export freetype API
+ outside fcfreetype.c
+
+ src/fcfreetype.c | 23 ++++++++++++++++++++---
+ src/fchash.c | 47 ++++++++++++-----------------------------------
+ src/fcint.h | 5 ++---
+ 3 files changed, 34 insertions(+), 41 deletions(-)
+
+commit c93a8b8b54afe33e5ecf9870723543cb4058fa94
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Tue Apr 9 12:46:30 2013 +0900
+
+ Obtain fonts data via FT_Face instead of opening a file directly
+
+ src/fcfreetype.c | 2 +-
+ src/fchash.c | 50 +++++++++++++++++++++++++++++++++-----------------
+ src/fcint.h | 4 +++-
+ 3 files changed, 37 insertions(+), 19 deletions(-)
+
+commit 9299155b5247255d6b6687448173056c3ca8d09b
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Tue Apr 9 11:34:35 2013 +0900
+
+ Ensure closing fp on error
+
+ src/fchash.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 18bf57c70aafcad031c0b43756b754dcaf6a756a
+Author: Sebastian Freundt <hroptatyr@fresse.org>
+Date: Sun Apr 7 00:02:58 2013 +0000
+
+ build-chain, replace INCLUDES directive by AM_CPPFLAGS
+
+ As of automake-13.1 the INCLUDES directive is no longer supported.
+ An automake run will return with an error.
+
+ This changeset simply follows automake's advice to replace INCLUDES
+ by AM_CPPFLAGS.
+
+ Tools.mk | 4 ++--
+ fc-cache/Makefile.am | 2 +-
+ fc-cat/Makefile.am | 2 +-
+ fc-list/Makefile.am | 2 +-
+ fc-match/Makefile.am | 2 +-
+ fc-pattern/Makefile.am | 2 +-
+ fc-query/Makefile.am | 2 +-
+ fc-scan/Makefile.am | 2 +-
+ fc-validate/Makefile.am | 2 +-
+ src/Makefile.am | 2 +-
+ 10 files changed, 11 insertions(+), 11 deletions(-)
+
+commit 8fd0ed60a62cb7f36b2ade1bd16a66671eaf79da
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Mon Apr 1 18:16:28 2013 +0900
+
+ Bug 62980 - matching native fonts with even :lang=en
+
+ Fix the matcher modified by 4eab908c8679a797ac7016b77a93ee41bb11b0fc
+ to deal with both strong and weak of FC_LANG as the same location
+ in the score
+
+ src/fcmatch.c | 23 +++++++----------------
+ 1 file changed, 7 insertions(+), 16 deletions(-)
+
+commit 73fa326d1e791b587da93b795f962c3405b7a96d
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Fri Mar 29 16:10:15 2013 +0900
+
+ Bump version to 2.10.92
+
+ README | 65
+ +++++++++++++++++++++++++++++++++++++++++++++++--
+ configure.ac | 2 +-
+ fontconfig/fontconfig.h | 2 +-
+ 3 files changed, 65 insertions(+), 4 deletions(-)
+
+commit c842412c079e781d53f023616d9758223fb68323
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Fri Mar 29 16:07:30 2013 +0900
+
+ Minor fix
+
+ new-version.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit b3b435b87f1aec1b2779fd7edbbff5571c3c61a2
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Fri Mar 29 16:02:34 2013 +0900
+
+ Bump libtool revision
+
+ configure.ac | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 3fc22cfe756fcb2d6c5a64aa305957c417c6cecd
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Fri Mar 29 12:46:04 2013 +0900
+
+ Minor cleanup
+
+ Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit b561ff2016ce84eef3c81f16dfb0481be6a13f9b
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Fri Jan 18 11:30:10 2013 +0900
+
+ Bug 38737 - Wishlist: support FC_POSTSCRIPT_NAME
+
+ Add the PostScript name into the cache and the matcher.
+ Scoring the better font against the PostScript name by
+ the forward-matching.
+
+ fontconfig/fontconfig.h | 1 +
+ src/fcfreetype.c | 49 +++++++++++++++++++++++++++-
+ src/fcint.h | 6 ++++
+ src/fcmatch.c | 21 ++++++++++++
+ src/fcobjs.h | 1 +
+ src/fcstr.c | 85
+ ++++++++++++++++++++++++++++---------------------
+ 6 files changed, 125 insertions(+), 38 deletions(-)
+
+commit c758206e8c0e5b572bd34183b184ef4361745333
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Thu Mar 21 11:58:06 2013 +0900
+
+ Fix a SIGSEGV on FcPatternGet* with NULL pattern
+
+ src/fcpat.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit bdf1581e3de5528f397f19bfd4ca9caaf9e7fe4a
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Mar 8 05:53:27 2013 -0500
+
+ Fix crash with FcConfigSetCurrent(NULL)
+
+ src/fccfg.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit aad4d6f6c68d06415333f5d0d3e4b4870114f11d
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Thu Mar 7 13:19:50 2013 +0900
+
+ Do not copy FC_*LANG_OBJECT even if it's not available on the pattern
+
+ those objects are linked to the corresponding string objects.
+ this may causes inconsistency that those objects has more values
+ than them.
+
+ src/fcmatch.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+commit e96d7760886a3781a46b3271c76af99e15cb0146
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Wed Feb 6 19:35:30 2013 +0900
+
+ Bug 59456 - Adding a --sysroot like option to fc-cache
+
+ Add an ability to set the system root to generate the caches.
+ In order to do this, new APIs, FcConfigGetSysRoot() and
+ FcConfigSetSysRoot() is available.
+
+ doc/fcconfig.fncs | 21 +++++++++++
+ fc-cache/fc-cache.c | 38 +++++++++++++------
+ fontconfig/fontconfig.h | 7 ++++
+ src/fccache.c | 99
+ +++++++++++++++++++++++++++++++++----------------
+ src/fccfg.c | 57 ++++++++++++++++++++++++++++
+ src/fcinit.c | 30 ++++++++++-----
+ src/fcint.h | 15 +++++++-
+ src/fcstr.c | 62 ++++++++++++++++++++++++++++++-
+ 8 files changed, 275 insertions(+), 54 deletions(-)
+
+commit 569657a24ca11aedfd3b588984344d7ab97fe09f
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Tue Mar 5 12:46:01 2013 +0900
+
+ Fix a memory leak
+
+ src/fclang.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit 612ee2a5c91b8929b2cc5abce4af84d8d7e66bd0
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Fri Mar 1 22:21:25 2013 +0900
+
+ Fix broken sort order with FcFontSort()
+
+ which was introduced by 4eab908c8679a797ac7016b77a93ee41bb11b0fc
+
+ src/fcmatch.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+commit ea4ebd59377d3dff3616bd20381f308a92781ae6
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Fri Mar 1 19:38:21 2013 +0900
+
+ Fix a crash when the object is non-builtin object
+
+ src/fcmatch.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit 10230497675fa4fcbb427efe8dd2883839ddaec0
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Fri Mar 1 18:41:27 2013 +0900
+
+ Fix a typo
+
+ conf.d/30-metric-aliases.conf | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit db69bf6ecd0da4d23bdfe38652bb53d2daa655a2
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Fri Mar 1 18:31:01 2013 +0900
+
+ Bug 60783 - Add Liberation Sans Narrow to 30-metric-aliases.conf
+
+ Add Liberation Sans Narrow as an alias for Arial Narrow
+
+ conf.d/30-metric-aliases.conf | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+commit 2c696255749683e9a084f797eb033d222510a275
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Mon Feb 18 13:17:53 2013 +0900
+
+ Bug 60748 - broken conf.d/10-autohint.conf and conf.d/10-unhinted.conf
+
+ Move the target of recipes to the "pattern" from the "font".
+ This is to ensure the targeted objects is updated by them
+ prior to FcDefaultSubstitute() so that it can adds the default
+ values properly.
+
+ conf.d/10-autohint.conf | 2 +-
+ conf.d/10-no-sub-pixel.conf | 2 +-
+ conf.d/10-sub-pixel-bgr.conf | 2 +-
+ conf.d/10-sub-pixel-rgb.conf | 2 +-
+ conf.d/10-sub-pixel-vbgr.conf | 2 +-
+ conf.d/10-sub-pixel-vrgb.conf | 2 +-
+ conf.d/10-unhinted.conf | 2 +-
+ conf.d/11-lcdfilter-default.conf | 2 +-
+ conf.d/11-lcdfilter-legacy.conf | 2 +-
+ conf.d/11-lcdfilter-light.conf | 2 +-
+ 10 files changed, 10 insertions(+), 10 deletions(-)
+
+commit 83f679ce558de736ef1a095a362397da0ac3417f
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Fri Feb 15 09:48:38 2013 -0500
+
+ Accept digits as part of OpenType script tags
+
+ They've been used since 2005.
+
+ src/fcfreetype.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+commit 72b0480a21958f0f8c115d8e0a5bfbd8d358b5c3
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Thu Feb 7 17:56:17 2013 +0900
+
+ Add Culmus foundry to the vendor list
+
+ Maps fonts produced by the Culmus project
+ <http://culmus.sourceforge.net>
+ to the XLFD foundry name culmus.
+
+ For TrueType fonts, maps the vendor code CLM from the TrueType vendor
+ id field.
+
+ For Type1 fonts, which use heuristics to guess mappings to XLFD
+ foundries from
+ words in the copyright notice, add the names of the main contributors
+ to
+ the Culmus product to recognize the fonts under their copyright.
+
+ Patch from Maxim Iorsh
+
+ src/fcfreetype.c | 67
+ +++++++++++++++++++-------------------------------------
+ 1 file changed, 23 insertions(+), 44 deletions(-)
+
+commit 96220a5ed9d1d761b14a7ac516ac6786c132f280
+Author: Quentin Glidic <sardemff7+git@sardemff7.net>
+Date: Sat Feb 2 17:01:07 2013 +0100
+
+ Use LOG_COMPILER and AM_TESTS_ENVIRONMENT
+
+ TESTS_ENVIRONMENT is deprecated and should be reserved to the user to
+ override the test environment
+
+ <ext>_LOG_COMPILER is meant to contain the program that runs the test
+ with <ext> extension
+ LOG_COMPILER is for extensionless tests
+ AM_TESTS_ENVIRONMENT is meant to set the environment for the tests
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=60192
+
+ Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
+
+ Makefile.am | 1 -
+ configure.ac | 2 +-
+ doc/Makefile.am | 5 ++++-
+ test/Makefile.am | 12 +++++++++++-
+ 4 files changed, 16 insertions(+), 4 deletions(-)
+
+commit 62b7d764ce994bb32e7614337fdfa0854445c380
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Wed Feb 6 19:14:51 2013 +0900
+
+ Bump the cache version to 4
+
+ fontconfig/fontconfig.h | 2 +-
+ src/fcint.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 4eab908c8679a797ac7016b77a93ee41bb11b0fc
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Wed Feb 6 19:02:07 2013 +0900
+
+ Update _FcMatchers definition logic
+
+ to make it easier to maintain. also added FC_HASH_OBJECT to be matched
+ in the pattern, prior to FC_FILE_OBJECT.
+
+ src/fcint.h | 2 +-
+ src/fcmatch.c | 184
+ +++++++++++++++++++++++--------------------------
+ src/fcname.c | 2 +-
+ src/fcobjs.h | 90 ++++++++++++------------
+ src/fcobjshash.gperf.h | 2 +-
+ 5 files changed, 134 insertions(+), 146 deletions(-)
+
+commit 52b2b5c99268d5ad28dc0972c5f136720d55f21b
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Tue Feb 5 20:44:18 2013 +0900
+
+ Bug 60312 - DIST_SUBDIRS should never appear in a conditional
+
+ As it is documented like this:
+
+ If SUBDIRS is defined conditionally using Automake conditionals,
+ Automake will define DIST_SUBDIRS automatically from the possible
+ values of SUBDIRS in all conditions.
+
+ So we don't need to re-define DIST_SUBDIRS in Makefile.am unless
+ we use AC_SUBST to define SUBDIRS.
+
+ Patch from Quentin Glidic
+
+ Makefile.am | 3 ---
+ 1 file changed, 3 deletions(-)
+
+commit 95af7447dba7c54ed162b667c0bb2ea6500e8f32
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Mon Feb 4 16:03:29 2013 +0900
+
+ Bug 50733 - Add font-file hash?
+
+ Add "hash" object which contains SHA256 hash value (so far) computed
+ from the font file.
+
+ fontconfig/fontconfig.h | 1 +
+ src/Makefile.am | 1 +
+ src/fcfreetype.c | 9 ++
+ src/fchash.c | 265
+ ++++++++++++++++++++++++++++++++++++++++++++++++
+ src/fcint.h | 7 ++
+ src/fcobjs.h | 1 +
+ 6 files changed, 284 insertions(+)
+
+commit d34643894f2dff7eec35345e8e9b32a9a32fa113
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Tue Feb 5 14:17:16 2013 +0900
+
+ Use AM_MISSING_PROG instead of hardcoding missing
+
+ Makefile.am | 2 +-
+ configure.ac | 1 +
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+commit 241cd53ff62599ecf557c6a4f975fc427dad9700
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Tue Feb 5 11:33:47 2013 +0900
+
+ Revert "test: Use SH_LOG_COMPILER and AM_TESTS_ENVIRONMENT"
+
+ This reverts commit 2146b0307a3476892723104481f27f8484451c52.
+
+ That change introduces incompatibility and seems not working with
+ older releases of automake, including automake 1.12.2.
+
+ test/Makefile.am | 12 +-----------
+ 1 file changed, 1 insertion(+), 11 deletions(-)
+
+commit 2146b0307a3476892723104481f27f8484451c52
+Author: Quentin Glidic <sardemff7+git@sardemff7.net>
+Date: Sat Feb 2 17:01:07 2013 +0100
+
+ test: Use SH_LOG_COMPILER and AM_TESTS_ENVIRONMENT
+
+ TESTS_ENVIRONMENT is deprecated and should be reserved to the user to
+ override the test environment
+
+ <ext>_LOG_COMPILER is meant to contain the program that runs the test
+ with <ext> extension
+ AM_TESTS_ENVIRONMENT is meant to set the environment for the tests
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=60192
+
+ Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
+
+ test/Makefile.am | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+commit da0946721af3ab2dff3cd903065336b93592d067
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Mon Feb 4 17:57:00 2013 +0900
+
+ Use AM_MISSING_PROG instead of hardcoding missing
+
+ configure.ac | 2 ++
+ src/Makefile.am | 2 +-
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+commit 786ead52015573e7b60a53d79abc26d611f1fe93
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Mon Feb 4 17:20:03 2013 +0900
+
+ Modernize configure.ac
+
+ configure.ac | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+commit 20191810d1fea7c2f49b65ffee3e4d5e2bc0bac3
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Tue Jan 29 20:19:36 2013 +0900
+
+ Bug 23757 - Add mode="delete" to <edit>
+
+ Add two edit mode, "delete" and "delete_all".
+ what values are being deleted depends on <test> as documented.
+ if the target object is same to what is tested, matching value there
+ will be deleted. otherwise all of values in the object will be
+ deleted.
+ so this would means both edit mode will not take any expressions.
+
+ e.g.
+
+ Given that the testing is always true here, the following rules:
+
+ <match>
+ <test name="foo" compare="eq">
+ <string>bar</string>
+ </test>
+ <edit name="foo" mode="delete"/>
+ </match>
+
+ will removes "bar" string from "foo" object. and:
+
+ <match>
+ <test name="foo" compare="eq">
+ <string>foo</string>
+ </test>
+ <edit name="bar" mode="delete"/>
+ </match>
+
+ will removes all of values in "bar" object.
+
+ doc/fontconfig-user.sgml | 2 ++
+ fonts.dtd | 2 +-
+ src/fccfg.c | 10 ++++++++++
+ src/fcdbg.c | 6 ++++--
+ src/fcint.h | 1 +
+ src/fcxml.c | 11 +++++++++++
+ 6 files changed, 29 insertions(+), 3 deletions(-)
+
+commit c1d9588890798e389d0f0ba633b704dee1ea8bf5
+Author: Colin Walters <walters@verbum.org>
+Date: Thu Jan 31 21:32:46 2013 -0500
+
+ build: Only use PKG_INSTALLDIR if available
+
+ It's only in pkg-config 0.27 or newer, but 0.25 at least is still
+ fairly widespread.
+
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit e11f15628cff04c4a742f88abee22f440edcce52
+Author: Christoph J. Thompson <cjsthompson@gmail.com>
+Date: Fri Feb 1 02:27:32 2013 +0100
+
+ Use the PKG_INSTALLDIR macro.
+
+ modified: Makefile.am
+ modified: configure.ac
+
+ Makefile.am | 1 -
+ configure.ac | 1 +
+ 2 files changed, 1 insertion(+), 1 deletion(-)
+
+commit d26fb23c41abd87422778bb38eea39f25ba3dc4a
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Fri Jan 25 20:01:24 2013 +0900
+
+ Bug 59385 - Do the right thing for intermixed edit and test elements
+
+ This changes allows to have multiple mathcing rules in one <match>
+ block
+ in the same order.
+ After this changes, the following thing will works as two matching
+ rules:
+
+ <match>
+ <!-- rule 1 -->
+ <test name="family" compare="eq">
+ <string>foo</string>
+ </test>
+ <edit name="foo" mode="append">
+ <string>foo</string>
+ </edit>
+ <!-- rule 2 -->
+ <test name="foo" compare="eq">
+ <string>foo</string>
+ </test>
+ <edit name="foo" mode="append">
+ <string>bar</string>
+ </edit>
+ </match>
+
+ fonts.dtd | 2 +-
+ src/fcxml.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 47 insertions(+), 1 deletion(-)
+
+commit fb3b410998aba8835999e2ca7003a180431cfaf4
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Wed Jan 23 12:37:51 2013 +0900
+
+ remove the unnecessary code
+
+ src/fccompat.c | 6 ------
+ 1 file changed, 6 deletions(-)
+
+commit 5400bb4fb43dc811b813f11d5b0c023db727f543
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Wed Jan 23 12:32:37 2013 +0900
+
+ Add another approach to FC_PRGNAME for Solaris 10 or before
+
+ Patch from Raimund Steger
+
+ configure.ac | 2 +-
+ src/fcdefault.c | 5 ++++-
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+commit 000ca9ccb03013a5b151f0d21148ab0ca4c2f2de
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Tue Jan 22 12:11:56 2013 +0900
+
+ Fix installation on MinGW32
+
+ Patch from LRN
+
+ src/Makefile.am | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+commit 6363193a0575cf6f58baf7f0a772ad8f92b7b904
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Tue Jan 22 12:03:28 2013 +0900
+
+ Fix mkstemp absence for some platform
+
+ Patch from LRN and modified to make more generic.
+
+ src/fccache.c | 57 ----------------------------
+ src/fccompat.c | 116
+ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/fcint.h | 3 ++
+ 3 files changed, 119 insertions(+), 57 deletions(-)
+
+commit 9dbc282796e9a4d5a2a8cc7d1c8e29b9154e91c0
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Tue Jan 22 10:26:41 2013 +0900
+
+ Add missing file descriptor to F_DUPFD_CLOEXEC
+
+ Patch from Matthieu Herrb
+
+ src/fccompat.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 6118781f7f5dba672d19a841cc231661bf5fb59d
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jan 17 19:27:20 2013 -0600
+
+ Fix readlink failure
+
+ As reported by Raimund Steger.
+
+ src/fcdefault.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 671bcb34e23ed03b1f564af35560db81f8b12b96
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Thu Jan 17 12:49:16 2013 +0900
+
+ Better fix for 2fe5ddfd
+
+ Drop realpath() and fix breakage on Win32
+
+ configure.ac | 2 +-
+ src/fcdefault.c | 14 +++++++-------
+ 2 files changed, 8 insertions(+), 8 deletions(-)
+
+commit 2fe5ddfdae6be80db5b7e622ab6c1ab985377542
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jan 16 21:01:28 2013 -0600
+
+ Fix FC_PRGNAME default
+
+ As reported by Raimund Steger.
+
+ src/fcdefault.c | 36 +++++++++++++++++++-----------------
+ 1 file changed, 19 insertions(+), 17 deletions(-)
+
+commit 55d39bcad0737e92e1207fabbd8c65fa9e5e0482
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jan 16 07:30:44 2013 -0600
+
+ Fix fc-cache crash caused by looking up NULL object incorrectly
+
+ We were returning a skiplist node when looking up NULL!
+
+ src/fccache.c | 7 +++++--
+ src/fccfg.c | 4 ++--
+ 2 files changed, 7 insertions(+), 4 deletions(-)
+
+commit 106c4f73119e00a7804ef79ee556f1111d680e32
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jan 16 07:05:07 2013 -0600
+
+ Minor
+
+ src/fcfreetype.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit 1a5d0daea0173e2cc47d76d2022467f0dbd423f0
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed Jan 16 04:52:06 2013 -0600
+
+ Remove unused checks for common functions
+
+ The check results of these were never actually used.
+
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit f9ac4c84c90cbb57afbf1fa3a5c9ff3bfc4f537e
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Wed Jan 16 16:35:28 2013 +0900
+
+ Improve FcGetPrgname() to work on BSD
+
+ configure.ac | 2 +-
+ src/fcdefault.c | 10 ++++++++++
+ 2 files changed, 11 insertions(+), 1 deletion(-)
+
+commit ec5ca08c807585a9230f83c95f7cca6b7065b142
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Tue Jan 15 20:41:26 2013 -0600
+
+ Bug 59379 - FC_PRGNAME
+
+ Can be used for per-application configuration.
+
+ configure.ac | 2 +-
+ doc/fontconfig-devel.sgml | 3 +-
+ doc/fontconfig-user.sgml | 1 +
+ fontconfig/fontconfig.h | 1 +
+ src/fccfg.c | 7 ++++
+ src/fcdefault.c | 85
+ +++++++++++++++++++++++++++++++++++++++++++++--
+ src/fcint.h | 3 ++
+ src/fcobjs.h | 1 +
+ 8 files changed, 99 insertions(+), 4 deletions(-)
+
+commit 3f84695104b169fe25742ba3b91d04467f5debc4
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Tue Sep 4 12:39:48 2012 +0900
+
+ Bug 50497 - RFE: Add OpenType feature tags support
+
+ Add FC_FONT_FEATURES to store the feature tags to be enabled.
+
+ doc/fontconfig-devel.sgml | 2 ++
+ doc/fontconfig-user.sgml | 1 +
+ fontconfig/fontconfig.h | 1 +
+ src/fcobjs.h | 1 +
+ 4 files changed, 5 insertions(+)
+
+commit dffb69ed8c7cf2e707bc692f94b51108b772d9d8
+Author: Akira TAGOH <akira@tagoh.org>
+Date: Tue Jan 15 17:26:27 2013 +0900
+
+ Fix the build fail on MinGW
+
+ Reported at
+ http://lists.freedesktop.org/archives/fontconfig/2013-January/004601.html
+
+ just warn at the runtime instead of the compile time. it somewhat
+ works
+ on even MinGW since FcMakeTempfile() isn't used on Win32 so far.
+
+ src/fccompat.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+commit 8b8f0d21534aa9b82276815c84429ffca8941d2a
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Jan 14 14:39:12 2013 -0600
+
+ Minor
+
+ src/fcmatch.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 8828fffd93c6b19bcfd7626ddc472aa8f055d034
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Mon Jan 14 14:36:38 2013 -0600
+
+ Copy all values from pattern to font if the font doesn't have
+ the element
+
+ Bug 59376 - FcFontRenderPrepare enhancement
+
+ src/fcmatch.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+commit 0831c1770e4bac7269a190936bbb0529d747e233
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jan 10 09:01:52 2013 -0600
+
+ Ensure we find the uninstalled fontconfig header
+
+ Patch from Colin Walters.
+
+ test/Makefile.am | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 1527c395cbe0bbab9e66a42213ef3ac5ce1c0383
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date: Thu Jan 10 09:00:18 2013 -0600
+
+ Resepct $NOCONFIGURE
+
+ Patch from Colin Walters.
+
+ autogen.sh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
commit fcc3567847949ec422157d331c9640cd0453e169
Author: Akira TAGOH <akira@tagoh.org>
-Date: Thu Jan 10 17:57:12 2013 +0900
+Date: Thu Jan 10 17:57:12 2013 +0900
Bump version to 2.10.91
- README | 105
+ README | 105
+++++++++++++++++++++++++++++++++++++++++++++++-
- configure.ac | 2 +-
+ configure.ac | 2 +-
fontconfig/fontconfig.h | 2 +-
3 files changed, 105 insertions(+), 4 deletions(-)
commit 98352247f2ab01046c330485f73fd26eb15a08a4
Author: Akira TAGOH <akira@tagoh.org>
-Date: Thu Jan 10 17:56:51 2013 +0900
+Date: Thu Jan 10 17:56:51 2013 +0900
Update the date in README properly
commit 9066fbe7855674ff51053b78f1d0d179486e22ea
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Jan 10 01:23:07 2013 -0600
+Date: Thu Jan 10 01:23:07 2013 -0600
Make linker happy
commit 98efed3bcafc92b573b193b5b38039aa717617d3
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Jan 10 01:17:02 2013 -0600
+Date: Thu Jan 10 01:17:02 2013 -0600
Add atomic ops for Solaris
Patch from Raimund Steger.
- configure.ac | 22 ++++++++++++++++++++--
+ configure.ac | 22 ++++++++++++++++++++--
src/fcatomic.h | 12 ++++++++++++
2 files changed, 32 insertions(+), 2 deletions(-)
commit 8e8a99ae8a1c2e56c42093bee577d6de66248366
Author: Akira TAGOH <akira@tagoh.org>
-Date: Mon Sep 10 16:09:04 2012 +0900
+Date: Mon Sep 10 16:09:04 2012 +0900
Bug 29312 - RFE: feature to indicate which characters are missing
to satisfy the language support
Add fc-validate to check the language coverage in a font.
- Makefile.am | 2 +-
- configure.ac | 1 +
- doc/fclangset.fncs | 8 ++
+ Makefile.am | 2 +-
+ configure.ac | 1 +
+ doc/fclangset.fncs | 8 ++
fc-validate/Makefile.am | 60 +++++++++++
fc-validate/fc-validate.c | 242
+++++++++++++++++++++++++++++++++++++++++++
fc-validate/fc-validate.sgml | 182 ++++++++++++++++++++++++++++++++
fontconfig/fontconfig.h | 3 +
- src/fcint.h | 3 -
+ src/fcint.h | 3 -
8 files changed, 497 insertions(+), 4 deletions(-)
commit 16fd965171808c10f87d097f678ee9e10771be72
Author: Akira TAGOH <akira@tagoh.org>
-Date: Wed Jan 9 11:26:56 2013 +0900
+Date: Wed Jan 9 11:26:56 2013 +0900
Fix a typo in the manpages template
commit 7680e9ee891a74f0e428e30604a5d0ff0e2e9383
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Jan 8 14:51:00 2013 -0600
+Date: Tue Jan 8 14:51:00 2013 -0600
Add pthread test
Not enabled by default since it requires config and fonts.
- test/Makefile.am | 9 ++++++
+ test/Makefile.am | 9 ++++++
test/test-pthread.c | 79
+++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 88 insertions(+)
commit dc21ed28d69df279c6068d9cae862e02af72815f
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Jan 8 13:01:48 2013 -0600
+Date: Tue Jan 8 13:01:48 2013 -0600
Fix memory corruption!
running to catch:
==4464== Invalid read of size 4
- ==4464== at 0x4E58FF3: FcStrListNext (fcstr.c:1256)
- ==4464== by 0x4E3F11D: FcConfigSubstituteWithPat (fccfg.c:1508)
- ==4464== by 0x4E3F8F4: FcConfigSubstitute (fccfg.c:1729)
- ==4464== by 0x4009FA: test_match (simple-pthread-test.c:53)
- ==4464== by 0x400A6E: run_test_in_thread (simple-pthread-test.c:68)
- ==4464== by 0x507EE99: start_thread (pthread_create.c:308)
+ ==4464== at 0x4E58FF3: FcStrListNext (fcstr.c:1256)
+ ==4464== by 0x4E3F11D: FcConfigSubstituteWithPat (fccfg.c:1508)
+ ==4464== by 0x4E3F8F4: FcConfigSubstitute (fccfg.c:1729)
+ ==4464== by 0x4009FA: test_match (simple-pthread-test.c:53)
+ ==4464== by 0x400A6E: run_test_in_thread (simple-pthread-test.c:68)
+ ==4464== by 0x507EE99: start_thread (pthread_create.c:308)
==4464== Address 0x6bc0b44 is 4 bytes inside a block of size
24 free'd
- ==4464== at 0x4C2A82E: free (in
+ ==4464== at 0x4C2A82E: free (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
- ==4464== by 0x4E58F84: FcStrSetDestroy (fcstr.c:1236)
- ==4464== by 0x4E3F0C6: FcConfigSubstituteWithPat (fccfg.c:1507)
- ==4464== by 0x4E3F8F4: FcConfigSubstitute (fccfg.c:1729)
- ==4464== by 0x4009FA: test_match (simple-pthread-test.c:53)
- ==4464== by 0x400A6E: run_test_in_thread (simple-pthread-test.c:68)
- ==4464== by 0x507EE99: start_thread (pthread_create.c:308)
+ ==4464== by 0x4E58F84: FcStrSetDestroy (fcstr.c:1236)
+ ==4464== by 0x4E3F0C6: FcConfigSubstituteWithPat (fccfg.c:1507)
+ ==4464== by 0x4E3F8F4: FcConfigSubstitute (fccfg.c:1729)
+ ==4464== by 0x4009FA: test_match (simple-pthread-test.c:53)
+ ==4464== by 0x400A6E: run_test_in_thread (simple-pthread-test.c:68)
+ ==4464== by 0x507EE99: start_thread (pthread_create.c:308)
Thread test is running happily now. Will add the test in a moment.
commit 4e6c7d0827c5b3b20205521bf9bd2e94e704b36d
Author: Akira TAGOH <akira@tagoh.org>
-Date: Tue Jan 8 16:20:28 2013 +0900
+Date: Tue Jan 8 16:20:28 2013 +0900
Fix a build fail on mingw
Regarding the change of 596931c8b4a7a35cbff9c33437d3cd44395d9c3f
- configure.ac | 2 +-
+ configure.ac | 2 +-
src/fccompat.c | 4 ++++
2 files changed, 5 insertions(+), 1 deletion(-)
commit d837a7a584bc1e908bc4370d337cd10ecc781fad
Author: Akira TAGOH <akira@tagoh.org>
-Date: Tue Jan 8 16:18:32 2013 +0900
+Date: Tue Jan 8 16:18:32 2013 +0900
missing header file to declare _mkdir
commit 596931c8b4a7a35cbff9c33437d3cd44395d9c3f
Author: Akira TAGOH <akira@tagoh.org>
-Date: Thu Dec 6 20:01:52 2012 +0900
+Date: Thu Dec 6 20:01:52 2012 +0900
Bug 47705 - Using O_CLOEXEC
- configure.ac | 4 ++-
+ configure.ac | 4 ++-
src/Makefile.am | 1 +
src/fcatomic.c | 3 +-
- src/fccache.c | 6 ++--
+ src/fccache.c | 6 ++--
src/fccompat.c | 103
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- src/fcint.h | 7 ++++
- src/fcstat.c | 2 +-
- src/fcxml.c | 2 +-
+ src/fcint.h | 7 ++++
+ src/fcstat.c | 2 +-
+ src/fcxml.c | 2 +-
8 files changed, 120 insertions(+), 8 deletions(-)
commit d7de1b5c6d4b8800825913ac40a9cea00824f2f8
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Jan 7 20:10:14 2013 -0600
+Date: Mon Jan 7 20:10:14 2013 -0600
Fix pthreads setup
commit 1c4c4978adb0fa59767ac7d8c7f98a86928b2fdc
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Jan 7 17:59:17 2013 -0600
+Date: Mon Jan 7 17:59:17 2013 -0600
Oops, add the actual file
commit dc11dd581f228623f0f14b3a6a1e4beaa659266b
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Jan 7 16:41:29 2013 -0600
+Date: Mon Jan 7 16:41:29 2013 -0600
Add 10-scale-bitmap-fonts.conf and enable by default
commit ea3a35306617eec068ed961439cf76cdbcb10c28
Author: Akira TAGOH <akira@tagoh.org>
-Date: Mon Jan 7 17:55:04 2013 +0900
+Date: Mon Jan 7 17:55:04 2013 +0900
Clean up the unused variable
commit 17eda89ed2e24a3fc5f68538dd7fd9ada8efb087
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Jan 3 20:33:34 2013 -0600
+Date: Thu Jan 3 20:33:34 2013 -0600
Remove FcInit() calls from tools
doesn't,
it's a bug.
- fc-list/fc-list.c | 5 -----
- fc-match/fc-match.c | 5 -----
+ fc-list/fc-list.c | 5 -----
+ fc-match/fc-match.c | 5 -----
fc-pattern/fc-pattern.c | 5 -----
- fc-query/fc-query.c | 6 ------
- fc-scan/fc-scan.c | 6 ------
+ fc-query/fc-query.c | 6 ------
+ fc-scan/fc-scan.c | 6 ------
5 files changed, 27 deletions(-)
commit 102a4344dd7f668cf03b9665c718505050e0ae78
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Jan 3 20:31:22 2013 -0600
+Date: Thu Jan 3 20:31:22 2013 -0600
Don't use blanks for fc-query
commit b6b678e71eb0ba2b53335b7df0804058f6bd006d
Author: Akira TAGOH <akira@tagoh.org>
-Date: Fri Jan 4 11:29:50 2013 +0900
+Date: Fri Jan 4 11:29:50 2013 +0900
Missing header file for _mkdir declaration
commit 8e143b4ec447a7ee6c501e7488a3c94db7e6a035
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Jan 3 04:19:12 2013 -0600
+Date: Thu Jan 3 04:19:12 2013 -0600
Minor
commit 16ddb9ff31a7d45ae477f5274c704523b2ec7330
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Jan 2 22:37:33 2013 -0600
+Date: Wed Jan 2 22:37:33 2013 -0600
Ugh, add Tools.mk
commit 86e3255118e943bcc5c16cf1628ca381470ca34d
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Jan 2 20:16:55 2013 -0600
+Date: Wed Jan 2 20:16:55 2013 -0600
Second try to make Sun CPP happy
commit bc62c40597c3d95edfdc6a93b39d0bb3837d1d34
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Jan 2 20:08:40 2013 -0600
+Date: Wed Jan 2 20:08:40 2013 -0600
Really fix cross-compiling and building of tools this time
- configure.ac | 1 +
- fc-case/Makefile.am | 47 +++++----------------------
+ configure.ac | 1 +
+ fc-case/Makefile.am | 47 +++++----------------------
fc-glyphname/Makefile.am | 47 +++++----------------------
- fc-glyphname/fc-glyphname.c | 2 +-
- fc-lang/Makefile.am | 44 +++++---------------------
- fc-lang/fc-lang.c | 8 ++---
- m4/ax_cc_for_build.m4 | 77
+ fc-glyphname/fc-glyphname.c | 2 +-
+ fc-lang/Makefile.am | 44 +++++---------------------
+ fc-lang/fc-lang.c | 8 ++---
+ m4/ax_cc_for_build.m4 | 77
+++++++++++++++++++++++++++++++++++++++++++++
7 files changed, 107 insertions(+), 119 deletions(-)
commit 32c1d32cbd54686804481fedaa1881d4f3043f1b
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Jan 2 19:04:17 2013 -0600
+Date: Wed Jan 2 19:04:17 2013 -0600
Work around Sun CPP
[...]
fcobjshash.gperf: fcobjshash.gperf.h fcobjs.h
- $(AM_V_GEN) $(CPP) -I$(top_srcdir) $< | \
- $(SED) 's/^\s*//;s/\s*,\s*/,/;' | \
- $(GREP) '^[^#]' | \
- $(AWK) '/CUT_OUT_BEGIN/,/CUT_OUT_END/ { next; }; { print; };' \
- > $@.tmp && \
- mv -f $@.tmp $@
+ $(AM_V_GEN) $(CPP) -I$(top_srcdir) $< | \
+ $(SED) 's/^\s*//;s/\s*,\s*/,/;' | \
+ $(GREP) '^[^#]' | \
+ $(AWK) '/CUT_OUT_BEGIN/,/CUT_OUT_END/ { next; }; { print; };' \
+ > $@.tmp && \
+ mv -f $@.tmp $@
[...]
though I'm not sure what kind of guarantee CPP can give us/what
commit b1510145e7a38802bd544de6035fabf9f81f9710
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Jan 2 18:57:47 2013 -0600
+Date: Wed Jan 2 18:57:47 2013 -0600
Fix build around true/false
src/fcatomic.h | 4 ++--
- src/fcinit.c | 10 ++++++++++
+ src/fcinit.c | 10 ++++++++++
2 files changed, 12 insertions(+), 2 deletions(-)
commit 538f1579e86fdcf471cea58945bf8c674d5b91e7
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Jan 2 18:07:13 2013 -0600
+Date: Wed Jan 2 18:07:13 2013 -0600
Trying to fix distcheck
At least, if docbook is present, distcheck passes now.
- Makefile.am | 11 +++++++++--
- configure.ac | 4 ----
+ Makefile.am | 11 +++++++++--
+ configure.ac | 4 ----
doc/Makefile.am | 8 ++++++++
3 files changed, 17 insertions(+), 6 deletions(-)
commit 46ab96b8fa029fbc8ccf69a6f2fda89866e3ac9c
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Jan 2 17:52:00 2013 -0600
+Date: Wed Jan 2 17:52:00 2013 -0600
Fix more warnings.
Linux build and mingw32 cross build warning-free now.
- src/fcobjs.c | 10 ++++++++--
+ src/fcobjs.c | 10 ++++++++--
src/fcobjshash.gperf.h | 2 +-
2 files changed, 9 insertions(+), 3 deletions(-)
commit 558b3c65f91b4b2dd65ce2242e1a21ace621e44b
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Jan 2 17:49:41 2013 -0600
+Date: Wed Jan 2 17:49:41 2013 -0600
Use CC_FOR_BUILD to generate source files
One caveat: the fix is not fully correct since config.h is being
included in the files built with CC_FOR_BUILD, but config.h has config
- for the host system, not the build system. Should be fine though.
+ for the host system, not the build system. Should be fine though.
- configure.ac | 1 +
- doc/Makefile.am | 6 +-----
- fc-case/Makefile.am | 8 +-------
+ configure.ac | 1 +
+ doc/Makefile.am | 6 +-----
+ fc-case/Makefile.am | 8 +-------
fc-glyphname/Makefile.am | 9 ++++-----
- fc-lang/Makefile.am | 9 +++------
+ fc-lang/Makefile.am | 9 +++------
5 files changed, 10 insertions(+), 23 deletions(-)
commit ec8a40d2381014ad2e72b5da0e6357a85f078f9f
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Jan 2 17:35:56 2013 -0600
+Date: Wed Jan 2 17:35:56 2013 -0600
Fix build and warnings on win32
src/Makefile.am | 1 +
src/fcatomic.h | 9 +++------
- src/fccache.c | 2 +-
- src/fccfg.c | 17 ++++++-----------
- src/fcint.h | 7 +------
- src/fcmutex.h | 5 ++---
- src/fcstat.c | 3 ---
- src/fcstr.c | 3 ---
+ src/fccache.c | 2 +-
+ src/fccfg.c | 17 ++++++-----------
+ src/fcint.h | 7 +------
+ src/fcmutex.h | 5 ++---
+ src/fcstat.c | 3 ---
+ src/fcstr.c | 3 ---
src/fcwindows.h | 44 ++++++++++++++++++++++++++++++++++++++++++++
- src/fcxml.c | 18 +++++++++---------
+ src/fcxml.c | 18 +++++++++---------
10 files changed, 67 insertions(+), 42 deletions(-)
commit 5c0a4f2726fd1440bf3ec4bb375e5e4d146bd989
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Jan 2 02:27:57 2013 -0600
+Date: Wed Jan 2 02:27:57 2013 -0600
Minor
commit 766bed901f7f4c648387fb403ef6e253be1c45e9
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Jan 2 02:19:04 2013 -0600
+Date: Wed Jan 2 02:19:04 2013 -0600
Fix compiler warnings
commit 93fb1d4bab5fefb73393141bb3e96c9dc279e615
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Jan 2 02:06:15 2013 -0600
+Date: Wed Jan 2 02:06:15 2013 -0600
Remove FcSharedStr*
- src/fccfg.c | 2 +-
+ src/fccfg.c | 2 +-
src/fcdefault.c | 6 +++---
- src/fcint.h | 9 +++------
- src/fclist.c | 6 +++---
- src/fcname.c | 2 +-
- src/fcobjs.c | 2 +-
- src/fcpat.c | 25 +++----------------------
- src/fcstr.c | 11 +----------
- src/fcxml.c | 10 +++++-----
+ src/fcint.h | 9 +++------
+ src/fclist.c | 6 +++---
+ src/fcname.c | 2 +-
+ src/fcobjs.c | 2 +-
+ src/fcpat.c | 25 +++----------------------
+ src/fcstr.c | 11 +----------
+ src/fcxml.c | 10 +++++-----
9 files changed, 21 insertions(+), 52 deletions(-)
commit 6b143781073cf395fd6211c75bbdc9f5b5a54936
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Jan 2 01:54:38 2013 -0600
+Date: Wed Jan 2 01:54:38 2013 -0600
Fixup fcobjs.c
commit 6047ce7b9fb793da4e693e3777bbd3e1baf3146e
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Jan 2 01:31:34 2013 -0600
+Date: Wed Jan 2 01:31:34 2013 -0600
Warn about undefined/invalid attributes during config parsing
commit b604f10c0c31a56ae16154dfe6a2f13b795aaabf
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Jan 2 01:09:20 2013 -0600
+Date: Wed Jan 2 01:09:20 2013 -0600
Make fcobjs.c thread-safe
commit 2ae07bbcd2a7650f2711b45e78e65e2ca1c4a17a
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Oct 15 19:35:03 2012 -0500
+Date: Mon Oct 15 19:35:03 2012 -0500
Make FcDirCacheDispose() threadsafe
commit 68b8ae9af8b0f86dade6135b01aaf0b2f2077fb5
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Wed Oct 10 15:24:31 2012 -0400
+Date: Wed Oct 10 15:24:31 2012 -0400
Make cache hash threadsafe
commit adb03b730de5d090855f45bc23b934a65ef2399c
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Oct 8 20:03:35 2012 -0400
+Date: Mon Oct 8 20:03:35 2012 -0400
Make random-state initialization threadsafe
commit 91dd7d28ffc397fb1389f76ac55b397e55da809d
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Oct 8 20:02:05 2012 -0400
+Date: Mon Oct 8 20:02:05 2012 -0400
Add a big cache lock
commit 8d2bbb193ae49ea6abd5a9b4d28d3d88ac97d7a2
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Oct 7 21:03:58 2012 -0400
+Date: Sun Oct 7 21:03:58 2012 -0400
Make cache refcounting threadsafe
src/fcatomic.h | 1 +
- src/fccache.c | 13 ++++++-------
+ src/fccache.c | 13 ++++++-------
2 files changed, 7 insertions(+), 7 deletions(-)
commit 31ee38e541180db6d7bc58d5abde83136352e7ce
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Oct 7 17:46:12 2012 -0400
+Date: Sun Oct 7 17:46:12 2012 -0400
Minor
commit b8f238e49d7b7e1cff787c518cd4490b32039cca
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Oct 7 17:42:18 2012 -0400
+Date: Sun Oct 7 17:42:18 2012 -0400
Make FcCacheIsMmapSafe() threadsafe
commit b27a22aae9902d409c21e5bb19a97dcc5966ea24
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Oct 7 17:29:45 2012 -0400
+Date: Sun Oct 7 17:29:45 2012 -0400
Minor
commit 0552f26016865b8a76819cf342fa0cf13afdc5e8
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Oct 7 17:02:50 2012 -0400
+Date: Sun Oct 7 17:02:50 2012 -0400
Make default-FcConfig threadsafe
- src/fccfg.c | 60
+ src/fccfg.c | 60
+++++++++++++++++++++++++++++++++++++--------------------
src/fcdefault.c | 3 +--
2 files changed, 40 insertions(+), 23 deletions(-)
commit e53f5da54f066f73a53eba1f82f54521fa3f7ea2
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Oct 7 16:42:36 2012 -0400
+Date: Sun Oct 7 16:42:36 2012 -0400
Minor
commit 7ae24b4554a8543d8cd41a83b6114e0143982758
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Oct 7 16:37:03 2012 -0400
+Date: Sun Oct 7 16:37:03 2012 -0400
Refactor; contain default config in fccfg.c
commit 32b0d88923524c24f4be36733ebef5872b57b95a
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Oct 7 16:26:53 2012 -0400
+Date: Sun Oct 7 16:26:53 2012 -0400
Make FcDefaultFini() threadsafe
commit 7019896c99872b23d89b1404b02754cbc4ea1456
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Oct 7 16:09:35 2012 -0400
+Date: Sun Oct 7 16:09:35 2012 -0400
Make FcInitDebug() idempotent
commit b97ab0c94938448dc2b780b8f0f60fb68884899f
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Oct 7 15:52:25 2012 -0400
+Date: Sun Oct 7 15:52:25 2012 -0400
Make FcGetDefaultLang and FcGetDefaultLangs thread-safe
src/fcdefault.c | 83
+++++++++++++++++++++++++++++++++++++++++----------------
- src/fcinit.c | 1 +
- src/fcint.h | 3 +++
- src/fcstr.c | 4 +++
+ src/fcinit.c | 1 +
+ src/fcint.h | 3 +++
+ src/fcstr.c | 4 +++
4 files changed, 68 insertions(+), 23 deletions(-)
commit 64af9e1917114c789ad74dd28b3248f8c0525f45
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Oct 7 14:41:38 2012 -0400
+Date: Sun Oct 7 14:41:38 2012 -0400
Make refcounts, patterns, charsets, strings, and FcLang thread-safe
src/fcatomic.h | 18 +++++++++---------
- src/fccfg.c | 29 +++++++++++++++--------------
+ src/fccfg.c | 29 +++++++++++++++--------------
src/fccharset.c | 24 ++++++++++++------------
src/fcdefault.c | 2 +-
- src/fcint.h | 26 ++++++++++++++++++++------
- src/fclang.c | 43 ++++++++++++++++++++++++-------------------
- src/fcmatch.c | 4 ----
- src/fcmutex.h | 2 ++
- src/fcpat.c | 25 ++++++++++++-------------
- src/fcstr.c | 24 +++++++++++++-----------
+ src/fcint.h | 26 ++++++++++++++++++++------
+ src/fclang.c | 43 ++++++++++++++++++++++++-------------------
+ src/fcmatch.c | 4 ----
+ src/fcmutex.h | 2 ++
+ src/fcpat.c | 25 ++++++++++++-------------
+ src/fcstr.c | 24 +++++++++++++-----------
10 files changed, 108 insertions(+), 89 deletions(-)
commit 814871b2aaa3a22ef711ca4656507fb69c952156
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Oct 7 14:24:28 2012 -0400
+Date: Sun Oct 7 14:24:28 2012 -0400
Add thread-safety primitives
- COPYING | 1 +
+ COPYING | 1 +
src/Makefile.am | 2 +
src/fcatomic.h | 123
++++++++++++++++++++++++++++++++++++++++++++++++++++++
- src/fcint.h | 4 +-
- src/fcmutex.h | 126
+ src/fcint.h | 4 +-
+ src/fcmutex.h | 126
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 254 insertions(+), 2 deletions(-)
commit f6d8306e566dd1a4b8a13f433d2bc1ffbe667db7
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sun Oct 7 13:49:45 2012 -0400
+Date: Sun Oct 7 13:49:45 2012 -0400
Add build stuff for threadsafety primitives
Copied over from HarfBuzz.
- configure.ac | 38 ++++++-
+ configure.ac | 38 ++++++-
m4/ax_pthread.m4 | 309
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 346 insertions(+), 1 deletion(-)
commit b53744383dbefb3f80fb8a7365487669a499ad76
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sat Oct 6 18:15:58 2012 -0400
+Date: Sat Oct 6 18:15:58 2012 -0400
Fix build stuff
commit db6d86a6c1b5bb15511e4e4015af889d4206be1d
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sat Oct 6 18:12:19 2012 -0400
+Date: Sat Oct 6 18:12:19 2012 -0400
Remove shared-str pool
- We used to have a shared-str pool. Removed to make thread-safety
+ We used to have a shared-str pool. Removed to make thread-safety
work easier. My measurements show that the extra overhead is not
significant by any means.
commit ed41b237658ba290d86795904701ace09b46f6c4
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Sat Oct 6 17:52:39 2012 -0400
+Date: Sat Oct 6 17:52:39 2012 -0400
Switch .gitignore to git.mk
- .gitignore | 100 ---------------------
- Makefile.am | 2 +
- conf.d/Makefile.am | 2 +
- doc/Makefile.am | 2 +
- fc-cache/Makefile.am | 2 +
- fc-case/Makefile.am | 2 +
- fc-cat/Makefile.am | 2 +
+ .gitignore | 100 ---------------------
+ Makefile.am | 2 +
+ conf.d/Makefile.am | 2 +
+ doc/Makefile.am | 2 +
+ fc-cache/Makefile.am | 2 +
+ fc-case/Makefile.am | 2 +
+ fc-cat/Makefile.am | 2 +
fc-glyphname/Makefile.am | 2 +
- fc-lang/Makefile.am | 2 +
- fc-list/Makefile.am | 2 +
- fc-match/Makefile.am | 2 +
+ fc-lang/Makefile.am | 2 +
+ fc-list/Makefile.am | 2 +
+ fc-match/Makefile.am | 2 +
fc-pattern/Makefile.am | 2 +
- fc-query/Makefile.am | 2 +
- fc-scan/Makefile.am | 2 +
+ fc-query/Makefile.am | 2 +
+ fc-scan/Makefile.am | 2 +
fontconfig/Makefile.am | 2 +
- git.mk | 227
+ git.mk | 227
+++++++++++++++++++++++++++++++++++++++++++++++
- src/Makefile.am | 2 +
- test/Makefile.am | 2 +
+ src/Makefile.am | 2 +
+ test/Makefile.am | 2 +
18 files changed, 259 insertions(+), 100 deletions(-)
commit d58c31e6dcfd8c5e6fe3ead4a69216b059558223
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Sep 20 14:42:31 2012 -0400
+Date: Thu Sep 20 14:42:31 2012 -0400
Use a static perfect hash table for object-name lookup
A bit clumsy, but I think I got it right.
- src/Makefile.am | 26 +++-
- src/fcinit.c | 1 -
- src/fcint.h | 79 ++++---------
- src/fcname.c | 315
+ src/Makefile.am | 26 +++-
+ src/fcinit.c | 1 -
+ src/fcint.h | 79 ++++---------
+ src/fcname.c | 315
+++++++------------------------------------------
- src/fcobjs.c | 130 ++++++++++++++++++++
- src/fcobjs.h | 44 +++++++
+ src/fcobjs.c | 130 ++++++++++++++++++++
+ src/fcobjs.h | 44 +++++++
src/fcobjshash.gperf.h | 26 ++++
7 files changed, 291 insertions(+), 330 deletions(-)
commit 7c0f79c5fe9db50b55112a1048a8f1c6a80e96fa
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Thu Sep 20 14:01:47 2012 -0400
+Date: Thu Sep 20 14:01:47 2012 -0400
Deprecate FcName(Un)RegisterObjectTypes / FcName(Un)RegisterConstants
One inch closer to thread-safety since we can fix the object-type hash
table at compile time.
- doc/fcconstant.fncs | 8 +---
- doc/fcobjecttype.fncs | 6 +--
+ doc/fcconstant.fncs | 8 +---
+ doc/fcobjecttype.fncs | 6 +--
fontconfig/fontconfig.h | 10 +++--
- src/fcname.c | 100
+ src/fcname.c | 100
++++++------------------------------------------
4 files changed, 23 insertions(+), 101 deletions(-)
commit 1e2c0d70527c39f761c5770d93a5c1f8e87522bc
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Jan 1 20:28:08 2013 -0600
+Date: Tue Jan 1 20:28:08 2013 -0600
Whitespace
commit a498f2f717a73c3fff9784dd92173583fb37a596
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Jan 1 20:27:54 2013 -0600
+Date: Tue Jan 1 20:27:54 2013 -0600
Minor
commit 8198127b2525084bfe2378b83c185fa0da7f583b
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Jan 1 20:20:31 2013 -0600
+Date: Tue Jan 1 20:20:31 2013 -0600
Don't crash in FcPatternFormat() with NULL pattern
commit c9581b47c4409612e8f2d4f67a402c566ba8330e
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Jan 1 20:20:12 2013 -0600
+Date: Tue Jan 1 20:20:12 2013 -0600
Don't crash in FcPatternDestroy with NULL pattern
commit e7d3e2163280ffb970b60c6ed18e26325d0241e4
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Jan 1 20:10:18 2013 -0600
+Date: Tue Jan 1 20:10:18 2013 -0600
Add NULL check
commit 5bb5da4c4a34ca7c0a7c513e38829f69654f9962
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Jan 1 20:09:08 2013 -0600
+Date: Tue Jan 1 20:09:08 2013 -0600
Refuse to set value to unsupported types during config too
commit 3878a125410d1dd461aee1e40f9ac00d68be71f2
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Tue Jan 1 19:52:14 2013 -0600
+Date: Tue Jan 1 19:52:14 2013 -0600
Make FC_DBG_OBJTYPES debug messages into warnings
And remove FC_DBG_OBJTYPES since it has no use now.
src/fcdbg.c | 30 +++++++++++++++++++-----------
- src/fcint.h | 5 ++++-
+ src/fcint.h | 5 ++++-
src/fcpat.c | 21 +++++++++------------
3 files changed, 32 insertions(+), 24 deletions(-)
commit 209750a4e0a3e1d7b8c5c971e9e2cbd5770d959f
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Dec 31 20:11:12 2012 -0600
+Date: Mon Dec 31 20:11:12 2012 -0600
Warn if <name target="font"> appears in <match target="pattern">
commit 424cfa1684f8af8bb6ecb01dc83bfc3d0a14f20a
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Dec 31 20:00:17 2012 -0600
+Date: Mon Dec 31 20:00:17 2012 -0600
Adjust docs for recent changes
commit 31ce352bb350a10c6ae08f1415d348458b64bf61
Author: Behdad Esfahbod <behdad@behdad.org>
-Date: Mon Dec 31 19:55:37 2012 -0600
+Date: Mon Dec 31 19:55:37 2012 -0600
Initialize matrix during name parsing
Keep m4 directory in git.
- 0 files changed
+ m4/.gitkeep | 0
+ 1 file changed, 0 insertions(+), 0 deletions(-)
commit 038aa930ae2c3b7972eefe334917e7222fe478ec
Author: Akira TAGOH <akira@tagoh.org>
AUTHORS | 1 +
COPYING | 22 +
+ ChangeLog | 0
INSTALL | 3 +
Imakefile | 25 +
+ NEWS | 0
README | 2 +
acconfig.h | 2 +
configure.in | 202 +++++++
src/fcstr.c | 188 ++++++
src/fcxml.c | 1032 ++++++++++++++++++++++++++++++++
src/fontconfig.man | 1113 ++++++++++++++++++++++++++++++++++
- 44 files changed, 11349 insertions(+)
+ 46 files changed, 11349 insertions(+)
# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
-SUBDIRS=fontconfig fc-case fc-lang fc-glyphname src \
+SUBDIRS=fontconfig fc-blanks fc-case fc-lang fc-glyphname src \
fc-cache fc-cat fc-list fc-match fc-pattern fc-query fc-scan \
fc-validate conf.d test
if ENABLE_DOCS
SUBDIRS += doc
-DIST_SUBDIRS = $(SUBDIRS)
-else
-DIST_SUBDIRS = $(SUBDIRS) doc
endif
-AUTOMAKE_OPTIONS = dist-bzip2
ACLOCAL_AMFLAGS = -I m4
EXTRA_DIST = \
$(srcdir)/ltmain.sh \
$(srcdir)/missing \
$(srcdir)/mkinstalldirs \
+ $(srcdir)/test-driver \
`find "$(srcdir)" -type f -name Makefile.in -print`
-pkgconfigdir=$(libdir)/pkgconfig
pkgconfig_DATA = fontconfig.pc
baseconfigdir = $(BASECONFIGDIR)
ChangeLog: $(srcdir)/ChangeLog
$(srcdir)/ChangeLog:
if test -d "$(srcdir)/.git"; then \
- (GIT_DIR=$(top_srcdir)/.git ./missing --run git log --stat) | fmt --split-only > $@.tmp \
+ (GIT_DIR=$(top_srcdir)/.git $(GIT) log --stat) | fmt --split-only > $@.tmp \
&& mv -f $@.tmp $@ \
|| ($(RM) $@.tmp; \
echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \
.PHONY: ChangeLog
+FC_CONFIGDIR = $(subst $(BASECONFIGDIR)/,,$(CONFIGDIR))
+
fonts.conf: fonts.conf.in Makefile
sed \
-e 's,@FC_CACHEDIR\@,$(FC_CACHEDIR),g' \
-e 's,@FC_DEFAULT_FONTS\@,$(FC_DEFAULT_FONTS),g' \
-e 's,@FC_FONTPATH\@,$(FC_FONTPATH),g' \
- -e 's,@CONFIGDIR\@,$(CONFIGDIR),g' \
+ -e 's,@CONFIGDIR\@,$(FC_CONFIGDIR),g' \
-e 's,@PACKAGE\@,$(PACKAGE),g' \
-e 's,@VERSION\@,$(VERSION),g' \
$(srcdir)/$@.in > $@.tmp && \
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# PERFORMANCE OF THIS SOFTWARE.
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
- test $$am__dry = yes; \
- }
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
host_triplet = @host@
@ENABLE_DOCS_TRUE@am__append_1 = doc
subdir = .
-DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in $(srcdir)/config.h.in \
- $(srcdir)/fontconfig-zip.in $(srcdir)/fontconfig.pc.in \
- $(srcdir)/fontconfig.spec.in $(top_srcdir)/configure AUTHORS \
- COPYING ChangeLog INSTALL NEWS config.guess config.sub depcomp \
- install-sh ltmain.sh missing
+DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \
+ $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+ $(top_srcdir)/configure $(am__configure_deps) \
+ $(srcdir)/config.h.in $(srcdir)/fontconfig.spec.in \
+ $(srcdir)/fontconfig.pc.in $(srcdir)/fontconfig-zip.in COPYING \
+ compile config.guess config.sub depcomp install-sh missing \
+ ltmain.sh
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_for_build.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \
+ $(top_srcdir)/m4/ax_cc_for_build.m4 \
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
$(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
am__v_at_1 =
SOURCES =
DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
- html-recursive info-recursive install-data-recursive \
- install-dvi-recursive install-exec-recursive \
- install-html-recursive install-info-recursive \
- install-pdf-recursive install-ps-recursive install-recursive \
- installcheck-recursive installdirs-recursive pdf-recursive \
- ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+ ctags-recursive dvi-recursive html-recursive info-recursive \
+ install-data-recursive install-dvi-recursive \
+ install-exec-recursive install-html-recursive \
+ install-info-recursive install-pdf-recursive \
+ install-ps-recursive install-recursive installcheck-recursive \
+ installdirs-recursive pdf-recursive ps-recursive \
+ tags-recursive uninstall-recursive
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
DATA = $(pkgconfig_DATA) $(xml_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
- $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+ $(RECURSIVE_TARGETS) \
+ $(RECURSIVE_CLEAN_TARGETS) \
+ $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
cscope distdir dist dist-all distcheck
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
+ $(LISP)config.h.in
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
CSCOPE = cscope
+DIST_SUBDIRS = fontconfig fc-blanks fc-case fc-lang fc-glyphname src \
+ fc-cache fc-cat fc-list fc-match fc-pattern fc-query fc-scan \
+ fc-validate conf.d test doc
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
FGREP = @FGREP@
FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
FREETYPE_LIBS = @FREETYPE_LIBS@
+GIT = @GIT@
+GPERF = @GPERF@
GREP = @GREP@
HASDOCBOOK = @HASDOCBOOK@
HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
+PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PTHREAD_CC = @PTHREAD_CC@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
PTHREAD_LIBS = @PTHREAD_LIBS@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RM = @RM@
SED = @SED@
am__tar = @am__tar@
am__untar = @am__untar@
ax_pthread_config = @ax_pthread_config@
-baseconfigdir = $(BASECONFIGDIR)
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
-configdir = $(CONFIGDIR)
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
ms_librarian = @ms_librarian@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgconfigdir = @pkgconfigdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-templatedir = @templatedir@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-xmldir = $(XMLDIR)
-SUBDIRS = fontconfig fc-case fc-lang fc-glyphname src fc-cache fc-cat \
- fc-list fc-match fc-pattern fc-query fc-scan fc-validate \
- conf.d test $(am__append_1)
-@ENABLE_DOCS_FALSE@DIST_SUBDIRS = $(SUBDIRS) doc
-@ENABLE_DOCS_TRUE@DIST_SUBDIRS = $(SUBDIRS)
-AUTOMAKE_OPTIONS = dist-bzip2
+SUBDIRS = fontconfig fc-blanks fc-case fc-lang fc-glyphname src \
+ fc-cache fc-cat fc-list fc-match fc-pattern fc-query fc-scan \
+ fc-validate conf.d test $(am__append_1)
ACLOCAL_AMFLAGS = -I m4
EXTRA_DIST = fontconfig.pc.in fonts.conf.in fonts.dtd \
fontconfig.spec.in fontconfig.spec fontconfig-zip.in \
$(srcdir)/compile $(srcdir)/config.guess $(srcdir)/config.h.in \
$(srcdir)/config.sub $(srcdir)/configure.scan \
$(srcdir)/depcomp $(srcdir)/install-sh $(srcdir)/ltmain.sh \
- $(srcdir)/missing $(srcdir)/mkinstalldirs `find "$(srcdir)" \
- -type f -name Makefile.in -print` $(srcdir)/ChangeLog
-pkgconfigdir = $(libdir)/pkgconfig
+ $(srcdir)/missing $(srcdir)/mkinstalldirs \
+ $(srcdir)/test-driver `find "$(srcdir)" -type f -name \
+ Makefile.in -print` $(srcdir)/ChangeLog
pkgconfig_DATA = fontconfig.pc
+baseconfigdir = $(BASECONFIGDIR)
+configdir = $(CONFIGDIR)
+xmldir = $(XMLDIR)
xml_DATA = fonts.dtd
@CROSS_COMPILING_FALSE@RUN_FC_CACHE_TEST = test -z "$(DESTDIR)"
@CROSS_COMPILING_TRUE@RUN_FC_CACHE_TEST = false
+FC_CONFIGDIR = $(subst $(BASECONFIGDIR)/,,$(CONFIGDIR))
DISTCHECK_CONFIGURE_FLAGS =
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
$(am__aclocal_m4_deps):
config.h: stamp-h1
- @if test ! -f $@; then rm -f stamp-h1; else :; fi
- @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
+ @test -f $@ || rm -f stamp-h1
+ @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
@rm -f stamp-h1
# (1) if the variable is set in 'config.status', edit 'config.status'
# (which will cause the Makefiles to be regenerated when you run 'make');
# (2) otherwise, pass the desired values on the 'make' command line.
-$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
- @fail= failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
+$(am__recursive_targets):
+ @fail=; \
+ if $(am__make_keepgoing); then \
+ failcom='fail=yes'; \
+ else \
+ failcom='exit 1'; \
+ fi; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
case "$@" in \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
-tags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
- done
-ctags-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
- done
-cscopelist-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \
- done
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
- list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
-
cscope: cscope.files
test ! -s cscope.files \
|| $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
-
clean-cscope:
-rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-recursive
-cscope.files: clean-cscope cscopelist-recursive cscopelist
-
-cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
$(am__post_remove_distdir)
dist-tarZ: distdir
+ @echo WARNING: "Support for shar distribution archives is" \
+ "deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__post_remove_distdir)
dist-shar: distdir
+ @echo WARNING: "Support for distribution archives compressed with" \
+ "legacy program 'compress' is deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__post_remove_distdir)
*.zip*) \
unzip $(distdir).zip ;;\
esac
- chmod -R a-w $(distdir); chmod u+w $(distdir)
- mkdir $(distdir)/_build
- mkdir $(distdir)/_inst
+ chmod -R a-w $(distdir)
+ chmod u+w $(distdir)
+ mkdir $(distdir)/_build $(distdir)/_inst
chmod a-w $(distdir)
test -d $(distdir)/_build || exit 0; \
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& am__cwd=`pwd` \
&& $(am__cd) $(distdir)/_build \
- && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+ && ../configure \
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
$(DISTCHECK_CONFIGURE_FLAGS) \
+ --srcdir=.. --prefix="$$dc_install_base" \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
uninstall-am: uninstall-local uninstall-pkgconfigDATA \
uninstall-xmlDATA
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
- cscopelist-recursive ctags-recursive install-am install-strip \
- tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
- all all-am am--refresh check check-am clean clean-cscope \
- clean-generic clean-libtool cscope cscopelist \
- cscopelist-recursive ctags ctags-recursive dist dist-all \
- dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ dist-xz \
- dist-zip distcheck distclean distclean-generic distclean-hdr \
- distclean-libtool distclean-tags distcleancheck distdir \
- distuninstallcheck dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am \
+.MAKE: $(am__recursive_targets) all install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+ am--refresh check check-am clean clean-cscope clean-generic \
+ clean-libtool cscope cscopelist-am ctags ctags-am dist \
+ dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
+ dist-xz dist-zip distcheck distclean distclean-generic \
+ distclean-hdr distclean-libtool distclean-tags distcleancheck \
+ distdir distuninstallcheck dvi dvi-am html html-am info \
+ info-am install install-am install-data install-data-am \
install-data-local install-dvi install-dvi-am install-exec \
install-exec-am install-html install-html-am install-info \
install-info-am install-man install-pdf install-pdf-am \
install-xmlDATA installcheck installcheck-am installdirs \
installdirs-am maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
- ps ps-am tags tags-recursive uninstall uninstall-am \
- uninstall-local uninstall-pkgconfigDATA uninstall-xmlDATA
+ ps ps-am tags tags-am uninstall uninstall-am uninstall-local \
+ uninstall-pkgconfigDATA uninstall-xmlDATA
ChangeLog: $(srcdir)/ChangeLog
$(srcdir)/ChangeLog:
if test -d "$(srcdir)/.git"; then \
- (GIT_DIR=$(top_srcdir)/.git ./missing --run git log --stat) | fmt --split-only > $@.tmp \
+ (GIT_DIR=$(top_srcdir)/.git $(GIT) log --stat) | fmt --split-only > $@.tmp \
&& mv -f $@.tmp $@ \
|| ($(RM) $@.tmp; \
echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \
-e 's,@FC_CACHEDIR\@,$(FC_CACHEDIR),g' \
-e 's,@FC_DEFAULT_FONTS\@,$(FC_DEFAULT_FONTS),g' \
-e 's,@FC_FONTPATH\@,$(FC_FONTPATH),g' \
- -e 's,@CONFIGDIR\@,$(CONFIGDIR),g' \
+ -e 's,@CONFIGDIR\@,$(FC_CONFIGDIR),g' \
-e 's,@PACKAGE\@,$(PACKAGE),g' \
-e 's,@VERSION\@,$(VERSION),g' \
$(srcdir)/$@.in > $@.tmp && \
Fontconfig
Font configuration and customization library
- Version 2.10.91 (2.11 RC1)
- 2013-01-10
+ Version 2.11.93 (2.12 RC3)
+ 2015-03-09
Check INSTALL for compilation and installation instructions.
Report bugs to https://bugs.freedesktop.org in the fontconfig module.
+2.11.93 (2.12 RC3)
+
+Akira TAGOH (18):
+ Fix a typo in docs
+ Add pkg.m4 to git
+ Fix a build fail on some non-POSIX platforms
+ ifdef'd the unnecessary code for win32
+ Fix pointer cast warning on win32
+ filter can be null
+ Copy the real size of struct dirent
+ Rework again to copy the struct dirent
+ Hardcode the blanks in the library
+ Update the script to recognize the escaped space
+ Fix a build issue when $(srcdir) != $(builddir)
+ Don't add FC_LANG when it has "und"
+ Fix the array allocation
+ Improve the performance on searching blanks
+ Fix a segfault when OOM happened.
+ Fix a bug in the previous change forFcBlanksIsMember()
+ Fix an infinite loop in FcBlanksIsMember()
+ Fix a trivial bug for dist
+
+Alan Coopersmith (1):
+ Fix configure to work with Solaris Studio compilers
+
+Behdad Esfahbod (3):
+ Fix symbol cmap handling
+ Remove dead code after previous commit
+ Simplify some more
+
+Michael Haubenwallner (1):
+ Ensure config.h is included first, bug#89336.
+
+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):
+ do not build test-migration for Win32
+ Fix build issue on Debian/kFreeBSD 7.0
+ Update ax_pthread.m4 to the latest version
+ Fix the dynamic loading issue on NetBSD
+ Use stat() if there are no d_type in struct dirent
+ Fix a build issue on Solaris 10
+ Change the default weight on match to FC_WEIGHT_NORMAL
+ Warn if no <test> nor <edit> elements in <match>
+ Correct DTD
+ Re-scan font directories only when it contains subdirs
+ Fix typo
+ Bug 72086 - Check for gperf in autogen.sh
+ Simplify to validate the availability of posix_fadvise
+ Simplify to validate the availability of scandir
+ Fix a typo
+ Fix a build issue on platforms where doesn't support readlink()
+ Improve the performance issue on rescanning directories
+ Bug 73686 - confdir is not set correctly in fontconfig.pc
+ Update zh_hk.orth
+ clean up the unused files
+ Add missing license headers
+ Update the use of autotools' macro
+ Fix a crash issue when empty strings are set to the BDF properties
+ Add a doc for FcDirCacheRescan
+ Add missing #include <sys/statvfs.h> in fcstat.c
+ Fix incompatible API on AIX with random_r and initstate_r
+ Fallback to lstat() in case the filesystem doesn't support d_type in struct dirent
+ Update doc to include the version info of `since when'
+ Bug 73291 - poppler does not show fl ligature
+ Add README describes the criteria to add/modify the orthography files
+ Fix autoconf warning, warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS
+
+Alan Coopersmith (3):
+ Leave room for null terminators in arrays
+ Avoid memory leak when NULL path passed to FcStrBuildFilename
+ Avoid null pointer dereference in FcNameParse if malloc fails
+
+Behdad Esfahbod (1):
+ Bug 72380 - Never drop first font when trimming
+
+Frederic Crozat (2):
+ Fix inversion between Tinos and Cousine in the comment
+ Add metric aliases for additional Google ChromeOS fonts
+
+Jehan (1):
+ Defaulting <cachedir> to LOCAL_APPDATA_FONTCONFIG_CACHE for Win32 build
+
+Ross Burton (1):
+ fc-cache: --sysroot option takes an argument
+
+2.11
+
+Akira TAGOH (15):
+ Do not create a config dir for migration when no config files nor dirs
+ Add a test case of the migration for config place
+ Fix memory leaks in FcFreeTypeQueryFace
+ Bug 68955 - Deprecate / remove FC_RASTERIZER
+ Copy all values from the font to the pattern if the pattern doesn't have the element
+ Fix a crash when FcPattern is set to null on FcFontSetList() and FcFontList()
+ Add the description of -q option to the man page
+ avoid reading config.h twice
+ clean up
+ Add the relative path for <include> to fonts.conf if the parent path is same to fonts.conf
+ Workaround the race condition issue on updating cache
+ exit with the error code when FcNameParse() failed
+ Add missing doc for FcStrListFirst and fix a typo
+ Bump libtool revision
+ Update CaseFolding.txt to Unicode 6.3
+
+Jan Alexander Steffens (heftig) (1):
+ Further changes to 30-metric-aliases.conf
+
+W. Trevor King (1):
+ doc/fccharset.fncs: Describe the map format in more detail
+
+2.10.95 (2.11 RC5)
+
+Akira TAGOH (2):
+ Fix a typo
+ Fix a crash
+
+2.10.94 (2.11 RC4)
+
+Akira TAGOH (25):
+ Bug 64906 - FcNameParse() should ignore leading whitespace in parameters
+ Fix a comparison of constant warning with clang
+ Fix a shift count overflow on 32bit box
+ Fix a incompatible pointer warning on NetBSD
+ Add FcTypeUnknown to FcType to avoid comparison of constant -1
+ Fix the behavior of intermixed tests end edits in match
+ Ignore scandir() check on mingw
+ Use INT_MAX instead of unreliable hardcoding value
+ Add FC_UNUSED to FC_ASSERT_STATIC macro to avoid compiler warning
+ Rework to apply the intermixed test and edit elements in one-pass
+ trivial code optimization
+ Correct fontconfig.pc to add certain dependencies for build
+ Correct fontconfig.pc to add certain dependencies for static build
+ Fix wrong edit position
+ Bug 67809 - Invalid read/write with valgrind when assigning something twice
+ warn deprecated only when migration failed
+ Bug 67845 - Match on FC_SCALABLE
+ Bug 16818 - fontformat in match pattern is not respected?
+ Bug 68340 - More metric compat fonts
+ Bug 63399 - Add default aliases for Georgia, Garamond, Palatino Linotype, Trebuchet MS
+ Fix a typo
+ Fix a crash when non-builtin objects are edited
+ Fix a wrong edit position when 'kind' is different
+ Bug 68587 - copy qu.orth to quz.orth
+ Add quz.orth to Makefile.am
+
+Behdad Esfahbod (2):
+ Minor
+ Fix assertion
+
+2.10.93 (2.11 RC3)
+
+Akira TAGOH (10):
+ Bug 62980 - matching native fonts with even :lang=en
+ Ensure closing fp on error
+ Obtain fonts data via FT_Face instead of opening a file directly
+ Revert the previous change and rework to not export freetype API outside fcfreetype.c
+ documented FC_HASH and FC_POSTSCRIPT_NAME
+ Bug 63329 - make check fails: .. contents:: :depth: 2
+ Use the glob matching for filename
+ Bug 63452 - conf.d/README outdated
+ Fix missing OSAtomicCompareAndSwapPtrBarrier() on Mac OS X 10.4
+ Bug 63922 - FcFreeTypeQueryFace fails on postscripts fonts loaded from memory
+
+Sebastian Freundt (1):
+ build-chain, replace INCLUDES directive by AM_CPPFLAGS
+
+2.10.92 (2.11 RC2)
+
+Akira TAGOH (33):
+ Fix the build fail on MinGW
+ Bug 50497 - RFE: Add OpenType feature tags support
+ Improve FcGetPrgname() to work on BSD
+ Better fix for 2fe5ddfd
+ Add missing file descriptor to F_DUPFD_CLOEXEC
+ Fix mkstemp absence for some platform
+ Fix installation on MinGW32
+ Add another approach to FC_PRGNAME for Solaris 10 or before
+ remove the unnecessary code
+ Bug 59385 - Do the right thing for intermixed edit and test elements
+ Bug 23757 - Add mode="delete" to <edit>
+ Modernize configure.ac
+ Use AM_MISSING_PROG instead of hardcoding missing
+ Revert "test: Use SH_LOG_COMPILER and AM_TESTS_ENVIRONMENT"
+ Use AM_MISSING_PROG instead of hardcoding missing
+ Bug 50733 - Add font-file hash?
+ Bug 60312 - DIST_SUBDIRS should never appear in a conditional
+ Update _FcMatchers definition logic
+ Bump the cache version to 4
+ Add Culmus foundry to the vendor list
+ Bug 60748 - broken conf.d/10-autohint.conf and conf.d/10-unhinted.conf
+ Bug 60783 - Add Liberation Sans Narrow to 30-metric-aliases.conf
+ Fix a typo
+ Fix a crash when the object is non-builtin object
+ Fix broken sort order with FcFontSort()
+ Fix a memory leak
+ Bug 59456 - Adding a --sysroot like option to fc-cache
+ Do not copy FC_*LANG_OBJECT even if it's not available on the pattern
+ Fix a SIGSEGV on FcPatternGet* with NULL pattern
+ Bug 38737 - Wishlist: support FC_POSTSCRIPT_NAME
+ Minor cleanup
+ Bump libtool revision
+ Minor fix
+
+Behdad Esfahbod (12):
+ Resepct $NOCONFIGURE
+ Ensure we find the uninstalled fontconfig header
+ Copy all values from pattern to font if the font doesn't have the element
+ Minor
+ Bug 59379 - FC_PRGNAME
+ Remove unused checks for common functions
+ Minor
+ Fix fc-cache crash caused by looking up NULL object incorrectly
+ Fix FC_PRGNAME default
+ Fix readlink failure
+ Accept digits as part of OpenType script tags
+ Fix crash with FcConfigSetCurrent(NULL)
+
+Christoph J. Thompson (1):
+ Use the PKG_INSTALLDIR macro.
+
+Colin Walters (1):
+ build: Only use PKG_INSTALLDIR if available
+
+Quentin Glidic (2):
+ test: Use SH_LOG_COMPILER and AM_TESTS_ENVIRONMENT
+ Use LOG_COMPILER and AM_TESTS_ENVIRONMENT
+
2.10.91 (2.11 RC1)
Akira TAGOH (19):
EXTRA_DIST = $(TARG) $(TMPL) $(TSRC) $(DIST)
-INCLUDES = \
+AM_CPPFLAGS = \
-I$(builddir) \
-I$(srcdir) \
-I$(top_builddir)/src \
$(WARN_CFLAGS)
$(TOOL): $(TSRC) $(ALIAS_FILES)
- $(AM_V_GEN) $(CC_FOR_BUILD) -o $(TOOL) $< $(INCLUDES)
+ $(AM_V_GEN) $(CC_FOR_BUILD) -o $(TOOL) $< $(AM_CPPFLAGS)
$(TARG): $(TMPL) $(TSRC) $(DEPS)
$(AM_V_GEN) $(MAKE) $(TOOL) && \
-# generated automatically by aclocal 1.12.2 -*- Autoconf -*-
+# generated automatically by aclocal 1.14.1 -*- Autoconf -*-
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
-# 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
-
-# Copyright (C) 2002-2012 Free Software Foundation, Inc.
+# Copyright (C) 2002-2013 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 8
-
# AM_AUTOMAKE_VERSION(VERSION)
# ----------------------------
# Automake X.Y traces this macro to ensure aclocal.m4 has been
# generated from the m4 files accompanying Automake X.Y.
# (This private macro should not be called outside this file.)
AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.12'
+[am__api_version='1.14'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.12.2], [],
+m4_if([$1], [1.14.1], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.12.2])dnl
+[AM_AUTOMAKE_VERSION([1.14.1])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-# Copyright (C) 2001-2012 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 2
-
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to
# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
# AM_CONDITIONAL -*- Autoconf -*-
-# Copyright (C) 1997-2012 Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 10
-
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
# -------------------------------------
# Define a conditional.
Usually this means the macro was only invoked conditionally.]])
fi])])
-# Copyright (C) 1999-2012 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 17
# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
# written in clear, in which case automake, when reading aclocal.m4,
# Generate code to set up dependency tracking. -*- Autoconf -*-
-# Copyright (C) 1999-2012 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 6
# _AM_OUTPUT_DEPENDENCY_COMMANDS
# ------------------------------
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
[{
- # Autoconf 2.62 quotes --file arguments for eval, but not when files
+ # Older Autoconf quotes --file arguments for eval, but not when files
# are listed without --file. Let's play safe and only enable the eval
# if we detect the quoting.
case $CONFIG_FILES in
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
test -z "$DEPDIR" && continue
am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "am__include" && continue
+ test -z "$am__include" && continue
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
# Find all dependency output files, they are included files with
# $(DEPDIR) in their names. We invoke sed twice because it is the
# Do all the work for Automake. -*- Autoconf -*-
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 19
-
# This macro actually does too much. Some checks are only needed if
# your package does certain things. But this isn't really a big deal.
+dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
+m4_define([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[_AM_PROG_CC_C_O
+])
+
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
# AM_INIT_AUTOMAKE([OPTIONS])
# -----------------------------------------------
# arguments mandatory, and then we can depend on a new Autoconf
# release and drop the old call support.
AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.62])dnl
+[AC_PREREQ([2.65])dnl
dnl Autoconf wants to disallow AM_ names. We explicitly allow
dnl the ones we care about.
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
dnl Distinguish between old-style and new-style calls.
m4_ifval([$2],
[AC_DIAGNOSE([obsolete],
-[$0: two- and three-arguments forms are deprecated. For more info, see:
-http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_INIT_AUTOMAKE-invocation])
+ [$0: two- and three-arguments forms are deprecated.])
m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
AC_SUBST([PACKAGE], [$1])dnl
AC_SUBST([VERSION], [$2])],
[_AM_DEPENDENCIES([OBJC])],
[m4_define([AC_PROG_OBJC],
m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
-dnl Support for Objective C++ was only introduced in Autoconf 2.65,
-dnl but we still cater to Autoconf 2.62.
-m4_ifdef([AC_PROG_OBJCXX],
-[AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
[_AM_DEPENDENCIES([OBJCXX])],
[m4_define([AC_PROG_OBJCXX],
- m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])])dnl
+ m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
])
-_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
-dnl The 'parallel-tests' driver may need to know about EXEEXT, so add the
-dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
-dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
AC_CONFIG_COMMANDS_PRE(dnl
[m4_provide_if([_AM_COMPILER_EXEEXT],
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
-])
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+ fi
+fi])
dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
m4_define([_AC_COMPILER_EXEEXT],
m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
-
# When config.status generates a header, we must update the stamp-h file.
# This file resides in the same directory as the config header
# that is generated. The stamp files are numbered to have different names.
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-# Copyright (C) 2001-2012 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 8
-
# AM_PROG_INSTALL_SH
# ------------------
# Define $install_sh.
fi
AC_SUBST([install_sh])])
-# Copyright (C) 2003-2012 Free Software Foundation, Inc.
+# Copyright (C) 2003-2013 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 2
-
# Check whether the underlying file-system supports filenames
# with a leading dot. For instance MS-DOS doesn't.
AC_DEFUN([AM_SET_LEADING_DOT],
# Check to see how 'make' treats includes. -*- Autoconf -*-
-# Copyright (C) 2001-2012 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 5
-
# AM_MAKE_INCLUDE()
# -----------------
# Check to see how make treats includes.
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-# Copyright (C) 1997-2012 Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 7
-
# AM_MISSING_PROG(NAME, PROGRAM)
# ------------------------------
AC_DEFUN([AM_MISSING_PROG],
$1=${$1-"${am_missing_run}$2"}
AC_SUBST($1)])
-
# AM_MISSING_HAS_RUN
# ------------------
-# Define MISSING if not defined so far and test if it supports --run.
-# If it does, set am_missing_run to use it, otherwise, to nothing.
+# Define MISSING if not defined so far and test if it is modern enough.
+# If it is, set am_missing_run to use it, otherwise, to nothing.
AC_DEFUN([AM_MISSING_HAS_RUN],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
AC_REQUIRE_AUX_FILE([missing])dnl
esac
fi
# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
- am_missing_run="$MISSING --run "
+if eval "$MISSING --is-lightweight"; then
+ am_missing_run="$MISSING "
else
am_missing_run=
AC_MSG_WARN(['missing' script is too old or missing])
# Helper functions for option handling. -*- Autoconf -*-
-# Copyright (C) 2001-2012 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 6
-
# _AM_MANGLE_OPTION(NAME)
# -----------------------
AC_DEFUN([_AM_MANGLE_OPTION],
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-# Check to make sure that the build environment is sane. -*- Autoconf -*-
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_CC_C_O
+# ---------------
+# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC
+# to automatically call this.
+AC_DEFUN([_AM_PROG_CC_C_O],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+AC_LANG_PUSH([C])dnl
+AC_CACHE_CHECK(
+ [whether $CC understands -c and -o together],
+ [am_cv_prog_cc_c_o],
+ [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+
+# For backward compatibility.
+AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+
+# AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+# ---------------------------------------------------------------------------
+# Adds support for distributing Python modules and packages. To
+# install modules, copy them to $(pythondir), using the python_PYTHON
+# automake variable. To install a package with the same name as the
+# automake package, install to $(pkgpythondir), or use the
+# pkgpython_PYTHON automake variable.
+#
+# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as
+# locations to install python extension modules (shared libraries).
+# Another macro is required to find the appropriate flags to compile
+# extension modules.
+#
+# If your package is configured with a different prefix to python,
+# users will have to add the install directory to the PYTHONPATH
+# environment variable, or create a .pth file (see the python
+# documentation for details).
+#
+# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will
+# cause an error if the version of python installed on the system
+# doesn't meet the requirement. MINIMUM-VERSION should consist of
+# numbers and dots only.
+AC_DEFUN([AM_PATH_PYTHON],
+ [
+ dnl Find a Python interpreter. Python versions prior to 2.0 are not
+ dnl supported. (2.0 was released on October 16, 2000).
+ m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
+[python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7 dnl
+ python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0])
+
+ AC_ARG_VAR([PYTHON], [the Python interpreter])
+
+ m4_if([$1],[],[
+ dnl No version check is needed.
+ # Find any Python interpreter.
+ if test -z "$PYTHON"; then
+ AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :)
+ fi
+ am_display_PYTHON=python
+ ], [
+ dnl A version check is needed.
+ if test -n "$PYTHON"; then
+ # If the user set $PYTHON, use it and don't search something else.
+ AC_MSG_CHECKING([whether $PYTHON version is >= $1])
+ AM_PYTHON_CHECK_VERSION([$PYTHON], [$1],
+ [AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])
+ AC_MSG_ERROR([Python interpreter is too old])])
+ am_display_PYTHON=$PYTHON
+ else
+ # Otherwise, try each interpreter until we find one that satisfies
+ # VERSION.
+ AC_CACHE_CHECK([for a Python interpreter with version >= $1],
+ [am_cv_pathless_PYTHON],[
+ for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do
+ test "$am_cv_pathless_PYTHON" = none && break
+ AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
+ done])
+ # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
+ if test "$am_cv_pathless_PYTHON" = none; then
+ PYTHON=:
+ else
+ AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
+ fi
+ am_display_PYTHON=$am_cv_pathless_PYTHON
+ fi
+ ])
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
+ if test "$PYTHON" = :; then
+ dnl Run any user-specified action, or abort.
+ m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
+ else
+
+ dnl Query Python for its version number. Getting [:3] seems to be
+ dnl the best way to do this; it's what "site.py" does in the standard
+ dnl library.
+
+ AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
+ [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`])
+ AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
+
+ dnl Use the values of $prefix and $exec_prefix for the corresponding
+ dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made
+ dnl distinct variables so they can be overridden if need be. However,
+ dnl general consensus is that you shouldn't need this ability.
+
+ AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
+ AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
+
+ dnl At times (like when building shared libraries) you may want
+ dnl to know which OS platform Python thinks this is.
+
+ AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
+ [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
+ AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
+
+ # Just factor out some code duplication.
+ am_python_setup_sysconfig="\
+import sys
+# Prefer sysconfig over distutils.sysconfig, for better compatibility
+# with python 3.x. See automake bug#10227.
+try:
+ import sysconfig
+except ImportError:
+ can_use_sysconfig = 0
+else:
+ can_use_sysconfig = 1
+# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs:
+# <https://github.com/pypa/virtualenv/issues/118>
+try:
+ from platform import python_implementation
+ if python_implementation() == 'CPython' and sys.version[[:3]] == '2.7':
+ can_use_sysconfig = 0
+except ImportError:
+ pass"
+
+ dnl Set up 4 directories:
+
+ dnl pythondir -- where to install python scripts. This is the
+ dnl site-packages directory, not the python standard library
+ dnl directory like in previous automake betas. This behavior
+ dnl is more consistent with lispdir.m4 for example.
+ dnl Query distutils for this directory.
+ AC_CACHE_CHECK([for $am_display_PYTHON script directory],
+ [am_cv_python_pythondir],
+ [if test "x$prefix" = xNONE
+ then
+ am_py_prefix=$ac_default_prefix
+ else
+ am_py_prefix=$prefix
+ fi
+ am_cv_python_pythondir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+ sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
+else:
+ from distutils import sysconfig
+ sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
+ case $am_cv_python_pythondir in
+ $am_py_prefix*)
+ am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
+ am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
+ ;;
+ *)
+ case $am_py_prefix in
+ /usr|/System*) ;;
+ *)
+ am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
+ ;;
+ esac
+ ;;
+ esac
+ ])
+ AC_SUBST([pythondir], [$am_cv_python_pythondir])
+
+ dnl pkgpythondir -- $PACKAGE directory under pythondir. Was
+ dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is
+ dnl more consistent with the rest of automake.
+
+ AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
+
+ dnl pyexecdir -- directory for installing python extension modules
+ dnl (shared libraries)
+ dnl Query distutils for this directory.
+ AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
+ [am_cv_python_pyexecdir],
+ [if test "x$exec_prefix" = xNONE
+ then
+ am_py_exec_prefix=$am_py_prefix
+ else
+ am_py_exec_prefix=$exec_prefix
+ fi
+ am_cv_python_pyexecdir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+ sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
+else:
+ from distutils import sysconfig
+ sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
+ case $am_cv_python_pyexecdir in
+ $am_py_exec_prefix*)
+ am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
+ am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
+ ;;
+ *)
+ case $am_py_exec_prefix in
+ /usr|/System*) ;;
+ *)
+ am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
+ ;;
+ esac
+ ;;
+ esac
+ ])
+ AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
+
+ dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
+
+ AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
+
+ dnl Run any user-specified action.
+ $2
+ fi
+
+])
+
+
+# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
+# ---------------------------------------------------------------------------
+# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION.
+# Run ACTION-IF-FALSE otherwise.
+# This test uses sys.hexversion instead of the string equivalent (first
+# word of sys.version), in order to cope with versions such as 2.2c1.
+# This supports Python 2.0 or higher. (2.0 was released on October 16, 2000).
+AC_DEFUN([AM_PYTHON_CHECK_VERSION],
+ [prog="import sys
+# split strings by '.' and convert to numeric. Append some zeros
+# because we need at least 4 digits for the hex conversion.
+# map returns an iterator in Python 3.0 and a list in 2.x
+minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]]
+minverhex = 0
+# xrange is not present in Python 3.0 and range returns an iterator
+for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
+sys.exit(sys.hexversion < minverhex)"
+ AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 9
+# AM_RUN_LOG(COMMAND)
+# -------------------
+# Run COMMAND, save the exit status in ac_status, and log it.
+# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
+AC_DEFUN([AM_RUN_LOG],
+[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+ ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ (exit $ac_status); }])
+
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
+
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
# AM_SANITY_CHECK
# ---------------
rm -f conftest.file
])
-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
+# Copyright (C) 2009-2013 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 3
-
# AM_SILENT_RULES([DEFAULT])
# --------------------------
# Enable less verbose build rules; with the default set to DEFAULT
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
])
-# Copyright (C) 2001-2012 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 2
-
# AM_PROG_INSTALL_STRIP
# ---------------------
# One issue with vendor 'install' (even GNU) is that you can't
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
-# Copyright (C) 2006-2012 Free Software Foundation, Inc.
+# Copyright (C) 2006-2013 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 3
-
# _AM_SUBST_NOTMAKE(VARIABLE)
# ---------------------------
# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
# Check how to create a tarball. -*- Autoconf -*-
-# Copyright (C) 2004-2012 Free Software Foundation, Inc.
+# Copyright (C) 2004-2013 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 3
-
# _AM_PROG_TAR(FORMAT)
# --------------------
# Check how to create a tarball in format FORMAT.
# Substitute a variable $(am__untar) that extract such
# a tarball read from stdin.
# $(am__untar) < result.tar
+#
AC_DEFUN([_AM_PROG_TAR],
[# Always define AMTAR for backward compatibility. Yes, it's still used
# in the wild :-( We should find a proper way to deprecate it ...
AC_SUBST([AMTAR], ['$${TAR-tar}'])
-m4_if([$1], [v7],
- [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
- [m4_case([$1], [ustar],, [pax],,
- [m4_fatal([Unknown tar format])])
-AC_MSG_CHECKING([how to create a $1 tar archive])
-# Loop over all known methods to create a tar archive until one works.
+
+# We'll loop over all known methods to create a tar archive until one works.
_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-_am_tools=${am_cv_prog_tar_$1-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of '-'.
-for _am_tool in $_am_tools
-do
- case $_am_tool in
- gnutar)
- for _am_tar in tar gnutar gtar;
- do
- AM_RUN_LOG([$_am_tar --version]) && break
- done
- am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
- am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
- am__untar="$_am_tar -xf -"
- ;;
- plaintar)
- # Must skip GNU tar: if it does not support --format= it doesn't create
- # ustar tarball either.
- (tar --version) >/dev/null 2>&1 && continue
- am__tar='tar chf - "$$tardir"'
- am__tar_='tar chf - "$tardir"'
- am__untar='tar xf -'
- ;;
- pax)
- am__tar='pax -L -x $1 -w "$$tardir"'
- am__tar_='pax -L -x $1 -w "$tardir"'
- am__untar='pax -r'
- ;;
- cpio)
- am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
- am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
- am__untar='cpio -i -H $1 -d'
- ;;
- none)
- am__tar=false
- am__tar_=false
- am__untar=false
- ;;
- esac
- # If the value was cached, stop now. We just wanted to have am__tar
- # and am__untar set.
- test -n "${am_cv_prog_tar_$1}" && break
+m4_if([$1], [v7],
+ [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+ [m4_case([$1],
+ [ustar],
+ [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+ # There is notably a 21 bits limit for the UID and the GID. In fact,
+ # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+ # and bug#13588).
+ am_max_uid=2097151 # 2^21 - 1
+ am_max_gid=$am_max_uid
+ # The $UID and $GID variables are not portable, so we need to resort
+ # to the POSIX-mandated id(1) utility. Errors in the 'id' calls
+ # below are definitely unexpected, so allow the users to see them
+ # (that is, avoid stderr redirection).
+ am_uid=`id -u || echo unknown`
+ am_gid=`id -g || echo unknown`
+ AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+ if test $am_uid -le $am_max_uid; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ _am_tools=none
+ fi
+ AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+ if test $am_gid -le $am_max_gid; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ _am_tools=none
+ fi],
+
+ [pax],
+ [],
+
+ [m4_fatal([Unknown tar format])])
+
+ AC_MSG_CHECKING([how to create a $1 tar archive])
+
+ # Go ahead even if we have the value already cached. We do so because we
+ # need to set the values for the 'am__tar' and 'am__untar' variables.
+ _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+ for _am_tool in $_am_tools; do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar; do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
- # tar/untar a dummy directory, and stop if the command works
- rm -rf conftest.dir
- mkdir conftest.dir
- echo GrepMe > conftest.dir/file
- AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works.
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ AM_RUN_LOG([cat conftest.dir/file])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+ done
rm -rf conftest.dir
- if test -s conftest.tar; then
- AM_RUN_LOG([$am__untar <conftest.tar])
- grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
- fi
-done
-rm -rf conftest.dir
-AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
-AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+ AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+ AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
AC_SUBST([am__tar])
AC_SUBST([am__untar])
]) # _AM_PROG_TAR
+m4_include([m4/ac_check_symbol.m4])
m4_include([m4/ax_cc_for_build.m4])
m4_include([m4/ax_create_stdint_h.m4])
m4_include([m4/ax_pthread.m4])
m4_include([m4/ltsugar.m4])
m4_include([m4/ltversion.m4])
m4_include([m4/lt~obsolete.m4])
+m4_include([m4/pkg.m4])
--- /dev/null
+#! /bin/sh
+# Wrapper for compilers which do not understand '-c -o'.
+
+scriptversion=2012-10-14.11; # UTC
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey@cygnus.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, 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, see <http://www.gnu.org/licenses/>.
+
+# 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.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+nl='
+'
+
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" "" $nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+ file=$1
+ case $file in
+ / | /[!/]*) # absolute file, and not a UNC file
+ if test -z "$file_conv"; then
+ # lazily determine how to convert abs files
+ case `uname -s` in
+ MINGW*)
+ file_conv=mingw
+ ;;
+ CYGWIN*)
+ file_conv=cygwin
+ ;;
+ *)
+ file_conv=wine
+ ;;
+ esac
+ fi
+ case $file_conv/,$2, in
+ *,$file_conv,*)
+ ;;
+ mingw/*)
+ file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+ ;;
+ cygwin/*)
+ file=`cygpath -m "$file" || echo "$file"`
+ ;;
+ wine/*)
+ file=`winepath -w "$file" || echo "$file"`
+ ;;
+ esac
+ ;;
+ esac
+}
+
+# func_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+ func_file_conv "$1"
+ if test -z "$lib_path"; then
+ lib_path=$file
+ else
+ lib_path="$lib_path;$file"
+ fi
+ linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+ lib=$1
+ found=no
+ save_IFS=$IFS
+ IFS=';'
+ for dir in $lib_path $LIB
+ do
+ IFS=$save_IFS
+ if $shared && test -f "$dir/$lib.dll.lib"; then
+ found=yes
+ lib=$dir/$lib.dll.lib
+ break
+ fi
+ if test -f "$dir/$lib.lib"; then
+ found=yes
+ lib=$dir/$lib.lib
+ break
+ fi
+ if test -f "$dir/lib$lib.a"; then
+ found=yes
+ lib=$dir/lib$lib.a
+ break
+ fi
+ done
+ IFS=$save_IFS
+
+ if test "$found" != yes; then
+ lib=$lib.lib
+ fi
+}
+
+# func_cl_wrapper cl arg...
+# Adjust compile command to suit cl
+func_cl_wrapper ()
+{
+ # Assume a capable shell
+ lib_path=
+ shared=:
+ linker_opts=
+ for arg
+ do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ eat=1
+ case $2 in
+ *.o | *.[oO][bB][jJ])
+ func_file_conv "$2"
+ set x "$@" -Fo"$file"
+ shift
+ ;;
+ *)
+ func_file_conv "$2"
+ set x "$@" -Fe"$file"
+ shift
+ ;;
+ esac
+ ;;
+ -I)
+ eat=1
+ func_file_conv "$2" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -I*)
+ func_file_conv "${1#-I}" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -l)
+ eat=1
+ func_cl_dashl "$2"
+ set x "$@" "$lib"
+ shift
+ ;;
+ -l*)
+ func_cl_dashl "${1#-l}"
+ set x "$@" "$lib"
+ shift
+ ;;
+ -L)
+ eat=1
+ func_cl_dashL "$2"
+ ;;
+ -L*)
+ func_cl_dashL "${1#-L}"
+ ;;
+ -static)
+ shared=false
+ ;;
+ -Wl,*)
+ arg=${1#-Wl,}
+ save_ifs="$IFS"; IFS=','
+ for flag in $arg; do
+ IFS="$save_ifs"
+ linker_opts="$linker_opts $flag"
+ done
+ IFS="$save_ifs"
+ ;;
+ -Xlinker)
+ eat=1
+ linker_opts="$linker_opts $2"
+ ;;
+ -*)
+ set x "$@" "$1"
+ shift
+ ;;
+ *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
+ func_file_conv "$1"
+ set x "$@" -Tp"$file"
+ shift
+ ;;
+ *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
+ func_file_conv "$1" mingw
+ set x "$@" "$file"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+ done
+ if test -n "$linker_opts"; then
+ linker_opts="-link$linker_opts"
+ fi
+ exec "$@" $linker_opts
+ exit 1
+}
+
+eat=
+
+case $1 in
+ '')
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file 'INSTALL'.
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "compile $scriptversion"
+ exit $?
+ ;;
+ cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+ func_cl_wrapper "$@" # Doesn't return...
+ ;;
+esac
+
+ofile=
+cfile=
+
+for arg
+do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ # So we strip '-o arg' only if arg is an object.
+ eat=1
+ case $2 in
+ *.o | *.obj)
+ ofile=$2
+ ;;
+ *)
+ set x "$@" -o "$2"
+ shift
+ ;;
+ esac
+ ;;
+ *.c)
+ cfile=$1
+ set x "$@" "$1"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+ # If no '-o' option was seen then we might have been invoked from a
+ # pattern rule where we don't need one. That is ok -- this is a
+ # normal compilation that the losing compiler can handle. If no
+ # '.c' file was seen then we are probably linking. That is also
+ # ok.
+ exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use '[/\\:.-]' here to ensure that we don't use the same name
+# that we are using for the .o file. Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
+while true; do
+ if mkdir "$lockdir" >/dev/null 2>&1; then
+ break
+ fi
+ sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+ test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+ test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Use the Autohinter -->
- <match target="font">
+ <match target="pattern">
<!--
This configuration is available on the major desktop environments.
We shouldn't overwrite it with "assign" unconditionally.
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
-<!-- Enable sub-pixel rendering -->
- <match target="font">
+<!-- Disable sub-pixel rendering -->
+ <match target="pattern">
<!--
This configuration is available on the major desktop environments.
We shouldn't overwrite it with "assign" unconditionally.
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Enable sub-pixel rendering -->
- <match target="font">
+ <match target="pattern">
<!--
This configuration is available on the major desktop environments.
We shouldn't overwrite it with "assign" unconditionally.
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Enable sub-pixel rendering -->
- <match target="font">
+ <match target="pattern">
<!--
This configuration is available on the major desktop environments.
We shouldn't overwrite it with "assign" unconditionally.
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Enable sub-pixel rendering -->
- <match target="font">
+ <match target="pattern">
<!--
This configuration is available on the major desktop environments.
We shouldn't overwrite it with "assign" unconditionally.
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Enable sub-pixel rendering -->
- <match target="font">
+ <match target="pattern">
<!--
This configuration is available on the major desktop environments.
We shouldn't overwrite it with "assign" unconditionally.
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Disable hinting -->
- <match target="font">
+ <match target="pattern">
<!--
This configuration is available on the major desktop environments.
We shouldn't overwrite it with "assign" unconditionally.
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Use lcddefault as default for LCD filter -->
- <match target="font">
+ <match target="pattern">
<!--
This configuration is available on the major desktop environments.
We shouldn't overwrite it with "assign" unconditionally.
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Use lcdlegacy as default for LCD filter -->
- <match target="font">
+ <match target="pattern">
<!--
This configuration is available on the major desktop environments.
We shouldn't overwrite it with "assign" unconditionally.
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Use lcdlight as default for LCD filter -->
- <match target="font">
+ <match target="pattern">
<!--
This configuration is available on the major desktop environments.
We shouldn't overwrite it with "assign" unconditionally.
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
- <!-- Alias similar/metric-compatible families from various sources:
-
- PostScript fonts:
- Helvetica
- Times
- Courier
- URW fonts:
- Nimbus Sans L
- Nimbus Roman No9 L
- Nimbus Mono L
-
- Microsoft fonts:
- Arial
- Times New Roman
- Courier New
- Liberation fonts:
- Liberation Sans
- Liberation Serif
- Liberation Mono
- StarOffice fonts:
- Albany
- Thorndale
- Cumberland
- AMT fonts:
- Albany AMT
- Thorndale AMT
- Cumberland AMT
- Google CrOS Core fonts:
- Arimo
- Cousine
- Tinos
-
- Of these, URW fonts are design compatible with PostScrict fonts,
- and the Liberation, StarOffice, AMT and CrOS Core ones are
- compatible with Microsoft fonts.
-
- We want for each of them to fallback to any of these
- available, but in an order preferring similar designs
- first. We do this in three steps:
-
- 1) Alias each specific to it's generic family.
- eg. Liberation Sans to Arial
-
- 2) Weak alias each generic to the other generic of its family.
- eg. Arial to Helvetica
-
- 3) Alias each generic to its specifics.
- eg. Arial to Liberation Sans, Albany, and Albany AMT
- -->
+<!--
+
+Alias similar/metric-compatible families from various sources:
+
+PostScript fonts: URW fonts: GUST fonts: Windows fonts:
+====================== ====================== ================= ==================
+Helvetica Nimbus Sans TeX Gyre Heros
+Helvetica Condensed Nimbus Sans Narrow TeX Gyre Heros Cn
+Times Nimbus Roman TeX Gyre Termes
+Courier Nimbus Mono TeX Gyre Cursor
+ITC Avant Garde Gothic URW Gothic TeX Gyre Adventor
+ITC Bookman Bookman URW TeX Gyre Bonum Bookman Old Style
+ITC Zapf Chancery Chancery URW TeX Gyre Chorus
+Palatino Palladio URW TeX Gyre Pagella Palatino Linotype
+New Century Schoolbook Century SchoolBook URW TeX Gyre Schola Century Schoolbook
+
+Microsoft fonts: Liberation fonts: Google CrOS core fonts: StarOffice fonts: AMT fonts:
+================ ====================== ======================= ================= ==============
+Arial Liberation Sans Arimo Albany Albany AMT
+Arial Narrow Liberation Sans Narrow
+Times New Roman Liberation Serif Tinos Thorndale Thorndale AMT
+Courier New Liberation Mono Cousine Cumberland Cumberland AMT
+Cambria Caladea
+Calibri Carlito
+Symbol SymbolNeu
+
+Microsoft fonts: Other fonts:
+================ ============
+Georgia Gelasio
+
+We want for each of them to fallback to any of these available,
+but in an order preferring similar designs first. We do this in three steps:
+
+1) Alias each specific to its generic family.
+ e.g. Liberation Sans to Arial
+
+2) Weak alias each generic to the other generic of its family.
+ e.g. Arial to Helvetica
+
+3) Alias each generic to its specifics.
+ e.g. Arial to Liberation Sans, Arimo, Albany, and Albany AMT
+
+-->
<!-- Map specifics to generics -->
</alias>
<alias binding="same">
+ <family>Nimbus Sans</family>
+ <default>
+ <family>Helvetica</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>TeX Gyre Heros</family>
+ <default>
+ <family>Helvetica</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>Nimbus Sans Narrow</family>
+ <default>
+ <family>Helvetica Condensed</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>TeX Gyre Heros Cn</family>
+ <default>
+ <family>Helvetica Condensed</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
<family>Nimbus Roman No9 L</family>
<default>
<family>Times</family>
</alias>
<alias binding="same">
+ <family>Nimbus Roman</family>
+ <default>
+ <family>Times</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>TeX Gyre Termes</family>
+ <default>
+ <family>Times</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
<family>Nimbus Mono L</family>
<default>
<family>Courier</family>
</default>
</alias>
+ <alias binding="same">
+ <family>Nimbus Mono</family>
+ <default>
+ <family>Courier</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>TeX Gyre Cursor</family>
+ <default>
+ <family>Courier</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>Avant Garde</family>
+ <default>
+ <family>ITC Avant Garde Gothic</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>URW Gothic L</family>
+ <default>
+ <family>ITC Avant Garde Gothic</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>URW Gothic</family>
+ <default>
+ <family>ITC Avant Garde Gothic</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>TeX Gyre Adventor</family>
+ <default>
+ <family>ITC Avant Garde Gothic</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>Bookman</family>
+ <default>
+ <family>ITC Bookman</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>URW Bookman L</family>
+ <default>
+ <family>ITC Bookman</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>Bookman URW</family>
+ <default>
+ <family>ITC Bookman</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>TeX Gyre Bonum</family>
+ <default>
+ <family>ITC Bookman</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>Bookman Old Style</family>
+ <default>
+ <family>ITC Bookman</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>Zapf Chancery</family>
+ <default>
+ <family>ITC Zapf Chancery</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>URW Chancery L</family>
+ <default>
+ <family>ITC Zapf Chancery</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>Chancery URW</family>
+ <default>
+ <family>ITC Zapf Chancery</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>TeX Gyre Chorus</family>
+ <default>
+ <family>ITC Zapf Chancery</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>URW Palladio L</family>
+ <default>
+ <family>Palatino</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>Palladio URW</family>
+ <default>
+ <family>Palatino</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>TeX Gyre Pagella</family>
+ <default>
+ <family>Palatino</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>Palatino Linotype</family>
+ <default>
+ <family>Palatino</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>Century Schoolbook L</family>
+ <default>
+ <family>New Century Schoolbook</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>Century SchoolBook URW</family>
+ <default>
+ <family>New Century Schoolbook</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>TeX Gyre Schola</family>
+ <default>
+ <family>New Century Schoolbook</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>Century Schoolbook</family>
+ <default>
+ <family>New Century Schoolbook</family>
+ </default>
+ </alias>
+
<!-- Microsoft -->
<alias binding="same">
</alias>
<alias binding="same">
+ <family>Liberation Sans Narrow</family>
+ <default>
+ <family>Arial Narrow</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
<family>Albany</family>
<default>
<family>Arial</family>
</default>
</alias>
+ <alias binding="same">
+ <family>Gelasio</family>
+ <default>
+ <family>Georgia</family>
+ </default>
+ </alias>
+ <alias binding="same">
+ <family>Caladea</family>
+ <default>
+ <family>Cambria</family>
+ </default>
+ </alias>
-<!-- Accept the other group as fallback -->
+ <alias binding="same">
+ <family>Carlito</family>
+ <default>
+ <family>Calibri</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
+ <family>SymbolNeu</family>
+ <default>
+ <family>Symbol</family>
+ </default>
+ </alias>
+<!-- Accept the other group as fallback -->
<!-- PostScript -->
<alias>
</alias>
<alias>
+ <family>Helvetica Condensed</family>
+ <default>
+ <family>Arial Narrow</family>
+ </default>
+ </alias>
+
+ <alias>
<family>Times</family>
<default>
<family>Times New Roman</family>
</alias>
<alias>
+ <family>Arial Narrow</family>
+ <default>
+ <family>Helvetica Condensed</family>
+ </default>
+ </alias>
+
+ <alias>
<family>Times New Roman</family>
<default>
<family>Times</family>
<!-- Map generics to specifics -->
-
<!-- PostScript -->
<alias binding="same">
<family>Helvetica</family>
<accept>
+ <family>TeX Gyre Heros</family>
+ <family>Nimbus Sans</family>
<family>Nimbus Sans L</family>
</accept>
</alias>
<alias binding="same">
+ <family>Helvetica Condensed</family>
+ <accept>
+ <family>TeX Gyre Heros Cn</family>
+ <family>Nimbus Sans Narrow</family>
+ </accept>
+ </alias>
+
+ <alias binding="same">
<family>Times</family>
<accept>
+ <family>TeX Gyre Termes</family>
+ <family>Nimbus Roman</family>
<family>Nimbus Roman No9 L</family>
</accept>
</alias>
<alias binding="same">
<family>Courier</family>
<accept>
+ <family>TeX Gyre Cursor</family>
+ <family>Nimbus Mono</family>
<family>Nimbus Mono L</family>
</accept>
</alias>
+ <alias binding="same">
+ <family>ITC Avant Garde Gothic</family>
+ <accept>
+ <family>TeX Gyre Adventor</family>
+ <family>URW Gothic</family>
+ <family>URW Gothic L</family>
+ </accept>
+ </alias>
+
+ <alias binding="same">
+ <family>ITC Bookman</family>
+ <accept>
+ <family>Bookman Old Style</family>
+ <family>TeX Gyre Bonum</family>
+ <family>Bookman URW</family>
+ <family>URW Bookman L</family>
+ </accept>
+ </alias>
+
+ <alias binding="same">
+ <family>ITC Zapf Chancery</family>
+ <accept>
+ <family>TeX Gyre Chorus</family>
+ <family>Chancery URW</family>
+ <family>URW Chancery L</family>
+ </accept>
+ </alias>
+
+ <alias binding="same">
+ <family>Palatino</family>
+ <accept>
+ <family>Palatino Linotype</family>
+ <family>TeX Gyre Pagella</family>
+ <family>Palladio URW</family>
+ <family>URW Palladio L</family>
+ </accept>
+ </alias>
+
+ <alias binding="same">
+ <family>New Century Schoolbook</family>
+ <accept>
+ <family>Century Schoolbook</family>
+ <family>TeX Gyre Schola</family>
+ <family>Century SchoolBook URW</family>
+ <family>Century Schoolbook L</family>
+ </accept>
+ </alias>
<!-- Microsoft -->
<alias binding="same">
</alias>
<alias binding="same">
+ <family>Arial Narrow</family>
+ <accept>
+ <family>Liberation Sans Narrow</family>
+ </accept>
+ </alias>
+
+ <alias binding="same">
<family>Times New Roman</family>
<accept>
<family>Tinos</family>
</accept>
</alias>
+ <alias binding="same">
+ <family>Georgia</family>
+ <accept>
+ <family>Gelasio</family>
+ </accept>
+ </alias>
+
+ <alias binding="same">
+ <family>Cambria</family>
+ <accept>
+ <family>Caladea</family>
+ </accept>
+ </alias>
+
+ <alias binding="same">
+ <family>Calibri</family>
+ <accept>
+ <family>Carlito</family>
+ </accept>
+ </alias>
+
+ <alias binding="same">
+ <family>Symbol</family>
+ <accept>
+ <family>SymbolNeu</family>
+ </accept>
+ </alias>
</fontconfig>
<fontconfig>
<!--
URW provides metric and shape compatible fonts for some Adobe families.
- Helvetica, Courier, and Times are handled in 30-metric-aliases.conf.
+ Most of these are handled in 30-metric-aliases.conf.
-->
<alias binding="same">
- <family>Avant Garde</family>
- <accept><family>URW Gothic L</family></accept>
- </alias>
- <alias binding="same">
- <family>Bookman</family>
- <accept><family>URW Bookman L</family></accept>
- </alias>
- <alias binding="same">
- <family>New Century Schoolbook</family>
- <accept><family>Century Schoolbook L</family></accept>
- </alias>
- <alias binding="same">
- <family>Palatino</family>
- <accept><family>URW Palladio L</family></accept>
- </alias>
- <alias binding="same">
- <family>Zapf Chancery</family>
- <accept><family>URW Chancery L</family></accept>
+ <family>Zapf Dingbats</family>
+ <accept><family>Dingbats</family></accept>
</alias>
<alias binding="same">
- <family>Zapf Dingbats</family>
+ <family>ITC Zapf Dingbats</family>
<accept><family>Dingbats</family></accept>
</alias>
<match target="pattern">
<default><family>serif</family></default>
</alias>
<alias>
+ <family>Nimbus Roman</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>Luxi Serif</family>
<default><family>serif</family></default>
</alias>
<family>Thorndale</family>
<default><family>serif</family></default>
</alias>
+ <alias>
+ <family>Georgia</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
+ <family>Garamond</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
+ <family>Palatino Linotype</family>
+ <default><family>serif</family></default>
+ </alias>
<!--
Sans-serif faces
-->
<default><family>sans-serif</family></default>
</alias>
<alias>
+ <family>Nimbus Sans</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>Luxi Sans</family>
<default><family>sans-serif</family></default>
</alias>
+ <alias>
+ <family>Trebuchet MS</family>
+ <default><family>sans-serif</family></default>
+ </alias>
<!--
Monospace faces
-->
<family>Nimbus Mono L</family>
<default><family>monospace</family></default>
</alias>
+ <alias>
+ <family>Nimbus Mono</family>
+ <default><family>monospace</family></default>
+ </alias>
<!--
Fantasy faces
-->
<family>Thorndale AMT</family>
<family>Luxi Serif</family>
<family>Nimbus Roman No9 L</family>
+ <family>Nimbus Roman</family>
<family>Times</family>
</prefer>
</alias>
<family>Albany AMT</family>
<family>Luxi Sans</family>
<family>Nimbus Sans L</family>
+ <family>Nimbus Sans</family>
<family>Helvetica</family>
<family>Lucida Sans Unicode</family>
<family>BPG Glaho International</family> <!-- lat,cyr,arab,geor -->
<family>Cumberland AMT</family>
<family>Luxi Mono</family>
<family>Nimbus Mono L</family>
+ <family>Nimbus Mono</family>
<family>Courier</family>
</prefer>
</alias>
# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
-DOC_FILES= \
- README
+BUILT_SOURCES = README
+DOC_SOURCES = README.in
+DOC_FILES = $(DOC_SOURCES:.in=)
CONF_LINKS = \
10-scale-bitmap-fonts.conf \
80-delicious.conf \
90-synthetic.conf
-EXTRA_DIST = $(template_DATA) $(DOC_FILES)
+EXTRA_DIST = $(template_DATA) $(DOC_SOURCES)
+CLEANFILES = $(DOC_FILES)
-configdir=$(CONFIGDIR)
+configdir = $(CONFIGDIR)
config_DATA = $(DOC_FILES)
templatedir = $(TEMPLATEDIR)
80-delicious.conf \
90-synthetic.conf
+README: $(srcdir)/README.in
+ sed "s|\@TEMPLATEDIR\@|$(templatedir)|" $< > $@
+
install-data-hook:
mkdir -p $(DESTDIR)$(configdir)
@(echo cd $(DESTDIR)$(configdir); \
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# PERFORMANCE OF THIS SOFTWARE.
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
- test $$am__dry = yes; \
- }
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
build_triplet = @build@
host_triplet = @host@
subdir = conf.d
-DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am README
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_for_build.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \
+ $(top_srcdir)/m4/ax_cc_for_build.m4 \
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
$(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
}
am__installdirs = "$(DESTDIR)$(configdir)" "$(DESTDIR)$(templatedir)"
DATA = $(config_DATA) $(template_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
FGREP = @FGREP@
FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
FREETYPE_LIBS = @FREETYPE_LIBS@
+GIT = @GIT@
+GPERF = @GPERF@
GREP = @GREP@
HASDOCBOOK = @HASDOCBOOK@
HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
+PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PTHREAD_CC = @PTHREAD_CC@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
PTHREAD_LIBS = @PTHREAD_LIBS@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RM = @RM@
SED = @SED@
am__tar = @am__tar@
am__untar = @am__untar@
ax_pthread_config = @ax_pthread_config@
-baseconfigdir = @baseconfigdir@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
-configdir = $(CONFIGDIR)
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
ms_librarian = @ms_librarian@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgconfigdir = @pkgconfigdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-templatedir = $(TEMPLATEDIR)
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-xmldir = @xmldir@
-DOC_FILES = \
- README
-
+BUILT_SOURCES = README
+DOC_SOURCES = README.in
+DOC_FILES = $(DOC_SOURCES:.in=)
CONF_LINKS = \
10-scale-bitmap-fonts.conf \
20-unhint-small-vera.conf \
80-delicious.conf \
90-synthetic.conf
-EXTRA_DIST = $(template_DATA) $(DOC_FILES)
+EXTRA_DIST = $(template_DATA) $(DOC_SOURCES)
+CLEANFILES = $(DOC_FILES)
+configdir = $(CONFIGDIR)
config_DATA = $(DOC_FILES)
+templatedir = $(TEMPLATEDIR)
template_DATA = \
10-autohint.conf \
10-no-sub-pixel.conf \
80-delicious.conf \
90-synthetic.conf
-all: all-am
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
.SUFFIXES:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@list='$(template_DATA)'; test -n "$(templatedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(templatedir)'; $(am__uninstall_files_from_dir)
-tags: TAGS
-TAGS:
+tags TAGS:
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
cscope cscopelist:
fi; \
done
check-am: all-am
-check: check-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
all-am: Makefile $(DATA)
installdirs:
for dir in "$(DESTDIR)$(configdir)" "$(DESTDIR)$(templatedir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
-install: install-am
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
mostlyclean-generic:
clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
clean: clean-am
clean-am: clean-generic clean-libtool mostlyclean-am
uninstall-am: uninstall-configDATA uninstall-local \
uninstall-templateDATA
-.MAKE: install-am install-data-am install-strip
+.MAKE: all check install install-am install-data-am install-strip
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
- distclean distclean-generic distclean-libtool distdir dvi \
- dvi-am html html-am info info-am install install-am \
- install-configDATA install-data install-data-am \
- install-data-hook install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-man install-pdf install-pdf-am \
- install-ps install-ps-am install-strip install-templateDATA \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
- uninstall-configDATA uninstall-local uninstall-templateDATA
-
+ cscopelist-am ctags-am distclean distclean-generic \
+ distclean-libtool distdir dvi dvi-am html html-am info info-am \
+ install install-am install-configDATA install-data \
+ install-data-am install-data-hook install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ install-templateDATA installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags-am uninstall uninstall-am uninstall-configDATA \
+ uninstall-local uninstall-templateDATA
+
+
+README: $(srcdir)/README.in
+ sed "s|\@TEMPLATEDIR\@|$(templatedir)|" $< > $@
install-data-hook:
mkdir -p $(DESTDIR)$(configdir)
Each file in this directory is a fontconfig configuration file. Fontconfig
scans this directory, loading all files of the form [0-9][0-9]*.conf.
-These files are normally installed in ../conf.avail and then symlinked here,
-allowing them to be easily installed and then enabled/disabled by adjusting
-the symlinks.
+These files are normally installed in /usr/share/fontconfig/conf.avail
+and then symlinked here, allowing them to be easily installed and then
+enabled/disabled by adjusting the symlinks.
The files are loaded in numeric order, the structure of the configuration
has led to the following conventions in usage:
--- /dev/null
+conf.d/README
+
+Each file in this directory is a fontconfig configuration file. Fontconfig
+scans this directory, loading all files of the form [0-9][0-9]*.conf.
+These files are normally installed in @TEMPLATEDIR@
+and then symlinked here, allowing them to be easily installed and then
+enabled/disabled by adjusting the symlinks.
+
+The files are loaded in numeric order, the structure of the configuration
+has led to the following conventions in usage:
+
+ Files begining with: Contain:
+
+ 00 through 09 Font directories
+ 10 through 19 system rendering defaults (AA, etc)
+ 20 through 29 font rendering options
+ 30 through 39 family substitution
+ 40 through 49 generic identification, map family->generic
+ 50 through 59 alternate config file loading
+ 60 through 69 generic aliases, map generic->family
+ 70 through 79 select font (adjust which fonts are available)
+ 80 through 89 match target="scan" (modify scanned patterns)
+ 90 through 99 font synthesis
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-# 2011, 2012 Free Software Foundation, Inc.
+# Copyright 1992-2014 Free Software Foundation, Inc.
-timestamp='2012-06-10'
+timestamp='2014-03-23'
# This file 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
+# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# 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.
-
-
-# Originally written by Per Bothner. Please send patches (context
-# diff format) to <config-patches@gnu.org> and include a ChangeLog
-# entry.
+# the same distribution terms that you use for the rest of that
+# program. This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
#
-# This script attempts to guess a canonical system name similar to
-# config.sub. If it succeeds, it prints the system name on stdout, and
-# exits with 0. Otherwise, it exits with 1.
+# Originally written by Per Bothner.
#
# You can get the latest version of this script from:
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+#
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+
me=`echo "$0" | sed -e 's,.*/,,'`
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-Free Software Foundation, Inc.
+Copyright 1992-2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+case "${UNAME_SYSTEM}" in
+Linux|GNU|GNU/*)
+ # If the system lacks a compiler, then just pick glibc.
+ # We could probably try harder.
+ LIBC=gnu
+
+ eval $set_cc_for_build
+ cat <<-EOF > $dummy.c
+ #include <features.h>
+ #if defined(__UCLIBC__)
+ LIBC=uclibc
+ #elif defined(__dietlibc__)
+ LIBC=dietlibc
+ #else
+ LIBC=gnu
+ #endif
+ EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+ ;;
+esac
+
# Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "${machine}-${os}${release}"
exit ;;
+ *:Bitrig:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+ exit ;;
*:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
exit ;;
- arm:riscos:*:*|arm:RISCOS:*:*)
+ arm*:riscos:*:*|arm*:RISCOS:*:*)
echo arm-unknown-riscos
exit ;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
exit ;;
+ *:MINGW64*:*)
+ echo ${UNAME_MACHINE}-pc-mingw64
+ exit ;;
*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
- i*:MSYS*:*)
+ *:MSYS*:*)
echo ${UNAME_MACHINE}-pc-msys
exit ;;
i*:windows32*:*)
exit ;;
*:GNU:*:*)
# the GNU system
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
exit ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
exit ;;
i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix
exit ;;
aarch64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
aarch64_be:Linux:*:*)
UNAME_MACHINE=aarch64_be
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
EV68*) UNAME_MACHINE=alphaev68 ;;
esac
objdump --private-headers /bin/sh | grep -q ld.so.1
- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+ if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ arc:Linux:*:* | arceb:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
arm*:Linux:*:*)
eval $set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
else
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
- echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
else
- echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
fi
fi
exit ;;
avr32*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
cris:Linux:*:*)
- echo ${UNAME_MACHINE}-axis-linux-gnu
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
exit ;;
crisv32:Linux:*:*)
- echo ${UNAME_MACHINE}-axis-linux-gnu
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
exit ;;
frv:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
hexagon:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
i*86:Linux:*:*)
- LIBC=gnu
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #ifdef __dietlibc__
- LIBC=dietlibc
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
- echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+ echo ${UNAME_MACHINE}-pc-linux-${LIBC}
exit ;;
ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
mips:Linux:*:* | mips64:Linux:*:*)
eval $set_cc_for_build
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
;;
- or32:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ openrisc*:Linux:*:*)
+ echo or1k-unknown-linux-${LIBC}
+ exit ;;
+ or32:Linux:*:* | or1k*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
padre:Linux:*:*)
- echo sparc-unknown-linux-gnu
+ echo sparc-unknown-linux-${LIBC}
exit ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-gnu
+ echo hppa64-unknown-linux-${LIBC}
exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-gnu ;;
- PA8*) echo hppa2.0-unknown-linux-gnu ;;
- *) echo hppa-unknown-linux-gnu ;;
+ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
+ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+ *) echo hppa-unknown-linux-${LIBC} ;;
esac
exit ;;
ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-gnu
+ echo powerpc64-unknown-linux-${LIBC}
exit ;;
ppc:Linux:*:*)
- echo powerpc-unknown-linux-gnu
+ echo powerpc-unknown-linux-${LIBC}
+ exit ;;
+ ppc64le:Linux:*:*)
+ echo powerpc64le-unknown-linux-${LIBC}
+ exit ;;
+ ppcle:Linux:*:*)
+ echo powerpcle-unknown-linux-${LIBC}
exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux
+ echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
exit ;;
sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
tile*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
vax:Linux:*:*)
- echo ${UNAME_MACHINE}-dec-linux-gnu
+ echo ${UNAME_MACHINE}-dec-linux-${LIBC}
exit ;;
x86_64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
xtensa*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
echo i586-pc-haiku
exit ;;
+ x86_64:Haiku:*:*)
+ echo x86_64-unknown-haiku
+ exit ;;
SX-4:SUPER-UX:*:*)
echo sx4-nec-superux${UNAME_RELEASE}
exit ;;
exit ;;
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- case $UNAME_PROCESSOR in
- i386)
- eval $set_cc_for_build
- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- UNAME_PROCESSOR="x86_64"
- fi
- fi ;;
- unknown) UNAME_PROCESSOR=powerpc ;;
- esac
+ eval $set_cc_for_build
+ if test "$UNAME_PROCESSOR" = unknown ; then
+ UNAME_PROCESSOR=powerpc
+ fi
+ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ case $UNAME_PROCESSOR in
+ i386) UNAME_PROCESSOR=x86_64 ;;
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
+ esac
+ fi
+ fi
+ elif test "$UNAME_PROCESSOR" = i386 ; then
+ # Avoid executing cc on OS X 10.9, as it ships with a stub
+ # that puts up a graphical alert prompting to install
+ # developer tools. Any system running Mac OS X 10.7 or
+ # later (Darwin 11 and later) is required to have a 64-bit
+ # processor. This is not true of the ARM version of Darwin
+ # that Apple uses in portable devices.
+ UNAME_PROCESSOR=x86_64
+ fi
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
exit ;;
esac
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix\n"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
- printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
- int version;
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- if (version < 4)
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
- else
- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
- exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
-#else
- printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
- printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
-
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-# include <sys/param.h>
-# if defined (BSD)
-# if BSD == 43
- printf ("vax-dec-bsd4.3\n"); exit (0);
-# else
-# if BSD == 199006
- printf ("vax-dec-bsd4.3reno\n"); exit (0);
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# endif
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# else
- printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
- exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
- { echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
- case `getsysinfo -f cpu_type` in
- c1*)
- echo c1-convex-bsd
- exit ;;
- c2*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit ;;
- c34*)
- echo c34-convex-bsd
- exit ;;
- c38*)
- echo c38-convex-bsd
- exit ;;
- c4*)
- echo c4-convex-bsd
- exit ;;
- esac
-fi
-
cat >&2 <<EOF
$0: unable to guess system type
/* The normal alignment of `double', in bytes. */
#undef ALIGNOF_DOUBLE
+/* The normal alignment of `void *', in bytes. */
+#undef ALIGNOF_VOID_P
+
/* Use libxml2 instead of Expat */
#undef ENABLE_LIBXML2
MSVC and with C++ compilers. */
#undef FLEXIBLE_ARRAY_MEMBER
-/* Define to 1 if you have the `chsize' function. */
-#undef HAVE_CHSIZE
-
/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
*/
#undef HAVE_DIRENT_H
/* Define to 1 if you have the `fstatvfs' function. */
#undef HAVE_FSTATVFS
-/* Define to 1 if you have the `ftruncate' function. */
-#undef HAVE_FTRUNCATE
-
/* FT_Bitmap_Size structure includes y_ppem field */
#undef HAVE_FT_BITMAP_SIZE_Y_PPEM
/* Define to 1 if you have the `FT_Select_Size' function. */
#undef HAVE_FT_SELECT_SIZE
-/* Define to 1 if you have the `geteuid' function. */
-#undef HAVE_GETEUID
+/* Define to 1 if you have the `getexecname' function. */
+#undef HAVE_GETEXECNAME
/* Define to 1 if you have the `getopt' function. */
#undef HAVE_GETOPT
/* Define to 1 if you have the `getpagesize' function. */
#undef HAVE_GETPAGESIZE
-/* Define to 1 if you have the `getuid' function. */
-#undef HAVE_GETUID
+/* Define to 1 if you have the `getprogname' function. */
+#undef HAVE_GETPROGNAME
/* Have Intel __sync_* atomic primitives */
#undef HAVE_INTEL_ATOMIC_PRIMITIVES
/* Define to 1 if you have the `lstat' function. */
#undef HAVE_LSTAT
-/* Define to 1 if you have the `memmove' function. */
-#undef HAVE_MEMMOVE
-
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
-/* Define to 1 if you have the `memset' function. */
-#undef HAVE_MEMSET
+/* Define to 1 if you have the `mkdtemp' function. */
+#undef HAVE_MKDTEMP
/* Define to 1 if you have the `mkostemp' function. */
#undef HAVE_MKOSTEMP
/* Define to 1 if you have the `rand_r' function. */
#undef HAVE_RAND_R
-/* Define to 1 if you have the `regcomp' function. */
-#undef HAVE_REGCOMP
-
-/* Define to 1 if you have the `regerror' function. */
-#undef HAVE_REGERROR
-
-/* Define to 1 if you have the `regexec' function. */
-#undef HAVE_REGEXEC
-
-/* Define to 1 if you have the <regex.h> header file. */
-#undef HAVE_REGEX_H
-
-/* Define to 1 if you have the `regfree' function. */
-#undef HAVE_REGFREE
+/* Define to 1 if you have the `readlink' function. */
+#undef HAVE_READLINK
/* Define to 1 if you have the <sched.h> header file. */
#undef HAVE_SCHED_H
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
-/* Define to 1 if you have the `strchr' function. */
-#undef HAVE_STRCHR
-
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
-/* Define to 1 if you have the `strrchr' function. */
-#undef HAVE_STRRCHR
-
-/* Define to 1 if you have the `strtol' function. */
-#undef HAVE_STRTOL
-
/* Define to 1 if `d_type' is a member of `struct dirent'. */
#undef HAVE_STRUCT_DIRENT_D_TYPE
/* Define to 1 if `f_fstypename' is a member of `struct statvfs'. */
#undef HAVE_STRUCT_STATVFS_F_FSTYPENAME
-/* Define to 1 if you have the `sysconf' function. */
-#undef HAVE_SYSCONF
-
/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
*/
#undef HAVE_SYS_DIR_H
/* Define to 1 if you have the <sys/statfs.h> header file. */
#undef HAVE_SYS_STATFS_H
+/* Define to 1 if you have the <sys/statvfs.h> header file. */
+#undef HAVE_SYS_STATVFS_H
+
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/vfs.h> header file. */
#undef HAVE_SYS_VFS_H
+/* Define to 1 if `usLowerOpticalPointSize' is a member of `TT_OS2'. */
+#undef HAVE_TT_OS2_USLOWEROPTICALPOINTSIZE
+
+/* Define to 1 if `usUpperOpticalPointSize' is a member of `TT_OS2'. */
+#undef HAVE_TT_OS2_USUPPEROPTICALPOINTSIZE
+
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Use iconv. */
#undef USE_ICONV
-/* Use regex */
-#undef USE_REGEX
-
/* Enable extensions on AIX 3, Interix. */
#ifndef _ALL_SOURCE
# undef _ALL_SOURCE
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-# 2011, 2012 Free Software Foundation, Inc.
+# Copyright 1992-2014 Free Software Foundation, Inc.
-timestamp='2012-04-18'
+timestamp='2014-07-28'
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine. It does not imply ALL GNU software can.
-#
-# This file 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
+# This file 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 3 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.
+# 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, see <http://www.gnu.org/licenses/>.
# 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.
+# the same distribution terms that you use for the rest of that
+# program. This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
-# Please send patches to <config-patches@gnu.org>. Submit a context
-# diff and a properly formatted GNU ChangeLog entry.
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
#
# Configuration subroutine to validate and canonicalize a configuration type.
# Supply the specified configuration type as an argument.
version="\
GNU config.sub ($timestamp)
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-Free Software Foundation, Inc.
+Copyright 1992-2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
- linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
knetbsd*-gnu* | netbsd*-gnu* | \
kopensolaris*-gnu* | \
storm-chaos* | os2-emx* | rtmk-nova*)
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis | -knuth | -cray | -microblaze)
+ -apple | -axis | -knuth | -cray | -microblaze*)
os=
basic_machine=$1
;;
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \
- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
- | be32 | be64 \
+ | arc | arceb \
+ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+ | avr | avr32 \
+ | be32 | be64 \
| bfin \
- | c4x | clipper \
+ | c4x | c8051 | clipper \
| d10v | d30v | dlx | dsp16xx \
| epiphany \
| fido | fr30 | frv \
| hexagon \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
+ | k1om \
| le32 | le64 \
| lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
- | maxq | mb | microblaze | mcore | mep | metag \
+ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
| mips64vr5900 | mips64vr5900el \
| mipsisa32 | mipsisa32el \
| mipsisa32r2 | mipsisa32r2el \
+ | mipsisa32r6 | mipsisa32r6el \
| mipsisa64 | mipsisa64el \
| mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64r6 | mipsisa64r6el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
+ | mipsr5900 | mipsr5900el \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
| moxie \
| mt \
| msp430 \
| nds32 | nds32le | nds32be \
- | nios | nios2 \
+ | nios | nios2 | nios2eb | nios2el \
| ns16k | ns32k \
- | open8 \
- | or32 \
+ | open8 | or1k | or1knd | or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle \
| pyramid \
c6x)
basic_machine=tic6x-unknown
;;
- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
basic_machine=$basic_machine-unknown
os=-none
;;
| aarch64-* | aarch64_be-* \
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \
| be32-* | be64-* \
| bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* \
- | clipper-* | craynv-* | cydra-* \
+ | c8051-* | clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
| hexagon-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
+ | k1om-* \
| le32-* | le64-* \
| lm32-* \
| m32c-* | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+ | microblaze-* | microblazeel-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
| mips16-* \
| mips64-* | mips64el-* \
| mips64vr5900-* | mips64vr5900el-* \
| mipsisa32-* | mipsisa32el-* \
| mipsisa32r2-* | mipsisa32r2el-* \
+ | mipsisa32r6-* | mipsisa32r6el-* \
| mipsisa64-* | mipsisa64el-* \
| mipsisa64r2-* | mipsisa64r2el-* \
+ | mipsisa64r6-* | mipsisa64r6el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipsr5900-* | mipsr5900el-* \
| mipstx39-* | mipstx39el-* \
| mmix-* \
| mt-* \
| msp430-* \
| nds32-* | nds32le-* | nds32be-* \
- | nios-* | nios2-* \
+ | nios-* | nios2-* | nios2eb-* | nios2el-* \
| none-* | np1-* | ns16k-* | ns32k-* \
| open8-* \
+ | or1k*-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
basic_machine=ns32k-utek
os=-sysv
;;
- microblaze)
+ microblaze*)
basic_machine=microblaze-xilinx
;;
+ mingw64)
+ basic_machine=x86_64-pc
+ os=-mingw64
+ ;;
mingw32)
- basic_machine=i386-pc
+ basic_machine=i686-pc
os=-mingw32
;;
mingw32ce)
basic_machine=powerpc-unknown
os=-morphos
;;
+ moxiebox)
+ basic_machine=moxie-unknown
+ os=-moxiebox
+ ;;
msdos)
basic_machine=i386-pc
os=-msdos
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
;;
msys)
- basic_machine=i386-pc
+ basic_machine=i686-pc
os=-msys
;;
mvs)
;;
ppc64) basic_machine=powerpc64-unknown
;;
- ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppc64le | powerpc64little | ppc64-le | powerpc64-little)
basic_machine=powerpc64le-unknown
basic_machine=i586-unknown
os=-pw32
;;
- rdos)
+ rdos | rdos64)
+ basic_machine=x86_64-pc
+ os=-rdos
+ ;;
+ rdos32)
basic_machine=i386-pc
os=-rdos
;;
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
- | -sym* | -kopensolaris* \
+ | -sym* | -kopensolaris* | -plan9* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
| -aos* | -aros* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
- | -openbsd* | -solidbsd* \
+ | -bitrig* | -openbsd* | -solidbsd* \
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* | -cegcc* \
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -linux-android* \
- | -linux-newlib* | -linux-uclibc* \
- | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+ | -linux-newlib* | -linux-musl* | -linux-uclibc* \
+ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
-aros*)
os=-aros
;;
- -kaos*)
- os=-kaos
- ;;
-zvmoe)
os=-zvmoe
;;
c4x-* | tic4x-*)
os=-coff
;;
+ c8051-*)
+ os=-elf
+ ;;
hexagon-*)
os=-elf
;;
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69.
+# Generated by GNU Autoconf 2.69 for fontconfig 2.11.93.
+#
+# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig>.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
$as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
$as_echo "$0: be upgraded to zsh 4.3.4 or later."
else
- $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
-$0: including any error possibly output before this
-$0: message. Then install a modern shell, or manually run
-$0: the script under such a shell if you do have one."
+ $as_echo "$0: Please tell bug-autoconf@gnu.org and
+$0: https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig
+$0: about your system, including any error possibly output
+$0: before this message. Then install a modern shell, or
+$0: manually run the script under such a shell if you do
+$0: have one."
fi
exit 1
fi
MAKEFLAGS=
# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-PACKAGE_URL=
-
-ac_unique_file="fonts.dtd"
+PACKAGE_NAME='fontconfig'
+PACKAGE_TARNAME='fontconfig'
+PACKAGE_VERSION='2.11.93'
+PACKAGE_STRING='fontconfig 2.11.93'
+PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig'
+PACKAGE_URL=''
+
# Factoring default headers for most tests.
ac_includes_default="\
#include <stdio.h>
am__EXEEXT_TRUE
LTLIBOBJS
LIBOBJS
+PKGCONFIG_REQUIRES_PRIVATELY
+PKGCONFIG_REQUIRES
DOCMAN3
ENABLE_DOCS_FALSE
ENABLE_DOCS_TRUE
PTHREAD_CC
ax_pthread_config
XMLDIR
-xmldir
CONFIGDIR
-configdir
BASECONFIGDIR
-baseconfigdir
TEMPLATEDIR
-templatedir
FC_FONTDATE
FC_CACHEDIR
fc_cachedir
ms_librarian
OS_WIN32_FALSE
OS_WIN32_TRUE
-RM
-PKG_CONFIG_LIBDIR
-PKG_CONFIG_PATH
-PKG_CONFIG
+LIBT_CURRENT_MINUS_AGE
+LIBT_VERSION_INFO
+LIBT_REVISION
+LIBT_CURRENT
OTOOL64
OTOOL
LIPO
LD
FGREP
SED
-LIBTOOL
-OBJDUMP
-DLLTOOL
-AS
host_os
host_vendor
host_cpu
build_vendor
build_cpu
build
+LIBTOOL
+OBJDUMP
+DLLTOOL
+AS
+RM
+pkgpyexecdir
+pyexecdir
+pkgpythondir
+pythondir
+PYTHON_PLATFORM
+PYTHON_EXEC_PREFIX
+PYTHON_PREFIX
+PYTHON_VERSION
+PYTHON
+GPERF
+GIT
+pkgconfigdir
+PKG_CONFIG_LIBDIR
+PKG_CONFIG_PATH
+PKG_CONFIG
LN_S
EGREP
GREP
LDFLAGS
CFLAGS
CC
-LIBT_CURRENT_MINUS_AGE
-LIBT_VERSION_INFO
-LIBT_REVISION
-LIBT_CURRENT
AM_BACKSLASH
AM_DEFAULT_VERBOSITY
AM_DEFAULT_V
enable_silent_rules
enable_dependency_tracking
enable_largefile
-enable_shared
+with_pkgconfigdir
enable_static
+enable_shared
with_pic
enable_fast_install
with_gnu_ld
PKG_CONFIG
PKG_CONFIG_PATH
PKG_CONFIG_LIBDIR
+PYTHON
CC_FOR_BUILD
FREETYPE_CFLAGS
FREETYPE_LIBS
localstatedir='${prefix}/var'
includedir='${prefix}/include'
oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE}'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
infodir='${datarootdir}/info'
htmldir='${docdir}'
dvidir='${docdir}'
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures this package to adapt to many kinds of systems.
+\`configure' configures fontconfig 2.11.93 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
- --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE]
+ --docdir=DIR documentation root [DATAROOTDIR/doc/fontconfig]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
fi
if test -n "$ac_init_help"; then
-
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of fontconfig 2.11.93:";;
+ esac
cat <<\_ACEOF
Optional Features:
--disable-dependency-tracking
speeds up one-time build
--disable-largefile omit support for large files
+ --enable-static[=PKGS] build static libraries [default=no]
--enable-shared[=PKGS] build shared libraries [default=yes]
- --enable-static[=PKGS] build static libraries [default=yes]
--enable-fast-install[=PKGS]
optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds)
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-pkgconfigdir pkg-config installation directory
+ ['${libdir}/pkgconfig']
--with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
both]
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
directories to add to pkg-config's search path
PKG_CONFIG_LIBDIR
path overriding pkg-config's built-in search path
+ PYTHON the Python interpreter
CC_FOR_BUILD
build system C compiler
FREETYPE_CFLAGS
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
-Report bugs to the package provider.
+Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig>.
_ACEOF
ac_status=$?
fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-configure
+fontconfig configure 2.11.93
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+( $as_echo "## ---------------------------------------------------------------------------- ##
+## Report this to https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig ##
+## ---------------------------------------------------------------------------- ##"
+ ) | sed "s/^/$as_me: WARNING: /" >&2
;;
esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
} # ac_fn_c_check_func
+# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
+# ---------------------------------------------
+# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
+# accordingly.
+ac_fn_c_check_decl ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ as_decl_name=`echo $2|sed 's/ *(.*//'`
+ as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
+$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+#ifndef $as_decl_name
+#ifdef __cplusplus
+ (void) $as_decl_use;
+#else
+ (void) $as_decl_name;
+#endif
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_decl
+
# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
# -------------------------------------------
# Tests whether TYPE exists after having included INCLUDES, setting cache
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by $as_me, which was
+It was created by fontconfig $as_me 2.11.93, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-am__api_version='1.12'
+am__api_version='1.14'
ac_aux_dir=
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
esac
fi
# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
- am_missing_run="$MISSING --run "
+if eval "$MISSING --is-lightweight"; then
+ am_missing_run="$MISSING "
else
am_missing_run=
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
fi
rmdir .tst 2>/dev/null
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+ enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=1;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
if test "`cd $srcdir && pwd`" != "`pwd`"; then
# Use -I$(srcdir) only when $(srcdir) != ., so that make's output
# is not polluted with repeated "-I."
# Define the identity of the package.
-
- PACKAGE=fontconfig
- VERSION=2.10.91
+ PACKAGE='fontconfig'
+ VERSION='2.11.93'
cat >>confdefs.h <<_ACEOF
# in the wild :-( We should find a proper way to deprecate it ...
AMTAR='$${TAR-tar}'
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar pax cpio none'
+
am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
+ fi
+fi
# Check whether --enable-silent-rules was given.
if test "${enable_silent_rules+set}" = set; then :
enableval=$enable_silent_rules;
-LIBT_CURRENT=7
-LIBT_REVISION=2
-
-
-LIBT_AGE=6
-
-LIBT_VERSION_INFO="$LIBT_CURRENT:$LIBT_REVISION:$LIBT_AGE"
-
-
-LIBT_CURRENT_MINUS_AGE=`expr $LIBT_CURRENT - $LIBT_AGE`
-
-
-
ac_config_headers="$ac_config_headers config.h"
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+ ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
DEPDIR="${am__leading_dot}deps"
ac_config_commands="$ac_config_commands depfiles"
$as_echo "no, using $LN_S" >&6; }
fi
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
- as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
$as_echo_n "(cached) " >&6
else
- ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
- ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
- as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "x$host_alias" = x; then
- ac_cv_host=$ac_cv_build
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
else
- ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-enable_win32_dll=yes
-case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
-set dummy ${ac_tool_prefix}as; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AS+:} false; then :
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$AS"; then
- ac_cv_prog_AS="$AS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AS="${ac_tool_prefix}as"
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
IFS=$as_save_IFS
+ ;;
+esac
fi
-fi
-AS=$ac_cv_prog_AS
-if test -n "$AS"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
-$as_echo "$AS" >&6; }
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
-if test -z "$ac_cv_prog_AS"; then
- ac_ct_AS=$AS
- # Extract the first word of "as", so it can be a program name with args.
-set dummy as; ac_word=$2
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_AS+:} false; then :
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$ac_ct_AS"; then
- ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ case $ac_pt_PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_AS="as"
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
IFS=$as_save_IFS
+ ;;
+esac
fi
-fi
-ac_ct_AS=$ac_cv_prog_ac_ct_AS
-if test -n "$ac_ct_AS"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5
-$as_echo "$ac_ct_AS" >&6; }
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
- if test "x$ac_ct_AS" = x; then
- AS="false"
+ if test "x$ac_pt_PKG_CONFIG" = x; then
+ PKG_CONFIG=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
- AS=$ac_ct_AS
+ PKG_CONFIG=$ac_pt_PKG_CONFIG
fi
else
- AS="$ac_cv_prog_AS"
+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
fi
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dlltool; ac_word=$2
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=0.9.0
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ PKG_CONFIG=""
+ fi
+fi
+
+
+
+# Check whether --with-pkgconfigdir was given.
+if test "${with_pkgconfigdir+set}" = set; then :
+ withval=$with_pkgconfigdir;
+else
+ with_pkgconfigdir='${libdir}/pkgconfig'
+fi
+
+pkgconfigdir=$with_pkgconfigdir
+
+
+
+
+
+
+GIT=${GIT-"${am_missing_run}git"}
+
+
+GPERF=${GPERF-"${am_missing_run}gperf"}
+
+
+
+
+
+
+
+ # Find any Python interpreter.
+ if test -z "$PYTHON"; then
+ for ac_prog in python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DLLTOOL+:} false; then :
+if ${ac_cv_path_PYTHON+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$DLLTOOL"; then
- ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ case $PYTHON in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
+ ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
IFS=$as_save_IFS
+ ;;
+esac
fi
-fi
-DLLTOOL=$ac_cv_prog_DLLTOOL
-if test -n "$DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-$as_echo "$DLLTOOL" >&6; }
+PYTHON=$ac_cv_path_PYTHON
+if test -n "$PYTHON"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
+$as_echo "$PYTHON" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
+ test -n "$PYTHON" && break
+done
+test -n "$PYTHON" || PYTHON=":"
+
+ fi
+ am_display_PYTHON=python
+
+
+ if test "$PYTHON" = :; then
+ as_fn_error $? "no suitable Python interpreter found" "$LINENO" 5
+ else
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5
+$as_echo_n "checking for $am_display_PYTHON version... " >&6; }
+if ${am_cv_python_version+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"`
fi
-if test -z "$ac_cv_prog_DLLTOOL"; then
- ac_ct_DLLTOOL=$DLLTOOL
- # Extract the first word of "dlltool", so it can be a program name with args.
-set dummy dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5
+$as_echo "$am_cv_python_version" >&6; }
+ PYTHON_VERSION=$am_cv_python_version
+
+
+
+ PYTHON_PREFIX='${prefix}'
+
+ PYTHON_EXEC_PREFIX='${exec_prefix}'
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5
+$as_echo_n "checking for $am_display_PYTHON platform... " >&6; }
+if ${am_cv_python_platform+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$ac_ct_DLLTOOL"; then
- ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
+ am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5
+$as_echo "$am_cv_python_platform" >&6; }
+ PYTHON_PLATFORM=$am_cv_python_platform
+
+
+ # Just factor out some code duplication.
+ am_python_setup_sysconfig="\
+import sys
+# Prefer sysconfig over distutils.sysconfig, for better compatibility
+# with python 3.x. See automake bug#10227.
+try:
+ import sysconfig
+except ImportError:
+ can_use_sysconfig = 0
+else:
+ can_use_sysconfig = 1
+# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs:
+# <https://github.com/pypa/virtualenv/issues/118>
+try:
+ from platform import python_implementation
+ if python_implementation() == 'CPython' and sys.version[:3] == '2.7':
+ can_use_sysconfig = 0
+except ImportError:
+ pass"
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5
+$as_echo_n "checking for $am_display_PYTHON script directory... " >&6; }
+if ${am_cv_python_pythondir+:} false; then :
+ $as_echo_n "(cached) " >&6
else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_DLLTOOL="dlltool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
+ if test "x$prefix" = xNONE
+ then
+ am_py_prefix=$ac_default_prefix
+ else
+ am_py_prefix=$prefix
+ fi
+ am_cv_python_pythondir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+ sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
+else:
+ from distutils import sysconfig
+ sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
+ case $am_cv_python_pythondir in
+ $am_py_prefix*)
+ am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
+ am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
+ ;;
+ *)
+ case $am_py_prefix in
+ /usr|/System*) ;;
+ *)
+ am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
+ ;;
+ esac
+ ;;
+ esac
fi
-fi
-ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
-if test -n "$ac_ct_DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-$as_echo "$ac_ct_DLLTOOL" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5
+$as_echo "$am_cv_python_pythondir" >&6; }
+ pythondir=$am_cv_python_pythondir
+
+
+
+ pkgpythondir=\${pythondir}/$PACKAGE
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5
+$as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; }
+if ${am_cv_python_pyexecdir+:} false; then :
+ $as_echo_n "(cached) " >&6
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ if test "x$exec_prefix" = xNONE
+ then
+ am_py_exec_prefix=$am_py_prefix
+ else
+ am_py_exec_prefix=$exec_prefix
+ fi
+ am_cv_python_pyexecdir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+ sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
+else:
+ from distutils import sysconfig
+ sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
+ case $am_cv_python_pyexecdir in
+ $am_py_exec_prefix*)
+ am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
+ am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
+ ;;
+ *)
+ case $am_py_exec_prefix in
+ /usr|/System*) ;;
+ *)
+ am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
+ ;;
+ esac
+ ;;
+ esac
+
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5
+$as_echo "$am_cv_python_pyexecdir" >&6; }
+ pyexecdir=$am_cv_python_pyexecdir
+
+
+
+ pkgpyexecdir=\${pyexecdir}/$PACKAGE
+
+
- if test "x$ac_ct_DLLTOOL" = x; then
- DLLTOOL="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- DLLTOOL=$ac_ct_DLLTOOL
fi
-else
- DLLTOOL="$ac_cv_prog_DLLTOOL"
-fi
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-set dummy ${ac_tool_prefix}objdump; ac_word=$2
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for RM macro" >&5
+$as_echo_n "checking for RM macro... " >&6; }
+_predefined_rm=`make -p -f /dev/null 2>/dev/null|grep '^RM ='|sed -e 's/^RM = //'`
+if test "x$_predefined_rm" = "x"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no predefined RM" >&5
+$as_echo "no predefined RM" >&6; }
+ # Extract the first word of "rm", so it can be a program name with args.
+set dummy rm; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OBJDUMP+:} false; then :
+if ${ac_cv_prog_RM+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$OBJDUMP"; then
- ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
+ if test -n "$RM"; then
+ ac_cv_prog_RM="$RM" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+ ac_cv_prog_RM="rm -f"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
fi
fi
-OBJDUMP=$ac_cv_prog_OBJDUMP
-if test -n "$OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
+RM=$ac_cv_prog_RM
+if test -n "$RM"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RM" >&5
+$as_echo "$RM" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
-fi
-if test -z "$ac_cv_prog_OBJDUMP"; then
- ac_ct_OBJDUMP=$OBJDUMP
- # Extract the first word of "objdump", so it can be a program name with args.
-set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OBJDUMP"; then
- ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_OBJDUMP="objdump"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
-if test -n "$ac_ct_OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_OBJDUMP" = x; then
- OBJDUMP="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- OBJDUMP=$ac_ct_OBJDUMP
- fi
-else
- OBJDUMP="$ac_cv_prog_OBJDUMP"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_predefined_rm" >&5
+$as_echo "$_predefined_rm" >&6; }
fi
- ;;
-esac
-
-test -z "$AS" && AS=as
-
-
-
-
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-
-
-
-
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-
-
-
-
-
-
case `pwd` in
*\ * | *\ *)
ltmain="$ac_aux_dir/ltmain.sh"
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
# Backslashify metacharacters that are still active within
# double-quoted strings.
sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
rm -rf conftest*
;;
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
# Find out which ABI we are using.
echo 'int i;' > conftest.$ac_ext
x86_64-*linux*)
LD="${LD-ld} -m elf_i386"
;;
- ppc64-*linux*|powerpc64-*linux*)
+ powerpc64le-*linux*)
+ LD="${LD-ld} -m elf32lppclinux"
+ ;;
+ powerpc64-*linux*)
LD="${LD-ld} -m elf32ppclinux"
;;
s390x-*linux*)
x86_64-*linux*)
LD="${LD-ld} -m elf_x86_64"
;;
- ppc*-*linux*|powerpc*-*linux*)
+ powerpcle-*linux*)
+ LD="${LD-ld} -m elf64lppc"
+ ;;
+ powerpc-*linux*)
LD="${LD-ld} -m elf64ppc"
;;
s390*-*linux*|s390*-*tpf*)
$as_echo "no" >&6; }
fi
- if test "x$ac_ct_LIPO" = x; then
- LIPO=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- LIPO=$ac_ct_LIPO
- fi
+ if test "x$ac_ct_LIPO" = x; then
+ LIPO=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LIPO=$ac_ct_LIPO
+ fi
+else
+ LIPO="$ac_cv_prog_LIPO"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL"; then
+ ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL=$ac_cv_prog_OTOOL
+if test -n "$OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+$as_echo "$OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL"; then
+ ac_ct_OTOOL=$OTOOL
+ # Extract the first word of "otool", so it can be a program name with args.
+set dummy otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL"; then
+ ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OTOOL="otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
+if test -n "$ac_ct_OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
+$as_echo "$ac_ct_OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL" = x; then
+ OTOOL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL=$ac_ct_OTOOL
+ fi
+else
+ OTOOL="$ac_cv_prog_OTOOL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL64+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL64"; then
+ ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL64=$ac_cv_prog_OTOOL64
+if test -n "$OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
+$as_echo "$OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL64"; then
+ ac_ct_OTOOL64=$OTOOL64
+ # Extract the first word of "otool64", so it can be a program name with args.
+set dummy otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL64"; then
+ ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OTOOL64="otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
+if test -n "$ac_ct_OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
+$as_echo "$ac_ct_OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL64" = x; then
+ OTOOL64=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL64=$ac_ct_OTOOL64
+ fi
+else
+ OTOOL64="$ac_cv_prog_OTOOL64"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+$as_echo_n "checking for -single_module linker flag... " >&6; }
+if ${lt_cv_apple_cc_single_mod+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_apple_cc_single_mod=no
+ if test -z "${LT_MULTI_MODULE}"; then
+ # By default we will add the -single_module flag. You can override
+ # by either setting the environment variable LT_MULTI_MODULE
+ # non-empty at configure time, or by adding -multi_module to the
+ # link flags.
+ rm -rf libconftest.dylib*
+ echo "int foo(void){return 1;}" > conftest.c
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+ _lt_result=$?
+ # If there is a non-empty error log, and "single_module"
+ # appears in it, assume the flag caused a linker warning
+ if test -s conftest.err && $GREP single_module conftest.err; then
+ cat conftest.err >&5
+ # Otherwise, if the output was created with a 0 exit code from
+ # the compiler, it worked.
+ elif test -f libconftest.dylib && test $_lt_result -eq 0; then
+ lt_cv_apple_cc_single_mod=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -rf libconftest.dylib*
+ rm -f conftest.*
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
+if ${lt_cv_ld_exported_symbols_list+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_exported_symbols_list=no
+ save_LDFLAGS=$LDFLAGS
+ echo "_main" > conftest.sym
+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_ld_exported_symbols_list=yes
+else
+ lt_cv_ld_exported_symbols_list=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+$as_echo_n "checking for -force_load linker flag... " >&6; }
+if ${lt_cv_ld_force_load+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_force_load=no
+ cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+ echo "$AR cru libconftest.a conftest.o" >&5
+ $AR cru libconftest.a conftest.o 2>&5
+ echo "$RANLIB libconftest.a" >&5
+ $RANLIB libconftest.a 2>&5
+ cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+ _lt_result=$?
+ if test -s conftest.err && $GREP force_load conftest.err; then
+ cat conftest.err >&5
+ elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
+ lt_cv_ld_force_load=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -f conftest.err libconftest.a conftest conftest.c
+ rm -rf conftest.dSYM
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+$as_echo "$lt_cv_ld_force_load" >&6; }
+ case $host_os in
+ rhapsody* | darwin1.[012])
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+ darwin1.*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ darwin*) # darwin 5.x on
+ # if running on 10.5 or later, the deployment target defaults
+ # to the OS version, if on x86, and 10.4, the deployment
+ # target defaults to 10.4. Don't you love it?
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+ 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ 10.[012]*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ 10.*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ esac
+ ;;
+ esac
+ if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+ _lt_dar_single_mod='$single_module'
+ fi
+ if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+ _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+ else
+ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ fi
+ if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
+ _lt_dsymutil='~$DSYMUTIL $lib || :'
+ else
+ _lt_dsymutil=
+ fi
+ ;;
+ esac
+
+for ac_header in dlfcn.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DLFCN_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+# Set options
+# Check whether --enable-static was given.
+if test "${enable_static+set}" = set; then :
+ enableval=$enable_static; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
else
- LIPO="$ac_cv_prog_LIPO"
+ enable_static=no
fi
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool; ac_word=$2
+
+
+
+
+
+
+enable_win32_dll=yes
+
+case $host in
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
+set dummy ${ac_tool_prefix}as; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL+:} false; then :
+if ${ac_cv_prog_AS+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$OTOOL"; then
- ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
+ if test -n "$AS"; then
+ ac_cv_prog_AS="$AS" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
+ ac_cv_prog_AS="${ac_tool_prefix}as"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
fi
fi
-OTOOL=$ac_cv_prog_OTOOL
-if test -n "$OTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
-$as_echo "$OTOOL" >&6; }
+AS=$ac_cv_prog_AS
+if test -n "$AS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
+$as_echo "$AS" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
-if test -z "$ac_cv_prog_OTOOL"; then
- ac_ct_OTOOL=$OTOOL
- # Extract the first word of "otool", so it can be a program name with args.
-set dummy otool; ac_word=$2
+if test -z "$ac_cv_prog_AS"; then
+ ac_ct_AS=$AS
+ # Extract the first word of "as", so it can be a program name with args.
+set dummy as; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
+if ${ac_cv_prog_ac_ct_AS+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$ac_ct_OTOOL"; then
- ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
+ if test -n "$ac_ct_AS"; then
+ ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_OTOOL="otool"
+ ac_cv_prog_ac_ct_AS="as"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
fi
fi
-ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
-if test -n "$ac_ct_OTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
-$as_echo "$ac_ct_OTOOL" >&6; }
+ac_ct_AS=$ac_cv_prog_ac_ct_AS
+if test -n "$ac_ct_AS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5
+$as_echo "$ac_ct_AS" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
- if test "x$ac_ct_OTOOL" = x; then
- OTOOL=":"
+ if test "x$ac_ct_AS" = x; then
+ AS="false"
else
case $cross_compiling:$ac_tool_warned in
yes:)
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
- OTOOL=$ac_ct_OTOOL
+ AS=$ac_ct_AS
fi
else
- OTOOL="$ac_cv_prog_OTOOL"
+ AS="$ac_cv_prog_AS"
fi
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool64; ac_word=$2
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dlltool; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL64+:} false; then :
+if ${ac_cv_prog_DLLTOOL+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$OTOOL64"; then
- ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
+ if test -n "$DLLTOOL"; then
+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
fi
fi
-OTOOL64=$ac_cv_prog_OTOOL64
-if test -n "$OTOOL64"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
-$as_echo "$OTOOL64" >&6; }
+DLLTOOL=$ac_cv_prog_DLLTOOL
+if test -n "$DLLTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+$as_echo "$DLLTOOL" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
-if test -z "$ac_cv_prog_OTOOL64"; then
- ac_ct_OTOOL64=$OTOOL64
- # Extract the first word of "otool64", so it can be a program name with args.
-set dummy otool64; ac_word=$2
+if test -z "$ac_cv_prog_DLLTOOL"; then
+ ac_ct_DLLTOOL=$DLLTOOL
+ # Extract the first word of "dlltool", so it can be a program name with args.
+set dummy dlltool; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$ac_ct_OTOOL64"; then
- ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
+ if test -n "$ac_ct_DLLTOOL"; then
+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_OTOOL64="otool64"
+ ac_cv_prog_ac_ct_DLLTOOL="dlltool"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
fi
fi
-ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
-if test -n "$ac_ct_OTOOL64"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
-$as_echo "$ac_ct_OTOOL64" >&6; }
+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
+if test -n "$ac_ct_DLLTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+$as_echo "$ac_ct_DLLTOOL" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
- if test "x$ac_ct_OTOOL64" = x; then
- OTOOL64=":"
+ if test "x$ac_ct_DLLTOOL" = x; then
+ DLLTOOL="false"
else
case $cross_compiling:$ac_tool_warned in
yes:)
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
- OTOOL64=$ac_ct_OTOOL64
+ DLLTOOL=$ac_ct_DLLTOOL
fi
else
- OTOOL64="$ac_cv_prog_OTOOL64"
+ DLLTOOL="$ac_cv_prog_DLLTOOL"
fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
-$as_echo_n "checking for -single_module linker flag... " >&6; }
-if ${lt_cv_apple_cc_single_mod+:} false; then :
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OBJDUMP+:} false; then :
$as_echo_n "(cached) " >&6
else
- lt_cv_apple_cc_single_mod=no
- if test -z "${LT_MULTI_MODULE}"; then
- # By default we will add the -single_module flag. You can override
- # by either setting the environment variable LT_MULTI_MODULE
- # non-empty at configure time, or by adding -multi_module to the
- # link flags.
- rm -rf libconftest.dylib*
- echo "int foo(void){return 1;}" > conftest.c
- echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&5
- $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
- -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
- _lt_result=$?
- # If there is a non-empty error log, and "single_module"
- # appears in it, assume the flag caused a linker warning
- if test -s conftest.err && $GREP single_module conftest.err; then
- cat conftest.err >&5
- # Otherwise, if the output was created with a 0 exit code from
- # the compiler, it worked.
- elif test -f libconftest.dylib && test $_lt_result -eq 0; then
- lt_cv_apple_cc_single_mod=yes
- else
- cat conftest.err >&5
- fi
- rm -rf libconftest.dylib*
- rm -f conftest.*
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
-$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
-$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if ${lt_cv_ld_exported_symbols_list+:} false; then :
- $as_echo_n "(cached) " >&6
+ if test -n "$OBJDUMP"; then
+ ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
else
- lt_cv_ld_exported_symbols_list=no
- save_LDFLAGS=$LDFLAGS
- echo "_main" > conftest.sym
- LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_cv_ld_exported_symbols_list=yes
+fi
+fi
+OBJDUMP=$ac_cv_prog_OBJDUMP
+if test -n "$OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
else
- lt_cv_ld_exported_symbols_list=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS="$save_LDFLAGS"
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
-$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
-$as_echo_n "checking for -force_load linker flag... " >&6; }
-if ${lt_cv_ld_force_load+:} false; then :
+fi
+if test -z "$ac_cv_prog_OBJDUMP"; then
+ ac_ct_OBJDUMP=$OBJDUMP
+ # Extract the first word of "objdump", so it can be a program name with args.
+set dummy objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
$as_echo_n "(cached) " >&6
else
- lt_cv_ld_force_load=no
- cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
- $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
- echo "$AR cru libconftest.a conftest.o" >&5
- $AR cru libconftest.a conftest.o 2>&5
- echo "$RANLIB libconftest.a" >&5
- $RANLIB libconftest.a 2>&5
- cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
- $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
- _lt_result=$?
- if test -s conftest.err && $GREP force_load conftest.err; then
- cat conftest.err >&5
- elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
- lt_cv_ld_force_load=yes
- else
- cat conftest.err >&5
- fi
- rm -f conftest.err libconftest.a conftest conftest.c
- rm -rf conftest.dSYM
+ if test -n "$ac_ct_OBJDUMP"; then
+ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OBJDUMP="objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
-$as_echo "$lt_cv_ld_force_load" >&6; }
- case $host_os in
- rhapsody* | darwin1.[012])
- _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
- darwin1.*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- darwin*) # darwin 5.x on
- # if running on 10.5 or later, the deployment target defaults
- # to the OS version, if on x86, and 10.4, the deployment
- # target defaults to 10.4. Don't you love it?
- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
- 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- 10.[012]*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- 10.*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- esac
- ;;
- esac
- if test "$lt_cv_apple_cc_single_mod" = "yes"; then
- _lt_dar_single_mod='$single_module'
- fi
- if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
- _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
- else
- _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
- fi
- if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
- _lt_dsymutil='~$DSYMUTIL $lib || :'
- else
- _lt_dsymutil=
- fi
- ;;
- esac
-
-for ac_header in dlfcn.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_dlfcn_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DLFCN_H 1
-_ACEOF
+fi
+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
+if test -n "$ac_ct_OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+$as_echo "$ac_ct_OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+ if test "x$ac_ct_OBJDUMP" = x; then
+ OBJDUMP="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OBJDUMP=$ac_ct_OBJDUMP
+ fi
+else
+ OBJDUMP="$ac_cv_prog_OBJDUMP"
fi
-done
+ ;;
+esac
+
+test -z "$AS" && AS=as
-# Set options
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+
+
+
+
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+
+
+
+
- # Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then :
- enableval=$enable_static; p=${PACKAGE-default}
- case $enableval in
- yes) enable_static=yes ;;
- no) enable_static=no ;;
- *)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- enable_static=yes
-fi
-
-
-
-
-
-
-
-
# Check whether --with-pic was given.
-# Only expand once:
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
- @echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
- *@@@%%%=?*=@@@%%%*)
- eval ac_cv_prog_make_${ac_make}_set=yes;;
- *)
- eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- SET_MAKE=
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-
-
-
-
-
-
-
-if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
-set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKG_CONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $PKG_CONFIG in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-PKG_CONFIG=$ac_cv_path_PKG_CONFIG
-if test -n "$PKG_CONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
-$as_echo "$PKG_CONFIG" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+# Only expand once:
-fi
-if test -z "$ac_cv_path_PKG_CONFIG"; then
- ac_pt_PKG_CONFIG=$PKG_CONFIG
- # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $ac_pt_PKG_CONFIG in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
- ;;
-esac
-fi
-ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
-if test -n "$ac_pt_PKG_CONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
-$as_echo "$ac_pt_PKG_CONFIG" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
- if test "x$ac_pt_PKG_CONFIG" = x; then
- PKG_CONFIG=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- PKG_CONFIG=$ac_pt_PKG_CONFIG
- fi
-else
- PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
-fi
+LIBT_CURRENT=10
+LIBT_REVISION=0
-fi
-if test -n "$PKG_CONFIG"; then
- _pkg_min_version=0.9.0
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
-$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
- if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- PKG_CONFIG=""
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for RM macro" >&5
-$as_echo_n "checking for RM macro... " >&6; }
-_predefined_rm=`make -p -f /dev/null 2>/dev/null|grep '^RM ='|sed -e 's/^RM = //'`
-if test "x$_predefined_rm" = "x"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no predefined RM" >&5
-$as_echo "no predefined RM" >&6; }
- # Extract the first word of "rm", so it can be a program name with args.
-set dummy rm; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RM+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$RM"; then
- ac_cv_prog_RM="$RM" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_RM="rm -f"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
+LIBT_AGE=9
-fi
-fi
-RM=$ac_cv_prog_RM
-if test -n "$RM"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RM" >&5
-$as_echo "$RM" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+LIBT_VERSION_INFO="$LIBT_CURRENT:$LIBT_REVISION:$LIBT_AGE"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_predefined_rm" >&5
-$as_echo "$_predefined_rm" >&6; }
-fi
+LIBT_CURRENT_MINUS_AGE=`expr $LIBT_CURRENT - $LIBT_AGE`
+
+
+PKGCONFIG_REQUIRES=
+PKGCONFIG_REQUIRES_PRIVATELY=
case "$host" in
fi
+ac_fn_c_check_decl "$LINENO" "__SUNPRO_C" "ac_cv_have_decl___SUNPRO_C" "$ac_includes_default"
+if test "x$ac_cv_have_decl___SUNPRO_C" = xyes; then :
+ SUNCC="yes"
+else
+ SUNCC="no"
+fi
+
WARN_CFLAGS=""
+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"
+ WARNING_CPP_DIRECTIVE="yes"
+fi
+if test "x$WARNING_CPP_DIRECTIVE" = "xyes"; then
cat >>confdefs.h <<_ACEOF
#define HAVE_WARNING_CPP_DIRECTIVE 1
fi
-for ac_header in fcntl.h regex.h stdlib.h string.h unistd.h sys/vfs.h sys/statfs.h sys/param.h sys/mount.h
+for ac_header in fcntl.h stdlib.h string.h unistd.h sys/statvfs.h sys/vfs.h sys/statfs.h sys/param.h sys/mount.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
fi
rm -f conftest.mmap conftest.txt
-for ac_func in geteuid getuid link memmove memset mkstemp mkostemp _mktemp_s strchr strrchr strtol getopt getopt_long sysconf ftruncate chsize rand random lrand48 random_r rand_r regcomp regerror regexec regfree fstatvfs fstatfs lstat
+for ac_func in link mkstemp mkostemp _mktemp_s mkdtemp getopt getopt_long getprogname getexecname rand random lrand48 random_r rand_r readlink fstatvfs fstatfs lstat
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
done
-fc_saved_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS $WARN_CFLAGS -Werror"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for posix_fadvise" >&5
-$as_echo_n "checking for posix_fadvise... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for posix_fadvise in fcntl.h" >&5
+$as_echo_n "checking for posix_fadvise in fcntl.h... " >&6; }
+if ${ac_cv_func_posix_fadvise+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ symbol="[^a-zA-Z_0-9]posix_fadvise[^a-zA-Z_0-9]"
+ac_found=no
+for ac_header in fcntl.h ; do
+ ac_safe=`echo "$ac_header" | sed 'y%./+-%__p_%' `
+ if test $ac_found != "yes" ; then
+ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-
- #include <fcntl.h>
- int main(void) {
- return posix_fadvise(0, 0, 0, 0);
- }
+#include <$ac_header>
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-$as_echo "#define HAVE_POSIX_FADVISE 1" >>confdefs.h
-
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "$symbol" >/dev/null 2>&1; then :
+ ac_found="$ac_header"
+fi
+rm -f conftest*
+ fi
+ fi
+done
+if test "$ac_found" != "no" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_found" >&5
+$as_echo "$ac_found" >&6; }
+ fc_func_posix_fadvise=1
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
+ fc_func_posix_fadvise=0
fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-CFLAGS="$fc_saved_CFLAGS"
+
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_POSIX_FADVISE $fc_func_posix_fadvise
+_ACEOF
+
#
if test "x$ac_cv_func_fstatvfs" = "xyes"; then
fi
-#
-# regex
-#
-if test "x$ac_cv_func_regcomp" = "xyes" -a "x$ac_cv_func_regerror" = "xyes" -a "x$ac_cv_func_regexec" = "xyes" -a "x$ac_cv_func_regfree"; then
-
-$as_echo "#define USE_REGEX /**/" >>confdefs.h
-
-fi
#
# Checks for iconv
if ac_fn_c_try_link "$LINENO"; then :
iconv_type="libiconv"
use_iconv=1
+ ICONV_CFLAGS="$libiconv_cflags"
+ ICONV_LIBS="$libiconv_libs"
+
else
use_iconv=0
fi
CFLAGS="$iconvsaved_CFLAGS"
LIBS="$iconvsaved_LIBS"
- ICONV_CFLAGS="$libiconv_cflags"
- ICONV_LIBS="$libiconv_libs"
fi
if test "x$use_iconv" = "x0"; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
$as_echo "yes" >&6; }
fi
+PKGCONFIG_REQUIRES="$PKGCONFIG_REQUIRES freetype2"
#define HAVE_FT_BITMAP_SIZE_Y_PPEM $HAVE_FT_BITMAP_SIZE_Y_PPEM
_ACEOF
+ac_fn_c_check_member "$LINENO" "TT_OS2" "usLowerOpticalPointSize" "ac_cv_member_TT_OS2_usLowerOpticalPointSize" "
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include FT_TRUETYPE_TABLES_H
+"
+if test "x$ac_cv_member_TT_OS2_usLowerOpticalPointSize" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_TT_OS2_USLOWEROPTICALPOINTSIZE 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "TT_OS2" "usUpperOpticalPointSize" "ac_cv_member_TT_OS2_usUpperOpticalPointSize" "
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include FT_TRUETYPE_TABLES_H
+"
+if test "x$ac_cv_member_TT_OS2_usUpperOpticalPointSize" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_TT_OS2_USUPPEROPTICALPOINTSIZE 1
+_ACEOF
+
+
+fi
+
CFLAGS="$fontconfig_save_cflags"
LIBS="$fontconfig_save_libs"
else
EXPAT_LIBS="-lexpat"
fi
+ else
+ PKGCONFIG_REQUIRES_PRIVATELY="$PKGCONFIG_REQUIRES_PRIVATELY expat"
fi
expatsaved_CPPFLAGS="$CPPFLAGS"
$as_echo "yes" >&6; }
fi
+ PKGCONFIG_REQUIRES_PRIVATELY="$PKGCONFIG_REQUIRES_PRIVATELY libxml-2.0"
cat >>confdefs.h <<_ACEOF
#define ENABLE_LIBXML2 1
case $fc_cachedir in
no|yes)
if test "$os_win32" = "yes"; then
- fc_cachedir="WINDOWSTEMPDIR_FONTCONFIG_CACHE"
+ fc_cachedir="LOCAL_APPDATA_FONTCONFIG_CACHE"
else
fc_cachedir='${localstatedir}/cache/${PACKAGE}'
fi
esac
case "$configdir" in
no|yes)
- configdir='${baseconfigdir}'/conf.d
+ configdir='${BASECONFIGDIR}'/conf.d
;;
*)
;;
-
-
-
-
#
# Thread-safety primitives
#
darwin*)
ax_pthread_flags="-pthread $ax_pthread_flags"
;;
+ netbsd*)
+ # use libc stubs, don't link against libpthread, to allow
+ # dynamic loading
+ ax_pthread_flags=""
+ ;;
esac
+# Clang doesn't consider unrecognized options an error unless we specify
+# -Werror. We throw in some extra Clang-specific options to ensure that
+# this doesn't happen for GCC, which also accepts -Werror.
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler needs -Werror to reject unknown flags" >&5
+$as_echo_n "checking if compiler needs -Werror to reject unknown flags... " >&6; }
+save_CFLAGS="$CFLAGS"
+ax_pthread_extra_flags="-Werror"
+CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int foo(void);
+int
+main ()
+{
+foo()
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ ax_pthread_extra_flags=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+CFLAGS="$save_CFLAGS"
+
if test x"$ax_pthread_ok" = xno; then
for flag in $ax_pthread_flags; do
save_LIBS="$LIBS"
save_CFLAGS="$CFLAGS"
LIBS="$PTHREAD_LIBS $LIBS"
- CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags"
# Check for various functions. We must include pthread.h,
# since some functions may be macros. (On the Sequent, we
if test "$GCC" = "yes"; then
flag="-D_REENTRANT"
else
+ # TODO: What about Clang on Solaris?
flag="-mt -D_REENTRANT"
fi
;;
esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${flag}" >&5
-$as_echo "${flag}" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag" >&5
+$as_echo "$flag" >&6; }
if test "x$flag" != xno; then
PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
fi
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-
- #include <pthread.h>
+#include <pthread.h>
int
main ()
{
LIBS="$save_LIBS"
CFLAGS="$save_CFLAGS"
- # More AIX lossage: must compile with xlc_r or cc_r
- if test x"$GCC" != xyes; then
- for ac_prog in xlc_r cc_r
+ # More AIX lossage: compile with *_r variant
+ if test "x$GCC" != xyes; then
+ case $host_os in
+ aix*)
+ case "x/$CC" in #(
+ x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6) :
+ #handle absolute path differently from PATH based program lookup
+ case "x$CC" in #(
+ x/*) :
+ if as_fn_executable_p ${CC}_r; then :
+ PTHREAD_CC="${CC}_r"
+fi ;; #(
+ *) :
+ for ac_prog in ${CC}_r
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
test -n "$PTHREAD_CC" && break
done
-test -n "$PTHREAD_CC" || PTHREAD_CC="${CC}"
-
- else
- PTHREAD_CC=$CC
+test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
+ ;;
+esac ;; #(
+ *) :
+ ;;
+esac
+ ;;
+ esac
fi
-else
- PTHREAD_CC="$CC"
fi
+test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
+
_ACEOF
+# The cast to long int works around a bug in the HP C Compiler,
+# see AC_CHECK_SIZEOF for more information.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking alignment of void *" >&5
+$as_echo_n "checking alignment of void *... " >&6; }
+if ${ac_cv_alignof_void_p+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) offsetof (ac__type_alignof_, y)" "ac_cv_alignof_void_p" "$ac_includes_default
+#ifndef offsetof
+# define offsetof(type, member) ((char *) &((type *) 0)->member - (char *) 0)
+#endif
+typedef struct { char x; void * y; } ac__type_alignof_;"; then :
+
+else
+ if test "$ac_cv_type_void_p" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "cannot compute alignment of void *
+See \`config.log' for more details" "$LINENO" 5; }
+ else
+ ac_cv_alignof_void_p=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_alignof_void_p" >&5
+$as_echo "$ac_cv_alignof_void_p" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define ALIGNOF_VOID_P $ac_cv_alignof_void_p
+_ACEOF
+
+
+
+
+
-ac_config_files="$ac_config_files Makefile fontconfig/Makefile fc-lang/Makefile fc-glyphname/Makefile fc-case/Makefile src/Makefile conf.d/Makefile fc-cache/Makefile fc-cat/Makefile fc-list/Makefile fc-match/Makefile fc-pattern/Makefile fc-query/Makefile fc-scan/Makefile fc-validate/Makefile doc/Makefile doc/version.sgml test/Makefile fontconfig.spec fontconfig.pc fontconfig-zip"
+ac_config_files="$ac_config_files Makefile fontconfig/Makefile fc-lang/Makefile fc-glyphname/Makefile fc-blanks/Makefile fc-case/Makefile src/Makefile conf.d/Makefile fc-cache/Makefile fc-cat/Makefile fc-list/Makefile fc-match/Makefile fc-pattern/Makefile fc-query/Makefile fc-scan/Makefile fc-validate/Makefile doc/Makefile doc/version.sgml test/Makefile fontconfig.spec fontconfig.pc fontconfig-zip"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by $as_me, which was
+This file was extended by fontconfig $as_me 2.11.93, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
Configuration commands:
$config_commands
-Report bugs to the package provider."
+Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-config.status
+fontconfig config.status 2.11.93
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
sed_quote_subst='$sed_quote_subst'
double_quote_subst='$double_quote_subst'
delay_variable_subst='$delay_variable_subst'
+macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
+enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`'
DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
-macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
-macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
-enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
"fontconfig/Makefile") CONFIG_FILES="$CONFIG_FILES fontconfig/Makefile" ;;
"fc-lang/Makefile") CONFIG_FILES="$CONFIG_FILES fc-lang/Makefile" ;;
"fc-glyphname/Makefile") CONFIG_FILES="$CONFIG_FILES fc-glyphname/Makefile" ;;
+ "fc-blanks/Makefile") CONFIG_FILES="$CONFIG_FILES fc-blanks/Makefile" ;;
"fc-case/Makefile") CONFIG_FILES="$CONFIG_FILES fc-case/Makefile" ;;
"src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
"conf.d/Makefile") CONFIG_FILES="$CONFIG_FILES conf.d/Makefile" ;;
case $ac_file$ac_mode in
"depfiles":C) test x"$AMDEP_TRUE" != x"" || {
- # Autoconf 2.62 quotes --file arguments for eval, but not when files
+ # Older Autoconf quotes --file arguments for eval, but not when files
# are listed without --file. Let's play safe and only enable the eval
# if we detect the quoting.
case $CONFIG_FILES in
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
test -z "$DEPDIR" && continue
am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "am__include" && continue
+ test -z "$am__include" && continue
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
# Find all dependency output files, they are included files with
# $(DEPDIR) in their names. We invoke sed twice because it is the
# ### BEGIN LIBTOOL CONFIG
+# Which release of libtool.m4 was used?
+macro_version=$macro_version
+macro_revision=$macro_revision
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
# Assembler program.
AS=$lt_AS
# Object dumper program.
OBJDUMP=$lt_OBJDUMP
-# Which release of libtool.m4 was used?
-macro_version=$macro_version
-macro_revision=$macro_revision
-
# Whether or not to build shared libraries.
build_libtool_libs=$enable_shared
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
# What type of objects to build.
pic_mode=$pic_mode
dnl Process this file with autoconf to create configure.
AC_PREREQ(2.61)
-AC_INIT(fonts.dtd)
dnl ==========================================================================
dnl Versioning
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
-AM_INIT_AUTOMAKE(fontconfig, 2.10.91)
+AC_INIT([fontconfig], [2.11.93], [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])])
-dnl libtool versioning
-
-dnl bump revision when fixing bugs
-dnl bump current and age, reset revision to zero when adding APIs
-dnl bump current, leave age, reset revision to zero when changing/removing APIS
-LIBT_CURRENT=7
-LIBT_REVISION=2
-AC_SUBST(LIBT_CURRENT)
-AC_SUBST(LIBT_REVISION)
-LIBT_AGE=6
-
-LIBT_VERSION_INFO="$LIBT_CURRENT:$LIBT_REVISION:$LIBT_AGE"
-AC_SUBST(LIBT_VERSION_INFO)
-
-LIBT_CURRENT_MINUS_AGE=`expr $LIBT_CURRENT - $LIBT_AGE`
-AC_SUBST(LIBT_CURRENT_MINUS_AGE)
-
dnl ==========================================================================
AC_CONFIG_HEADERS(config.h)
AC_SYS_LARGEFILE
AC_PROG_INSTALL
AC_PROG_LN_S
-AC_LIBTOOL_WIN32_DLL
-AM_PROG_LIBTOOL
AC_PROG_MAKE_SET
PKG_PROG_PKG_CONFIG
+m4_ifdef([PKG_INSTALLDIR], [PKG_INSTALLDIR], AC_SUBST([pkgconfigdir], ${libdir}/pkgconfig))
+
+AM_MISSING_PROG([GIT], [git])
+AM_MISSING_PROG([GPERF], [gperf])
+AM_PATH_PYTHON
AC_MSG_CHECKING([for RM macro])
_predefined_rm=`make -p -f /dev/null 2>/dev/null|grep '^RM ='|sed -e 's/^RM = //'`
AC_MSG_RESULT($_predefined_rm)
fi
+dnl Initialize libtool
+LT_PREREQ([2.2])
+LT_INIT([disable-static win32-dll])
+
+dnl libtool versioning
+
+dnl bump revision when fixing bugs
+dnl bump current and age, reset revision to zero when adding APIs
+dnl bump current, leave age, reset revision to zero when changing/removing APIS
+LIBT_CURRENT=10
+LIBT_REVISION=0
+AC_SUBST(LIBT_CURRENT)
+AC_SUBST(LIBT_REVISION)
+LIBT_AGE=9
+
+LIBT_VERSION_INFO="$LIBT_CURRENT:$LIBT_REVISION:$LIBT_AGE"
+AC_SUBST(LIBT_VERSION_INFO)
+
+LIBT_CURRENT_MINUS_AGE=`expr $LIBT_CURRENT - $LIBT_AGE`
+AC_SUBST(LIBT_CURRENT_MINUS_AGE)
+
+PKGCONFIG_REQUIRES=
+PKGCONFIG_REQUIRES_PRIVATELY=
+
dnl ==========================================================================
case "$host" in
fi
AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
+AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
WARN_CFLAGS=""
+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"
+ 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
# Checks for header files.
AC_HEADER_DIRENT
AC_HEADER_STDC
-AC_CHECK_HEADERS([fcntl.h regex.h stdlib.h string.h unistd.h sys/vfs.h sys/statfs.h sys/param.h sys/mount.h])
+AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h sys/statvfs.h sys/vfs.h sys/statfs.h sys/param.h sys/mount.h])
AX_CREATE_STDINT_H([src/fcstdint.h])
# Checks for typedefs, structures, and compiler characteristics.
# Checks for library functions.
AC_FUNC_VPRINTF
AC_FUNC_MMAP
-AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp mkostemp _mktemp_s strchr strrchr strtol getopt getopt_long sysconf ftruncate chsize rand random lrand48 random_r rand_r regcomp regerror regexec regfree fstatvfs fstatfs lstat])
+AC_CHECK_FUNCS([link mkstemp mkostemp _mktemp_s mkdtemp getopt getopt_long getprogname getexecname rand random lrand48 random_r rand_r readlink fstatvfs fstatfs lstat])
dnl AC_CHECK_FUNCS doesn't check for header files.
dnl posix_fadvise() may be not available in older libc.
-fc_saved_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS $WARN_CFLAGS -Werror"
-AC_MSG_CHECKING([for posix_fadvise])
-AC_LINK_IFELSE([AC_LANG_SOURCE([[
- #include <fcntl.h>
- int main(void) {
- return posix_fadvise(0, 0, 0, 0);
- }
- ]])],[
- AC_MSG_RESULT([yes])
- AC_DEFINE([HAVE_POSIX_FADVISE], [1], [Define to 1 if you have the 'posix_fadvise' function.])
- ],[AC_MSG_RESULT([no])])
-CFLAGS="$fc_saved_CFLAGS"
+AC_CHECK_SYMBOL([posix_fadvise], [fcntl.h], [fc_func_posix_fadvise=1], [fc_func_posix_fadvise=0])
+AC_DEFINE_UNQUOTED([HAVE_POSIX_FADVISE], [$fc_func_posix_fadvise], [Define to 1 if you have the 'posix_fadvise' function.])
#
if test "x$ac_cv_func_fstatvfs" = "xyes"; then
fi
AC_CHECK_MEMBERS([struct dirent.d_type],,,
[#include <dirent.h>])
-#
-# regex
-#
-if test "x$ac_cv_func_regcomp" = "xyes" -a "x$ac_cv_func_regerror" = "xyes" -a "x$ac_cv_func_regexec" = "xyes" -a "x$ac_cv_func_regfree"; then
- AC_DEFINE(USE_REGEX,,[Use regex])
-fi
#
# Checks for iconv
AC_TRY_LINK([#include <iconv.h>],
[iconv_open ("from", "to");],
[iconv_type="libiconv"
- use_iconv=1],
+ use_iconv=1
+ ICONV_CFLAGS="$libiconv_cflags"
+ ICONV_LIBS="$libiconv_libs"
+ ],
[use_iconv=0])
CFLAGS="$iconvsaved_CFLAGS"
LIBS="$iconvsaved_LIBS"
- ICONV_CFLAGS="$libiconv_cflags"
- ICONV_LIBS="$libiconv_libs"
fi
if test "x$use_iconv" = "x0"; then
AC_TRY_LINK([#include <iconv.h>],
# Checks for FreeType
#
PKG_CHECK_MODULES(FREETYPE, freetype2)
+PKGCONFIG_REQUIRES="$PKGCONFIG_REQUIRES freetype2"
AC_SUBST(FREETYPE_LIBS)
AC_SUBST(FREETYPE_CFLAGS)
#include FT_FREETYPE_H])
AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,$HAVE_FT_BITMAP_SIZE_Y_PPEM,
[FT_Bitmap_Size structure includes y_ppem field])
+AC_CHECK_MEMBERS([TT_OS2.usLowerOpticalPointSize, TT_OS2.usUpperOpticalPointSize], [], [], [[
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include FT_TRUETYPE_TABLES_H]])
CFLAGS="$fontconfig_save_cflags"
LIBS="$fontconfig_save_libs"
else
EXPAT_LIBS="-lexpat"
fi
+ else
+ PKGCONFIG_REQUIRES_PRIVATELY="$PKGCONFIG_REQUIRES_PRIVATELY expat"
fi
expatsaved_CPPFLAGS="$CPPFLAGS"
if test "$enable_libxml2" = "yes"; then
PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6])
+ PKGCONFIG_REQUIRES_PRIVATELY="$PKGCONFIG_REQUIRES_PRIVATELY libxml-2.0"
AC_DEFINE_UNQUOTED(ENABLE_LIBXML2,1,[Use libxml2 instead of Expat])
AC_SUBST(LIBXML2_CFLAGS)
case $fc_cachedir in
no|yes)
if test "$os_win32" = "yes"; then
- fc_cachedir="WINDOWSTEMPDIR_FONTCONFIG_CACHE"
+ fc_cachedir="LOCAL_APPDATA_FONTCONFIG_CACHE"
else
fc_cachedir='${localstatedir}/cache/${PACKAGE}'
fi
esac
case "$configdir" in
no|yes)
- configdir='${baseconfigdir}'/conf.d
+ configdir='${BASECONFIGDIR}'/conf.d
;;
*)
;;
BASECONFIGDIR=${baseconfigdir}
CONFIGDIR=${configdir}
XMLDIR=${xmldir}
-AC_SUBST(templatedir)
AC_SUBST(TEMPLATEDIR)
-AC_SUBST(baseconfigdir)
AC_SUBST(BASECONFIGDIR)
-AC_SUBST(configdir)
AC_SUBST(CONFIGDIR)
-AC_SUBST(xmldir)
AC_SUBST(XMLDIR)
AC_C_BIGENDIAN
AC_CHECK_SIZEOF([void *])
AC_CHECK_ALIGNOF([double])
+AC_CHECK_ALIGNOF([void *])
dnl include the header file for workaround of miscalculating size on autoconf
dnl particularly for fat binaries
AH_BOTTOM([#include "config-fixups.h"])
-AC_OUTPUT([
+dnl
+dnl
+AC_SUBST(PKGCONFIG_REQUIRES)
+AC_SUBST(PKGCONFIG_REQUIRES_PRIVATELY)
+
+dnl
+AC_CONFIG_FILES([
Makefile
fontconfig/Makefile
fc-lang/Makefile
fc-glyphname/Makefile
+fc-blanks/Makefile
fc-case/Makefile
src/Makefile
conf.d/Makefile
fontconfig.pc
fontconfig-zip
])
+AC_OUTPUT
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
-scriptversion=2012-03-27.16; # UTC
+scriptversion=2013-05-30.07; # UTC
-# Copyright (C) 1999-2012 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
# 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
case $1 in
'')
- echo "$0: No command. Try '$0 --help' for more information." 1>&2
- exit 1;
- ;;
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
-h | --h*)
cat <<\EOF
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
;;
esac
+# Get the directory component of the given path, and save it in the
+# global variables '$dir'. Note that this directory component will
+# be either empty or ending with a '/' character. This is deliberate.
+set_dir_from ()
+{
+ case $1 in
+ */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
+ *) dir=;;
+ esac
+}
+
+# Get the suffix-stripped basename of the given path, and save it the
+# global variable '$base'.
+set_base_from ()
+{
+ base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
+}
+
+# If no dependency file was actually created by the compiler invocation,
+# we still have to create a dummy depfile, to avoid errors with the
+# Makefile "include basename.Plo" scheme.
+make_dummy_depfile ()
+{
+ echo "#dummy" > "$depfile"
+}
+
+# Factor out some common post-processing of the generated depfile.
+# Requires the auxiliary global variable '$tmpdepfile' to be set.
+aix_post_process_depfile ()
+{
+ # If the compiler actually managed to produce a dependency file,
+ # post-process it.
+ if test -f "$tmpdepfile"; then
+ # Each line is of the form 'foo.o: dependency.h'.
+ # Do two passes, one to just change these to
+ # $object: dependency.h
+ # and one to simply output
+ # dependency.h:
+ # which is needed to avoid the deleted-header problem.
+ { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
+ sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
+ } > "$depfile"
+ rm -f "$tmpdepfile"
+ else
+ make_dummy_depfile
+ fi
+}
+
# A tabulation character.
tab=' '
# A newline character.
nl='
'
+# Character ranges might be problematic outside the C locale.
+# These definitions help.
+upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
+lower=abcdefghijklmnopqrstuvwxyz
+digits=0123456789
+alpha=${upper}${lower}
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
rm -f "$tmpdepfile"
+# Avoid interferences from the environment.
+gccflag= dashmflag=
+
# Some modes work just like other modes, but use different flags. We
# parameterize here, but still list the modes in the big case below,
# to make depend.m4 easier to write. Note that we *cannot* use a case
fi
if test "$depmode" = dashXmstdout; then
- # This is just like dashmstdout with a different argument.
- dashmflag=-xM
- depmode=dashmstdout
+ # This is just like dashmstdout with a different argument.
+ dashmflag=-xM
+ depmode=dashmstdout
fi
cygpath_u="cygpath -u -f -"
if test "$depmode" = msvcmsys; then
- # This is just like msvisualcpp but w/o cygpath translation.
- # Just convert the backslash-escaped backslashes to single forward
- # slashes to satisfy depend.m4
- cygpath_u='sed s,\\\\,/,g'
- depmode=msvisualcpp
+ # This is just like msvisualcpp but w/o cygpath translation.
+ # Just convert the backslash-escaped backslashes to single forward
+ # slashes to satisfy depend.m4
+ cygpath_u='sed s,\\\\,/,g'
+ depmode=msvisualcpp
fi
if test "$depmode" = msvc7msys; then
- # This is just like msvc7 but w/o cygpath translation.
- # Just convert the backslash-escaped backslashes to single forward
- # slashes to satisfy depend.m4
- cygpath_u='sed s,\\\\,/,g'
- depmode=msvc7
+ # This is just like msvc7 but w/o cygpath translation.
+ # Just convert the backslash-escaped backslashes to single forward
+ # slashes to satisfy depend.m4
+ cygpath_u='sed s,\\\\,/,g'
+ depmode=msvc7
fi
if test "$depmode" = xlc; then
- # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations.
- gccflag=-qmakedep=gcc,-MF
- depmode=gcc
+ # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
+ gccflag=-qmakedep=gcc,-MF
+ depmode=gcc
fi
case "$depmode" in
done
"$@"
stat=$?
- if test $stat -eq 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
;;
gcc)
+## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
+## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
+## (see the conditional assignment to $gccflag above).
## There are various ways to get dependency output from gcc. Here's
## why we pick this rather obscure method:
## - Don't want to use -MD because we'd like the dependencies to end
## up in a subdir. Having to rename by hand is ugly.
## (We might end up doing this anyway to support other compilers.)
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
-## -MM, not -M (despite what the docs say).
+## -MM, not -M (despite what the docs say). Also, it might not be
+## supported by the other compilers which use the 'gcc' depmode.
## - Using -M directly means running the compiler twice (even worse
## than renaming).
if test -z "$gccflag"; then
fi
"$@" -Wp,"$gccflag$tmpdepfile"
stat=$?
- if test $stat -eq 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
- alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
-## The second -e expression handles DOS-style file names with drive letters.
+ # The second -e expression handles DOS-style file names with drive
+ # letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
## This next piece of magic avoids the "deleted header file" problem.
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
- tr ' ' "$nl" < "$tmpdepfile" |
## Some versions of gcc put a space before the ':'. On the theory
## that the space means something, we add a space to the output as
## well. hp depmode also adds that space, but also prefixes the VPATH
## to the object. Take care to not repeat it in the output.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
- | sed -e 's/$/ :/' >> "$depfile"
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
"$@" -MDupdate "$tmpdepfile"
fi
stat=$?
- if test $stat -eq 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
echo "$object : \\" > "$depfile"
-
# Clip off the initial element (the dependent). Don't try to be
# clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in
# the IRIX cc adds comments like '#:fec' to the end of the
# dependency line.
tr ' ' "$nl" < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
- tr "$nl" ' ' >> "$depfile"
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
+ | tr "$nl" ' ' >> "$depfile"
echo >> "$depfile"
-
# The second pass generates a dummy entry for each header file.
tr ' ' "$nl" < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
- >> "$depfile"
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+ >> "$depfile"
else
- # The sourcefile does not contain any dependencies, so just
- # store a dummy comment line, to avoid errors with the Makefile
- # "include basename.Plo" scheme.
- echo "#dummy" > "$depfile"
+ make_dummy_depfile
fi
rm -f "$tmpdepfile"
;;
# current directory. Also, the AIX compiler puts '$object:' at the
# start of each line; $object doesn't have directory information.
# Version 6 uses the directory in both cases.
- dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
- test "x$dir" = "x$object" && dir=
- base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+ set_dir_from "$object"
+ set_base_from "$object"
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.u
tmpdepfile2=$base.u
"$@" -M
fi
stat=$?
-
- if test $stat -eq 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
exit $stat
fi
do
test -f "$tmpdepfile" && break
done
- if test -f "$tmpdepfile"; then
- # Each line is of the form 'foo.o: dependent.h'.
- # Do two passes, one to just change these to
- # '$object: dependent.h' and one to simply 'dependent.h:'.
- sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
- sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
- else
- # The sourcefile does not contain any dependencies, so just
- # store a dummy comment line, to avoid errors with the Makefile
- # "include basename.Plo" scheme.
- echo "#dummy" > "$depfile"
+ aix_post_process_depfile
+ ;;
+
+tcc)
+ # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
+ # FIXME: That version still under development at the moment of writing.
+ # Make that this statement remains true also for stable, released
+ # versions.
+ # It will wrap lines (doesn't matter whether long or short) with a
+ # trailing '\', as in:
+ #
+ # foo.o : \
+ # foo.c \
+ # foo.h \
+ #
+ # It will put a trailing '\' even on the last line, and will use leading
+ # spaces rather than leading tabs (at least since its commit 0394caf7
+ # "Emit spaces for -MD").
+ "$@" -MD -MF "$tmpdepfile"
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
fi
+ rm -f "$depfile"
+ # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
+ # We have to change lines of the first kind to '$object: \'.
+ sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
+ # And for each line of the second kind, we have to emit a 'dep.h:'
+ # dummy dependency, to avoid the deleted-header problem.
+ sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
rm -f "$tmpdepfile"
;;
-icc)
- # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'.
- # However on
- # $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c
- # ICC 7.0 will fill foo.d with something like
- # foo.o: sub/foo.c
- # foo.o: sub/foo.h
- # which is wrong. We want
- # sub/foo.o: sub/foo.c
- # sub/foo.o: sub/foo.h
- # sub/foo.c:
- # sub/foo.h:
- # ICC 7.1 will output
+## The order of this option in the case statement is important, since the
+## shell code in configure will try each of these formats in the order
+## listed in this file. A plain '-MD' option would be understood by many
+## compilers, so we must ensure this comes after the gcc and icc options.
+pgcc)
+ # Portland's C compiler understands '-MD'.
+ # Will always output deps to 'file.d' where file is the root name of the
+ # source file under compilation, even if file resides in a subdirectory.
+ # The object file name does not affect the name of the '.d' file.
+ # pgcc 10.2 will output
# foo.o: sub/foo.c sub/foo.h
- # and will wrap long lines using '\':
+ # and will wrap long lines using '\' :
# foo.o: sub/foo.c ... \
# sub/foo.h ... \
# ...
- # tcc 0.9.26 (FIXME still under development at the moment of writing)
- # will emit a similar output, but also prepend the continuation lines
- # with horizontal tabulation characters.
- "$@" -MD -MF "$tmpdepfile"
- stat=$?
- if test $stat -eq 0; then :
- else
+ set_dir_from "$object"
+ # Use the source, not the object, to determine the base name, since
+ # that's sadly what pgcc will do too.
+ set_base_from "$source"
+ tmpdepfile=$base.d
+
+ # For projects that build the same source file twice into different object
+ # files, the pgcc approach of using the *source* file root name can cause
+ # problems in parallel builds. Use a locking strategy to avoid stomping on
+ # the same $tmpdepfile.
+ lockdir=$base.d-lock
+ trap "
+ echo '$0: caught signal, cleaning up...' >&2
+ rmdir '$lockdir'
+ exit 1
+ " 1 2 13 15
+ numtries=100
+ i=$numtries
+ while test $i -gt 0; do
+ # mkdir is a portable test-and-set.
+ if mkdir "$lockdir" 2>/dev/null; then
+ # This process acquired the lock.
+ "$@" -MD
+ stat=$?
+ # Release the lock.
+ rmdir "$lockdir"
+ break
+ else
+ # If the lock is being held by a different process, wait
+ # until the winning process is done or we timeout.
+ while test -d "$lockdir" && test $i -gt 0; do
+ sleep 1
+ i=`expr $i - 1`
+ done
+ fi
+ i=`expr $i - 1`
+ done
+ trap - 1 2 13 15
+ if test $i -le 0; then
+ echo "$0: failed to acquire lock after $numtries attempts" >&2
+ echo "$0: check lockdir '$lockdir'" >&2
+ exit 1
+ fi
+
+ if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
- # Each line is of the form 'foo.o: dependent.h',
- # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
+ # Each line is of the form `foo.o: dependent.h',
+ # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
# Do two passes, one to just change these to
- # '$object: dependent.h' and one to simply 'dependent.h:'.
- sed -e "s/^[ $tab][ $tab]*/ /" -e "s,^[^:]*:,$object :," \
- < "$tmpdepfile" > "$depfile"
- sed '
- s/[ '"$tab"'][ '"$tab"']*/ /g
- s/^ *//
- s/ *\\*$//
- s/^[^:]*: *//
- /^$/d
- /:$/d
- s/$/ :/
- ' < "$tmpdepfile" >> "$depfile"
+ # `$object: dependent.h' and one to simply `dependent.h:'.
+ sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process this invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
+ | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
# 'foo.d', which lands next to the object file, wherever that
# happens to be.
# Much of this is similar to the tru64 case; see comments there.
- dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
- test "x$dir" = "x$object" && dir=
- base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+ set_dir_from "$object"
+ set_base_from "$object"
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir.libs/$base.d
"$@" +Maked
fi
stat=$?
- if test $stat -eq 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile1" "$tmpdepfile2"
exit $stat
fi
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
- sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
+ sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
# Add 'dependent.h:' lines.
sed -ne '2,${
- s/^ *//
- s/ \\*$//
- s/$/:/
- p
- }' "$tmpdepfile" >> "$depfile"
+ s/^ *//
+ s/ \\*$//
+ s/$/:/
+ p
+ }' "$tmpdepfile" >> "$depfile"
else
- echo "#dummy" > "$depfile"
+ make_dummy_depfile
fi
rm -f "$tmpdepfile" "$tmpdepfile2"
;;
tru64)
- # The Tru64 compiler uses -MD to generate dependencies as a side
- # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
- # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
- # dependencies in 'foo.d' instead, so we check for that too.
- # Subdirectories are respected.
- dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
- test "x$dir" = "x$object" && dir=
- base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
-
- if test "$libtool" = yes; then
- # With Tru64 cc, shared objects can also be used to make a
- # static library. This mechanism is used in libtool 1.4 series to
- # handle both shared and static libraries in a single compilation.
- # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
- #
- # With libtool 1.5 this exception was removed, and libtool now
- # generates 2 separate objects for the 2 libraries. These two
- # compilations output dependencies in $dir.libs/$base.o.d and
- # in $dir$base.o.d. We have to check for both files, because
- # one of the two compilations can be disabled. We should prefer
- # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
- # automatically cleaned when .libs/ is deleted, while ignoring
- # the former would cause a distcleancheck panic.
- tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
- tmpdepfile2=$dir$base.o.d # libtool 1.5
- tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
- tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
- "$@" -Wc,-MD
- else
- tmpdepfile1=$dir$base.o.d
- tmpdepfile2=$dir$base.d
- tmpdepfile3=$dir$base.d
- tmpdepfile4=$dir$base.d
- "$@" -MD
- fi
-
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
- exit $stat
- fi
-
- for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
- do
- test -f "$tmpdepfile" && break
- done
- if test -f "$tmpdepfile"; then
- sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
- sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
- else
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
- ;;
+ # The Tru64 compiler uses -MD to generate dependencies as a side
+ # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
+ # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+ # dependencies in 'foo.d' instead, so we check for that too.
+ # Subdirectories are respected.
+ set_dir_from "$object"
+ set_base_from "$object"
+
+ if test "$libtool" = yes; then
+ # Libtool generates 2 separate objects for the 2 libraries. These
+ # two compilations output dependencies in $dir.libs/$base.o.d and
+ # in $dir$base.o.d. We have to check for both files, because
+ # one of the two compilations can be disabled. We should prefer
+ # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+ # automatically cleaned when .libs/ is deleted, while ignoring
+ # the former would cause a distcleancheck panic.
+ tmpdepfile1=$dir$base.o.d # libtool 1.5
+ tmpdepfile2=$dir.libs/$base.o.d # Likewise.
+ tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
+ "$@" -Wc,-MD
+ else
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir$base.d
+ tmpdepfile3=$dir$base.d
+ "$@" -MD
+ fi
+
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ # Same post-processing that is required for AIX mode.
+ aix_post_process_depfile
+ ;;
msvc7)
if test "$libtool" = yes; then
"$@" $showIncludes > "$tmpdepfile"
stat=$?
grep -v '^Note: including file: ' "$tmpdepfile"
- if test "$stat" = 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
G
p
}' >> "$depfile"
+ echo >> "$depfile" # make sure the fragment doesn't end with a backslash
rm -f "$tmpdepfile"
;;
# in the target name. This is to cope with DOS-style filenames:
# a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
"$@" $dashmflag |
- sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile"
+ sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
- tr ' ' "$nl" < "$tmpdepfile" | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process this sed invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
# makedepend may prepend the VPATH from the source file name to the object.
# No need to regex-escape $object, excess matching of '.' is harmless.
sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
- sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process the last invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ sed '1,2d' "$tmpdepfile" \
+ | tr ' ' "$nl" \
+ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" "$tmpdepfile".bak
;;
esac
done
- "$@" -E |
- sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
- -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
- sed '$ s: \\$::' > "$tmpdepfile"
+ "$@" -E \
+ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+ | sed '$ s: \\$::' > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile"
shift
;;
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
- set fnord "$@"
- shift
- shift
- ;;
+ set fnord "$@"
+ shift
+ shift
+ ;;
*)
- set fnord "$@" "$arg"
- shift
- shift
- ;;
+ set fnord "$@" "$arg"
+ shift
+ shift
+ ;;
esac
done
"$@" -E 2>/dev/null |
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcAtomicCreate" "3" "10 1月 2013" "" ""
+.TH "FcAtomicCreate" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcAtomicCreate \- create an FcAtomic object
.SH SYNOPSIS
Writing is done to a separate file. Once that file is complete, the original
configuration file is atomically replaced so that reading process always see
a consistent and complete file without the need to lock for reading.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcAtomicDeleteNew" "3" "10 1月 2013" "" ""
+.TH "FcAtomicDeleteNew" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcAtomicDeleteNew \- delete new file
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Deletes the new file. Used in error recovery to back out changes.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcAtomicDestroy" "3" "10 1月 2013" "" ""
+.TH "FcAtomicDestroy" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcAtomicDestroy \- destroy an FcAtomic object
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Destroys \fIatomic\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcAtomicLock" "3" "10 1月 2013" "" ""
+.TH "FcAtomicLock" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcAtomicLock \- lock a file
.SH SYNOPSIS
Attempts to lock the file referenced by \fIatomic\fR\&.
Returns FcFalse if the file is already locked, else returns FcTrue and
leaves the file locked.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcAtomicNewFile" "3" "10 1月 2013" "" ""
+.TH "FcAtomicNewFile" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcAtomicNewFile \- return new temporary file name
.SH SYNOPSIS
.PP
Returns the filename for writing a new version of the file referenced
by \fIatomic\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcAtomicOrigFile" "3" "10 1月 2013" "" ""
+.TH "FcAtomicOrigFile" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcAtomicOrigFile \- return original file name
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Returns the file referenced by \fIatomic\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcAtomicReplaceOrig" "3" "10 1月 2013" "" ""
+.TH "FcAtomicReplaceOrig" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcAtomicReplaceOrig \- replace original with new
.SH SYNOPSIS
Replaces the original file referenced by \fIatomic\fR with
the new file. Returns FcFalse if the file cannot be replaced due to
permission issues in the filesystem. Otherwise returns FcTrue.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcAtomicUnlock" "3" "10 1月 2013" "" ""
+.TH "FcAtomicUnlock" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcAtomicUnlock \- unlock a file
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Unlocks the file.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcBlanksAdd" "3" "10 1月 2013" "" ""
+.TH "FcBlanksAdd" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcBlanksAdd \- Add a character to an FcBlanks
.SH SYNOPSIS
.PP
Adds a single character to an FcBlanks object, returning FcFalse
if this process ran out of memory.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcBlanksCreate" "3" "10 1月 2013" "" ""
+.TH "FcBlanksCreate" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcBlanksCreate \- Create an FcBlanks
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Creates an empty FcBlanks object.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcBlanksDestroy" "3" "10 1月 2013" "" ""
+.TH "FcBlanksDestroy" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcBlanksDestroy \- Destroy and FcBlanks
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Destroys an FcBlanks object, freeing any associated memory.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcBlanksIsMember" "3" "10 1月 2013" "" ""
+.TH "FcBlanksIsMember" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcBlanksIsMember \- Query membership in an FcBlanks
.SH SYNOPSIS
.PP
Returns whether the specified FcBlanks object contains the indicated Unicode
value.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcCacheCopySet" "3" "10 1月 2013" "" ""
+.TH "FcCacheCopySet" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcCacheCopySet \- Returns a copy of the fontset from cache
.SH SYNOPSIS
The returned fontset contains each of the font patterns from
\fIcache\fR\&. This fontset may be modified, but the patterns
from the cache are read-only.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcCacheCreateTagFile" "3" "10 1月 2013" "" ""
+.TH "FcCacheCreateTagFile" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcCacheCreateTagFile \- Create CACHEDIR.TAG at cache directory.
.SH SYNOPSIS
.PP
This tries to create CACHEDIR.TAG file at the cache directory registered
to \fIconfig\fR\&.
-.SH "VERSION"
+.SH "SINCE"
.PP
-Fontconfig version 2.10.91
+version 2.9.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcCacheDir" "3" "10 1月 2013" "" ""
+.TH "FcCacheDir" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcCacheDir \- Return directory of cache
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
This function returns the directory from which the cache was constructed.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcCacheNumFont" "3" "10 1月 2013" "" ""
+.TH "FcCacheNumFont" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcCacheNumFont \- Returns the number of fonts in cache.
.SH SYNOPSIS
.PP
This returns the number of fonts which would be included in the return from
FcCacheCopySet.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcCacheNumSubdir" "3" "10 1月 2013" "" ""
+.TH "FcCacheNumSubdir" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcCacheNumSubdir \- Return the number of subdirectories in cache.
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
This returns the total number of subdirectories in the cache.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcCacheSubdir" "3" "10 1月 2013" "" ""
+.TH "FcCacheSubdir" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcCacheSubdir \- Return the i'th subdirectory.
.SH SYNOPSIS
function, \fIi\fR should range from 0 to
\fIn\fR-1, where \fIn\fR is the return
value from FcCacheNumSubdir.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcCharSetAddChar" "3" "10 1月 2013" "" ""
+.TH "FcCharSetAddChar" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcCharSetAddChar \- Add a character to a charset
.SH SYNOPSIS
\fBFcCharSetAddChar\fR adds a single Unicode char to the set,
returning FcFalse on failure, either as a result of a constant set or from
running out of memory.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcCharSetCopy" "3" "10 1月 2013" "" ""
+.TH "FcCharSetCopy" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcCharSetCopy \- Copy a charset
.SH SYNOPSIS
.PP
Makes a copy of \fIsrc\fR; note that this may not actually do anything more
than increment the reference count on \fIsrc\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcCharSetCount" "3" "10 1月 2013" "" ""
+.TH "FcCharSetCount" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcCharSetCount \- Count entries in a charset
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Returns the total number of Unicode chars in \fIa\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcCharSetCoverage" "3" "10 1月 2013" "" ""
+.TH "FcCharSetCoverage" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcCharSetCoverage \- DEPRECATED return coverage for a Unicode page
.SH SYNOPSIS
\fIpage\fR are included in \fIa\fR\&.
\fBFcCharSetCoverage\fR returns the next page in the charset which has any
coverage.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcCharSetCreate" "3" "10 1月 2013" "" ""
+.TH "FcCharSetCreate" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcCharSetCreate \- Create an empty character set
.SH SYNOPSIS
.PP
\fBFcCharSetCreate\fR allocates and initializes a new empty
character set object.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcCharSetDelChar" "3" "10 1月 2013" "" ""
+.TH "FcCharSetDelChar" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcCharSetDelChar \- Add a character to a charset
.SH SYNOPSIS
\fBFcCharSetDelChar\fR deletes a single Unicode char from the set,
returning FcFalse on failure, either as a result of a constant set or from
running out of memory.
-.SH "VERSION"
+.SH "SINCE"
.PP
-Fontconfig version 2.10.91
+version 2.9.0
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcCharSetDestroy" "3" "10 1月 2013" "" ""
+.TH "FcCharSetDestroy" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcCharSetDestroy \- Destroy a character set
.SH SYNOPSIS
\fBFcCharSetDestroy\fR decrements the reference count
\fIfcs\fR\&. If the reference count becomes zero, all
memory referenced is freed.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcCharSetEqual" "3" "10 1月 2013" "" ""
+.TH "FcCharSetEqual" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcCharSetEqual \- Compare two charsets
.SH SYNOPSIS
.PP
Returns whether \fIa\fR and \fIb\fR
contain the same set of Unicode chars.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcCharSetFirstPage" "3" "10 1月 2013" "" ""
+.TH "FcCharSetFirstPage" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcCharSetFirstPage \- Start enumerating charset contents
.SH SYNOPSIS
.fi\fR
.SH "DESCRIPTION"
.PP
-Builds an array of bits marking the first page of Unicode coverage of
-\fIa\fR\&. Returns the base of the array. \fInext\fR contains the next page in the
-font.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
+Builds an array of bits in \fImap\fR marking the
+first page of Unicode coverage of \fIa\fR\&.
+\fI*next\fR is set to contains the base code point
+for the next page in \fIa\fR\&. Returns the base code
+point for the page, or FC_CHARSET_DONE if
+\fIa\fR contains no pages. As an example, if
+\fBFcCharSetFirstPage\fR returns
+0x300 and fills \fImap\fR with
+.sp
+.nf
+0xffffffff 0xffffffff 0x01000008 0x44300002 0xffffd7f0 0xfffffffb 0xffff7fff 0xffff0003
+.sp
+.fi
+Then the page contains code points 0x300 through
+0x33f (the first 64 code points on the page)
+because \fImap[0]\fR and
+\fImap[1]\fR both have all their bits set. It also
+contains code points 0x343 (\fI0x300 + 32*2
++ (4-1)\fR) and 0x35e (\fI0x300 +
+32*2 + (31-1)\fR) because \fImap[2]\fR has
+the 4th and 31st bits set. The code points represented by
+map[3] and later are left as an excercise for the
+reader ;).
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcCharSetHasChar" "3" "10 1月 2013" "" ""
+.TH "FcCharSetHasChar" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcCharSetHasChar \- Check a charset for a char
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Returns whether \fIfcs\fR contains the char \fIucs4\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcCharSetIntersect" "3" "10 1月 2013" "" ""
+.TH "FcCharSetIntersect" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcCharSetIntersect \- Intersect charsets
.SH SYNOPSIS
.PP
Returns a set including only those chars found in both
\fIa\fR and \fIb\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcCharSetIntersectCount" "3" "10 1月 2013" "" ""
+.TH "FcCharSetIntersectCount" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcCharSetIntersectCount \- Intersect and count charsets
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Returns the number of chars that are in both \fIa\fR and \fIb\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcCharSetIsSubset" "3" "10 1月 2013" "" ""
+.TH "FcCharSetIsSubset" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcCharSetIsSubset \- Test for charset inclusion
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Returns whether \fIa\fR is a subset of \fIb\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcCharSetMerge" "3" "10 1月 2013" "" ""
+.TH "FcCharSetMerge" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcCharSetMerge \- Merge charsets
.SH SYNOPSIS
chars from \fIb\fR were added to \fIa\fR\&.
Returns FcFalse on failure, either when \fIa\fR is a constant
set or from running out of memory.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcCharSetNew" "3" "10 1月 2013" "" ""
+.TH "FcCharSetNew" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcCharSetNew \- DEPRECATED alias for FcCharSetCreate
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
\fBFcCharSetNew\fR is a DEPRECATED alias for FcCharSetCreate.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcCharSetNextPage" "3" "10 1月 2013" "" ""
+.TH "FcCharSetNextPage" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcCharSetNextPage \- Continue enumerating charset contents
.SH SYNOPSIS
.fi\fR
.SH "DESCRIPTION"
.PP
-Builds an array of bits marking the Unicode coverage of \fIa\fR for page
-\fI*next\fR\&. Returns the base of the array. \fInext\fR contains the next page in
-the font.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
+Builds an array of bits in \fImap\fR marking the
+Unicode coverage of \fIa\fR for page containing
+\fI*next\fR (see the
+\fBFcCharSetFirstPage\fR description for details).
+\fI*next\fR is set to contains the base code point
+for the next page in \fIa\fR\&. Returns the base of
+code point for the page, or FC_CHARSET_DONE if
+\fIa\fR does not contain
+\fI*next\fR\&.
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcCharSetSubtract" "3" "10 1月 2013" "" ""
+.TH "FcCharSetSubtract" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcCharSetSubtract \- Subtract charsets
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Returns a set including only those chars found in \fIa\fR but not \fIb\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcCharSetSubtractCount" "3" "10 1月 2013" "" ""
+.TH "FcCharSetSubtractCount" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcCharSetSubtractCount \- Subtract and count charsets
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Returns the number of chars that are in \fIa\fR but not in \fIb\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcCharSetUnion" "3" "10 1月 2013" "" ""
+.TH "FcCharSetUnion" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcCharSetUnion \- Add charsets
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Returns a set including only those chars found in either \fIa\fR or \fIb\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcConfigAppFontAddDir" "3" "10 1月 2013" "" ""
+.TH "FcConfigAppFontAddDir" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcConfigAppFontAddDir \- Add fonts from directory to font database
.SH SYNOPSIS
.PP
Scans the specified directory for fonts, adding each one found to the
application-specific set of fonts. Returns FcFalse
-if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue.
-If \fIconfig\fR is NULL, the current configuration is used.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
+if the fonts cannot be added (due to allocation failure or no fonts found).
+Otherwise returns FcTrue. If \fIconfig\fR is NULL,
+the current configuration is used.
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcConfigAppFontAddFile" "3" "10 1月 2013" "" ""
+.TH "FcConfigAppFontAddFile" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcConfigAppFontAddFile \- Add font file to font database
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Adds an application-specific font to the configuration. Returns FcFalse
-if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue.
-If \fIconfig\fR is NULL, the current configuration is used.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
+if the fonts cannot be added (due to allocation failure or no fonts found).
+Otherwise returns FcTrue. If \fIconfig\fR is NULL,
+the current configuration is used.
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcConfigAppFontClear" "3" "10 1月 2013" "" ""
+.TH "FcConfigAppFontClear" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcConfigAppFontClear \- Remove all app fonts from font database
.SH SYNOPSIS
.PP
Clears the set of application-specific fonts.
If \fIconfig\fR is NULL, the current configuration is used.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcConfigBuildFonts" "3" "10 1月 2013" "" ""
+.TH "FcConfigBuildFonts" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcConfigBuildFonts \- Build font database
.SH SYNOPSIS
any changes to the configuration after this call have indeterminate effects.
Returns FcFalse if this operation runs out of memory.
If \fIconfig\fR is NULL, the current configuration is used.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcConfigCreate" "3" "10 1月 2013" "" ""
+.TH "FcConfigCreate" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcConfigCreate \- Create a configuration
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Creates an empty configuration.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcConfigDestroy" "3" "10 1月 2013" "" ""
+.TH "FcConfigDestroy" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcConfigDestroy \- Destroy a configuration
.SH SYNOPSIS
the configuration and any data associated with it.
Note that calling this function with the return from FcConfigGetCurrent will
cause a new configuration to be created for use as current configuration.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcConfigEnableHome" "3" "10 1月 2013" "" ""
+.TH "FcConfigEnableHome" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcConfigEnableHome \- controls use of the home directory.
.SH SYNOPSIS
notation in the configuration). When \fIenable\fR is
FcFalse, then all use of the home directory in these contexts will be
disabled. The previous setting of the value is returned.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcConfigFilename" "3" "10 1月 2013" "" ""
+.TH "FcConfigFilename" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcConfigFilename \- Find a config file
.SH SYNOPSIS
doesn't start with '/', it refers to a file in the default configuration
directory; the built-in default directory can be overridden with the
FONTCONFIG_PATH environment variable.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcConfigGetBlanks" "3" "10 1月 2013" "" ""
+.TH "FcConfigGetBlanks" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcConfigGetBlanks \- Get config blanks
.SH SYNOPSIS
The returned FcBlanks object if not NULL, is valid as long as the owning
FcConfig is alive.
If \fIconfig\fR is NULL, the current configuration is used.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcConfigGetCache" "3" "10 1月 2013" "" ""
+.TH "FcConfigGetCache" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcConfigGetCache \- DEPRECATED used to return per-user cache filename
.SH SYNOPSIS
.PP
With fontconfig no longer using per-user cache files, this function now
simply returns NULL to indicate that no per-user file exists.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcConfigGetCacheDirs" "3" "10 1月 2013" "" ""
+.TH "FcConfigGetCacheDirs" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcConfigGetCacheDirs \- return the list of directories searched for cache files
.SH SYNOPSIS
all of the directories that fontconfig will search when attempting to load a
cache file for a font directory.
If \fIconfig\fR is NULL, the current configuration is used.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcConfigGetConfigDirs" "3" "10 1月 2013" "" ""
+.TH "FcConfigGetConfigDirs" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcConfigGetConfigDirs \- Get config directories
.SH SYNOPSIS
Returns the list of font directories specified in the configuration files
for \fIconfig\fR\&. Does not include any subdirectories.
If \fIconfig\fR is NULL, the current configuration is used.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcConfigGetConfigFiles" "3" "10 1月 2013" "" ""
+.TH "FcConfigGetConfigFiles" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcConfigGetConfigFiles \- Get config files
.SH SYNOPSIS
.PP
Returns the list of known configuration files used to generate \fIconfig\fR\&.
If \fIconfig\fR is NULL, the current configuration is used.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcConfigGetCurrent" "3" "10 1月 2013" "" ""
+.TH "FcConfigGetCurrent" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcConfigGetCurrent \- Return current configuration
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Returns the current default configuration.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcConfigGetFontDirs" "3" "10 1月 2013" "" ""
+.TH "FcConfigGetFontDirs" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcConfigGetFontDirs \- Get font directories
.SH SYNOPSIS
configured font directories along with any directories below those in the
filesystem.
If \fIconfig\fR is NULL, the current configuration is used.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcConfigGetFonts" "3" "10 1月 2013" "" ""
+.TH "FcConfigGetFonts" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcConfigGetFonts \- Get config font set
.SH SYNOPSIS
by \fIset\fR\&. This font set is owned by the library and must
not be modified or freed.
If \fIconfig\fR is NULL, the current configuration is used.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcConfigGetRescanInterval" "3" "10 1月 2013" "" ""
+.TH "FcConfigGetRescanInterval" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcConfigGetRescanInterval \- Get config rescan interval
.SH SYNOPSIS
a call to FcFontList when this interval has passed since the last check.
An interval setting of zero disables automatic checks.
If \fIconfig\fR is NULL, the current configuration is used.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
--- /dev/null
+.\" auto-generated by docbook2man-spec from docbook-utils package
+.TH "FcConfigGetSysRoot" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
+.SH NAME
+FcConfigGetSysRoot \- Obtain the system root directory
+.SH SYNOPSIS
+.nf
+\fB#include <fontconfig/fontconfig.h>
+.sp
+const FcChar8 * FcConfigGetSysRoot (const FcConfig *\fIconfig\fB);
+.fi\fR
+.SH "DESCRIPTION"
+.PP
+Obtrains the system root directory in 'config' if available.
+.SH "SINCE"
+.PP
+version 2.10.92
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcConfigHome" "3" "10 1月 2013" "" ""
+.TH "FcConfigHome" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcConfigHome \- return the current home directory.
.SH SYNOPSIS
Return the current user's home directory, if it is available, and if using it
is enabled, and NULL otherwise.
See also \fBFcConfigEnableHome\fR).
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcConfigParseAndLoad" "3" "10 1月 2013" "" ""
+.TH "FcConfigParseAndLoad" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcConfigParseAndLoad \- load a configuration file
.SH SYNOPSIS
\&'file' does not exist. Error and warning messages will be output to stderr.
Returns FcFalse if some error occurred while loading the file, either a
parse error, semantic error or allocation failure. Otherwise returns FcTrue.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcConfigReference" "3" "10 1月 2013" "" ""
+.TH "FcConfigReference" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcConfigReference \- Increment config reference count
.SH SYNOPSIS
In that case this function will be similar to FcConfigGetCurrent() except that
it increments the reference count before returning and the user is responsible
for destroying the configuration when not needed anymore.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcConfigSetCurrent" "3" "10 1月 2013" "" ""
+.TH "FcConfigSetCurrent" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcConfigSetCurrent \- Set configuration as default
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Sets the current default configuration to \fIconfig\fR\&. Implicitly calls
-FcConfigBuildFonts if necessary, returning FcFalse if that call fails.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
+FcConfigBuildFonts if necessary, and FcConfigReference() to inrease the reference count
+in \fIconfig\fR since 2.12.0, returning FcFalse if that call fails.
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcConfigSetRescanInterval" "3" "10 1月 2013" "" ""
+.TH "FcConfigSetRescanInterval" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcConfigSetRescanInterval \- Set config rescan interval
.SH SYNOPSIS
to allocation failure). Otherwise returns FcTrue.
An interval setting of zero disables automatic checks.
If \fIconfig\fR is NULL, the current configuration is used.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
--- /dev/null
+.\" auto-generated by docbook2man-spec from docbook-utils package
+.TH "FcConfigSetSysRoot" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
+.SH NAME
+FcConfigSetSysRoot \- Set the system root directory
+.SH SYNOPSIS
+.nf
+\fB#include <fontconfig/fontconfig.h>
+.sp
+void FcConfigSetSysRoot (FcConfig *\fIconfig\fB, const FcChar8 *\fIsysroot\fB);
+.fi\fR
+.SH "DESCRIPTION"
+.PP
+Set 'sysroot' as the system root directory. fontconfig prepend 'sysroot'
+to the cache directories in order to allow people to generate caches at
+the build time. Note that this causes changing current config. i.e.
+this function calls FcConfigSetCurrent() internally.
+.SH "SINCE"
+.PP
+version 2.10.92
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcConfigSubstitute" "3" "10 1月 2013" "" ""
+.TH "FcConfigSubstitute" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcConfigSubstitute \- Execute substitutions
.SH SYNOPSIS
Calls FcConfigSubstituteWithPat setting p_pat to NULL. Returns FcFalse
if the substitution cannot be performed (due to allocation failure). Otherwise returns FcTrue.
If \fIconfig\fR is NULL, the current configuration is used.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcConfigSubstituteWithPat" "3" "10 1月 2013" "" ""
+.TH "FcConfigSubstituteWithPat" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcConfigSubstituteWithPat \- Execute substitutions
.SH SYNOPSIS
p_pat is used for <test> elements with target=pattern. Returns FcFalse
if the substitution cannot be performed (due to allocation failure). Otherwise returns FcTrue.
If \fIconfig\fR is NULL, the current configuration is used.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcConfigUptoDate" "3" "10 1月 2013" "" ""
+.TH "FcConfigUptoDate" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcConfigUptoDate \- Check timestamps on config files
.SH SYNOPSIS
Checks all of the files related to \fIconfig\fR and returns
whether any of them has been modified since the configuration was created.
If \fIconfig\fR is NULL, the current configuration is used.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcDefaultSubstitute" "3" "10 1月 2013" "" ""
+.TH "FcDefaultSubstitute" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcDefaultSubstitute \- Perform default substitutions in a pattern
.SH SYNOPSIS
Patterns without a specified pixel size are given one computed from any
specified point size (default 12), dpi (default 75) and scale (default 1).
.PP
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcDirCacheClean" "3" "10 1月 2013" "" ""
+.TH "FcDirCacheClean" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcDirCacheClean \- This tries to clean up the cache directory of cache_dir.This returns FcTrue if the operation is successfully complete. otherwise FcFalse.
.SH SYNOPSIS
.fi\fR
.SH "DESCRIPTION"
.PP
-.SH "VERSION"
+.SH "SINCE"
.PP
-Fontconfig version 2.10.91
+version 2.9.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcDirCacheLoad" "3" "10 1月 2013" "" ""
+.TH "FcDirCacheLoad" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcDirCacheLoad \- load a directory cache
.SH SYNOPSIS
exists, returns NULL. The name of the cache file is returned in
\fIcache_file\fR, unless that is NULL. See also
FcDirCacheRead.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcDirCacheLoadFile" "3" "10 1月 2013" "" ""
+.TH "FcDirCacheLoadFile" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcDirCacheLoadFile \- load a cache file
.SH SYNOPSIS
This function loads a directory cache from
\fIcache_file\fR\&. If \fIfile_stat\fR is
non-NULL, it will be filled with the results of stat(2) on the cache file.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcDirCacheRead" "3" "10 1月 2013" "" ""
+.TH "FcDirCacheRead" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcDirCacheRead \- read or construct a directory cache
.SH SYNOPSIS
\fIforce\fR is FcFalse, then an existing, valid cache file
will be used. Otherwise, a new cache will be created by scanning the
directory and that returned.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
--- /dev/null
+.\" auto-generated by docbook2man-spec from docbook-utils package
+.TH "FcDirCacheRescan" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
+.SH NAME
+FcDirCacheRescan \- Re-scan a directory cache
+.SH SYNOPSIS
+.nf
+\fB#include <fontconfig/fontconfig.h>
+.sp
+FcCache * FcDirCacheRescan (const FcChar8 *\fIdir\fB, FcConfig *\fIconfig\fB);
+.fi\fR
+.SH "DESCRIPTION"
+.PP
+Re-scan directories only at \fIdir\fR and update the cache.
+returns NULL if failed.
+.SH "SINCE"
+.PP
+version 2.11.1
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcDirCacheUnlink" "3" "10 1月 2013" "" ""
+.TH "FcDirCacheUnlink" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcDirCacheUnlink \- Remove all caches related to dir
.SH SYNOPSIS
instances of the cache file for \fIdir\fR\&. Returns FcFalse
when some internal error occurs (out of memory, etc). Errors actually
unlinking any files are ignored.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcDirCacheUnload" "3" "10 1月 2013" "" ""
+.TH "FcDirCacheUnload" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcDirCacheUnload \- unload a cache file
.SH SYNOPSIS
.PP
This function dereferences \fIcache\fR\&. When no other
references to it remain, all memory associated with the cache will be freed.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcDirCacheValid" "3" "10 1月 2013" "" ""
+.TH "FcDirCacheValid" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcDirCacheValid \- check directory cache
.SH SYNOPSIS
.PP
Returns FcTrue if \fIdir\fR has an associated valid cache
file, else returns FcFalse
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcDirSave" "3" "10 1月 2013" "" ""
+.TH "FcDirSave" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcDirSave \- DEPRECATED: formerly used to save a directory cache
.SH SYNOPSIS
with the fonts in \fIset\fR and subdirectories in
\fIdirs\fR\&. All of this functionality is now automatically
managed by FcDirCacheLoad and FcDirCacheRead.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcDirScan" "3" "10 1月 2013" "" ""
+.TH "FcDirScan" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcDirScan \- scan a font directory without caching it
.SH SYNOPSIS
Any subdirectories found are added to \fIdirs\fR\&. Calling
this function does not create any cache files. Use FcDirCacheRead() if
caching is desired.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcFileIsDir" "3" "10 1月 2013" "" ""
+.TH "FcFileIsDir" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcFileIsDir \- check whether a file is a directory
.SH SYNOPSIS
.PP
Returns FcTrue if \fIfile\fR is a directory, otherwise
returns FcFalse.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcFileScan" "3" "10 1月 2013" "" ""
+.TH "FcFileScan" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcFileScan \- scan a font file
.SH SYNOPSIS
applications. The configuration can ignore fonts based on filename or
contents of the font file itself. Returns FcFalse if any of the fonts cannot be
added (due to allocation failure). Otherwise returns FcTrue.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcFini" "3" "10 1月 2013" "" ""
+.TH "FcFini" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcFini \- finalize fontconfig library
.SH SYNOPSIS
functions. Fontconfig returns to an uninitialized state, requiring a
new call to one of the FcInit functions before any other fontconfig
function may be called.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcFontList" "3" "10 1月 2013" "" ""
+.TH "FcFontList" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcFontList \- List fonts
.SH SYNOPSIS
only the objects in \fIos\fR and returns the set of unique such patterns.
If \fIconfig\fR is NULL, the default configuration is checked
to be up to date, and used.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcFontMatch" "3" "10 1月 2013" "" ""
+.TH "FcFontMatch" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcFontMatch \- Return best font
.SH SYNOPSIS
\fBFcDefaultSubstitute\fR have been called for
\fIp\fR; otherwise the results will not be correct.
If \fIconfig\fR is NULL, the current configuration is used.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcFontRenderPrepare" "3" "10 1月 2013" "" ""
+.TH "FcFontRenderPrepare" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcFontRenderPrepare \- Prepare pattern for loading font file
.SH SYNOPSIS
in \fIpat\fR, elements of \fIpat\fR not appearing in \fIfont\fR and the best matching
value from \fIpat\fR for elements appearing in both. The result is passed to
FcConfigSubstituteWithPat with \fIkind\fR FcMatchFont and then returned.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcFontSetAdd" "3" "10 1月 2013" "" ""
+.TH "FcFontSetAdd" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcFontSetAdd \- Add to a font set
.SH SYNOPSIS
Adds a pattern to a font set. Note that the pattern is not copied before
being inserted into the set. Returns FcFalse if the pattern cannot be
inserted into the set (due to allocation failure). Otherwise returns FcTrue.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcFontSetCreate" "3" "10 1月 2013" "" ""
+.TH "FcFontSetCreate" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcFontSetCreate \- Create a font set
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Creates an empty font set.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcFontSetDestroy" "3" "10 1月 2013" "" ""
+.TH "FcFontSetDestroy" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcFontSetDestroy \- Destroy a font set
.SH SYNOPSIS
.PP
Destroys a font set. Note that this destroys any referenced patterns as
well.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcFontSetList" "3" "10 1月 2013" "" ""
+.TH "FcFontSetList" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcFontSetList \- List fonts from a set of font sets
.SH SYNOPSIS
the set of unique such patterns.
If \fIconfig\fR is NULL, the default configuration is checked
to be up to date, and used.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcFontSetMatch" "3" "10 1月 2013" "" ""
+.TH "FcFontSetMatch" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcFontSetMatch \- Return the best font from a set of font sets
.SH SYNOPSIS
\fIpattern\fR; otherwise the results will not be correct.
If \fIconfig\fR is NULL, the current configuration is used.
Returns NULL if an error occurs during this process.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcFontSetPrint" "3" "10 1月 2013" "" ""
+.TH "FcFontSetPrint" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcFontSetPrint \- Print a set of patterns to stdout
.SH SYNOPSIS
complete contents of every pattern in \fIset\fR\&. The format
of the output is designed to be of help to users and developers, and may
change at any time.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcFontSetSort" "3" "10 1月 2013" "" ""
+.TH "FcFontSetSort" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcFontSetSort \- Add to a font set
.SH SYNOPSIS
\fBFcFontRenderPrepare\fR which combines them into a complete pattern.
.PP
The FcFontSet returned by FcFontSetSort is destroyed by calling FcFontSetDestroy.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcFontSetSortDestroy" "3" "10 1月 2013" "" ""
+.TH "FcFontSetSortDestroy" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcFontSetSortDestroy \- DEPRECATED destroy a font set
.SH SYNOPSIS
destroys \fIset\fR by calling
\fBFcFontSetDestroy\fR\&. Applications should use
\fBFcFontSetDestroy\fR directly instead.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcFontSort" "3" "10 1月 2013" "" ""
+.TH "FcFontSort" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcFontSort \- Return list of matching fonts
.SH SYNOPSIS
.PP
The FcFontSet returned by FcFontSort is destroyed by calling FcFontSetDestroy.
If \fIconfig\fR is NULL, the current configuration is used.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcFreeTypeCharIndex" "3" "10 1月 2013" "" ""
+.TH "FcFreeTypeCharIndex" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcFreeTypeCharIndex \- map Unicode to glyph id
.SH SYNOPSIS
As a result, this function isn't designed to be used in performance
sensitive areas; results from this function are intended to be cached by
higher level functions.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcFreeTypeCharSet" "3" "10 1月 2013" "" ""
+.TH "FcFreeTypeCharSet" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcFreeTypeCharSet \- compute Unicode coverage
.SH SYNOPSIS
several encoding tables to build as complete a list as possible.
If 'blanks' is not 0, the glyphs in the font are examined and any blank glyphs
not in 'blanks' are not placed in the returned FcCharSet.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcFreeTypeCharSetAndSpacing" "3" "10 1月 2013" "" ""
+.TH "FcFreeTypeCharSetAndSpacing" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcFreeTypeCharSetAndSpacing \- compute Unicode coverage and spacing type
.SH SYNOPSIS
FC_DUAL, where the font has glyphs in precisely two widths, one twice as
wide as the other, or FC_PROPORTIONAL where the font has glyphs of many
widths.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcFreeTypeQuery" "3" "10 1月 2013" "" ""
+.TH "FcFreeTypeQuery" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcFreeTypeQuery \- compute pattern from font file (and index)
.SH SYNOPSIS
.PP
Constructs a pattern representing the 'id'th font in 'file'. The number
of fonts in 'file' is returned in 'count'.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcFreeTypeQueryFace" "3" "10 1月 2013" "" ""
+.TH "FcFreeTypeQueryFace" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcFreeTypeQueryFace \- compute pattern from FT_Face
.SH SYNOPSIS
.PP
Constructs a pattern representing 'face'. 'file' and 'id' are used solely as
data for pattern elements (FC_FILE, FC_INDEX and sometimes FC_FAMILY).
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcGetDefaultLangs" "3" "10 1月 2013" "" ""
+.TH "FcGetDefaultLangs" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcGetDefaultLangs \- Get the default languages list
.SH SYNOPSIS
.nf
\fB#include <fontconfig/fontconfig.h>
.sp
-FcStrSet * FcGetDefaultLangs (void\fIls\fB);
+FcStrSet * FcGetDefaultLangs (void\fI\fB);
.fi\fR
.SH "DESCRIPTION"
.PP
Returns a string set of the default languages according to the environment variables on the system.
This function looks for them in order of FC_LANG, LC_ALL, LC_CTYPE and LANG then.
If there are no valid values in those environment variables, "en" will be set as fallback.
-.SH "VERSION"
+.SH "SINCE"
.PP
-Fontconfig version 2.10.91
+version 2.9.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcGetLangs" "3" "10 1月 2013" "" ""
+.TH "FcGetLangs" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcGetLangs \- Get list of languages
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Returns a string set of all known languages.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcGetVersion" "3" "10 1月 2013" "" ""
+.TH "FcGetVersion" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcGetVersion \- library version number
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Returns the version number of the library.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcInit" "3" "10 1月 2013" "" ""
+.TH "FcInit" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcInit \- initialize fontconfig library
.SH SYNOPSIS
sets the default configuration to that result. Returns whether this
process succeeded or not. If the default configuration has already
been loaded, this routine does nothing and returns FcTrue.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcInitBringUptoDate" "3" "10 1月 2013" "" ""
+.TH "FcInitBringUptoDate" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcInitBringUptoDate \- reload configuration files if needed
.SH SYNOPSIS
configuration if the interval has passed and reloading the configuration if
when any changes are detected. Returns FcFalse if the configuration cannot
be reloaded (see FcInitReinitialize). Otherwise returns FcTrue.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcInitLoadConfig" "3" "10 1月 2013" "" ""
+.TH "FcInitLoadConfig" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcInitLoadConfig \- load configuration
.SH SYNOPSIS
.PP
Loads the default configuration file and returns the resulting configuration.
Does not load any font information.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcInitLoadConfigAndFonts" "3" "10 1月 2013" "" ""
+.TH "FcInitLoadConfigAndFonts" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcInitLoadConfigAndFonts \- load configuration and font data
.SH SYNOPSIS
.PP
Loads the default configuration file and builds information about the
available fonts. Returns the resulting configuration.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcInitReinitialize" "3" "10 1月 2013" "" ""
+.TH "FcInitReinitialize" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcInitReinitialize \- re-initialize library
.SH SYNOPSIS
configuration. Returns FcFalse if the configuration cannot be reloaded (due
to configuration file errors, allocation failures or other issues) and leaves the
existing configuration unchanged. Otherwise returns FcTrue.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcIsLower" "3" "10 1月 2013" "" ""
+.TH "FcIsLower" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcIsLower \- check for lower case ASCII character
.SH SYNOPSIS
.PP
This macro checks whether \fIc\fR is an lower case ASCII
letter.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcIsUpper" "3" "10 1月 2013" "" ""
+.TH "FcIsUpper" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcIsUpper \- check for upper case ASCII character
.SH SYNOPSIS
.PP
This macro checks whether \fIc\fR is a upper case ASCII
letter.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcLangGetCharSet" "3" "10 1月 2013" "" ""
+.TH "FcLangGetCharSet" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcLangGetCharSet \- Get character map for a language
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Returns the FcCharMap for a language.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcLangNormalize" "3" "10 1月 2013" "" ""
+.TH "FcLangNormalize" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcLangNormalize \- Normalize the language string
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Returns a string to make \fIlang\fR suitable on fontconfig.
-.SH "VERSION"
+.SH "SINCE"
.PP
-Fontconfig version 2.10.91
+version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcLangSetAdd" "3" "10 1月 2013" "" ""
+.TH "FcLangSetAdd" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcLangSetAdd \- add a language to a langset
.SH SYNOPSIS
\fIlang\fR should be of the form Ll-Tt where Ll is a
two or three letter language from ISO 639 and Tt is a territory from ISO
3166.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcLangSetCompare" "3" "10 1月 2013" "" ""
+.TH "FcLangSetCompare" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcLangSetCompare \- compare language sets
.SH SYNOPSIS
share a language but differ in which territory that language is for, this
function returns FcLangDifferentTerritory. If they share no languages in
common, this function returns FcLangDifferentLang.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcLangSetContains" "3" "10 1月 2013" "" ""
+.TH "FcLangSetContains" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcLangSetContains \- check langset subset relation
.SH SYNOPSIS
language from \fIls_b\fR if \fIls_a\fR
has exactly the language, or either the language or
\fIls_a\fR has no territory.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcLangSetCopy" "3" "10 1月 2013" "" ""
+.TH "FcLangSetCopy" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcLangSetCopy \- copy a langset object
.SH SYNOPSIS
.PP
\fBFcLangSetCopy\fR creates a new FcLangSet object and
populates it with the contents of \fIls\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcLangSetCreate" "3" "10 1月 2013" "" ""
+.TH "FcLangSetCreate" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcLangSetCreate \- create a langset object
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
\fBFcLangSetCreate\fR creates a new FcLangSet object.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcLangSetDel" "3" "10 1月 2013" "" ""
+.TH "FcLangSetDel" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcLangSetDel \- delete a language from a langset
.SH SYNOPSIS
\fIlang\fR should be of the form Ll-Tt where Ll is a
two or three letter language from ISO 639 and Tt is a territory from ISO
3166.
-.SH "VERSION"
+.SH "SINCE"
.PP
-Fontconfig version 2.10.91
+version 2.9.0
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcLangSetDestroy" "3" "10 1月 2013" "" ""
+.TH "FcLangSetDestroy" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcLangSetDestroy \- destroy a langset object
.SH SYNOPSIS
.PP
\fBFcLangSetDestroy\fR destroys a FcLangSet object, freeing
all memory associated with it.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcLangSetEqual" "3" "10 1月 2013" "" ""
+.TH "FcLangSetEqual" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcLangSetEqual \- test for matching langsets
.SH SYNOPSIS
.PP
Returns FcTrue if and only if \fIls_a\fR supports precisely
the same language and territory combinations as \fIls_b\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
--- /dev/null
+.\" auto-generated by docbook2man-spec from docbook-utils package
+.TH "FcLangSetGetLangs" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
+.SH NAME
+FcLangSetGetLangs \- get the list of languages in the langset
+.SH SYNOPSIS
+.nf
+\fB#include <fontconfig/fontconfig.h>
+.sp
+FcStrSet * FcLangSetGetLangs (const FcLangSet *\fIls\fB);
+.fi\fR
+.SH "DESCRIPTION"
+.PP
+Returns a string set of all languages in \fIlangset\fR\&.
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcLangSetHasLang" "3" "10 1月 2013" "" ""
+.TH "FcLangSetHasLang" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcLangSetHasLang \- test langset for language support
.SH SYNOPSIS
a matching language but differs in which territory that language is for, this
function returns FcLangDifferentTerritory. If \fIls\fR
has no matching language, this function returns FcLangDifferentLang.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcLangSetHash" "3" "10 1月 2013" "" ""
+.TH "FcLangSetHash" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcLangSetHash \- return a hash value for a langset
.SH SYNOPSIS
\fIls\fR will have the same result from
\fBFcLangSetHash\fR\&. However, two langsets with the same hash
value may not be equal.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcLangSetSubtract" "3" "10 1月 2013" "" ""
+.TH "FcLangSetSubtract" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcLangSetSubtract \- Subtract langsets
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Returns a set including only those languages found in \fIls_a\fR but not in \fIls_b\fR\&.
-.SH "VERSION"
+.SH "SINCE"
.PP
-Fontconfig version 2.10.91
+version 2.9.0
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcLangSetUnion" "3" "10 1月 2013" "" ""
+.TH "FcLangSetUnion" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcLangSetUnion \- Add langsets
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Returns a set including only those languages found in either \fIls_a\fR or \fIls_b\fR\&.
-.SH "VERSION"
+.SH "SINCE"
.PP
-Fontconfig version 2.10.91
+version 2.9.0
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcMatrixCopy" "3" "10 1月 2013" "" ""
+.TH "FcMatrixCopy" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcMatrixCopy \- Copy a matrix
.SH SYNOPSIS
.PP
\fBFcMatrixCopy\fR allocates a new FcMatrix
and copies \fImat\fR into it.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcMatrixEqual" "3" "10 1月 2013" "" ""
+.TH "FcMatrixEqual" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcMatrixEqual \- Compare two matrices
.SH SYNOPSIS
\fBFcMatrixEqual\fR compares \fImatrix1\fR
and \fImatrix2\fR returning FcTrue when they are equal and
FcFalse when they are not.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcMatrixInit" "3" "10 1月 2013" "" ""
+.TH "FcMatrixInit" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcMatrixInit \- initialize an FcMatrix structure
.SH SYNOPSIS
.PP
\fBFcMatrixInit\fR initializes \fImatrix\fR
to the identity matrix.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcMatrixMultiply" "3" "10 1月 2013" "" ""
+.TH "FcMatrixMultiply" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcMatrixMultiply \- Multiply matrices
.SH SYNOPSIS
\fBFcMatrixMultiply\fR multiplies
\fImatrix1\fR and \fImatrix2\fR storing
the result in \fIresult\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcMatrixRotate" "3" "10 1月 2013" "" ""
+.TH "FcMatrixRotate" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcMatrixRotate \- Rotate a matrix
.SH SYNOPSIS
sin cos
.sp
.fi
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcMatrixScale" "3" "10 1月 2013" "" ""
+.TH "FcMatrixScale" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcMatrixScale \- Scale a matrix
.SH SYNOPSIS
0 dy
.sp
.fi
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcMatrixShear" "3" "10 1月 2013" "" ""
+.TH "FcMatrixShear" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcMatrixShear \- Shear a matrix
.SH SYNOPSIS
sv 1
.sp
.fi
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcNameConstant" "3" "10 1月 2013" "" ""
+.TH "FcNameConstant" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcNameConstant \- Get the value for a symbolic constant
.SH SYNOPSIS
.PP
Returns whether a symbolic constant with name \fIstring\fR is registered,
placing the value of the constant in \fIresult\fR if present.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcNameGetConstant" "3" "10 1月 2013" "" ""
+.TH "FcNameGetConstant" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcNameGetConstant \- Lookup symbolic constant
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Return the FcConstant structure related to symbolic constant \fIstring\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcNameGetObjectType" "3" "10 1月 2013" "" ""
+.TH "FcNameGetObjectType" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcNameGetObjectType \- Lookup an object type
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Return the object type for the pattern element named \fIobject\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcNameParse" "3" "10 1月 2013" "" ""
+.TH "FcNameParse" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcNameParse \- Parse a pattern string
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Converts \fIname\fR from the standard text format described above into a pattern.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcNameRegisterConstants" "3" "10 1月 2013" "" ""
+.TH "FcNameRegisterConstants" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcNameRegisterConstants \- Register symbolic constants
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Deprecated. Does nothing. Returns FcFalse.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcNameRegisterObjectTypes" "3" "10 1月 2013" "" ""
+.TH "FcNameRegisterObjectTypes" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcNameRegisterObjectTypes \- Register object types
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Deprecated. Does nothing. Returns FcFalse.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcNameUnparse" "3" "10 1月 2013" "" ""
+.TH "FcNameUnparse" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcNameUnparse \- Convert a pattern back into a string that can be parsed
.SH SYNOPSIS
Converts the given pattern into the standard text format described above.
The return value is not static, but instead refers to newly allocated memory
which should be freed by the caller using free().
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcNameUnregisterConstants" "3" "10 1月 2013" "" ""
+.TH "FcNameUnregisterConstants" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcNameUnregisterConstants \- Unregister symbolic constants
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Deprecated. Does nothing. Returns FcFalse.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcNameUnregisterObjectTypes" "3" "10 1月 2013" "" ""
+.TH "FcNameUnregisterObjectTypes" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcNameUnregisterObjectTypes \- Unregister object types
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Deprecated. Does nothing. Returns FcFalse.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcObjectSetAdd" "3" "10 1月 2013" "" ""
+.TH "FcObjectSetAdd" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcObjectSetAdd \- Add to an object set
.SH SYNOPSIS
.PP
Adds a property name to the set. Returns FcFalse if the property name cannot be
inserted into the set (due to allocation failure). Otherwise returns FcTrue.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcObjectSetBuild" "3" "10 1月 2013" "" ""
+.TH "FcObjectSetBuild" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcObjectSetBuild, FcObjectSetVaBuild, FcObjectSetVapBuild \- Build object set from args
.SH SYNOPSIS
These build an object set from a null-terminated list of property names.
FcObjectSetVapBuild is a macro version of FcObjectSetVaBuild which returns
the result in the \fIresult\fR variable directly.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcObjectSetCreate" "3" "10 1月 2013" "" ""
+.TH "FcObjectSetCreate" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcObjectSetCreate \- Create an object set
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Creates an empty set.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcObjectSetDestroy" "3" "10 1月 2013" "" ""
+.TH "FcObjectSetDestroy" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcObjectSetDestroy \- Destroy an object set
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Destroys an object set.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcPatternAdd-Type" "3" "10 1月 2013" "" ""
+.TH "FcPatternAdd-Type" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
-FcPatternAddInteger, FcPatternAddDouble, FcPatternAddString, FcPatternAddMatrix, FcPatternAddCharSet, FcPatternAddBool, FcPatternAddFTFace, FcPatternAddLangSet \- Add a typed value to a pattern
+FcPatternAddInteger, FcPatternAddDouble, FcPatternAddString, FcPatternAddMatrix, FcPatternAddCharSet, FcPatternAddBool, FcPatternAddFTFace, FcPatternAddLangSet, FcPatternAddRange \- Add a typed value to a pattern
.SH SYNOPSIS
.nf
\fB#include <fontconfig/fontconfig.h>
FcBool FcPatternAddFTFace (FcPattern *\fIp\fB, const char *\fIobject\fB, const FT_Face\fIf\fB);
.sp
FcBool FcPatternAddLangSet (FcPattern *\fIp\fB, const char *\fIobject\fB, const FcLangSet *\fIl\fB);
+.sp
+FcBool FcPatternAddRange (FcPattern *\fIp\fB, const char *\fIobject\fB, const FcRange *\fIr\fB);
.fi\fR
.SH "DESCRIPTION"
.PP
type into the pattern. Use these in preference to FcPatternAdd as they
will provide compile-time typechecking. These all append values to
any existing list of values.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
+\fBFcPatternAddRange\fR are available since 2.11.91.
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcPatternAdd" "3" "10 1月 2013" "" ""
+.TH "FcPatternAdd" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcPatternAdd \- Add a value to a pattern
.SH SYNOPSIS
existing list, otherwise it is inserted at the beginning. `value' is saved
(with FcValueSave) when inserted into the pattern so that the library
retains no reference to any application-supplied data structure.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcPatternAddWeak" "3" "10 1月 2013" "" ""
+.TH "FcPatternAddWeak" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcPatternAddWeak \- Add a value to a pattern with weak binding
.SH SYNOPSIS
.PP
FcPatternAddWeak is essentially the same as FcPatternAdd except that any
values added to the list have binding \fIweak\fR instead of \fIstrong\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcPatternBuild" "3" "10 1月 2013" "" ""
+.TH "FcPatternBuild" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcPatternBuild, FcPatternVaBuild, FcPatternVapBuild \- Create patterns from arguments
.SH SYNOPSIS
which returns its result directly in the \fIresult\fR
variable.
.PP
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcPatternCreate" "3" "10 1月 2013" "" ""
+.TH "FcPatternCreate" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcPatternCreate \- Create a pattern
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Creates a pattern with no properties; used to build patterns from scratch.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcPatternDel" "3" "10 1月 2013" "" ""
+.TH "FcPatternDel" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcPatternDel \- Delete a property from a pattern
.SH SYNOPSIS
.PP
Deletes all values associated with the property `object', returning
whether the property existed or not.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcPatternDestroy" "3" "10 1月 2013" "" ""
+.TH "FcPatternDestroy" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcPatternDestroy \- Destroy a pattern
.SH SYNOPSIS
.PP
Decrement the pattern reference count. If all references are gone, destroys
the pattern, in the process destroying all related values.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcPatternDuplicate" "3" "10 1月 2013" "" ""
+.TH "FcPatternDuplicate" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcPatternDuplicate \- Copy a pattern
.SH SYNOPSIS
Copy a pattern, returning a new pattern that matches
\fIp\fR\&. Each pattern may be modified without affecting the
other.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcPatternEqual" "3" "10 1月 2013" "" ""
+.TH "FcPatternEqual" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcPatternEqual \- Compare patterns
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Returns whether \fIpa\fR and \fIpb\fR are exactly alike.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcPatternEqualSubset" "3" "10 1月 2013" "" ""
+.TH "FcPatternEqualSubset" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcPatternEqualSubset \- Compare portions of patterns
.SH SYNOPSIS
.PP
Returns whether \fIpa\fR and \fIpb\fR have exactly the same values for all of the
objects in \fIos\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcPatternFilter" "3" "10 1月 2013" "" ""
+.TH "FcPatternFilter" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcPatternFilter \- Filter the objects of pattern
.SH SYNOPSIS
\fIp\fR that are in \fIos\fR\&.
If \fIos\fR is NULL, a duplicate of
\fIp\fR is returned.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcPatternFormat" "3" "10 1月 2013" "" ""
+.TH "FcPatternFormat" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcPatternFormat \- Format a pattern into a string according to a format specifier
.SH SYNOPSIS
For example, the format "%{family|downcase|delete( )}\\n" will expand
to the values of the family element in \fIpattern\fR,
lower-cased and with spaces removed.
-.SH "VERSION"
+.SH "SINCE"
.PP
-Fontconfig version 2.10.91
+version 2.9.0
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcPatternGet-Type" "3" "10 1月 2013" "" ""
+.TH "FcPatternGet-Type" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
-FcPatternGetInteger, FcPatternGetDouble, FcPatternGetString, FcPatternGetMatrix, FcPatternGetCharSet, FcPatternGetBool, FcPatternGetFTFace, FcPatternGetLangSet \- Return a typed value from a pattern
+FcPatternGetInteger, FcPatternGetDouble, FcPatternGetString, FcPatternGetMatrix, FcPatternGetCharSet, FcPatternGetBool, FcPatternGetFTFace, FcPatternGetLangSet, FcPatternGetRange \- Return a typed value from a pattern
.SH SYNOPSIS
.nf
\fB#include <fontconfig/fontconfig.h>
.sp
FcResult FcPatternGetBool (FcPattern *\fIp\fB, const char *\fIobject\fB, int \fIn\fB, FcBool *\fIb\fB);
.sp
-FcResult FcPatternGetFTFace (FcPattern *\fIp\fB, const char *\fIobject\fB, int \fIn\fB);
+FcResult FcPatternGetFTFace (FcPattern *\fIp\fB, const char *\fIobject\fB, int \fIn\fB, FT_Face *\fIf\fB);
.sp
-FcResult FcPatternGetLangSet (FcPattern *\fIp\fB, const char *\fIobject\fB, FT_Face *\fIf\fB);
+FcResult FcPatternGetLangSet (FcPattern *\fIp\fB, const char *\fIobject\fB, int \fIn\fB, FcLangSet **\fIl\fB);
+.sp
+FcResult FcPatternGetRange (FcPattern *\fIp\fB, const char *\fIobject\fB, int \fIn\fB, FcRange **\fIr\fB);
.fi\fR
.SH "DESCRIPTION"
.PP
this is not the case. Note that these (like FcPatternGet) do not make a
copy of any data structure referenced by the return value. Use these
in preference to FcPatternGet to provide compile-time typechecking.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
+\fBFcPatternGetRange\fR are available since 2.11.91.
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcPatternGet" "3" "10 1月 2013" "" ""
+.TH "FcPatternGet" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcPatternGet \- Return a value from a pattern
.SH SYNOPSIS
associated with the property \fIobject\fR\&.
The value returned is not a copy, but rather refers to the data stored
within the pattern directly. Applications must not free this value.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcPatternHash" "3" "10 1月 2013" "" ""
+.TH "FcPatternHash" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcPatternHash \- Compute a pattern hash value
.SH SYNOPSIS
.PP
Returns a 32-bit number which is the same for any two patterns which are
equal.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcPatternPrint" "3" "10 1月 2013" "" ""
+.TH "FcPatternPrint" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcPatternPrint \- Print a pattern for debugging
.SH SYNOPSIS
Prints an easily readable version of the pattern to stdout. There is
no provision for reparsing data in this format, it's just for diagnostics
and debugging.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcPatternReference" "3" "10 1月 2013" "" ""
+.TH "FcPatternReference" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcPatternReference \- Increment pattern reference count
.SH SYNOPSIS
.PP
Add another reference to \fIp\fR\&. Patterns are freed only
when the reference count reaches zero.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcPatternRemove" "3" "10 1月 2013" "" ""
+.TH "FcPatternRemove" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcPatternRemove \- Remove one object of the specified type from the pattern
.SH SYNOPSIS
.PP
Removes the value associated with the property `object' at position `id', returning
whether the property existed and had a value at that position or not.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
--- /dev/null
+.\" auto-generated by docbook2man-spec from docbook-utils package
+.TH "FcRangeCopy" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
+.SH NAME
+FcRangeCopy \- Copy a range object
+.SH SYNOPSIS
+.nf
+\fB#include <fontconfig/fontconfig.h>
+.sp
+FcRange * FcRangeCopy (const FcRange *\fIrange\fB);
+.fi\fR
+.SH "DESCRIPTION"
+.PP
+\fBFcRangeCopy\fR creates a new FcRange object and
+populates it with the contents of \fIrange\fR\&.
+.SH "SINCE"
+.PP
+version 2.11.91
--- /dev/null
+.\" auto-generated by docbook2man-spec from docbook-utils package
+.TH "FcRangeCreateDouble" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
+.SH NAME
+FcRangeCreateDouble \- create a range object for double
+.SH SYNOPSIS
+.nf
+\fB#include <fontconfig/fontconfig.h>
+.sp
+FcRange * FcRangeCreateDouble (double\fIbegin\fB, double\fIend\fB);
+.fi\fR
+.SH "DESCRIPTION"
+.PP
+\fBFcRangeCreateDouble\fR creates a new FcRange object with
+double sized value.
+.SH "SINCE"
+.PP
+version 2.11.91
--- /dev/null
+.\" auto-generated by docbook2man-spec from docbook-utils package
+.TH "FcRangeCreateInteger" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
+.SH NAME
+FcRangeCreateInteger \- create a range object for integer
+.SH SYNOPSIS
+.nf
+\fB#include <fontconfig/fontconfig.h>
+.sp
+FcRange * FcRangeCreateInteger (int\fIbegin\fB, int\fIend\fB);
+.fi\fR
+.SH "DESCRIPTION"
+.PP
+\fBFcRangeCreateInteger\fR creates a new FcRange object with
+integer sized value.
+.SH "SINCE"
+.PP
+version 2.11.91
--- /dev/null
+.\" auto-generated by docbook2man-spec from docbook-utils package
+.TH "FcRangeDestroy" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
+.SH NAME
+FcRangeDestroy \- destroy a range object
+.SH SYNOPSIS
+.nf
+\fB#include <fontconfig/fontconfig.h>
+.sp
+void FcRangeDestroy (FcRange *\fIrange\fB);
+.fi\fR
+.SH "DESCRIPTION"
+.PP
+\fBFcRangeDestroy\fR destroys a FcRange object, freeing
+all memory associated with it.
+.SH "SINCE"
+.PP
+version 2.11.91
--- /dev/null
+.\" auto-generated by docbook2man-spec from docbook-utils package
+.TH "FcRangeGetDouble" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
+.SH NAME
+FcRangeGetDouble \- Get the range in double
+.SH SYNOPSIS
+.nf
+\fB#include <fontconfig/fontconfig.h>
+.sp
+FcBool FcRangeGetDouble (const FcRange *\fIrange\fB, double *\fIbegin\fB, double *\fIend\fB);
+.fi\fR
+.SH "DESCRIPTION"
+.PP
+Returns in \fIbegin\fR and \fIend\fR as the range.
+.SH "SINCE"
+.PP
+version 2.11.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcStrBasename" "3" "10 1月 2013" "" ""
+.TH "FcStrBasename" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcStrBasename \- last component of filename
.SH SYNOPSIS
Returns the filename of \fIfile\fR stripped of any leading
directory names. This is returned in newly allocated storage which should
be freed when no longer needed.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcStrCmp" "3" "10 1月 2013" "" ""
+.TH "FcStrCmp" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcStrCmp \- compare UTF-8 strings
.SH SYNOPSIS
.PP
Returns the usual <0, 0, >0 result of comparing
\fIs1\fR and \fIs2\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcStrCmpIgnoreCase" "3" "10 1月 2013" "" ""
+.TH "FcStrCmpIgnoreCase" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcStrCmpIgnoreCase \- compare UTF-8 strings ignoring case
.SH SYNOPSIS
Returns the usual <0, 0, >0 result of comparing
\fIs1\fR and \fIs2\fR\&. This test is
case-insensitive for all proper UTF-8 encoded strings.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcStrCopy" "3" "10 1月 2013" "" ""
+.TH "FcStrCopy" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcStrCopy \- duplicate a string
.SH SYNOPSIS
Allocates memory, copies \fIs\fR and returns the resulting
buffer. Yes, this is \fBstrdup\fR, but that function isn't
available on every platform.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcStrCopyFilename" "3" "10 1月 2013" "" ""
+.TH "FcStrCopyFilename" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcStrCopyFilename \- create a complete path from a filename
.SH SYNOPSIS
current directory '.' or parent directory '..' are correctly reconstructed.
Returns NULL if '~' is the leading character and HOME is unset or disabled
(see \fBFcConfigEnableHome\fR).
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcStrDirname" "3" "10 1月 2013" "" ""
+.TH "FcStrDirname" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcStrDirname \- directory part of filename
.SH SYNOPSIS
Returns the directory containing \fIfile\fR\&. This
is returned in newly allocated storage which should be freed when no longer
needed.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcStrDowncase" "3" "10 1月 2013" "" ""
+.TH "FcStrDowncase" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcStrDowncase \- create a lower case translation of a string
.SH SYNOPSIS
.PP
Allocates memory, copies \fIs\fR, converting upper case
letters to lower case and returns the allocated buffer.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcStrFree" "3" "10 1月 2013" "" ""
+.TH "FcStrFree" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcStrFree \- free a string
.SH SYNOPSIS
.PP
This is just a wrapper around free(3) which helps track memory usage of
strings within the fontconfig library.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcStrListCreate" "3" "10 1月 2013" "" ""
+.TH "FcStrListCreate" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcStrListCreate \- create a string iterator
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Creates an iterator to list the strings in \fIset\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcStrListDone" "3" "10 1月 2013" "" ""
+.TH "FcStrListDone" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcStrListDone \- destroy a string iterator
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Destroys the enumerator \fIlist\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
--- /dev/null
+.\" auto-generated by docbook2man-spec from docbook-utils package
+.TH "FcStrListFirst" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
+.SH NAME
+FcStrListFirst \- get first string in iteration
+.SH SYNOPSIS
+.nf
+\fB#include <fontconfig/fontconfig.h>
+.sp
+void FcStrListFirst (FcStrList *\fIlist\fB);
+.fi\fR
+.SH "DESCRIPTION"
+.PP
+Returns the first string in \fIlist\fR\&.
+.SH "SINCE"
+.PP
+version 2.11.0
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcStrListNext" "3" "10 1月 2013" "" ""
+.TH "FcStrListNext" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcStrListNext \- get next string in iteration
.SH SYNOPSIS
.fi\fR
.SH "DESCRIPTION"
.PP
-Returns the next string in \fIset\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
+Returns the next string in \fIlist\fR\&.
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcStrPlus" "3" "10 1月 2013" "" ""
+.TH "FcStrPlus" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcStrPlus \- concatenate two strings
.SH SYNOPSIS
This function allocates new storage and places the concatenation of
\fIs1\fR and \fIs2\fR there, returning the
new string.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcStrSetAdd" "3" "10 1月 2013" "" ""
+.TH "FcStrSetAdd" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcStrSetAdd \- add to a string set
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Adds a copy of \fIs\fR to \fIset\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcStrSetAddFilename" "3" "10 1月 2013" "" ""
+.TH "FcStrSetAddFilename" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcStrSetAddFilename \- add a filename to a string set
.SH SYNOPSIS
Adds a copy \fIs\fR to \fIset\fR, The copy
is created with FcStrCopyFilename so that leading '~' values are replaced
with the value of the HOME environment variable.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcStrSetCreate" "3" "10 1月 2013" "" ""
+.TH "FcStrSetCreate" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcStrSetCreate \- create a string set
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Create an empty set.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcStrSetDel" "3" "10 1月 2013" "" ""
+.TH "FcStrSetDel" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcStrSetDel \- delete from a string set
.SH SYNOPSIS
.PP
Removes \fIs\fR from \fIset\fR, returning
FcTrue if \fIs\fR was a member else FcFalse.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcStrSetDestroy" "3" "10 1月 2013" "" ""
+.TH "FcStrSetDestroy" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcStrSetDestroy \- destroy a string set
.SH SYNOPSIS
.SH "DESCRIPTION"
.PP
Destroys \fIset\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcStrSetEqual" "3" "10 1月 2013" "" ""
+.TH "FcStrSetEqual" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcStrSetEqual \- check sets for equality
.SH SYNOPSIS
Returns whether \fIset_a\fR contains precisely the same
strings as \fIset_b\fR\&. Ordering of strings within the two
sets is not considered.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcStrSetMember" "3" "10 1月 2013" "" ""
+.TH "FcStrSetMember" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcStrSetMember \- check set for membership
.SH SYNOPSIS
.PP
Returns whether \fIs\fR is a member of
\fIset\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcStrStr" "3" "10 1月 2013" "" ""
+.TH "FcStrStr" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcStrStr \- locate UTF-8 substring
.SH SYNOPSIS
\fIs1\fR\&. Returns NULL if \fIs2\fR
is not present in \fIs1\fR\&. This test will operate properly
with UTF8 encoded strings.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcStrStrIgnoreCase" "3" "10 1月 2013" "" ""
+.TH "FcStrStrIgnoreCase" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcStrStrIgnoreCase \- locate UTF-8 substring ignoring ASCII case
.SH SYNOPSIS
\fIs1\fR, ignoring case. Returns NULL if
\fIs2\fR is not present in \fIs1\fR\&.
This test is case-insensitive for all proper UTF-8 encoded strings.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcToLower" "3" "10 1月 2013" "" ""
+.TH "FcToLower" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcToLower \- convert upper case ASCII to lower case
.SH SYNOPSIS
.PP
This macro converts upper case ASCII \fIc\fR to the
equivalent lower case letter.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcUcs4ToUtf8" "3" "10 1月 2013" "" ""
+.TH "FcUcs4ToUtf8" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcUcs4ToUtf8 \- convert UCS4 to UTF-8
.SH SYNOPSIS
Converts the Unicode char from \fIsrc\fR into
\fIdst\fR and returns the number of bytes needed to encode
the char.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcUtf16Len" "3" "10 1月 2013" "" ""
+.TH "FcUtf16Len" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcUtf16Len \- count UTF-16 encoded chars
.SH SYNOPSIS
bytes needed to hold the largest Unicode char counted. The return value
indicates whether \fIstring\fR is a well-formed UTF16
string.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcUtf16ToUcs4" "3" "10 1月 2013" "" ""
+.TH "FcUtf16ToUcs4" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcUtf16ToUcs4 \- convert UTF-16 to UCS4
.SH SYNOPSIS
char. \fIsrc\fR must be at least \fIlen\fR
bytes long. Bytes of \fIsrc\fR are combined into 16-bit
units according to \fIendian\fR\&.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcUtf8Len" "3" "10 1月 2013" "" ""
+.TH "FcUtf8Len" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcUtf8Len \- count UTF-8 encoded chars
.SH SYNOPSIS
4 depending on the number of bytes needed to hold the largest Unicode char
counted. The return value indicates whether \fIsrc\fR is a
well-formed UTF8 string.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcUtf8ToUcs4" "3" "10 1月 2013" "" ""
+.TH "FcUtf8ToUcs4" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcUtf8ToUcs4 \- convert UTF-8 to UCS4
.SH SYNOPSIS
\fIdst\fR and returns the number of bytes containing the
char. \fIsrc\fR must be at least
\fIlen\fR bytes long.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcValueDestroy" "3" "10 1月 2013" "" ""
+.TH "FcValueDestroy" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcValueDestroy \- Free a value
.SH SYNOPSIS
.PP
Frees any memory referenced by \fIv\fR\&. Values of type FcTypeString,
FcTypeMatrix and FcTypeCharSet reference memory, the other types do not.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcValueEqual" "3" "10 1月 2013" "" ""
+.TH "FcValueEqual" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcValueEqual \- Test two values for equality
.SH SYNOPSIS
Compares two values. Integers and Doubles are compared as numbers; otherwise
the two values have to be the same type to be considered equal. Strings are
compared ignoring case.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcValuePrint" "3" "10 1月 2013" "" ""
+.TH "FcValuePrint" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcValuePrint \- Print a value to stdout
.SH SYNOPSIS
Prints a human-readable representation of \fIv\fR to
stdout. The format should not be considered part of the library
specification as it may change in the future.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FcValueSave" "3" "10 1月 2013" "" ""
+.TH "FcValueSave" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
.SH NAME
FcValueSave \- Copy a value
.SH SYNOPSIS
.PP
Returns a copy of \fIv\fR duplicating any object referenced by it so that \fIv\fR
may be safely destroyed without harming the new value.
-.SH "VERSION"
-.PP
-Fontconfig version 2.10.91
--- /dev/null
+.\" auto-generated by docbook2man-spec from docbook-utils package
+.TH "FcWeightFromOpenType" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
+.SH NAME
+FcWeightFromOpenType \- Convert from OpenType weight values to fontconfig ones
+.SH SYNOPSIS
+.nf
+\fB#include <fontconfig/fontconfig.h>
+.sp
+int FcWeightFromOpenType (int\fIot_weight\fB);
+.fi\fR
+.SH "DESCRIPTION"
+.PP
+\fBFcWeightFromOpenType\fR returns an integer value
+to use with FC_WEIGHT, from an integer in the 1..1000 range, resembling
+the numbers from OpenType specification's OS/2 usWeight numbers, which
+are also similar to CSS font-weight numbers. If input is negative,
+zero, or greater than 1000, returns -1. This function linearly interpolates
+between various FC_WEIGHT_* constants. As such, the returned value does not
+necessarily match any of the predefined constants.
+.SH "SINCE"
+.PP
+version 2.11.91
--- /dev/null
+.\" auto-generated by docbook2man-spec from docbook-utils package
+.TH "FcWeightToOpenType" "3" "09 3月 2015" "Fontconfig 2.11.93" ""
+.SH NAME
+FcWeightToOpenType \- Convert from fontconfig weight values to OpenType ones
+.SH SYNOPSIS
+.nf
+\fB#include <fontconfig/fontconfig.h>
+.sp
+int FcWeightToOpenType (int\fIot_weight\fB);
+.fi\fR
+.SH "DESCRIPTION"
+.PP
+\fBFcWeightToOpenType\fR is the inverse of
+\fBFcWeightFromOpenType\fR\&. If the input is less than
+FC_WEIGHT_THIN or greater than FC_WEIGHT_EXTRABLACK, returns -1. Otherwise
+returns a number in the range 1 to 1000.
+.SH "SINCE"
+.PP
+version 2.11.91
TESTS = \
check-missing-doc \
$(NULL)
-TESTS_ENVIRONMENT=top_srcdir=${top_srcdir} sh
+TESTS_ENVIRONMENT = \
+ top_srcdir=${top_srcdir}; export top_srcdir; \
+ $(NULL)
+LOG_COMPILER = sh
#
DOC2HTML = docbook2html
DOC2TXT = docbook2txt
fcobjectset.fncs \
fcobjecttype.fncs \
fcpattern.fncs \
+ fcrange.fncs \
fcstring.fncs \
fcstrset.fncs \
fcvalue.fncs \
+ fcweight.fncs \
$(NULL)
SGML_FILES = \
fontconfig-user.sgml \
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
- test $$am__dry = yes; \
- }
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@USEDOCBOOK_TRUE@am__append_3 = $(HTML_DIR)/*
@USEDOCBOOK_FALSE@am__append_4 = $(srcdir)/$(HTML_DIR)/*
subdir = doc
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(srcdir)/version.sgml.in $(top_srcdir)/depcomp
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+ $(srcdir)/version.sgml.in $(top_srcdir)/depcomp \
+ $(top_srcdir)/test-driver
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_for_build.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \
+ $(top_srcdir)/m4/ax_cc_for_build.m4 \
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
$(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
NROFF = nroff
MANS = $(man3_MANS) $(man5_MANS)
DATA = $(doc_DATA) $(htmldoc_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
am__tty_colors_dummy = \
mgn= red= grn= lgn= blu= brg= std=; \
am__color_tests=no
-am__tty_colors = $(am__tty_colors_dummy)
+am__tty_colors = { \
+ $(am__tty_colors_dummy); \
+ if test "X$(AM_COLOR_TESTS)" = Xno; then \
+ am__color_tests=no; \
+ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+ am__color_tests=yes; \
+ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+ am__color_tests=yes; \
+ fi; \
+ if test $$am__color_tests = yes; then \
+ red='\e[0;31m'; \
+ grn='\e[0;32m'; \
+ lgn='\e[1;32m'; \
+ blu='\e[1;34m'; \
+ mgn='\e[0;35m'; \
+ brg='\e[1m'; \
+ std='\e[m'; \
+ fi; \
+}
+am__recheck_rx = ^[ ]*:recheck:[ ]*
+am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
+am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+ recheck = 1; \
+ while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+ { \
+ if (rc < 0) \
+ { \
+ if ((getline line2 < ($$0 ".log")) < 0) \
+ recheck = 0; \
+ break; \
+ } \
+ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+ { \
+ recheck = 0; \
+ break; \
+ } \
+ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+ { \
+ break; \
+ } \
+ }; \
+ if (recheck) \
+ print $$0; \
+ close ($$0 ".trs"); \
+ close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+ print "fatal: making $@: " msg | "cat >&2"; \
+ exit 1; \
+} \
+function rst_section(header) \
+{ \
+ print header; \
+ len = length(header); \
+ for (i = 1; i <= len; i = i + 1) \
+ printf "="; \
+ printf "\n\n"; \
+} \
+{ \
+ copy_in_global_log = 1; \
+ global_test_result = "RUN"; \
+ while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+ { \
+ if (rc < 0) \
+ fatal("failed to read from " $$0 ".trs"); \
+ if (line ~ /$(am__global_test_result_rx)/) \
+ { \
+ sub("$(am__global_test_result_rx)", "", line); \
+ sub("[ ]*$$", "", line); \
+ global_test_result = line; \
+ } \
+ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+ copy_in_global_log = 0; \
+ }; \
+ if (copy_in_global_log) \
+ { \
+ rst_section(global_test_result ": " $$0); \
+ while ((rc = (getline line < ($$0 ".log"))) != 0) \
+ { \
+ if (rc < 0) \
+ fatal("failed to read from " $$0 ".log"); \
+ print line; \
+ }; \
+ printf "\n"; \
+ }; \
+ close ($$0 ".trs"); \
+ close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+ --color-tests "$$am__color_tests" \
+ --enable-hard-errors "$$am__enable_hard_errors" \
+ --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test. Creates the
+# directory for the log if needed. Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log. Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup); \
+$(am__vpath_adj_setup) $(am__vpath_adj) \
+$(am__tty_colors); \
+srcdir=$(srcdir); export srcdir; \
+case "$@" in \
+ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
+ *) am__odir=.;; \
+esac; \
+test "x$$am__odir" = x"." || test -d "$$am__odir" \
+ || $(MKDIR_P) "$$am__odir" || exit $$?; \
+if test -f "./$$f"; then dir=./; \
+elif test -f "$$f"; then dir=; \
+else dir="$(srcdir)/"; fi; \
+tst=$$dir$$f; log='$@'; \
+if test -n '$(DISABLE_HARD_ERRORS)'; then \
+ am__enable_hard_errors=no; \
+else \
+ am__enable_hard_errors=yes; \
+fi; \
+case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
+ am__expect_failure=yes;; \
+ *) \
+ am__expect_failure=no;; \
+esac; \
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed). The result is saved in the shell variable
+# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+ bases='$(TEST_LOGS)'; \
+ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+ bases=`echo $$bases`
+RECHECK_LOGS = $(TEST_LOGS)
+AM_RECURSIVE_TARGETS = check recheck
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
+LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
+am__set_b = \
+ case '$@' in \
+ */*) \
+ case '$*' in \
+ */*) b='$*';; \
+ *) b=`echo '$@' | sed 's/\.log$$//'`; \
+ esac;; \
+ *) \
+ b='$*';; \
+ esac
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+ $(TEST_LOG_FLAGS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
FGREP = @FGREP@
FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
FREETYPE_LIBS = @FREETYPE_LIBS@
+GIT = @GIT@
+GPERF = @GPERF@
GREP = @GREP@
HASDOCBOOK = @HASDOCBOOK@
HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
+PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PTHREAD_CC = @PTHREAD_CC@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
PTHREAD_LIBS = @PTHREAD_LIBS@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RM = @RM@
SED = @SED@
am__tar = @am__tar@
am__untar = @am__untar@
ax_pthread_config = @ax_pthread_config@
-baseconfigdir = @baseconfigdir@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
-configdir = @configdir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
ms_librarian = @ms_librarian@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgconfigdir = @pkgconfigdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-templatedir = @templatedir@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-xmldir = @xmldir@
NULL =
EXTRA_DIST = \
$(BUILT_DOCS) \
.html \
$(NULL)
-TESTS_ENVIRONMENT = top_srcdir=${top_srcdir} sh
+TESTS_ENVIRONMENT = \
+ top_srcdir=${top_srcdir}; export top_srcdir; \
+ $(NULL)
+
+LOG_COMPILER = sh
#
DOC2HTML = docbook2html
DOC2TXT = docbook2txt
fcobjectset.fncs \
fcobjecttype.fncs \
fcpattern.fncs \
+ fcrange.fncs \
fcstring.fncs \
fcstrset.fncs \
fcvalue.fncs \
+ fcweight.fncs \
$(NULL)
SGML_FILES = \
$(MAKE) $(AM_MAKEFLAGS) all-am
.SUFFIXES:
-.SUFFIXES: .fncs .sgml .txt .html .c .lo .o .obj .pdf
+.SUFFIXES: .fncs .sgml .txt .html .c .lo .log .o .obj .pdf .test .test$(EXEEXT) .trs
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
+
edit-sgml$(EXEEXT): $(edit_sgml_OBJECTS) $(edit_sgml_DEPENDENCIES) $(EXTRA_edit_sgml_DEPENDENCIES)
@rm -f edit-sgml$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(edit_sgml_OBJECTS) $(edit_sgml_LDADD) $(LIBS)
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(htmldocdir)'; $(am__uninstall_files_from_dir)
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
-cscopelist: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-check-TESTS: $(TESTS)
- @failed=0; all=0; xfail=0; xpass=0; skip=0; \
- srcdir=$(srcdir); export srcdir; \
- list=' $(TESTS) '; \
- $(am__tty_colors); \
- if test -n "$$list"; then \
- for tst in $$list; do \
- if test -f ./$$tst; then dir=./; \
- elif test -f $$tst; then dir=; \
- else dir="$(srcdir)/"; fi; \
- if $(TESTS_ENVIRONMENT) $${dir}$$tst $(AM_TESTS_FD_REDIRECT); then \
- all=`expr $$all + 1`; \
- case " $(XFAIL_TESTS) " in \
- *[\ \ ]$$tst[\ \ ]*) \
- xpass=`expr $$xpass + 1`; \
- failed=`expr $$failed + 1`; \
- col=$$red; res=XPASS; \
- ;; \
- *) \
- col=$$grn; res=PASS; \
- ;; \
- esac; \
- elif test $$? -ne 77; then \
- all=`expr $$all + 1`; \
- case " $(XFAIL_TESTS) " in \
- *[\ \ ]$$tst[\ \ ]*) \
- xfail=`expr $$xfail + 1`; \
- col=$$lgn; res=XFAIL; \
- ;; \
- *) \
- failed=`expr $$failed + 1`; \
- col=$$red; res=FAIL; \
- ;; \
- esac; \
- else \
- skip=`expr $$skip + 1`; \
- col=$$blu; res=SKIP; \
- fi; \
- echo "$${col}$$res$${std}: $$tst"; \
- done; \
- if test "$$all" -eq 1; then \
- tests="test"; \
- All=""; \
- else \
- tests="tests"; \
- All="All "; \
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+ rm -f $< $@
+ $(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+ @:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+ @$(am__set_TESTS_bases); \
+ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+ redo_bases=`for i in $$bases; do \
+ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+ done`; \
+ if test -n "$$redo_bases"; then \
+ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+ if $(am__make_dryrun); then :; else \
+ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
fi; \
- if test "$$failed" -eq 0; then \
- if test "$$xfail" -eq 0; then \
- banner="$$All$$all $$tests passed"; \
- else \
- if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
- banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
- fi; \
- else \
- if test "$$xpass" -eq 0; then \
- banner="$$failed of $$all $$tests failed"; \
+ fi; \
+ if test -n "$$am__remaking_logs"; then \
+ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+ "recursion detected" >&2; \
+ else \
+ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+ fi; \
+ if $(am__make_dryrun); then :; else \
+ st=0; \
+ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+ for i in $$redo_bases; do \
+ test -f $$i.trs && test -r $$i.trs \
+ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+ test -f $$i.log && test -r $$i.log \
+ || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+ done; \
+ test $$st -eq 0 || exit 1; \
+ fi
+ @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+ ws='[ ]'; \
+ results=`for b in $$bases; do echo $$b.trs; done`; \
+ test -n "$$results" || results=/dev/null; \
+ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
+ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
+ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
+ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
+ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+ if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+ success=true; \
+ else \
+ success=false; \
+ fi; \
+ br='==================='; br=$$br$$br$$br$$br; \
+ result_count () \
+ { \
+ if test x"$$1" = x"--maybe-color"; then \
+ maybe_colorize=yes; \
+ elif test x"$$1" = x"--no-color"; then \
+ maybe_colorize=no; \
else \
- if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
- banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+ echo "$@: invalid 'result_count' usage" >&2; exit 4; \
fi; \
- fi; \
- dashes="$$banner"; \
- skipped=""; \
- if test "$$skip" -ne 0; then \
- if test "$$skip" -eq 1; then \
- skipped="($$skip test was not run)"; \
+ shift; \
+ desc=$$1 count=$$2; \
+ if test $$maybe_colorize = yes && test $$count -gt 0; then \
+ color_start=$$3 color_end=$$std; \
else \
- skipped="($$skip tests were not run)"; \
+ color_start= color_end=; \
fi; \
- test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
- dashes="$$skipped"; \
- fi; \
- report=""; \
- if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
- report="Please report to $(PACKAGE_BUGREPORT)"; \
- test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
- dashes="$$report"; \
- fi; \
- dashes=`echo "$$dashes" | sed s/./=/g`; \
- if test "$$failed" -eq 0; then \
- col="$$grn"; \
- else \
- col="$$red"; \
- fi; \
- echo "$${col}$$dashes$${std}"; \
- echo "$${col}$$banner$${std}"; \
- test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \
- test -z "$$report" || echo "$${col}$$report$${std}"; \
- echo "$${col}$$dashes$${std}"; \
- test "$$failed" -eq 0; \
- else :; fi
+ echo "$${color_start}# $$desc $$count$${color_end}"; \
+ }; \
+ create_testsuite_report () \
+ { \
+ result_count $$1 "TOTAL:" $$all "$$brg"; \
+ result_count $$1 "PASS: " $$pass "$$grn"; \
+ result_count $$1 "SKIP: " $$skip "$$blu"; \
+ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+ result_count $$1 "FAIL: " $$fail "$$red"; \
+ result_count $$1 "XPASS:" $$xpass "$$red"; \
+ result_count $$1 "ERROR:" $$error "$$mgn"; \
+ }; \
+ { \
+ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
+ $(am__rst_title); \
+ create_testsuite_report --no-color; \
+ echo; \
+ echo ".. contents:: :depth: 2"; \
+ echo; \
+ for b in $$bases; do echo $$b; done \
+ | $(am__create_global_log); \
+ } >$(TEST_SUITE_LOG).tmp || exit 1; \
+ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
+ if $$success; then \
+ col="$$grn"; \
+ else \
+ col="$$red"; \
+ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
+ fi; \
+ echo "$${col}$$br$${std}"; \
+ echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \
+ echo "$${col}$$br$${std}"; \
+ create_testsuite_report --maybe-color; \
+ echo "$$col$$br$$std"; \
+ if $$success; then :; else \
+ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
+ if test -n "$(PACKAGE_BUGREPORT)"; then \
+ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
+ fi; \
+ echo "$$col$$br$$std"; \
+ fi; \
+ $$success || exit 1
+
+check-TESTS:
+ @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
+ @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ @set +e; $(am__set_TESTS_bases); \
+ log_list=`for i in $$bases; do echo $$i.log; done`; \
+ trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+ exit $$?;
+recheck: all $(check_SCRIPTS)
+ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ @set +e; $(am__set_TESTS_bases); \
+ bases=`for i in $$bases; do echo $$i; done \
+ | $(am__list_recheck_tests)` || exit 1; \
+ log_list=`for i in $$bases; do echo $$i.log; done`; \
+ log_list=`echo $$log_list`; \
+ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+ am__force_recheck=am--force-recheck \
+ TEST_LOGS="$$log_list"; \
+ exit $$?
+check-missing-doc.log: check-missing-doc
+ @p='check-missing-doc'; \
+ b='check-missing-doc'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+.test.log:
+ @p='$<'; \
+ $(am__set_b); \
+ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.test$(EXEEXT).log:
+@am__EXEEXT_TRUE@ @p='$<'; \
+@am__EXEEXT_TRUE@ $(am__set_b); \
+@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
distdir: $(DISTFILES)
- @list='$(MANS)'; if test -n "$$list"; then \
- list=`for p in $$list; do \
- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
- if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
- if test -n "$$list" && \
- grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
- echo "error: found man pages containing the 'missing help2man' replacement text:" >&2; \
- grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
- echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
- echo " typically 'make maintainer-clean' will remove them" >&2; \
- exit 1; \
- else :; fi; \
- else :; fi
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
+ -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+ -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+ -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
.MAKE: all check check-am install install-am install-strip
-.PHONY: CTAGS GTAGS all all-am all-local check check-TESTS check-am \
- clean clean-generic clean-libtool clean-local \
- clean-noinstPROGRAMS cscopelist ctags distclean \
+.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-TESTS \
+ check-am clean clean-generic clean-libtool clean-local \
+ clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \
distclean-compile distclean-generic distclean-libtool \
distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags uninstall uninstall-am uninstall-docDATA \
+ recheck tags tags-am uninstall uninstall-am uninstall-docDATA \
uninstall-htmldocDATA uninstall-man uninstall-man3 \
uninstall-man5
<refmeta>
<refentrytitle>FcAtomicCreate</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcAtomicCreate</refname>
a consistent and complete file without the need to lock for reading.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcAtomicLock</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcAtomicLock</refname>
leaves the file locked.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcAtomicNewFile</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcAtomicNewFile</refname>
by <parameter>atomic</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcAtomicOrigFile</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcAtomicOrigFile</refname>
Returns the file referenced by <parameter>atomic</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcAtomicReplaceOrig</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcAtomicReplaceOrig</refname>
permission issues in the filesystem. Otherwise returns FcTrue.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcAtomicDeleteNew</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcAtomicDeleteNew</refname>
Deletes the new file. Used in error recovery to back out changes.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcAtomicUnlock</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcAtomicUnlock</refname>
Unlocks the file.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcAtomicDestroy</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcAtomicDestroy</refname>
Destroys <parameter>atomic</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<refmeta>
<refentrytitle>FcBlanksCreate</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcBlanksCreate</refname>
Creates an empty FcBlanks object.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcBlanksDestroy</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcBlanksDestroy</refname>
Destroys an FcBlanks object, freeing any associated memory.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcBlanksAdd</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcBlanksAdd</refname>
if this process ran out of memory.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcBlanksIsMember</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcBlanksIsMember</refname>
value.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
@PURPOSE@
This tries to clean up the cache directory of <parameter>cache_dir</parameter>.
This returns FcTrue if the operation is successfully complete. otherwise FcFalse.
+@SINCE@ 2.9.91
@@
@RET@ void
@DESC@
This tries to create CACHEDIR.TAG file at the cache directory registered
to <parameter>config</parameter>.
+@SINCE@ 2.9.91
@@
<refmeta>
<refentrytitle>FcCacheDir</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcCacheDir</refname>
This function returns the directory from which the cache was constructed.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcCacheCopySet</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcCacheCopySet</refname>
from the cache are read-only.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcCacheSubdir</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcCacheSubdir</refname>
value from FcCacheNumSubdir.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcCacheNumSubdir</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcCacheNumSubdir</refname>
This returns the total number of subdirectories in the cache.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcCacheNumFont</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcCacheNumFont</refname>
FcCacheCopySet.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcDirCacheClean</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcDirCacheClean</refname>
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
+ <refsect1><title>Since</title>
+ <para>version 2.9.91</para>
</refsect1>
</refentry>
<!--
<refmeta>
<refentrytitle>FcCacheCreateTagFile</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcCacheCreateTagFile</refname>
to <parameter>config</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
+ <refsect1><title>Since</title>
+ <para>version 2.9.91</para>
</refsect1>
</refentry>
<function>FcCharSetDelChar</function> deletes a single Unicode char from the set,
returning FcFalse on failure, either as a result of a constant set or from
running out of memory.
+@SINCE@ 2.9.0
@@
@RET@ FcCharSet *
@TYPE3@ FcChar32 * @ARG3@ next
@PURPOSE@ Start enumerating charset contents
@DESC@
-Builds an array of bits marking the first page of Unicode coverage of
-<parameter>a</parameter>. Returns the base of the array. <parameter>next</parameter> contains the next page in the
-font.
+Builds an array of bits in <parameter>map</parameter> marking the
+first page of Unicode coverage of <parameter>a</parameter>.
+<parameter>*next</parameter> is set to contains the base code point
+for the next page in <parameter>a</parameter>. Returns the base code
+point for the page, or <constant>FC_CHARSET_DONE</constant> if
+<parameter>a</parameter> contains no pages. As an example, if
+<function>FcCharSetFirstPage</function> returns
+<literal>0x300</literal> and fills <parameter>map</parameter> with
+<literallayout class="monospaced">
+0xffffffff 0xffffffff 0x01000008 0x44300002 0xffffd7f0 0xfffffffb 0xffff7fff 0xffff0003
+</literallayout>
+Then the page contains code points <literal>0x300</literal> through
+<literal>0x33f</literal> (the first 64 code points on the page)
+because <parameter>map[0]</parameter> and
+<parameter>map[1]</parameter> both have all their bits set. It also
+contains code points <literal>0x343</literal> (<parameter>0x300 + 32*2
++ (4-1)</parameter>) and <literal>0x35e</literal> (<parameter>0x300 +
+32*2 + (31-1)</parameter>) because <parameter>map[2]</parameter> has
+the 4th and 31st bits set. The code points represented by
+<literal>map[3]</literal> and later are left as an excercise for the
+reader ;).
@@
@RET@ FcChar32
@TYPE3@ FcChar32 * @ARG3@ next
@PURPOSE@ Continue enumerating charset contents
@DESC@
-Builds an array of bits marking the Unicode coverage of <parameter>a</parameter> for page
-<parameter>*next</parameter>. Returns the base of the array. <parameter>next</parameter> contains the next page in
-the font.
+Builds an array of bits in <parameter>map</parameter> marking the
+Unicode coverage of <parameter>a</parameter> for page containing
+<parameter>*next</parameter> (see the
+<function>FcCharSetFirstPage</function> description for details).
+<parameter>*next</parameter> is set to contains the base code point
+for the next page in <parameter>a</parameter>. Returns the base of
+code point for the page, or <constant>FC_CHARSET_DONE</constant> if
+<parameter>a</parameter> does not contain
+<parameter>*next</parameter>.
@@
@RET@ FcChar32
<refmeta>
<refentrytitle>FcCharSetCreate</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcCharSetCreate</refname>
character set object.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcCharSetDestroy</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcCharSetDestroy</refname>
memory referenced is freed.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcCharSetAddChar</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcCharSetAddChar</refname>
running out of memory.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcCharSetDelChar</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcCharSetDelChar</refname>
running out of memory.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
+ <refsect1><title>Since</title>
+ <para>version 2.9.0</para>
</refsect1>
</refentry>
<!--
<refmeta>
<refentrytitle>FcCharSetCopy</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcCharSetCopy</refname>
than increment the reference count on <parameter>src</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcCharSetEqual</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcCharSetEqual</refname>
contain the same set of Unicode chars.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcCharSetIntersect</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcCharSetIntersect</refname>
<parameter>a</parameter> and <parameter>b</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcCharSetUnion</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcCharSetUnion</refname>
Returns a set including only those chars found in either <parameter>a</parameter> or <parameter>b</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcCharSetSubtract</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcCharSetSubtract</refname>
Returns a set including only those chars found in <parameter>a</parameter> but not <parameter>b</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcCharSetMerge</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcCharSetMerge</refname>
set or from running out of memory.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcCharSetHasChar</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcCharSetHasChar</refname>
Returns whether <parameter>fcs</parameter> contains the char <parameter>ucs4</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcCharSetCount</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcCharSetCount</refname>
Returns the total number of Unicode chars in <parameter>a</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcCharSetIntersectCount</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcCharSetIntersectCount</refname>
Returns the number of chars that are in both <parameter>a</parameter> and <parameter>b</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcCharSetSubtractCount</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcCharSetSubtractCount</refname>
Returns the number of chars that are in <parameter>a</parameter> but not in <parameter>b</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcCharSetIsSubset</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcCharSetIsSubset</refname>
Returns whether <parameter>a</parameter> is a subset of <parameter>b</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcCharSetFirstPage</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcCharSetFirstPage</refname>
</refsynopsisdiv>
<refsect1><title>Description</title>
<para>
-Builds an array of bits marking the first page of Unicode coverage of
-<parameter>a</parameter>. Returns the base of the array. <parameter>next</parameter> contains the next page in the
-font.
- </para>
- </refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
+Builds an array of bits in <parameter>map</parameter> marking the
+first page of Unicode coverage of <parameter>a</parameter>.
+<parameter>*next</parameter> is set to contains the base code point
+for the next page in <parameter>a</parameter>. Returns the base code
+point for the page, or <constant>FC_CHARSET_DONE</constant> if
+<parameter>a</parameter> contains no pages. As an example, if
+<function>FcCharSetFirstPage</function> returns
+<literal>0x300</literal> and fills <parameter>map</parameter> with
+<literallayout class="monospaced">
+0xffffffff 0xffffffff 0x01000008 0x44300002 0xffffd7f0 0xfffffffb 0xffff7fff 0xffff0003
+</literallayout>
+Then the page contains code points <literal>0x300</literal> through
+<literal>0x33f</literal> (the first 64 code points on the page)
+because <parameter>map[0]</parameter> and
+<parameter>map[1]</parameter> both have all their bits set. It also
+contains code points <literal>0x343</literal> (<parameter>0x300 + 32*2
++ (4-1)</parameter>) and <literal>0x35e</literal> (<parameter>0x300 +
+32*2 + (31-1)</parameter>) because <parameter>map[2]</parameter> has
+the 4th and 31st bits set. The code points represented by
+<literal>map[3]</literal> and later are left as an excercise for the
+reader ;).
</para>
</refsect1>
</refentry>
<refmeta>
<refentrytitle>FcCharSetNextPage</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcCharSetNextPage</refname>
</refsynopsisdiv>
<refsect1><title>Description</title>
<para>
-Builds an array of bits marking the Unicode coverage of <parameter>a</parameter> for page
-<parameter>*next</parameter>. Returns the base of the array. <parameter>next</parameter> contains the next page in
-the font.
- </para>
- </refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
+Builds an array of bits in <parameter>map</parameter> marking the
+Unicode coverage of <parameter>a</parameter> for page containing
+<parameter>*next</parameter> (see the
+<function>FcCharSetFirstPage</function> description for details).
+<parameter>*next</parameter> is set to contains the base code point
+for the next page in <parameter>a</parameter>. Returns the base of
+code point for the page, or <constant>FC_CHARSET_DONE</constant> if
+<parameter>a</parameter> does not contain
+<parameter>*next</parameter>.
</para>
</refsect1>
</refentry>
<refmeta>
<refentrytitle>FcCharSetCoverage</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcCharSetCoverage</refname>
coverage.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcCharSetNew</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcCharSetNew</refname>
<function>FcCharSetNew</function> is a DEPRECATED alias for FcCharSetCreate.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
@PURPOSE@ Set configuration as default
@DESC@
Sets the current default configuration to <parameter>config</parameter>. Implicitly calls
-FcConfigBuildFonts if necessary, returning FcFalse if that call fails.
+FcConfigBuildFonts if necessary, and FcConfigReference() to inrease the reference count
+in <parameter>config</parameter> since 2.12.0, returning FcFalse if that call fails.
@@
@RET@ FcConfig *
@PURPOSE@ Add font file to font database
@DESC@
Adds an application-specific font to the configuration. Returns FcFalse
-if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue.
-If <parameter>config</parameter> is NULL, the current configuration is used.
+if the fonts cannot be added (due to allocation failure or no fonts found).
+Otherwise returns FcTrue. If <parameter>config</parameter> is NULL,
+the current configuration is used.
@@
@RET@ FcBool
@DESC@
Scans the specified directory for fonts, adding each one found to the
application-specific set of fonts. Returns FcFalse
-if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue.
-If <parameter>config</parameter> is NULL, the current configuration is used.
+if the fonts cannot be added (due to allocation failure or no fonts found).
+Otherwise returns FcTrue. If <parameter>config</parameter> is NULL,
+the current configuration is used.
@@
@RET@ void
Returns FcFalse if some error occurred while loading the file, either a
parse error, semantic error or allocation failure. Otherwise returns FcTrue.
@@
+
+@RET@ const FcChar8 *
+@FUNC@ FcConfigGetSysRoot
+@TYPE1@ const FcConfig * @ARG1@ config
+@PURPOSE@ Obtain the system root directory
+@DESC@
+Obtrains the system root directory in 'config' if available.
+@SINCE@ 2.10.92
+@@
+
+@RET@ void
+@FUNC@ FcConfigSetSysRoot
+@TYPE1@ FcConfig * @ARG1@ config
+@TYPE2@ const FcChar8 * @ARG2@ sysroot
+@PURPOSE@ Set the system root directory
+@DESC@
+Set 'sysroot' as the system root directory. fontconfig prepend 'sysroot'
+to the cache directories in order to allow people to generate caches at
+the build time. Note that this causes changing current config. i.e.
+this function calls FcConfigSetCurrent() internally.
+@SINCE@ 2.10.92
+@@
+
<refmeta>
<refentrytitle>FcConfigCreate</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcConfigCreate</refname>
Creates an empty configuration.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcConfigReference</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcConfigReference</refname>
for destroying the configuration when not needed anymore.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcConfigDestroy</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcConfigDestroy</refname>
cause a new configuration to be created for use as current configuration.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcConfigSetCurrent</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcConfigSetCurrent</refname>
<refsect1><title>Description</title>
<para>
Sets the current default configuration to <parameter>config</parameter>. Implicitly calls
-FcConfigBuildFonts if necessary, returning FcFalse if that call fails.
- </para>
- </refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
+FcConfigBuildFonts if necessary, and FcConfigReference() to inrease the reference count
+in <parameter>config</parameter> since 2.12.0, returning FcFalse if that call fails.
</para>
</refsect1>
</refentry>
<refmeta>
<refentrytitle>FcConfigGetCurrent</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcConfigGetCurrent</refname>
Returns the current default configuration.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcConfigUptoDate</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcConfigUptoDate</refname>
If <parameter>config</parameter> is NULL, the current configuration is used.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcConfigHome</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcConfigHome</refname>
See also <function>FcConfigEnableHome</function>).
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcConfigEnableHome</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcConfigEnableHome</refname>
disabled. The previous setting of the value is returned.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcConfigBuildFonts</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcConfigBuildFonts</refname>
If <parameter>config</parameter> is NULL, the current configuration is used.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcConfigGetConfigDirs</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcConfigGetConfigDirs</refname>
If <parameter>config</parameter> is NULL, the current configuration is used.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcConfigGetFontDirs</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcConfigGetFontDirs</refname>
If <parameter>config</parameter> is NULL, the current configuration is used.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcConfigGetConfigFiles</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcConfigGetConfigFiles</refname>
If <parameter>config</parameter> is NULL, the current configuration is used.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcConfigGetCache</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcConfigGetCache</refname>
simply returns NULL to indicate that no per-user file exists.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcConfigGetCacheDirs</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcConfigGetCacheDirs</refname>
If <parameter>config</parameter> is NULL, the current configuration is used.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcConfigGetFonts</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcConfigGetFonts</refname>
If <parameter>config</parameter> is NULL, the current configuration is used.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcConfigGetBlanks</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcConfigGetBlanks</refname>
If <parameter>config</parameter> is NULL, the current configuration is used.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcConfigGetRescanInterval</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcConfigGetRescanInterval</refname>
If <parameter>config</parameter> is NULL, the current configuration is used.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcConfigSetRescanInterval</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcConfigSetRescanInterval</refname>
If <parameter>config</parameter> is NULL, the current configuration is used.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcConfigAppFontAddFile</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcConfigAppFontAddFile</refname>
<refsect1><title>Description</title>
<para>
Adds an application-specific font to the configuration. Returns FcFalse
-if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue.
-If <parameter>config</parameter> is NULL, the current configuration is used.
- </para>
- </refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
+if the fonts cannot be added (due to allocation failure or no fonts found).
+Otherwise returns FcTrue. If <parameter>config</parameter> is NULL,
+the current configuration is used.
</para>
</refsect1>
</refentry>
<refmeta>
<refentrytitle>FcConfigAppFontAddDir</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcConfigAppFontAddDir</refname>
<para>
Scans the specified directory for fonts, adding each one found to the
application-specific set of fonts. Returns FcFalse
-if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue.
-If <parameter>config</parameter> is NULL, the current configuration is used.
- </para>
- </refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
+if the fonts cannot be added (due to allocation failure or no fonts found).
+Otherwise returns FcTrue. If <parameter>config</parameter> is NULL,
+the current configuration is used.
</para>
</refsect1>
</refentry>
<refmeta>
<refentrytitle>FcConfigAppFontClear</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcConfigAppFontClear</refname>
If <parameter>config</parameter> is NULL, the current configuration is used.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcConfigSubstituteWithPat</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcConfigSubstituteWithPat</refname>
If <parameter>config</parameter> is NULL, the current configuration is used.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcConfigSubstitute</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcConfigSubstitute</refname>
If <parameter>config</parameter> is NULL, the current configuration is used.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcFontMatch</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcFontMatch</refname>
If <parameter>config</parameter> is NULL, the current configuration is used.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcFontSort</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcFontSort</refname>
If <parameter>config</parameter> is NULL, the current configuration is used.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcFontRenderPrepare</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcFontRenderPrepare</refname>
FcConfigSubstituteWithPat with <parameter>kind</parameter> FcMatchFont and then returned.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcFontList</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcFontList</refname>
to be up to date, and used.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcConfigFilename</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcConfigFilename</refname>
FONTCONFIG_PATH environment variable.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcConfigParseAndLoad</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcConfigParseAndLoad</refname>
parse error, semantic error or allocation failure. Otherwise returns FcTrue.
</para>
</refsect1>
- <refsect1><title>Version</title>
+ </refentry>
+<!--
+ fontconfig/doc/func.sgml
+
+ Copyright © 2003 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 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.
+ -->
+ <refentry id="FcConfigGetSysRoot">
+ <refmeta>
+ <refentrytitle>FcConfigGetSysRoot</refentrytitle>
+ <manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>FcConfigGetSysRoot</refname>
+ <refpurpose>Obtain the system root directory</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>
+#include <fontconfig/fontconfig.h>
+ </funcsynopsisinfo>
+ <funcprototype>
+ <funcdef>const FcChar8 * <function>FcConfigGetSysRoot</function></funcdef>
+ <paramdef>const FcConfig *<parameter>config</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1><title>Description</title>
<para>
-Fontconfig version &version;
+Obtrains the system root directory in 'config' if available.
</para>
</refsect1>
+ <refsect1><title>Since</title>
+ <para>version 2.10.92</para>
+ </refsect1>
+ </refentry>
+<!--
+ fontconfig/doc/func.sgml
+
+ Copyright © 2003 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 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.
+ -->
+ <refentry id="FcConfigSetSysRoot">
+ <refmeta>
+ <refentrytitle>FcConfigSetSysRoot</refentrytitle>
+ <manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>FcConfigSetSysRoot</refname>
+ <refpurpose>Set the system root directory</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>
+#include <fontconfig/fontconfig.h>
+ </funcsynopsisinfo>
+ <funcprototype>
+ <funcdef>void <function>FcConfigSetSysRoot</function></funcdef>
+ <paramdef>FcConfig *<parameter>config</parameter></paramdef>
+ <paramdef>const FcChar8 *<parameter>sysroot</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1><title>Description</title>
+ <para>
+Set 'sysroot' as the system root directory. fontconfig prepend 'sysroot'
+to the cache directories in order to allow people to generate caches at
+the build time. Note that this causes changing current config. i.e.
+this function calls FcConfigSetCurrent() internally.
+ </para>
+ </refsect1>
+ <refsect1><title>Since</title>
+ <para>version 2.10.92</para>
+ </refsect1>
</refentry>
<refmeta>
<refentrytitle>FcNameRegisterConstants</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcNameRegisterConstants</refname>
Deprecated. Does nothing. Returns FcFalse.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcNameUnregisterConstants</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcNameUnregisterConstants</refname>
Deprecated. Does nothing. Returns FcFalse.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcNameGetConstant</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcNameGetConstant</refname>
Return the FcConstant structure related to symbolic constant <parameter>string</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcNameConstant</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcNameConstant</refname>
placing the value of the constant in <parameter>result</parameter> if present.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
@@
@RET@ FcCache *
+@FUNC@ FcDirCacheRescan
+@TYPE1@ const FcChar8 * @ARG1@ dir
+@TYPE2@ FcConfig * @ARG2@ config
+@PURPOSE@ Re-scan a directory cache
+@DESC@
+Re-scan directories only at <parameter>dir</parameter> and update the cache.
+returns NULL if failed.
+@SINCE@ 2.11.1
+@@
+
+@RET@ FcCache *
@FUNC@ FcDirCacheRead
@TYPE1@ const FcChar8 * @ARG1@ dir
@TYPE2@ FcBool% @ARG2@ force
<refmeta>
<refentrytitle>FcDirCacheUnlink</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcDirCacheUnlink</refname>
unlinking any files are ignored.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcDirCacheValid</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcDirCacheValid</refname>
file, else returns FcFalse
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcDirCacheLoad</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcDirCacheLoad</refname>
FcDirCacheRead.
</para>
</refsect1>
- <refsect1><title>Version</title>
+ </refentry>
+<!--
+ fontconfig/doc/func.sgml
+
+ Copyright © 2003 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 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.
+ -->
+ <refentry id="FcDirCacheRescan">
+ <refmeta>
+ <refentrytitle>FcDirCacheRescan</refentrytitle>
+ <manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>FcDirCacheRescan</refname>
+ <refpurpose>Re-scan a directory cache</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>
+#include <fontconfig/fontconfig.h>
+ </funcsynopsisinfo>
+ <funcprototype>
+ <funcdef>FcCache * <function>FcDirCacheRescan</function></funcdef>
+ <paramdef>const FcChar8 *<parameter>dir</parameter></paramdef>
+ <paramdef>FcConfig *<parameter>config</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1><title>Description</title>
<para>
-Fontconfig version &version;
+Re-scan directories only at <parameter>dir</parameter> and update the cache.
+returns NULL if failed.
</para>
</refsect1>
+ <refsect1><title>Since</title>
+ <para>version 2.11.1</para>
+ </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcDirCacheRead</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcDirCacheRead</refname>
directory and that returned.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcDirCacheLoadFile</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcDirCacheLoadFile</refname>
non-NULL, it will be filled with the results of stat(2) on the cache file.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcDirCacheUnload</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcDirCacheUnload</refname>
references to it remain, all memory associated with the cache will be freed.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<refmeta>
<refentrytitle>FcFileScan</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcFileScan</refname>
added (due to allocation failure). Otherwise returns FcTrue.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcFileIsDir</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcFileIsDir</refname>
returns FcFalse.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcDirScan</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcDirScan</refname>
caching is desired.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcDirSave</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcDirSave</refname>
managed by FcDirCacheLoad and FcDirCacheRead.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<refmeta>
<refentrytitle>FcFontSetCreate</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcFontSetCreate</refname>
Creates an empty font set.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcFontSetDestroy</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcFontSetDestroy</refname>
well.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcFontSetAdd</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcFontSetAdd</refname>
inserted into the set (due to allocation failure). Otherwise returns FcTrue.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcFontSetList</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcFontSetList</refname>
to be up to date, and used.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcFontSetMatch</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcFontSetMatch</refname>
Returns NULL if an error occurs during this process.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcFontSetPrint</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcFontSetPrint</refname>
change at any time.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcFontSetSort</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcFontSetSort</refname>
The FcFontSet returned by FcFontSetSort is destroyed by calling FcFontSetDestroy.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcFontSetSortDestroy</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcFontSetSortDestroy</refname>
<function>FcFontSetDestroy</function> directly instead.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
to the values of the family element in <parameter>pattern</parameter>,
lower-cased and with spaces removed.
+@SINCE@ 2.9.0
@@
<refmeta>
<refentrytitle>FcPatternFormat</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcPatternFormat</refname>
lower-cased and with spaces removed.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
+ <refsect1><title>Since</title>
+ <para>version 2.9.0</para>
</refsect1>
</refentry>
<refmeta>
<refentrytitle>FcFreeTypeCharIndex</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcFreeTypeCharIndex</refname>
higher level functions.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcFreeTypeCharSet</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcFreeTypeCharSet</refname>
not in 'blanks' are not placed in the returned FcCharSet.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcFreeTypeCharSetAndSpacing</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcFreeTypeCharSetAndSpacing</refname>
widths.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcFreeTypeQuery</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcFreeTypeQuery</refname>
of fonts in 'file' is returned in 'count'.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcFreeTypeQueryFace</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcFreeTypeQueryFace</refname>
data for pattern elements (FC_FILE, FC_INDEX and sometimes FC_FAMILY).
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<refmeta>
<refentrytitle>FcInitLoadConfig</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcInitLoadConfig</refname>
Does not load any font information.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcInitLoadConfigAndFonts</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcInitLoadConfigAndFonts</refname>
available fonts. Returns the resulting configuration.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcInit</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcInit</refname>
been loaded, this routine does nothing and returns FcTrue.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcFini</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcFini</refname>
function may be called.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcGetVersion</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcGetVersion</refname>
Returns the version number of the library.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcInitReinitialize</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcInitReinitialize</refname>
existing configuration unchanged. Otherwise returns FcTrue.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcInitBringUptoDate</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcInitBringUptoDate</refname>
be reloaded (see FcInitReinitialize). Otherwise returns FcTrue.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<parameter>lang</parameter> should be of the form Ll-Tt where Ll is a
two or three letter language from ISO 639 and Tt is a territory from ISO
3166.
+@SINCE@ 2.9.0
@@
@RET@ FcLangSet *
@PURPOSE@ Add langsets
@DESC@
Returns a set including only those languages found in either <parameter>ls_a</parameter> or <parameter>ls_b</parameter>.
+@SINCE@ 2.9.0
@@
@RET@ FcLangSet *
@PURPOSE@ Subtract langsets
@DESC@
Returns a set including only those languages found in <parameter>ls_a</parameter> but not in <parameter>ls_b</parameter>.
+@SINCE@ 2.9.0
@@
@RET@ FcLangResult
Returns a string set of the default languages according to the environment variables on the system.
This function looks for them in order of FC_LANG, LC_ALL, LC_CTYPE and LANG then.
If there are no valid values in those environment variables, "en" will be set as fallback.
+@SINCE@ 2.9.91
+@@
@RET@ FcStrSet *
@FUNC@ FcLangSetGetLangs
@PURPOSE@ Normalize the language string
@DESC@
Returns a string to make <parameter>lang</parameter> suitable on fontconfig.
+@SINCE@ 2.10.91
@@
@RET@ const FcCharSet *
<refmeta>
<refentrytitle>FcLangSetCreate</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcLangSetCreate</refname>
<function>FcLangSetCreate</function> creates a new FcLangSet object.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcLangSetDestroy</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcLangSetDestroy</refname>
all memory associated with it.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcLangSetCopy</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcLangSetCopy</refname>
populates it with the contents of <parameter>ls</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcLangSetAdd</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcLangSetAdd</refname>
3166.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcLangSetDel</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcLangSetDel</refname>
3166.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
+ <refsect1><title>Since</title>
+ <para>version 2.9.0</para>
</refsect1>
</refentry>
<!--
<refmeta>
<refentrytitle>FcLangSetUnion</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcLangSetUnion</refname>
Returns a set including only those languages found in either <parameter>ls_a</parameter> or <parameter>ls_b</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
+ <refsect1><title>Since</title>
+ <para>version 2.9.0</para>
</refsect1>
</refentry>
<!--
<refmeta>
<refentrytitle>FcLangSetSubtract</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcLangSetSubtract</refname>
Returns a set including only those languages found in <parameter>ls_a</parameter> but not in <parameter>ls_b</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
+ <refsect1><title>Since</title>
+ <para>version 2.9.0</para>
</refsect1>
</refentry>
<!--
<refmeta>
<refentrytitle>FcLangSetCompare</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcLangSetCompare</refname>
common, this function returns FcLangDifferentLang.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcLangSetContains</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcLangSetContains</refname>
<parameter>ls_a</parameter> has no territory.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcLangSetEqual</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcLangSetEqual</refname>
the same language and territory combinations as <parameter>ls_b</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcLangSetHash</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcLangSetHash</refname>
value may not be equal.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcLangSetHasLang</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcLangSetHasLang</refname>
has no matching language, this function returns FcLangDifferentLang.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcGetDefaultLangs</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcGetDefaultLangs</refname>
</funcsynopsisinfo>
<funcprototype>
<funcdef>FcStrSet * <function>FcGetDefaultLangs</function></funcdef>
- <paramdef>void<parameter>ls</parameter></paramdef>
+ <paramdef>void<parameter></parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
If there are no valid values in those environment variables, "en" will be set as fallback.
</para>
</refsect1>
- <refsect1><title>Version</title>
+ <refsect1><title>Since</title>
+ <para>version 2.9.91</para>
+ </refsect1>
+ </refentry>
+<!--
+ fontconfig/doc/func.sgml
+
+ Copyright © 2003 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 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.
+ -->
+ <refentry id="FcLangSetGetLangs">
+ <refmeta>
+ <refentrytitle>FcLangSetGetLangs</refentrytitle>
+ <manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>FcLangSetGetLangs</refname>
+ <refpurpose>get the list of languages in the langset</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>
+#include <fontconfig/fontconfig.h>
+ </funcsynopsisinfo>
+ <funcprototype>
+ <funcdef>FcStrSet * <function>FcLangSetGetLangs</function></funcdef>
+ <paramdef>const FcLangSet *<parameter>ls</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1><title>Description</title>
<para>
-Fontconfig version &version;
+Returns a string set of all languages in <parameter>langset</parameter>.
</para>
</refsect1>
</refentry>
<refmeta>
<refentrytitle>FcGetLangs</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcGetLangs</refname>
Returns a string set of all known languages.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcLangNormalize</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcLangNormalize</refname>
Returns a string to make <parameter>lang</parameter> suitable on fontconfig.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
+ <refsect1><title>Since</title>
+ <para>version 2.10.91</para>
</refsect1>
</refentry>
<!--
<refmeta>
<refentrytitle>FcLangGetCharSet</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcLangGetCharSet</refname>
Returns the FcCharMap for a language.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<refmeta>
<refentrytitle>FcMatrixInit</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcMatrixInit</refname>
to the identity matrix.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcMatrixCopy</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcMatrixCopy</refname>
and copies <parameter>mat</parameter> into it.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcMatrixEqual</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcMatrixEqual</refname>
FcFalse when they are not.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcMatrixMultiply</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcMatrixMultiply</refname>
the result in <parameter>result</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcMatrixRotate</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcMatrixRotate</refname>
</programlisting>
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcMatrixScale</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcMatrixScale</refname>
</programlisting>
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcMatrixShear</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcMatrixShear</refname>
</programlisting>
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<refmeta>
<refentrytitle>FcObjectSetCreate</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcObjectSetCreate</refname>
Creates an empty set.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcObjectSetAdd</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcObjectSetAdd</refname>
inserted into the set (due to allocation failure). Otherwise returns FcTrue.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcObjectSetDestroy</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcObjectSetDestroy</refname>
Destroys an object set.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcObjectSetBuild</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcObjectSetBuild</refname>
the result in the <parameter>result</parameter> variable directly.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<refmeta>
<refentrytitle>FcNameRegisterObjectTypes</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcNameRegisterObjectTypes</refname>
Deprecated. Does nothing. Returns FcFalse.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcNameUnregisterObjectTypes</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcNameUnregisterObjectTypes</refname>
Deprecated. Does nothing. Returns FcFalse.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcNameGetObjectType</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcNameGetObjectType</refname>
Return the object type for the pattern element named <parameter>object</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
@TYPE2+++++++@ const char * @ARG2+++++++@ object
@TYPE3+++++++@ const FcLangSet * @ARG3+++++++@ l
+@PROTOTYPE++++++++@
+@RET++++++++@ FcBool
+@FUNC++++++++@ FcPatternAddRange
+@TYPE1++++++++@ FcPattern * @ARG1++++++++@ p
+@TYPE2++++++++@ const char * @ARG2++++++++@ object
+@TYPE3++++++++@ const FcRange * @ARG3++++++++@ r
+
@PURPOSE@ Add a typed value to a pattern
@DESC@
These are all convenience functions that insert objects of the specified
type into the pattern. Use these in preference to FcPatternAdd as they
will provide compile-time typechecking. These all append values to
any existing list of values.
+
+<function>FcPatternAddRange</function> are available since 2.11.91.
@@
@RET@ FcResult
@FUNC++++++@ FcPatternGetFTFace
@TYPE1++++++@ FcPattern * @ARG1++++++@ p
@TYPE2++++++@ const char * @ARG2++++++@ object
-@TYPE3+++++@ int% @ARG3+++++@ n
-@TYPE3++++++@ FT_Face * @ARG3++++++@ f
+@TYPE3++++++@ int% @ARG3++++++@ n
+@TYPE4++++++@ FT_Face * @ARG4++++++@ f
@PROTOTYPE+++++++@
@RET+++++++@ FcResult
@FUNC+++++++@ FcPatternGetLangSet
@TYPE1+++++++@ FcPattern * @ARG1+++++++@ p
@TYPE2+++++++@ const char * @ARG2+++++++@ object
-@TYPE3+++++@ int% @ARG3+++++@ n
-@TYPE3+++++++@ FcLangSet ** @ARG3+++++++@ l
+@TYPE3+++++++@ int% @ARG3+++++++@ n
+@TYPE4+++++++@ FcLangSet ** @ARG4+++++++@ l
+
+@PROTOTYPE++++++++@
+@RET++++++++@ FcResult
+@FUNC++++++++@ FcPatternGetRange
+@TYPE1++++++++@ FcPattern * @ARG1++++++++@ p
+@TYPE2++++++++@ const char * @ARG2++++++++@ object
+@TYPE3++++++++@ int% @ARG3++++++++@ n
+@TYPE4++++++++@ FcRange ** @ARG4++++++++@ r
@PURPOSE@ Return a typed value from a pattern
@DESC@
this is not the case. Note that these (like FcPatternGet) do not make a
copy of any data structure referenced by the return value. Use these
in preference to FcPatternGet to provide compile-time typechecking.
+
+<function>FcPatternGetRange</function> are available since 2.11.91.
@@
@RET@ FcPattern *
<refmeta>
<refentrytitle>FcPatternCreate</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcPatternCreate</refname>
Creates a pattern with no properties; used to build patterns from scratch.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcPatternDuplicate</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcPatternDuplicate</refname>
other.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcPatternReference</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcPatternReference</refname>
when the reference count reaches zero.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcPatternDestroy</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcPatternDestroy</refname>
the pattern, in the process destroying all related values.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcPatternEqual</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcPatternEqual</refname>
Returns whether <parameter>pa</parameter> and <parameter>pb</parameter> are exactly alike.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcPatternEqualSubset</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcPatternEqualSubset</refname>
objects in <parameter>os</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcPatternFilter</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcPatternFilter</refname>
<parameter>p</parameter> is returned.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcPatternHash</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcPatternHash</refname>
equal.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcPatternAdd</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcPatternAdd</refname>
retains no reference to any application-supplied data structure.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcPatternAddWeak</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcPatternAddWeak</refname>
values added to the list have binding <parameter>weak</parameter> instead of <parameter>strong</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcPatternAdd-Type</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcPatternAddInteger</refname>
<refname>FcPatternAddBool</refname>
<refname>FcPatternAddFTFace</refname>
<refname>FcPatternAddLangSet</refname>
+ <refname>FcPatternAddRange</refname>
<refpurpose>Add a typed value to a pattern</refpurpose>
</refnamediv>
<refsynopsisdiv>
<paramdef>const char *<parameter>object</parameter></paramdef>
<paramdef>const FcLangSet *<parameter>l</parameter></paramdef>
</funcprototype>
+ <funcprototype>
+ <funcdef>FcBool <function>FcPatternAddRange</function></funcdef>
+ <paramdef>FcPattern *<parameter>p</parameter></paramdef>
+ <paramdef>const char *<parameter>object</parameter></paramdef>
+ <paramdef>const FcRange *<parameter>r</parameter></paramdef>
+ </funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1><title>Description</title>
type into the pattern. Use these in preference to FcPatternAdd as they
will provide compile-time typechecking. These all append values to
any existing list of values.
- </para>
- </refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
+
+<function>FcPatternAddRange</function> are available since 2.11.91.
</para>
</refsect1>
</refentry>
<refmeta>
<refentrytitle>FcPatternGet</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcPatternGet</refname>
within the pattern directly. Applications must not free this value.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcPatternGet-Type</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcPatternGetInteger</refname>
<refname>FcPatternGetBool</refname>
<refname>FcPatternGetFTFace</refname>
<refname>FcPatternGetLangSet</refname>
+ <refname>FcPatternGetRange</refname>
<refpurpose>Return a typed value from a pattern</refpurpose>
</refnamediv>
<refsynopsisdiv>
<paramdef>FcPattern *<parameter>p</parameter></paramdef>
<paramdef>const char *<parameter>object</parameter></paramdef>
<paramdef>int <parameter>n</parameter></paramdef>
+ <paramdef>FT_Face *<parameter>f</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>FcResult <function>FcPatternGetLangSet</function></funcdef>
<paramdef>FcPattern *<parameter>p</parameter></paramdef>
<paramdef>const char *<parameter>object</parameter></paramdef>
- <paramdef>FT_Face *<parameter>f</parameter></paramdef>
+ <paramdef>int <parameter>n</parameter></paramdef>
+ <paramdef>FcLangSet **<parameter>l</parameter></paramdef>
+ </funcprototype>
+ <funcprototype>
+ <funcdef>FcResult <function>FcPatternGetRange</function></funcdef>
+ <paramdef>FcPattern *<parameter>p</parameter></paramdef>
+ <paramdef>const char *<parameter>object</parameter></paramdef>
+ <paramdef>int <parameter>n</parameter></paramdef>
+ <paramdef>FcRange **<parameter>r</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
this is not the case. Note that these (like FcPatternGet) do not make a
copy of any data structure referenced by the return value. Use these
in preference to FcPatternGet to provide compile-time typechecking.
- </para>
- </refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
+
+<function>FcPatternGetRange</function> are available since 2.11.91.
</para>
</refsect1>
</refentry>
<refmeta>
<refentrytitle>FcPatternBuild</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcPatternBuild</refname>
variable.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcPatternDel</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcPatternDel</refname>
whether the property existed or not.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcPatternRemove</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcPatternRemove</refname>
whether the property existed and had a value at that position or not.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcPatternPrint</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcPatternPrint</refname>
and debugging.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcDefaultSubstitute</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcDefaultSubstitute</refname>
</itemizedlist>
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcNameParse</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcNameParse</refname>
Converts <parameter>name</parameter> from the standard text format described above into a pattern.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcNameUnparse</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcNameUnparse</refname>
which should be freed by the caller using free().
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
--- /dev/null
+/*
+ * fontconfig/doc/fcrange.fncs
+ *
+ * Copyright © 2003 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 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.
+ */
+@RET@ FcRange *
+@FUNC@ FcRangeCopy
+@TYPE1@ const FcRange * @ARG1@ range
+@PURPOSE@ Copy a range object
+@DESC@
+<function>FcRangeCopy</function> creates a new FcRange object and
+populates it with the contents of <parameter>range</parameter>.
+@SINCE@ 2.11.91
+@@
+
+@RET@ FcRange *
+@FUNC@ FcRangeCreateDouble
+@TYPE1@ double @ARG1@ begin
+@TYPE2@ double @ARG2@ end
+@PURPOSE@ create a range object for double
+@DESC@
+<function>FcRangeCreateDouble</function> creates a new FcRange object with
+double sized value.
+@SINCE@ 2.11.91
+@@
+
+@RET@ FcRange *
+@FUNC@ FcRangeCreateInteger
+@TYPE1@ int @ARG1@ begin
+@TYPE2@ int @ARG2@ end
+@PURPOSE@ create a range object for integer
+@DESC@
+<function>FcRangeCreateInteger</function> creates a new FcRange object with
+integer sized value.
+@SINCE@ 2.11.91
+@@
+
+@RET@ void
+@FUNC@ FcRangeDestroy
+@TYPE1@ FcRange * @ARG1@ range
+@PURPOSE@ destroy a range object
+@DESC@
+<function>FcRangeDestroy</function> destroys a FcRange object, freeing
+all memory associated with it.
+@SINCE@ 2.11.91
+@@
+
+@RET@ FcBool
+@FUNC@ FcRangeGetDouble
+@TYPE1@ const FcRange * @ARG1@ range
+@TYPE2@ double * @ARG2@ begin
+@TYPE3@ double * @ARG3@ end
+@PURPOSE@ Get the range in double
+@DESC@
+Returns in <parameter>begin</parameter> and <parameter>end</parameter> as the range.
+@SINCE@ 2.11.91
+@@
--- /dev/null
+<!--
+ fontconfig/doc/func.sgml
+
+ Copyright © 2003 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 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.
+ -->
+ <refentry id="FcRangeCopy">
+ <refmeta>
+ <refentrytitle>FcRangeCopy</refentrytitle>
+ <manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>FcRangeCopy</refname>
+ <refpurpose>Copy a range object</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>
+#include <fontconfig/fontconfig.h>
+ </funcsynopsisinfo>
+ <funcprototype>
+ <funcdef>FcRange * <function>FcRangeCopy</function></funcdef>
+ <paramdef>const FcRange *<parameter>range</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1><title>Description</title>
+ <para>
+<function>FcRangeCopy</function> creates a new FcRange object and
+populates it with the contents of <parameter>range</parameter>.
+ </para>
+ </refsect1>
+ <refsect1><title>Since</title>
+ <para>version 2.11.91</para>
+ </refsect1>
+ </refentry>
+<!--
+ fontconfig/doc/func.sgml
+
+ Copyright © 2003 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 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.
+ -->
+ <refentry id="FcRangeCreateDouble">
+ <refmeta>
+ <refentrytitle>FcRangeCreateDouble</refentrytitle>
+ <manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>FcRangeCreateDouble</refname>
+ <refpurpose>create a range object for double</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>
+#include <fontconfig/fontconfig.h>
+ </funcsynopsisinfo>
+ <funcprototype>
+ <funcdef>FcRange * <function>FcRangeCreateDouble</function></funcdef>
+ <paramdef>double<parameter>begin</parameter></paramdef>
+ <paramdef>double<parameter>end</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1><title>Description</title>
+ <para>
+<function>FcRangeCreateDouble</function> creates a new FcRange object with
+double sized value.
+ </para>
+ </refsect1>
+ <refsect1><title>Since</title>
+ <para>version 2.11.91</para>
+ </refsect1>
+ </refentry>
+<!--
+ fontconfig/doc/func.sgml
+
+ Copyright © 2003 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 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.
+ -->
+ <refentry id="FcRangeCreateInteger">
+ <refmeta>
+ <refentrytitle>FcRangeCreateInteger</refentrytitle>
+ <manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>FcRangeCreateInteger</refname>
+ <refpurpose>create a range object for integer</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>
+#include <fontconfig/fontconfig.h>
+ </funcsynopsisinfo>
+ <funcprototype>
+ <funcdef>FcRange * <function>FcRangeCreateInteger</function></funcdef>
+ <paramdef>int<parameter>begin</parameter></paramdef>
+ <paramdef>int<parameter>end</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1><title>Description</title>
+ <para>
+<function>FcRangeCreateInteger</function> creates a new FcRange object with
+integer sized value.
+ </para>
+ </refsect1>
+ <refsect1><title>Since</title>
+ <para>version 2.11.91</para>
+ </refsect1>
+ </refentry>
+<!--
+ fontconfig/doc/func.sgml
+
+ Copyright © 2003 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 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.
+ -->
+ <refentry id="FcRangeDestroy">
+ <refmeta>
+ <refentrytitle>FcRangeDestroy</refentrytitle>
+ <manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>FcRangeDestroy</refname>
+ <refpurpose>destroy a range object</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>
+#include <fontconfig/fontconfig.h>
+ </funcsynopsisinfo>
+ <funcprototype>
+ <funcdef>void <function>FcRangeDestroy</function></funcdef>
+ <paramdef>FcRange *<parameter>range</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1><title>Description</title>
+ <para>
+<function>FcRangeDestroy</function> destroys a FcRange object, freeing
+all memory associated with it.
+ </para>
+ </refsect1>
+ <refsect1><title>Since</title>
+ <para>version 2.11.91</para>
+ </refsect1>
+ </refentry>
+<!--
+ fontconfig/doc/func.sgml
+
+ Copyright © 2003 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 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.
+ -->
+ <refentry id="FcRangeGetDouble">
+ <refmeta>
+ <refentrytitle>FcRangeGetDouble</refentrytitle>
+ <manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>FcRangeGetDouble</refname>
+ <refpurpose>Get the range in double</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>
+#include <fontconfig/fontconfig.h>
+ </funcsynopsisinfo>
+ <funcprototype>
+ <funcdef>FcBool <function>FcRangeGetDouble</function></funcdef>
+ <paramdef>const FcRange *<parameter>range</parameter></paramdef>
+ <paramdef>double *<parameter>begin</parameter></paramdef>
+ <paramdef>double *<parameter>end</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1><title>Description</title>
+ <para>
+Returns in <parameter>begin</parameter> and <parameter>end</parameter> as the range.
+ </para>
+ </refsect1>
+ <refsect1><title>Since</title>
+ <para>version 2.11.91</para>
+ </refsect1>
+ </refentry>
<refmeta>
<refentrytitle>FcUtf8ToUcs4</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcUtf8ToUcs4</refname>
<parameter>len</parameter> bytes long.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcUcs4ToUtf8</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcUcs4ToUtf8</refname>
the char.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcUtf8Len</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcUtf8Len</refname>
well-formed UTF8 string.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcUtf16ToUcs4</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcUtf16ToUcs4</refname>
units according to <parameter>endian</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcUtf16Len</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcUtf16Len</refname>
string.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcIsLower</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcIsLower</refname>
letter.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcIsUpper</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcIsUpper</refname>
letter.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcToLower</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcToLower</refname>
equivalent lower case letter.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcStrCopy</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcStrCopy</refname>
available on every platform.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcStrDowncase</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcStrDowncase</refname>
letters to lower case and returns the allocated buffer.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcStrCopyFilename</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcStrCopyFilename</refname>
(see <function>FcConfigEnableHome</function>).
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcStrCmp</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcStrCmp</refname>
<parameter>s1</parameter> and <parameter>s2</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcStrCmpIgnoreCase</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcStrCmpIgnoreCase</refname>
case-insensitive for all proper UTF-8 encoded strings.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcStrStr</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcStrStr</refname>
with UTF8 encoded strings.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcStrStrIgnoreCase</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcStrStrIgnoreCase</refname>
This test is case-insensitive for all proper UTF-8 encoded strings.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcStrPlus</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcStrPlus</refname>
new string.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcStrFree</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcStrFree</refname>
strings within the fontconfig library.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcStrDirname</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcStrDirname</refname>
needed.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcStrBasename</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcStrBasename</refname>
be freed when no longer needed.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
Creates an iterator to list the strings in <parameter>set</parameter>.
@@
+@RET@ void
+@FUNC@ FcStrListFirst
+@TYPE1@ FcStrList * @ARG1@ list
+@PURPOSE@ get first string in iteration
+@DESC@
+Returns the first string in <parameter>list</parameter>.
+@SINCE@ 2.11.0
+@@
+
@RET@ FcChar8 *
@FUNC@ FcStrListNext
@TYPE1@ FcStrList * @ARG1@ list
@PURPOSE@ get next string in iteration
@DESC@
-Returns the next string in <parameter>set</parameter>.
+Returns the next string in <parameter>list</parameter>.
@@
@RET@ void
<refmeta>
<refentrytitle>FcStrSetCreate</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcStrSetCreate</refname>
Create an empty set.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcStrSetMember</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcStrSetMember</refname>
<parameter>set</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcStrSetEqual</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcStrSetEqual</refname>
sets is not considered.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcStrSetAdd</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcStrSetAdd</refname>
Adds a copy of <parameter>s</parameter> to <parameter>set</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcStrSetAddFilename</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcStrSetAddFilename</refname>
with the value of the HOME environment variable.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcStrSetDel</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcStrSetDel</refname>
FcTrue if <parameter>s</parameter> was a member else FcFalse.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcStrSetDestroy</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcStrSetDestroy</refname>
Destroys <parameter>set</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcStrListCreate</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcStrListCreate</refname>
Creates an iterator to list the strings in <parameter>set</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
+ </refentry>
+<!--
+ fontconfig/doc/func.sgml
+
+ Copyright © 2003 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 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.
+ -->
+ <refentry id="FcStrListFirst">
+ <refmeta>
+ <refentrytitle>FcStrListFirst</refentrytitle>
+ <manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>FcStrListFirst</refname>
+ <refpurpose>get first string in iteration</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>
+#include <fontconfig/fontconfig.h>
+ </funcsynopsisinfo>
+ <funcprototype>
+ <funcdef>void <function>FcStrListFirst</function></funcdef>
+ <paramdef>FcStrList *<parameter>list</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1><title>Description</title>
<para>
-Fontconfig version &version;
+Returns the first string in <parameter>list</parameter>.
</para>
</refsect1>
+ <refsect1><title>Since</title>
+ <para>version 2.11.0</para>
+ </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcStrListNext</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcStrListNext</refname>
</refsynopsisdiv>
<refsect1><title>Description</title>
<para>
-Returns the next string in <parameter>set</parameter>.
- </para>
- </refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
+Returns the next string in <parameter>list</parameter>.
</para>
</refsect1>
</refentry>
<refmeta>
<refentrytitle>FcStrListDone</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcStrListDone</refname>
Destroys the enumerator <parameter>list</parameter>.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<refmeta>
<refentrytitle>FcValueDestroy</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcValueDestroy</refname>
FcTypeMatrix and FcTypeCharSet reference memory, the other types do not.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcValueSave</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcValueSave</refname>
may be safely destroyed without harming the new value.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcValuePrint</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcValuePrint</refname>
specification as it may change in the future.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
<!--
fontconfig/doc/func.sgml
<refmeta>
<refentrytitle>FcValueEqual</refentrytitle>
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FcValueEqual</refname>
compared ignoring case.
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
- </refsect1>
</refentry>
--- /dev/null
+/*
+ * fontconfig/doc/fcweight.fncs
+ *
+ * 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.
+ */
+@RET@ int
+@FUNC@ FcWeightFromOpenType
+@TYPE1@ int @ARG1@ ot_weight
+@PURPOSE@ Convert from OpenType weight values to fontconfig ones
+@DESC@
+<function>FcWeightFromOpenType</function> returns an integer value
+to use with FC_WEIGHT, from an integer in the 1..1000 range, resembling
+the numbers from OpenType specification's OS/2 usWeight numbers, which
+are also similar to CSS font-weight numbers. If input is negative,
+zero, or greater than 1000, returns -1. This function linearly interpolates
+between various FC_WEIGHT_* constants. As such, the returned value does not
+necessarily match any of the predefined constants.
+@SINCE@ 2.11.91
+@@
+
+@RET@ int
+@FUNC@ FcWeightToOpenType
+@TYPE1@ int @ARG1@ ot_weight
+@PURPOSE@ Convert from fontconfig weight values to OpenType ones
+@DESC@
+<function>FcWeightToOpenType</function> is the inverse of
+<function>FcWeightFromOpenType</function>. If the input is less than
+FC_WEIGHT_THIN or greater than FC_WEIGHT_EXTRABLACK, returns -1. Otherwise
+returns a number in the range 1 to 1000.
+@SINCE@ 2.11.91
+@@
--- /dev/null
+<!--
+ fontconfig/doc/func.sgml
+
+ Copyright © 2003 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 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.
+ -->
+ <refentry id="FcWeightFromOpenType">
+ <refmeta>
+ <refentrytitle>FcWeightFromOpenType</refentrytitle>
+ <manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>FcWeightFromOpenType</refname>
+ <refpurpose>Convert from OpenType weight values to fontconfig ones</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>
+#include <fontconfig/fontconfig.h>
+ </funcsynopsisinfo>
+ <funcprototype>
+ <funcdef>int <function>FcWeightFromOpenType</function></funcdef>
+ <paramdef>int<parameter>ot_weight</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1><title>Description</title>
+ <para>
+<function>FcWeightFromOpenType</function> returns an integer value
+to use with FC_WEIGHT, from an integer in the 1..1000 range, resembling
+the numbers from OpenType specification's OS/2 usWeight numbers, which
+are also similar to CSS font-weight numbers. If input is negative,
+zero, or greater than 1000, returns -1. This function linearly interpolates
+between various FC_WEIGHT_* constants. As such, the returned value does not
+necessarily match any of the predefined constants.
+ </para>
+ </refsect1>
+ <refsect1><title>Since</title>
+ <para>version 2.11.91</para>
+ </refsect1>
+ </refentry>
+<!--
+ fontconfig/doc/func.sgml
+
+ Copyright © 2003 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 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.
+ -->
+ <refentry id="FcWeightToOpenType">
+ <refmeta>
+ <refentrytitle>FcWeightToOpenType</refentrytitle>
+ <manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>FcWeightToOpenType</refname>
+ <refpurpose>Convert from fontconfig weight values to OpenType ones</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>
+#include <fontconfig/fontconfig.h>
+ </funcsynopsisinfo>
+ <funcprototype>
+ <funcdef>int <function>FcWeightToOpenType</function></funcdef>
+ <paramdef>int<parameter>ot_weight</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+ <refsect1><title>Description</title>
+ <para>
+<function>FcWeightToOpenType</function> is the inverse of
+<function>FcWeightFromOpenType</function>. If the input is less than
+FC_WEIGHT_THIN or greater than FC_WEIGHT_EXTRABLACK, returns -1. Otherwise
+returns a number in the range 1 to 1000.
+ </para>
+ </refsect1>
+ <refsect1><title>Since</title>
+ <para>version 2.11.91</para>
+ </refsect1>
+ </refentry>
<!ENTITY fcobjectset SYSTEM "fcobjectset.sgml">
<!ENTITY fcobjecttype SYSTEM "fcobjecttype.sgml">
<!ENTITY fcpattern SYSTEM "fcpattern.sgml">
+<!ENTITY fcrange SYSTEM "fcrange.sgml">
<!ENTITY fcstring SYSTEM "fcstring.sgml">
<!ENTITY fcstrset SYSTEM "fcstrset.sgml">
<!ENTITY fcvalue SYSTEM "fcvalue.sgml">
+<!ENTITY fcweight SYSTEM "fcweight.sgml">
<!ENTITY version SYSTEM "version.sgml">
]>
<!--
the file
ftface FC_FT_FACE FT_Face Use the specified FreeType
face object
- rasterizer FC_RASTERIZER String Which rasterizer is in use
+ rasterizer FC_RASTERIZER String Which rasterizer is in use (deprecated)
outline FC_OUTLINE Bool Whether the glyphs are outlines
scalable FC_SCALABLE Bool Whether glyphs can be scaled
scale FC_SCALE Double Scale factor for point->pixel
conversions
+ color FC_COLOR Bool Whether any glyphs have color
dpi FC_DPI Double Target dots per inch
rgba FC_RGBA Int unknown, rgb, bgr, vrgb,
vbgr, none - subpixel geometry
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
default value of familylang,
stylelang and fullnamelang
+ prgname FC_PRGNAME String Name of the running program
+ hash FC_HASH String SHA256 hash value of the font data
+ with "sha256:" prefix (deprecated)
+ postscriptname FC_POSTSCRIPT_NAME String Font name in PostScript
</programlisting>
</sect2>
</sect1>
</para>
&fcmatrix;
</sect2>
+ <sect2><title>FcRange</title>
+ <para>
+An FcRange holds two variables to indicate a range in between.
+ </para>
+ &fcrange;
+ </sect2>
<sect2><title>FcConfig</title>
<para>
An FcConfig object holds the internal representation of a configuration.
</para>
&fcconstant;
</sect2>
+ <sect2><title>FcWeight</title>
+ <para>
+Maps weights to and from OpenType weights.
+ </para>
+ &fcweight;
+ </sect2>
<sect2><title>FcBlanks</title>
<para>
An FcBlanks object holds a list of Unicode chars which are expected to
- Fontconfig Developers Reference, Version 2.10.91
+Fontconfig Developers Reference, Version 2.11.93
Copyright © 2002 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 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.
-
- -------------------------------------------------------
+ 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.
+ _______________________________________________
Table of Contents
-
- [1]DESCRIPTION
-
- [2]FUNCTIONAL OVERVIEW
-
- [3]Datatypes
-
- [4]FUNCTIONS
+ DESCRIPTION
+ FUNCTIONAL OVERVIEW
+ Datatypes
+ FUNCTIONS
DESCRIPTION
Fontconfig is a library designed to provide system-wide font
configuration, customization and application access.
-
- --------------------------------------------------------------------------
+ __________________________________________________________
FUNCTIONAL OVERVIEW
- Fontconfig contains two essential modules, the configuration module which
- builds an internal configuration from XML files and the matching module
- which accepts font patterns and returns the nearest matching font.
-
- --------------------------------------------------------------------------
-
- FONT CONFIGURATION
-
- The configuration module consists of the FcConfig datatype, libexpat and
- FcConfigParse which walks over an XML tree and amends a configuration with
- data found within. From an external perspective, configuration of the
- library consists of generating a valid XML tree and feeding that to
- FcConfigParse. The only other mechanism provided to applications for
- changing the running configuration is to add fonts and directories to the
- list of application-provided font files.
-
- The intent is to make font configurations relatively static, and shared by
- as many applications as possible. It is hoped that this will lead to more
- stable font selection when passing names from one application to another.
- XML was chosen as a configuration file format because it provides a format
- which is easy for external agents to edit while retaining the correct
+ Fontconfig contains two essential modules, the configuration
+ module which builds an internal configuration from XML files
+ and the matching module which accepts font patterns and returns
+ the nearest matching font.
+ __________________________________________________________
+
+FONT CONFIGURATION
+
+ The configuration module consists of the FcConfig datatype,
+ libexpat and FcConfigParse which walks over an XML tree and
+ amends a configuration with data found within. From an external
+ perspective, configuration of the library consists of
+ generating a valid XML tree and feeding that to FcConfigParse.
+ The only other mechanism provided to applications for changing
+ the running configuration is to add fonts and directories to
+ the list of application-provided font files.
+
+ The intent is to make font configurations relatively static,
+ and shared by as many applications as possible. It is hoped
+ that this will lead to more stable font selection when passing
+ names from one application to another. XML was chosen as a
+ configuration file format because it provides a format which is
+ easy for external agents to edit while retaining the correct
structure and syntax.
- Font configuration is separate from font matching; applications needing to
- do their own matching can access the available fonts from the library and
- perform private matching. The intent is to permit applications to pick and
- choose appropriate functionality from the library instead of forcing them
- to choose between this library and a private configuration mechanism. The
- hope is that this will ensure that configuration of fonts for all
- applications can be centralized in one place. Centralizing font
- configuration will simplify and regularize font installation and
- customization.
-
- --------------------------------------------------------------------------
-
- FONT PROPERTIES
-
- While font patterns may contain essentially any properties, there are some
- well known properties with associated types. Fontconfig uses some of these
- properties for font matching and font completion. Others are provided as a
- convenience for the application's rendering mechanism.
-
+ Font configuration is separate from font matching; applications
+ needing to do their own matching can access the available fonts
+ from the library and perform private matching. The intent is to
+ permit applications to pick and choose appropriate
+ functionality from the library instead of forcing them to
+ choose between this library and a private configuration
+ mechanism. The hope is that this will ensure that configuration
+ of fonts for all applications can be centralized in one place.
+ Centralizing font configuration will simplify and regularize
+ font installation and customization.
+ __________________________________________________________
+
+FONT PROPERTIES
+
+ While font patterns may contain essentially any properties,
+ there are some well known properties with associated types.
+ Fontconfig uses some of these properties for font matching and
+ font completion. Others are provided as a convenience for the
+ application's rendering mechanism.
Property Definitions
Property C Preprocessor Symbol Type Description
----------------------------------------------------
family FC_FAMILY String Font family names
- familylang FC_FAMILYLANG String Language corresponding to
+ familylang FC_FAMILYLANG String Language corresponding
+ to
each family name
- style FC_STYLE String Font style. Overrides weight
+ style FC_STYLE String Font style. Overrides
+weight
and slant
- stylelang FC_STYLELANG String Language corresponding to
+ stylelang FC_STYLELANG String Language corresponding
+ to
each style name
- fullname FC_FULLNAME String Font face full name where
- different from family and
+ fullname FC_FULLNAME String Font face full name wh
+ere
+ different from family
+and
family + style
- fullnamelang FC_FULLNAMELANG String Language corresponding to
+ fullnamelang FC_FULLNAMELANG String Language corresponding
+ to
each fullname
- slant FC_SLANT Int Italic, oblique or roman
- weight FC_WEIGHT Int Light, medium, demibold,
+ slant FC_SLANT Int Italic, oblique or rom
+an
+ weight FC_WEIGHT Int Light, medium, demibol
+d,
bold or black
size FC_SIZE Double Point size
- width FC_WIDTH Int Condensed, normal or expanded
- aspect FC_ASPECT Double Stretches glyphs horizontally
+ width FC_WIDTH Int Condensed, normal or e
+xpanded
+ aspect FC_ASPECT Double Stretches glyphs horiz
+ontally
before hinting
pixelsize FC_PIXEL_SIZE Double Pixel size
- spacing FC_SPACING Int Proportional, dual-width,
+ spacing FC_SPACING Int Proportional, dual-wid
+th,
monospace or charcell
foundry FC_FOUNDRY String Font foundry name
antialias FC_ANTIALIAS Bool Whether glyphs can be
antialiased
- hinting FC_HINTING Bool Whether the rasterizer should
+ hinting FC_HINTING Bool Whether the rasterizer
+ should
use hinting
- hintstyle FC_HINT_STYLE Int Automatic hinting style
+ hintstyle FC_HINT_STYLE Int Automatic hinting styl
+e
verticallayout FC_VERTICAL_LAYOUT Bool Use vertical layout
- autohint FC_AUTOHINT Bool Use autohinter instead of
+ autohint FC_AUTOHINT Bool Use autohinter instead
+ of
normal hinter
- globaladvance FC_GLOBAL_ADVANCE Bool Use font global advance data (deprecated)
- file FC_FILE String The filename holding the font
- index FC_INDEX Int The index of the font within
+ globaladvance FC_GLOBAL_ADVANCE Bool Use font global advanc
+e data (deprecated)
+ file FC_FILE String The filename holding t
+he font
+ index FC_INDEX Int The index of the font
+within
the file
- ftface FC_FT_FACE FT_Face Use the specified FreeType
+ ftface FC_FT_FACE FT_Face Use the specified Free
+Type
face object
- rasterizer FC_RASTERIZER String Which rasterizer is in use
- outline FC_OUTLINE Bool Whether the glyphs are outlines
- scalable FC_SCALABLE Bool Whether glyphs can be scaled
- scale FC_SCALE Double Scale factor for point->pixel
+ rasterizer FC_RASTERIZER String Which rasterizer is in
+ use (deprecated)
+ outline FC_OUTLINE Bool Whether the glyphs are
+ outlines
+ scalable FC_SCALABLE Bool Whether glyphs can be
+scaled
+ scale FC_SCALE Double Scale factor for point
+->pixel
conversions
+ color FC_COLOR Bool Whether any glyphs hav
+e color
dpi FC_DPI Double Target dots per inch
- rgba FC_RGBA Int unknown, rgb, bgr, vrgb,
- vbgr, none - subpixel geometry
+ rgba FC_RGBA Int unknown, rgb, bgr, vrg
+b,
+ vbgr, none - subpixel
+geometry
lcdfilter FC_LCD_FILTER Int Type of LCD filter
- minspace FC_MINSPACE Bool Eliminate leading from line
+ minspace FC_MINSPACE Bool Eliminate leading from
+ line
spacing
- charset FC_CHARSET CharSet Unicode chars encoded by
+ charset FC_CHARSET CharSet Unicode chars encoded
+by
the font
lang FC_LANG LangSet Set of RFC-3066-style
- languages this font supports
- fontversion FC_FONTVERSION Int Version number of the font
- capability FC_CAPABILITY String List of layout capabilities in
+ languages this font su
+pports
+ fontversion FC_FONTVERSION Int Version number of the
+font
+ capability FC_CAPABILITY String List of layout capabil
+ities in
the font
+ fontformat FC_FONTFORMAT String String name of the fon
+t format
embolden FC_EMBOLDEN Bool Rasterizer should
- synthetically embolden the font
- namelang FC_NAMELANG String Language name to be used for the
- default value of familylang,
- stylelang and fullnamelang
-
-
- --------------------------------------------------------------------------
+ synthetically embolden
+ the font
+ embeddedbitmap FC_EMBEDDED_BITMAP Bool Use the embedded bitma
+p 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 us
+ed for the
+ default value of famil
+ylang,
+ stylelang and fullname
+lang
+ prgname FC_PRGNAME String Name of the running pr
+ogram
+ hash FC_HASH String SHA256 hash value of t
+he font data
+ with "sha256:" prefix
+(deprecated)
+ postscriptname FC_POSTSCRIPT_NAME String Font name in PostScrip
+t
+ __________________________________________________________
Datatypes
- Fontconfig uses abstract data types to hide internal implementation
- details for most data structures. A few structures are exposed where
- appropriate.
-
- --------------------------------------------------------------------------
-
- FcChar8, FcChar16, FcChar32, FcBool
-
- These are primitive data types; the FcChar* types hold precisely the
- number of bits stated (if supported by the C implementation). FcBool holds
- one of two C preprocessor symbols: FcFalse or FcTrue.
-
- --------------------------------------------------------------------------
-
- FcMatrix
-
- An FcMatrix holds an affine transformation, usually used to reshape
- glyphs. A small set of matrix operations are provided to manipulate these.
+ Fontconfig uses abstract data types to hide internal
+ implementation details for most data structures. A few
+ structures are exposed where appropriate.
+ __________________________________________________________
- typedef struct _FcMatrix {
- double xx, xy, yx, yy;
- } FcMatrix;
+FcChar8, FcChar16, FcChar32, FcBool
+ These are primitive data types; the FcChar* types hold
+ precisely the number of bits stated (if supported by the C
+ implementation). FcBool holds one of two C preprocessor
+ symbols: FcFalse or FcTrue.
+ __________________________________________________________
- --------------------------------------------------------------------------
+FcMatrix
- FcCharSet
+ An FcMatrix holds an affine transformation, usually used to
+ reshape glyphs. A small set of matrix operations are provided
+ to manipulate these.
+ typedef struct _FcMatrix {
+ double xx, xy, yx, yy;
+ } FcMatrix;
+ __________________________________________________________
- An FcCharSet is an abstract type that holds the set of encoded Unicode
- chars in a font. Operations to build and compare these sets are provided.
+FcCharSet
- --------------------------------------------------------------------------
+ An FcCharSet is an abstract type that holds the set of encoded
+ Unicode chars in a font. Operations to build and compare these
+ sets are provided.
+ __________________________________________________________
- FcLangSet
+FcLangSet
- An FcLangSet is an abstract type that holds the set of languages supported
- by a font. Operations to build and compare these sets are provided. These
- are computed for a font based on orthographic information built into the
- fontconfig library. Fontconfig has orthographies for all of the ISO 639-1
- languages except for MS, NA, PA, PS, QU, RN, RW, SD, SG, SN, SU and ZA. If
- you have orthographic information for any of these languages, please
- submit them.
+ An FcLangSet is an abstract type that holds the set of
+ languages supported by a font. Operations to build and compare
+ these sets are provided. These are computed for a font based on
+ orthographic information built into the fontconfig library.
+ Fontconfig has orthographies for all of the ISO 639-1 languages
+ except for MS, NA, PA, PS, QU, RN, RW, SD, SG, SN, SU and ZA.
+ If you have orthographic information for any of these
+ languages, please submit them.
+ __________________________________________________________
- --------------------------------------------------------------------------
+FcLangResult
- FcLangResult
+ An FcLangResult is an enumeration used to return the results of
+ comparing two language strings or FcLangSet objects.
+ FcLangEqual means the objects match language and territory.
+ FcLangDifferentTerritory means the objects match in language
+ but differ in territory. FcLangDifferentLang means the objects
+ differ in language.
+ __________________________________________________________
- An FcLangResult is an enumeration used to return the results of comparing
- two language strings or FcLangSet objects. FcLangEqual means the objects
- match language and territory. FcLangDifferentTerritory means the objects
- match in language but differ in territory. FcLangDifferentLang means the
- objects differ in language.
-
- --------------------------------------------------------------------------
-
- FcType
+FcType
Tags the kind of data stored in an FcValue.
-
- --------------------------------------------------------------------------
-
- FcValue
-
- An FcValue object holds a single value with one of a number of different
- types. The 'type' tag indicates which member is valid.
-
- typedef struct _FcValue {
- FcType type;
- union {
- const FcChar8 *s;
- int i;
- FcBool b;
- double d;
- const FcMatrix *m;
- const FcCharSet *c;
- void *f;
- const FcLangSet *l;
- } u;
- } FcValue;
-
-
- FcValue Members
-
- Type Union member Datatype
- --------------------------------
- FcTypeVoid (none) (none)
- FcTypeInteger i int
- FcTypeDouble d double
- FcTypeString s FcChar8 *
- FcTypeBool b b
- FcTypeMatrix m FcMatrix *
- FcTypeCharSet c FcCharSet *
- FcTypeFTFace f void * (FT_Face)
- FcTypeLangSet l FcLangSet *
-
-
- --------------------------------------------------------------------------
-
- FcPattern
-
- holds a set of names with associated value lists; each name refers to a
- property of a font. FcPatterns are used as inputs to the matching code as
- well as holding information about specific fonts. Each property can hold
- one or more values; conventionally all of the same type, although the
- interface doesn't demand that.
-
- --------------------------------------------------------------------------
-
- FcFontSet
-
- typedef struct _FcFontSet {
- int nfont;
- int sfont;
- FcPattern **fonts;
- } FcFontSet;
-
-
- An FcFontSet contains a list of FcPatterns. Internally fontconfig uses
- this data structure to hold sets of fonts. Externally, fontconfig returns
- the results of listing fonts in this format. 'nfont' holds the number of
- patterns in the 'fonts' array; 'sfont' is used to indicate the size of
- that array.
-
- --------------------------------------------------------------------------
-
- FcStrSet, FcStrList
-
- FcStrSet holds a list of strings that can be appended to and enumerated.
- Its unique characteristic is that the enumeration works even while strings
- are appended during enumeration. FcStrList is used during enumeration to
- safely and correctly walk the list of strings even while that list is
- edited in the middle of enumeration.
-
- --------------------------------------------------------------------------
-
- FcObjectSet
-
- typedef struct _FcObjectSet {
- int nobject;
- int sobject;
- const char **objects;
- } FcObjectSet;
-
-
- holds a set of names and is used to specify which fields from fonts are
- placed in the the list of returned patterns when listing fonts.
-
- --------------------------------------------------------------------------
-
- FcObjectType
-
- typedef struct _FcObjectType {
- const char *object;
- FcType type;
- } FcObjectType;
-
-
- marks the type of a pattern element generated when parsing font names.
- Applications can add new object types so that font names may contain the
- new elements.
-
- --------------------------------------------------------------------------
-
- FcConstant
-
- typedef struct _FcConstant {
- const FcChar8 *name;
- const char *object;
- int value;
- } FcConstant;
-
-
- Provides for symbolic constants for new pattern elements. When 'name' is
- seen in a font name, an 'object' element is created with value 'value'.
-
- --------------------------------------------------------------------------
-
- FcBlanks
-
- holds a list of Unicode chars which are expected to be blank; unexpectedly
- blank chars are assumed to be invalid and are elided from the charset
- associated with the font.
-
- --------------------------------------------------------------------------
-
- FcFileCache
-
- holds the per-user cache information for use while loading the font
- database. This is built automatically for the current configuration when
- that is loaded. Applications must always pass '0' when one is requested.
-
- --------------------------------------------------------------------------
-
- FcConfig
-
- holds a complete configuration of the library; there is one default
- configuration, other can be constructed from XML data structures. All
- public entry points that need global data can take an optional FcConfig*
- argument; passing 0 uses the default configuration. FcConfig objects hold
- two sets of fonts, the first contains those specified by the
- configuration, the second set holds those added by the application at
- run-time. Interfaces that need to reference a particular set use one of
+ __________________________________________________________
+
+FcValue
+
+ An FcValue object holds a single value with one of a number of
+ different types. The 'type' tag indicates which member is
+ valid.
+ typedef struct _FcValue {
+ FcType type;
+ union {
+ const FcChar8 *s;
+ int i;
+ FcBool b;
+ double d;
+ const FcMatrix *m;
+ const FcCharSet *c;
+ void *f;
+ const FcLangSet *l;
+ } u;
+ } FcValue;
+
+ FcValue Members
+
+ Type Union member Datatype
+ --------------------------------
+ FcTypeVoid (none) (none)
+ FcTypeInteger i int
+ FcTypeDouble d double
+ FcTypeString s FcChar8 *
+ FcTypeBool b b
+ FcTypeMatrix m FcMatrix *
+ FcTypeCharSet c FcCharSet *
+ FcTypeFTFace f void * (FT_Face)
+ FcTypeLangSet l FcLangSet *
+ __________________________________________________________
+
+FcPattern
+
+ holds a set of names with associated value lists; each name
+ refers to a property of a font. FcPatterns are used as inputs
+ to the matching code as well as holding information about
+ specific fonts. Each property can hold one or more values;
+ conventionally all of the same type, although the interface
+ doesn't demand that.
+ __________________________________________________________
+
+FcFontSet
+
+ typedef struct _FcFontSet {
+ int nfont;
+ int sfont;
+ FcPattern **fonts;
+ } FcFontSet;
+
+ An FcFontSet contains a list of FcPatterns. Internally
+ fontconfig uses this data structure to hold sets of fonts.
+ Externally, fontconfig returns the results of listing fonts in
+ this format. 'nfont' holds the number of patterns in the
+ 'fonts' array; 'sfont' is used to indicate the size of that
+ array.
+ __________________________________________________________
+
+FcStrSet, FcStrList
+
+ FcStrSet holds a list of strings that can be appended to and
+ enumerated. Its unique characteristic is that the enumeration
+ works even while strings are appended during enumeration.
+ FcStrList is used during enumeration to safely and correctly
+ walk the list of strings even while that list is edited in the
+ middle of enumeration.
+ __________________________________________________________
+
+FcObjectSet
+
+ typedef struct _FcObjectSet {
+ int nobject;
+ int sobject;
+ const char **objects;
+ } FcObjectSet;
+
+ holds a set of names and is used to specify which fields from
+ fonts are placed in the the list of returned patterns when
+ listing fonts.
+ __________________________________________________________
+
+FcObjectType
+
+ typedef struct _FcObjectType {
+ const char *object;
+ FcType type;
+ } FcObjectType;
+
+ marks the type of a pattern element generated when parsing font
+ names. Applications can add new object types so that font names
+ may contain the new elements.
+ __________________________________________________________
+
+FcConstant
+
+ typedef struct _FcConstant {
+ const FcChar8 *name;
+ const char *object;
+ int value;
+ } FcConstant;
+
+ Provides for symbolic constants for new pattern elements. When
+ 'name' is seen in a font name, an 'object' element is created
+ with value 'value'.
+ __________________________________________________________
+
+FcBlanks
+
+ holds a list of Unicode chars which are expected to be blank;
+ unexpectedly blank chars are assumed to be invalid and are
+ elided from the charset associated with the font.
+ __________________________________________________________
+
+FcFileCache
+
+ holds the per-user cache information for use while loading the
+ font database. This is built automatically for the current
+ configuration when that is loaded. Applications must always
+ pass '0' when one is requested.
+ __________________________________________________________
+
+FcConfig
+
+ holds a complete configuration of the library; there is one
+ default configuration, other can be constructed from XML data
+ structures. All public entry points that need global data can
+ take an optional FcConfig* argument; passing 0 uses the default
+ configuration. FcConfig objects hold two sets of fonts, the
+ first contains those specified by the configuration, the second
+ set holds those added by the application at run-time.
+ Interfaces that need to reference a particular set use one of
the FcSetName enumerated values.
-
- --------------------------------------------------------------------------
-
- FcSetName
-
- Specifies one of the two sets of fonts available in a configuration;
- FcSetSystem for those fonts specified in the configuration and
- FcSetApplication which holds fonts provided by the application.
-
- --------------------------------------------------------------------------
-
- FcResult
-
- Used as a return type for functions manipulating FcPattern objects.
-
- FcResult Values
- Result Code Meaning
- -----------------------------------------------------------
- FcResultMatch Object exists with the specified ID
- FcResultNoMatch Object doesn't exist at all
- FcResultTypeMismatch Object exists, but the type doesn't match
- FcResultNoId Object exists, but has fewer values
- than specified
- FcResultOutOfMemory malloc failed
-
-
- --------------------------------------------------------------------------
-
- FcAtomic
-
- Used for locking access to configuration files. Provides a safe way to
- update configuration files.
-
- --------------------------------------------------------------------------
-
- FcCache
-
- Holds information about the fonts contained in a single directory. Normal
- applications need not worry about this as caches for font access are
- automatically managed by the library. Applications dealing with cache
- management may want to use some of these objects in their work, however
- the included 'fc-cache' program generally suffices for all of that.
-
- --------------------------------------------------------------------------
+ __________________________________________________________
+
+FcSetName
+
+ Specifies one of the two sets of fonts available in a
+ configuration; FcSetSystem for those fonts specified in the
+ configuration and FcSetApplication which holds fonts provided
+ by the application.
+ __________________________________________________________
+
+FcResult
+
+ Used as a return type for functions manipulating FcPattern
+ objects.
+ FcResult Values
+ Result Code Meaning
+ -----------------------------------------------------------
+ FcResultMatch Object exists with the specified ID
+ FcResultNoMatch Object doesn't exist at all
+ FcResultTypeMismatch Object exists, but the type doesn't matc
+h
+ FcResultNoId Object exists, but has fewer values
+ than specified
+ FcResultOutOfMemory malloc failed
+ __________________________________________________________
+
+FcAtomic
+
+ Used for locking access to configuration files. Provides a safe
+ way to update configuration files.
+ __________________________________________________________
+
+FcCache
+
+ Holds information about the fonts contained in a single
+ directory. Normal applications need not worry about this as
+ caches for font access are automatically managed by the
+ library. Applications dealing with cache management may want to
+ use some of these objects in their work, however the included
+ 'fc-cache' program generally suffices for all of that.
+ __________________________________________________________
FUNCTIONS
- These are grouped by functionality, often using the main data type being
- manipulated.
+ These are grouped by functionality, often using the main data
+ type being manipulated.
+ __________________________________________________________
- --------------------------------------------------------------------------
-
- Initialization
+Initialization
Table of Contents
+ FcInitLoadConfig -- load configuration
+ FcInitLoadConfigAndFonts -- load configuration and font data
+ FcInit -- initialize fontconfig library
+ FcFini -- finalize fontconfig library
+ FcGetVersion -- library version number
+ FcInitReinitialize -- re-initialize library
+ FcInitBringUptoDate -- reload configuration files if needed
- [5]FcInitLoadConfig -- load configuration
-
- [6]FcInitLoadConfigAndFonts -- load configuration and font data
-
- [7]FcInit -- initialize fontconfig library
-
- [8]FcFini -- finalize fontconfig library
-
- [9]FcGetVersion -- library version number
-
- [10]FcInitReinitialize -- re-initialize library
-
- [11]FcInitBringUptoDate -- reload configuration files if needed
+ These functions provide some control over how the library is
+ initialized.
- These functions provide some control over how the library is initialized.
-
- FcInitLoadConfig
+FcInitLoadConfig
Name
- FcInitLoadConfig -- load configuration
+ FcInitLoadConfig -- load configuration
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcConfig * FcInitLoadConfig(void);
Loads the default configuration file and returns the resulting
configuration. Does not load any font information.
-Version
-
- Fontconfig version 2.10.91
-
- FcInitLoadConfigAndFonts
+FcInitLoadConfigAndFonts
Name
- FcInitLoadConfigAndFonts -- load configuration and font data
+ FcInitLoadConfigAndFonts -- load configuration and font data
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcConfig * FcInitLoadConfigAndFonts(void);
Description
- Loads the default configuration file and builds information about the
- available fonts. Returns the resulting configuration.
-
-Version
-
- Fontconfig version 2.10.91
+ Loads the default configuration file and builds information
+ about the available fonts. Returns the resulting configuration.
- FcInit
+FcInit
Name
- FcInit -- initialize fontconfig library
+ FcInit -- initialize fontconfig library
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcInit(void);
Description
- Loads the default configuration file and the fonts referenced therein and
- sets the default configuration to that result. Returns whether this
- process succeeded or not. If the default configuration has already been
- loaded, this routine does nothing and returns FcTrue.
-
-Version
+ Loads the default configuration file and the fonts referenced
+ therein and sets the default configuration to that result.
+ Returns whether this process succeeded or not. If the default
+ configuration has already been loaded, this routine does
+ nothing and returns FcTrue.
- Fontconfig version 2.10.91
-
- FcFini
+FcFini
Name
- FcFini -- finalize fontconfig library
+ FcFini -- finalize fontconfig library
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
void FcFini(void);
Description
- Frees all data structures allocated by previous calls to fontconfig
- functions. Fontconfig returns to an uninitialized state, requiring a new
- call to one of the FcInit functions before any other fontconfig function
- may be called.
+ Frees all data structures allocated by previous calls to
+ fontconfig functions. Fontconfig returns to an uninitialized
+ state, requiring a new call to one of the FcInit functions
+ before any other fontconfig function may be called.
-Version
-
- Fontconfig version 2.10.91
-
- FcGetVersion
+FcGetVersion
Name
- FcGetVersion -- library version number
+ FcGetVersion -- library version number
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
int FcGetVersion(void);
Returns the version number of the library.
-Version
-
- Fontconfig version 2.10.91
-
- FcInitReinitialize
+FcInitReinitialize
Name
- FcInitReinitialize -- re-initialize library
+ FcInitReinitialize -- re-initialize library
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcInitReinitialize(void);
Description
- Forces the default configuration file to be reloaded and resets the
- default configuration. Returns FcFalse if the configuration cannot be
- reloaded (due to configuration file errors, allocation failures or other
- issues) and leaves the existing configuration unchanged. Otherwise returns
- FcTrue.
-
-Version
-
- Fontconfig version 2.10.91
+ Forces the default configuration file to be reloaded and resets
+ the default configuration. Returns FcFalse if the configuration
+ cannot be reloaded (due to configuration file errors,
+ allocation failures or other issues) and leaves the existing
+ configuration unchanged. Otherwise returns FcTrue.
- FcInitBringUptoDate
+FcInitBringUptoDate
Name
- FcInitBringUptoDate -- reload configuration files if needed
+ FcInitBringUptoDate -- reload configuration files if needed
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcInitBringUptoDate(void);
Description
- Checks the rescan interval in the default configuration, checking the
- configuration if the interval has passed and reloading the configuration
- if when any changes are detected. Returns FcFalse if the configuration
- cannot be reloaded (see FcInitReinitialize). Otherwise returns FcTrue.
-
-Version
-
- Fontconfig version 2.10.91
-
- --------------------------------------------------------------------------
+ Checks the rescan interval in the default configuration,
+ checking the configuration if the interval has passed and
+ reloading the configuration if when any changes are detected.
+ Returns FcFalse if the configuration cannot be reloaded (see
+ FcInitReinitialize). Otherwise returns FcTrue.
+ __________________________________________________________
- FcPattern
+FcPattern
Table of Contents
+ FcPatternCreate -- Create a pattern
+ FcPatternDuplicate -- Copy a pattern
+ FcPatternReference -- Increment pattern reference count
+ FcPatternDestroy -- Destroy a pattern
+ FcPatternEqual -- Compare patterns
+ FcPatternEqualSubset -- Compare portions of patterns
+ FcPatternFilter -- Filter the objects of pattern
+ FcPatternHash -- Compute a pattern hash value
+ FcPatternAdd -- Add a value to a pattern
+ FcPatternAddWeak -- Add a value to a pattern with weak binding
+ FcPatternAdd-Type -- Add a typed value to a pattern
+ FcPatternGet -- Return a value from a pattern
+ FcPatternGet-Type -- Return a typed value from a pattern
+ FcPatternBuild -- Create patterns from arguments
+ FcPatternDel -- Delete a property from a pattern
+ FcPatternRemove -- Remove one object of the specified type from
+ the pattern
- [12]FcPatternCreate -- Create a pattern
-
- [13]FcPatternDuplicate -- Copy a pattern
-
- [14]FcPatternReference -- Increment pattern reference count
-
- [15]FcPatternDestroy -- Destroy a pattern
-
- [16]FcPatternEqual -- Compare patterns
-
- [17]FcPatternEqualSubset -- Compare portions of patterns
-
- [18]FcPatternFilter -- Filter the objects of pattern
-
- [19]FcPatternHash -- Compute a pattern hash value
-
- [20]FcPatternAdd -- Add a value to a pattern
-
- [21]FcPatternAddWeak -- Add a value to a pattern with weak binding
-
- [22]FcPatternAdd-Type -- Add a typed value to a pattern
+ FcPatternPrint -- Print a pattern for debugging
+ FcDefaultSubstitute -- Perform default substitutions in a
+ pattern
- [23]FcPatternGet -- Return a value from a pattern
+ FcNameParse -- Parse a pattern string
+ FcNameUnparse -- Convert a pattern back into a string that can
+ be parsed
- [24]FcPatternGet-Type -- Return a typed value from a pattern
+ FcPatternFormat -- Format a pattern into a string according to
+ a format specifier
- [25]FcPatternBuild -- Create patterns from arguments
+ An FcPattern is an opaque type that holds both patterns to
+ match against the available fonts, as well as the information
+ about each font.
- [26]FcPatternDel -- Delete a property from a pattern
-
- [27]FcPatternRemove -- Remove one object of the specified type from the
- pattern
-
- [28]FcPatternPrint -- Print a pattern for debugging
-
- [29]FcDefaultSubstitute -- Perform default substitutions in a pattern
-
- [30]FcNameParse -- Parse a pattern string
-
- [31]FcNameUnparse -- Convert a pattern back into a string that can be
- parsed
-
- [32]FcPatternFormat -- Format a pattern into a string according to a
- format specifier
-
- An FcPattern is an opaque type that holds both patterns to match against
- the available fonts, as well as the information about each font.
-
- FcPatternCreate
+FcPatternCreate
Name
- FcPatternCreate -- Create a pattern
+ FcPatternCreate -- Create a pattern
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcPattern * FcPatternCreate(void);
Description
- Creates a pattern with no properties; used to build patterns from scratch.
+ Creates a pattern with no properties; used to build patterns
+ from scratch.
-Version
-
- Fontconfig version 2.10.91
-
- FcPatternDuplicate
+FcPatternDuplicate
Name
- FcPatternDuplicate -- Copy a pattern
+ FcPatternDuplicate -- Copy a pattern
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcPattern * FcPatternDuplicate(const FcPattern *p);
Description
- Copy a pattern, returning a new pattern that matches p. Each pattern may
- be modified without affecting the other.
+ Copy a pattern, returning a new pattern that matches p. Each
+ pattern may be modified without affecting the other.
-Version
-
- Fontconfig version 2.10.91
-
- FcPatternReference
+FcPatternReference
Name
- FcPatternReference -- Increment pattern reference count
+ FcPatternReference -- Increment pattern reference count
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
void FcPatternReference(FcPattern *p);
Description
- Add another reference to p. Patterns are freed only when the reference
- count reaches zero.
-
-Version
+ Add another reference to p. Patterns are freed only when the
+ reference count reaches zero.
- Fontconfig version 2.10.91
-
- FcPatternDestroy
+FcPatternDestroy
Name
- FcPatternDestroy -- Destroy a pattern
+ FcPatternDestroy -- Destroy a pattern
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
void FcPatternDestroy(FcPattern *p);
Description
- Decrement the pattern reference count. If all references are gone,
- destroys the pattern, in the process destroying all related values.
-
-Version
+ Decrement the pattern reference count. If all references are
+ gone, destroys the pattern, in the process destroying all
+ related values.
- Fontconfig version 2.10.91
-
- FcPatternEqual
+FcPatternEqual
Name
- FcPatternEqual -- Compare patterns
+ FcPatternEqual -- Compare patterns
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- FcBool FcPatternEqual(const FcPattern *pa, const FcPattern *pb);
+ FcBool FcPatternEqual(const FcPattern *pa, const FcPattern
+ *pb);
Description
Returns whether pa and pb are exactly alike.
-Version
-
- Fontconfig version 2.10.91
-
- FcPatternEqualSubset
+FcPatternEqualSubset
Name
- FcPatternEqualSubset -- Compare portions of patterns
+ FcPatternEqualSubset -- Compare portions of patterns
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcBool FcPatternEqualSubset(const FcPattern *pa, const FcPattern *pb,
- const FcObjectSet *os);
+ FcBool FcPatternEqualSubset(const FcPattern *pa, const
+ FcPattern *pb, const FcObjectSet *os);
Description
- Returns whether pa and pb have exactly the same values for all of the
- objects in os.
-
-Version
-
- Fontconfig version 2.10.91
+ Returns whether pa and pb have exactly the same values for all
+ of the objects in os.
- FcPatternFilter
+FcPatternFilter
Name
- FcPatternFilter -- Filter the objects of pattern
+ FcPatternFilter -- Filter the objects of pattern
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcPattern * FcPatternFilter(FcPattern *p, const FcObjectSet *);
Description
- Returns a new pattern that only has those objects from p that are in os.
- If os is NULL, a duplicate of p is returned.
-
-Version
+ Returns a new pattern that only has those objects from p that
+ are in os. If os is NULL, a duplicate of p is returned.
- Fontconfig version 2.10.91
-
- FcPatternHash
+FcPatternHash
Name
- FcPatternHash -- Compute a pattern hash value
+ FcPatternHash -- Compute a pattern hash value
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcChar32 FcPatternHash(const FcPattern *p);
Description
- Returns a 32-bit number which is the same for any two patterns which are
- equal.
+ Returns a 32-bit number which is the same for any two patterns
+ which are equal.
-Version
-
- Fontconfig version 2.10.91
-
- FcPatternAdd
+FcPatternAdd
Name
- FcPatternAdd -- Add a value to a pattern
+ FcPatternAdd -- Add a value to a pattern
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- FcBool FcPatternAdd(FcPattern *p, const char *object, FcValue value,
- FcBool append);
+ FcBool FcPatternAdd(FcPattern *p, const char *object, FcValue
+ value, FcBool append);
Description
- Adds a single value to the list of values associated with the property
- named `object. If `append is FcTrue, the value is added at the end of any
- existing list, otherwise it is inserted at the beginning. `value' is saved
- (with FcValueSave) when inserted into the pattern so that the library
- retains no reference to any application-supplied data structure.
+ Adds a single value to the list of values associated with the
+ property named `object. If `append is FcTrue, the value is
+ added at the end of any existing list, otherwise it is inserted
+ at the beginning. `value' is saved (with FcValueSave) when
+ inserted into the pattern so that the library retains no
+ reference to any application-supplied data structure.
-Version
-
- Fontconfig version 2.10.91
-
- FcPatternAddWeak
+FcPatternAddWeak
Name
- FcPatternAddWeak -- Add a value to a pattern with weak binding
+ FcPatternAddWeak -- Add a value to a pattern with weak binding
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- FcBool FcPatternAddWeak(FcPattern *p, const char *object, FcValue value,
- FcBool append);
+ FcBool FcPatternAddWeak(FcPattern *p, const char *object,
+ FcValue value, FcBool append);
Description
- FcPatternAddWeak is essentially the same as FcPatternAdd except that any
- values added to the list have binding weak instead of strong.
+ FcPatternAddWeak is essentially the same as FcPatternAdd except
+ that any values added to the list have binding weak instead of
+ strong.
-Version
-
- Fontconfig version 2.10.91
-
- FcPatternAdd-Type
+FcPatternAdd-Type
Name
FcPatternAddInteger, FcPatternAddDouble, FcPatternAddString,
FcPatternAddMatrix, FcPatternAddCharSet, FcPatternAddBool,
- FcPatternAddFTFace, FcPatternAddLangSet -- Add a typed value to a pattern
+ FcPatternAddFTFace, FcPatternAddLangSet,
+ FcPatternAddRange -- Add a typed value to a pattern
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
+ FcBool FcPatternAddInteger(FcPattern *p, const char *object,
+ int i);
- FcBool FcPatternAddInteger(FcPattern *p, const char *object, int i);
+ FcBool FcPatternAddDouble(FcPattern *p, const char *object,
+ double d);
- FcBool FcPatternAddDouble(FcPattern *p, const char *object, double d);
+ FcBool FcPatternAddString(FcPattern *p, const char *object,
+ const FcChar8 *s);
- FcBool FcPatternAddString(FcPattern *p, const char *object, const FcChar8
- *s);
+ FcBool FcPatternAddMatrix(FcPattern *p, const char *object,
+ const FcMatrix *m);
- FcBool FcPatternAddMatrix(FcPattern *p, const char *object, const FcMatrix
- *m);
+ FcBool FcPatternAddCharSet(FcPattern *p, const char *object,
+ const FcCharSet *c);
- FcBool FcPatternAddCharSet(FcPattern *p, const char *object, const
- FcCharSet *c);
+ FcBool FcPatternAddBool(FcPattern *p, const char *object,
+ FcBool b);
- FcBool FcPatternAddBool(FcPattern *p, const char *object, FcBool b);
+ FcBool FcPatternAddFTFace(FcPattern *p, const char *object,
+ const FT_Facef);
- FcBool FcPatternAddFTFace(FcPattern *p, const char *object, const
- FT_Facef);
+ FcBool FcPatternAddLangSet(FcPattern *p, const char *object,
+ const FcLangSet *l);
- FcBool FcPatternAddLangSet(FcPattern *p, const char *object, const
- FcLangSet *l);
+ FcBool FcPatternAddRange(FcPattern *p, const char *object,
+ const FcRange *r);
Description
- These are all convenience functions that insert objects of the specified
- type into the pattern. Use these in preference to FcPatternAdd as they
- will provide compile-time typechecking. These all append values to any
- existing list of values.
-
-Version
+ These are all convenience functions that insert objects of the
+ specified type into the pattern. Use these in preference to
+ FcPatternAdd as they will provide compile-time typechecking.
+ These all append values to any existing list of values.
+ FcPatternAddRange are available since 2.11.91.
- Fontconfig version 2.10.91
-
- FcPatternGet
+FcPatternGet
Name
- FcPatternGet -- Return a value from a pattern
+ FcPatternGet -- Return a value from a pattern
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- FcResult FcPatternGet(FcPattern *p, const char *object, int id, FcValue
- *v);
+ FcResult FcPatternGet(FcPattern *p, const char *object, int id,
+ FcValue *v);
Description
- Returns in v the id'th value associated with the property object. The
- value returned is not a copy, but rather refers to the data stored within
- the pattern directly. Applications must not free this value.
-
-Version
-
- Fontconfig version 2.10.91
+ Returns in v the id'th value associated with the property
+ object. The value returned is not a copy, but rather refers to
+ the data stored within the pattern directly. Applications must
+ not free this value.
- FcPatternGet-Type
+FcPatternGet-Type
Name
FcPatternGetInteger, FcPatternGetDouble, FcPatternGetString,
FcPatternGetMatrix, FcPatternGetCharSet, FcPatternGetBool,
- FcPatternGetFTFace, FcPatternGetLangSet -- Return a typed value from a
- pattern
+ FcPatternGetFTFace, FcPatternGetLangSet,
+ FcPatternGetRange -- Return a typed value from a pattern
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
+ FcResult FcPatternGetInteger(FcPattern *p, const char *object,
+ int n, int *i);
- FcResult FcPatternGetInteger(FcPattern *p, const char *object, int n, int
- *i);
+ FcResult FcPatternGetDouble(FcPattern *p, const char *object,
+ int n, double *d);
- FcResult FcPatternGetDouble(FcPattern *p, const char *object, int n,
- double *d);
+ FcResult FcPatternGetString(FcPattern *p, const char *object,
+ int n, FcChar8 **s);
- FcResult FcPatternGetString(FcPattern *p, const char *object, int n,
- FcChar8 **s);
+ FcResult FcPatternGetMatrix(FcPattern *p, const char *object,
+ int n, FcMatrix **s);
- FcResult FcPatternGetMatrix(FcPattern *p, const char *object, int n,
- FcMatrix **s);
+ FcResult FcPatternGetCharSet(FcPattern *p, const char *object,
+ int n, FcCharSet **c);
- FcResult FcPatternGetCharSet(FcPattern *p, const char *object, int n,
- FcCharSet **c);
+ FcResult FcPatternGetBool(FcPattern *p, const char *object, int
+ n, FcBool *b);
- FcResult FcPatternGetBool(FcPattern *p, const char *object, int n, FcBool
- *b);
+ FcResult FcPatternGetFTFace(FcPattern *p, const char *object,
+ int n, FT_Face *f);
- FcResult FcPatternGetFTFace(FcPattern *p, const char *object, int n);
+ FcResult FcPatternGetLangSet(FcPattern *p, const char *object,
+ int n, FcLangSet **l);
- FcResult FcPatternGetLangSet(FcPattern *p, const char *object, FT_Face
- *f);
+ FcResult FcPatternGetRange(FcPattern *p, const char *object,
+ int n, FcRange **r);
Description
- These are convenience functions that call FcPatternGet and verify that the
- returned data is of the expected type. They return FcResultTypeMismatch if
- this is not the case. Note that these (like FcPatternGet) do not make a
- copy of any data structure referenced by the return value. Use these in
- preference to FcPatternGet to provide compile-time typechecking.
-
-Version
+ These are convenience functions that call FcPatternGet and
+ verify that the returned data is of the expected type. They
+ return FcResultTypeMismatch if this is not the case. Note that
+ these (like FcPatternGet) do not make a copy of any data
+ structure referenced by the return value. Use these in
+ preference to FcPatternGet to provide compile-time
+ typechecking. FcPatternGetRange are available since 2.11.91.
- Fontconfig version 2.10.91
-
- FcPatternBuild
+FcPatternBuild
Name
- FcPatternBuild, FcPatternVaBuild, FcPatternVapBuild -- Create patterns
- from arguments
+ FcPatternBuild, FcPatternVaBuild, FcPatternVapBuild -- Create
+ patterns from arguments
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcPattern * FcPatternBuild(FcPattern *pattern, ...);
FcPattern * FcPatternVaBuild(FcPattern *pattern, va_list va);
- void FcPatternVapBuild(FcPattern *result, FcPattern *pattern, va_list va);
+ void FcPatternVapBuild(FcPattern *result, FcPattern *pattern,
+ va_list va);
Description
- Builds a pattern using a list of objects, types and values. Each value to
- be entered in the pattern is specified with three arguments:
-
- 1. Object name, a string describing the property to be added.
-
- 2. Object type, one of the FcType enumerated values
-
- 3. Value, not an FcValue, but the raw type as passed to any of the
- FcPatternAdd<type> functions. Must match the type of the second
- argument.
-
- The argument list is terminated by a null object name, no object type nor
- value need be passed for this. The values are added to `pattern', if
- `pattern' is null, a new pattern is created. In either case, the pattern
- is returned. Example
-
- pattern = FcPatternBuild (0, FC_FAMILY, FcTypeString, "Times", (char *) 0);
+ Builds a pattern using a list of objects, types and values.
+ Each value to be entered in the pattern is specified with three
+ arguments:
- FcPatternVaBuild is used when the arguments are already in the form of a
- varargs value. FcPatternVapBuild is a macro version of FcPatternVaBuild
- which returns its result directly in the result variable.
+ 1. Object name, a string describing the property to be added.
+ 2. Object type, one of the FcType enumerated values
+ 3. Value, not an FcValue, but the raw type as passed to any of
+ the FcPatternAdd<type> functions. Must match the type of
+ the second argument.
-Version
+ The argument list is terminated by a null object name, no
+ object type nor value need be passed for this. The values are
+ added to `pattern', if `pattern' is null, a new pattern is
+ created. In either case, the pattern is returned. Example
+pattern = FcPatternBuild (0, FC_FAMILY, FcTypeString, "Times", (char *)
+0);
- Fontconfig version 2.10.91
+ FcPatternVaBuild is used when the arguments are already in the
+ form of a varargs value. FcPatternVapBuild is a macro version
+ of FcPatternVaBuild which returns its result directly in the
+ result variable.
- FcPatternDel
+FcPatternDel
Name
- FcPatternDel -- Delete a property from a pattern
+ FcPatternDel -- Delete a property from a pattern
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcPatternDel(FcPattern *p, const char *object);
Description
- Deletes all values associated with the property `object', returning
- whether the property existed or not.
-
-Version
+ Deletes all values associated with the property `object',
+ returning whether the property existed or not.
- Fontconfig version 2.10.91
-
- FcPatternRemove
+FcPatternRemove
Name
- FcPatternRemove -- Remove one object of the specified type from the
- pattern
+ FcPatternRemove -- Remove one object of the specified type from
+ the pattern
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcBool FcPatternRemove(FcPattern *p, const char *object, int id);
+ FcBool FcPatternRemove(FcPattern *p, const char *object, int
+ id);
Description
- Removes the value associated with the property `object' at position `id',
- returning whether the property existed and had a value at that position or
- not.
-
-Version
-
- Fontconfig version 2.10.91
+ Removes the value associated with the property `object' at
+ position `id', returning whether the property existed and had a
+ value at that position or not.
- FcPatternPrint
+FcPatternPrint
Name
- FcPatternPrint -- Print a pattern for debugging
+ FcPatternPrint -- Print a pattern for debugging
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
void FcPatternPrint(const FcPattern *p);
Description
- Prints an easily readable version of the pattern to stdout. There is no
- provision for reparsing data in this format, it's just for diagnostics and
- debugging.
-
-Version
-
- Fontconfig version 2.10.91
+ Prints an easily readable version of the pattern to stdout.
+ There is no provision for reparsing data in this format, it's
+ just for diagnostics and debugging.
- FcDefaultSubstitute
+FcDefaultSubstitute
Name
- FcDefaultSubstitute -- Perform default substitutions in a pattern
+ FcDefaultSubstitute -- Perform default substitutions in a
+ pattern
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
void FcDefaultSubstitute(FcPattern *pattern);
Supplies default values for underspecified font patterns:
- * Patterns without a specified style or weight are set to Medium
-
- * Patterns without a specified style or slant are set to Roman
+ * Patterns without a specified style or weight are set to
+ Medium
+ * Patterns without a specified style or slant are set to
+ Roman
+ * Patterns without a specified pixel size are given one
+ computed from any specified point size (default 12), dpi
+ (default 75) and scale (default 1).
- * Patterns without a specified pixel size are given one computed from
- any specified point size (default 12), dpi (default 75) and scale
- (default 1).
-
-Version
-
- Fontconfig version 2.10.91
-
- FcNameParse
+FcNameParse
Name
- FcNameParse -- Parse a pattern string
+ FcNameParse -- Parse a pattern string
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcPattern * FcNameParse(const FcChar8 *name);
Description
- Converts name from the standard text format described above into a
- pattern.
+ Converts name from the standard text format described above
+ into a pattern.
-Version
-
- Fontconfig version 2.10.91
-
- FcNameUnparse
+FcNameUnparse
Name
- FcNameUnparse -- Convert a pattern back into a string that can be parsed
+ FcNameUnparse -- Convert a pattern back into a string that can
+ be parsed
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcChar8 * FcNameUnparse(FcPattern *pat);
Description
- Converts the given pattern into the standard text format described above.
- The return value is not static, but instead refers to newly allocated
- memory which should be freed by the caller using free().
-
-Version
-
- Fontconfig version 2.10.91
-
- FcPatternFormat
-
-Name
-
- FcPatternFormat -- Format a pattern into a string according to a format
- specifier
-
-Synopsis
-
- #include <fontconfig/fontconfig.h>
-
-
- FcChar8 * FcPatternFormat(FcPattern *pat, const FcChar8 *format);
-
-Description
-
- Converts given pattern pat into text described by the format specifier
- format. The return value refers to newly allocated memory which should be
- freed by the caller using free(), or NULL if format is invalid.
-
- The format is loosely modeled after printf-style format string. The
- format string is composed of zero or more directives: ordinary characters
- (not "%"), which are copied unchanged to the output stream; and tags which
- are interpreted to construct text from the pattern in a variety of ways
- (explained below). Special characters can be escaped using backslash.
- C-string style special characters like \n and \r are also supported (this
- is useful when the format string is not a C string literal). It is
- advisable to always escape curly braces that are meant to be copied to the
- output as ordinary characters.
-
- Each tag is introduced by the character "%", followed by an optional
- minimum field width, followed by tag contents in curly braces ({}). If the
- minimum field width value is provided the tag will be expanded and the
- result padded to achieve the minimum width. If the minimum field width is
- positive, the padding will right-align the text. Negative field width will
- left-align. The rest of this section describes various supported tag
- contents and their expansion.
-
- A simple tag is one where the content is an identifier. When simple tags
- are expanded, the named identifier will be looked up in pattern and the
- resulting list of values returned, joined together using comma. For
- example, to print the family name and style of the pattern, use the format
- "%{family} %{style}\n". To extend the family column to forty characters
- use "%-40{family}%{style}\n".
-
- Simple tags expand to list of all values for an element. To only choose
- one of the values, one can index using the syntax "%{elt[idx]}". For
- example, to get the first family name only, use "%{family[0]}".
-
- If a simple tag ends with "=" and the element is found in the pattern,
- the name of the element followed by "=" will be output before the list of
- values. For example, "%{weight=}" may expand to the string "weight=80". Or
- to the empty string if pattern does not have weight set.
-
- If a simple tag starts with ":" and the element is found in the pattern,
- ":" will be printed first. For example, combining this with the =, the
- format "%{:weight=}" may expand to ":weight=80" or to the empty string if
- pattern does not have weight set.
-
- If a simple tag contains the string ":-", the rest of the the tag
- contents will be used as a default string. The default string is output if
- the element is not found in the pattern. For example, the format
- "%{:weight=:-123}" may expand to ":weight=80" or to the string
- ":weight=123" if pattern does not have weight set.
-
- A count tag is one that starts with the character "#" followed by an
- element name, and expands to the number of values for the element in the
- pattern. For example, "%{#family}" expands to the number of family names
- pattern has set, which may be zero.
-
- A sub-expression tag is one that expands a sub-expression. The tag
- contents are the sub-expression to expand placed inside another set of
- curly braces. Sub-expression tags are useful for aligning an entire
- sub-expression, or to apply converters (explained later) to the entire
- sub-expression output. For example, the format "%40{{%{family} %{style}}}"
- expands the sub-expression to construct the family name followed by the
- style, then takes the entire string and pads it on the left to be at least
- forty characters.
-
- A filter-out tag is one starting with the character "-" followed by a
- comma-separated list of element names, followed by a sub-expression
- enclosed in curly braces. The sub-expression will be expanded but with a
- pattern that has the listed elements removed from it. For example, the
- format "%{-size,pixelsize{sub-expr}}" will expand "sub-expr" with pattern
- sans the size and pixelsize elements.
-
- A filter-in tag is one starting with the character "+" followed by a
- comma-separated list of element names, followed by a sub-expression
- enclosed in curly braces. The sub-expression will be expanded but with a
- pattern that only has the listed elements from the surrounding pattern.
- For example, the format "%{+family,familylang{sub-expr}}" will expand
- "sub-expr" with a sub-pattern consisting only the family and family lang
- elements of pattern.
-
- A conditional tag is one starting with the character "?" followed by a
- comma-separated list of element conditions, followed by two sub-expression
- enclosed in curly braces. An element condition can be an element name, in
- which case it tests whether the element is defined in pattern, or the
- character "!" followed by an element name, in which case the test is
- negated. The conditional passes if all the element conditions pass. The
- tag expands the first sub-expression if the conditional passes, and
- expands the second sub-expression otherwise. For example, the format
- "%{?size,dpi,!pixelsize{pass}{fail}}" will expand to "pass" if pattern has
- size and dpi elements but no pixelsize element, and to "fail" otherwise.
-
- An enumerate tag is one starting with the string "[]" followed by a
- comma-separated list of element names, followed by a sub-expression
- enclosed in curly braces. The list of values for the named elements are
- walked in parallel and the sub-expression expanded each time with a
- pattern just having a single value for those elements, starting from the
- first value and continuing as long as any of those elements has a value.
+ Converts the given pattern into the standard text format
+ described above. The return value is not static, but instead
+ refers to newly allocated memory which should be freed by the
+ caller using free().
+
+FcPatternFormat
+
+Name
+
+ FcPatternFormat -- Format a pattern into a string according to
+ a format specifier
+
+Synopsis
+
+#include <fontconfig/fontconfig.h>
+
+ FcChar8 * FcPatternFormat(FcPattern *pat, const FcChar8
+ *format);
+
+Description
+
+ Converts given pattern pat into text described by the format
+ specifier format. The return value refers to newly allocated
+ memory which should be freed by the caller using free(), or
+ NULL if format is invalid.
+
+ The format is loosely modeled after printf-style format string.
+ The format string is composed of zero or more directives:
+ ordinary characters (not "%"), which are copied unchanged to
+ the output stream; and tags which are interpreted to construct
+ text from the pattern in a variety of ways (explained below).
+ Special characters can be escaped using backslash. C-string
+ style special characters like \n and \r are also supported
+ (this is useful when the format string is not a C string
+ literal). It is advisable to always escape curly braces that
+ are meant to be copied to the output as ordinary characters.
+
+ Each tag is introduced by the character "%", followed by an
+ optional minimum field width, followed by tag contents in curly
+ braces ({}). If the minimum field width value is provided the
+ tag will be expanded and the result padded to achieve the
+ minimum width. If the minimum field width is positive, the
+ padding will right-align the text. Negative field width will
+ left-align. The rest of this section describes various
+ supported tag contents and their expansion.
+
+ A simple tag is one where the content is an identifier. When
+ simple tags are expanded, the named identifier will be looked
+ up in pattern and the resulting list of values returned, joined
+ together using comma. For example, to print the family name and
+ style of the pattern, use the format "%{family} %{style}\n". To
+ extend the family column to forty characters use
+ "%-40{family}%{style}\n".
+
+ Simple tags expand to list of all values for an element. To
+ only choose one of the values, one can index using the syntax
+ "%{elt[idx]}". For example, to get the first family name only,
+ use "%{family[0]}".
+
+ If a simple tag ends with "=" and the element is found in the
+ pattern, the name of the element followed by "=" will be output
+ before the list of values. For example, "%{weight=}" may expand
+ to the string "weight=80". Or to the empty string if pattern
+ does not have weight set.
+
+ If a simple tag starts with ":" and the element is found in the
+ pattern, ":" will be printed first. For example, combining this
+ with the =, the format "%{:weight=}" may expand to ":weight=80"
+ or to the empty string if pattern does not have weight set.
+
+ If a simple tag contains the string ":-", the rest of the the
+ tag contents will be used as a default string. The default
+ string is output if the element is not found in the pattern.
+ For example, the format "%{:weight=:-123}" may expand to
+ ":weight=80" or to the string ":weight=123" if pattern does not
+ have weight set.
+
+ A count tag is one that starts with the character "#" followed
+ by an element name, and expands to the number of values for the
+ element in the pattern. For example, "%{#family}" expands to
+ the number of family names pattern has set, which may be zero.
+
+ A sub-expression tag is one that expands a sub-expression. The
+ tag contents are the sub-expression to expand placed inside
+ another set of curly braces. Sub-expression tags are useful for
+ aligning an entire sub-expression, or to apply converters
+ (explained later) to the entire sub-expression output. For
+ example, the format "%40{{%{family} %{style}}}" expands the
+ sub-expression to construct the family name followed by the
+ style, then takes the entire string and pads it on the left to
+ be at least forty characters.
+
+ A filter-out tag is one starting with the character "-"
+ followed by a comma-separated list of element names, followed
+ by a sub-expression enclosed in curly braces. The
+ sub-expression will be expanded but with a pattern that has the
+ listed elements removed from it. For example, the format
+ "%{-size,pixelsize{sub-expr}}" will expand "sub-expr" with
+ pattern sans the size and pixelsize elements.
+
+ A filter-in tag is one starting with the character "+" followed
+ by a comma-separated list of element names, followed by a
+ sub-expression enclosed in curly braces. The sub-expression
+ will be expanded but with a pattern that only has the listed
+ elements from the surrounding pattern. For example, the format
+ "%{+family,familylang{sub-expr}}" will expand "sub-expr" with a
+ sub-pattern consisting only the family and family lang elements
+ of pattern.
+
+ A conditional tag is one starting with the character "?"
+ followed by a comma-separated list of element conditions,
+ followed by two sub-expression enclosed in curly braces. An
+ element condition can be an element name, in which case it
+ tests whether the element is defined in pattern, or the
+ character "!" followed by an element name, in which case the
+ test is negated. The conditional passes if all the element
+ conditions pass. The tag expands the first sub-expression if
+ the conditional passes, and expands the second sub-expression
+ otherwise. For example, the format
+ "%{?size,dpi,!pixelsize{pass}{fail}}" will expand to "pass" if
+ pattern has size and dpi elements but no pixelsize element, and
+ to "fail" otherwise.
+
+ An enumerate tag is one starting with the string "[]" followed
+ by a comma-separated list of element names, followed by a
+ sub-expression enclosed in curly braces. The list of values for
+ the named elements are walked in parallel and the
+ sub-expression expanded each time with a pattern just having a
+ single value for those elements, starting from the first value
+ and continuing as long as any of those elements has a value.
For example, the format "%{[]family,familylang{%{family}
- (%{familylang})\n}}" will expand the pattern "%{family} (%{familylang})\n"
- with a pattern having only the first value of the family and familylang
- elements, then expands it with the second values, then the third, etc.
+ (%{familylang})\n}}" will expand the pattern "%{family}
+ (%{familylang})\n" with a pattern having only the first value
+ of the family and familylang elements, then expands it with the
+ second values, then the third, etc.
- As a special case, if an enumerate tag has only one element, and that
- element has only one value in the pattern, and that value is of type
- FcLangSet, the individual languages in the language set are enumerated.
+ As a special case, if an enumerate tag has only one element,
+ and that element has only one value in the pattern, and that
+ value is of type FcLangSet, the individual languages in the
+ language set are enumerated.
- A builtin tag is one starting with the character "=" followed by a
- builtin name. The following builtins are defined:
+ A builtin tag is one starting with the character "=" followed
+ by a builtin name. The following builtins are defined:
unparse
-
- Expands to the result of calling FcNameUnparse() on the pattern.
+ Expands to the result of calling FcNameUnparse() on the
+ pattern.
fcmatch
-
- Expands to the output of the default output format of the fc-match
- command on the pattern, without the final newline.
+ Expands to the output of the default output format of
+ the fc-match command on the pattern, without the final
+ newline.
fclist
-
- Expands to the output of the default output format of the fc-list
- command on the pattern, without the final newline.
+ Expands to the output of the default output format of
+ the fc-list command on the pattern, without the final
+ newline.
fccat
-
- Expands to the output of the default output format of the fc-cat
- command on the pattern, without the final newline.
+ Expands to the output of the default output format of
+ the fc-cat command on the pattern, without the final
+ newline.
pkgkit
-
- Expands to the list of PackageKit font() tags for the pattern.
- Currently this includes tags for each family name, and each
- language from the pattern, enumerated and sanitized into a set of
- tags terminated by newline. Package management systems can use
- these tags to tag their packages accordingly.
-
- For example, the format "%{+family,style{%{=unparse}}}\n" will expand to
- an unparsed name containing only the family and style element values from
- pattern.
-
- The contents of any tag can be followed by a set of zero or more
- converters. A converter is specified by the character "|" followed by the
- converter name and arguments. The following converters are defined:
+ Expands to the list of PackageKit font() tags for the
+ pattern. Currently this includes tags for each family
+ name, and each language from the pattern, enumerated and
+ sanitized into a set of tags terminated by newline.
+ Package management systems can use these tags to tag
+ their packages accordingly.
+
+ For example, the format "%{+family,style{%{=unparse}}}\n" will
+ expand to an unparsed name containing only the family and style
+ element values from pattern.
+
+ The contents of any tag can be followed by a set of zero or
+ more converters. A converter is specified by the character "|"
+ followed by the converter name and arguments. The following
+ converters are defined:
basename
-
- Replaces text with the results of calling FcStrBasename() on it.
+ Replaces text with the results of calling
+ FcStrBasename() on it.
dirname
-
- Replaces text with the results of calling FcStrDirname() on it.
+ Replaces text with the results of calling FcStrDirname()
+ on it.
downcase
-
- Replaces text with the results of calling FcStrDowncase() on it.
+ Replaces text with the results of calling
+ FcStrDowncase() on it.
shescape
-
- Escapes text for one level of shell expansion. (Escapes
- single-quotes, also encloses text in single-quotes.)
+ Escapes text for one level of shell expansion. (Escapes
+ single-quotes, also encloses text in single-quotes.)
cescape
-
- Escapes text such that it can be used as part of a C string
- literal. (Escapes backslash and double-quotes.)
+ Escapes text such that it can be used as part of a C
+ string literal. (Escapes backslash and double-quotes.)
xmlescape
-
- Escapes text such that it can be used in XML and HTML. (Escapes
- less-than, greater-than, and ampersand.)
+ Escapes text such that it can be used in XML and HTML.
+ (Escapes less-than, greater-than, and ampersand.)
delete(chars)
-
- Deletes all occurrences of each of the characters in chars from
- the text. FIXME: This converter is not UTF-8 aware yet.
+ Deletes all occurrences of each of the characters in
+ chars from the text. FIXME: This converter is not UTF-8
+ aware yet.
escape(chars)
-
- Escapes all occurrences of each of the characters in chars by
- prepending it by the first character in chars. FIXME: This
- converter is not UTF-8 aware yet.
+ Escapes all occurrences of each of the characters in
+ chars by prepending it by the first character in chars.
+ FIXME: This converter is not UTF-8 aware yet.
translate(from,to)
+ Translates all occurrences of each of the characters in
+ from by replacing them with their corresponding
+ character in to. If to has fewer characters than from,
+ it will be extended by repeating its last character.
+ FIXME: This converter is not UTF-8 aware yet.
- Translates all occurrences of each of the characters in from by
- replacing them with their corresponding character in to. If to has
- fewer characters than from, it will be extended by repeating its
- last character. FIXME: This converter is not UTF-8 aware yet.
+ For example, the format "%{family|downcase|delete( )}\n" will
+ expand to the values of the family element in pattern,
+ lower-cased and with spaces removed.
- For example, the format "%{family|downcase|delete( )}\n" will expand to
- the values of the family element in pattern, lower-cased and with spaces
- removed.
+Since
-Version
+ version 2.9.0
+ __________________________________________________________
- Fontconfig version 2.10.91
-
- --------------------------------------------------------------------------
-
- FcFontSet
+FcFontSet
Table of Contents
+ FcFontSetCreate -- Create a font set
+ FcFontSetDestroy -- Destroy a font set
+ FcFontSetAdd -- Add to a font set
+ FcFontSetList -- List fonts from a set of font sets
+ FcFontSetMatch -- Return the best font from a set of font sets
+ FcFontSetPrint -- Print a set of patterns to stdout
+ FcFontSetSort -- Add to a font set
+ FcFontSetSortDestroy -- DEPRECATED destroy a font set
- [33]FcFontSetCreate -- Create a font set
-
- [34]FcFontSetDestroy -- Destroy a font set
-
- [35]FcFontSetAdd -- Add to a font set
-
- [36]FcFontSetList -- List fonts from a set of font sets
-
- [37]FcFontSetMatch -- Return the best font from a set of font sets
+ An FcFontSet simply holds a list of patterns; these are used to
+ return the results of listing available fonts.
- [38]FcFontSetPrint -- Print a set of patterns to stdout
-
- [39]FcFontSetSort -- Add to a font set
-
- [40]FcFontSetSortDestroy -- DEPRECATED destroy a font set
-
- An FcFontSet simply holds a list of patterns; these are used to return the
- results of listing available fonts.
-
- FcFontSetCreate
+FcFontSetCreate
Name
- FcFontSetCreate -- Create a font set
+ FcFontSetCreate -- Create a font set
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcFontSet * FcFontSetCreate(void);
Creates an empty font set.
-Version
-
- Fontconfig version 2.10.91
-
- FcFontSetDestroy
+FcFontSetDestroy
Name
- FcFontSetDestroy -- Destroy a font set
+ FcFontSetDestroy -- Destroy a font set
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
void FcFontSetDestroy(FcFontSet *s);
Description
- Destroys a font set. Note that this destroys any referenced patterns as
- well.
-
-Version
+ Destroys a font set. Note that this destroys any referenced
+ patterns as well.
- Fontconfig version 2.10.91
-
- FcFontSetAdd
+FcFontSetAdd
Name
- FcFontSetAdd -- Add to a font set
+ FcFontSetAdd -- Add to a font set
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcFontSetAdd(FcFontSet *s, FcPattern *font);
Description
- Adds a pattern to a font set. Note that the pattern is not copied before
- being inserted into the set. Returns FcFalse if the pattern cannot be
- inserted into the set (due to allocation failure). Otherwise returns
- FcTrue.
-
-Version
-
- Fontconfig version 2.10.91
+ Adds a pattern to a font set. Note that the pattern is not
+ copied before being inserted into the set. Returns FcFalse if
+ the pattern cannot be inserted into the set (due to allocation
+ failure). Otherwise returns FcTrue.
- FcFontSetList
+FcFontSetList
Name
- FcFontSetList -- List fonts from a set of font sets
+ FcFontSetList -- List fonts from a set of font sets
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcFontSet * FcFontSetList(FcConfig *config, FcFontSet **sets, intnsets,
- FcPattern *pattern, FcObjectSet *object_set);
+ FcFontSet * FcFontSetList(FcConfig *config, FcFontSet **sets,
+ intnsets, FcPattern *pattern, FcObjectSet *object_set);
Description
- Selects fonts matching pattern from sets, creates patterns from those
- fonts containing only the objects in object_set and returns the set of
- unique such patterns. If config is NULL, the default configuration is
- checked to be up to date, and used.
-
-Version
-
- Fontconfig version 2.10.91
+ Selects fonts matching pattern from sets, creates patterns from
+ those fonts containing only the objects in object_set and
+ returns the set of unique such patterns. If config is NULL, the
+ default configuration is checked to be up to date, and used.
- FcFontSetMatch
+FcFontSetMatch
Name
- FcFontSetMatch -- Return the best font from a set of font sets
+ FcFontSetMatch -- Return the best font from a set of font sets
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcPattern * FcFontSetMatch(FcConfig *config, FcFontSet **sets, intnsets,
- FcPattern *pattern, FcResult *result);
+ FcPattern * FcFontSetMatch(FcConfig *config, FcFontSet **sets,
+ intnsets, FcPattern *pattern, FcResult *result);
Description
- Finds the font in sets most closely matching pattern and returns the
- result of FcFontRenderPrepare for that font and the provided pattern. This
- function should be called only after FcConfigSubstitute and
- FcDefaultSubstitute have been called for pattern; otherwise the results
- will not be correct. If config is NULL, the current configuration is used.
- Returns NULL if an error occurs during this process.
-
-Version
-
- Fontconfig version 2.10.91
+ Finds the font in sets most closely matching pattern and
+ returns the result of FcFontRenderPrepare for that font and the
+ provided pattern. This function should be called only after
+ FcConfigSubstitute and FcDefaultSubstitute have been called for
+ pattern; otherwise the results will not be correct. If config
+ is NULL, the current configuration is used. Returns NULL if an
+ error occurs during this process.
- FcFontSetPrint
+FcFontSetPrint
Name
- FcFontSetPrint -- Print a set of patterns to stdout
+ FcFontSetPrint -- Print a set of patterns to stdout
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
void FcFontSetPrint(FcFontSet *set);
Description
- This function is useful for diagnosing font related issues, printing the
- complete contents of every pattern in set. The format of the output is
- designed to be of help to users and developers, and may change at any
- time.
-
-Version
-
- Fontconfig version 2.10.91
+ This function is useful for diagnosing font related issues,
+ printing the complete contents of every pattern in set. The
+ format of the output is designed to be of help to users and
+ developers, and may change at any time.
- FcFontSetSort
+FcFontSetSort
Name
- FcFontSetSort -- Add to a font set
+ FcFontSetSort -- Add to a font set
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcFontSetSort(FcConfig *config, FcFontSet **sets, intnsets, FcPattern
- *pattern, FcBool trim, FcCharSet **csp, FcResult *result);
+ FcFontSetSort(FcConfig *config, FcFontSet **sets, intnsets,
+ FcPattern *pattern, FcBool trim, FcCharSet **csp, FcResult
+ *result);
Description
- Returns the list of fonts from sets sorted by closeness to pattern. If
- trim is FcTrue, elements in the list which don't include Unicode coverage
- not provided by earlier elements in the list are elided. The union of
- Unicode coverage of all of the fonts is returned in csp, if csp is not
- NULL. This function should be called only after FcConfigSubstitute and
- FcDefaultSubstitute have been called for p; otherwise the results will not
- be correct.
+ Returns the list of fonts from sets sorted by closeness to
+ pattern. If trim is FcTrue, elements in the list which don't
+ include Unicode coverage not provided by earlier elements in
+ the list are elided. The union of Unicode coverage of all of
+ the fonts is returned in csp, if csp is not NULL. This function
+ should be called only after FcConfigSubstitute and
+ FcDefaultSubstitute have been called for p; otherwise the
+ results will not be correct.
- The returned FcFontSet references FcPattern structures which may be shared
- by the return value from multiple FcFontSort calls, applications cannot
- modify these patterns. Instead, they should be passed, along with pattern
- to FcFontRenderPrepare which combines them into a complete pattern.
+ The returned FcFontSet references FcPattern structures which
+ may be shared by the return value from multiple FcFontSort
+ calls, applications cannot modify these patterns. Instead, they
+ should be passed, along with pattern to FcFontRenderPrepare
+ which combines them into a complete pattern.
The FcFontSet returned by FcFontSetSort is destroyed by calling
FcFontSetDestroy.
-Version
-
- Fontconfig version 2.10.91
-
- FcFontSetSortDestroy
+FcFontSetSortDestroy
Name
- FcFontSetSortDestroy -- DEPRECATED destroy a font set
+ FcFontSetSortDestroy -- DEPRECATED destroy a font set
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcFontSetSortDestroy(FcFontSet *set);
Description
- This function is DEPRECATED. FcFontSetSortDestroy destroys set by calling
- FcFontSetDestroy. Applications should use FcFontSetDestroy directly
- instead.
-
-Version
-
- Fontconfig version 2.10.91
-
- --------------------------------------------------------------------------
+ This function is DEPRECATED. FcFontSetSortDestroy destroys set
+ by calling FcFontSetDestroy. Applications should use
+ FcFontSetDestroy directly instead.
+ __________________________________________________________
- FcObjectSet
+FcObjectSet
Table of Contents
+ FcObjectSetCreate -- Create an object set
+ FcObjectSetAdd -- Add to an object set
+ FcObjectSetDestroy -- Destroy an object set
+ FcObjectSetBuild -- Build object set from args
- [41]FcObjectSetCreate -- Create an object set
-
- [42]FcObjectSetAdd -- Add to an object set
-
- [43]FcObjectSetDestroy -- Destroy an object set
-
- [44]FcObjectSetBuild -- Build object set from args
+ An FcObjectSet holds a list of pattern property names; it is
+ used to indicate which properties are to be returned in the
+ patterns from FcFontList.
- An FcObjectSet holds a list of pattern property names; it is used to
- indicate which properties are to be returned in the patterns from
- FcFontList.
-
- FcObjectSetCreate
+FcObjectSetCreate
Name
- FcObjectSetCreate -- Create an object set
+ FcObjectSetCreate -- Create an object set
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcObjectSet * FcObjectSetCreate(void);
Creates an empty set.
-Version
-
- Fontconfig version 2.10.91
-
- FcObjectSetAdd
+FcObjectSetAdd
Name
- FcObjectSetAdd -- Add to an object set
+ FcObjectSetAdd -- Add to an object set
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcObjectSetAdd(FcObjectSet *os, const char *object);
Description
- Adds a property name to the set. Returns FcFalse if the property name
- cannot be inserted into the set (due to allocation failure). Otherwise
- returns FcTrue.
-
-Version
+ Adds a property name to the set. Returns FcFalse if the
+ property name cannot be inserted into the set (due to
+ allocation failure). Otherwise returns FcTrue.
- Fontconfig version 2.10.91
-
- FcObjectSetDestroy
+FcObjectSetDestroy
Name
- FcObjectSetDestroy -- Destroy an object set
+ FcObjectSetDestroy -- Destroy an object set
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
void FcObjectSetDestroy(FcObjectSet *os);
Destroys an object set.
-Version
-
- Fontconfig version 2.10.91
-
- FcObjectSetBuild
+FcObjectSetBuild
Name
- FcObjectSetBuild, FcObjectSetVaBuild, FcObjectSetVapBuild -- Build object
- set from args
+ FcObjectSetBuild, FcObjectSetVaBuild,
+ FcObjectSetVapBuild -- Build object set from args
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcObjectSet * FcObjectSetBuild(const char *first, ...);
- FcObjectSet * FcObjectSetVaBuild(const char *first, va_list va);
-
- void FcObjectSetVapBuild(FcObjectSet *result, const char *first, va_list
+ FcObjectSet * FcObjectSetVaBuild(const char *first, va_list
va);
-Description
+ void FcObjectSetVapBuild(FcObjectSet *result, const char
+ *first, va_list va);
- These build an object set from a null-terminated list of property names.
- FcObjectSetVapBuild is a macro version of FcObjectSetVaBuild which returns
- the result in the result variable directly.
-
-Version
-
- Fontconfig version 2.10.91
+Description
- --------------------------------------------------------------------------
+ These build an object set from a null-terminated list of
+ property names. FcObjectSetVapBuild is a macro version of
+ FcObjectSetVaBuild which returns the result in the result
+ variable directly.
+ __________________________________________________________
- FreeType specific functions
+FreeType specific functions
Table of Contents
+ FcFreeTypeCharIndex -- map Unicode to glyph id
+ FcFreeTypeCharSet -- compute Unicode coverage
+ FcFreeTypeCharSetAndSpacing -- compute Unicode coverage and
+ spacing type
- [45]FcFreeTypeCharIndex -- map Unicode to glyph id
-
- [46]FcFreeTypeCharSet -- compute Unicode coverage
-
- [47]FcFreeTypeCharSetAndSpacing -- compute Unicode coverage and spacing
- type
-
- [48]FcFreeTypeQuery -- compute pattern from font file (and index)
+ FcFreeTypeQuery -- compute pattern from font file (and index)
+ FcFreeTypeQueryFace -- compute pattern from FT_Face
- [49]FcFreeTypeQueryFace -- compute pattern from FT_Face
+ While the fontconfig library doesn't insist that FreeType be
+ used as the rasterization mechanism for fonts, it does provide
+ some convenience functions.
- While the fontconfig library doesn't insist that FreeType be used as the
- rasterization mechanism for fonts, it does provide some convenience
- functions.
-
- FcFreeTypeCharIndex
+FcFreeTypeCharIndex
Name
- FcFreeTypeCharIndex -- map Unicode to glyph id
+ FcFreeTypeCharIndex -- map Unicode to glyph id
Synopsis
- #include <fontconfig.h>
- #include <fcfreetype.h>
-
+#include <fontconfig.h>
+#include <fcfreetype.h>
FT_UInt FcFreeTypeCharIndex(FT_Face face, FcChar32 ucs4);
Description
- Maps a Unicode char to a glyph index. This function uses information from
- several possible underlying encoding tables to work around broken fonts.
- As a result, this function isn't designed to be used in performance
- sensitive areas; results from this function are intended to be cached by
- higher level functions.
-
-Version
-
- Fontconfig version 2.10.91
+ Maps a Unicode char to a glyph index. This function uses
+ information from several possible underlying encoding tables to
+ work around broken fonts. As a result, this function isn't
+ designed to be used in performance sensitive areas; results
+ from this function are intended to be cached by higher level
+ functions.
- FcFreeTypeCharSet
+FcFreeTypeCharSet
Name
- FcFreeTypeCharSet -- compute Unicode coverage
+ FcFreeTypeCharSet -- compute Unicode coverage
Synopsis
- #include <fontconfig.h>
- #include <fcfreetype.h>
-
+#include <fontconfig.h>
+#include <fcfreetype.h>
FcCharSet * FcFreeTypeCharSet(FT_Face face, FcBlanks *blanks);
Description
- Scans a FreeType face and returns the set of encoded Unicode chars. This
- scans several encoding tables to build as complete a list as possible. If
- 'blanks' is not 0, the glyphs in the font are examined and any blank
- glyphs not in 'blanks' are not placed in the returned FcCharSet.
+ Scans a FreeType face and returns the set of encoded Unicode
+ chars. This scans several encoding tables to build as complete
+ a list as possible. If 'blanks' is not 0, the glyphs in the
+ font are examined and any blank glyphs not in 'blanks' are not
+ placed in the returned FcCharSet.
-Version
-
- Fontconfig version 2.10.91
-
- FcFreeTypeCharSetAndSpacing
+FcFreeTypeCharSetAndSpacing
Name
- FcFreeTypeCharSetAndSpacing -- compute Unicode coverage and spacing type
+ FcFreeTypeCharSetAndSpacing -- compute Unicode coverage and
+ spacing type
Synopsis
- #include <fontconfig.h>
- #include <fcfreetype.h>
+#include <fontconfig.h>
+#include <fcfreetype.h>
-
- FcCharSet * FcFreeTypeCharSetAndSpacing(FT_Face face, FcBlanks *blanks,
- int *spacing);
+ FcCharSet * FcFreeTypeCharSetAndSpacing(FT_Face face, FcBlanks
+ *blanks, int *spacing);
Description
- Scans a FreeType face and returns the set of encoded Unicode chars. This
- scans several encoding tables to build as complete a list as possible. If
- 'blanks' is not 0, the glyphs in the font are examined and any blank
- glyphs not in 'blanks' are not placed in the returned FcCharSet. spacing
- receives the computed spacing type of the font, one of FC_MONO for a font
- where all glyphs have the same width, FC_DUAL, where the font has glyphs
+ Scans a FreeType face and returns the set of encoded Unicode
+ chars. This scans several encoding tables to build as complete
+ a list as possible. If 'blanks' is not 0, the glyphs in the
+ font are examined and any blank glyphs not in 'blanks' are not
+ placed in the returned FcCharSet. spacing receives the computed
+ spacing type of the font, one of FC_MONO for a font where all
+ glyphs have the same width, FC_DUAL, where the font has glyphs
in precisely two widths, one twice as wide as the other, or
FC_PROPORTIONAL where the font has glyphs of many widths.
-Version
-
- Fontconfig version 2.10.91
-
- FcFreeTypeQuery
+FcFreeTypeQuery
Name
- FcFreeTypeQuery -- compute pattern from font file (and index)
+ FcFreeTypeQuery -- compute pattern from font file (and index)
Synopsis
- #include <fontconfig.h>
- #include <fcfreetype.h>
-
+#include <fontconfig.h>
+#include <fcfreetype.h>
- FcPattern * FcFreeTypeQuery(const FcChar8 *file, int id, FcBlanks *blanks,
- int *count);
+ FcPattern * FcFreeTypeQuery(const FcChar8 *file, int id,
+ FcBlanks *blanks, int *count);
Description
- Constructs a pattern representing the 'id'th font in 'file'. The number of
- fonts in 'file' is returned in 'count'.
-
-Version
+ Constructs a pattern representing the 'id'th font in 'file'.
+ The number of fonts in 'file' is returned in 'count'.
- Fontconfig version 2.10.91
-
- FcFreeTypeQueryFace
+FcFreeTypeQueryFace
Name
- FcFreeTypeQueryFace -- compute pattern from FT_Face
+ FcFreeTypeQueryFace -- compute pattern from FT_Face
Synopsis
- #include <fontconfig.h>
- #include <fcfreetype.h>
-
+#include <fontconfig.h>
+#include <fcfreetype.h>
- FcPattern * FcFreeTypeQueryFace(const FT_Face face, const FcChar8 *file,
- int id, FcBlanks *blanks);
+ FcPattern * FcFreeTypeQueryFace(const FT_Face face, const
+ FcChar8 *file, int id, FcBlanks *blanks);
Description
- Constructs a pattern representing 'face'. 'file' and 'id' are used solely
- as data for pattern elements (FC_FILE, FC_INDEX and sometimes FC_FAMILY).
-
-Version
-
- Fontconfig version 2.10.91
+ Constructs a pattern representing 'face'. 'file' and 'id' are
+ used solely as data for pattern elements (FC_FILE, FC_INDEX and
+ sometimes FC_FAMILY).
+ __________________________________________________________
- --------------------------------------------------------------------------
-
- FcValue
+FcValue
Table of Contents
+ FcValueDestroy -- Free a value
+ FcValueSave -- Copy a value
+ FcValuePrint -- Print a value to stdout
+ FcValueEqual -- Test two values for equality
- [50]FcValueDestroy -- Free a value
-
- [51]FcValueSave -- Copy a value
-
- [52]FcValuePrint -- Print a value to stdout
+ FcValue is a structure containing a type tag and a union of all
+ possible datatypes. The tag is an enum of type FcType and is
+ intended to provide a measure of run-time typechecking,
+ although that depends on careful programming.
- [53]FcValueEqual -- Test two values for equality
-
- FcValue is a structure containing a type tag and a union of all possible
- datatypes. The tag is an enum of type FcType and is intended to provide a
- measure of run-time typechecking, although that depends on careful
- programming.
-
- FcValueDestroy
+FcValueDestroy
Name
- FcValueDestroy -- Free a value
+ FcValueDestroy -- Free a value
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
void FcValueDestroy(FcValue v);
Description
Frees any memory referenced by v. Values of type FcTypeString,
- FcTypeMatrix and FcTypeCharSet reference memory, the other types do not.
+ FcTypeMatrix and FcTypeCharSet reference memory, the other
+ types do not.
-Version
-
- Fontconfig version 2.10.91
-
- FcValueSave
+FcValueSave
Name
- FcValueSave -- Copy a value
+ FcValueSave -- Copy a value
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcValue FcValueSave(FcValue v);
Description
- Returns a copy of v duplicating any object referenced by it so that v may
- be safely destroyed without harming the new value.
+ Returns a copy of v duplicating any object referenced by it so
+ that v may be safely destroyed without harming the new value.
-Version
-
- Fontconfig version 2.10.91
-
- FcValuePrint
+FcValuePrint
Name
- FcValuePrint -- Print a value to stdout
+ FcValuePrint -- Print a value to stdout
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
void FcValuePrint(FcValue v);
Description
- Prints a human-readable representation of v to stdout. The format should
- not be considered part of the library specification as it may change in
- the future.
-
-Version
+ Prints a human-readable representation of v to stdout. The
+ format should not be considered part of the library
+ specification as it may change in the future.
- Fontconfig version 2.10.91
-
- FcValueEqual
+FcValueEqual
Name
- FcValueEqual -- Test two values for equality
+ FcValueEqual -- Test two values for equality
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcValueEqual(FcValue v_a, FcValue v_b);
Description
- Compares two values. Integers and Doubles are compared as numbers;
- otherwise the two values have to be the same type to be considered equal.
- Strings are compared ignoring case.
-
-Version
+ Compares two values. Integers and Doubles are compared as
+ numbers; otherwise the two values have to be the same type to
+ be considered equal. Strings are compared ignoring case.
+ __________________________________________________________
- Fontconfig version 2.10.91
-
- --------------------------------------------------------------------------
-
- FcCharSet
+FcCharSet
Table of Contents
+ FcCharSetCreate -- Create an empty character set
+ FcCharSetDestroy -- Destroy a character set
+ FcCharSetAddChar -- Add a character to a charset
+ FcCharSetDelChar -- Add a character to a charset
+ FcCharSetCopy -- Copy a charset
+ FcCharSetEqual -- Compare two charsets
+ FcCharSetIntersect -- Intersect charsets
+ FcCharSetUnion -- Add charsets
+ FcCharSetSubtract -- Subtract charsets
+ FcCharSetMerge -- Merge charsets
+ FcCharSetHasChar -- Check a charset for a char
+ FcCharSetCount -- Count entries in a charset
+ FcCharSetIntersectCount -- Intersect and count charsets
+ FcCharSetSubtractCount -- Subtract and count charsets
+ FcCharSetIsSubset -- Test for charset inclusion
+ FcCharSetFirstPage -- Start enumerating charset contents
+ FcCharSetNextPage -- Continue enumerating charset contents
+ FcCharSetCoverage -- DEPRECATED return coverage for a Unicode
+ page
- [54]FcCharSetCreate -- Create an empty character set
-
- [55]FcCharSetDestroy -- Destroy a character set
-
- [56]FcCharSetAddChar -- Add a character to a charset
-
- [57]FcCharSetDelChar -- Add a character to a charset
-
- [58]FcCharSetCopy -- Copy a charset
-
- [59]FcCharSetEqual -- Compare two charsets
-
- [60]FcCharSetIntersect -- Intersect charsets
-
- [61]FcCharSetUnion -- Add charsets
-
- [62]FcCharSetSubtract -- Subtract charsets
-
- [63]FcCharSetMerge -- Merge charsets
-
- [64]FcCharSetHasChar -- Check a charset for a char
-
- [65]FcCharSetCount -- Count entries in a charset
-
- [66]FcCharSetIntersectCount -- Intersect and count charsets
-
- [67]FcCharSetSubtractCount -- Subtract and count charsets
-
- [68]FcCharSetIsSubset -- Test for charset inclusion
-
- [69]FcCharSetFirstPage -- Start enumerating charset contents
-
- [70]FcCharSetNextPage -- Continue enumerating charset contents
-
- [71]FcCharSetCoverage -- DEPRECATED return coverage for a Unicode page
-
- [72]FcCharSetNew -- DEPRECATED alias for FcCharSetCreate
+ FcCharSetNew -- DEPRECATED alias for FcCharSetCreate
- An FcCharSet is a boolean array indicating a set of Unicode chars. Those
- associated with a font are marked constant and cannot be edited.
- FcCharSets may be reference counted internally to reduce memory
- consumption; this may be visible to applications as the result of
- FcCharSetCopy may return it's argument, and that CharSet may remain
- unmodifiable.
+ An FcCharSet is a boolean array indicating a set of Unicode
+ chars. Those associated with a font are marked constant and
+ cannot be edited. FcCharSets may be reference counted
+ internally to reduce memory consumption; this may be visible to
+ applications as the result of FcCharSetCopy may return it's
+ argument, and that CharSet may remain unmodifiable.
- FcCharSetCreate
+FcCharSetCreate
Name
- FcCharSetCreate -- Create an empty character set
+ FcCharSetCreate -- Create an empty character set
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcCharSet * FcCharSetCreate(void);
Description
- FcCharSetCreate allocates and initializes a new empty character set
- object.
-
-Version
+ FcCharSetCreate allocates and initializes a new empty character
+ set object.
- Fontconfig version 2.10.91
-
- FcCharSetDestroy
+FcCharSetDestroy
Name
- FcCharSetDestroy -- Destroy a character set
+ FcCharSetDestroy -- Destroy a character set
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
void FcCharSetDestroy(FcCharSet *fcs);
Description
- FcCharSetDestroy decrements the reference count fcs. If the reference
- count becomes zero, all memory referenced is freed.
+ FcCharSetDestroy decrements the reference count fcs. If the
+ reference count becomes zero, all memory referenced is freed.
-Version
-
- Fontconfig version 2.10.91
-
- FcCharSetAddChar
+FcCharSetAddChar
Name
- FcCharSetAddChar -- Add a character to a charset
+ FcCharSetAddChar -- Add a character to a charset
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcCharSetAddChar(FcCharSet *fcs, FcChar32 ucs4);
Description
- FcCharSetAddChar adds a single Unicode char to the set, returning FcFalse
- on failure, either as a result of a constant set or from running out of
- memory.
+ FcCharSetAddChar adds a single Unicode char to the set,
+ returning FcFalse on failure, either as a result of a constant
+ set or from running out of memory.
-Version
-
- Fontconfig version 2.10.91
-
- FcCharSetDelChar
+FcCharSetDelChar
Name
- FcCharSetDelChar -- Add a character to a charset
+ FcCharSetDelChar -- Add a character to a charset
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcCharSetDelChar(FcCharSet *fcs, FcChar32 ucs4);
Description
- FcCharSetDelChar deletes a single Unicode char from the set, returning
- FcFalse on failure, either as a result of a constant set or from running
- out of memory.
+ FcCharSetDelChar deletes a single Unicode char from the set,
+ returning FcFalse on failure, either as a result of a constant
+ set or from running out of memory.
-Version
+Since
- Fontconfig version 2.10.91
+ version 2.9.0
- FcCharSetCopy
+FcCharSetCopy
Name
- FcCharSetCopy -- Copy a charset
+ FcCharSetCopy -- Copy a charset
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcCharSet * FcCharSetCopy(FcCharSet *src);
Description
- Makes a copy of src; note that this may not actually do anything more than
- increment the reference count on src.
+ Makes a copy of src; note that this may not actually do
+ anything more than increment the reference count on src.
-Version
-
- Fontconfig version 2.10.91
-
- FcCharSetEqual
+FcCharSetEqual
Name
- FcCharSetEqual -- Compare two charsets
+ FcCharSetEqual -- Compare two charsets
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcCharSetEqual(const FcCharSet *a, const FcCharSet *b);
Returns whether a and b contain the same set of Unicode chars.
-Version
-
- Fontconfig version 2.10.91
-
- FcCharSetIntersect
+FcCharSetIntersect
Name
- FcCharSetIntersect -- Intersect charsets
+ FcCharSetIntersect -- Intersect charsets
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcCharSet * FcCharSetIntersect(const FcCharSet *a, const FcCharSet *b);
+ FcCharSet * FcCharSetIntersect(const FcCharSet *a, const
+ FcCharSet *b);
Description
Returns a set including only those chars found in both a and b.
-Version
-
- Fontconfig version 2.10.91
-
- FcCharSetUnion
+FcCharSetUnion
Name
- FcCharSetUnion -- Add charsets
+ FcCharSetUnion -- Add charsets
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- FcCharSet * FcCharSetUnion(const FcCharSet *a, const FcCharSet *b);
+ FcCharSet * FcCharSetUnion(const FcCharSet *a, const FcCharSet
+ *b);
Description
- Returns a set including only those chars found in either a or b.
+ Returns a set including only those chars found in either a or
+ b.
-Version
-
- Fontconfig version 2.10.91
-
- FcCharSetSubtract
+FcCharSetSubtract
Name
- FcCharSetSubtract -- Subtract charsets
+ FcCharSetSubtract -- Subtract charsets
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- FcCharSet * FcCharSetSubtract(const FcCharSet *a, const FcCharSet *b);
+ FcCharSet * FcCharSetSubtract(const FcCharSet *a, const
+ FcCharSet *b);
Description
Returns a set including only those chars found in a but not b.
-Version
-
- Fontconfig version 2.10.91
-
- FcCharSetMerge
+FcCharSetMerge
Name
- FcCharSetMerge -- Merge charsets
+ FcCharSetMerge -- Merge charsets
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- FcBool FcCharSetMerge(FcCharSet *a, const FcCharSet *b, FcBool *changed);
+ FcBool FcCharSetMerge(FcCharSet *a, const FcCharSet *b, FcBool
+ *changed);
Description
- Adds all chars in b to a. In other words, this is an in-place version of
- FcCharSetUnion. If changed is not NULL, then it returns whether any new
- chars from b were added to a. Returns FcFalse on failure, either when a is
- a constant set or from running out of memory.
+ Adds all chars in b to a. In other words, this is an in-place
+ version of FcCharSetUnion. If changed is not NULL, then it
+ returns whether any new chars from b were added to a. Returns
+ FcFalse on failure, either when a is a constant set or from
+ running out of memory.
-Version
-
- Fontconfig version 2.10.91
-
- FcCharSetHasChar
+FcCharSetHasChar
Name
- FcCharSetHasChar -- Check a charset for a char
+ FcCharSetHasChar -- Check a charset for a char
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcCharSetHasChar(const FcCharSet *fcs, FcChar32 ucs4);
Returns whether fcs contains the char ucs4.
-Version
-
- Fontconfig version 2.10.91
-
- FcCharSetCount
+FcCharSetCount
Name
- FcCharSetCount -- Count entries in a charset
+ FcCharSetCount -- Count entries in a charset
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcChar32 FcCharSetCount(const FcCharSet *a);
Returns the total number of Unicode chars in a.
-Version
-
- Fontconfig version 2.10.91
-
- FcCharSetIntersectCount
+FcCharSetIntersectCount
Name
- FcCharSetIntersectCount -- Intersect and count charsets
+ FcCharSetIntersectCount -- Intersect and count charsets
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- FcChar32 FcCharSetIntersectCount(const FcCharSet *a, const FcCharSet *b);
+ FcChar32 FcCharSetIntersectCount(const FcCharSet *a, const
+ FcCharSet *b);
Description
Returns the number of chars that are in both a and b.
-Version
-
- Fontconfig version 2.10.91
-
- FcCharSetSubtractCount
+FcCharSetSubtractCount
Name
- FcCharSetSubtractCount -- Subtract and count charsets
+ FcCharSetSubtractCount -- Subtract and count charsets
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcChar32 FcCharSetSubtractCount(const FcCharSet *a, const FcCharSet *b);
+ FcChar32 FcCharSetSubtractCount(const FcCharSet *a, const
+ FcCharSet *b);
Description
Returns the number of chars that are in a but not in b.
-Version
-
- Fontconfig version 2.10.91
-
- FcCharSetIsSubset
+FcCharSetIsSubset
Name
- FcCharSetIsSubset -- Test for charset inclusion
+ FcCharSetIsSubset -- Test for charset inclusion
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcBool FcCharSetIsSubset(const FcCharSet *a, const FcCharSet *b);
+ FcBool FcCharSetIsSubset(const FcCharSet *a, const FcCharSet
+ *b);
Description
Returns whether a is a subset of b.
-Version
-
- Fontconfig version 2.10.91
-
- FcCharSetFirstPage
+FcCharSetFirstPage
Name
- FcCharSetFirstPage -- Start enumerating charset contents
+ FcCharSetFirstPage -- Start enumerating charset contents
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcChar32 FcCharSetFirstPage(const FcCharSet *a,
FcChar32[FC_CHARSET_MAP_SIZE] map, FcChar32 *next);
Description
- Builds an array of bits marking the first page of Unicode coverage of a.
- Returns the base of the array. next contains the next page in the font.
-
-Version
+ Builds an array of bits in map marking the first page of
+ Unicode coverage of a. *next is set to contains the base code
+ point for the next page in a. Returns the base code point for
+ the page, or FC_CHARSET_DONE if a contains no pages. As an
+ example, if FcCharSetFirstPage returns 0x300 and fills map with
+0xffffffff 0xffffffff 0x01000008 0x44300002 0xffffd7f0 0xfffffffb 0xffff
+7fff 0xffff0003
- Fontconfig version 2.10.91
+ Then the page contains code points 0x300 through 0x33f (the
+ first 64 code points on the page) because map[0] and map[1]
+ both have all their bits set. It also contains code points
+ 0x343 (0x300 + 32*2 + (4-1)) and 0x35e (0x300 + 32*2 + (31-1))
+ because map[2] has the 4th and 31st bits set. The code points
+ represented by map[3] and later are left as an excercise for
+ the reader ;).
- FcCharSetNextPage
+FcCharSetNextPage
Name
- FcCharSetNextPage -- Continue enumerating charset contents
+ FcCharSetNextPage -- Continue enumerating charset contents
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcChar32 FcCharSetNextPage(const FcCharSet *a,
FcChar32[FC_CHARSET_MAP_SIZE] map, FcChar32 *next);
Description
- Builds an array of bits marking the Unicode coverage of a for page *next.
- Returns the base of the array. next contains the next page in the font.
+ Builds an array of bits in map marking the Unicode coverage of
+ a for page containing *next (see the FcCharSetFirstPage
+ description for details). *next is set to contains the base
+ code point for the next page in a. Returns the base of code
+ point for the page, or FC_CHARSET_DONE if a does not contain
+ *next.
-Version
-
- Fontconfig version 2.10.91
-
- FcCharSetCoverage
+FcCharSetCoverage
Name
- FcCharSetCoverage -- DEPRECATED return coverage for a Unicode page
+ FcCharSetCoverage -- DEPRECATED return coverage for a Unicode
+ page
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcChar32 FcCharSetCoverage(const FcCharSet *a, FcChar32page,
FcChar32[8]result);
-Description
-
- DEPRECATED This function returns a bitmask in result which indicates which
- code points in page are included in a. FcCharSetCoverage returns the next
- page in the charset which has any coverage.
-
-Version
-
- Fontconfig version 2.10.91
-
- FcCharSetNew
-
-Name
-
- FcCharSetNew -- DEPRECATED alias for FcCharSetCreate
-
-Synopsis
-
- #include <fontconfig/fontconfig.h>
-
-
- FcCharSet * FcCharSetNew(void);
-
-Description
-
- FcCharSetNew is a DEPRECATED alias for FcCharSetCreate.
-
-Version
-
- Fontconfig version 2.10.91
-
- --------------------------------------------------------------------------
-
- FcLangSet
-
- Table of Contents
-
- [73]FcLangSetCreate -- create a langset object
-
- [74]FcLangSetDestroy -- destroy a langset object
-
- [75]FcLangSetCopy -- copy a langset object
-
- [76]FcLangSetAdd -- add a language to a langset
-
- [77]FcLangSetDel -- delete a language from a langset
+Description
- [78]FcLangSetUnion -- Add langsets
+ DEPRECATED This function returns a bitmask in result which
+ indicates which code points in page are included in a.
+ FcCharSetCoverage returns the next page in the charset which
+ has any coverage.
- [79]FcLangSetSubtract -- Subtract langsets
+FcCharSetNew
- [80]FcLangSetCompare -- compare language sets
+Name
- [81]FcLangSetContains -- check langset subset relation
+ FcCharSetNew -- DEPRECATED alias for FcCharSetCreate
- [82]FcLangSetEqual -- test for matching langsets
+Synopsis
- [83]FcLangSetHash -- return a hash value for a langset
+#include <fontconfig/fontconfig.h>
- [84]FcLangSetHasLang -- test langset for language support
+ FcCharSet * FcCharSetNew(void);
- [85]FcGetDefaultLangs -- Get the default languages list
+Description
- [86]FcGetLangs -- Get list of languages
+ FcCharSetNew is a DEPRECATED alias for FcCharSetCreate.
+ __________________________________________________________
- [87]FcLangNormalize -- Normalize the language string
+FcLangSet
- [88]FcLangGetCharSet -- Get character map for a language
+ Table of Contents
+ FcLangSetCreate -- create a langset object
+ FcLangSetDestroy -- destroy a langset object
+ FcLangSetCopy -- copy a langset object
+ FcLangSetAdd -- add a language to a langset
+ FcLangSetDel -- delete a language from a langset
+ FcLangSetUnion -- Add langsets
+ FcLangSetSubtract -- Subtract langsets
+ FcLangSetCompare -- compare language sets
+ FcLangSetContains -- check langset subset relation
+ FcLangSetEqual -- test for matching langsets
+ FcLangSetHash -- return a hash value for a langset
+ FcLangSetHasLang -- test langset for language support
+ FcGetDefaultLangs -- Get the default languages list
+ FcLangSetGetLangs -- get the list of languages in the langset
+ FcGetLangs -- Get list of languages
+ FcLangNormalize -- Normalize the language string
+ FcLangGetCharSet -- Get character map for a language
- An FcLangSet is a set of language names (each of which include language
- and an optional territory). They are used when selecting fonts to indicate
- which languages the fonts need to support. Each font is marked, using
- language orthography information built into fontconfig, with the set of
- supported languages.
+ An FcLangSet is a set of language names (each of which include
+ language and an optional territory). They are used when
+ selecting fonts to indicate which languages the fonts need to
+ support. Each font is marked, using language orthography
+ information built into fontconfig, with the set of supported
+ languages.
- FcLangSetCreate
+FcLangSetCreate
Name
- FcLangSetCreate -- create a langset object
+ FcLangSetCreate -- create a langset object
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcLangSet * FcLangSetCreate(void);
FcLangSetCreate creates a new FcLangSet object.
-Version
-
- Fontconfig version 2.10.91
-
- FcLangSetDestroy
+FcLangSetDestroy
Name
- FcLangSetDestroy -- destroy a langset object
+ FcLangSetDestroy -- destroy a langset object
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
void FcLangSetDestroy(FcLangSet *ls);
Description
- FcLangSetDestroy destroys a FcLangSet object, freeing all memory
- associated with it.
-
-Version
-
- Fontconfig version 2.10.91
+ FcLangSetDestroy destroys a FcLangSet object, freeing all
+ memory associated with it.
- FcLangSetCopy
+FcLangSetCopy
Name
- FcLangSetCopy -- copy a langset object
+ FcLangSetCopy -- copy a langset object
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcLangSet * FcLangSetCopy(const FcLangSet *ls);
Description
- FcLangSetCopy creates a new FcLangSet object and populates it with the
- contents of ls.
-
-Version
+ FcLangSetCopy creates a new FcLangSet object and populates it
+ with the contents of ls.
- Fontconfig version 2.10.91
-
- FcLangSetAdd
+FcLangSetAdd
Name
- FcLangSetAdd -- add a language to a langset
+ FcLangSetAdd -- add a language to a langset
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcLangSetAdd(FcLangSet *ls, const FcChar8 *lang);
Description
- lang is added to ls. lang should be of the form Ll-Tt where Ll is a two or
- three letter language from ISO 639 and Tt is a territory from ISO 3166.
-
-Version
-
- Fontconfig version 2.10.91
+ lang is added to ls. lang should be of the form Ll-Tt where Ll
+ is a two or three letter language from ISO 639 and Tt is a
+ territory from ISO 3166.
- FcLangSetDel
+FcLangSetDel
Name
- FcLangSetDel -- delete a language from a langset
+ FcLangSetDel -- delete a language from a langset
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcLangSetDel(FcLangSet *ls, const FcChar8 *lang);
Description
- lang is removed from ls. lang should be of the form Ll-Tt where Ll is a
- two or three letter language from ISO 639 and Tt is a territory from ISO
- 3166.
+ lang is removed from ls. lang should be of the form Ll-Tt where
+ Ll is a two or three letter language from ISO 639 and Tt is a
+ territory from ISO 3166.
-Version
+Since
- Fontconfig version 2.10.91
+ version 2.9.0
- FcLangSetUnion
+FcLangSetUnion
Name
- FcLangSetUnion -- Add langsets
+ FcLangSetUnion -- Add langsets
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- FcLangSet * FcLangSetUnion(const FcLangSet *ls_a, const FcLangSet *ls_b);
+ FcLangSet * FcLangSetUnion(const FcLangSet *ls_a, const
+ FcLangSet *ls_b);
Description
- Returns a set including only those languages found in either ls_a or ls_b.
+ Returns a set including only those languages found in either
+ ls_a or ls_b.
-Version
+Since
- Fontconfig version 2.10.91
+ version 2.9.0
- FcLangSetSubtract
+FcLangSetSubtract
Name
- FcLangSetSubtract -- Subtract langsets
+ FcLangSetSubtract -- Subtract langsets
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcLangSet * FcLangSetSubtract(const FcLangSet *ls_a, const FcLangSet
- *ls_b);
+ FcLangSet * FcLangSetSubtract(const FcLangSet *ls_a, const
+ FcLangSet *ls_b);
Description
- Returns a set including only those languages found in ls_a but not in
- ls_b.
+ Returns a set including only those languages found in ls_a but
+ not in ls_b.
-Version
+Since
- Fontconfig version 2.10.91
+ version 2.9.0
- FcLangSetCompare
+FcLangSetCompare
Name
- FcLangSetCompare -- compare language sets
+ FcLangSetCompare -- compare language sets
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcLangResult FcLangSetCompare(const FcLangSet *ls_a, const FcLangSet
- *ls_b);
+ FcLangResult FcLangSetCompare(const FcLangSet *ls_a, const
+ FcLangSet *ls_b);
Description
- FcLangSetCompare compares language coverage for ls_a and ls_b. If they
- share any language and territory pair, this function returns FcLangEqual.
- If they share a language but differ in which territory that language is
- for, this function returns FcLangDifferentTerritory. If they share no
- languages in common, this function returns FcLangDifferentLang.
-
-Version
-
- Fontconfig version 2.10.91
+ FcLangSetCompare compares language coverage for ls_a and ls_b.
+ If they share any language and territory pair, this function
+ returns FcLangEqual. If they share a language but differ in
+ which territory that language is for, this function returns
+ FcLangDifferentTerritory. If they share no languages in common,
+ this function returns FcLangDifferentLang.
- FcLangSetContains
+FcLangSetContains
Name
- FcLangSetContains -- check langset subset relation
+ FcLangSetContains -- check langset subset relation
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcBool FcLangSetContains(const FcLangSet *ls_a, const FcLangSet *ls_b);
+ FcBool FcLangSetContains(const FcLangSet *ls_a, const FcLangSet
+ *ls_b);
Description
- FcLangSetContains returns FcTrue if ls_a contains every language in ls_b.
- ls_a will 'contain' a language from ls_b if ls_a has exactly the language,
- or either the language or ls_a has no territory.
-
-Version
-
- Fontconfig version 2.10.91
+ FcLangSetContains returns FcTrue if ls_a contains every
+ language in ls_b. ls_a will 'contain' a language from ls_b if
+ ls_a has exactly the language, or either the language or ls_a
+ has no territory.
- FcLangSetEqual
+FcLangSetEqual
Name
- FcLangSetEqual -- test for matching langsets
+ FcLangSetEqual -- test for matching langsets
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcBool FcLangSetEqual(const FcLangSet *ls_a, const FcLangSet *ls_b);
+ FcBool FcLangSetEqual(const FcLangSet *ls_a, const FcLangSet
+ *ls_b);
Description
- Returns FcTrue if and only if ls_a supports precisely the same language
- and territory combinations as ls_b.
-
-Version
-
- Fontconfig version 2.10.91
+ Returns FcTrue if and only if ls_a supports precisely the same
+ language and territory combinations as ls_b.
- FcLangSetHash
+FcLangSetHash
Name
- FcLangSetHash -- return a hash value for a langset
+ FcLangSetHash -- return a hash value for a langset
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcChar32 FcLangSetHash(const FcLangSet *ls);
Description
- This function returns a value which depends solely on the languages
- supported by ls. Any language which equals ls will have the same result
- from FcLangSetHash. However, two langsets with the same hash value may not
- be equal.
+ This function returns a value which depends solely on the
+ languages supported by ls. Any language which equals ls will
+ have the same result from FcLangSetHash. However, two langsets
+ with the same hash value may not be equal.
+
+FcLangSetHasLang
+
+Name
+
+ FcLangSetHasLang -- test langset for language support
+
+Synopsis
+
+#include <fontconfig/fontconfig.h>
-Version
+ FcLangResult FcLangSetHasLang(const FcLangSet *ls, const
+ FcChar8 *lang);
- Fontconfig version 2.10.91
+Description
+
+ FcLangSetHasLang checks whether ls supports lang. If ls has a
+ matching language and territory pair, this function returns
+ FcLangEqual. If ls has a matching language but differs in which
+ territory that language is for, this function returns
+ FcLangDifferentTerritory. If ls has no matching language, this
+ function returns FcLangDifferentLang.
- FcLangSetHasLang
+FcGetDefaultLangs
Name
- FcLangSetHasLang -- test langset for language support
+ FcGetDefaultLangs -- Get the default languages list
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcLangResult FcLangSetHasLang(const FcLangSet *ls, const FcChar8 *lang);
+ FcStrSet * FcGetDefaultLangs(void);
Description
- FcLangSetHasLang checks whether ls supports lang. If ls has a matching
- language and territory pair, this function returns FcLangEqual. If ls has
- a matching language but differs in which territory that language is for,
- this function returns FcLangDifferentTerritory. If ls has no matching
- language, this function returns FcLangDifferentLang.
+ Returns a string set of the default languages according to the
+ environment variables on the system. This function looks for
+ them in order of FC_LANG, LC_ALL, LC_CTYPE and LANG then. If
+ there are no valid values in those environment variables, "en"
+ will be set as fallback.
-Version
+Since
- Fontconfig version 2.10.91
+ version 2.9.91
- FcGetDefaultLangs
+FcLangSetGetLangs
Name
- FcGetDefaultLangs -- Get the default languages list
+ FcLangSetGetLangs -- get the list of languages in the langset
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- FcStrSet * FcGetDefaultLangs(voidls);
+ FcStrSet * FcLangSetGetLangs(const FcLangSet *ls);
Description
- Returns a string set of the default languages according to the environment
- variables on the system. This function looks for them in order of FC_LANG,
- LC_ALL, LC_CTYPE and LANG then. If there are no valid values in those
- environment variables, "en" will be set as fallback.
+ Returns a string set of all languages in langset.
-Version
-
- Fontconfig version 2.10.91
-
- FcGetLangs
+FcGetLangs
Name
- FcGetLangs -- Get list of languages
+ FcGetLangs -- Get list of languages
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcStrSet * FcGetLangs(void);
Returns a string set of all known languages.
-Version
-
- Fontconfig version 2.10.91
-
- FcLangNormalize
+FcLangNormalize
Name
- FcLangNormalize -- Normalize the language string
+ FcLangNormalize -- Normalize the language string
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcChar8 * FcLangNormalize(const FcChar8 *lang);
Returns a string to make lang suitable on fontconfig.
-Version
+Since
- Fontconfig version 2.10.91
+ version 2.10.91
- FcLangGetCharSet
+FcLangGetCharSet
Name
- FcLangGetCharSet -- Get character map for a language
+ FcLangGetCharSet -- Get character map for a language
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
const FcCharSet * FcLangGetCharSet(const FcChar8 *lang);
Description
Returns the FcCharMap for a language.
+ __________________________________________________________
-Version
-
- Fontconfig version 2.10.91
-
- --------------------------------------------------------------------------
-
- FcMatrix
+FcMatrix
Table of Contents
+ FcMatrixInit -- initialize an FcMatrix structure
+ FcMatrixCopy -- Copy a matrix
+ FcMatrixEqual -- Compare two matrices
+ FcMatrixMultiply -- Multiply matrices
+ FcMatrixRotate -- Rotate a matrix
+ FcMatrixScale -- Scale a matrix
+ FcMatrixShear -- Shear a matrix
- [89]FcMatrixInit -- initialize an FcMatrix structure
-
- [90]FcMatrixCopy -- Copy a matrix
-
- [91]FcMatrixEqual -- Compare two matrices
-
- [92]FcMatrixMultiply -- Multiply matrices
-
- [93]FcMatrixRotate -- Rotate a matrix
-
- [94]FcMatrixScale -- Scale a matrix
-
- [95]FcMatrixShear -- Shear a matrix
+ FcMatrix structures hold an affine transformation in matrix
+ form.
- FcMatrix structures hold an affine transformation in matrix form.
-
- FcMatrixInit
+FcMatrixInit
Name
- FcMatrixInit -- initialize an FcMatrix structure
+ FcMatrixInit -- initialize an FcMatrix structure
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
void FcMatrixInit(FcMatrix *matrix);
FcMatrixInit initializes matrix to the identity matrix.
-Version
-
- Fontconfig version 2.10.91
-
- FcMatrixCopy
+FcMatrixCopy
Name
- FcMatrixCopy -- Copy a matrix
+ FcMatrixCopy -- Copy a matrix
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
void FcMatrixCopy(const FcMatrix *matrix);
FcMatrixCopy allocates a new FcMatrix and copies mat into it.
-Version
-
- Fontconfig version 2.10.91
-
- FcMatrixEqual
+FcMatrixEqual
Name
- FcMatrixEqual -- Compare two matrices
+ FcMatrixEqual -- Compare two matrices
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- void FcMatrixEqual(const FcMatrix *matrix1, const FcMatrix *matrix2);
+ void FcMatrixEqual(const FcMatrix *matrix1, const FcMatrix
+ *matrix2);
Description
- FcMatrixEqual compares matrix1 and matrix2 returning FcTrue when they are
- equal and FcFalse when they are not.
+ FcMatrixEqual compares matrix1 and matrix2 returning FcTrue
+ when they are equal and FcFalse when they are not.
-Version
-
- Fontconfig version 2.10.91
-
- FcMatrixMultiply
+FcMatrixMultiply
Name
- FcMatrixMultiply -- Multiply matrices
+ FcMatrixMultiply -- Multiply matrices
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- void FcMatrixMultiply(FcMatrix *result, const FcMatrix *matrix1, const
- FcMatrix *matrix2);
+ void FcMatrixMultiply(FcMatrix *result, const FcMatrix
+ *matrix1, const FcMatrix *matrix2);
Description
- FcMatrixMultiply multiplies matrix1 and matrix2 storing the result in
- result.
-
-Version
+ FcMatrixMultiply multiplies matrix1 and matrix2 storing the
+ result in result.
- Fontconfig version 2.10.91
-
- FcMatrixRotate
+FcMatrixRotate
Name
- FcMatrixRotate -- Rotate a matrix
+ FcMatrixRotate -- Rotate a matrix
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
void FcMatrixRotate(FcMatrix *matrix, double cos, double sin);
Description
- FcMatrixRotate rotates matrix by the angle who's sine is sin and cosine is
- cos. This is done by multiplying by the matrix:
+ FcMatrixRotate rotates matrix by the angle who's sine is sin
+ and cosine is cos. This is done by multiplying by the matrix:
+ cos -sin
+ sin cos
+
+FcMatrixScale
+
+Name
+
+ FcMatrixScale -- Scale a matrix
+
+Synopsis
- cos -sin
- sin cos
+#include <fontconfig/fontconfig.h>
-Version
+ void FcMatrixScale(FcMatrix *matrix, double sx, double dy);
+
+Description
- Fontconfig version 2.10.91
+ FcMatrixScale multiplies matrix x values by sx and y values by
+ dy. This is done by multiplying by the matrix:
+ sx 0
+ 0 dy
- FcMatrixScale
+FcMatrixShear
Name
- FcMatrixScale -- Scale a matrix
+ FcMatrixShear -- Shear a matrix
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- void FcMatrixScale(FcMatrix *matrix, double sx, double dy);
+ void FcMatrixShear(FcMatrix *matrix, double sh, double sv);
Description
- FcMatrixScale multiplies matrix x values by sx and y values by dy. This is
- done by multiplying by the matrix:
+ FcMatrixShare shears matrix horizontally by sh and vertically
+ by sv. This is done by multiplying by the matrix:
+ 1 sh
+ sv 1
+ __________________________________________________________
- sx 0
- 0 dy
+FcRange
-Version
+ Table of Contents
+ FcRangeCopy -- Copy a range object
+ FcRangeCreateDouble -- create a range object for double
+ FcRangeCreateInteger -- create a range object for integer
+ FcRangeDestroy -- destroy a range object
+ FcRangeGetDouble -- Get the range in double
- Fontconfig version 2.10.91
+ An FcRange holds two variables to indicate a range in between.
- FcMatrixShear
+FcRangeCopy
Name
- FcMatrixShear -- Shear a matrix
+ FcRangeCopy -- Copy a range object
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- void FcMatrixShear(FcMatrix *matrix, double sh, double sv);
+ FcRange * FcRangeCopy(const FcRange *range);
Description
- FcMatrixShare shears matrix horizontally by sh and vertically by sv. This
- is done by multiplying by the matrix:
+ FcRangeCopy creates a new FcRange object and populates it with
+ the contents of range.
- 1 sh
- sv 1
+Since
-Version
+ version 2.11.91
- Fontconfig version 2.10.91
+FcRangeCreateDouble
- --------------------------------------------------------------------------
+Name
- FcConfig
+ FcRangeCreateDouble -- create a range object for double
- Table of Contents
+Synopsis
- [96]FcConfigCreate -- Create a configuration
+#include <fontconfig/fontconfig.h>
- [97]FcConfigReference -- Increment config reference count
+ FcRange * FcRangeCreateDouble(doublebegin, doubleend);
- [98]FcConfigDestroy -- Destroy a configuration
+Description
+
+ FcRangeCreateDouble creates a new FcRange object with double
+ sized value.
- [99]FcConfigSetCurrent -- Set configuration as default
+Since
- [100]FcConfigGetCurrent -- Return current configuration
+ version 2.11.91
- [101]FcConfigUptoDate -- Check timestamps on config files
+FcRangeCreateInteger
+
+Name
- [102]FcConfigHome -- return the current home directory.
+ FcRangeCreateInteger -- create a range object for integer
- [103]FcConfigEnableHome -- controls use of the home directory.
+Synopsis
- [104]FcConfigBuildFonts -- Build font database
+#include <fontconfig/fontconfig.h>
- [105]FcConfigGetConfigDirs -- Get config directories
+ FcRange * FcRangeCreateInteger(intbegin, intend);
- [106]FcConfigGetFontDirs -- Get font directories
+Description
- [107]FcConfigGetConfigFiles -- Get config files
+ FcRangeCreateInteger creates a new FcRange object with integer
+ sized value.
- [108]FcConfigGetCache -- DEPRECATED used to return per-user cache filename
+Since
- [109]FcConfigGetCacheDirs -- return the list of directories searched for
- cache files
+ version 2.11.91
- [110]FcConfigGetFonts -- Get config font set
+FcRangeDestroy
- [111]FcConfigGetBlanks -- Get config blanks
+Name
- [112]FcConfigGetRescanInterval -- Get config rescan interval
+ FcRangeDestroy -- destroy a range object
- [113]FcConfigSetRescanInterval -- Set config rescan interval
+Synopsis
- [114]FcConfigAppFontAddFile -- Add font file to font database
+#include <fontconfig/fontconfig.h>
- [115]FcConfigAppFontAddDir -- Add fonts from directory to font database
+ void FcRangeDestroy(FcRange *range);
- [116]FcConfigAppFontClear -- Remove all app fonts from font database
+Description
- [117]FcConfigSubstituteWithPat -- Execute substitutions
+ FcRangeDestroy destroys a FcRange object, freeing all memory
+ associated with it.
- [118]FcConfigSubstitute -- Execute substitutions
+Since
- [119]FcFontMatch -- Return best font
+ version 2.11.91
- [120]FcFontSort -- Return list of matching fonts
+FcRangeGetDouble
- [121]FcFontRenderPrepare -- Prepare pattern for loading font file
+Name
- [122]FcFontList -- List fonts
+ FcRangeGetDouble -- Get the range in double
- [123]FcConfigFilename -- Find a config file
+Synopsis
- [124]FcConfigParseAndLoad -- load a configuration file
+#include <fontconfig/fontconfig.h>
- An FcConfig object holds the internal representation of a configuration.
- There is a default configuration which applications may use by passing 0
- to any function using the data within an FcConfig.
+ FcBool FcRangeGetDouble(const FcRange *range, double *begin,
+ double *end);
- FcConfigCreate
+Description
-Name
+ Returns in begin and end as the range.
- FcConfigCreate -- Create a configuration
+Since
-Synopsis
+ version 2.11.91
+ __________________________________________________________
- #include <fontconfig/fontconfig.h>
+FcConfig
+ Table of Contents
+ FcConfigCreate -- Create a configuration
+ FcConfigReference -- Increment config reference count
+ FcConfigDestroy -- Destroy a configuration
+ FcConfigSetCurrent -- Set configuration as default
+ FcConfigGetCurrent -- Return current configuration
+ FcConfigUptoDate -- Check timestamps on config files
+ FcConfigHome -- return the current home directory.
+ FcConfigEnableHome -- controls use of the home directory.
+ FcConfigBuildFonts -- Build font database
+ FcConfigGetConfigDirs -- Get config directories
+ FcConfigGetFontDirs -- Get font directories
+ FcConfigGetConfigFiles -- Get config files
+ FcConfigGetCache -- DEPRECATED used to return per-user cache
+ filename
+
+ FcConfigGetCacheDirs -- return the list of directories searched
+ for cache files
+
+ FcConfigGetFonts -- Get config font set
+ FcConfigGetBlanks -- Get config blanks
+ FcConfigGetRescanInterval -- Get config rescan interval
+ FcConfigSetRescanInterval -- Set config rescan interval
+ FcConfigAppFontAddFile -- Add font file to font database
+ FcConfigAppFontAddDir -- Add fonts from directory to font
+ database
+
+ FcConfigAppFontClear -- Remove all app fonts from font database
+ FcConfigSubstituteWithPat -- Execute substitutions
+ FcConfigSubstitute -- Execute substitutions
+ FcFontMatch -- Return best font
+ FcFontSort -- Return list of matching fonts
+ FcFontRenderPrepare -- Prepare pattern for loading font file
+ FcFontList -- List fonts
+ FcConfigFilename -- Find a config file
+ FcConfigParseAndLoad -- load a configuration file
+ FcConfigGetSysRoot -- Obtain the system root directory
+ FcConfigSetSysRoot -- Set the system root directory
+
+ An FcConfig object holds the internal representation of a
+ configuration. There is a default configuration which
+ applications may use by passing 0 to any function using the
+ data within an FcConfig.
+
+FcConfigCreate
+
+Name
+
+ FcConfigCreate -- Create a configuration
+
+Synopsis
+
+#include <fontconfig/fontconfig.h>
FcConfig * FcConfigCreate(void);
Creates an empty configuration.
-Version
-
- Fontconfig version 2.10.91
-
- FcConfigReference
+FcConfigReference
Name
- FcConfigReference -- Increment config reference count
+ FcConfigReference -- Increment config reference count
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcConfig * FcConfigReference(FcConfig *config);
Description
- Add another reference to config. Configs are freed only when the reference
- count reaches zero. If config is NULL, the current configuration is used.
- In that case this function will be similar to FcConfigGetCurrent() except
- that it increments the reference count before returning and the user is
- responsible for destroying the configuration when not needed anymore.
-
-Version
+ Add another reference to config. Configs are freed only when
+ the reference count reaches zero. If config is NULL, the
+ current configuration is used. In that case this function will
+ be similar to FcConfigGetCurrent() except that it increments
+ the reference count before returning and the user is
+ responsible for destroying the configuration when not needed
+ anymore.
- Fontconfig version 2.10.91
-
- FcConfigDestroy
+FcConfigDestroy
Name
- FcConfigDestroy -- Destroy a configuration
+ FcConfigDestroy -- Destroy a configuration
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
void FcConfigDestroy(FcConfig *config);
Description
- Decrements the config reference count. If all references are gone,
- destroys the configuration and any data associated with it. Note that
- calling this function with the return from FcConfigGetCurrent will cause a
- new configuration to be created for use as current configuration.
-
-Version
-
- Fontconfig version 2.10.91
+ Decrements the config reference count. If all references are
+ gone, destroys the configuration and any data associated with
+ it. Note that calling this function with the return from
+ FcConfigGetCurrent will cause a new configuration to be created
+ for use as current configuration.
- FcConfigSetCurrent
+FcConfigSetCurrent
Name
- FcConfigSetCurrent -- Set configuration as default
+ FcConfigSetCurrent -- Set configuration as default
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcConfigSetCurrent(FcConfig *config);
Description
- Sets the current default configuration to config. Implicitly calls
- FcConfigBuildFonts if necessary, returning FcFalse if that call fails.
-
-Version
+ Sets the current default configuration to config. Implicitly
+ calls FcConfigBuildFonts if necessary, and FcConfigReference()
+ to inrease the reference count in config since 2.12.0,
+ returning FcFalse if that call fails.
- Fontconfig version 2.10.91
-
- FcConfigGetCurrent
+FcConfigGetCurrent
Name
- FcConfigGetCurrent -- Return current configuration
+ FcConfigGetCurrent -- Return current configuration
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcConfig * FcConfigGetCurrent(void);
Returns the current default configuration.
-Version
-
- Fontconfig version 2.10.91
-
- FcConfigUptoDate
+FcConfigUptoDate
Name
- FcConfigUptoDate -- Check timestamps on config files
+ FcConfigUptoDate -- Check timestamps on config files
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcConfigUptoDate(FcConfig *config);
Description
- Checks all of the files related to config and returns whether any of them
- has been modified since the configuration was created. If config is NULL,
- the current configuration is used.
-
-Version
+ Checks all of the files related to config and returns whether
+ any of them has been modified since the configuration was
+ created. If config is NULL, the current configuration is used.
- Fontconfig version 2.10.91
-
- FcConfigHome
+FcConfigHome
Name
- FcConfigHome -- return the current home directory.
+ FcConfigHome -- return the current home directory.
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcChar8 * FcConfigHome(void);
Description
- Return the current user's home directory, if it is available, and if using
- it is enabled, and NULL otherwise. See also FcConfigEnableHome).
-
-Version
-
- Fontconfig version 2.10.91
+ Return the current user's home directory, if it is available,
+ and if using it is enabled, and NULL otherwise. See also
+ FcConfigEnableHome).
- FcConfigEnableHome
+FcConfigEnableHome
Name
- FcConfigEnableHome -- controls use of the home directory.
+ FcConfigEnableHome -- controls use of the home directory.
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcConfigEnableHome(FcBool enable);
Description
- If enable is FcTrue, then Fontconfig will use various files which are
- specified relative to the user's home directory (using the ~ notation in
- the configuration). When enable is FcFalse, then all use of the home
- directory in these contexts will be disabled. The previous setting of the
- value is returned.
-
-Version
+ If enable is FcTrue, then Fontconfig will use various files
+ which are specified relative to the user's home directory
+ (using the ~ notation in the configuration). When enable is
+ FcFalse, then all use of the home directory in these contexts
+ will be disabled. The previous setting of the value is
+ returned.
- Fontconfig version 2.10.91
-
- FcConfigBuildFonts
+FcConfigBuildFonts
Name
- FcConfigBuildFonts -- Build font database
+ FcConfigBuildFonts -- Build font database
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcConfigBuildFonts(FcConfig *config);
Description
- Builds the set of available fonts for the given configuration. Note that
- any changes to the configuration after this call have indeterminate
- effects. Returns FcFalse if this operation runs out of memory. If config
- is NULL, the current configuration is used.
-
-Version
-
- Fontconfig version 2.10.91
+ Builds the set of available fonts for the given configuration.
+ Note that any changes to the configuration after this call have
+ indeterminate effects. Returns FcFalse if this operation runs
+ out of memory. If config is NULL, the current configuration is
+ used.
- FcConfigGetConfigDirs
+FcConfigGetConfigDirs
Name
- FcConfigGetConfigDirs -- Get config directories
+ FcConfigGetConfigDirs -- Get config directories
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcStrList * FcConfigGetConfigDirs(FcConfig *config);
Description
- Returns the list of font directories specified in the configuration files
- for config. Does not include any subdirectories. If config is NULL, the
- current configuration is used.
-
-Version
-
- Fontconfig version 2.10.91
+ Returns the list of font directories specified in the
+ configuration files for config. Does not include any
+ subdirectories. If config is NULL, the current configuration is
+ used.
- FcConfigGetFontDirs
+FcConfigGetFontDirs
Name
- FcConfigGetFontDirs -- Get font directories
+ FcConfigGetFontDirs -- Get font directories
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcStrList * FcConfigGetFontDirs(FcConfig *config);
Description
- Returns the list of font directories in config. This includes the
- configured font directories along with any directories below those in the
- filesystem. If config is NULL, the current configuration is used.
-
-Version
-
- Fontconfig version 2.10.91
+ Returns the list of font directories in config. This includes
+ the configured font directories along with any directories
+ below those in the filesystem. If config is NULL, the current
+ configuration is used.
- FcConfigGetConfigFiles
+FcConfigGetConfigFiles
Name
- FcConfigGetConfigFiles -- Get config files
+ FcConfigGetConfigFiles -- Get config files
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcStrList * FcConfigGetConfigFiles(FcConfig *config);
Description
- Returns the list of known configuration files used to generate config. If
- config is NULL, the current configuration is used.
-
-Version
-
- Fontconfig version 2.10.91
+ Returns the list of known configuration files used to generate
+ config. If config is NULL, the current configuration is used.
- FcConfigGetCache
+FcConfigGetCache
Name
- FcConfigGetCache -- DEPRECATED used to return per-user cache filename
+ FcConfigGetCache -- DEPRECATED used to return per-user cache
+ filename
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcChar8 * FcConfigGetCache(FcConfig *config);
Description
- With fontconfig no longer using per-user cache files, this function now
- simply returns NULL to indicate that no per-user file exists.
-
-Version
+ With fontconfig no longer using per-user cache files, this
+ function now simply returns NULL to indicate that no per-user
+ file exists.
- Fontconfig version 2.10.91
-
- FcConfigGetCacheDirs
+FcConfigGetCacheDirs
Name
- FcConfigGetCacheDirs -- return the list of directories searched for cache
- files
+ FcConfigGetCacheDirs -- return the list of directories searched
+ for cache files
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcStrList * FcConfigGetCacheDirs(const FcConfig *config);
Description
- FcConfigGetCacheDirs returns a string list containing all of the
- directories that fontconfig will search when attempting to load a cache
- file for a font directory. If config is NULL, the current configuration is
- used.
-
-Version
-
- Fontconfig version 2.10.91
+ FcConfigGetCacheDirs returns a string list containing all of
+ the directories that fontconfig will search when attempting to
+ load a cache file for a font directory. If config is NULL, the
+ current configuration is used.
- FcConfigGetFonts
+FcConfigGetFonts
Name
- FcConfigGetFonts -- Get config font set
+ FcConfigGetFonts -- Get config font set
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcFontSet * FcConfigGetFonts(FcConfig *config, FcSetName set);
Description
- Returns one of the two sets of fonts from the configuration as specified
- by set. This font set is owned by the library and must not be modified or
- freed. If config is NULL, the current configuration is used.
-
-Version
-
- Fontconfig version 2.10.91
+ Returns one of the two sets of fonts from the configuration as
+ specified by set. This font set is owned by the library and
+ must not be modified or freed. If config is NULL, the current
+ configuration is used.
- FcConfigGetBlanks
+FcConfigGetBlanks
Name
- FcConfigGetBlanks -- Get config blanks
+ FcConfigGetBlanks -- Get config blanks
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBlanks * FcConfigGetBlanks(FcConfig *config);
Description
- Returns the FcBlanks object associated with the given configuration, if no
- blanks were present in the configuration, this function will return 0. The
- returned FcBlanks object if not NULL, is valid as long as the owning
- FcConfig is alive. If config is NULL, the current configuration is used.
-
-Version
-
- Fontconfig version 2.10.91
+ Returns the FcBlanks object associated with the given
+ configuration, if no blanks were present in the configuration,
+ this function will return 0. The returned FcBlanks object if
+ not NULL, is valid as long as the owning FcConfig is alive. If
+ config is NULL, the current configuration is used.
- FcConfigGetRescanInterval
+FcConfigGetRescanInterval
Name
- FcConfigGetRescanInterval -- Get config rescan interval
+ FcConfigGetRescanInterval -- Get config rescan interval
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
int FcConfigGetRescanInterval(FcConfig *config);
Description
- Returns the interval between automatic checks of the configuration (in
- seconds) specified in config. The configuration is checked during a call
- to FcFontList when this interval has passed since the last check. An
- interval setting of zero disables automatic checks. If config is NULL, the
+ Returns the interval between automatic checks of the
+ configuration (in seconds) specified in config. The
+ configuration is checked during a call to FcFontList when this
+ interval has passed since the last check. An interval setting
+ of zero disables automatic checks. If config is NULL, the
current configuration is used.
-Version
-
- Fontconfig version 2.10.91
-
- FcConfigSetRescanInterval
+FcConfigSetRescanInterval
Name
- FcConfigSetRescanInterval -- Set config rescan interval
+ FcConfigSetRescanInterval -- Set config rescan interval
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- FcBool FcConfigSetRescanInterval(FcConfig *config, int rescanInterval);
+ FcBool FcConfigSetRescanInterval(FcConfig *config, int
+ rescanInterval);
Description
- Sets the rescan interval. Returns FcFalse if the interval cannot be set
- (due to allocation failure). Otherwise returns FcTrue. An interval setting
- of zero disables automatic checks. If config is NULL, the current
- configuration is used.
-
-Version
+ Sets the rescan interval. Returns FcFalse if the interval
+ cannot be set (due to allocation failure). Otherwise returns
+ FcTrue. An interval setting of zero disables automatic checks.
+ If config is NULL, the current configuration is used.
- Fontconfig version 2.10.91
-
- FcConfigAppFontAddFile
+FcConfigAppFontAddFile
Name
- FcConfigAppFontAddFile -- Add font file to font database
+ FcConfigAppFontAddFile -- Add font file to font database
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- FcBool FcConfigAppFontAddFile(FcConfig *config, const FcChar8 *file);
+ FcBool FcConfigAppFontAddFile(FcConfig *config, const FcChar8
+ *file);
Description
- Adds an application-specific font to the configuration. Returns FcFalse if
- the fonts cannot be added (due to allocation failure). Otherwise returns
- FcTrue. If config is NULL, the current configuration is used.
-
-Version
-
- Fontconfig version 2.10.91
+ Adds an application-specific font to the configuration. Returns
+ FcFalse if the fonts cannot be added (due to allocation failure
+ or no fonts found). Otherwise returns FcTrue. If config is
+ NULL, the current configuration is used.
- FcConfigAppFontAddDir
+FcConfigAppFontAddDir
Name
- FcConfigAppFontAddDir -- Add fonts from directory to font database
+ FcConfigAppFontAddDir -- Add fonts from directory to font
+ database
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcBool FcConfigAppFontAddDir(FcConfig *config, const FcChar8 *dir);
+ FcBool FcConfigAppFontAddDir(FcConfig *config, const FcChar8
+ *dir);
Description
- Scans the specified directory for fonts, adding each one found to the
- application-specific set of fonts. Returns FcFalse if the fonts cannot be
- added (due to allocation failure). Otherwise returns FcTrue. If config is
- NULL, the current configuration is used.
-
-Version
-
- Fontconfig version 2.10.91
+ Scans the specified directory for fonts, adding each one found
+ to the application-specific set of fonts. Returns FcFalse if
+ the fonts cannot be added (due to allocation failure or no
+ fonts found). Otherwise returns FcTrue. If config is NULL, the
+ current configuration is used.
- FcConfigAppFontClear
+FcConfigAppFontClear
Name
- FcConfigAppFontClear -- Remove all app fonts from font database
+ FcConfigAppFontClear -- Remove all app fonts from font database
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
void FcConfigAppFontClear(FcConfig *config);
Description
- Clears the set of application-specific fonts. If config is NULL, the
- current configuration is used.
-
-Version
-
- Fontconfig version 2.10.91
+ Clears the set of application-specific fonts. If config is
+ NULL, the current configuration is used.
- FcConfigSubstituteWithPat
+FcConfigSubstituteWithPat
Name
- FcConfigSubstituteWithPat -- Execute substitutions
+ FcConfigSubstituteWithPat -- Execute substitutions
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcBool FcConfigSubstituteWithPat(FcConfig *config, FcPattern *p, FcPattern
- *p_pat, FcMatchKind kind);
+ FcBool FcConfigSubstituteWithPat(FcConfig *config, FcPattern
+ *p, FcPattern *p_pat, FcMatchKind kind);
Description
- Performs the sequence of pattern modification operations, if kind is
- FcMatchPattern, then those tagged as pattern operations are applied, else
- if kind is FcMatchFont, those tagged as font operations are applied and
- p_pat is used for <test> elements with target=pattern. Returns FcFalse if
- the substitution cannot be performed (due to allocation failure).
- Otherwise returns FcTrue. If config is NULL, the current configuration is
- used.
-
-Version
-
- Fontconfig version 2.10.91
+ Performs the sequence of pattern modification operations, if
+ kind is FcMatchPattern, then those tagged as pattern operations
+ are applied, else if kind is FcMatchFont, those tagged as font
+ operations are applied and p_pat is used for <test> elements
+ with target=pattern. Returns FcFalse if the substitution cannot
+ be performed (due to allocation failure). Otherwise returns
+ FcTrue. If config is NULL, the current configuration is used.
- FcConfigSubstitute
+FcConfigSubstitute
Name
- FcConfigSubstitute -- Execute substitutions
+ FcConfigSubstitute -- Execute substitutions
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- FcBool FcConfigSubstitute(FcConfig *config, FcPattern *p, FcMatchKind
- kind);
+ FcBool FcConfigSubstitute(FcConfig *config, FcPattern *p,
+ FcMatchKind kind);
Description
- Calls FcConfigSubstituteWithPat setting p_pat to NULL. Returns FcFalse if
- the substitution cannot be performed (due to allocation failure).
- Otherwise returns FcTrue. If config is NULL, the current configuration is
- used.
+ Calls FcConfigSubstituteWithPat setting p_pat to NULL. Returns
+ FcFalse if the substitution cannot be performed (due to
+ allocation failure). Otherwise returns FcTrue. If config is
+ NULL, the current configuration is used.
+
+FcFontMatch
+
+Name
+
+ FcFontMatch -- Return best font
+
+Synopsis
-Version
+#include <fontconfig/fontconfig.h>
- Fontconfig version 2.10.91
+ FcPattern * FcFontMatch(FcConfig *config, FcPattern *p,
+ FcResult *result);
+
+Description
+
+ Finds the font in sets most closely matching pattern and
+ returns the result of FcFontRenderPrepare for that font and the
+ provided pattern. This function should be called only after
+ FcConfigSubstitute and FcDefaultSubstitute have been called for
+ p; otherwise the results will not be correct. If config is
+ NULL, the current configuration is used.
- FcFontMatch
+FcFontSort
Name
- FcFontMatch -- Return best font
+ FcFontSort -- Return list of matching fonts
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcPattern * FcFontMatch(FcConfig *config, FcPattern *p, FcResult *result);
+ FcFontSet * FcFontSort(FcConfig *config, FcPattern *p, FcBool
+ trim, FcCharSet **csp, FcResult *result);
Description
- Finds the font in sets most closely matching pattern and returns the
- result of FcFontRenderPrepare for that font and the provided pattern. This
- function should be called only after FcConfigSubstitute and
- FcDefaultSubstitute have been called for p; otherwise the results will not
- be correct. If config is NULL, the current configuration is used.
+ Returns the list of fonts sorted by closeness to p. If trim is
+ FcTrue, elements in the list which don't include Unicode
+ coverage not provided by earlier elements in the list are
+ elided. The union of Unicode coverage of all of the fonts is
+ returned in csp, if csp is not NULL. This function should be
+ called only after FcConfigSubstitute and FcDefaultSubstitute
+ have been called for p; otherwise the results will not be
+ correct.
-Version
+ The returned FcFontSet references FcPattern structures which
+ may be shared by the return value from multiple FcFontSort
+ calls, applications must not modify these patterns. Instead,
+ they should be passed, along with p to FcFontRenderPrepare
+ which combines them into a complete pattern.
- Fontconfig version 2.10.91
+ The FcFontSet returned by FcFontSort is destroyed by calling
+ FcFontSetDestroy. If config is NULL, the current configuration
+ is used.
- FcFontSort
+FcFontRenderPrepare
Name
- FcFontSort -- Return list of matching fonts
+ FcFontRenderPrepare -- Prepare pattern for loading font file
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcFontSet * FcFontSort(FcConfig *config, FcPattern *p, FcBool trim,
- FcCharSet **csp, FcResult *result);
+ FcPattern * FcFontRenderPrepare(FcConfig *config, FcPattern
+ *pat, FcPattern *font);
Description
- Returns the list of fonts sorted by closeness to p. If trim is FcTrue,
- elements in the list which don't include Unicode coverage not provided by
- earlier elements in the list are elided. The union of Unicode coverage of
- all of the fonts is returned in csp, if csp is not NULL. This function
- should be called only after FcConfigSubstitute and FcDefaultSubstitute
- have been called for p; otherwise the results will not be correct.
+ Creates a new pattern consisting of elements of font not
+ appearing in pat, elements of pat not appearing in font and the
+ best matching value from pat for elements appearing in both.
+ The result is passed to FcConfigSubstituteWithPat with kind
+ FcMatchFont and then returned.
- The returned FcFontSet references FcPattern structures which may be shared
- by the return value from multiple FcFontSort calls, applications must not
- modify these patterns. Instead, they should be passed, along with p to
- FcFontRenderPrepare which combines them into a complete pattern.
+FcFontList
- The FcFontSet returned by FcFontSort is destroyed by calling
- FcFontSetDestroy. If config is NULL, the current configuration is used.
+Name
+
+ FcFontList -- List fonts
+
+Synopsis
-Version
+#include <fontconfig/fontconfig.h>
- Fontconfig version 2.10.91
+ FcFontSet * FcFontList(FcConfig *config, FcPattern *p,
+ FcObjectSet *os);
- FcFontRenderPrepare
+Description
+
+ Selects fonts matching p, creates patterns from those fonts
+ containing only the objects in os and returns the set of unique
+ such patterns. If config is NULL, the default configuration is
+ checked to be up to date, and used.
+
+FcConfigFilename
Name
- FcFontRenderPrepare -- Prepare pattern for loading font file
+ FcConfigFilename -- Find a config file
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcPattern * FcFontRenderPrepare(FcConfig *config, FcPattern *pat,
- FcPattern *font);
+ FcChar8 * FcConfigFilename(const FcChar8 *name);
Description
- Creates a new pattern consisting of elements of font not appearing in pat,
- elements of pat not appearing in font and the best matching value from pat
- for elements appearing in both. The result is passed to
- FcConfigSubstituteWithPat with kind FcMatchFont and then returned.
+ Given the specified external entity name, return the associated
+ filename. This provides applications a way to convert various
+ configuration file references into filename form.
-Version
-
- Fontconfig version 2.10.91
+ A null or empty name indicates that the default configuration
+ file should be used; which file this references can be
+ overridden with the FONTCONFIG_FILE environment variable. Next,
+ if the name starts with ~, it refers to a file in the current
+ users home directory. Otherwise if the name doesn't start with
+ '/', it refers to a file in the default configuration
+ directory; the built-in default directory can be overridden
+ with the FONTCONFIG_PATH environment variable.
- FcFontList
+FcConfigParseAndLoad
Name
- FcFontList -- List fonts
+ FcConfigParseAndLoad -- load a configuration file
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcFontSet * FcFontList(FcConfig *config, FcPattern *p, FcObjectSet *os);
+ FcBool FcConfigParseAndLoad(FcConfig *config, const FcChar8
+ *file, FcBool complain);
Description
- Selects fonts matching p, creates patterns from those fonts containing
- only the objects in os and returns the set of unique such patterns. If
- config is NULL, the default configuration is checked to be up to date, and
- used.
-
-Version
-
- Fontconfig version 2.10.91
+ Walks the configuration in 'file' and constructs the internal
+ representation in 'config'. Any include files referenced from
+ within 'file' will be loaded and parsed. If 'complain' is
+ FcFalse, no warning will be displayed if 'file' does not exist.
+ Error and warning messages will be output to stderr. Returns
+ FcFalse if some error occurred while loading the file, either a
+ parse error, semantic error or allocation failure. Otherwise
+ returns FcTrue.
- FcConfigFilename
+FcConfigGetSysRoot
Name
- FcConfigFilename -- Find a config file
+ FcConfigGetSysRoot -- Obtain the system root directory
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcChar8 * FcConfigFilename(const FcChar8 *name);
+ const FcChar8 * FcConfigGetSysRoot(const FcConfig *config);
Description
- Given the specified external entity name, return the associated filename.
- This provides applications a way to convert various configuration file
- references into filename form.
+ Obtrains the system root directory in 'config' if available.
- A null or empty name indicates that the default configuration file should
- be used; which file this references can be overridden with the
- FONTCONFIG_FILE environment variable. Next, if the name starts with ~, it
- refers to a file in the current users home directory. Otherwise if the
- name doesn't start with '/', it refers to a file in the default
- configuration directory; the built-in default directory can be overridden
- with the FONTCONFIG_PATH environment variable.
-
-Version
+Since
- Fontconfig version 2.10.91
+ version 2.10.92
- FcConfigParseAndLoad
+FcConfigSetSysRoot
Name
- FcConfigParseAndLoad -- load a configuration file
+ FcConfigSetSysRoot -- Set the system root directory
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcBool FcConfigParseAndLoad(FcConfig *config, const FcChar8 *file, FcBool
- complain);
+ void FcConfigSetSysRoot(FcConfig *config, const FcChar8
+ *sysroot);
Description
- Walks the configuration in 'file' and constructs the internal
- representation in 'config'. Any include files referenced from within
- 'file' will be loaded and parsed. If 'complain' is FcFalse, no warning
- will be displayed if 'file' does not exist. Error and warning messages
- will be output to stderr. Returns FcFalse if some error occurred while
- loading the file, either a parse error, semantic error or allocation
- failure. Otherwise returns FcTrue.
-
-Version
+ Set 'sysroot' as the system root directory. fontconfig prepend
+ 'sysroot' to the cache directories in order to allow people to
+ generate caches at the build time. Note that this causes
+ changing current config. i.e. this function calls
+ FcConfigSetCurrent() internally.
- Fontconfig version 2.10.91
+Since
- --------------------------------------------------------------------------
+ version 2.10.92
+ __________________________________________________________
- FcObjectType
+FcObjectType
Table of Contents
+ FcNameRegisterObjectTypes -- Register object types
+ FcNameUnregisterObjectTypes -- Unregister object types
+ FcNameGetObjectType -- Lookup an object type
+
+ Provides for application-specified font name object types so
+ that new pattern elements can be generated from font names.
+
+FcNameRegisterObjectTypes
+
+Name
+
+ FcNameRegisterObjectTypes -- Register object types
+
+Synopsis
- [125]FcNameRegisterObjectTypes -- Register object types
+#include <fontconfig/fontconfig.h>
- [126]FcNameUnregisterObjectTypes -- Unregister object types
+ FcBool FcNameRegisterObjectTypes(const FcObjectType *types, int
+ ntype);
- [127]FcNameGetObjectType -- Lookup an object type
+Description
- Provides for application-specified font name object types so that new
- pattern elements can be generated from font names.
+ Deprecated. Does nothing. Returns FcFalse.
- FcNameRegisterObjectTypes
+FcNameUnregisterObjectTypes
Name
- FcNameRegisterObjectTypes -- Register object types
+ FcNameUnregisterObjectTypes -- Unregister object types
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcBool FcNameRegisterObjectTypes(const FcObjectType *types, int ntype);
+ FcBool FcNameUnregisterObjectTypes(const FcObjectType *types,
+ int ntype);
Description
Deprecated. Does nothing. Returns FcFalse.
-Version
-
- Fontconfig version 2.10.91
-
- FcNameUnregisterObjectTypes
+FcNameGetObjectType
Name
- FcNameUnregisterObjectTypes -- Unregister object types
+ FcNameGetObjectType -- Lookup an object type
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- FcBool FcNameUnregisterObjectTypes(const FcObjectType *types, int ntype);
+ const FcObjectType * FcNameGetObjectType(const char *object);
Description
- Deprecated. Does nothing. Returns FcFalse.
+ Return the object type for the pattern element named object.
+ __________________________________________________________
+
+FcConstant
-Version
+ Table of Contents
+ FcNameRegisterConstants -- Register symbolic constants
+ FcNameUnregisterConstants -- Unregister symbolic constants
+ FcNameGetConstant -- Lookup symbolic constant
+ FcNameConstant -- Get the value for a symbolic constant
- Fontconfig version 2.10.91
+ Provides for application-specified symbolic constants for font
+ names.
- FcNameGetObjectType
+FcNameRegisterConstants
Name
- FcNameGetObjectType -- Lookup an object type
+ FcNameRegisterConstants -- Register symbolic constants
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- const FcObjectType * FcNameGetObjectType(const char *object);
+ FcBool FcNameRegisterConstants(const FcConstant *consts, int
+ nconsts);
Description
- Return the object type for the pattern element named object.
-
-Version
-
- Fontconfig version 2.10.91
+ Deprecated. Does nothing. Returns FcFalse.
- --------------------------------------------------------------------------
+FcNameUnregisterConstants
- FcConstant
+Name
- Table of Contents
+ FcNameUnregisterConstants -- Unregister symbolic constants
- [128]FcNameRegisterConstants -- Register symbolic constants
+Synopsis
- [129]FcNameUnregisterConstants -- Unregister symbolic constants
+#include <fontconfig/fontconfig.h>
- [130]FcNameGetConstant -- Lookup symbolic constant
+ FcBool FcNameUnregisterConstants(const FcConstant *consts, int
+ nconsts);
- [131]FcNameConstant -- Get the value for a symbolic constant
+Description
- Provides for application-specified symbolic constants for font names.
+ Deprecated. Does nothing. Returns FcFalse.
- FcNameRegisterConstants
+FcNameGetConstant
Name
- FcNameRegisterConstants -- Register symbolic constants
+ FcNameGetConstant -- Lookup symbolic constant
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcBool FcNameRegisterConstants(const FcConstant *consts, int nconsts);
+ const FcConstant * FcNameGetConstant(FcChar8 *string);
Description
- Deprecated. Does nothing. Returns FcFalse.
-
-Version
+ Return the FcConstant structure related to symbolic constant
+ string.
- Fontconfig version 2.10.91
-
- FcNameUnregisterConstants
+FcNameConstant
Name
- FcNameUnregisterConstants -- Unregister symbolic constants
+ FcNameConstant -- Get the value for a symbolic constant
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- FcBool FcNameUnregisterConstants(const FcConstant *consts, int nconsts);
+ FcBool FcNameConstant(FcChar8 *string, int *result);
Description
- Deprecated. Does nothing. Returns FcFalse.
+ Returns whether a symbolic constant with name string is
+ registered, placing the value of the constant in result if
+ present.
+ __________________________________________________________
+
+FcWeight
+
+ Table of Contents
+ FcWeightFromOpenType -- Convert from OpenType weight values to
+ fontconfig ones
-Version
+ FcWeightToOpenType -- Convert from fontconfig weight values to
+ OpenType ones
- Fontconfig version 2.10.91
+ Maps weights to and from OpenType weights.
- FcNameGetConstant
+FcWeightFromOpenType
Name
- FcNameGetConstant -- Lookup symbolic constant
+ FcWeightFromOpenType -- Convert from OpenType weight values to
+ fontconfig ones
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- const FcConstant * FcNameGetConstant(FcChar8 *string);
+ int FcWeightFromOpenType(intot_weight);
Description
- Return the FcConstant structure related to symbolic constant string.
+ FcWeightFromOpenType returns an integer value to use with
+ FC_WEIGHT, from an integer in the 1..1000 range, resembling the
+ numbers from OpenType specification's OS/2 usWeight numbers,
+ which are also similar to CSS font-weight numbers. If input is
+ negative, zero, or greater than 1000, returns -1. This function
+ linearly interpolates between various FC_WEIGHT_* constants. As
+ such, the returned value does not necessarily match any of the
+ predefined constants.
-Version
+Since
- Fontconfig version 2.10.91
+ version 2.11.91
- FcNameConstant
+FcWeightToOpenType
Name
- FcNameConstant -- Get the value for a symbolic constant
+ FcWeightToOpenType -- Convert from fontconfig weight values to
+ OpenType ones
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- FcBool FcNameConstant(FcChar8 *string, int *result);
+ int FcWeightToOpenType(intot_weight);
Description
- Returns whether a symbolic constant with name string is registered,
- placing the value of the constant in result if present.
-
-Version
+ FcWeightToOpenType is the inverse of FcWeightFromOpenType. If
+ the input is less than FC_WEIGHT_THIN or greater than
+ FC_WEIGHT_EXTRABLACK, returns -1. Otherwise returns a number in
+ the range 1 to 1000.
- Fontconfig version 2.10.91
+Since
- --------------------------------------------------------------------------
+ version 2.11.91
+ __________________________________________________________
- FcBlanks
+FcBlanks
Table of Contents
+ FcBlanksCreate -- Create an FcBlanks
+ FcBlanksDestroy -- Destroy and FcBlanks
+ FcBlanksAdd -- Add a character to an FcBlanks
+ FcBlanksIsMember -- Query membership in an FcBlanks
- [132]FcBlanksCreate -- Create an FcBlanks
-
- [133]FcBlanksDestroy -- Destroy and FcBlanks
-
- [134]FcBlanksAdd -- Add a character to an FcBlanks
+ An FcBlanks object holds a list of Unicode chars which are
+ expected to be blank when drawn. When scanning new fonts, any
+ glyphs which are empty and not in this list will be assumed to
+ be broken and not placed in the FcCharSet associated with the
+ font. This provides a significantly more accurate CharSet for
+ applications.
- [135]FcBlanksIsMember -- Query membership in an FcBlanks
-
- An FcBlanks object holds a list of Unicode chars which are expected to be
- blank when drawn. When scanning new fonts, any glyphs which are empty and
- not in this list will be assumed to be broken and not placed in the
- FcCharSet associated with the font. This provides a significantly more
- accurate CharSet for applications.
-
- FcBlanksCreate
+FcBlanksCreate
Name
- FcBlanksCreate -- Create an FcBlanks
+ FcBlanksCreate -- Create an FcBlanks
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBlanks * FcBlanksCreate(void);
Creates an empty FcBlanks object.
-Version
-
- Fontconfig version 2.10.91
-
- FcBlanksDestroy
+FcBlanksDestroy
Name
- FcBlanksDestroy -- Destroy and FcBlanks
+ FcBlanksDestroy -- Destroy and FcBlanks
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
void FcBlanksDestroy(FcBlanks *b);
Destroys an FcBlanks object, freeing any associated memory.
-Version
-
- Fontconfig version 2.10.91
-
- FcBlanksAdd
+FcBlanksAdd
Name
- FcBlanksAdd -- Add a character to an FcBlanks
+ FcBlanksAdd -- Add a character to an FcBlanks
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcBlanksAdd(FcBlanks *b, FcChar32 ucs4);
Description
- Adds a single character to an FcBlanks object, returning FcFalse if this
- process ran out of memory.
-
-Version
+ Adds a single character to an FcBlanks object, returning
+ FcFalse if this process ran out of memory.
- Fontconfig version 2.10.91
-
- FcBlanksIsMember
+FcBlanksIsMember
Name
- FcBlanksIsMember -- Query membership in an FcBlanks
+ FcBlanksIsMember -- Query membership in an FcBlanks
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcBlanksIsMember(FcBlanks *b, FcChar32 ucs4);
Description
- Returns whether the specified FcBlanks object contains the indicated
- Unicode value.
+ Returns whether the specified FcBlanks object contains the
+ indicated Unicode value.
+ __________________________________________________________
-Version
-
- Fontconfig version 2.10.91
-
- --------------------------------------------------------------------------
-
- FcAtomic
+FcAtomic
Table of Contents
+ FcAtomicCreate -- create an FcAtomic object
+ FcAtomicLock -- lock a file
+ FcAtomicNewFile -- return new temporary file name
+ FcAtomicOrigFile -- return original file name
+ FcAtomicReplaceOrig -- replace original with new
+ FcAtomicDeleteNew -- delete new file
+ FcAtomicUnlock -- unlock a file
+ FcAtomicDestroy -- destroy an FcAtomic object
- [136]FcAtomicCreate -- create an FcAtomic object
-
- [137]FcAtomicLock -- lock a file
-
- [138]FcAtomicNewFile -- return new temporary file name
-
- [139]FcAtomicOrigFile -- return original file name
-
- [140]FcAtomicReplaceOrig -- replace original with new
-
- [141]FcAtomicDeleteNew -- delete new file
+ These functions provide a safe way to update configuration
+ files, allowing ongoing reading of the old configuration file
+ while locked for writing and ensuring that a consistent and
+ complete version of the configuration file is always available.
- [142]FcAtomicUnlock -- unlock a file
-
- [143]FcAtomicDestroy -- destroy an FcAtomic object
-
- These functions provide a safe way to update configuration files, allowing
- ongoing reading of the old configuration file while locked for writing and
- ensuring that a consistent and complete version of the configuration file
- is always available.
-
- FcAtomicCreate
+FcAtomicCreate
Name
- FcAtomicCreate -- create an FcAtomic object
+ FcAtomicCreate -- create an FcAtomic object
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcAtomic * FcAtomicCreate(const FcChar8 *file);
Description
- Creates a data structure containing data needed to control access to file.
- Writing is done to a separate file. Once that file is complete, the
- original configuration file is atomically replaced so that reading process
- always see a consistent and complete file without the need to lock for
- reading.
+ Creates a data structure containing data needed to control
+ access to file. Writing is done to a separate file. Once that
+ file is complete, the original configuration file is atomically
+ replaced so that reading process always see a consistent and
+ complete file without the need to lock for reading.
-Version
-
- Fontconfig version 2.10.91
-
- FcAtomicLock
+FcAtomicLock
Name
- FcAtomicLock -- lock a file
+ FcAtomicLock -- lock a file
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcAtomicLock(FcAtomic *atomic);
Description
- Attempts to lock the file referenced by atomic. Returns FcFalse if the
- file is already locked, else returns FcTrue and leaves the file locked.
-
-Version
+ Attempts to lock the file referenced by atomic. Returns FcFalse
+ if the file is already locked, else returns FcTrue and leaves
+ the file locked.
- Fontconfig version 2.10.91
-
- FcAtomicNewFile
+FcAtomicNewFile
Name
- FcAtomicNewFile -- return new temporary file name
+ FcAtomicNewFile -- return new temporary file name
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcChar8 * FcAtomicNewFile(FcAtomic *atomic);
Description
- Returns the filename for writing a new version of the file referenced by
- atomic.
-
-Version
-
- Fontconfig version 2.10.91
+ Returns the filename for writing a new version of the file
+ referenced by atomic.
- FcAtomicOrigFile
+FcAtomicOrigFile
Name
- FcAtomicOrigFile -- return original file name
+ FcAtomicOrigFile -- return original file name
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcChar8 * FcAtomicOrigFile(FcAtomic *atomic);
Returns the file referenced by atomic.
-Version
-
- Fontconfig version 2.10.91
-
- FcAtomicReplaceOrig
+FcAtomicReplaceOrig
Name
- FcAtomicReplaceOrig -- replace original with new
+ FcAtomicReplaceOrig -- replace original with new
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcAtomicReplaceOrig(FcAtomic *atomic);
Description
- Replaces the original file referenced by atomic with the new file. Returns
- FcFalse if the file cannot be replaced due to permission issues in the
- filesystem. Otherwise returns FcTrue.
+ Replaces the original file referenced by atomic with the new
+ file. Returns FcFalse if the file cannot be replaced due to
+ permission issues in the filesystem. Otherwise returns FcTrue.
-Version
-
- Fontconfig version 2.10.91
-
- FcAtomicDeleteNew
+FcAtomicDeleteNew
Name
- FcAtomicDeleteNew -- delete new file
+ FcAtomicDeleteNew -- delete new file
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
void FcAtomicDeleteNew(FcAtomic *atomic);
Description
- Deletes the new file. Used in error recovery to back out changes.
-
-Version
+ Deletes the new file. Used in error recovery to back out
+ changes.
- Fontconfig version 2.10.91
-
- FcAtomicUnlock
+FcAtomicUnlock
Name
- FcAtomicUnlock -- unlock a file
+ FcAtomicUnlock -- unlock a file
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
void FcAtomicUnlock(FcAtomic *atomic);
Unlocks the file.
-Version
-
- Fontconfig version 2.10.91
-
- FcAtomicDestroy
+FcAtomicDestroy
Name
- FcAtomicDestroy -- destroy an FcAtomic object
+ FcAtomicDestroy -- destroy an FcAtomic object
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
void FcAtomicDestroy(FcAtomic *atomic);
Description
Destroys atomic.
+ __________________________________________________________
-Version
-
- Fontconfig version 2.10.91
-
- --------------------------------------------------------------------------
-
- File and Directory routines
+File and Directory routines
Table of Contents
+ FcFileScan -- scan a font file
+ FcFileIsDir -- check whether a file is a directory
+ FcDirScan -- scan a font directory without caching it
+ FcDirSave -- DEPRECATED: formerly used to save a directory
+ cache
- [144]FcFileScan -- scan a font file
-
- [145]FcFileIsDir -- check whether a file is a directory
-
- [146]FcDirScan -- scan a font directory without caching it
-
- [147]FcDirSave -- DEPRECATED: formerly used to save a directory cache
-
- [148]FcDirCacheUnlink -- Remove all caches related to dir
+ FcDirCacheUnlink -- Remove all caches related to dir
+ FcDirCacheValid -- check directory cache
+ FcDirCacheLoad -- load a directory cache
+ FcDirCacheRescan -- Re-scan a directory cache
+ FcDirCacheRead -- read or construct a directory cache
+ FcDirCacheLoadFile -- load a cache file
+ FcDirCacheUnload -- unload a cache file
- [149]FcDirCacheValid -- check directory cache
+ These routines work with font files and directories, including
+ font directory cache files.
- [150]FcDirCacheLoad -- load a directory cache
-
- [151]FcDirCacheRead -- read or construct a directory cache
-
- [152]FcDirCacheLoadFile -- load a cache file
-
- [153]FcDirCacheUnload -- unload a cache file
-
- These routines work with font files and directories, including font
- directory cache files.
-
- FcFileScan
+FcFileScan
Name
- FcFileScan -- scan a font file
+ FcFileScan -- scan a font file
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- FcBool FcFileScan(FcFontSet *set, FcStrSet *dirs, FcFileCache *cache,
- FcBlanks *blanks, const FcChar8 *file, FcBool force);
+ FcBool FcFileScan(FcFontSet *set, FcStrSet *dirs, FcFileCache
+ *cache, FcBlanks *blanks, const FcChar8 *file, FcBool force);
Description
- Scans a single file and adds all fonts found to set. If force is FcTrue,
- then the file is scanned even if associated information is found in cache.
- If file is a directory, it is added to dirs. Whether fonts are found
- depends on fontconfig policy as well as the current configuration.
- Internally, fontconfig will ignore BDF and PCF fonts which are not in
- Unicode (or the effectively equivalent ISO Latin-1) encoding as those are
- not usable by Unicode-based applications. The configuration can ignore
- fonts based on filename or contents of the font file itself. Returns
- FcFalse if any of the fonts cannot be added (due to allocation failure).
- Otherwise returns FcTrue.
-
-Version
-
- Fontconfig version 2.10.91
+ Scans a single file and adds all fonts found to set. If force
+ is FcTrue, then the file is scanned even if associated
+ information is found in cache. If file is a directory, it is
+ added to dirs. Whether fonts are found depends on fontconfig
+ policy as well as the current configuration. Internally,
+ fontconfig will ignore BDF and PCF fonts which are not in
+ Unicode (or the effectively equivalent ISO Latin-1) encoding as
+ those are not usable by Unicode-based applications. The
+ configuration can ignore fonts based on filename or contents of
+ the font file itself. Returns FcFalse if any of the fonts
+ cannot be added (due to allocation failure). Otherwise returns
+ FcTrue.
- FcFileIsDir
+FcFileIsDir
Name
- FcFileIsDir -- check whether a file is a directory
+ FcFileIsDir -- check whether a file is a directory
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcFileIsDir(const FcChar8 *file);
Description
- Returns FcTrue if file is a directory, otherwise returns FcFalse.
-
-Version
-
- Fontconfig version 2.10.91
+ Returns FcTrue if file is a directory, otherwise returns
+ FcFalse.
- FcDirScan
+FcDirScan
Name
- FcDirScan -- scan a font directory without caching it
+ FcDirScan -- scan a font directory without caching it
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcBool FcDirScan(FcFontSet *set, FcStrSet *dirs, FcFileCache *cache,
- FcBlanks *blanks, const FcChar8 *dir, FcBool force);
+ FcBool FcDirScan(FcFontSet *set, FcStrSet *dirs, FcFileCache
+ *cache, FcBlanks *blanks, const FcChar8 *dir, FcBool force);
Description
- If cache is not zero or if force is FcFalse, this function currently
- returns FcFalse. Otherwise, it scans an entire directory and adds all
- fonts found to set. Any subdirectories found are added to dirs. Calling
- this function does not create any cache files. Use FcDirCacheRead() if
- caching is desired.
-
-Version
+ If cache is not zero or if force is FcFalse, this function
+ currently returns FcFalse. Otherwise, it scans an entire
+ directory and adds all fonts found to set. Any subdirectories
+ found are added to dirs. Calling this function does not create
+ any cache files. Use FcDirCacheRead() if caching is desired.
- Fontconfig version 2.10.91
-
- FcDirSave
+FcDirSave
Name
- FcDirSave -- DEPRECATED: formerly used to save a directory cache
+ FcDirSave -- DEPRECATED: formerly used to save a directory
+ cache
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- FcBool FcDirSave(FcFontSet *set, FcStrSet *dirs, const FcChar8 *dir);
+ FcBool FcDirSave(FcFontSet *set, FcStrSet *dirs, const FcChar8
+ *dir);
Description
- This function now does nothing aside from returning FcFalse. It used to
- creates the per-directory cache file for dir and populates it with the
- fonts in set and subdirectories in dirs. All of this functionality is now
- automatically managed by FcDirCacheLoad and FcDirCacheRead.
+ This function now does nothing aside from returning FcFalse. It
+ used to creates the per-directory cache file for dir and
+ populates it with the fonts in set and subdirectories in dirs.
+ All of this functionality is now automatically managed by
+ FcDirCacheLoad and FcDirCacheRead.
-Version
-
- Fontconfig version 2.10.91
-
- FcDirCacheUnlink
+FcDirCacheUnlink
Name
- FcDirCacheUnlink -- Remove all caches related to dir
+ FcDirCacheUnlink -- Remove all caches related to dir
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcDirCacheUnlink(const FcChar8 *dir, FcConfig *config);
Description
- Scans the cache directories in config, removing any instances of the cache
- file for dir. Returns FcFalse when some internal error occurs (out of
- memory, etc). Errors actually unlinking any files are ignored.
-
-Version
+ Scans the cache directories in config, removing any instances
+ of the cache file for dir. Returns FcFalse when some internal
+ error occurs (out of memory, etc). Errors actually unlinking
+ any files are ignored.
- Fontconfig version 2.10.91
-
- FcDirCacheValid
+FcDirCacheValid
Name
- FcDirCacheValid -- check directory cache
+ FcDirCacheValid -- check directory cache
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcDirCacheValid(const FcChar8 *dir);
Description
- Returns FcTrue if dir has an associated valid cache file, else returns
- FcFalse
-
-Version
-
- Fontconfig version 2.10.91
+ Returns FcTrue if dir has an associated valid cache file, else
+ returns FcFalse
- FcDirCacheLoad
+FcDirCacheLoad
Name
- FcDirCacheLoad -- load a directory cache
+ FcDirCacheLoad -- load a directory cache
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcCache * FcDirCacheLoad(const FcChar8 *dir, FcConfig *config, FcChar8
- **cache_file);
+ FcCache * FcDirCacheLoad(const FcChar8 *dir, FcConfig *config,
+ FcChar8 **cache_file);
Description
- Loads the cache related to dir. If no cache file exists, returns NULL. The
- name of the cache file is returned in cache_file, unless that is NULL. See
- also FcDirCacheRead.
-
-Version
+ Loads the cache related to dir. If no cache file exists,
+ returns NULL. The name of the cache file is returned in
+ cache_file, unless that is NULL. See also FcDirCacheRead.
- Fontconfig version 2.10.91
-
- FcDirCacheRead
+FcDirCacheRescan
Name
- FcDirCacheRead -- read or construct a directory cache
+ FcDirCacheRescan -- Re-scan a directory cache
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- FcCache * FcDirCacheRead(const FcChar8 *dir, FcBool force, FcConfig
+ FcCache * FcDirCacheRescan(const FcChar8 *dir, FcConfig
*config);
Description
- This returns a cache for dir. If force is FcFalse, then an existing, valid
- cache file will be used. Otherwise, a new cache will be created by
- scanning the directory and that returned.
+ Re-scan directories only at dir and update the cache. returns
+ NULL if failed.
-Version
+Since
- Fontconfig version 2.10.91
+ version 2.11.1
- FcDirCacheLoadFile
+FcDirCacheRead
Name
- FcDirCacheLoadFile -- load a cache file
+ FcDirCacheRead -- read or construct a directory cache
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcCache * FcDirCacheLoadFile(const FcChar8 *cache_file, struct stat
- *file_stat);
+ FcCache * FcDirCacheRead(const FcChar8 *dir, FcBool force,
+ FcConfig *config);
Description
- This function loads a directory cache from cache_file. If file_stat is
- non-NULL, it will be filled with the results of stat(2) on the cache file.
-
-Version
+ This returns a cache for dir. If force is FcFalse, then an
+ existing, valid cache file will be used. Otherwise, a new cache
+ will be created by scanning the directory and that returned.
- Fontconfig version 2.10.91
-
- FcDirCacheUnload
+FcDirCacheLoadFile
Name
- FcDirCacheUnload -- unload a cache file
+ FcDirCacheLoadFile -- load a cache file
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- void FcDirCacheUnload(FcCache *cache);
+ FcCache * FcDirCacheLoadFile(const FcChar8 *cache_file, struct
+ stat *file_stat);
Description
- This function dereferences cache. When no other references to it remain,
- all memory associated with the cache will be freed.
+ This function loads a directory cache from cache_file. If
+ file_stat is non-NULL, it will be filled with the results of
+ stat(2) on the cache file.
-Version
+FcDirCacheUnload
- Fontconfig version 2.10.91
+Name
- --------------------------------------------------------------------------
+ FcDirCacheUnload -- unload a cache file
- FcCache routines
+Synopsis
- Table of Contents
+#include <fontconfig/fontconfig.h>
- [154]FcCacheDir -- Return directory of cache
+ void FcDirCacheUnload(FcCache *cache);
- [155]FcCacheCopySet -- Returns a copy of the fontset from cache
+Description
- [156]FcCacheSubdir -- Return the i'th subdirectory.
+ This function dereferences cache. When no other references to
+ it remain, all memory associated with the cache will be freed.
+ __________________________________________________________
- [157]FcCacheNumSubdir -- Return the number of subdirectories in cache.
+FcCache routines
- [158]FcCacheNumFont -- Returns the number of fonts in cache.
+ Table of Contents
+ FcCacheDir -- Return directory of cache
+ FcCacheCopySet -- Returns a copy of the fontset from cache
+ FcCacheSubdir -- Return the i'th subdirectory.
+ FcCacheNumSubdir -- Return the number of subdirectories in
+ cache.
- [159]FcDirCacheClean -- This tries to clean up the cache directory of
- cache_dir. This returns FcTrue if the operation is successfully complete.
- otherwise FcFalse.
+ FcCacheNumFont -- Returns the number of fonts in cache.
+ FcDirCacheClean -- This tries to clean up the cache directory
+ of cache_dir. This returns FcTrue if the operation is
+ successfully complete. otherwise FcFalse.
- [160]FcCacheCreateTagFile -- Create CACHEDIR.TAG at cache directory.
+ FcCacheCreateTagFile -- Create CACHEDIR.TAG at cache directory.
- These routines work with font directory caches, accessing their contents
- in limited ways. It is not expected that normal applications will need to
- use these functions.
+ These routines work with font directory caches, accessing their
+ contents in limited ways. It is not expected that normal
+ applications will need to use these functions.
- FcCacheDir
+FcCacheDir
Name
- FcCacheDir -- Return directory of cache
+ FcCacheDir -- Return directory of cache
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
const FcChar8 * FcCacheDir(const FcCache *cache);
Description
- This function returns the directory from which the cache was constructed.
+ This function returns the directory from which the cache was
+ constructed.
-Version
-
- Fontconfig version 2.10.91
-
- FcCacheCopySet
+FcCacheCopySet
Name
- FcCacheCopySet -- Returns a copy of the fontset from cache
+ FcCacheCopySet -- Returns a copy of the fontset from cache
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcFontSet * FcCacheCopySet(const FcCache *cache);
Description
- The returned fontset contains each of the font patterns from cache. This
- fontset may be modified, but the patterns from the cache are read-only.
-
-Version
+ The returned fontset contains each of the font patterns from
+ cache. This fontset may be modified, but the patterns from the
+ cache are read-only.
- Fontconfig version 2.10.91
-
- FcCacheSubdir
+FcCacheSubdir
Name
- FcCacheSubdir -- Return the i'th subdirectory.
+ FcCacheSubdir -- Return the i'th subdirectory.
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
const FcChar8 * FcCacheSubdir(const FcCache *cache, inti);
Description
- The set of subdirectories stored in a cache file are indexed by this
- function, i should range from 0 to n-1, where n is the return value from
- FcCacheNumSubdir.
-
-Version
-
- Fontconfig version 2.10.91
+ The set of subdirectories stored in a cache file are indexed by
+ this function, i should range from 0 to n-1, where n is the
+ return value from FcCacheNumSubdir.
- FcCacheNumSubdir
+FcCacheNumSubdir
Name
- FcCacheNumSubdir -- Return the number of subdirectories in cache.
+ FcCacheNumSubdir -- Return the number of subdirectories in
+ cache.
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
int FcCacheNumSubdir(const FcCache *cache);
This returns the total number of subdirectories in the cache.
-Version
-
- Fontconfig version 2.10.91
-
- FcCacheNumFont
+FcCacheNumFont
Name
- FcCacheNumFont -- Returns the number of fonts in cache.
+ FcCacheNumFont -- Returns the number of fonts in cache.
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
int FcCacheNumFont(const FcCache *cache);
Description
- This returns the number of fonts which would be included in the return
- from FcCacheCopySet.
+ This returns the number of fonts which would be included in the
+ return from FcCacheCopySet.
-Version
-
- Fontconfig version 2.10.91
-
- FcDirCacheClean
+FcDirCacheClean
Name
- FcDirCacheClean -- This tries to clean up the cache directory of
- cache_dir. This returns FcTrue if the operation is successfully complete.
- otherwise FcFalse.
+ FcDirCacheClean -- This tries to clean up the cache directory
+ of cache_dir. This returns FcTrue if the operation is
+ successfully complete. otherwise FcFalse.
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcBool FcDirCacheClean(const FcChar8 *cache_dir, FcBoolverbose);
+ FcBool FcDirCacheClean(const FcChar8 *cache_dir,
+ FcBoolverbose);
Description
+Since
+ version 2.9.91
-Version
-
- Fontconfig version 2.10.91
-
- FcCacheCreateTagFile
+FcCacheCreateTagFile
Name
- FcCacheCreateTagFile -- Create CACHEDIR.TAG at cache directory.
+ FcCacheCreateTagFile -- Create CACHEDIR.TAG at cache directory.
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
void FcCacheCreateTagFile(const FcConfig *config);
Description
- This tries to create CACHEDIR.TAG file at the cache directory registered
- to config.
+ This tries to create CACHEDIR.TAG file at the cache directory
+ registered to config.
-Version
+Since
- Fontconfig version 2.10.91
+ version 2.9.91
+ __________________________________________________________
- --------------------------------------------------------------------------
-
- FcStrSet and FcStrList
+FcStrSet and FcStrList
Table of Contents
+ FcStrSetCreate -- create a string set
+ FcStrSetMember -- check set for membership
+ FcStrSetEqual -- check sets for equality
+ FcStrSetAdd -- add to a string set
+ FcStrSetAddFilename -- add a filename to a string set
+ FcStrSetDel -- delete from a string set
+ FcStrSetDestroy -- destroy a string set
+ FcStrListCreate -- create a string iterator
+ FcStrListFirst -- get first string in iteration
+ FcStrListNext -- get next string in iteration
+ FcStrListDone -- destroy a string iterator
- [161]FcStrSetCreate -- create a string set
-
- [162]FcStrSetMember -- check set for membership
-
- [163]FcStrSetEqual -- check sets for equality
-
- [164]FcStrSetAdd -- add to a string set
-
- [165]FcStrSetAddFilename -- add a filename to a string set
-
- [166]FcStrSetDel -- delete from a string set
+ A data structure for enumerating strings, used to list
+ directories while scanning the configuration as directories are
+ added while scanning.
- [167]FcStrSetDestroy -- destroy a string set
-
- [168]FcStrListCreate -- create a string iterator
-
- [169]FcStrListNext -- get next string in iteration
-
- [170]FcStrListDone -- destroy a string iterator
-
- A data structure for enumerating strings, used to list directories while
- scanning the configuration as directories are added while scanning.
-
- FcStrSetCreate
+FcStrSetCreate
Name
- FcStrSetCreate -- create a string set
+ FcStrSetCreate -- create a string set
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcStrSet * FcStrSetCreate(void);
Create an empty set.
-Version
-
- Fontconfig version 2.10.91
-
- FcStrSetMember
+FcStrSetMember
Name
- FcStrSetMember -- check set for membership
+ FcStrSetMember -- check set for membership
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcStrSetMember(FcStrSet *set, const FcChar8 *s);
Returns whether s is a member of set.
-Version
-
- Fontconfig version 2.10.91
-
- FcStrSetEqual
+FcStrSetEqual
Name
- FcStrSetEqual -- check sets for equality
+ FcStrSetEqual -- check sets for equality
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcStrSetEqual(FcStrSet *set_a, FcStrSet *set_b);
Description
- Returns whether set_a contains precisely the same strings as set_b.
- Ordering of strings within the two sets is not considered.
+ Returns whether set_a contains precisely the same strings as
+ set_b. Ordering of strings within the two sets is not
+ considered.
-Version
-
- Fontconfig version 2.10.91
-
- FcStrSetAdd
+FcStrSetAdd
Name
- FcStrSetAdd -- add to a string set
+ FcStrSetAdd -- add to a string set
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcStrSetAdd(FcStrSet *set, const FcChar8 *s);
Adds a copy of s to set.
-Version
-
- Fontconfig version 2.10.91
-
- FcStrSetAddFilename
+FcStrSetAddFilename
Name
- FcStrSetAddFilename -- add a filename to a string set
+ FcStrSetAddFilename -- add a filename to a string set
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcStrSetAddFilename(FcStrSet *set, const FcChar8 *s);
Description
- Adds a copy s to set, The copy is created with FcStrCopyFilename so that
- leading '~' values are replaced with the value of the HOME environment
- variable.
-
-Version
-
- Fontconfig version 2.10.91
+ Adds a copy s to set, The copy is created with
+ FcStrCopyFilename so that leading '~' values are replaced with
+ the value of the HOME environment variable.
- FcStrSetDel
+FcStrSetDel
Name
- FcStrSetDel -- delete from a string set
+ FcStrSetDel -- delete from a string set
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcStrSetDel(FcStrSet *set, const FcChar8 *s);
Description
- Removes s from set, returning FcTrue if s was a member else FcFalse.
-
-Version
+ Removes s from set, returning FcTrue if s was a member else
+ FcFalse.
- Fontconfig version 2.10.91
-
- FcStrSetDestroy
+FcStrSetDestroy
Name
- FcStrSetDestroy -- destroy a string set
+ FcStrSetDestroy -- destroy a string set
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
void FcStrSetDestroy(FcStrSet *set);
Destroys set.
-Version
-
- Fontconfig version 2.10.91
-
- FcStrListCreate
+FcStrListCreate
Name
- FcStrListCreate -- create a string iterator
+ FcStrListCreate -- create a string iterator
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcStrList * FcStrListCreate(FcStrSet *set);
Creates an iterator to list the strings in set.
-Version
-
- Fontconfig version 2.10.91
-
- FcStrListNext
+FcStrListFirst
Name
- FcStrListNext -- get next string in iteration
+ FcStrListFirst -- get first string in iteration
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- FcChar8 * FcStrListNext(FcStrList *list);
+ void FcStrListFirst(FcStrList *list);
Description
- Returns the next string in set.
+ Returns the first string in list.
-Version
+Since
- Fontconfig version 2.10.91
+ version 2.11.0
- FcStrListDone
+FcStrListNext
Name
- FcStrListDone -- destroy a string iterator
+ FcStrListNext -- get next string in iteration
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- void FcStrListDone(FcStrList *list);
+ FcChar8 * FcStrListNext(FcStrList *list);
Description
- Destroys the enumerator list.
-
-Version
-
- Fontconfig version 2.10.91
-
- --------------------------------------------------------------------------
-
- String utilities
-
- Table of Contents
-
- [171]FcUtf8ToUcs4 -- convert UTF-8 to UCS4
-
- [172]FcUcs4ToUtf8 -- convert UCS4 to UTF-8
-
- [173]FcUtf8Len -- count UTF-8 encoded chars
-
- [174]FcUtf16ToUcs4 -- convert UTF-16 to UCS4
-
- [175]FcUtf16Len -- count UTF-16 encoded chars
-
- [176]FcIsLower -- check for lower case ASCII character
-
- [177]FcIsUpper -- check for upper case ASCII character
+ Returns the next string in list.
- [178]FcToLower -- convert upper case ASCII to lower case
+FcStrListDone
- [179]FcStrCopy -- duplicate a string
-
- [180]FcStrDowncase -- create a lower case translation of a string
+Name
- [181]FcStrCopyFilename -- create a complete path from a filename
+ FcStrListDone -- destroy a string iterator
- [182]FcStrCmp -- compare UTF-8 strings
+Synopsis
- [183]FcStrCmpIgnoreCase -- compare UTF-8 strings ignoring case
+#include <fontconfig/fontconfig.h>
- [184]FcStrStr -- locate UTF-8 substring
+ void FcStrListDone(FcStrList *list);
- [185]FcStrStrIgnoreCase -- locate UTF-8 substring ignoring ASCII case
+Description
- [186]FcStrPlus -- concatenate two strings
+ Destroys the enumerator list.
+ __________________________________________________________
- [187]FcStrFree -- free a string
+String utilities
- [188]FcStrDirname -- directory part of filename
+ Table of Contents
+ FcUtf8ToUcs4 -- convert UTF-8 to UCS4
+ FcUcs4ToUtf8 -- convert UCS4 to UTF-8
+ FcUtf8Len -- count UTF-8 encoded chars
+ FcUtf16ToUcs4 -- convert UTF-16 to UCS4
+ FcUtf16Len -- count UTF-16 encoded chars
+ FcIsLower -- check for lower case ASCII character
+ FcIsUpper -- check for upper case ASCII character
+ FcToLower -- convert upper case ASCII to lower case
+ FcStrCopy -- duplicate a string
+ FcStrDowncase -- create a lower case translation of a string
+ FcStrCopyFilename -- create a complete path from a filename
+ FcStrCmp -- compare UTF-8 strings
+ FcStrCmpIgnoreCase -- compare UTF-8 strings ignoring case
+ FcStrStr -- locate UTF-8 substring
+ FcStrStrIgnoreCase -- locate UTF-8 substring ignoring ASCII
+ case
- [189]FcStrBasename -- last component of filename
+ FcStrPlus -- concatenate two strings
+ FcStrFree -- free a string
+ FcStrDirname -- directory part of filename
+ FcStrBasename -- last component of filename
- Fontconfig manipulates many UTF-8 strings represented with the FcChar8
- type. These functions are exposed to help applications deal with these
- UTF-8 strings in a locale-insensitive manner.
+ Fontconfig manipulates many UTF-8 strings represented with the
+ FcChar8 type. These functions are exposed to help applications
+ deal with these UTF-8 strings in a locale-insensitive manner.
- FcUtf8ToUcs4
+FcUtf8ToUcs4
Name
- FcUtf8ToUcs4 -- convert UTF-8 to UCS4
+ FcUtf8ToUcs4 -- convert UTF-8 to UCS4
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
int FcUtf8ToUcs4(FcChar8 *src, FcChar32 *dst, int len);
Description
- Converts the next Unicode char from src into dst and returns the number of
- bytes containing the char. src must be at least len bytes long.
+ Converts the next Unicode char from src into dst and returns
+ the number of bytes containing the char. src must be at least
+ len bytes long.
-Version
-
- Fontconfig version 2.10.91
-
- FcUcs4ToUtf8
+FcUcs4ToUtf8
Name
- FcUcs4ToUtf8 -- convert UCS4 to UTF-8
+ FcUcs4ToUtf8 -- convert UCS4 to UTF-8
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
int FcUcs4ToUtf8(FcChar32 src, FcChar8 dst[FC_UTF8_MAX_LEN]);
Description
- Converts the Unicode char from src into dst and returns the number of
- bytes needed to encode the char.
-
-Version
+ Converts the Unicode char from src into dst and returns the
+ number of bytes needed to encode the char.
- Fontconfig version 2.10.91
-
- FcUtf8Len
+FcUtf8Len
Name
- FcUtf8Len -- count UTF-8 encoded chars
+ FcUtf8Len -- count UTF-8 encoded chars
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- FcBool FcUtf8Len(FcChar8 *src, int len, int *nchar, int *wchar);
+ FcBool FcUtf8Len(FcChar8 *src, int len, int *nchar, int
+ *wchar);
Description
- Counts the number of Unicode chars in len bytes of src. Places that count
- in nchar. wchar contains 1, 2 or 4 depending on the number of bytes needed
- to hold the largest Unicode char counted. The return value indicates
- whether src is a well-formed UTF8 string.
-
-Version
+ Counts the number of Unicode chars in len bytes of src. Places
+ that count in nchar. wchar contains 1, 2 or 4 depending on the
+ number of bytes needed to hold the largest Unicode char
+ counted. The return value indicates whether src is a
+ well-formed UTF8 string.
- Fontconfig version 2.10.91
-
- FcUtf16ToUcs4
+FcUtf16ToUcs4
Name
- FcUtf16ToUcs4 -- convert UTF-16 to UCS4
+ FcUtf16ToUcs4 -- convert UTF-16 to UCS4
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- int FcUtf16ToUcs4(FcChar8 *src, FcEndian endian, FcChar32 *dst, int len);
+ int FcUtf16ToUcs4(FcChar8 *src, FcEndian endian, FcChar32 *dst,
+ int len);
Description
- Converts the next Unicode char from src into dst and returns the number of
- bytes containing the char. src must be at least len bytes long. Bytes of
- src are combined into 16-bit units according to endian.
-
-Version
-
- Fontconfig version 2.10.91
+ Converts the next Unicode char from src into dst and returns
+ the number of bytes containing the char. src must be at least
+ len bytes long. Bytes of src are combined into 16-bit units
+ according to endian.
- FcUtf16Len
+FcUtf16Len
Name
- FcUtf16Len -- count UTF-16 encoded chars
+ FcUtf16Len -- count UTF-16 encoded chars
Synopsis
- #include <fontconfig/fontconfig.h>
+#include <fontconfig/fontconfig.h>
-
- FcBool FcUtf16Len(FcChar8 *src, FcEndian endian, int len, int *nchar, int
- *wchar);
+ FcBool FcUtf16Len(FcChar8 *src, FcEndian endian, int len, int
+ *nchar, int *wchar);
Description
- Counts the number of Unicode chars in len bytes of src. Bytes of src are
- combined into 16-bit units according to endian. Places that count in
- nchar. wchar contains 1, 2 or 4 depending on the number of bytes needed to
- hold the largest Unicode char counted. The return value indicates whether
- string is a well-formed UTF16 string.
-
-Version
-
- Fontconfig version 2.10.91
+ Counts the number of Unicode chars in len bytes of src. Bytes
+ of src are combined into 16-bit units according to endian.
+ Places that count in nchar. wchar contains 1, 2 or 4 depending
+ on the number of bytes needed to hold the largest Unicode char
+ counted. The return value indicates whether string is a
+ well-formed UTF16 string.
- FcIsLower
+FcIsLower
Name
- FcIsLower -- check for lower case ASCII character
+ FcIsLower -- check for lower case ASCII character
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcIsLower(FcChar8c);
This macro checks whether c is an lower case ASCII letter.
-Version
-
- Fontconfig version 2.10.91
-
- FcIsUpper
+FcIsUpper
Name
- FcIsUpper -- check for upper case ASCII character
+ FcIsUpper -- check for upper case ASCII character
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcBool FcIsUpper(FcChar8c);
This macro checks whether c is a upper case ASCII letter.
-Version
-
- Fontconfig version 2.10.91
-
- FcToLower
+FcToLower
Name
- FcToLower -- convert upper case ASCII to lower case
+ FcToLower -- convert upper case ASCII to lower case
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcChar8 FcToLower(FcChar8c);
Description
- This macro converts upper case ASCII c to the equivalent lower case
- letter.
-
-Version
+ This macro converts upper case ASCII c to the equivalent lower
+ case letter.
- Fontconfig version 2.10.91
-
- FcStrCopy
+FcStrCopy
Name
- FcStrCopy -- duplicate a string
+ FcStrCopy -- duplicate a string
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcChar8 * FcStrCopy(const FcChar8 *s);
Description
- Allocates memory, copies s and returns the resulting buffer. Yes, this is
- strdup, but that function isn't available on every platform.
-
-Version
-
- Fontconfig version 2.10.91
+ Allocates memory, copies s and returns the resulting buffer.
+ Yes, this is strdup, but that function isn't available on every
+ platform.
- FcStrDowncase
+FcStrDowncase
Name
- FcStrDowncase -- create a lower case translation of a string
+ FcStrDowncase -- create a lower case translation of a string
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcChar8 * FcStrDowncase(const FcChar8 *s);
Description
- Allocates memory, copies s, converting upper case letters to lower case
- and returns the allocated buffer.
-
-Version
+ Allocates memory, copies s, converting upper case letters to
+ lower case and returns the allocated buffer.
- Fontconfig version 2.10.91
-
- FcStrCopyFilename
+FcStrCopyFilename
Name
- FcStrCopyFilename -- create a complete path from a filename
+ FcStrCopyFilename -- create a complete path from a filename
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcChar8 * FcStrCopyFilename(const FcChar8 *s);
Description
- FcStrCopyFilename constructs an absolute pathname from s. It converts any
- leading '~' characters in to the value of the HOME environment variable,
- and any relative paths are converted to absolute paths using the current
- working directory. Sequences of '/' characters are converted to a single
- '/', and names containing the current directory '.' or parent directory
- '..' are correctly reconstructed. Returns NULL if '~' is the leading
- character and HOME is unset or disabled (see FcConfigEnableHome).
+ FcStrCopyFilename constructs an absolute pathname from s. It
+ converts any leading '~' characters in to the value of the HOME
+ environment variable, and any relative paths are converted to
+ absolute paths using the current working directory. Sequences
+ of '/' characters are converted to a single '/', and names
+ containing the current directory '.' or parent directory '..'
+ are correctly reconstructed. Returns NULL if '~' is the leading
+ character and HOME is unset or disabled (see
+ FcConfigEnableHome).
-Version
-
- Fontconfig version 2.10.91
-
- FcStrCmp
+FcStrCmp
Name
- FcStrCmp -- compare UTF-8 strings
+ FcStrCmp -- compare UTF-8 strings
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
int FcStrCmp(const FcChar8 *s1, const FcChar8 *s2);
Returns the usual <0, 0, >0 result of comparing s1 and s2.
-Version
-
- Fontconfig version 2.10.91
-
- FcStrCmpIgnoreCase
+FcStrCmpIgnoreCase
Name
- FcStrCmpIgnoreCase -- compare UTF-8 strings ignoring case
+ FcStrCmpIgnoreCase -- compare UTF-8 strings ignoring case
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
int FcStrCmpIgnoreCase(const FcChar8 *s1, const FcChar8 *s2);
Description
- Returns the usual <0, 0, >0 result of comparing s1 and s2. This test is
- case-insensitive for all proper UTF-8 encoded strings.
-
-Version
-
- Fontconfig version 2.10.91
+ Returns the usual <0, 0, >0 result of comparing s1 and s2. This
+ test is case-insensitive for all proper UTF-8 encoded strings.
- FcStrStr
+FcStrStr
Name
- FcStrStr -- locate UTF-8 substring
+ FcStrStr -- locate UTF-8 substring
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcChar8 * FcStrStr(const FcChar8 *s1, const FcChar8 *s2);
Description
- Returns the location of s2 in s1. Returns NULL if s2 is not present in s1.
- This test will operate properly with UTF8 encoded strings.
-
-Version
+ Returns the location of s2 in s1. Returns NULL if s2 is not
+ present in s1. This test will operate properly with UTF8
+ encoded strings.
- Fontconfig version 2.10.91
-
- FcStrStrIgnoreCase
+FcStrStrIgnoreCase
Name
- FcStrStrIgnoreCase -- locate UTF-8 substring ignoring ASCII case
+ FcStrStrIgnoreCase -- locate UTF-8 substring ignoring ASCII
+ case
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
- FcChar8 * FcStrStrIgnoreCase(const FcChar8 *s1, const FcChar8 *s2);
+ FcChar8 * FcStrStrIgnoreCase(const FcChar8 *s1, const FcChar8
+ *s2);
Description
- Returns the location of s2 in s1, ignoring case. Returns NULL if s2 is not
- present in s1. This test is case-insensitive for all proper UTF-8 encoded
- strings.
+ Returns the location of s2 in s1, ignoring case. Returns NULL
+ if s2 is not present in s1. This test is case-insensitive for
+ all proper UTF-8 encoded strings.
-Version
-
- Fontconfig version 2.10.91
-
- FcStrPlus
+FcStrPlus
Name
- FcStrPlus -- concatenate two strings
+ FcStrPlus -- concatenate two strings
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcChar8 * FcStrPlus(const FcChar8 *s1, const FcChar8 *s2);
Description
- This function allocates new storage and places the concatenation of s1 and
- s2 there, returning the new string.
-
-Version
+ This function allocates new storage and places the
+ concatenation of s1 and s2 there, returning the new string.
- Fontconfig version 2.10.91
-
- FcStrFree
+FcStrFree
Name
- FcStrFree -- free a string
+ FcStrFree -- free a string
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
void FcStrFree(FcChar8 *s);
Description
- This is just a wrapper around free(3) which helps track memory usage of
- strings within the fontconfig library.
-
-Version
-
- Fontconfig version 2.10.91
+ This is just a wrapper around free(3) which helps track memory
+ usage of strings within the fontconfig library.
- FcStrDirname
+FcStrDirname
Name
- FcStrDirname -- directory part of filename
+ FcStrDirname -- directory part of filename
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcChar8 * FcStrDirname(const FcChar8 *file);
Description
- Returns the directory containing file. This is returned in newly allocated
- storage which should be freed when no longer needed.
-
-Version
+ Returns the directory containing file. This is returned in
+ newly allocated storage which should be freed when no longer
+ needed.
- Fontconfig version 2.10.91
-
- FcStrBasename
+FcStrBasename
Name
- FcStrBasename -- last component of filename
+ FcStrBasename -- last component of filename
Synopsis
- #include <fontconfig/fontconfig.h>
-
+#include <fontconfig/fontconfig.h>
FcChar8 * FcStrBasename(const FcChar8 *file);
Description
- Returns the filename of file stripped of any leading directory names. This
- is returned in newly allocated storage which should be freed when no
- longer needed.
-
-Version
-
- Fontconfig version 2.10.91
-
-References
-
- Visible links
- 1. file:///tmp/html-l8lfPm#AEN16
- 2. file:///tmp/html-l8lfPm#AEN19
- 3. file:///tmp/html-l8lfPm#AEN31
- 4. file:///tmp/html-l8lfPm#AEN102
- 5. file:///tmp/html-l8lfPm#FCINITLOADCONFIG
- 6. file:///tmp/html-l8lfPm#FCINITLOADCONFIGANDFONTS
- 7. file:///tmp/html-l8lfPm#FCINIT
- 8. file:///tmp/html-l8lfPm#FCFINI
- 9. file:///tmp/html-l8lfPm#FCGETVERSION
- 10. file:///tmp/html-l8lfPm#FCINITREINITIALIZE
- 11. file:///tmp/html-l8lfPm#FCINITBRINGUPTODATE
- 12. file:///tmp/html-l8lfPm#FCPATTERNCREATE
- 13. file:///tmp/html-l8lfPm#FCPATTERNDUPLICATE
- 14. file:///tmp/html-l8lfPm#FCPATTERNREFERENCE
- 15. file:///tmp/html-l8lfPm#FCPATTERNDESTROY
- 16. file:///tmp/html-l8lfPm#FCPATTERNEQUAL
- 17. file:///tmp/html-l8lfPm#FCPATTERNEQUALSUBSET
- 18. file:///tmp/html-l8lfPm#FCPATTERNFILTER
- 19. file:///tmp/html-l8lfPm#FCPATTERNHASH
- 20. file:///tmp/html-l8lfPm#FCPATTERNADD
- 21. file:///tmp/html-l8lfPm#FCPATTERNADDWEAK
- 22. file:///tmp/html-l8lfPm#FCPATTERNADD-TYPE
- 23. file:///tmp/html-l8lfPm#FCPATTERNGET
- 24. file:///tmp/html-l8lfPm#FCPATTERNGET-TYPE
- 25. file:///tmp/html-l8lfPm#FCPATTERNBUILD
- 26. file:///tmp/html-l8lfPm#FCPATTERNDEL
- 27. file:///tmp/html-l8lfPm#FCPATTERNREMOVE
- 28. file:///tmp/html-l8lfPm#FCPATTERNPRINT
- 29. file:///tmp/html-l8lfPm#FCDEFAULTSUBSTITUTE
- 30. file:///tmp/html-l8lfPm#FCNAMEPARSE
- 31. file:///tmp/html-l8lfPm#FCNAMEUNPARSE
- 32. file:///tmp/html-l8lfPm#FCPATTERNFORMAT
- 33. file:///tmp/html-l8lfPm#FCFONTSETCREATE
- 34. file:///tmp/html-l8lfPm#FCFONTSETDESTROY
- 35. file:///tmp/html-l8lfPm#FCFONTSETADD
- 36. file:///tmp/html-l8lfPm#FCFONTSETLIST
- 37. file:///tmp/html-l8lfPm#FCFONTSETMATCH
- 38. file:///tmp/html-l8lfPm#FCFONTSETPRINT
- 39. file:///tmp/html-l8lfPm#FCFONTSETSORT
- 40. file:///tmp/html-l8lfPm#FCFONTSETSORTDESTROY
- 41. file:///tmp/html-l8lfPm#FCOBJECTSETCREATE
- 42. file:///tmp/html-l8lfPm#FCOBJECTSETADD
- 43. file:///tmp/html-l8lfPm#FCOBJECTSETDESTROY
- 44. file:///tmp/html-l8lfPm#FCOBJECTSETBUILD
- 45. file:///tmp/html-l8lfPm#FCFREETYPECHARINDEX
- 46. file:///tmp/html-l8lfPm#FCFREETYPECHARSET
- 47. file:///tmp/html-l8lfPm#FCFREETYPECHARSETANDSPACING
- 48. file:///tmp/html-l8lfPm#FCFREETYPEQUERY
- 49. file:///tmp/html-l8lfPm#FCFREETYPEQUERYFACE
- 50. file:///tmp/html-l8lfPm#FCVALUEDESTROY
- 51. file:///tmp/html-l8lfPm#FCVALUESAVE
- 52. file:///tmp/html-l8lfPm#FCVALUEPRINT
- 53. file:///tmp/html-l8lfPm#FCVALUEEQUAL
- 54. file:///tmp/html-l8lfPm#FCCHARSETCREATE
- 55. file:///tmp/html-l8lfPm#FCCHARSETDESTROY
- 56. file:///tmp/html-l8lfPm#FCCHARSETADDCHAR
- 57. file:///tmp/html-l8lfPm#FCCHARSETDELCHAR
- 58. file:///tmp/html-l8lfPm#FCCHARSETCOPY
- 59. file:///tmp/html-l8lfPm#FCCHARSETEQUAL
- 60. file:///tmp/html-l8lfPm#FCCHARSETINTERSECT
- 61. file:///tmp/html-l8lfPm#FCCHARSETUNION
- 62. file:///tmp/html-l8lfPm#FCCHARSETSUBTRACT
- 63. file:///tmp/html-l8lfPm#FCCHARSETMERGE
- 64. file:///tmp/html-l8lfPm#FCCHARSETHASCHAR
- 65. file:///tmp/html-l8lfPm#FCCHARSETCOUNT
- 66. file:///tmp/html-l8lfPm#FCCHARSETINTERSECTCOUNT
- 67. file:///tmp/html-l8lfPm#FCCHARSETSUBTRACTCOUNT
- 68. file:///tmp/html-l8lfPm#FCCHARSETISSUBSET
- 69. file:///tmp/html-l8lfPm#FCCHARSETFIRSTPAGE
- 70. file:///tmp/html-l8lfPm#FCCHARSETNEXTPAGE
- 71. file:///tmp/html-l8lfPm#FCCHARSETCOVERAGE
- 72. file:///tmp/html-l8lfPm#FCCHARSETNEW
- 73. file:///tmp/html-l8lfPm#FCLANGSETCREATE
- 74. file:///tmp/html-l8lfPm#FCLANGSETDESTROY
- 75. file:///tmp/html-l8lfPm#FCLANGSETCOPY
- 76. file:///tmp/html-l8lfPm#FCLANGSETADD
- 77. file:///tmp/html-l8lfPm#FCLANGSETDEL
- 78. file:///tmp/html-l8lfPm#FCLANGSETUNION
- 79. file:///tmp/html-l8lfPm#FCLANGSETSUBTRACT
- 80. file:///tmp/html-l8lfPm#FCLANGSETCOMPARE
- 81. file:///tmp/html-l8lfPm#FCLANGSETCONTAINS
- 82. file:///tmp/html-l8lfPm#FCLANGSETEQUAL
- 83. file:///tmp/html-l8lfPm#FCLANGSETHASH
- 84. file:///tmp/html-l8lfPm#FCLANGSETHASLANG
- 85. file:///tmp/html-l8lfPm#FCGETDEFAULTLANGS
- 86. file:///tmp/html-l8lfPm#FCGETLANGS
- 87. file:///tmp/html-l8lfPm#FCLANGNORMALIZE
- 88. file:///tmp/html-l8lfPm#FCLANGGETCHARSET
- 89. file:///tmp/html-l8lfPm#FCMATRIXINIT
- 90. file:///tmp/html-l8lfPm#FCMATRIXCOPY
- 91. file:///tmp/html-l8lfPm#FCMATRIXEQUAL
- 92. file:///tmp/html-l8lfPm#FCMATRIXMULTIPLY
- 93. file:///tmp/html-l8lfPm#FCMATRIXROTATE
- 94. file:///tmp/html-l8lfPm#FCMATRIXSCALE
- 95. file:///tmp/html-l8lfPm#FCMATRIXSHEAR
- 96. file:///tmp/html-l8lfPm#FCCONFIGCREATE
- 97. file:///tmp/html-l8lfPm#FCCONFIGREFERENCE
- 98. file:///tmp/html-l8lfPm#FCCONFIGDESTROY
- 99. file:///tmp/html-l8lfPm#FCCONFIGSETCURRENT
- 100. file:///tmp/html-l8lfPm#FCCONFIGGETCURRENT
- 101. file:///tmp/html-l8lfPm#FCCONFIGUPTODATE
- 102. file:///tmp/html-l8lfPm#FCCONFIGHOME
- 103. file:///tmp/html-l8lfPm#FCCONFIGENABLEHOME
- 104. file:///tmp/html-l8lfPm#FCCONFIGBUILDFONTS
- 105. file:///tmp/html-l8lfPm#FCCONFIGGETCONFIGDIRS
- 106. file:///tmp/html-l8lfPm#FCCONFIGGETFONTDIRS
- 107. file:///tmp/html-l8lfPm#FCCONFIGGETCONFIGFILES
- 108. file:///tmp/html-l8lfPm#FCCONFIGGETCACHE
- 109. file:///tmp/html-l8lfPm#FCCONFIGGETCACHEDIRS
- 110. file:///tmp/html-l8lfPm#FCCONFIGGETFONTS
- 111. file:///tmp/html-l8lfPm#FCCONFIGGETBLANKS
- 112. file:///tmp/html-l8lfPm#FCCONFIGGETRESCANINTERVAL
- 113. file:///tmp/html-l8lfPm#FCCONFIGSETRESCANINTERVAL
- 114. file:///tmp/html-l8lfPm#FCCONFIGAPPFONTADDFILE
- 115. file:///tmp/html-l8lfPm#FCCONFIGAPPFONTADDDIR
- 116. file:///tmp/html-l8lfPm#FCCONFIGAPPFONTCLEAR
- 117. file:///tmp/html-l8lfPm#FCCONFIGSUBSTITUTEWITHPAT
- 118. file:///tmp/html-l8lfPm#FCCONFIGSUBSTITUTE
- 119. file:///tmp/html-l8lfPm#FCFONTMATCH
- 120. file:///tmp/html-l8lfPm#FCFONTSORT
- 121. file:///tmp/html-l8lfPm#FCFONTRENDERPREPARE
- 122. file:///tmp/html-l8lfPm#FCFONTLIST
- 123. file:///tmp/html-l8lfPm#FCCONFIGFILENAME
- 124. file:///tmp/html-l8lfPm#FCCONFIGPARSEANDLOAD
- 125. file:///tmp/html-l8lfPm#FCNAMEREGISTEROBJECTTYPES
- 126. file:///tmp/html-l8lfPm#FCNAMEUNREGISTEROBJECTTYPES
- 127. file:///tmp/html-l8lfPm#FCNAMEGETOBJECTTYPE
- 128. file:///tmp/html-l8lfPm#FCNAMEREGISTERCONSTANTS
- 129. file:///tmp/html-l8lfPm#FCNAMEUNREGISTERCONSTANTS
- 130. file:///tmp/html-l8lfPm#FCNAMEGETCONSTANT
- 131. file:///tmp/html-l8lfPm#FCNAMECONSTANT
- 132. file:///tmp/html-l8lfPm#FCBLANKSCREATE
- 133. file:///tmp/html-l8lfPm#FCBLANKSDESTROY
- 134. file:///tmp/html-l8lfPm#FCBLANKSADD
- 135. file:///tmp/html-l8lfPm#FCBLANKSISMEMBER
- 136. file:///tmp/html-l8lfPm#FCATOMICCREATE
- 137. file:///tmp/html-l8lfPm#FCATOMICLOCK
- 138. file:///tmp/html-l8lfPm#FCATOMICNEWFILE
- 139. file:///tmp/html-l8lfPm#FCATOMICORIGFILE
- 140. file:///tmp/html-l8lfPm#FCATOMICREPLACEORIG
- 141. file:///tmp/html-l8lfPm#FCATOMICDELETENEW
- 142. file:///tmp/html-l8lfPm#FCATOMICUNLOCK
- 143. file:///tmp/html-l8lfPm#FCATOMICDESTROY
- 144. file:///tmp/html-l8lfPm#FCFILESCAN
- 145. file:///tmp/html-l8lfPm#FCFILEISDIR
- 146. file:///tmp/html-l8lfPm#FCDIRSCAN
- 147. file:///tmp/html-l8lfPm#FCDIRSAVE
- 148. file:///tmp/html-l8lfPm#FCDIRCACHEUNLINK
- 149. file:///tmp/html-l8lfPm#FCDIRCACHEVALID
- 150. file:///tmp/html-l8lfPm#FCDIRCACHELOAD
- 151. file:///tmp/html-l8lfPm#FCDIRCACHEREAD
- 152. file:///tmp/html-l8lfPm#FCDIRCACHELOADFILE
- 153. file:///tmp/html-l8lfPm#FCDIRCACHEUNLOAD
- 154. file:///tmp/html-l8lfPm#FCCACHEDIR
- 155. file:///tmp/html-l8lfPm#FCCACHECOPYSET
- 156. file:///tmp/html-l8lfPm#FCCACHESUBDIR
- 157. file:///tmp/html-l8lfPm#FCCACHENUMSUBDIR
- 158. file:///tmp/html-l8lfPm#FCCACHENUMFONT
- 159. file:///tmp/html-l8lfPm#FCDIRCACHECLEAN
- 160. file:///tmp/html-l8lfPm#FCCACHECREATETAGFILE
- 161. file:///tmp/html-l8lfPm#FCSTRSETCREATE
- 162. file:///tmp/html-l8lfPm#FCSTRSETMEMBER
- 163. file:///tmp/html-l8lfPm#FCSTRSETEQUAL
- 164. file:///tmp/html-l8lfPm#FCSTRSETADD
- 165. file:///tmp/html-l8lfPm#FCSTRSETADDFILENAME
- 166. file:///tmp/html-l8lfPm#FCSTRSETDEL
- 167. file:///tmp/html-l8lfPm#FCSTRSETDESTROY
- 168. file:///tmp/html-l8lfPm#FCSTRLISTCREATE
- 169. file:///tmp/html-l8lfPm#FCSTRLISTNEXT
- 170. file:///tmp/html-l8lfPm#FCSTRLISTDONE
- 171. file:///tmp/html-l8lfPm#FCUTF8TOUCS4
- 172. file:///tmp/html-l8lfPm#FCUCS4TOUTF8
- 173. file:///tmp/html-l8lfPm#FCUTF8LEN
- 174. file:///tmp/html-l8lfPm#FCUTF16TOUCS4
- 175. file:///tmp/html-l8lfPm#FCUTF16LEN
- 176. file:///tmp/html-l8lfPm#FCISLOWER
- 177. file:///tmp/html-l8lfPm#FCISUPPER
- 178. file:///tmp/html-l8lfPm#FCTOLOWER
- 179. file:///tmp/html-l8lfPm#FCSTRCOPY
- 180. file:///tmp/html-l8lfPm#FCSTRDOWNCASE
- 181. file:///tmp/html-l8lfPm#FCSTRCOPYFILENAME
- 182. file:///tmp/html-l8lfPm#FCSTRCMP
- 183. file:///tmp/html-l8lfPm#FCSTRCMPIGNORECASE
- 184. file:///tmp/html-l8lfPm#FCSTRSTR
- 185. file:///tmp/html-l8lfPm#FCSTRSTRIGNORECASE
- 186. file:///tmp/html-l8lfPm#FCSTRPLUS
- 187. file:///tmp/html-l8lfPm#FCSTRFREE
- 188. file:///tmp/html-l8lfPm#FCSTRDIRNAME
- 189. file:///tmp/html-l8lfPm#FCSTRBASENAME
+ Returns the filename of file stripped of any leading directory
+ names. This is returned in newly allocated storage which should
+ be freed when no longer needed.
HREF="t1.html"><LINK
REL="UP"
TITLE="FcAtomic"
-HREF="x102.html#AEN3650"><LINK
+HREF="x102.html#AEN3706"><LINK
REL="PREVIOUS"
TITLE="FUNCTIONS"
HREF="x102.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3657"
+NAME="AEN3714"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3660"
+NAME="AEN3717"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3661"
+NAME="AEN3718"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3668"
+NAME="AEN3725"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3672"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3650"
+HREF="x102.html#AEN3706"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcAtomic"
-HREF="x102.html#AEN3650"><LINK
+HREF="x102.html#AEN3706"><LINK
REL="PREVIOUS"
TITLE="FcAtomicReplaceOrig"
HREF="fcatomicreplaceorig.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3767"
+NAME="AEN3814"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3770"
+NAME="AEN3817"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3771"
+NAME="AEN3818"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3778"
+NAME="AEN3825"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3781"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3650"
+HREF="x102.html#AEN3706"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcAtomic"
-HREF="x102.html#AEN3650"><LINK
+HREF="x102.html#AEN3706"><LINK
REL="PREVIOUS"
TITLE="FcAtomicUnlock"
HREF="fcatomicunlock.html"></HEAD
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3809"
+NAME="AEN3852"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3812"
+NAME="AEN3855"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3813"
+NAME="AEN3856"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3820"
+NAME="AEN3863"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3824"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3650"
+HREF="x102.html#AEN3706"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcAtomic"
-HREF="x102.html#AEN3650"><LINK
+HREF="x102.html#AEN3706"><LINK
REL="PREVIOUS"
TITLE="FcAtomicCreate"
HREF="fcatomiccreate.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3679"
+NAME="AEN3734"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3682"
+NAME="AEN3737"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3683"
+NAME="AEN3738"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3690"
+NAME="AEN3745"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3694"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3650"
+HREF="x102.html#AEN3706"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcAtomic"
-HREF="x102.html#AEN3650"><LINK
+HREF="x102.html#AEN3706"><LINK
REL="PREVIOUS"
TITLE="FcAtomicLock"
HREF="fcatomiclock.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3701"
+NAME="AEN3754"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3704"
+NAME="AEN3757"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3705"
+NAME="AEN3758"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3712"
+NAME="AEN3765"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3716"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3650"
+HREF="x102.html#AEN3706"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcAtomic"
-HREF="x102.html#AEN3650"><LINK
+HREF="x102.html#AEN3706"><LINK
REL="PREVIOUS"
TITLE="FcAtomicNewFile"
HREF="fcatomicnewfile.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3723"
+NAME="AEN3774"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3726"
+NAME="AEN3777"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3727"
+NAME="AEN3778"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3734"
+NAME="AEN3785"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3738"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3650"
+HREF="x102.html#AEN3706"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcAtomic"
-HREF="x102.html#AEN3650"><LINK
+HREF="x102.html#AEN3706"><LINK
REL="PREVIOUS"
TITLE="FcAtomicOrigFile"
HREF="fcatomicorigfile.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3745"
+NAME="AEN3794"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3748"
+NAME="AEN3797"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3749"
+NAME="AEN3798"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3756"
+NAME="AEN3805"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3760"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3650"
+HREF="x102.html#AEN3706"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcAtomic"
-HREF="x102.html#AEN3650"><LINK
+HREF="x102.html#AEN3706"><LINK
REL="PREVIOUS"
TITLE="FcAtomicDeleteNew"
HREF="fcatomicdeletenew.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3788"
+NAME="AEN3833"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3791"
+NAME="AEN3836"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3792"
+NAME="AEN3837"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3799"
+NAME="AEN3844"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3802"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3650"
+HREF="x102.html#AEN3706"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcBlanks"
-HREF="x102.html#AEN3559"><LINK
+HREF="x102.html#AEN3623"><LINK
REL="PREVIOUS"
TITLE="FcBlanksDestroy"
HREF="fcblanksdestroy.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3608"
+NAME="AEN3669"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3611"
+NAME="AEN3672"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3612"
+NAME="AEN3673"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3621"
+NAME="AEN3682"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3624"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3559"
+HREF="x102.html#AEN3623"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcBlanks"
-HREF="x102.html#AEN3559"><LINK
+HREF="x102.html#AEN3623"><LINK
REL="PREVIOUS"
TITLE="FUNCTIONS"
HREF="x102.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3566"
+NAME="AEN3631"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3569"
+NAME="AEN3634"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3570"
+NAME="AEN3635"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3577"
+NAME="AEN3642"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3580"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3559"
+HREF="x102.html#AEN3623"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcBlanks"
-HREF="x102.html#AEN3559"><LINK
+HREF="x102.html#AEN3623"><LINK
REL="PREVIOUS"
TITLE="FcBlanksCreate"
HREF="fcblankscreate.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3587"
+NAME="AEN3650"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3590"
+NAME="AEN3653"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3591"
+NAME="AEN3654"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3598"
+NAME="AEN3661"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3601"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3559"
+HREF="x102.html#AEN3623"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcBlanks"
-HREF="x102.html#AEN3559"><LINK
+HREF="x102.html#AEN3623"><LINK
REL="PREVIOUS"
TITLE="FcBlanksAdd"
HREF="fcblanksadd.html"></HEAD
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3631"
+NAME="AEN3690"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3634"
+NAME="AEN3693"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3635"
+NAME="AEN3694"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3644"
+NAME="AEN3703"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3647"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3559"
+HREF="x102.html#AEN3623"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCache routines"
-HREF="x102.html#AEN4100"><LINK
+HREF="x102.html#AEN4145"><LINK
REL="PREVIOUS"
TITLE="FcCacheDir"
HREF="fccachedir.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4129"
+NAME="AEN4173"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4133"
+NAME="AEN4177"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4134"
+NAME="AEN4178"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4141"
+NAME="AEN4185"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4145"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4100"
+HREF="x102.html#AEN4145"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCache routines"
-HREF="x102.html#AEN4100"><LINK
+HREF="x102.html#AEN4145"><LINK
REL="PREVIOUS"
TITLE="FcDirCacheClean"
HREF="fcdircacheclean.html"></HEAD
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4247"
+NAME="AEN4284"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4250"
+NAME="AEN4287"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4251"
+NAME="AEN4288"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4258"
+NAME="AEN4295"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4262"
+NAME="AEN4299"
></A
><H2
->Version</H2
+>Since</H2
><P
->Fontconfig version 2.10.91
-
- </P
+>version 2.9.91</P
></DIV
><DIV
CLASS="NAVFOOTER"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4100"
+HREF="x102.html#AEN4145"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCache routines"
-HREF="x102.html#AEN4100"><LINK
+HREF="x102.html#AEN4145"><LINK
REL="PREVIOUS"
TITLE="FUNCTIONS"
HREF="x102.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4107"
+NAME="AEN4153"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4111"
+NAME="AEN4157"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4112"
+NAME="AEN4158"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4119"
+NAME="AEN4165"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4122"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4100"
+HREF="x102.html#AEN4145"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCache routines"
-HREF="x102.html#AEN4100"><LINK
+HREF="x102.html#AEN4145"><LINK
REL="PREVIOUS"
TITLE="FcCacheNumSubdir"
HREF="fccachenumsubdir.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4201"
+NAME="AEN4239"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4205"
+NAME="AEN4243"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4206"
+NAME="AEN4244"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4213"
+NAME="AEN4251"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4216"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4100"
+HREF="x102.html#AEN4145"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCache routines"
-HREF="x102.html#AEN4100"><LINK
+HREF="x102.html#AEN4145"><LINK
REL="PREVIOUS"
TITLE="FcCacheSubdir"
HREF="fccachesubdir.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4179"
+NAME="AEN4219"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4183"
+NAME="AEN4223"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4184"
+NAME="AEN4224"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4191"
+NAME="AEN4231"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4194"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4100"
+HREF="x102.html#AEN4145"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCache routines"
-HREF="x102.html#AEN4100"><LINK
+HREF="x102.html#AEN4145"><LINK
REL="PREVIOUS"
TITLE="FcCacheCopySet"
HREF="fccachecopyset.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4152"
+NAME="AEN4194"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4156"
+NAME="AEN4198"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4157"
+NAME="AEN4199"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4166"
+NAME="AEN4208"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4172"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4100"
+HREF="x102.html#AEN4145"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCharSet"
-HREF="x102.html#AEN1616"><LINK
+HREF="x102.html#AEN1549"><LINK
REL="PREVIOUS"
TITLE="FcCharSetDestroy"
HREF="fccharsetdestroy.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1668"
+NAME="AEN1598"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1671"
+NAME="AEN1601"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1672"
+NAME="AEN1602"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1681"
+NAME="AEN1611"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1685"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1616"
+HREF="x102.html#AEN1549"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCharSet"
-HREF="x102.html#AEN1616"><LINK
+HREF="x102.html#AEN1549"><LINK
REL="PREVIOUS"
TITLE="FcCharSetDelChar"
HREF="fccharsetdelchar.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1716"
+NAME="AEN1645"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1719"
+NAME="AEN1648"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1720"
+NAME="AEN1649"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1727"
+NAME="AEN1656"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1732"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1616"
+HREF="x102.html#AEN1549"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCharSet"
-HREF="x102.html#AEN1616"><LINK
+HREF="x102.html#AEN1549"><LINK
REL="PREVIOUS"
TITLE="FcCharSetHasChar"
HREF="fccharsethaschar.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1895"
+NAME="AEN1810"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1898"
+NAME="AEN1813"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1899"
+NAME="AEN1814"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1906"
+NAME="AEN1821"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1910"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1616"
+HREF="x102.html#AEN1549"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCharSet"
-HREF="x102.html#AEN1616"><LINK
+HREF="x102.html#AEN1549"><LINK
REL="PREVIOUS"
TITLE="FcCharSetNextPage"
HREF="fccharsetnextpage.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2047"
+NAME="AEN1974"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2050"
+NAME="AEN1977"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2051"
+NAME="AEN1978"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2062"
+NAME="AEN1989"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2069"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1616"
+HREF="x102.html#AEN1549"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCharSet"
-HREF="x102.html#AEN1616"><LINK
+HREF="x102.html#AEN1549"><LINK
REL="PREVIOUS"
TITLE="FUNCTIONS"
HREF="x102.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1623"
+NAME="AEN1557"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1626"
+NAME="AEN1560"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1627"
+NAME="AEN1561"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1634"
+NAME="AEN1568"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1638"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1616"
+HREF="x102.html#AEN1549"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCharSet"
-HREF="x102.html#AEN1616"><LINK
+HREF="x102.html#AEN1549"><LINK
REL="PREVIOUS"
TITLE="FcCharSetAddChar"
HREF="fccharsetaddchar.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1692"
+NAME="AEN1620"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1695"
+NAME="AEN1623"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1696"
+NAME="AEN1624"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1705"
+NAME="AEN1633"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1709"
+NAME="AEN1637"
></A
><H2
->Version</H2
+>Since</H2
><P
->Fontconfig version 2.10.91
-
- </P
+>version 2.9.0</P
></DIV
><DIV
CLASS="NAVFOOTER"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1616"
+HREF="x102.html#AEN1549"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCharSet"
-HREF="x102.html#AEN1616"><LINK
+HREF="x102.html#AEN1549"><LINK
REL="PREVIOUS"
TITLE="FcCharSetCreate"
HREF="fccharsetcreate.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1645"
+NAME="AEN1577"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1648"
+NAME="AEN1580"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1649"
+NAME="AEN1581"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1656"
+NAME="AEN1588"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1661"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1616"
+HREF="x102.html#AEN1549"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCharSet"
-HREF="x102.html#AEN1616"><LINK
+HREF="x102.html#AEN1549"><LINK
REL="PREVIOUS"
TITLE="FcCharSetCopy"
HREF="fccharsetcopy.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1739"
+NAME="AEN1666"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1742"
+NAME="AEN1669"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1743"
+NAME="AEN1670"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1752"
+NAME="AEN1679"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1757"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1616"
+HREF="x102.html#AEN1549"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCharSet"
-HREF="x102.html#AEN1616"><LINK
+HREF="x102.html#AEN1549"><LINK
REL="PREVIOUS"
TITLE="FcCharSetIsSubset"
HREF="fccharsetissubset.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1992"
+NAME="AEN1899"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1995"
+NAME="AEN1902"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1996"
+NAME="AEN1903"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2007"
+NAME="AEN1914"
></A
><H2
>Description</H2
><P
->Builds an array of bits marking the first page of Unicode coverage of
+>Builds an array of bits in <TT
+CLASS="PARAMETER"
+><I
+>map</I
+></TT
+> marking the
+first page of Unicode coverage of <TT
+CLASS="PARAMETER"
+><I
+>a</I
+></TT
+>.
<TT
CLASS="PARAMETER"
><I
+>*next</I
+></TT
+> is set to contains the base code point
+for the next page in <TT
+CLASS="PARAMETER"
+><I
>a</I
></TT
->. Returns the base of the array. <TT
+>. Returns the base code
+point for the page, or <CODE
+CLASS="CONSTANT"
+>FC_CHARSET_DONE</CODE
+> if
+<TT
CLASS="PARAMETER"
><I
->next</I
+>a</I
></TT
-> contains the next page in the
-font.
- </P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2012"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
+> contains no pages. As an example, if
+<TT
+CLASS="FUNCTION"
+>FcCharSetFirstPage</TT
+> returns
+<TT
+CLASS="LITERAL"
+>0x300</TT
+> and fills <TT
+CLASS="PARAMETER"
+><I
+>map</I
+></TT
+> with
+<TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="LITERALLAYOUT"
+>0xffffffff 0xffffffff 0x01000008 0x44300002 0xffffd7f0 0xfffffffb 0xffff7fff 0xffff0003</PRE
+></TD
+></TR
+></TABLE
+>
+Then the page contains code points <TT
+CLASS="LITERAL"
+>0x300</TT
+> through
+<TT
+CLASS="LITERAL"
+>0x33f</TT
+> (the first 64 code points on the page)
+because <TT
+CLASS="PARAMETER"
+><I
+>map[0]</I
+></TT
+> and
+<TT
+CLASS="PARAMETER"
+><I
+>map[1]</I
+></TT
+> both have all their bits set. It also
+contains code points <TT
+CLASS="LITERAL"
+>0x343</TT
+> (<TT
+CLASS="PARAMETER"
+><I
+>0x300 + 32*2
++ (4-1)</I
+></TT
+>) and <TT
+CLASS="LITERAL"
+>0x35e</TT
+> (<TT
+CLASS="PARAMETER"
+><I
+>0x300 +
+32*2 + (31-1)</I
+></TT
+>) because <TT
+CLASS="PARAMETER"
+><I
+>map[2]</I
+></TT
+> has
+the 4th and 31st bits set. The code points represented by
+<TT
+CLASS="LITERAL"
+>map[3]</TT
+> and later are left as an excercise for the
+reader ;).
</P
></DIV
><DIV
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1616"
+HREF="x102.html#AEN1549"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCharSet"
-HREF="x102.html#AEN1616"><LINK
+HREF="x102.html#AEN1549"><LINK
REL="PREVIOUS"
TITLE="FcCharSetMerge"
HREF="fccharsetmerge.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1870"
+NAME="AEN1787"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1873"
+NAME="AEN1790"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1874"
+NAME="AEN1791"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1883"
+NAME="AEN1800"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1888"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1616"
+HREF="x102.html#AEN1549"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCharSet"
-HREF="x102.html#AEN1616"><LINK
+HREF="x102.html#AEN1549"><LINK
REL="PREVIOUS"
TITLE="FcCharSetEqual"
HREF="fccharsetequal.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1764"
+NAME="AEN1689"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1767"
+NAME="AEN1692"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1768"
+NAME="AEN1693"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1777"
+NAME="AEN1702"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1782"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1616"
+HREF="x102.html#AEN1549"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCharSet"
-HREF="x102.html#AEN1616"><LINK
+HREF="x102.html#AEN1549"><LINK
REL="PREVIOUS"
TITLE="FcCharSetCount"
HREF="fccharsetcount.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1917"
+NAME="AEN1830"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1920"
+NAME="AEN1833"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1921"
+NAME="AEN1834"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1930"
+NAME="AEN1843"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1935"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1616"
+HREF="x102.html#AEN1549"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCharSet"
-HREF="x102.html#AEN1616"><LINK
+HREF="x102.html#AEN1549"><LINK
REL="PREVIOUS"
TITLE="FcCharSetSubtractCount"
HREF="fccharsetsubtractcount.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1967"
+NAME="AEN1876"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1970"
+NAME="AEN1879"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1971"
+NAME="AEN1880"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1980"
+NAME="AEN1889"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1985"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1616"
+HREF="x102.html#AEN1549"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCharSet"
-HREF="x102.html#AEN1616"><LINK
+HREF="x102.html#AEN1549"><LINK
REL="PREVIOUS"
TITLE="FcCharSetSubtract"
HREF="fccharsetsubtract.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1839"
+NAME="AEN1758"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1842"
+NAME="AEN1761"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1843"
+NAME="AEN1762"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1854"
+NAME="AEN1773"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1863"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1616"
+HREF="x102.html#AEN1549"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCharSet"
-HREF="x102.html#AEN1616"><LINK
+HREF="x102.html#AEN1549"><LINK
REL="PREVIOUS"
TITLE="FcCharSetCoverage"
HREF="fccharsetcoverage.html"></HEAD
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2076"
+NAME="AEN2001"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2079"
+NAME="AEN2004"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2080"
+NAME="AEN2005"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2087"
+NAME="AEN2012"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2091"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1616"
+HREF="x102.html#AEN1549"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCharSet"
-HREF="x102.html#AEN1616"><LINK
+HREF="x102.html#AEN1549"><LINK
REL="PREVIOUS"
TITLE="FcCharSetFirstPage"
HREF="fccharsetfirstpage.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2019"
+NAME="AEN1942"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2022"
+NAME="AEN1945"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2023"
+NAME="AEN1946"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2034"
+NAME="AEN1957"
></A
><H2
>Description</H2
><P
->Builds an array of bits marking the Unicode coverage of <TT
+>Builds an array of bits in <TT
+CLASS="PARAMETER"
+><I
+>map</I
+></TT
+> marking the
+Unicode coverage of <TT
CLASS="PARAMETER"
><I
>a</I
></TT
-> for page
+> for page containing
<TT
CLASS="PARAMETER"
><I
>*next</I
></TT
->. Returns the base of the array. <TT
+> (see the
+<TT
+CLASS="FUNCTION"
+>FcCharSetFirstPage</TT
+> description for details).
+<TT
CLASS="PARAMETER"
><I
->next</I
+>*next</I
></TT
-> contains the next page in
-the font.
- </P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2040"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
+> is set to contains the base code point
+for the next page in <TT
+CLASS="PARAMETER"
+><I
+>a</I
+></TT
+>. Returns the base of
+code point for the page, or <CODE
+CLASS="CONSTANT"
+>FC_CHARSET_DONE</CODE
+> if
+<TT
+CLASS="PARAMETER"
+><I
+>a</I
+></TT
+> does not contain
+<TT
+CLASS="PARAMETER"
+><I
+>*next</I
+></TT
+>.
</P
></DIV
><DIV
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1616"
+HREF="x102.html#AEN1549"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCharSet"
-HREF="x102.html#AEN1616"><LINK
+HREF="x102.html#AEN1549"><LINK
REL="PREVIOUS"
TITLE="FcCharSetUnion"
HREF="fccharsetunion.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1814"
+NAME="AEN1735"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1817"
+NAME="AEN1738"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1818"
+NAME="AEN1739"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1827"
+NAME="AEN1748"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1832"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1616"
+HREF="x102.html#AEN1549"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCharSet"
-HREF="x102.html#AEN1616"><LINK
+HREF="x102.html#AEN1549"><LINK
REL="PREVIOUS"
TITLE="FcCharSetIntersectCount"
HREF="fccharsetintersectcount.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1942"
+NAME="AEN1853"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1945"
+NAME="AEN1856"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1946"
+NAME="AEN1857"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1955"
+NAME="AEN1866"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1960"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1616"
+HREF="x102.html#AEN1549"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCharSet"
-HREF="x102.html#AEN1616"><LINK
+HREF="x102.html#AEN1549"><LINK
REL="PREVIOUS"
TITLE="FcCharSetIntersect"
HREF="fccharsetintersect.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1789"
+NAME="AEN1712"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1792"
+NAME="AEN1715"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1793"
+NAME="AEN1716"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1802"
+NAME="AEN1725"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1807"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1616"
+HREF="x102.html#AEN1549"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcConfigAppFontAddFile"
HREF="fcconfigappfontaddfile.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3115"
+NAME="AEN3118"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3118"
+NAME="AEN3121"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3119"
+NAME="AEN3122"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3128"
+NAME="AEN3131"
></A
><H2
>Description</H2
><P
>Scans the specified directory for fonts, adding each one found to the
application-specific set of fonts. Returns FcFalse
-if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue.
-If <TT
+if the fonts cannot be added (due to allocation failure or no fonts found).
+Otherwise returns FcTrue. If <TT
CLASS="PARAMETER"
><I
>config</I
></TT
-> is NULL, the current configuration is used.
- </P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3132"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
+> is NULL,
+the current configuration is used.
</P
></DIV
><DIV
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcConfigSetRescanInterval"
HREF="fcconfigsetrescaninterval.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3091"
+NAME="AEN3096"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3094"
+NAME="AEN3099"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3095"
+NAME="AEN3100"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3104"
+NAME="AEN3109"
></A
><H2
>Description</H2
><P
>Adds an application-specific font to the configuration. Returns FcFalse
-if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue.
-If <TT
+if the fonts cannot be added (due to allocation failure or no fonts found).
+Otherwise returns FcTrue. If <TT
CLASS="PARAMETER"
><I
>config</I
></TT
-> is NULL, the current configuration is used.
- </P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3108"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
+> is NULL,
+the current configuration is used.
</P
></DIV
><DIV
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcConfigAppFontAddDir"
HREF="fcconfigappfontadddir.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3139"
+NAME="AEN3140"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3142"
+NAME="AEN3143"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3143"
+NAME="AEN3144"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3150"
+NAME="AEN3151"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3154"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcConfigEnableHome"
HREF="fcconfigenablehome.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2862"
+NAME="AEN2887"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2865"
+NAME="AEN2890"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2866"
+NAME="AEN2891"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2873"
+NAME="AEN2898"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2877"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FUNCTIONS"
HREF="x102.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2686"
+NAME="AEN2726"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2689"
+NAME="AEN2729"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2690"
+NAME="AEN2730"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2697"
+NAME="AEN2737"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2700"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcConfigReference"
HREF="fcconfigreference.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2730"
+NAME="AEN2766"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2733"
+NAME="AEN2769"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2734"
+NAME="AEN2770"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2741"
+NAME="AEN2777"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2744"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcConfigHome"
HREF="fcconfighome.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2839"
+NAME="AEN2866"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2842"
+NAME="AEN2869"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2843"
+NAME="AEN2870"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2850"
+NAME="AEN2877"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2855"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcFontList"
HREF="fcfontlist.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3347"
+NAME="AEN3334"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3350"
+NAME="AEN3337"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3351"
+NAME="AEN3338"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3358"
+NAME="AEN3345"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3364"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcConfigGetFonts"
HREF="fcconfiggetfonts.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3022"
+NAME="AEN3033"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3025"
+NAME="AEN3036"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3026"
+NAME="AEN3037"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3033"
+NAME="AEN3044"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3037"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcConfigGetConfigFiles"
HREF="fcconfiggetconfigfiles.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2953"
+NAME="AEN2970"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2956"
+NAME="AEN2973"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2957"
+NAME="AEN2974"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2964"
+NAME="AEN2981"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2967"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcConfigGetCache"
HREF="fcconfiggetcache.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2974"
+NAME="AEN2989"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2977"
+NAME="AEN2992"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2978"
+NAME="AEN2993"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2985"
+NAME="AEN3000"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2990"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcConfigBuildFonts"
HREF="fcconfigbuildfonts.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2884"
+NAME="AEN2907"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2887"
+NAME="AEN2910"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2888"
+NAME="AEN2911"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2895"
+NAME="AEN2918"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2900"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcConfigGetFontDirs"
HREF="fcconfiggetfontdirs.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2930"
+NAME="AEN2949"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2933"
+NAME="AEN2952"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2934"
+NAME="AEN2953"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2941"
+NAME="AEN2960"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2946"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcConfigSetCurrent"
HREF="fcconfigsetcurrent.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2773"
+NAME="AEN2806"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2776"
+NAME="AEN2809"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2777"
+NAME="AEN2810"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2784"
+NAME="AEN2817"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2787"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcConfigGetConfigDirs"
HREF="fcconfiggetconfigdirs.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2907"
+NAME="AEN2928"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2910"
+NAME="AEN2931"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2911"
+NAME="AEN2932"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2918"
+NAME="AEN2939"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2923"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcConfigGetCacheDirs"
HREF="fcconfiggetcachedirs.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2997"
+NAME="AEN3010"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3000"
+NAME="AEN3013"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3001"
+NAME="AEN3014"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3010"
+NAME="AEN3023"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3015"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcConfigGetBlanks"
HREF="fcconfiggetblanks.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3044"
+NAME="AEN3053"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3047"
+NAME="AEN3056"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3048"
+NAME="AEN3057"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3055"
+NAME="AEN3064"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3060"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML
+><HEAD
+><TITLE
+>FcConfigGetSysRoot</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
+REL="HOME"
+HREF="t1.html"><LINK
+REL="UP"
+TITLE="FcConfig"
+HREF="x102.html#AEN2718"><LINK
+REL="PREVIOUS"
+TITLE="FcConfigParseAndLoad"
+HREF="fcconfigparseandload.html"><LINK
+REL="NEXT"
+TITLE="FcConfigSetSysRoot"
+HREF="fcconfigsetsysroot.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+SUMMARY="Header navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+></TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="fcconfigparseandload.html"
+ACCESSKEY="P"
+><<< Previous</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="fcconfigsetsysroot.html"
+ACCESSKEY="N"
+>Next >>></A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><H1
+><A
+NAME="FCCONFIGGETSYSROOT"
+></A
+>FcConfigGetSysRoot</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN3379"
+></A
+><H2
+>Name</H2
+>FcConfigGetSysRoot -- Obtain the system root directory</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN3382"
+></A
+><H2
+>Synopsis</H2
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3383"
+></A
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="FUNCSYNOPSISINFO"
+>#include <fontconfig/fontconfig.h>
+ </PRE
+></TD
+></TR
+></TABLE
+><P
+><CODE
+><CODE
+CLASS="FUNCDEF"
+>const FcChar8 * <TT
+CLASS="FUNCTION"
+>FcConfigGetSysRoot</TT
+></CODE
+>(const FcConfig *<TT
+CLASS="PARAMETER"
+><I
+>config</I
+></TT
+>);</CODE
+></P
+><P
+></P
+></DIV
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN3390"
+></A
+><H2
+>Description</H2
+><P
+>Obtrains the system root directory in 'config' if available.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN3393"
+></A
+><H2
+>Since</H2
+><P
+>version 2.10.92</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="fcconfigparseandload.html"
+ACCESSKEY="P"
+><<< Previous</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="t1.html"
+ACCESSKEY="H"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="fcconfigsetsysroot.html"
+ACCESSKEY="N"
+>Next >>></A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>FcConfigParseAndLoad</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="x102.html#AEN2718"
+ACCESSKEY="U"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>FcConfigSetSysRoot</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcConfigUptoDate"
HREF="fcconfiguptodate.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2817"
+NAME="AEN2846"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2820"
+NAME="AEN2849"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2821"
+NAME="AEN2850"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2828"
+NAME="AEN2857"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2832"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcConfigFilename"
-HREF="fcconfigfilename.html"></HEAD
+HREF="fcconfigfilename.html"><LINK
+REL="NEXT"
+TITLE="FcConfigGetSysRoot"
+HREF="fcconfiggetsysroot.html"></HEAD
><BODY
CLASS="REFENTRY"
BGCOLOR="#FFFFFF"
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
-> </TD
+><A
+HREF="fcconfiggetsysroot.html"
+ACCESSKEY="N"
+>Next >>></A
+></TD
></TR
></TABLE
><HR
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3371"
+NAME="AEN3356"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3374"
+NAME="AEN3359"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3375"
+NAME="AEN3360"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3386"
+NAME="AEN3371"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3389"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="33%"
ALIGN="right"
VALIGN="top"
-> </TD
+><A
+HREF="fcconfiggetsysroot.html"
+ACCESSKEY="N"
+>Next >>></A
+></TD
></TR
><TR
><TD
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
-> </TD
+>FcConfigGetSysRoot</TD
></TR
></TABLE
></DIV
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcConfigCreate"
HREF="fcconfigcreate.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2707"
+NAME="AEN2745"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2710"
+NAME="AEN2748"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2711"
+NAME="AEN2749"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2718"
+NAME="AEN2756"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2723"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcConfigDestroy"
HREF="fcconfigdestroy.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2751"
+NAME="AEN2785"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2754"
+NAME="AEN2788"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2755"
+NAME="AEN2789"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2762"
+NAME="AEN2796"
></A
><H2
>Description</H2
>config</I
></TT
>. Implicitly calls
-FcConfigBuildFonts if necessary, returning FcFalse if that call fails.
- </P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2766"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
+FcConfigBuildFonts if necessary, and FcConfigReference() to inrease the reference count
+in <TT
+CLASS="PARAMETER"
+><I
+>config</I
+></TT
+> since 2.12.0, returning FcFalse if that call fails.
</P
></DIV
><DIV
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcConfigGetRescanInterval"
HREF="fcconfiggetrescaninterval.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3067"
+NAME="AEN3074"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3070"
+NAME="AEN3077"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3071"
+NAME="AEN3078"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3080"
+NAME="AEN3087"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3084"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML
+><HEAD
+><TITLE
+>FcConfigSetSysRoot</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
+REL="HOME"
+HREF="t1.html"><LINK
+REL="UP"
+TITLE="FcConfig"
+HREF="x102.html#AEN2718"><LINK
+REL="PREVIOUS"
+TITLE="FcConfigGetSysRoot"
+HREF="fcconfiggetsysroot.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+SUMMARY="Header navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+></TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="fcconfiggetsysroot.html"
+ACCESSKEY="P"
+><<< Previous</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+> </TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><H1
+><A
+NAME="FCCONFIGSETSYSROOT"
+></A
+>FcConfigSetSysRoot</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN3401"
+></A
+><H2
+>Name</H2
+>FcConfigSetSysRoot -- Set the system root directory</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN3404"
+></A
+><H2
+>Synopsis</H2
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3405"
+></A
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="FUNCSYNOPSISINFO"
+>#include <fontconfig/fontconfig.h>
+ </PRE
+></TD
+></TR
+></TABLE
+><P
+><CODE
+><CODE
+CLASS="FUNCDEF"
+>void <TT
+CLASS="FUNCTION"
+>FcConfigSetSysRoot</TT
+></CODE
+>(FcConfig *<TT
+CLASS="PARAMETER"
+><I
+>config</I
+></TT
+>, const FcChar8 *<TT
+CLASS="PARAMETER"
+><I
+>sysroot</I
+></TT
+>);</CODE
+></P
+><P
+></P
+></DIV
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN3414"
+></A
+><H2
+>Description</H2
+><P
+>Set 'sysroot' as the system root directory. fontconfig prepend 'sysroot'
+to the cache directories in order to allow people to generate caches at
+the build time. Note that this causes changing current config. i.e.
+this function calls FcConfigSetCurrent() internally.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN3417"
+></A
+><H2
+>Since</H2
+><P
+>version 2.10.92</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="fcconfiggetsysroot.html"
+ACCESSKEY="P"
+><<< Previous</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="t1.html"
+ACCESSKEY="H"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+> </TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>FcConfigGetSysRoot</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="x102.html#AEN2718"
+ACCESSKEY="U"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+> </TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcConfigSubstituteWithPat"
HREF="fcconfigsubstitutewithpat.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3191"
+NAME="AEN3188"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3194"
+NAME="AEN3191"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3195"
+NAME="AEN3192"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3206"
+NAME="AEN3203"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3210"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcConfigAppFontClear"
HREF="fcconfigappfontclear.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3161"
+NAME="AEN3160"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3164"
+NAME="AEN3163"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3165"
+NAME="AEN3164"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3178"
+NAME="AEN3177"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3184"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcConfigGetCurrent"
HREF="fcconfiggetcurrent.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2794"
+NAME="AEN2825"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2797"
+NAME="AEN2828"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2798"
+NAME="AEN2829"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2805"
+NAME="AEN2836"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2810"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcPattern"
-HREF="x102.html#AEN255"><LINK
+HREF="x102.html#AEN241"><LINK
REL="PREVIOUS"
TITLE="FcPatternPrint"
HREF="fcpatternprint.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN859"
+NAME="AEN840"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN862"
+NAME="AEN843"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN863"
+NAME="AEN844"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN870"
+NAME="AEN851"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN880"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN255"
+HREF="x102.html#AEN241"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcCache routines"
-HREF="x102.html#AEN4100"><LINK
+HREF="x102.html#AEN4145"><LINK
REL="PREVIOUS"
TITLE="FcCacheNumFont"
HREF="fccachenumfont.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4223"
+NAME="AEN4259"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4227"
+NAME="AEN4263"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4228"
+NAME="AEN4264"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4237"
+NAME="AEN4273"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4240"
+NAME="AEN4276"
></A
><H2
->Version</H2
+>Since</H2
><P
->Fontconfig version 2.10.91
-
- </P
+>version 2.9.91</P
></DIV
><DIV
CLASS="NAVFOOTER"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4100"
+HREF="x102.html#AEN4145"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="File and Directory routines"
-HREF="x102.html#AEN3827"><LINK
+HREF="x102.html#AEN3867"><LINK
REL="PREVIOUS"
TITLE="FcDirCacheValid"
HREF="fcdircachevalid.html"><LINK
REL="NEXT"
-TITLE="FcDirCacheRead"
-HREF="fcdircacheread.html"></HEAD
+TITLE="FcDirCacheRescan"
+HREF="fcdircacherescan.html"></HEAD
><BODY
CLASS="REFENTRY"
BGCOLOR="#FFFFFF"
ALIGN="right"
VALIGN="bottom"
><A
-HREF="fcdircacheread.html"
+HREF="fcdircacherescan.html"
ACCESSKEY="N"
>Next >>></A
></TD
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4003"
+NAME="AEN4032"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4006"
+NAME="AEN4035"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4007"
+NAME="AEN4036"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4018"
+NAME="AEN4047"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4023"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="right"
VALIGN="top"
><A
-HREF="fcdircacheread.html"
+HREF="fcdircacherescan.html"
ACCESSKEY="N"
>Next >>></A
></TD
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3827"
+HREF="x102.html#AEN3867"
ACCESSKEY="U"
>Up</A
></TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
->FcDirCacheRead</TD
+>FcDirCacheRescan</TD
></TR
></TABLE
></DIV
HREF="t1.html"><LINK
REL="UP"
TITLE="File and Directory routines"
-HREF="x102.html#AEN3827"><LINK
+HREF="x102.html#AEN3867"><LINK
REL="PREVIOUS"
TITLE="FcDirCacheRead"
HREF="fcdircacheread.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4057"
+NAME="AEN4107"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4060"
+NAME="AEN4110"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4061"
+NAME="AEN4111"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4070"
+NAME="AEN4120"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4075"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3827"
+HREF="x102.html#AEN3867"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="File and Directory routines"
-HREF="x102.html#AEN3827"><LINK
+HREF="x102.html#AEN3867"><LINK
REL="PREVIOUS"
-TITLE="FcDirCacheLoad"
-HREF="fcdircacheload.html"><LINK
+TITLE="FcDirCacheRescan"
+HREF="fcdircacherescan.html"><LINK
REL="NEXT"
TITLE="FcDirCacheLoadFile"
HREF="fcdircacheloadfile.html"></HEAD
ALIGN="left"
VALIGN="bottom"
><A
-HREF="fcdircacheload.html"
+HREF="fcdircacherescan.html"
ACCESSKEY="P"
><<< Previous</A
></TD
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4030"
+NAME="AEN4082"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4033"
+NAME="AEN4085"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4034"
+NAME="AEN4086"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4045"
+NAME="AEN4097"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4050"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="left"
VALIGN="top"
><A
-HREF="fcdircacheload.html"
+HREF="fcdircacherescan.html"
ACCESSKEY="P"
><<< Previous</A
></TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
->FcDirCacheLoad</TD
+>FcDirCacheRescan</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3827"
+HREF="x102.html#AEN3867"
ACCESSKEY="U"
>Up</A
></TD
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML
+><HEAD
+><TITLE
+>FcDirCacheRescan</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
+REL="HOME"
+HREF="t1.html"><LINK
+REL="UP"
+TITLE="File and Directory routines"
+HREF="x102.html#AEN3867"><LINK
+REL="PREVIOUS"
+TITLE="FcDirCacheLoad"
+HREF="fcdircacheload.html"><LINK
+REL="NEXT"
+TITLE="FcDirCacheRead"
+HREF="fcdircacheread.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+SUMMARY="Header navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+></TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="fcdircacheload.html"
+ACCESSKEY="P"
+><<< Previous</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="fcdircacheread.html"
+ACCESSKEY="N"
+>Next >>></A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><H1
+><A
+NAME="FCDIRCACHERESCAN"
+></A
+>FcDirCacheRescan</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN4057"
+></A
+><H2
+>Name</H2
+>FcDirCacheRescan -- Re-scan a directory cache</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN4060"
+></A
+><H2
+>Synopsis</H2
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4061"
+></A
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="FUNCSYNOPSISINFO"
+>#include <fontconfig/fontconfig.h>
+ </PRE
+></TD
+></TR
+></TABLE
+><P
+><CODE
+><CODE
+CLASS="FUNCDEF"
+>FcCache * <TT
+CLASS="FUNCTION"
+>FcDirCacheRescan</TT
+></CODE
+>(const FcChar8 *<TT
+CLASS="PARAMETER"
+><I
+>dir</I
+></TT
+>, FcConfig *<TT
+CLASS="PARAMETER"
+><I
+>config</I
+></TT
+>);</CODE
+></P
+><P
+></P
+></DIV
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN4070"
+></A
+><H2
+>Description</H2
+><P
+>Re-scan directories only at <TT
+CLASS="PARAMETER"
+><I
+>dir</I
+></TT
+> and update the cache.
+returns NULL if failed.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN4074"
+></A
+><H2
+>Since</H2
+><P
+>version 2.11.1</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="fcdircacheload.html"
+ACCESSKEY="P"
+><<< Previous</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="t1.html"
+ACCESSKEY="H"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="fcdircacheread.html"
+ACCESSKEY="N"
+>Next >>></A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>FcDirCacheLoad</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="x102.html#AEN3867"
+ACCESSKEY="U"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>FcDirCacheRead</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
HREF="t1.html"><LINK
REL="UP"
TITLE="File and Directory routines"
-HREF="x102.html#AEN3827"><LINK
+HREF="x102.html#AEN3867"><LINK
REL="PREVIOUS"
TITLE="FcDirSave"
HREF="fcdirsave.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3955"
+NAME="AEN3988"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3959"
+NAME="AEN3992"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3960"
+NAME="AEN3993"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3969"
+NAME="AEN4002"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3974"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3827"
+HREF="x102.html#AEN3867"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="File and Directory routines"
-HREF="x102.html#AEN3827"><LINK
+HREF="x102.html#AEN3867"><LINK
REL="PREVIOUS"
TITLE="FcDirCacheLoadFile"
HREF="fcdircacheloadfile.html"></HEAD
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4082"
+NAME="AEN4130"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4085"
+NAME="AEN4133"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4086"
+NAME="AEN4134"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4093"
+NAME="AEN4141"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4097"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3827"
+HREF="x102.html#AEN3867"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="File and Directory routines"
-HREF="x102.html#AEN3827"><LINK
+HREF="x102.html#AEN3867"><LINK
REL="PREVIOUS"
TITLE="FcDirCacheUnlink"
HREF="fcdircacheunlink.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3981"
+NAME="AEN4012"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3984"
+NAME="AEN4015"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3985"
+NAME="AEN4016"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3992"
+NAME="AEN4023"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3996"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3827"
+HREF="x102.html#AEN3867"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="File and Directory routines"
-HREF="x102.html#AEN3827"><LINK
+HREF="x102.html#AEN3867"><LINK
REL="PREVIOUS"
TITLE="FcDirScan"
HREF="fcdirscan.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3927"
+NAME="AEN3962"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3930"
+NAME="AEN3965"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3931"
+NAME="AEN3966"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3942"
+NAME="AEN3977"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3948"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3827"
+HREF="x102.html#AEN3867"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="File and Directory routines"
-HREF="x102.html#AEN3827"><LINK
+HREF="x102.html#AEN3867"><LINK
REL="PREVIOUS"
TITLE="FcFileIsDir"
HREF="fcfileisdir.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3892"
+NAME="AEN3929"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3895"
+NAME="AEN3932"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3896"
+NAME="AEN3933"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3913"
+NAME="AEN3950"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3920"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3827"
+HREF="x102.html#AEN3867"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="File and Directory routines"
-HREF="x102.html#AEN3827"><LINK
+HREF="x102.html#AEN3867"><LINK
REL="PREVIOUS"
TITLE="FcFileScan"
HREF="fcfilescan.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3870"
+NAME="AEN3909"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3873"
+NAME="AEN3912"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3874"
+NAME="AEN3913"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3881"
+NAME="AEN3920"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3885"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3827"
+HREF="x102.html#AEN3867"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="File and Directory routines"
-HREF="x102.html#AEN3827"><LINK
+HREF="x102.html#AEN3867"><LINK
REL="PREVIOUS"
TITLE="FUNCTIONS"
HREF="x102.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3834"
+NAME="AEN3875"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3837"
+NAME="AEN3878"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3838"
+NAME="AEN3879"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3855"
+NAME="AEN3896"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3863"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3827"
+HREF="x102.html#AEN3867"
ACCESSKEY="U"
>Up</A
></TD
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN175"
+NAME="AEN170"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN178"
+NAME="AEN173"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN179"
+NAME="AEN174"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN186"
+NAME="AEN181"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN189"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcFontRenderPrepare"
HREF="fcfontrenderprepare.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3319"
+NAME="AEN3308"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3322"
+NAME="AEN3311"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3323"
+NAME="AEN3312"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3334"
+NAME="AEN3323"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3340"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcConfigSubstitute"
HREF="fcconfigsubstitute.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3217"
+NAME="AEN3212"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3220"
+NAME="AEN3215"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3221"
+NAME="AEN3216"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3232"
+NAME="AEN3227"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3242"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcFontSort"
HREF="fcfontsort.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3288"
+NAME="AEN3279"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3291"
+NAME="AEN3282"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3292"
+NAME="AEN3283"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3303"
+NAME="AEN3294"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3312"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcFontSet"
-HREF="x102.html#AEN1056"><LINK
+HREF="x102.html#AEN1031"><LINK
REL="PREVIOUS"
TITLE="FcFontSetDestroy"
HREF="fcfontsetdestroy.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1105"
+NAME="AEN1077"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1108"
+NAME="AEN1080"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1109"
+NAME="AEN1081"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1118"
+NAME="AEN1090"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1121"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1056"
+HREF="x102.html#AEN1031"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcFontSet"
-HREF="x102.html#AEN1056"><LINK
+HREF="x102.html#AEN1031"><LINK
REL="PREVIOUS"
TITLE="FUNCTIONS"
HREF="x102.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1063"
+NAME="AEN1039"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1066"
+NAME="AEN1042"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1067"
+NAME="AEN1043"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1074"
+NAME="AEN1050"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1077"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1056"
+HREF="x102.html#AEN1031"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcFontSet"
-HREF="x102.html#AEN1056"><LINK
+HREF="x102.html#AEN1031"><LINK
REL="PREVIOUS"
TITLE="FcFontSetCreate"
HREF="fcfontsetcreate.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1084"
+NAME="AEN1058"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1087"
+NAME="AEN1061"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1088"
+NAME="AEN1062"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1095"
+NAME="AEN1069"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1098"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1056"
+HREF="x102.html#AEN1031"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcFontSet"
-HREF="x102.html#AEN1056"><LINK
+HREF="x102.html#AEN1031"><LINK
REL="PREVIOUS"
TITLE="FcFontSetAdd"
HREF="fcfontsetadd.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1128"
+NAME="AEN1098"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1131"
+NAME="AEN1101"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1132"
+NAME="AEN1102"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1147"
+NAME="AEN1117"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1154"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1056"
+HREF="x102.html#AEN1031"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcFontSet"
-HREF="x102.html#AEN1056"><LINK
+HREF="x102.html#AEN1031"><LINK
REL="PREVIOUS"
TITLE="FcFontSetList"
HREF="fcfontsetlist.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1161"
+NAME="AEN1129"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1164"
+NAME="AEN1132"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1165"
+NAME="AEN1133"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1180"
+NAME="AEN1148"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1190"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1056"
+HREF="x102.html#AEN1031"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcFontSet"
-HREF="x102.html#AEN1056"><LINK
+HREF="x102.html#AEN1031"><LINK
REL="PREVIOUS"
TITLE="FcFontSetMatch"
HREF="fcfontsetmatch.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1197"
+NAME="AEN1163"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1200"
+NAME="AEN1166"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1201"
+NAME="AEN1167"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1208"
+NAME="AEN1174"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1212"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1056"
+HREF="x102.html#AEN1031"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcFontSet"
-HREF="x102.html#AEN1056"><LINK
+HREF="x102.html#AEN1031"><LINK
REL="PREVIOUS"
TITLE="FcFontSetPrint"
HREF="fcfontsetprint.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1219"
+NAME="AEN1183"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1222"
+NAME="AEN1186"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1223"
+NAME="AEN1187"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1242"
+NAME="AEN1206"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1255"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1056"
+HREF="x102.html#AEN1031"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcFontSet"
-HREF="x102.html#AEN1056"><LINK
+HREF="x102.html#AEN1031"><LINK
REL="PREVIOUS"
TITLE="FcFontSetSort"
HREF="fcfontsetsort.html"></HEAD
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1262"
+NAME="AEN1224"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1265"
+NAME="AEN1227"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1266"
+NAME="AEN1228"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1273"
+NAME="AEN1235"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1280"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1056"
+HREF="x102.html#AEN1031"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConfig"
-HREF="x102.html#AEN2679"><LINK
+HREF="x102.html#AEN2718"><LINK
REL="PREVIOUS"
TITLE="FcFontMatch"
HREF="fcfontmatch.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3249"
+NAME="AEN3242"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3252"
+NAME="AEN3245"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3253"
+NAME="AEN3246"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3268"
+NAME="AEN3261"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3281"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2679"
+HREF="x102.html#AEN2718"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FreeType specific functions"
-HREF="x102.html#AEN1393"><LINK
+HREF="x102.html#AEN1344"><LINK
REL="PREVIOUS"
TITLE="FUNCTIONS"
HREF="x102.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1400"
+NAME="AEN1352"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1403"
+NAME="AEN1355"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1404"
+NAME="AEN1356"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1413"
+NAME="AEN1365"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1416"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1393"
+HREF="x102.html#AEN1344"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FreeType specific functions"
-HREF="x102.html#AEN1393"><LINK
+HREF="x102.html#AEN1344"><LINK
REL="PREVIOUS"
TITLE="FcFreeTypeCharIndex"
HREF="fcfreetypecharindex.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1423"
+NAME="AEN1373"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1426"
+NAME="AEN1376"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1427"
+NAME="AEN1377"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1436"
+NAME="AEN1386"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1439"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1393"
+HREF="x102.html#AEN1344"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FreeType specific functions"
-HREF="x102.html#AEN1393"><LINK
+HREF="x102.html#AEN1344"><LINK
REL="PREVIOUS"
TITLE="FcFreeTypeCharSet"
HREF="fcfreetypecharset.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1446"
+NAME="AEN1394"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1449"
+NAME="AEN1397"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1450"
+NAME="AEN1398"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1461"
+NAME="AEN1409"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1465"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1393"
+HREF="x102.html#AEN1344"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FreeType specific functions"
-HREF="x102.html#AEN1393"><LINK
+HREF="x102.html#AEN1344"><LINK
REL="PREVIOUS"
TITLE="FcFreeTypeCharSetAndSpacing"
HREF="fcfreetypecharsetandspacing.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1472"
+NAME="AEN1418"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1475"
+NAME="AEN1421"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1476"
+NAME="AEN1422"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1489"
+NAME="AEN1435"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1492"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1393"
+HREF="x102.html#AEN1344"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FreeType specific functions"
-HREF="x102.html#AEN1393"><LINK
+HREF="x102.html#AEN1344"><LINK
REL="PREVIOUS"
TITLE="FcFreeTypeQuery"
HREF="fcfreetypequery.html"></HEAD
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1499"
+NAME="AEN1443"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1502"
+NAME="AEN1446"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1503"
+NAME="AEN1447"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1516"
+NAME="AEN1460"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1519"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1393"
+HREF="x102.html#AEN1344"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcLangSet"
-HREF="x102.html#AEN2094"><LINK
+HREF="x102.html#AEN2016"><LINK
REL="PREVIOUS"
TITLE="FcLangSetHasLang"
HREF="fclangsethaslang.html"><LINK
REL="NEXT"
-TITLE="FcGetLangs"
-HREF="fcgetlangs.html"></HEAD
+TITLE="FcLangSetGetLangs"
+HREF="fclangsetgetlangs.html"></HEAD
><BODY
CLASS="REFENTRY"
BGCOLOR="#FFFFFF"
ALIGN="right"
VALIGN="bottom"
><A
-HREF="fcgetlangs.html"
+HREF="fclangsetgetlangs.html"
ACCESSKEY="N"
>Next >>></A
></TD
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2404"
+NAME="AEN2312"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2407"
+NAME="AEN2315"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2408"
+NAME="AEN2316"
></A
><TABLE
BORDER="0"
>(void<TT
CLASS="PARAMETER"
><I
->ls</I
+></I
></TT
>);</CODE
></P
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2415"
+NAME="AEN2323"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2418"
+NAME="AEN2326"
></A
><H2
->Version</H2
+>Since</H2
><P
->Fontconfig version 2.10.91
-
- </P
+>version 2.9.91</P
></DIV
><DIV
CLASS="NAVFOOTER"
ALIGN="right"
VALIGN="top"
><A
-HREF="fcgetlangs.html"
+HREF="fclangsetgetlangs.html"
ACCESSKEY="N"
>Next >>></A
></TD
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2094"
+HREF="x102.html#AEN2016"
ACCESSKEY="U"
>Up</A
></TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
->FcGetLangs</TD
+>FcLangSetGetLangs</TD
></TR
></TABLE
></DIV
HREF="t1.html"><LINK
REL="UP"
TITLE="FcLangSet"
-HREF="x102.html#AEN2094"><LINK
+HREF="x102.html#AEN2016"><LINK
REL="PREVIOUS"
-TITLE="FcGetDefaultLangs"
-HREF="fcgetdefaultlangs.html"><LINK
+TITLE="FcLangSetGetLangs"
+HREF="fclangsetgetlangs.html"><LINK
REL="NEXT"
TITLE="FcLangNormalize"
HREF="fclangnormalize.html"></HEAD
ALIGN="left"
VALIGN="bottom"
><A
-HREF="fcgetdefaultlangs.html"
+HREF="fclangsetgetlangs.html"
ACCESSKEY="P"
><<< Previous</A
></TD
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2425"
+NAME="AEN2354"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2428"
+NAME="AEN2357"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2429"
+NAME="AEN2358"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2436"
+NAME="AEN2365"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2439"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="left"
VALIGN="top"
><A
-HREF="fcgetdefaultlangs.html"
+HREF="fclangsetgetlangs.html"
ACCESSKEY="P"
><<< Previous</A
></TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
->FcGetDefaultLangs</TD
+>FcLangSetGetLangs</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2094"
+HREF="x102.html#AEN2016"
ACCESSKEY="U"
>Up</A
></TD
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN196"
+NAME="AEN189"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN199"
+NAME="AEN192"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN200"
+NAME="AEN193"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN207"
+NAME="AEN200"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN210"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN154"
+NAME="AEN151"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN157"
+NAME="AEN154"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN158"
+NAME="AEN155"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN165"
+NAME="AEN162"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN168"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN238"
+NAME="AEN227"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN241"
+NAME="AEN230"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN242"
+NAME="AEN231"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN249"
+NAME="AEN238"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN252"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN112"
+NAME="AEN113"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN115"
+NAME="AEN116"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN116"
+NAME="AEN117"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN123"
+NAME="AEN124"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN126"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN133"
+NAME="AEN132"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN136"
+NAME="AEN135"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN137"
+NAME="AEN136"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN144"
+NAME="AEN143"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN147"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN217"
+NAME="AEN208"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN220"
+NAME="AEN211"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN221"
+NAME="AEN212"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN228"
+NAME="AEN219"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN231"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
HREF="t1.html"><LINK
REL="UP"
TITLE="String utilities"
-HREF="x102.html#AEN4503"><LINK
+HREF="x102.html#AEN4543"><LINK
REL="PREVIOUS"
TITLE="FcUtf16Len"
HREF="fcutf16len.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4665"
+NAME="AEN4696"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4668"
+NAME="AEN4699"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4669"
+NAME="AEN4700"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4676"
+NAME="AEN4707"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4680"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4503"
+HREF="x102.html#AEN4543"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="String utilities"
-HREF="x102.html#AEN4503"><LINK
+HREF="x102.html#AEN4543"><LINK
REL="PREVIOUS"
TITLE="FcIsLower"
HREF="fcislower.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4687"
+NAME="AEN4716"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4690"
+NAME="AEN4719"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4691"
+NAME="AEN4720"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4698"
+NAME="AEN4727"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4702"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4503"
+HREF="x102.html#AEN4543"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcLangSet"
-HREF="x102.html#AEN2094"><LINK
+HREF="x102.html#AEN2016"><LINK
REL="PREVIOUS"
TITLE="FcLangNormalize"
HREF="fclangnormalize.html"></HEAD
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2468"
+NAME="AEN2396"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2471"
+NAME="AEN2399"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2472"
+NAME="AEN2400"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2479"
+NAME="AEN2407"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2482"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2094"
+HREF="x102.html#AEN2016"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcLangSet"
-HREF="x102.html#AEN2094"><LINK
+HREF="x102.html#AEN2016"><LINK
REL="PREVIOUS"
TITLE="FcGetLangs"
HREF="fcgetlangs.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2446"
+NAME="AEN2373"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2449"
+NAME="AEN2376"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2450"
+NAME="AEN2377"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2457"
+NAME="AEN2384"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2461"
+NAME="AEN2388"
></A
><H2
->Version</H2
+>Since</H2
><P
->Fontconfig version 2.10.91
-
- </P
+>version 2.10.91</P
></DIV
><DIV
CLASS="NAVFOOTER"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2094"
+HREF="x102.html#AEN2016"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcLangSet"
-HREF="x102.html#AEN2094"><LINK
+HREF="x102.html#AEN2016"><LINK
REL="PREVIOUS"
TITLE="FcLangSetCopy"
HREF="fclangsetcopy.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2168"
+NAME="AEN2085"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2171"
+NAME="AEN2088"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2172"
+NAME="AEN2089"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2181"
+NAME="AEN2098"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2187"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2094"
+HREF="x102.html#AEN2016"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcLangSet"
-HREF="x102.html#AEN2094"><LINK
+HREF="x102.html#AEN2016"><LINK
REL="PREVIOUS"
TITLE="FcLangSetSubtract"
HREF="fclangsetsubtract.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2270"
+NAME="AEN2188"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2273"
+NAME="AEN2191"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2274"
+NAME="AEN2192"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2283"
+NAME="AEN2201"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2289"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2094"
+HREF="x102.html#AEN2016"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcLangSet"
-HREF="x102.html#AEN2094"><LINK
+HREF="x102.html#AEN2016"><LINK
REL="PREVIOUS"
TITLE="FcLangSetCompare"
HREF="fclangsetcompare.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2296"
+NAME="AEN2212"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2299"
+NAME="AEN2215"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2300"
+NAME="AEN2216"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2309"
+NAME="AEN2225"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2319"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2094"
+HREF="x102.html#AEN2016"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcLangSet"
-HREF="x102.html#AEN2094"><LINK
+HREF="x102.html#AEN2016"><LINK
REL="PREVIOUS"
TITLE="FcLangSetDestroy"
HREF="fclangsetdestroy.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2145"
+NAME="AEN2064"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2148"
+NAME="AEN2067"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2149"
+NAME="AEN2068"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2156"
+NAME="AEN2075"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2161"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2094"
+HREF="x102.html#AEN2016"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcLangSet"
-HREF="x102.html#AEN2094"><LINK
+HREF="x102.html#AEN2016"><LINK
REL="PREVIOUS"
TITLE="FUNCTIONS"
HREF="x102.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2101"
+NAME="AEN2024"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2104"
+NAME="AEN2027"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2105"
+NAME="AEN2028"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2112"
+NAME="AEN2035"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2116"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2094"
+HREF="x102.html#AEN2016"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcLangSet"
-HREF="x102.html#AEN2094"><LINK
+HREF="x102.html#AEN2016"><LINK
REL="PREVIOUS"
TITLE="FcLangSetAdd"
HREF="fclangsetadd.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2194"
+NAME="AEN2109"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2197"
+NAME="AEN2112"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2198"
+NAME="AEN2113"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2207"
+NAME="AEN2122"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2213"
+NAME="AEN2128"
></A
><H2
->Version</H2
+>Since</H2
><P
->Fontconfig version 2.10.91
-
- </P
+>version 2.9.0</P
></DIV
><DIV
CLASS="NAVFOOTER"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2094"
+HREF="x102.html#AEN2016"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcLangSet"
-HREF="x102.html#AEN2094"><LINK
+HREF="x102.html#AEN2016"><LINK
REL="PREVIOUS"
TITLE="FcLangSetCreate"
HREF="fclangsetcreate.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2123"
+NAME="AEN2044"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2126"
+NAME="AEN2047"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2127"
+NAME="AEN2048"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2134"
+NAME="AEN2055"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2138"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2094"
+HREF="x102.html#AEN2016"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcLangSet"
-HREF="x102.html#AEN2094"><LINK
+HREF="x102.html#AEN2016"><LINK
REL="PREVIOUS"
TITLE="FcLangSetContains"
HREF="fclangsetcontains.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2326"
+NAME="AEN2240"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2329"
+NAME="AEN2243"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2330"
+NAME="AEN2244"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2339"
+NAME="AEN2253"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2344"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2094"
+HREF="x102.html#AEN2016"
ACCESSKEY="U"
>Up</A
></TD
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML
+><HEAD
+><TITLE
+>FcLangSetGetLangs</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
+REL="HOME"
+HREF="t1.html"><LINK
+REL="UP"
+TITLE="FcLangSet"
+HREF="x102.html#AEN2016"><LINK
+REL="PREVIOUS"
+TITLE="FcGetDefaultLangs"
+HREF="fcgetdefaultlangs.html"><LINK
+REL="NEXT"
+TITLE="FcGetLangs"
+HREF="fcgetlangs.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+SUMMARY="Header navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+></TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="fcgetdefaultlangs.html"
+ACCESSKEY="P"
+><<< Previous</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="fcgetlangs.html"
+ACCESSKEY="N"
+>Next >>></A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><H1
+><A
+NAME="FCLANGSETGETLANGS"
+></A
+>FcLangSetGetLangs</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN2334"
+></A
+><H2
+>Name</H2
+>FcLangSetGetLangs -- get the list of languages in the langset</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN2337"
+></A
+><H2
+>Synopsis</H2
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2338"
+></A
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="FUNCSYNOPSISINFO"
+>#include <fontconfig/fontconfig.h>
+ </PRE
+></TD
+></TR
+></TABLE
+><P
+><CODE
+><CODE
+CLASS="FUNCDEF"
+>FcStrSet * <TT
+CLASS="FUNCTION"
+>FcLangSetGetLangs</TT
+></CODE
+>(const FcLangSet *<TT
+CLASS="PARAMETER"
+><I
+>ls</I
+></TT
+>);</CODE
+></P
+><P
+></P
+></DIV
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN2345"
+></A
+><H2
+>Description</H2
+><P
+>Returns a string set of all languages in <TT
+CLASS="PARAMETER"
+><I
+>langset</I
+></TT
+>.
+ </P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="fcgetdefaultlangs.html"
+ACCESSKEY="P"
+><<< Previous</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="t1.html"
+ACCESSKEY="H"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="fcgetlangs.html"
+ACCESSKEY="N"
+>Next >>></A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>FcGetDefaultLangs</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="x102.html#AEN2016"
+ACCESSKEY="U"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>FcGetLangs</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
HREF="t1.html"><LINK
REL="UP"
TITLE="FcLangSet"
-HREF="x102.html#AEN2094"><LINK
+HREF="x102.html#AEN2016"><LINK
REL="PREVIOUS"
TITLE="FcLangSetEqual"
HREF="fclangsetequal.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2351"
+NAME="AEN2263"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2354"
+NAME="AEN2266"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2355"
+NAME="AEN2267"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2362"
+NAME="AEN2274"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2368"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2094"
+HREF="x102.html#AEN2016"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcLangSet"
-HREF="x102.html#AEN2094"><LINK
+HREF="x102.html#AEN2016"><LINK
REL="PREVIOUS"
TITLE="FcLangSetHash"
HREF="fclangsethash.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2375"
+NAME="AEN2285"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2378"
+NAME="AEN2288"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2379"
+NAME="AEN2289"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2388"
+NAME="AEN2298"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2397"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2094"
+HREF="x102.html#AEN2016"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcLangSet"
-HREF="x102.html#AEN2094"><LINK
+HREF="x102.html#AEN2016"><LINK
REL="PREVIOUS"
TITLE="FcLangSetUnion"
HREF="fclangsetunion.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2245"
+NAME="AEN2162"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2248"
+NAME="AEN2165"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2249"
+NAME="AEN2166"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2258"
+NAME="AEN2175"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2263"
+NAME="AEN2180"
></A
><H2
->Version</H2
+>Since</H2
><P
->Fontconfig version 2.10.91
-
- </P
+>version 2.9.0</P
></DIV
><DIV
CLASS="NAVFOOTER"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2094"
+HREF="x102.html#AEN2016"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcLangSet"
-HREF="x102.html#AEN2094"><LINK
+HREF="x102.html#AEN2016"><LINK
REL="PREVIOUS"
TITLE="FcLangSetDel"
HREF="fclangsetdel.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2220"
+NAME="AEN2136"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2223"
+NAME="AEN2139"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2224"
+NAME="AEN2140"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2233"
+NAME="AEN2149"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2238"
+NAME="AEN2154"
></A
><H2
->Version</H2
+>Since</H2
><P
->Fontconfig version 2.10.91
-
- </P
+>version 2.9.0</P
></DIV
><DIV
CLASS="NAVFOOTER"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2094"
+HREF="x102.html#AEN2016"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcMatrix"
-HREF="x102.html#AEN2485"><LINK
+HREF="x102.html#AEN2410"><LINK
REL="PREVIOUS"
TITLE="FcMatrixInit"
HREF="fcmatrixinit.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2515"
+NAME="AEN2439"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2518"
+NAME="AEN2442"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2519"
+NAME="AEN2443"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2526"
+NAME="AEN2450"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2531"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2485"
+HREF="x102.html#AEN2410"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcMatrix"
-HREF="x102.html#AEN2485"><LINK
+HREF="x102.html#AEN2410"><LINK
REL="PREVIOUS"
TITLE="FcMatrixCopy"
HREF="fcmatrixcopy.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2538"
+NAME="AEN2460"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2541"
+NAME="AEN2463"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2542"
+NAME="AEN2464"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2551"
+NAME="AEN2473"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2557"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2485"
+HREF="x102.html#AEN2410"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcMatrix"
-HREF="x102.html#AEN2485"><LINK
+HREF="x102.html#AEN2410"><LINK
REL="PREVIOUS"
TITLE="FUNCTIONS"
HREF="x102.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2492"
+NAME="AEN2418"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2495"
+NAME="AEN2421"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2496"
+NAME="AEN2422"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2503"
+NAME="AEN2429"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2508"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2485"
+HREF="x102.html#AEN2410"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcMatrix"
-HREF="x102.html#AEN2485"><LINK
+HREF="x102.html#AEN2410"><LINK
REL="PREVIOUS"
TITLE="FcMatrixEqual"
HREF="fcmatrixequal.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2564"
+NAME="AEN2484"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2567"
+NAME="AEN2487"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2568"
+NAME="AEN2488"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2579"
+NAME="AEN2499"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2586"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2485"
+HREF="x102.html#AEN2410"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcMatrix"
-HREF="x102.html#AEN2485"><LINK
+HREF="x102.html#AEN2410"><LINK
REL="PREVIOUS"
TITLE="FcMatrixMultiply"
HREF="fcmatrixmultiply.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2593"
+NAME="AEN2511"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2596"
+NAME="AEN2514"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2597"
+NAME="AEN2515"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2608"
+NAME="AEN2526"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2616"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2485"
+HREF="x102.html#AEN2410"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcMatrix"
-HREF="x102.html#AEN2485"><LINK
+HREF="x102.html#AEN2410"><LINK
REL="PREVIOUS"
TITLE="FcMatrixRotate"
HREF="fcmatrixrotate.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2623"
+NAME="AEN2539"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2626"
+NAME="AEN2542"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2627"
+NAME="AEN2543"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2638"
+NAME="AEN2554"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2646"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2485"
+HREF="x102.html#AEN2410"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcMatrix"
-HREF="x102.html#AEN2485"><LINK
+HREF="x102.html#AEN2410"><LINK
REL="PREVIOUS"
TITLE="FcMatrixScale"
HREF="fcmatrixscale.html"></HEAD
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2653"
+NAME="AEN2567"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2656"
+NAME="AEN2570"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN2657"
+NAME="AEN2571"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2668"
+NAME="AEN2582"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN2676"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN2485"
+HREF="x102.html#AEN2410"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConstant"
-HREF="x102.html#AEN3463"><LINK
+HREF="x102.html#AEN3485"><LINK
REL="PREVIOUS"
TITLE="FcNameGetConstant"
HREF="fcnamegetconstant.html"></HEAD
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3538"
+NAME="AEN3555"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3541"
+NAME="AEN3558"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3542"
+NAME="AEN3559"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3551"
+NAME="AEN3568"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3556"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3463"
+HREF="x102.html#AEN3485"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConstant"
-HREF="x102.html#AEN3463"><LINK
+HREF="x102.html#AEN3485"><LINK
REL="PREVIOUS"
TITLE="FcNameUnregisterConstants"
HREF="fcnameunregisterconstants.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3516"
+NAME="AEN3535"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3519"
+NAME="AEN3538"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3520"
+NAME="AEN3539"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3527"
+NAME="AEN3546"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3531"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3463"
+HREF="x102.html#AEN3485"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcObjectType"
-HREF="x102.html#AEN3392"><LINK
+HREF="x102.html#AEN3420"><LINK
REL="PREVIOUS"
TITLE="FcNameUnregisterObjectTypes"
HREF="fcnameunregisterobjecttypes.html"></HEAD
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3445"
+NAME="AEN3470"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3448"
+NAME="AEN3473"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3449"
+NAME="AEN3474"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3456"
+NAME="AEN3481"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3460"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3392"
+HREF="x102.html#AEN3420"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcPattern"
-HREF="x102.html#AEN255"><LINK
+HREF="x102.html#AEN241"><LINK
REL="PREVIOUS"
TITLE="FcDefaultSubstitute"
HREF="fcdefaultsubstitute.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN887"
+NAME="AEN866"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN890"
+NAME="AEN869"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN891"
+NAME="AEN870"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN898"
+NAME="AEN877"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN902"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN255"
+HREF="x102.html#AEN241"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConstant"
-HREF="x102.html#AEN3463"><LINK
+HREF="x102.html#AEN3485"><LINK
REL="PREVIOUS"
TITLE="FUNCTIONS"
HREF="x102.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3470"
+NAME="AEN3493"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3473"
+NAME="AEN3496"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3474"
+NAME="AEN3497"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3483"
+NAME="AEN3506"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3486"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3463"
+HREF="x102.html#AEN3485"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcObjectType"
-HREF="x102.html#AEN3392"><LINK
+HREF="x102.html#AEN3420"><LINK
REL="PREVIOUS"
TITLE="FUNCTIONS"
HREF="x102.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3399"
+NAME="AEN3428"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3402"
+NAME="AEN3431"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3403"
+NAME="AEN3432"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3412"
+NAME="AEN3441"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3415"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3392"
+HREF="x102.html#AEN3420"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcPattern"
-HREF="x102.html#AEN255"><LINK
+HREF="x102.html#AEN241"><LINK
REL="PREVIOUS"
TITLE="FcNameParse"
HREF="fcnameparse.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN909"
+NAME="AEN886"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN912"
+NAME="AEN889"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN913"
+NAME="AEN890"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN920"
+NAME="AEN897"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN923"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN255"
+HREF="x102.html#AEN241"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcConstant"
-HREF="x102.html#AEN3463"><LINK
+HREF="x102.html#AEN3485"><LINK
REL="PREVIOUS"
TITLE="FcNameRegisterConstants"
HREF="fcnameregisterconstants.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3493"
+NAME="AEN3514"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3496"
+NAME="AEN3517"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3497"
+NAME="AEN3518"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3506"
+NAME="AEN3527"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3509"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3463"
+HREF="x102.html#AEN3485"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcObjectType"
-HREF="x102.html#AEN3392"><LINK
+HREF="x102.html#AEN3420"><LINK
REL="PREVIOUS"
TITLE="FcNameRegisterObjectTypes"
HREF="fcnameregisterobjecttypes.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3422"
+NAME="AEN3449"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3425"
+NAME="AEN3452"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN3426"
+NAME="AEN3453"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3435"
+NAME="AEN3462"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN3438"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN3392"
+HREF="x102.html#AEN3420"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcObjectSet"
-HREF="x102.html#AEN1283"><LINK
+HREF="x102.html#AEN1242"><LINK
REL="PREVIOUS"
TITLE="FcObjectSetCreate"
HREF="fcobjectsetcreate.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1311"
+NAME="AEN1269"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1314"
+NAME="AEN1272"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1315"
+NAME="AEN1273"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1324"
+NAME="AEN1282"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1327"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1283"
+HREF="x102.html#AEN1242"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcObjectSet"
-HREF="x102.html#AEN1283"><LINK
+HREF="x102.html#AEN1242"><LINK
REL="PREVIOUS"
TITLE="FcObjectSetDestroy"
HREF="fcobjectsetdestroy.html"></HEAD
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1355"
+NAME="AEN1309"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1360"
+NAME="AEN1314"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1361"
+NAME="AEN1315"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1386"
+NAME="AEN1340"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1390"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1283"
+HREF="x102.html#AEN1242"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcObjectSet"
-HREF="x102.html#AEN1283"><LINK
+HREF="x102.html#AEN1242"><LINK
REL="PREVIOUS"
TITLE="FUNCTIONS"
HREF="x102.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1290"
+NAME="AEN1250"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1293"
+NAME="AEN1253"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1294"
+NAME="AEN1254"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1301"
+NAME="AEN1261"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1304"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1283"
+HREF="x102.html#AEN1242"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcObjectSet"
-HREF="x102.html#AEN1283"><LINK
+HREF="x102.html#AEN1242"><LINK
REL="PREVIOUS"
TITLE="FcObjectSetAdd"
HREF="fcobjectsetadd.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1334"
+NAME="AEN1290"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1337"
+NAME="AEN1293"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1338"
+NAME="AEN1294"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1345"
+NAME="AEN1301"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1348"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1283"
+HREF="x102.html#AEN1242"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcPattern"
-HREF="x102.html#AEN255"><LINK
+HREF="x102.html#AEN241"><LINK
REL="PREVIOUS"
TITLE="FcPatternAddWeak"
HREF="fcpatternaddweak.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN506"
+NAME="AEN473"
></A
><H2
>Name</H2
->FcPatternAddInteger, FcPatternAddDouble, FcPatternAddString, FcPatternAddMatrix, FcPatternAddCharSet, FcPatternAddBool, FcPatternAddFTFace, FcPatternAddLangSet -- Add a typed value to a pattern</DIV
+>FcPatternAddInteger, FcPatternAddDouble, FcPatternAddString, FcPatternAddMatrix, FcPatternAddCharSet, FcPatternAddBool, FcPatternAddFTFace, FcPatternAddLangSet, FcPatternAddRange -- Add a typed value to a pattern</DIV
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN516"
+NAME="AEN484"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN517"
+NAME="AEN485"
></A
><TABLE
BORDER="0"
>);</CODE
></P
><P
+><CODE
+><CODE
+CLASS="FUNCDEF"
+>FcBool <TT
+CLASS="FUNCTION"
+>FcPatternAddRange</TT
+></CODE
+>(FcPattern *<TT
+CLASS="PARAMETER"
+><I
+>p</I
+></TT
+>, const char *<TT
+CLASS="PARAMETER"
+><I
+>object</I
+></TT
+>, const FcRange *<TT
+CLASS="PARAMETER"
+><I
+>r</I
+></TT
+>);</CODE
+></P
+><P
></P
></DIV
></DIV
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN591"
+NAME="AEN568"
></A
><H2
>Description</H2
type into the pattern. Use these in preference to FcPatternAdd as they
will provide compile-time typechecking. These all append values to
any existing list of values.
- </P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN594"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
+<TT
+CLASS="FUNCTION"
+>FcPatternAddRange</TT
+> are available since 2.11.91.
</P
></DIV
><DIV
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN255"
+HREF="x102.html#AEN241"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcPattern"
-HREF="x102.html#AEN255"><LINK
+HREF="x102.html#AEN241"><LINK
REL="PREVIOUS"
TITLE="FcPatternHash"
HREF="fcpatternhash.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN449"
+NAME="AEN420"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN452"
+NAME="AEN423"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN453"
+NAME="AEN424"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN466"
+NAME="AEN437"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN470"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN255"
+HREF="x102.html#AEN241"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcPattern"
-HREF="x102.html#AEN255"><LINK
+HREF="x102.html#AEN241"><LINK
REL="PREVIOUS"
TITLE="FcPatternAdd"
HREF="fcpatternadd.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN477"
+NAME="AEN446"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN480"
+NAME="AEN449"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN481"
+NAME="AEN450"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN494"
+NAME="AEN463"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN499"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN255"
+HREF="x102.html#AEN241"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcPattern"
-HREF="x102.html#AEN255"><LINK
+HREF="x102.html#AEN241"><LINK
REL="PREVIOUS"
TITLE="FcPatternGet-Type"
HREF="fcpatternget-type.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN738"
+NAME="AEN727"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN743"
+NAME="AEN732"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN744"
+NAME="AEN733"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN769"
+NAME="AEN758"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN783"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN255"
+HREF="x102.html#AEN241"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcPattern"
-HREF="x102.html#AEN255"><LINK
+HREF="x102.html#AEN241"><LINK
REL="PREVIOUS"
TITLE="FUNCTIONS"
HREF="x102.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN262"
+NAME="AEN249"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN265"
+NAME="AEN252"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN266"
+NAME="AEN253"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN273"
+NAME="AEN260"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN276"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN255"
+HREF="x102.html#AEN241"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcPattern"
-HREF="x102.html#AEN255"><LINK
+HREF="x102.html#AEN241"><LINK
REL="PREVIOUS"
TITLE="FcPatternBuild"
HREF="fcpatternbuild.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN790"
+NAME="AEN777"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN793"
+NAME="AEN780"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN794"
+NAME="AEN781"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN803"
+NAME="AEN790"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN806"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN255"
+HREF="x102.html#AEN241"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcPattern"
-HREF="x102.html#AEN255"><LINK
+HREF="x102.html#AEN241"><LINK
REL="PREVIOUS"
TITLE="FcPatternReference"
HREF="fcpatternreference.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN327"
+NAME="AEN308"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN330"
+NAME="AEN311"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN331"
+NAME="AEN312"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN338"
+NAME="AEN319"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN341"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN255"
+HREF="x102.html#AEN241"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcPattern"
-HREF="x102.html#AEN255"><LINK
+HREF="x102.html#AEN241"><LINK
REL="PREVIOUS"
TITLE="FcPatternCreate"
HREF="fcpatterncreate.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN283"
+NAME="AEN268"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN286"
+NAME="AEN271"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN287"
+NAME="AEN272"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN294"
+NAME="AEN279"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN298"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN255"
+HREF="x102.html#AEN241"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcPattern"
-HREF="x102.html#AEN255"><LINK
+HREF="x102.html#AEN241"><LINK
REL="PREVIOUS"
TITLE="FcPatternDestroy"
HREF="fcpatterndestroy.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN348"
+NAME="AEN327"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN351"
+NAME="AEN330"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN352"
+NAME="AEN331"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN361"
+NAME="AEN340"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN366"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN255"
+HREF="x102.html#AEN241"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcPattern"
-HREF="x102.html#AEN255"><LINK
+HREF="x102.html#AEN241"><LINK
REL="PREVIOUS"
TITLE="FcPatternEqual"
HREF="fcpatternequal.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN373"
+NAME="AEN350"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN376"
+NAME="AEN353"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN377"
+NAME="AEN354"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN388"
+NAME="AEN365"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN394"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN255"
+HREF="x102.html#AEN241"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcPattern"
-HREF="x102.html#AEN255"><LINK
+HREF="x102.html#AEN241"><LINK
REL="PREVIOUS"
TITLE="FcPatternEqualSubset"
HREF="fcpatternequalsubset.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN401"
+NAME="AEN376"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN404"
+NAME="AEN379"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN405"
+NAME="AEN380"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN414"
+NAME="AEN389"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN421"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN255"
+HREF="x102.html#AEN241"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcPattern"
-HREF="x102.html#AEN255"><LINK
+HREF="x102.html#AEN241"><LINK
REL="PREVIOUS"
TITLE="FcNameUnparse"
HREF="fcnameunparse.html"></HEAD
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN930"
+NAME="AEN905"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN933"
+NAME="AEN908"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN934"
+NAME="AEN909"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN943"
+NAME="AEN918"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1053"
+NAME="AEN1028"
></A
><H2
->Version</H2
+>Since</H2
><P
->Fontconfig version 2.10.91
-
- </P
+>version 2.9.0</P
></DIV
><DIV
CLASS="NAVFOOTER"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN255"
+HREF="x102.html#AEN241"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcPattern"
-HREF="x102.html#AEN255"><LINK
+HREF="x102.html#AEN241"><LINK
REL="PREVIOUS"
TITLE="FcPatternGet"
HREF="fcpatternget.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN631"
+NAME="AEN605"
></A
><H2
>Name</H2
->FcPatternGetInteger, FcPatternGetDouble, FcPatternGetString, FcPatternGetMatrix, FcPatternGetCharSet, FcPatternGetBool, FcPatternGetFTFace, FcPatternGetLangSet -- Return a typed value from a pattern</DIV
+>FcPatternGetInteger, FcPatternGetDouble, FcPatternGetString, FcPatternGetMatrix, FcPatternGetCharSet, FcPatternGetBool, FcPatternGetFTFace, FcPatternGetLangSet, FcPatternGetRange -- Return a typed value from a pattern</DIV
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN641"
+NAME="AEN616"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN642"
+NAME="AEN617"
></A
><TABLE
BORDER="0"
><I
>n</I
></TT
+>, FT_Face *<TT
+CLASS="PARAMETER"
+><I
+>f</I
+></TT
>);</CODE
></P
><P
><I
>object</I
></TT
->, FT_Face *<TT
+>, int <TT
CLASS="PARAMETER"
><I
->f</I
+>n</I
+></TT
+>, FcLangSet **<TT
+CLASS="PARAMETER"
+><I
+>l</I
+></TT
+>);</CODE
+></P
+><P
+><CODE
+><CODE
+CLASS="FUNCDEF"
+>FcResult <TT
+CLASS="FUNCTION"
+>FcPatternGetRange</TT
+></CODE
+>(FcPattern *<TT
+CLASS="PARAMETER"
+><I
+>p</I
+></TT
+>, const char *<TT
+CLASS="PARAMETER"
+><I
+>object</I
+></TT
+>, int <TT
+CLASS="PARAMETER"
+><I
+>n</I
+></TT
+>, FcRange **<TT
+CLASS="PARAMETER"
+><I
+>r</I
></TT
>);</CODE
></P
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN728"
+NAME="AEN718"
></A
><H2
>Description</H2
this is not the case. Note that these (like FcPatternGet) do not make a
copy of any data structure referenced by the return value. Use these
in preference to FcPatternGet to provide compile-time typechecking.
- </P
-></DIV
-><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN731"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
+<TT
+CLASS="FUNCTION"
+>FcPatternGetRange</TT
+> are available since 2.11.91.
</P
></DIV
><DIV
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN255"
+HREF="x102.html#AEN241"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcPattern"
-HREF="x102.html#AEN255"><LINK
+HREF="x102.html#AEN241"><LINK
REL="PREVIOUS"
TITLE="FcPatternAdd-Type"
HREF="fcpatternadd-type.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN601"
+NAME="AEN577"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN604"
+NAME="AEN580"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN605"
+NAME="AEN581"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN618"
+NAME="AEN594"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN624"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN255"
+HREF="x102.html#AEN241"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcPattern"
-HREF="x102.html#AEN255"><LINK
+HREF="x102.html#AEN241"><LINK
REL="PREVIOUS"
TITLE="FcPatternFilter"
HREF="fcpatternfilter.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN428"
+NAME="AEN401"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN431"
+NAME="AEN404"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN432"
+NAME="AEN405"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN439"
+NAME="AEN412"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN442"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN255"
+HREF="x102.html#AEN241"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcPattern"
-HREF="x102.html#AEN255"><LINK
+HREF="x102.html#AEN241"><LINK
REL="PREVIOUS"
TITLE="FcPatternRemove"
HREF="fcpatternremove.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN838"
+NAME="AEN821"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN841"
+NAME="AEN824"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN842"
+NAME="AEN825"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN849"
+NAME="AEN832"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN852"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN255"
+HREF="x102.html#AEN241"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcPattern"
-HREF="x102.html#AEN255"><LINK
+HREF="x102.html#AEN241"><LINK
REL="PREVIOUS"
TITLE="FcPatternDuplicate"
HREF="fcpatternduplicate.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN305"
+NAME="AEN288"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN308"
+NAME="AEN291"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN309"
+NAME="AEN292"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN316"
+NAME="AEN299"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN320"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN255"
+HREF="x102.html#AEN241"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcPattern"
-HREF="x102.html#AEN255"><LINK
+HREF="x102.html#AEN241"><LINK
REL="PREVIOUS"
TITLE="FcPatternDel"
HREF="fcpatterndel.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN813"
+NAME="AEN798"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN816"
+NAME="AEN801"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN817"
+NAME="AEN802"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN828"
+NAME="AEN813"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN831"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN255"
+HREF="x102.html#AEN241"
ACCESSKEY="U"
>Up</A
></TD
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML
+><HEAD
+><TITLE
+>FcRangeCopy</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
+REL="HOME"
+HREF="t1.html"><LINK
+REL="UP"
+TITLE="FcRange"
+HREF="x102.html#AEN2590"><LINK
+REL="PREVIOUS"
+TITLE="FUNCTIONS"
+HREF="x102.html"><LINK
+REL="NEXT"
+TITLE="FcRangeCreateDouble"
+HREF="fcrangecreatedouble.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+SUMMARY="Header navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+></TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="x102.html"
+ACCESSKEY="P"
+><<< Previous</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="fcrangecreatedouble.html"
+ACCESSKEY="N"
+>Next >>></A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><H1
+><A
+NAME="FCRANGECOPY"
+></A
+>FcRangeCopy</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN2598"
+></A
+><H2
+>Name</H2
+>FcRangeCopy -- Copy a range object</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN2601"
+></A
+><H2
+>Synopsis</H2
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2602"
+></A
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="FUNCSYNOPSISINFO"
+>#include <fontconfig/fontconfig.h>
+ </PRE
+></TD
+></TR
+></TABLE
+><P
+><CODE
+><CODE
+CLASS="FUNCDEF"
+>FcRange * <TT
+CLASS="FUNCTION"
+>FcRangeCopy</TT
+></CODE
+>(const FcRange *<TT
+CLASS="PARAMETER"
+><I
+>range</I
+></TT
+>);</CODE
+></P
+><P
+></P
+></DIV
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN2609"
+></A
+><H2
+>Description</H2
+><P
+><TT
+CLASS="FUNCTION"
+>FcRangeCopy</TT
+> creates a new FcRange object and
+populates it with the contents of <TT
+CLASS="PARAMETER"
+><I
+>range</I
+></TT
+>.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN2614"
+></A
+><H2
+>Since</H2
+><P
+>version 2.11.91</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="x102.html"
+ACCESSKEY="P"
+><<< Previous</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="t1.html"
+ACCESSKEY="H"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="fcrangecreatedouble.html"
+ACCESSKEY="N"
+>Next >>></A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>FUNCTIONS</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="x102.html#AEN2590"
+ACCESSKEY="U"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>FcRangeCreateDouble</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML
+><HEAD
+><TITLE
+>FcRangeCreateDouble</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
+REL="HOME"
+HREF="t1.html"><LINK
+REL="UP"
+TITLE="FcRange"
+HREF="x102.html#AEN2590"><LINK
+REL="PREVIOUS"
+TITLE="FcRangeCopy"
+HREF="fcrangecopy.html"><LINK
+REL="NEXT"
+TITLE="FcRangeCreateInteger"
+HREF="fcrangecreateinteger.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+SUMMARY="Header navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+></TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="fcrangecopy.html"
+ACCESSKEY="P"
+><<< Previous</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="fcrangecreateinteger.html"
+ACCESSKEY="N"
+>Next >>></A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><H1
+><A
+NAME="FCRANGECREATEDOUBLE"
+></A
+>FcRangeCreateDouble</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN2622"
+></A
+><H2
+>Name</H2
+>FcRangeCreateDouble -- create a range object for double</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN2625"
+></A
+><H2
+>Synopsis</H2
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2626"
+></A
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="FUNCSYNOPSISINFO"
+>#include <fontconfig/fontconfig.h>
+ </PRE
+></TD
+></TR
+></TABLE
+><P
+><CODE
+><CODE
+CLASS="FUNCDEF"
+>FcRange * <TT
+CLASS="FUNCTION"
+>FcRangeCreateDouble</TT
+></CODE
+>(double<TT
+CLASS="PARAMETER"
+><I
+>begin</I
+></TT
+>, double<TT
+CLASS="PARAMETER"
+><I
+>end</I
+></TT
+>);</CODE
+></P
+><P
+></P
+></DIV
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN2635"
+></A
+><H2
+>Description</H2
+><P
+><TT
+CLASS="FUNCTION"
+>FcRangeCreateDouble</TT
+> creates a new FcRange object with
+double sized value.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN2639"
+></A
+><H2
+>Since</H2
+><P
+>version 2.11.91</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="fcrangecopy.html"
+ACCESSKEY="P"
+><<< Previous</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="t1.html"
+ACCESSKEY="H"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="fcrangecreateinteger.html"
+ACCESSKEY="N"
+>Next >>></A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>FcRangeCopy</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="x102.html#AEN2590"
+ACCESSKEY="U"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>FcRangeCreateInteger</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML
+><HEAD
+><TITLE
+>FcRangeCreateInteger</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
+REL="HOME"
+HREF="t1.html"><LINK
+REL="UP"
+TITLE="FcRange"
+HREF="x102.html#AEN2590"><LINK
+REL="PREVIOUS"
+TITLE="FcRangeCreateDouble"
+HREF="fcrangecreatedouble.html"><LINK
+REL="NEXT"
+TITLE="FcRangeDestroy"
+HREF="fcrangedestroy.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+SUMMARY="Header navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+></TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="fcrangecreatedouble.html"
+ACCESSKEY="P"
+><<< Previous</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="fcrangedestroy.html"
+ACCESSKEY="N"
+>Next >>></A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><H1
+><A
+NAME="FCRANGECREATEINTEGER"
+></A
+>FcRangeCreateInteger</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN2647"
+></A
+><H2
+>Name</H2
+>FcRangeCreateInteger -- create a range object for integer</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN2650"
+></A
+><H2
+>Synopsis</H2
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2651"
+></A
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="FUNCSYNOPSISINFO"
+>#include <fontconfig/fontconfig.h>
+ </PRE
+></TD
+></TR
+></TABLE
+><P
+><CODE
+><CODE
+CLASS="FUNCDEF"
+>FcRange * <TT
+CLASS="FUNCTION"
+>FcRangeCreateInteger</TT
+></CODE
+>(int<TT
+CLASS="PARAMETER"
+><I
+>begin</I
+></TT
+>, int<TT
+CLASS="PARAMETER"
+><I
+>end</I
+></TT
+>);</CODE
+></P
+><P
+></P
+></DIV
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN2660"
+></A
+><H2
+>Description</H2
+><P
+><TT
+CLASS="FUNCTION"
+>FcRangeCreateInteger</TT
+> creates a new FcRange object with
+integer sized value.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN2664"
+></A
+><H2
+>Since</H2
+><P
+>version 2.11.91</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="fcrangecreatedouble.html"
+ACCESSKEY="P"
+><<< Previous</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="t1.html"
+ACCESSKEY="H"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="fcrangedestroy.html"
+ACCESSKEY="N"
+>Next >>></A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>FcRangeCreateDouble</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="x102.html#AEN2590"
+ACCESSKEY="U"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>FcRangeDestroy</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML
+><HEAD
+><TITLE
+>FcRangeDestroy</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
+REL="HOME"
+HREF="t1.html"><LINK
+REL="UP"
+TITLE="FcRange"
+HREF="x102.html#AEN2590"><LINK
+REL="PREVIOUS"
+TITLE="FcRangeCreateInteger"
+HREF="fcrangecreateinteger.html"><LINK
+REL="NEXT"
+TITLE="FcRangeGetDouble"
+HREF="fcrangegetdouble.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+SUMMARY="Header navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+></TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="fcrangecreateinteger.html"
+ACCESSKEY="P"
+><<< Previous</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="fcrangegetdouble.html"
+ACCESSKEY="N"
+>Next >>></A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><H1
+><A
+NAME="FCRANGEDESTROY"
+></A
+>FcRangeDestroy</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN2672"
+></A
+><H2
+>Name</H2
+>FcRangeDestroy -- destroy a range object</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN2675"
+></A
+><H2
+>Synopsis</H2
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2676"
+></A
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="FUNCSYNOPSISINFO"
+>#include <fontconfig/fontconfig.h>
+ </PRE
+></TD
+></TR
+></TABLE
+><P
+><CODE
+><CODE
+CLASS="FUNCDEF"
+>void <TT
+CLASS="FUNCTION"
+>FcRangeDestroy</TT
+></CODE
+>(FcRange *<TT
+CLASS="PARAMETER"
+><I
+>range</I
+></TT
+>);</CODE
+></P
+><P
+></P
+></DIV
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN2683"
+></A
+><H2
+>Description</H2
+><P
+><TT
+CLASS="FUNCTION"
+>FcRangeDestroy</TT
+> destroys a FcRange object, freeing
+all memory associated with it.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN2687"
+></A
+><H2
+>Since</H2
+><P
+>version 2.11.91</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="fcrangecreateinteger.html"
+ACCESSKEY="P"
+><<< Previous</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="t1.html"
+ACCESSKEY="H"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="fcrangegetdouble.html"
+ACCESSKEY="N"
+>Next >>></A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>FcRangeCreateInteger</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="x102.html#AEN2590"
+ACCESSKEY="U"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>FcRangeGetDouble</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML
+><HEAD
+><TITLE
+>FcRangeGetDouble</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
+REL="HOME"
+HREF="t1.html"><LINK
+REL="UP"
+TITLE="FcRange"
+HREF="x102.html#AEN2590"><LINK
+REL="PREVIOUS"
+TITLE="FcRangeDestroy"
+HREF="fcrangedestroy.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+SUMMARY="Header navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+></TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="fcrangedestroy.html"
+ACCESSKEY="P"
+><<< Previous</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+> </TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><H1
+><A
+NAME="FCRANGEGETDOUBLE"
+></A
+>FcRangeGetDouble</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN2695"
+></A
+><H2
+>Name</H2
+>FcRangeGetDouble -- Get the range in double</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN2698"
+></A
+><H2
+>Synopsis</H2
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2699"
+></A
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="FUNCSYNOPSISINFO"
+>#include <fontconfig/fontconfig.h>
+ </PRE
+></TD
+></TR
+></TABLE
+><P
+><CODE
+><CODE
+CLASS="FUNCDEF"
+>FcBool <TT
+CLASS="FUNCTION"
+>FcRangeGetDouble</TT
+></CODE
+>(const FcRange *<TT
+CLASS="PARAMETER"
+><I
+>range</I
+></TT
+>, double *<TT
+CLASS="PARAMETER"
+><I
+>begin</I
+></TT
+>, double *<TT
+CLASS="PARAMETER"
+><I
+>end</I
+></TT
+>);</CODE
+></P
+><P
+></P
+></DIV
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN2710"
+></A
+><H2
+>Description</H2
+><P
+>Returns in <TT
+CLASS="PARAMETER"
+><I
+>begin</I
+></TT
+> and <TT
+CLASS="PARAMETER"
+><I
+>end</I
+></TT
+> as the range.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN2715"
+></A
+><H2
+>Since</H2
+><P
+>version 2.11.91</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="fcrangedestroy.html"
+ACCESSKEY="P"
+><<< Previous</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="t1.html"
+ACCESSKEY="H"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+> </TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>FcRangeDestroy</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="x102.html#AEN2590"
+ACCESSKEY="U"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+> </TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
HREF="t1.html"><LINK
REL="UP"
TITLE="String utilities"
-HREF="x102.html#AEN4503"><LINK
+HREF="x102.html#AEN4543"><LINK
REL="PREVIOUS"
TITLE="FcStrDirname"
HREF="fcstrdirname.html"></HEAD
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4972"
+NAME="AEN4977"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4975"
+NAME="AEN4980"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4976"
+NAME="AEN4981"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4983"
+NAME="AEN4988"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4987"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4503"
+HREF="x102.html#AEN4543"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="String utilities"
-HREF="x102.html#AEN4503"><LINK
+HREF="x102.html#AEN4543"><LINK
REL="PREVIOUS"
TITLE="FcStrCopyFilename"
HREF="fcstrcopyfilename.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4800"
+NAME="AEN4819"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4803"
+NAME="AEN4822"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4804"
+NAME="AEN4823"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4813"
+NAME="AEN4832"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4818"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4503"
+HREF="x102.html#AEN4543"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="String utilities"
-HREF="x102.html#AEN4503"><LINK
+HREF="x102.html#AEN4543"><LINK
REL="PREVIOUS"
TITLE="FcStrCmp"
HREF="fcstrcmp.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4825"
+NAME="AEN4842"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4828"
+NAME="AEN4845"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4829"
+NAME="AEN4846"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4838"
+NAME="AEN4855"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4843"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4503"
+HREF="x102.html#AEN4543"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="String utilities"
-HREF="x102.html#AEN4503"><LINK
+HREF="x102.html#AEN4543"><LINK
REL="PREVIOUS"
TITLE="FcToLower"
HREF="fctolower.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4731"
+NAME="AEN4756"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4734"
+NAME="AEN4759"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4735"
+NAME="AEN4760"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4742"
+NAME="AEN4767"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4747"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4503"
+HREF="x102.html#AEN4543"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="String utilities"
-HREF="x102.html#AEN4503"><LINK
+HREF="x102.html#AEN4543"><LINK
REL="PREVIOUS"
TITLE="FcStrDowncase"
HREF="fcstrdowncase.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4776"
+NAME="AEN4797"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4779"
+NAME="AEN4800"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4780"
+NAME="AEN4801"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4787"
+NAME="AEN4808"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4793"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4503"
+HREF="x102.html#AEN4543"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="String utilities"
-HREF="x102.html#AEN4503"><LINK
+HREF="x102.html#AEN4543"><LINK
REL="PREVIOUS"
TITLE="FcStrFree"
HREF="fcstrfree.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4950"
+NAME="AEN4957"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4953"
+NAME="AEN4960"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4954"
+NAME="AEN4961"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4961"
+NAME="AEN4968"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4965"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4503"
+HREF="x102.html#AEN4543"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="String utilities"
-HREF="x102.html#AEN4503"><LINK
+HREF="x102.html#AEN4543"><LINK
REL="PREVIOUS"
TITLE="FcStrCopy"
HREF="fcstrcopy.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4754"
+NAME="AEN4777"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4757"
+NAME="AEN4780"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4758"
+NAME="AEN4781"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4765"
+NAME="AEN4788"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4769"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4503"
+HREF="x102.html#AEN4543"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="String utilities"
-HREF="x102.html#AEN4503"><LINK
+HREF="x102.html#AEN4543"><LINK
REL="PREVIOUS"
TITLE="FcStrPlus"
HREF="fcstrplus.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4929"
+NAME="AEN4938"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4932"
+NAME="AEN4941"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4933"
+NAME="AEN4942"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4940"
+NAME="AEN4949"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4943"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4503"
+HREF="x102.html#AEN4543"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcStrSet and FcStrList"
-HREF="x102.html#AEN4265"><LINK
+HREF="x102.html#AEN4302"><LINK
REL="PREVIOUS"
TITLE="FcStrSetDestroy"
HREF="fcstrsetdestroy.html"><LINK
REL="NEXT"
-TITLE="FcStrListNext"
-HREF="fcstrlistnext.html"></HEAD
+TITLE="FcStrListFirst"
+HREF="fcstrlistfirst.html"></HEAD
><BODY
CLASS="REFENTRY"
BGCOLOR="#FFFFFF"
ALIGN="right"
VALIGN="bottom"
><A
-HREF="fcstrlistnext.html"
+HREF="fcstrlistfirst.html"
ACCESSKEY="N"
>Next >>></A
></TD
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4441"
+NAME="AEN4465"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4444"
+NAME="AEN4468"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4445"
+NAME="AEN4469"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4452"
+NAME="AEN4476"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4456"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="right"
VALIGN="top"
><A
-HREF="fcstrlistnext.html"
+HREF="fcstrlistfirst.html"
ACCESSKEY="N"
>Next >>></A
></TD
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4265"
+HREF="x102.html#AEN4302"
ACCESSKEY="U"
>Up</A
></TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
->FcStrListNext</TD
+>FcStrListFirst</TD
></TR
></TABLE
></DIV
HREF="t1.html"><LINK
REL="UP"
TITLE="FcStrSet and FcStrList"
-HREF="x102.html#AEN4265"><LINK
+HREF="x102.html#AEN4302"><LINK
REL="PREVIOUS"
TITLE="FcStrListNext"
HREF="fcstrlistnext.html"></HEAD
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4485"
+NAME="AEN4528"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4488"
+NAME="AEN4531"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4489"
+NAME="AEN4532"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4496"
+NAME="AEN4539"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4500"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4265"
+HREF="x102.html#AEN4302"
ACCESSKEY="U"
>Up</A
></TD
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML
+><HEAD
+><TITLE
+>FcStrListFirst</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
+REL="HOME"
+HREF="t1.html"><LINK
+REL="UP"
+TITLE="FcStrSet and FcStrList"
+HREF="x102.html#AEN4302"><LINK
+REL="PREVIOUS"
+TITLE="FcStrListCreate"
+HREF="fcstrlistcreate.html"><LINK
+REL="NEXT"
+TITLE="FcStrListNext"
+HREF="fcstrlistnext.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+SUMMARY="Header navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+></TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="fcstrlistcreate.html"
+ACCESSKEY="P"
+><<< Previous</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="fcstrlistnext.html"
+ACCESSKEY="N"
+>Next >>></A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><H1
+><A
+NAME="FCSTRLISTFIRST"
+></A
+>FcStrListFirst</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN4485"
+></A
+><H2
+>Name</H2
+>FcStrListFirst -- get first string in iteration</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN4488"
+></A
+><H2
+>Synopsis</H2
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4489"
+></A
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="FUNCSYNOPSISINFO"
+>#include <fontconfig/fontconfig.h>
+ </PRE
+></TD
+></TR
+></TABLE
+><P
+><CODE
+><CODE
+CLASS="FUNCDEF"
+>void <TT
+CLASS="FUNCTION"
+>FcStrListFirst</TT
+></CODE
+>(FcStrList *<TT
+CLASS="PARAMETER"
+><I
+>list</I
+></TT
+>);</CODE
+></P
+><P
+></P
+></DIV
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN4496"
+></A
+><H2
+>Description</H2
+><P
+>Returns the first string in <TT
+CLASS="PARAMETER"
+><I
+>list</I
+></TT
+>.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN4500"
+></A
+><H2
+>Since</H2
+><P
+>version 2.11.0</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="fcstrlistcreate.html"
+ACCESSKEY="P"
+><<< Previous</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="t1.html"
+ACCESSKEY="H"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="fcstrlistnext.html"
+ACCESSKEY="N"
+>Next >>></A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>FcStrListCreate</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="x102.html#AEN4302"
+ACCESSKEY="U"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>FcStrListNext</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
HREF="t1.html"><LINK
REL="UP"
TITLE="FcStrSet and FcStrList"
-HREF="x102.html#AEN4265"><LINK
+HREF="x102.html#AEN4302"><LINK
REL="PREVIOUS"
-TITLE="FcStrListCreate"
-HREF="fcstrlistcreate.html"><LINK
+TITLE="FcStrListFirst"
+HREF="fcstrlistfirst.html"><LINK
REL="NEXT"
TITLE="FcStrListDone"
HREF="fcstrlistdone.html"></HEAD
ALIGN="left"
VALIGN="bottom"
><A
-HREF="fcstrlistcreate.html"
+HREF="fcstrlistfirst.html"
ACCESSKEY="P"
><<< Previous</A
></TD
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4463"
+NAME="AEN4508"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4466"
+NAME="AEN4511"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4467"
+NAME="AEN4512"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4474"
+NAME="AEN4519"
></A
><H2
>Description</H2
>Returns the next string in <TT
CLASS="PARAMETER"
><I
->set</I
+>list</I
></TT
>.
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4478"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="left"
VALIGN="top"
><A
-HREF="fcstrlistcreate.html"
+HREF="fcstrlistfirst.html"
ACCESSKEY="P"
><<< Previous</A
></TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
->FcStrListCreate</TD
+>FcStrListFirst</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4265"
+HREF="x102.html#AEN4302"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="String utilities"
-HREF="x102.html#AEN4503"><LINK
+HREF="x102.html#AEN4543"><LINK
REL="PREVIOUS"
TITLE="FcStrStrIgnoreCase"
HREF="fcstrstrignorecase.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4904"
+NAME="AEN4915"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4907"
+NAME="AEN4918"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4908"
+NAME="AEN4919"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4917"
+NAME="AEN4928"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4922"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4503"
+HREF="x102.html#AEN4543"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcStrSet and FcStrList"
-HREF="x102.html#AEN4265"><LINK
+HREF="x102.html#AEN4302"><LINK
REL="PREVIOUS"
TITLE="FcStrSetEqual"
HREF="fcstrsetequal.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4343"
+NAME="AEN4375"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4346"
+NAME="AEN4378"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4347"
+NAME="AEN4379"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4356"
+NAME="AEN4388"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4361"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4265"
+HREF="x102.html#AEN4302"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcStrSet and FcStrList"
-HREF="x102.html#AEN4265"><LINK
+HREF="x102.html#AEN4302"><LINK
REL="PREVIOUS"
TITLE="FcStrSetAdd"
HREF="fcstrsetadd.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4368"
+NAME="AEN4398"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4371"
+NAME="AEN4401"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4372"
+NAME="AEN4402"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4381"
+NAME="AEN4411"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4386"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4265"
+HREF="x102.html#AEN4302"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcStrSet and FcStrList"
-HREF="x102.html#AEN4265"><LINK
+HREF="x102.html#AEN4302"><LINK
REL="PREVIOUS"
TITLE="FUNCTIONS"
HREF="x102.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4272"
+NAME="AEN4310"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4275"
+NAME="AEN4313"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4276"
+NAME="AEN4314"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4283"
+NAME="AEN4321"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4286"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4265"
+HREF="x102.html#AEN4302"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcStrSet and FcStrList"
-HREF="x102.html#AEN4265"><LINK
+HREF="x102.html#AEN4302"><LINK
REL="PREVIOUS"
TITLE="FcStrSetAddFilename"
HREF="fcstrsetaddfilename.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4393"
+NAME="AEN4421"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4396"
+NAME="AEN4424"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4397"
+NAME="AEN4425"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4406"
+NAME="AEN4434"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4412"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4265"
+HREF="x102.html#AEN4302"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcStrSet and FcStrList"
-HREF="x102.html#AEN4265"><LINK
+HREF="x102.html#AEN4302"><LINK
REL="PREVIOUS"
TITLE="FcStrSetDel"
HREF="fcstrsetdel.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4419"
+NAME="AEN4445"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4422"
+NAME="AEN4448"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4423"
+NAME="AEN4449"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4430"
+NAME="AEN4456"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4434"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4265"
+HREF="x102.html#AEN4302"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcStrSet and FcStrList"
-HREF="x102.html#AEN4265"><LINK
+HREF="x102.html#AEN4302"><LINK
REL="PREVIOUS"
TITLE="FcStrSetMember"
HREF="fcstrsetmember.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4318"
+NAME="AEN4352"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4321"
+NAME="AEN4355"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4322"
+NAME="AEN4356"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4331"
+NAME="AEN4365"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4336"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4265"
+HREF="x102.html#AEN4302"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcStrSet and FcStrList"
-HREF="x102.html#AEN4265"><LINK
+HREF="x102.html#AEN4302"><LINK
REL="PREVIOUS"
TITLE="FcStrSetCreate"
HREF="fcstrsetcreate.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4293"
+NAME="AEN4329"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4296"
+NAME="AEN4332"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4297"
+NAME="AEN4333"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4306"
+NAME="AEN4342"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4311"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4265"
+HREF="x102.html#AEN4302"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="String utilities"
-HREF="x102.html#AEN4503"><LINK
+HREF="x102.html#AEN4543"><LINK
REL="PREVIOUS"
TITLE="FcStrCmpIgnoreCase"
HREF="fcstrcmpignorecase.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4850"
+NAME="AEN4865"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4853"
+NAME="AEN4868"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4854"
+NAME="AEN4869"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4863"
+NAME="AEN4878"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4870"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4503"
+HREF="x102.html#AEN4543"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="String utilities"
-HREF="x102.html#AEN4503"><LINK
+HREF="x102.html#AEN4543"><LINK
REL="PREVIOUS"
TITLE="FcStrStr"
HREF="fcstrstr.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4877"
+NAME="AEN4890"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4880"
+NAME="AEN4893"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4881"
+NAME="AEN4894"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4890"
+NAME="AEN4903"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4897"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4503"
+HREF="x102.html#AEN4543"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="String utilities"
-HREF="x102.html#AEN4503"><LINK
+HREF="x102.html#AEN4543"><LINK
REL="PREVIOUS"
TITLE="FcIsUpper"
HREF="fcisupper.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4709"
+NAME="AEN4736"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4712"
+NAME="AEN4739"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4713"
+NAME="AEN4740"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4720"
+NAME="AEN4747"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4724"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4503"
+HREF="x102.html#AEN4543"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="String utilities"
-HREF="x102.html#AEN4503"><LINK
+HREF="x102.html#AEN4543"><LINK
REL="PREVIOUS"
TITLE="FcUtf8ToUcs4"
HREF="fcutf8toucs4.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4539"
+NAME="AEN4578"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4542"
+NAME="AEN4581"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4543"
+NAME="AEN4582"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4552"
+NAME="AEN4591"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4557"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4503"
+HREF="x102.html#AEN4543"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="String utilities"
-HREF="x102.html#AEN4503"><LINK
+HREF="x102.html#AEN4543"><LINK
REL="PREVIOUS"
TITLE="FcUtf16ToUcs4"
HREF="fcutf16toucs4.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4629"
+NAME="AEN4662"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4632"
+NAME="AEN4665"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4633"
+NAME="AEN4666"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4648"
+NAME="AEN4681"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4658"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4503"
+HREF="x102.html#AEN4543"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="String utilities"
-HREF="x102.html#AEN4503"><LINK
+HREF="x102.html#AEN4543"><LINK
REL="PREVIOUS"
TITLE="FcUtf8Len"
HREF="fcutf8len.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4596"
+NAME="AEN4631"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4599"
+NAME="AEN4634"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4600"
+NAME="AEN4635"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4613"
+NAME="AEN4648"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4622"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4503"
+HREF="x102.html#AEN4543"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="String utilities"
-HREF="x102.html#AEN4503"><LINK
+HREF="x102.html#AEN4543"><LINK
REL="PREVIOUS"
TITLE="FcUcs4ToUtf8"
HREF="fcucs4toutf8.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4564"
+NAME="AEN4601"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4567"
+NAME="AEN4604"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4568"
+NAME="AEN4605"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4581"
+NAME="AEN4618"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4589"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4503"
+HREF="x102.html#AEN4543"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="String utilities"
-HREF="x102.html#AEN4503"><LINK
+HREF="x102.html#AEN4543"><LINK
REL="PREVIOUS"
TITLE="FUNCTIONS"
HREF="x102.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN4510"
+NAME="AEN4551"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN4513"
+NAME="AEN4554"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN4514"
+NAME="AEN4555"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN4525"
+NAME="AEN4566"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN4532"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN4503"
+HREF="x102.html#AEN4543"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcValue"
-HREF="x102.html#AEN1522"><LINK
+HREF="x102.html#AEN1463"><LINK
REL="PREVIOUS"
TITLE="FUNCTIONS"
HREF="x102.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1530"
+NAME="AEN1472"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1533"
+NAME="AEN1475"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1534"
+NAME="AEN1476"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1541"
+NAME="AEN1483"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1545"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1522"
+HREF="x102.html#AEN1463"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcValue"
-HREF="x102.html#AEN1522"><LINK
+HREF="x102.html#AEN1463"><LINK
REL="PREVIOUS"
TITLE="FcValuePrint"
HREF="fcvalueprint.html"></HEAD
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1597"
+NAME="AEN1533"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1600"
+NAME="AEN1536"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1601"
+NAME="AEN1537"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1610"
+NAME="AEN1546"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1613"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1522"
+HREF="x102.html#AEN1463"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcValue"
-HREF="x102.html#AEN1522"><LINK
+HREF="x102.html#AEN1463"><LINK
REL="PREVIOUS"
TITLE="FcValueSave"
HREF="fcvaluesave.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1575"
+NAME="AEN1513"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1578"
+NAME="AEN1516"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1579"
+NAME="AEN1517"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1586"
+NAME="AEN1524"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1590"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1522"
+HREF="x102.html#AEN1463"
ACCESSKEY="U"
>Up</A
></TD
HREF="t1.html"><LINK
REL="UP"
TITLE="FcValue"
-HREF="x102.html#AEN1522"><LINK
+HREF="x102.html#AEN1463"><LINK
REL="PREVIOUS"
TITLE="FcValueDestroy"
HREF="fcvaluedestroy.html"><LINK
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1552"
+NAME="AEN1492"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1555"
+NAME="AEN1495"
></A
><H2
>Synopsis</H2
><P
></P
><A
-NAME="AEN1556"
+NAME="AEN1496"
></A
><TABLE
BORDER="0"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1563"
+NAME="AEN1503"
></A
><H2
>Description</H2
</P
></DIV
><DIV
-CLASS="REFSECT1"
-><A
-NAME="AEN1568"
-></A
-><H2
->Version</H2
-><P
->Fontconfig version 2.10.91
-
- </P
-></DIV
-><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
ALIGN="center"
VALIGN="top"
><A
-HREF="x102.html#AEN1522"
+HREF="x102.html#AEN1463"
ACCESSKEY="U"
>Up</A
></TD
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML
+><HEAD
+><TITLE
+>FcWeightFromOpenType</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
+REL="HOME"
+HREF="t1.html"><LINK
+REL="UP"
+TITLE="FcWeight"
+HREF="x102.html#AEN3573"><LINK
+REL="PREVIOUS"
+TITLE="FUNCTIONS"
+HREF="x102.html"><LINK
+REL="NEXT"
+TITLE="FcWeightToOpenType"
+HREF="fcweighttoopentype.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+SUMMARY="Header navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+></TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="x102.html"
+ACCESSKEY="P"
+><<< Previous</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="fcweighttoopentype.html"
+ACCESSKEY="N"
+>Next >>></A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><H1
+><A
+NAME="FCWEIGHTFROMOPENTYPE"
+></A
+>FcWeightFromOpenType</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN3581"
+></A
+><H2
+>Name</H2
+>FcWeightFromOpenType -- Convert from OpenType weight values to fontconfig ones</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN3584"
+></A
+><H2
+>Synopsis</H2
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3585"
+></A
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="FUNCSYNOPSISINFO"
+>#include <fontconfig/fontconfig.h>
+ </PRE
+></TD
+></TR
+></TABLE
+><P
+><CODE
+><CODE
+CLASS="FUNCDEF"
+>int <TT
+CLASS="FUNCTION"
+>FcWeightFromOpenType</TT
+></CODE
+>(int<TT
+CLASS="PARAMETER"
+><I
+>ot_weight</I
+></TT
+>);</CODE
+></P
+><P
+></P
+></DIV
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN3592"
+></A
+><H2
+>Description</H2
+><P
+><TT
+CLASS="FUNCTION"
+>FcWeightFromOpenType</TT
+> returns an integer value
+to use with FC_WEIGHT, from an integer in the 1..1000 range, resembling
+the numbers from OpenType specification's OS/2 usWeight numbers, which
+are also similar to CSS font-weight numbers. If input is negative,
+zero, or greater than 1000, returns -1. This function linearly interpolates
+between various FC_WEIGHT_* constants. As such, the returned value does not
+necessarily match any of the predefined constants.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN3596"
+></A
+><H2
+>Since</H2
+><P
+>version 2.11.91</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="x102.html"
+ACCESSKEY="P"
+><<< Previous</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="t1.html"
+ACCESSKEY="H"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="fcweighttoopentype.html"
+ACCESSKEY="N"
+>Next >>></A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>FUNCTIONS</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="x102.html#AEN3573"
+ACCESSKEY="U"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>FcWeightToOpenType</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML
+><HEAD
+><TITLE
+>FcWeightToOpenType</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
+REL="HOME"
+HREF="t1.html"><LINK
+REL="UP"
+TITLE="FcWeight"
+HREF="x102.html#AEN3573"><LINK
+REL="PREVIOUS"
+TITLE="FcWeightFromOpenType"
+HREF="fcweightfromopentype.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+SUMMARY="Header navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+></TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="fcweightfromopentype.html"
+ACCESSKEY="P"
+><<< Previous</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+> </TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><H1
+><A
+NAME="FCWEIGHTTOOPENTYPE"
+></A
+>FcWeightToOpenType</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN3604"
+></A
+><H2
+>Name</H2
+>FcWeightToOpenType -- Convert from fontconfig weight values to OpenType ones</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN3607"
+></A
+><H2
+>Synopsis</H2
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3608"
+></A
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="FUNCSYNOPSISINFO"
+>#include <fontconfig/fontconfig.h>
+ </PRE
+></TD
+></TR
+></TABLE
+><P
+><CODE
+><CODE
+CLASS="FUNCDEF"
+>int <TT
+CLASS="FUNCTION"
+>FcWeightToOpenType</TT
+></CODE
+>(int<TT
+CLASS="PARAMETER"
+><I
+>ot_weight</I
+></TT
+>);</CODE
+></P
+><P
+></P
+></DIV
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN3615"
+></A
+><H2
+>Description</H2
+><P
+><TT
+CLASS="FUNCTION"
+>FcWeightToOpenType</TT
+> is the inverse of
+<TT
+CLASS="FUNCTION"
+>FcWeightFromOpenType</TT
+>. If the input is less than
+FC_WEIGHT_THIN or greater than FC_WEIGHT_EXTRABLACK, returns -1. Otherwise
+returns a number in the range 1 to 1000.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN3620"
+></A
+><H2
+>Since</H2
+><P
+>version 2.11.91</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="fcweightfromopentype.html"
+ACCESSKEY="P"
+><<< Previous</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="t1.html"
+ACCESSKEY="H"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+> </TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>FcWeightFromOpenType</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="x102.html#AEN3573"
+ACCESSKEY="U"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+> </TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file
<HTML
><HEAD
><TITLE
->Fontconfig Developers Reference, Version 2.10.91
+>Fontconfig Developers Reference, Version 2.11.93
</TITLE
><META
NAME="GENERATOR"
CLASS="TITLE"
><A
NAME="AEN1"
->Fontconfig Developers Reference, Version 2.10.91</A
+>Fontconfig Developers Reference, Version 2.11.93</A
></H1
><A
HREF="ln12.html"
><H2
CLASS="SECT2"
><A
-NAME="AEN255"
+NAME="AEN241"
>FcPattern</A
></H2
><DIV
><H2
CLASS="SECT2"
><A
-NAME="AEN1056"
+NAME="AEN1031"
>FcFontSet</A
></H2
><DIV
><H2
CLASS="SECT2"
><A
-NAME="AEN1283"
+NAME="AEN1242"
>FcObjectSet</A
></H2
><DIV
><H2
CLASS="SECT2"
><A
-NAME="AEN1393"
+NAME="AEN1344"
>FreeType specific functions</A
></H2
><DIV
><H2
CLASS="SECT2"
><A
-NAME="AEN1522"
+NAME="AEN1463"
>FcValue</A
></H2
><DIV
><H2
CLASS="SECT2"
><A
-NAME="AEN1616"
+NAME="AEN1549"
>FcCharSet</A
></H2
><DIV
><H2
CLASS="SECT2"
><A
-NAME="AEN2094"
+NAME="AEN2016"
>FcLangSet</A
></H2
><DIV
> -- Get the default languages list</DT
><DT
><A
+HREF="fclangsetgetlangs.html"
+>FcLangSetGetLangs</A
+> -- get the list of languages in the langset</DT
+><DT
+><A
HREF="fcgetlangs.html"
>FcGetLangs</A
> -- Get list of languages</DT
><H2
CLASS="SECT2"
><A
-NAME="AEN2485"
+NAME="AEN2410"
>FcMatrix</A
></H2
><DIV
><H2
CLASS="SECT2"
><A
-NAME="AEN2679"
+NAME="AEN2590"
+>FcRange</A
+></H2
+><DIV
+CLASS="TOC"
+><DL
+><DT
+><B
+>Table of Contents</B
+></DT
+><DT
+><A
+HREF="fcrangecopy.html"
+>FcRangeCopy</A
+> -- Copy a range object</DT
+><DT
+><A
+HREF="fcrangecreatedouble.html"
+>FcRangeCreateDouble</A
+> -- create a range object for double</DT
+><DT
+><A
+HREF="fcrangecreateinteger.html"
+>FcRangeCreateInteger</A
+> -- create a range object for integer</DT
+><DT
+><A
+HREF="fcrangedestroy.html"
+>FcRangeDestroy</A
+> -- destroy a range object</DT
+><DT
+><A
+HREF="fcrangegetdouble.html"
+>FcRangeGetDouble</A
+> -- Get the range in double</DT
+></DL
+></DIV
+><P
+>An FcRange holds two variables to indicate a range in between.
+ </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN2718"
>FcConfig</A
></H2
><DIV
HREF="fcconfigparseandload.html"
>FcConfigParseAndLoad</A
> -- load a configuration file</DT
+><DT
+><A
+HREF="fcconfiggetsysroot.html"
+>FcConfigGetSysRoot</A
+> -- Obtain the system root directory</DT
+><DT
+><A
+HREF="fcconfigsetsysroot.html"
+>FcConfigSetSysRoot</A
+> -- Set the system root directory</DT
></DL
></DIV
><P
><H2
CLASS="SECT2"
><A
-NAME="AEN3392"
+NAME="AEN3420"
>FcObjectType</A
></H2
><DIV
><H2
CLASS="SECT2"
><A
-NAME="AEN3463"
+NAME="AEN3485"
>FcConstant</A
></H2
><DIV
><H2
CLASS="SECT2"
><A
-NAME="AEN3559"
+NAME="AEN3573"
+>FcWeight</A
+></H2
+><DIV
+CLASS="TOC"
+><DL
+><DT
+><B
+>Table of Contents</B
+></DT
+><DT
+><A
+HREF="fcweightfromopentype.html"
+>FcWeightFromOpenType</A
+> -- Convert from OpenType weight values to fontconfig ones</DT
+><DT
+><A
+HREF="fcweighttoopentype.html"
+>FcWeightToOpenType</A
+> -- Convert from fontconfig weight values to OpenType ones</DT
+></DL
+></DIV
+><P
+>Maps weights to and from OpenType weights.
+ </P
+></DIV
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="AEN3623"
>FcBlanks</A
></H2
><DIV
><H2
CLASS="SECT2"
><A
-NAME="AEN3650"
+NAME="AEN3706"
>FcAtomic</A
></H2
><DIV
><H2
CLASS="SECT2"
><A
-NAME="AEN3827"
+NAME="AEN3867"
>File and Directory routines</A
></H2
><DIV
> -- load a directory cache</DT
><DT
><A
+HREF="fcdircacherescan.html"
+>FcDirCacheRescan</A
+> -- Re-scan a directory cache</DT
+><DT
+><A
HREF="fcdircacheread.html"
>FcDirCacheRead</A
> -- read or construct a directory cache</DT
><H2
CLASS="SECT2"
><A
-NAME="AEN4100"
+NAME="AEN4145"
>FcCache routines</A
></H2
><DIV
><H2
CLASS="SECT2"
><A
-NAME="AEN4265"
+NAME="AEN4302"
>FcStrSet and FcStrList</A
></H2
><DIV
> -- create a string iterator</DT
><DT
><A
+HREF="fcstrlistfirst.html"
+>FcStrListFirst</A
+> -- get first string in iteration</DT
+><DT
+><A
HREF="fcstrlistnext.html"
>FcStrListNext</A
> -- get next string in iteration</DT
><H2
CLASS="SECT2"
><A
-NAME="AEN4503"
+NAME="AEN4543"
>String utilities</A
></H2
><DIV
the file
ftface FC_FT_FACE FT_Face Use the specified FreeType
face object
- rasterizer FC_RASTERIZER String Which rasterizer is in use
+ rasterizer FC_RASTERIZER String Which rasterizer is in use (deprecated)
outline FC_OUTLINE Bool Whether the glyphs are outlines
scalable FC_SCALABLE Bool Whether glyphs can be scaled
scale FC_SCALE Double Scale factor for point->pixel
conversions
+ color FC_COLOR Bool Whether any glyphs have color
dpi FC_DPI Double Target dots per inch
rgba FC_RGBA Int unknown, rgb, bgr, vrgb,
vbgr, none - subpixel geometry
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
default value of familylang,
stylelang and fullnamelang
+ prgname FC_PRGNAME String Name of the running program
+ hash FC_HASH String SHA256 hash value of the font data
+ with "sha256:" prefix (deprecated)
+ postscriptname FC_POSTSCRIPT_NAME String Font name in PostScript
</PRE
></TD
></TR
file String The filename holding the font
index Int The index of the font within the file
ftface FT_Face Use the specified FreeType face object
- rasterizer String Which rasterizer is in use
+ 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,
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
</PRE
></TD
></TR
><architecture></TT
>.cache-<TT
CLASS="LITERAL"
-><version</TT
+><version></TT
>'',
where <TT
CLASS="LITERAL"
"prepend_first" Insert at head of list Insert at head of list
"append" Append after matching Append at end of list
"append_last" Append at end of list Append at end of list
+ "delete" Delete matching value Delete all values
+ "delete_all" Delete all values Delete all values
</PRE
></TD
></TR
extralight weight 40
ultralight weight 40
light weight 50
+ demilight weight 55
+ semilight weight 55
book weight 75
regular weight 80
normal weight 80
><H2
>Version</H2
><P
->Fontconfig version 2.10.91
+>Fontconfig version 2.11.93
</P
></DIV
file String The filename holding the font
index Int The index of the font within the file
ftface FT_Face Use the specified FreeType face object
- rasterizer String Which rasterizer is in use
+ 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,
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>
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>
"prepend_first" Insert at head of list Insert at head of list
"append" Append after matching Append at end of list
"append_last" Append at end of list Append at end of list
+ "delete" Delete matching value Delete all values
+ "delete_all" Delete all values Delete all values
</programlisting>
</para></refsect2>
<refsect2><title><literal><int></literal>, <literal><double></literal>, <literal><string></literal>, <literal><bool></literal></title><para>
extralight weight 40
ultralight weight 40
light weight 50
+ demilight weight 55
+ semilight weight 55
book weight 75
regular weight 80
normal weight 80
- fonts-conf
+ fonts-conf
Name
- fonts.conf -- Font configuration files
+ fonts.conf -- Font configuration files
Synopsis
- /etc/fonts/fonts.conf
- /etc/fonts/fonts.dtd
- /etc/fonts/conf.d
- $XDG_CONFIG_HOME/fontconfig/conf.d
- $XDG_CONFIG_HOME/fontconfig/fonts.conf
- ~/.fonts.conf.d
- ~/.fonts.conf
+ /etc/fonts/fonts.conf
+ /etc/fonts/fonts.dtd
+ /etc/fonts/conf.d
+ $XDG_CONFIG_HOME/fontconfig/conf.d
+ $XDG_CONFIG_HOME/fontconfig/fonts.conf
+ ~/.fonts.conf.d
+ ~/.fonts.conf
Description
Functional Overview
- Fontconfig contains two essential modules, the configuration module which
- builds an internal configuration from XML files and the matching module
- which accepts font patterns and returns the nearest matching font.
-
- Font Configuration
-
- The configuration module consists of the FcConfig datatype, libexpat and
- FcConfigParse which walks over an XML tree and amends a configuration with
- data found within. From an external perspective, configuration of the
- library consists of generating a valid XML tree and feeding that to
- FcConfigParse. The only other mechanism provided to applications for
- changing the running configuration is to add fonts and directories to the
- list of application-provided font files.
-
- The intent is to make font configurations relatively static, and shared by
- as many applications as possible. It is hoped that this will lead to more
- stable font selection when passing names from one application to another.
- XML was chosen as a configuration file format because it provides a format
- which is easy for external agents to edit while retaining the correct
+ Fontconfig contains two essential modules, the configuration
+ module which builds an internal configuration from XML files
+ and the matching module which accepts font patterns and returns
+ the nearest matching font.
+
+Font Configuration
+
+ The configuration module consists of the FcConfig datatype,
+ libexpat and FcConfigParse which walks over an XML tree and
+ amends a configuration with data found within. From an external
+ perspective, configuration of the library consists of
+ generating a valid XML tree and feeding that to FcConfigParse.
+ The only other mechanism provided to applications for changing
+ the running configuration is to add fonts and directories to
+ the list of application-provided font files.
+
+ The intent is to make font configurations relatively static,
+ and shared by as many applications as possible. It is hoped
+ that this will lead to more stable font selection when passing
+ names from one application to another. XML was chosen as a
+ configuration file format because it provides a format which is
+ easy for external agents to edit while retaining the correct
structure and syntax.
- Font configuration is separate from font matching; applications needing to
- do their own matching can access the available fonts from the library and
- perform private matching. The intent is to permit applications to pick and
- choose appropriate functionality from the library instead of forcing them
- to choose between this library and a private configuration mechanism. The
- hope is that this will ensure that configuration of fonts for all
- applications can be centralized in one place. Centralizing font
- configuration will simplify and regularize font installation and
- customization.
-
- Font Properties
-
- While font patterns may contain essentially any properties, there are some
- well known properties with associated types. Fontconfig uses some of these
- properties for font matching and font completion. Others are provided as a
- convenience for the applications' rendering mechanism.
-
- Property Type Description
- --------------------------------------------------------------
- family String Font family names
- familylang String Languages corresponding to each family
- style String Font style. Overrides weight and slant
- stylelang String Languages corresponding to each style
- fullname String Font full names (often includes style)
- fullnamelang String Languages corresponding to each fullname
- slant Int Italic, oblique or roman
- weight Int Light, medium, demibold, bold or black
- size Double Point size
- width Int Condensed, normal or expanded
- aspect Double Stretches glyphs horizontally before hinting
- pixelsize Double Pixel size
- spacing Int Proportional, dual-width, monospace or charcell
- foundry String Font foundry name
- antialias Bool Whether glyphs can be antialiased
- hinting Bool Whether the rasterizer should use hinting
- hintstyle Int Automatic hinting style
- verticallayout Bool Use vertical layout
- autohint Bool Use autohinter instead of normal hinter
- globaladvance Bool Use font global advance data (deprecated)
- file String The filename holding the font
- index Int The index of the font within the file
- ftface FT_Face Use the specified FreeType face object
- rasterizer String Which rasterizer is in use
- outline Bool Whether the glyphs are outlines
- scalable Bool Whether glyphs can be scaled
- scale Double Scale factor for point->pixel conversions
- dpi Double Target dots per inch
- rgba Int unknown, rgb, bgr, vrgb, vbgr,
- none - subpixel geometry
- lcdfilter Int Type of LCD filter
- minspace Bool Eliminate leading from line spacing
- charset CharSet Unicode chars encoded by the font
- lang String List of RFC-3066-style languages this
- font supports
- fontversion Int Version number of the font
- capability String List of layout capabilities in the font
- embolden Bool Rasterizer should synthetically embolden the font
-
-
- Font Matching
-
- Fontconfig performs matching by measuring the distance from a provided
- pattern to all of the available fonts in the system. The closest matching
- font is selected. This ensures that a font will always be returned, but
- doesn't ensure that it is anything like the requested pattern.
-
- Font matching starts with an application constructed pattern. The desired
- attributes of the resulting font are collected together in a pattern. Each
- property of the pattern can contain one or more values; these are listed
- in priority order; matches earlier in the list are considered "closer"
- than matches later in the list.
+ Font configuration is separate from font matching; applications
+ needing to do their own matching can access the available fonts
+ from the library and perform private matching. The intent is to
+ permit applications to pick and choose appropriate
+ functionality from the library instead of forcing them to
+ choose between this library and a private configuration
+ mechanism. The hope is that this will ensure that configuration
+ of fonts for all applications can be centralized in one place.
+ Centralizing font configuration will simplify and regularize
+ font installation and customization.
+
+Font Properties
+
+ While font patterns may contain essentially any properties,
+ there are some well known properties with associated types.
+ Fontconfig uses some of these properties for font matching and
+ font completion. Others are provided as a convenience for the
+ applications' rendering mechanism.
+ Property Type Description
+ --------------------------------------------------------------
+ family String Font family names
+ familylang String Languages corresponding to each family
+ style String Font style. Overrides weight and slant
+ stylelang String Languages corresponding to each style
+ fullname String Font full names (often includes style)
+ fullnamelang String Languages corresponding to each fullname
+ slant Int Italic, oblique or roman
+ weight Int Light, medium, demibold, bold or black
+ size Double Point size
+ width Int Condensed, normal or expanded
+ aspect Double Stretches glyphs horizontally before hinting
+ pixelsize Double Pixel size
+ spacing Int Proportional, dual-width, monospace or charcel
+l
+ foundry String Font foundry name
+ antialias Bool Whether glyphs can be antialiased
+ hinting Bool Whether the rasterizer should use hinting
+ hintstyle Int Automatic hinting style
+ verticallayout Bool Use vertical layout
+ autohint Bool Use autohinter instead of normal hinter
+ globaladvance Bool Use font global advance data (deprecated)
+ file String The filename holding the font
+ index Int The index of the font within the file
+ ftface FT_Face Use the specified FreeType face object
+ 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,
+ none - subpixel geometry
+ lcdfilter Int Type of LCD filter
+ minspace Bool Eliminate leading from line spacing
+ charset CharSet Unicode chars encoded by the font
+ lang String List of RFC-3066-style languages this
+ 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 f
+ont
+ 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 ena
+bled
+ 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
+
+Font Matching
+
+ Fontconfig performs matching by measuring the distance from a
+ provided pattern to all of the available fonts in the system.
+ The closest matching font is selected. This ensures that a font
+ will always be returned, but doesn't ensure that it is anything
+ like the requested pattern.
+
+ Font matching starts with an application constructed pattern.
+ The desired attributes of the resulting font are collected
+ together in a pattern. Each property of the pattern can contain
+ one or more values; these are listed in priority order; matches
+ earlier in the list are considered "closer" than matches later
+ in the list.
The initial pattern is modified by applying the list of editing
- instructions specific to patterns found in the configuration; each
- consists of a match predicate and a set of editing operations. They are
- executed in the order they appeared in the configuration. Each match
- causes the associated sequence of editing operations to be applied.
-
- After the pattern has been edited, a sequence of default substitutions are
- performed to canonicalize the set of available properties; this avoids the
- need for the lower layers to constantly provide default values for various
- font properties during rendering.
-
- The canonical font pattern is finally matched against all available fonts.
- The distance from the pattern to the font is measured for each of several
- properties: foundry, charset, family, lang, spacing, pixelsize, style,
- slant, weight, antialias, rasterizer and outline. This list is in priority
- order -- results of comparing earlier elements of this list weigh more
- heavily than later elements.
-
- There is one special case to this rule; family names are split into two
- bindings; strong and weak. Strong family names are given greater
- precedence in the match than lang elements while weak family names are
- given lower precedence than lang elements. This permits the document
- language to drive font selection when any document specified font is
- unavailable.
-
- The pattern representing that font is augmented to include any properties
- found in the pattern but not found in the font itself; this permits the
- application to pass rendering instructions or any other data through the
- matching system. Finally, the list of editing instructions specific to
- fonts found in the configuration are applied to the pattern. This modified
- pattern is returned to the application.
-
- The return value contains sufficient information to locate and rasterize
- the font, including the file name, pixel size and other rendering data. As
- none of the information involved pertains to the FreeType library,
- applications are free to use any rasterization engine or even to take the
- identified font file and access it directly.
-
- The match/edit sequences in the configuration are performed in two passes
- because there are essentially two different operations necessary -- the
- first is to modify how fonts are selected; aliasing families and adding
- suitable defaults. The second is to modify how the selected fonts are
- rasterized. Those must apply to the selected font, not the original
- pattern as false matches will often occur.
-
- Font Names
-
- Fontconfig provides a textual representation for patterns that the library
- can both accept and generate. The representation is in three parts, first
- a list of family names, second a list of point sizes and finally a list of
- additional properties:
-
- <families>-<point sizes>:<name1>=<values1>:<name2>=<values2>...
-
-
- Values in a list are separated with commas. The name needn't include
- either families or point sizes; they can be elided. In addition, there are
- symbolic constants that simultaneously indicate both a name and a value.
- Here are some examples:
-
- Name Meaning
- ----------------------------------------------------------
- Times-12 12 point Times Roman
- Times-12:bold 12 point Times Bold
- Courier:italic Courier Italic in the default size
- Monospace:matrix=1 .1 0 1 The users preferred monospace font
- with artificial obliquing
-
-
- The '\', '-', ':' and ',' characters in family names must be preceded by a
- '\' character to avoid having them misinterpreted. Similarly, values
- containing '\', '=', '_', ':' and ',' must also have them preceded by a
- '\' character. The '\' characters are stripped out of the family name and
- values as the font name is read.
+ instructions specific to patterns found in the configuration;
+ each consists of a match predicate and a set of editing
+ operations. They are executed in the order they appeared in the
+ configuration. Each match causes the associated sequence of
+ editing operations to be applied.
+
+ After the pattern has been edited, a sequence of default
+ substitutions are performed to canonicalize the set of
+ available properties; this avoids the need for the lower layers
+ to constantly provide default values for various font
+ properties during rendering.
+
+ The canonical font pattern is finally matched against all
+ available fonts. The distance from the pattern to the font is
+ measured for each of several properties: foundry, charset,
+ family, lang, spacing, pixelsize, style, slant, weight,
+ antialias, rasterizer and outline. This list is in priority
+ order -- results of comparing earlier elements of this list
+ weigh more heavily than later elements.
+
+ There is one special case to this rule; family names are split
+ into two bindings; strong and weak. Strong family names are
+ given greater precedence in the match than lang elements while
+ weak family names are given lower precedence than lang
+ elements. This permits the document language to drive font
+ selection when any document specified font is unavailable.
+
+ The pattern representing that font is augmented to include any
+ properties found in the pattern but not found in the font
+ itself; this permits the application to pass rendering
+ instructions or any other data through the matching system.
+ Finally, the list of editing instructions specific to fonts
+ found in the configuration are applied to the pattern. This
+ modified pattern is returned to the application.
+
+ The return value contains sufficient information to locate and
+ rasterize the font, including the file name, pixel size and
+ other rendering data. As none of the information involved
+ pertains to the FreeType library, applications are free to use
+ any rasterization engine or even to take the identified font
+ file and access it directly.
+
+ The match/edit sequences in the configuration are performed in
+ two passes because there are essentially two different
+ operations necessary -- the first is to modify how fonts are
+ selected; aliasing families and adding suitable defaults. The
+ second is to modify how the selected fonts are rasterized.
+ Those must apply to the selected font, not the original pattern
+ as false matches will often occur.
+
+Font Names
+
+ Fontconfig provides a textual representation for patterns that
+ the library can both accept and generate. The representation is
+ in three parts, first a list of family names, second a list of
+ point sizes and finally a list of additional properties:
+ <families>-<point sizes>:<name1>=<values1>:<name2>=<values2>...
+
+ Values in a list are separated with commas. The name needn't
+ include either families or point sizes; they can be elided. In
+ addition, there are symbolic constants that simultaneously
+ indicate both a name and a value. Here are some examples:
+ Name Meaning
+ ----------------------------------------------------------
+ Times-12 12 point Times Roman
+ Times-12:bold 12 point Times Bold
+ Courier:italic Courier Italic in the default size
+ Monospace:matrix=1 .1 0 1 The users preferred monospace font
+ with artificial obliquing
+
+ The '\', '-', ':' and ',' characters in family names must be
+ preceded by a '\' character to avoid having them
+ misinterpreted. Similarly, values containing '\', '=', '_', ':'
+ and ',' must also have them preceded by a '\' character. The
+ '\' characters are stripped out of the family name and values
+ as the font name is read.
Debugging Applications
- To help diagnose font and applications problems, fontconfig is built with
- a large amount of internal debugging left enabled. It is controlled by
- means of the FC_DEBUG environment variable. The value of this variable is
- interpreted as a number, and each bit within that value controls different
- debugging messages.
-
- Name Value Meaning
- ---------------------------------------------------------
- MATCH 1 Brief information about font matching
- MATCHV 2 Extensive font matching information
- EDIT 4 Monitor match/test/edit execution
- FONTSET 8 Track loading of font information at startup
- CACHE 16 Watch cache files being written
- CACHEV 32 Extensive cache file writing information
- PARSE 64 (no longer in use)
- SCAN 128 Watch font files being scanned to build caches
- SCANV 256 Verbose font file scanning information
- MEMORY 512 Monitor fontconfig memory usage
- CONFIG 1024 Monitor which config files are loaded
- LANGSET 2048 Dump char sets used to construct lang values
- OBJTYPES 4096 Display message when value typechecks fail
-
-
- Add the value of the desired debug levels together and assign that (in
- base 10) to the FC_DEBUG environment variable before running the
- application. Output from these statements is sent to stdout.
+ To help diagnose font and applications problems, fontconfig is
+ built with a large amount of internal debugging left enabled.
+ It is controlled by means of the FC_DEBUG environment variable.
+ The value of this variable is interpreted as a number, and each
+ bit within that value controls different debugging messages.
+ Name Value Meaning
+ ---------------------------------------------------------
+ MATCH 1 Brief information about font matching
+ MATCHV 2 Extensive font matching information
+ EDIT 4 Monitor match/test/edit execution
+ FONTSET 8 Track loading of font information at startup
+ CACHE 16 Watch cache files being written
+ CACHEV 32 Extensive cache file writing information
+ PARSE 64 (no longer in use)
+ SCAN 128 Watch font files being scanned to build caches
+ SCANV 256 Verbose font file scanning information
+ MEMORY 512 Monitor fontconfig memory usage
+ CONFIG 1024 Monitor which config files are loaded
+ LANGSET 2048 Dump char sets used to construct lang values
+ OBJTYPES 4096 Display message when value typechecks fail
+
+ Add the value of the desired debug levels together and assign
+ that (in base 10) to the FC_DEBUG environment variable before
+ running the application. Output from these statements is sent
+ to stdout.
Lang Tags
- Each font in the database contains a list of languages it supports. This
- is computed by comparing the Unicode coverage of the font with the
- orthography of each language. Languages are tagged using an RFC-3066
- compatible naming and occur in two parts -- the ISO 639 language tag
- followed a hyphen and then by the ISO 3166 country code. The hyphen and
- country code may be elided.
+ Each font in the database contains a list of languages it
+ supports. This is computed by comparing the Unicode coverage of
+ the font with the orthography of each language. Languages are
+ tagged using an RFC-3066 compatible naming and occur in two
+ parts -- the ISO 639 language tag followed a hyphen and then by
+ the ISO 3166 country code. The hyphen and country code may be
+ elided.
+
+ Fontconfig has orthographies for several languages built into
+ the library. No provision has been made for adding new ones
+ aside from rebuilding the library. It currently supports 122 of
+ the 139 languages named in ISO 639-1, 141 of the languages with
+ two-letter codes from ISO 639-2 and another 30 languages with
+ only three-letter codes. Languages with both two and three
+ letter codes are provided with only the two letter code.
+
+ For languages used in multiple territories with radically
+ different character sets, fontconfig includes per-territory
+ orthographies. This includes Azerbaijani, Kurdish, Pashto,
+ Tigrinya and Chinese.
- Fontconfig has orthographies for several languages built into the library.
- No provision has been made for adding new ones aside from rebuilding the
- library. It currently supports 122 of the 139 languages named in ISO
- 639-1, 141 of the languages with two-letter codes from ISO 639-2 and
- another 30 languages with only three-letter codes. Languages with both two
- and three letter codes are provided with only the two letter code.
+Configuration File Format
- For languages used in multiple territories with radically different
- character sets, fontconfig includes per-territory orthographies. This
- includes Azerbaijani, Kurdish, Pashto, Tigrinya and Chinese.
+ Configuration files for fontconfig are stored in XML format;
+ this format makes external configuration tools easier to write
+ and ensures that they will generate syntactically correct
+ configuration files. As XML files are plain text, they can also
+ be manipulated by the expert user using a text editor.
+
+ The fontconfig document type definition resides in the external
+ entity "fonts.dtd"; this is normally stored in the default font
+ configuration directory (/etc/fonts). Each configuration file
+ should contain the following structure:
+ <?xml version="1.0"?>
+ <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+ <fontconfig>
+ ...
+ </fontconfig>
-Configuration File Format
+<fontconfig>
- Configuration files for fontconfig are stored in XML format; this format
- makes external configuration tools easier to write and ensures that they
- will generate syntactically correct configuration files. As XML files are
- plain text, they can also be manipulated by the expert user using a text
- editor.
-
- The fontconfig document type definition resides in the external entity
- "fonts.dtd"; this is normally stored in the default font configuration
- directory (/etc/fonts). Each configuration file should contain the
- following structure:
-
- <?xml version="1.0"?>
- <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
- <fontconfig>
- ...
- </fontconfig>
-
-
- <fontconfig>
-
- This is the top level element for a font configuration and can contain
- <dir>, <cachedir>, <include>, <match> and <alias> elements in any order.
-
- <dir prefix="default">
-
- This element contains a directory name which will be scanned for font
- files to include in the set of available fonts. If 'prefix' is set to
- "xdg", the value in the XDG_DATA_HOME environment variable will be added
- as the path prefix. please see XDG Base Directory Specification for more
- details.
-
- <cachedir prefix="default">
-
- This element contains a directory name that is supposed to be stored or
- read the cache of font information. If multiple elements are specified in
- 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 ``<hash
- value>-<architecture>.cache-<version'', where <version> is the font
- configureation file version number (currently 3).
-
- <include ignore_missing="no" prefix="default">
-
- This element contains the name of an additional configuration file or
- directory. If a directory, every file within that directory starting with
- an ASCII digit (U+0030 - U+0039) and ending with the string ``.conf'' will
- be processed in sorted order. When the XML datatype is traversed by
- FcConfigParse, the contents of the file(s) will also be incorporated into
- the configuration by passing the filename(s) to FcConfigLoadAndParse. If
- 'ignore_missing' is set to "yes" instead of the default "no", a missing
- file or directory will elicit no warning message from the library. If
- 'prefix' is set to "xdg", the value in the XDG_CONFIG_HOME environment
- variable will be added as the path prefix. please see XDG Base Directory
+ This is the top level element for a font configuration and can
+ contain <dir>, <cachedir>, <include>, <match> and <alias>
+ elements in any order.
+
+<dir prefix="default">
+
+ This element contains a directory name which will be scanned
+ for font files to include in the set of available fonts. If
+ 'prefix' is set to "xdg", the value in the XDG_DATA_HOME
+ environment variable will be added as the path prefix. please
+ see XDG Base Directory Specification for more details.
+
+<cachedir prefix="default">
+
+ This element contains a directory name that is supposed to be
+ stored or read the cache of font information. If multiple
+ elements are specified in 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 ``<hash value>-<architecture>.cache-<version>'', where
+ <version> is the font configureation file version number
+ (currently 3).
+
+<include ignore_missing="no" prefix="default">
+
+ This element contains the name of an additional configuration
+ file or directory. If a directory, every file within that
+ directory starting with an ASCII digit (U+0030 - U+0039) and
+ ending with the string ``.conf'' will be processed in sorted
+ order. When the XML datatype is traversed by FcConfigParse, the
+ contents of the file(s) will also be incorporated into the
+ configuration by passing the filename(s) to
+ FcConfigLoadAndParse. If 'ignore_missing' is set to "yes"
+ instead of the default "no", a missing file or directory will
+ elicit no warning message from the library. If 'prefix' is set
+ to "xdg", the value in the XDG_CONFIG_HOME environment variable
+ will be added as the path prefix. please see XDG Base Directory
Specification for more details.
- <config>
-
- This element provides a place to consolidate additional configuration
- information. <config> can contain <blank> and <rescan> elements in any
- order.
-
- <blank>
-
- Fonts often include "broken" glyphs which appear in the encoding but are
- drawn as blanks on the screen. Within the <blank> element, place each
- Unicode characters which is supposed to be blank in an <int> element.
- Characters outside of this set which are drawn as blank will be elided
- from the set of characters supported by the font.
-
- <rescan>
-
- The <rescan> element holds an <int> element which indicates the default
- interval between automatic checks for font configuration changes.
- Fontconfig will validate all of the configuration files and directories
- and automatically rebuild the internal datastructures when this interval
- passes.
-
- <selectfont>
-
- This element is used to black/white list fonts from being listed or
- matched against. It holds acceptfont and rejectfont elements.
-
- <acceptfont>
-
- Fonts matched by an acceptfont element are "whitelisted"; such fonts are
- explicitly included in the set of fonts used to resolve list and match
- requests; including them in this list protects them from being
- "blacklisted" by a rejectfont element. Acceptfont elements include glob
- and pattern elements which are used to match fonts.
+<config>
+
+ This element provides a place to consolidate additional
+ configuration information. <config> can contain <blank> and
+ <rescan> elements in any order.
+
+<blank>
+
+ Fonts often include "broken" glyphs which appear in the
+ encoding but are drawn as blanks on the screen. Within the
+ <blank> element, place each Unicode characters which is
+ supposed to be blank in an <int> element. Characters outside of
+ this set which are drawn as blank will be elided from the set
+ of characters supported by the font.
+
+<rescan>
+
+ The <rescan> element holds an <int> element which indicates the
+ default interval between automatic checks for font
+ configuration changes. Fontconfig will validate all of the
+ configuration files and directories and automatically rebuild
+ the internal datastructures when this interval passes.
+
+<selectfont>
+
+ This element is used to black/white list fonts from being
+ listed or matched against. It holds acceptfont and rejectfont
+ elements.
+
+<acceptfont>
- <rejectfont>
+ Fonts matched by an acceptfont element are "whitelisted"; such
+ fonts are explicitly included in the set of fonts used to
+ resolve list and match requests; including them in this list
+ protects them from being "blacklisted" by a rejectfont element.
+ Acceptfont elements include glob and pattern elements which are
+ used to match fonts.
- Fonts matched by an rejectfont element are "blacklisted"; such fonts are
- excluded from the set of fonts used to resolve list and match requests as
- if they didn't exist in the system. Rejectfont elements include glob and
- pattern elements which are used to match fonts.
+<rejectfont>
- <glob>
+ Fonts matched by an rejectfont element are "blacklisted"; such
+ fonts are excluded from the set of fonts used to resolve list
+ and match requests as if they didn't exist in the system.
+ Rejectfont elements include glob and pattern elements which are
+ used to match fonts.
- Glob elements hold shell-style filename matching patterns (including ? and
- *) which match fonts based on their complete pathnames. This can be used
- to exclude a set of directories (/usr/share/fonts/uglyfont*), or
- particular font file types (*.pcf.gz), but the latter mechanism relies
- rather heavily on filenaming conventions which can't be relied upon. Note
- that globs only apply to directories, not to individual fonts.
+<glob>
- <pattern>
+ Glob elements hold shell-style filename matching patterns
+ (including ? and *) which match fonts based on their complete
+ pathnames. This can be used to exclude a set of directories
+ (/usr/share/fonts/uglyfont*), or particular font file types
+ (*.pcf.gz), but the latter mechanism relies rather heavily on
+ filenaming conventions which can't be relied upon. Note that
+ globs only apply to directories, not to individual fonts.
- Pattern elements perform list-style matching on incoming fonts; that is,
- they hold a list of elements and associated values. If all of those
- elements have a matching value, then the pattern matches the font. This
- can be used to select fonts based on attributes of the font (scalable,
- bold, etc), which is a more reliable mechanism than using file extensions.
- Pattern elements include patelt elements.
+<pattern>
- <patelt name="property">
+ Pattern elements perform list-style matching on incoming fonts;
+ that is, they hold a list of elements and associated values. If
+ all of those elements have a matching value, then the pattern
+ matches the font. This can be used to select fonts based on
+ attributes of the font (scalable, bold, etc), which is a more
+ reliable mechanism than using file extensions. Pattern elements
+ include patelt elements.
- Patelt elements hold a single pattern element and list of values. They
- must have a 'name' attribute which indicates the pattern element name.
- Patelt elements include int, double, string, matrix, bool, charset and
- const elements.
-
- <match target="pattern">
-
- This element holds first a (possibly empty) list of <test> elements and
- then a (possibly empty) list of <edit> elements. Patterns which match all
- of the tests are subjected to all the edits. If 'target' is set to "font"
- instead of the default "pattern", then this element applies to the font
- name resulting from a match rather than a font pattern to be matched. If
- 'target' is set to "scan", then this element applies when the font is
- scanned to build the fontconfig database.
-
- <test qual="any" name="property" target="default" compare="eq">
-
- This element contains a single value which is compared with the target
- ('pattern', 'font', 'scan' or 'default') property "property" (substitute
- any of the property names seen above). 'compare' can be one of "eq",
- "not_eq", "less", "less_eq", "more", "more_eq", "contains" or
- "not_contains". 'qual' may either be the default, "any", in which case the
- match succeeds if any value associated with the property matches the test
- value, or "all", in which case all of the values associated with the
- property must match the test value. 'ignore-blanks' takes a boolean value.
- if 'ignore-blanks' is set "true", any blanks in the string will be ignored
- on its comparison. this takes effects only when compare="eq" or
- compare="not_eq". When used in a <match target="font"> element, the
- target= attribute in the <test> element selects between matching the
- original pattern or the font. "default" selects whichever target the outer
- <match> element has selected.
-
- <edit name="property" mode="assign" binding="weak">
-
- This element contains a list of expression elements (any of the value or
- operator elements). The expression elements are evaluated at run-time and
- modify the property "property". The modification depends on whether
- "property" was matched by one of the associated <test> elements, if so,
- the modification may affect the first matched value. Any values inserted
- into the property are given the indicated binding ("strong", "weak" or
- "same") with "same" binding using the value from the matched pattern
- element. 'mode' is one of:
-
- Mode With Match Without Match
- ---------------------------------------------------------------------
- "assign" Replace matching value Replace all values
- "assign_replace" Replace all values Replace all values
- "prepend" Insert before matching Insert at head of list
- "prepend_first" Insert at head of list Insert at head of list
- "append" Append after matching Append at end of list
- "append_last" Append at end of list Append at end of list
-
-
- <int>, <double>, <string>, <bool>
-
- These elements hold a single value of the indicated type. <bool> elements
- hold either true or false. An important limitation exists in the parsing
- of floating point numbers -- fontconfig requires that the mantissa start
- with a digit, not a decimal point, so insert a leading zero for purely
- fractional values (e.g. use 0.5 instead of .5 and -0.5 instead of -.5).
-
- <matrix>
-
- This element holds four numerical expressions of an affine transformation.
- At their simplest these will be four <double> elements but they can also
- be more involved expressions.
-
- <range>
-
- This element holds the two <int> elements of a range representation.
-
- <charset>
-
- This element holds at least one <int> element of an Unicode code point or
- more.
-
- <langset>
-
- This element holds at least one <string> element of a RFC-3066-style
- languages or more.
-
- <name>
-
- Holds a property name. Evaluates to the first value from the property of
- the pattern. If the 'target' attribute is not present, it will default to
- 'default', in which case the property is returned from the font pattern
- during a target="font" match, and to the pattern during a target="pattern"
- match. The attribute can also take the values 'font' or 'pattern' to
- explicitly choose which pattern to use. It is an error to use a target of
- 'font' in a match that has target="pattern".
-
- <const>
-
- Holds the name of a constant; these are always integers and serve as
- symbolic names for common font values:
-
- Constant Property Value
- -------------------------------------
- thin weight 0
- extralight weight 40
- ultralight weight 40
- light weight 50
- book weight 75
- regular weight 80
- normal weight 80
- medium weight 100
- demibold weight 180
- semibold weight 180
- bold weight 200
- extrabold weight 205
- black weight 210
- heavy weight 210
- roman slant 0
- italic slant 100
- oblique slant 110
- ultracondensed width 50
- extracondensed width 63
- condensed width 75
- semicondensed width 87
- normal width 100
- semiexpanded width 113
- expanded width 125
- extraexpanded width 150
- ultraexpanded width 200
- proportional spacing 0
- dual spacing 90
- mono spacing 100
- charcell spacing 110
- unknown rgba 0
- rgb rgba 1
- bgr rgba 2
- vrgb rgba 3
- vbgr rgba 4
- none rgba 5
- lcdnone lcdfilter 0
- lcddefault lcdfilter 1
- lcdlight lcdfilter 2
- lcdlegacy lcdfilter 3
- hintnone hintstyle 0
- hintslight hintstyle 1
- hintmedium hintstyle 2
- hintfull hintstyle 3
-
-
- <or>, <and>, <plus>, <minus>, <times>, <divide>
-
- These elements perform the specified operation on a list of expression
- elements. <or> and <and> are boolean, not bitwise.
-
- <eq>, <not_eq>, <less>, <less_eq>, <more>, <more_eq>, <contains>,
- <not_contains
+<patelt name="property">
+
+ Patelt elements hold a single pattern element and list of
+ values. They must have a 'name' attribute which indicates the
+ pattern element name. Patelt elements include int, double,
+ string, matrix, bool, charset and const elements.
+
+<match target="pattern">
+
+ This element holds first a (possibly empty) list of <test>
+ elements and then a (possibly empty) list of <edit> elements.
+ Patterns which match all of the tests are subjected to all the
+ edits. If 'target' is set to "font" instead of the default
+ "pattern", then this element applies to the font name resulting
+ from a match rather than a font pattern to be matched. If
+ 'target' is set to "scan", then this element applies when the
+ font is scanned to build the fontconfig database.
+
+<test qual="any" name="property" target="default" compare="eq">
+
+ This element contains a single value which is compared with the
+ target ('pattern', 'font', 'scan' or 'default') property
+ "property" (substitute any of the property names seen above).
+ 'compare' can be one of "eq", "not_eq", "less", "less_eq",
+ "more", "more_eq", "contains" or "not_contains". 'qual' may
+ either be the default, "any", in which case the match succeeds
+ if any value associated with the property matches the test
+ value, or "all", in which case all of the values associated
+ with the property must match the test value. 'ignore-blanks'
+ takes a boolean value. if 'ignore-blanks' is set "true", any
+ blanks in the string will be ignored on its comparison. this
+ takes effects only when compare="eq" or compare="not_eq". When
+ used in a <match target="font"> element, the target= attribute
+ in the <test> element selects between matching the original
+ pattern or the font. "default" selects whichever target the
+ outer <match> element has selected.
+
+<edit name="property" mode="assign" binding="weak">
+
+ This element contains a list of expression elements (any of the
+ value or operator elements). The expression elements are
+ evaluated at run-time and modify the property "property". The
+ modification depends on whether "property" was matched by one
+ of the associated <test> elements, if so, the modification may
+ affect the first matched value. Any values inserted into the
+ property are given the indicated binding ("strong", "weak" or
+ "same") with "same" binding using the value from the matched
+ pattern element. 'mode' is one of:
+ Mode With Match Without Match
+ ---------------------------------------------------------------------
+ "assign" Replace matching value Replace all values
+ "assign_replace" Replace all values Replace all values
+ "prepend" Insert before matching Insert at head of list
+ "prepend_first" Insert at head of list Insert at head of list
+ "append" Append after matching Append at end of list
+ "append_last" Append at end of list Append at end of list
+ "delete" Delete matching value Delete all values
+ "delete_all" Delete all values Delete all values
+
+<int>, <double>, <string>, <bool>
+
+ These elements hold a single value of the indicated type.
+ <bool> elements hold either true or false. An important
+ limitation exists in the parsing of floating point numbers --
+ fontconfig requires that the mantissa start with a digit, not a
+ decimal point, so insert a leading zero for purely fractional
+ values (e.g. use 0.5 instead of .5 and -0.5 instead of -.5).
+
+<matrix>
+
+ This element holds four numerical expressions of an affine
+ transformation. At their simplest these will be four <double>
+ elements but they can also be more involved expressions.
+
+<range>
+
+ This element holds the two <int> elements of a range
+ representation.
+
+<charset>
+
+ This element holds at least one <int> element of an Unicode
+ code point or more.
+
+<langset>
+
+ This element holds at least one <string> element of a
+ RFC-3066-style languages or more.
+
+<name>
+
+ Holds a property name. Evaluates to the first value from the
+ property of the pattern. If the 'target' attribute is not
+ present, it will default to 'default', in which case the
+ property is returned from the font pattern during a
+ target="font" match, and to the pattern during a
+ target="pattern" match. The attribute can also take the values
+ 'font' or 'pattern' to explicitly choose which pattern to use.
+ It is an error to use a target of 'font' in a match that has
+ target="pattern".
+
+<const>
+
+ Holds the name of a constant; these are always integers and
+ serve as symbolic names for common font values:
+ Constant Property Value
+ -------------------------------------
+ thin weight 0
+ extralight weight 40
+ ultralight weight 40
+ light weight 50
+ demilight weight 55
+ semilight weight 55
+ book weight 75
+ regular weight 80
+ normal weight 80
+ medium weight 100
+ demibold weight 180
+ semibold weight 180
+ bold weight 200
+ extrabold weight 205
+ black weight 210
+ heavy weight 210
+ roman slant 0
+ italic slant 100
+ oblique slant 110
+ ultracondensed width 50
+ extracondensed width 63
+ condensed width 75
+ semicondensed width 87
+ normal width 100
+ semiexpanded width 113
+ expanded width 125
+ extraexpanded width 150
+ ultraexpanded width 200
+ proportional spacing 0
+ dual spacing 90
+ mono spacing 100
+ charcell spacing 110
+ unknown rgba 0
+ rgb rgba 1
+ bgr rgba 2
+ vrgb rgba 3
+ vbgr rgba 4
+ none rgba 5
+ lcdnone lcdfilter 0
+ lcddefault lcdfilter 1
+ lcdlight lcdfilter 2
+ lcdlegacy lcdfilter 3
+ hintnone hintstyle 0
+ hintslight hintstyle 1
+ hintmedium hintstyle 2
+ hintfull hintstyle 3
+
+<or>, <and>, <plus>, <minus>, <times>, <divide>
+
+ These elements perform the specified operation on a list of
+ expression elements. <or> and <and> are boolean, not bitwise.
+
+<eq>, <not_eq>, <less>, <less_eq>, <more>, <more_eq>, <contains>,
+<not_contains
These elements compare two values, producing a boolean result.
- <not>
+<not>
Inverts the boolean sense of its one expression element
- <if>
+<if>
- This element takes three expression elements; if the value of the first is
- true, it produces the value of the second, otherwise it produces the value
- of the third.
+ This element takes three expression elements; if the value of
+ the first is true, it produces the value of the second,
+ otherwise it produces the value of the third.
- <alias>
+<alias>
- Alias elements provide a shorthand notation for the set of common match
- operations needed to substitute one font family for another. They contain
- a <family> element followed by optional <prefer>, <accept> and <default>
- elements. Fonts matching the <family> element are edited to prepend the
- list of <prefer>ed families before the matching <family>, append the
- <accept>able families after the matching <family> and append the <default>
- families to the end of the family list.
+ Alias elements provide a shorthand notation for the set of
+ common match operations needed to substitute one font family
+ for another. They contain a <family> element followed by
+ optional <prefer>, <accept> and <default> elements. Fonts
+ matching the <family> element are edited to prepend the list of
+ <prefer>ed families before the matching <family>, append the
+ <accept>able families after the matching <family> and append
+ the <default> families to the end of the family list.
- <family>
+<family>
Holds a single font family name
- <prefer>, <accept>, <default>
+<prefer>, <accept>, <default>
- These hold a list of <family> elements to be used by the <alias> element.
+ These hold a list of <family> elements to be used by the
+ <alias> element.
EXAMPLE CONFIGURATION FILE
- System configuration file
+System configuration file
This is an example of a system-wide configuration file
-
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- /etc/fonts/fonts.conf file to configure system font access -->
-->
<match target="pattern">
<test qual="any" name="family"><string>mono</string></test>
- <edit name="family" mode="assign"><string>monospace</string></edit>
+ <edit name="family" mode="assign"><string>monospace</string></ed
+it>
</match>
<!--
Names not including any well known alias are given 'sans-serif'
-->
<match target="pattern">
- <test qual="all" name="family" mode="not_eq"><string>sans-serif</string></test>
- <test qual="all" name="family" mode="not_eq"><string>serif</string></test>
- <test qual="all" name="family" mode="not_eq"><string>monospace</string></test>
- <edit name="family" mode="append_last"><string>sans-serif</string></edit>
+ <test qual="all" name="family" mode="not_eq"><string>sans-serif<
+/string></test>
+ <test qual="all" name="family" mode="not_eq"><string>serif</stri
+ng></test>
+ <test qual="all" name="family" mode="not_eq"><string>monospace</
+string></test>
+ <edit name="family" mode="append_last"><string>sans-serif</strin
+g></edit>
</match>
<!--
Load per-user customization file, but don't complain
if it doesn't exist
-->
-<include ignore_missing="yes" prefix="xdg">fontconfig/fonts.conf</include>
+<include ignore_missing="yes" prefix="xdg">fontconfig/fonts.conf</includ
+e>
<!--
Load local customization files, but don't complain
</fontconfig>
+User configuration file
- User configuration file
-
- This is an example of a per-user configuration file that lives in
- $XDG_CONFIG_HOME/fontconfig/fonts.conf
+ This is an example of a per-user configuration file that lives
+ in $XDG_CONFIG_HOME/fontconfig/fonts.conf
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<!-- $XDG_CONFIG_HOME/fontconfig/fonts.conf for per-user font configurat
+ion -->
+<fontconfig>
- <?xml version="1.0"?>
- <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
- <!-- $XDG_CONFIG_HOME/fontconfig/fonts.conf for per-user font configuration -->
- <fontconfig>
-
- <!--
- Private font directory
- -->
- <dir prefix="xdg">fonts</dir>
-
- <!--
- use rgb sub-pixel ordering to improve glyph appearance on
- LCD screens. Changes affecting rendering, but not matching
- should always use target="font".
- -->
- <match target="font">
- <edit name="rgba" mode="assign"><const>rgb</const></edit>
- </match>
- <!--
- use WenQuanYi Zen Hei font when serif is requested for Chinese
- -->
- <match>
- <!--
- If you don't want to use WenQuanYi Zen Hei font for zh-tw etc,
- you can use zh-cn instead of zh.
- Please note, even if you set zh-cn, it still matches zh.
- if you don't like it, you can use compare="eq"
- instead of compare="contains".
- -->
- <test name="lang" compare="contains">
- <string>zh</string>
- </test>
- <test name="family">
- <string>serif</string>
- </test>
- <edit name="family" mode="prepend">
- <string>WenQuanYi Zen Hei</string>
- </edit>
- </match>
- <!--
- use VL Gothic font when sans-serif is requested for Japanese
- -->
- <match>
- <test name="lang" compare="contains">
- <string>ja</string>
- </test>
- <test name="family">
- <string>sans-serif</string>
- </test>
- <edit name="family" mode="prepend">
- <string>VL Gothic</string>
- </edit>
- </match>
- </fontconfig>
+<!--
+ Private font directory
+-->
+<dir prefix="xdg">fonts</dir>
+<!--
+ use rgb sub-pixel ordering to improve glyph appearance on
+ LCD screens. Changes affecting rendering, but not matching
+ should always use target="font".
+-->
+<match target="font">
+ <edit name="rgba" mode="assign"><const>rgb</const></edit>
+</match>
+<!--
+ use WenQuanYi Zen Hei font when serif is requested for Chinese
+-->
+<match>
+ <!--
+ If you don't want to use WenQuanYi Zen Hei font for zh-t
+w etc,
+ you can use zh-cn instead of zh.
+ Please note, even if you set zh-cn, it still matches zh.
+ if you don't like it, you can use compare="eq"
+ instead of compare="contains".
+ -->
+ <test name="lang" compare="contains">
+ <string>zh</string>
+ </test>
+ <test name="family">
+ <string>serif</string>
+ </test>
+ <edit name="family" mode="prepend">
+ <string>WenQuanYi Zen Hei</string>
+ </edit>
+</match>
+<!--
+ use VL Gothic font when sans-serif is requested for Japanese
+-->
+<match>
+ <test name="lang" compare="contains">
+ <string>ja</string>
+ </test>
+ <test name="family">
+ <string>sans-serif</string>
+ </test>
+ <edit name="family" mode="prepend">
+ <string>VL Gothic</string>
+ </edit>
+</match>
+</fontconfig>
Files
- fonts.conf contains configuration information for the fontconfig library
- consisting of directories to look at for font information as well as
- instructions on editing program specified font patterns before attempting
- to match the available fonts. It is in XML format.
+ fonts.conf contains configuration information for the
+ fontconfig library consisting of directories to look at for
+ font information as well as instructions on editing program
+ specified font patterns before attempting to match the
+ available fonts. It is in XML format.
conf.d is the conventional name for a directory of additional
- configuration files managed by external applications or the local
- administrator. The filenames starting with decimal digits are sorted in
- lexicographic order and used as additional configuration files. All of
- these files are in XML format. The master fonts.conf file references this
- directory in an <include> directive.
-
- fonts.dtd is a DTD that describes the format of the configuration files.
-
- $XDG_CONFIG_HOME/fontconfig/conf.d and ~/.fonts.conf.d is the conventional
- name for a per-user directory of (typically auto-generated) configuration
- files, although the actual location is specified in the global fonts.conf
- file. please note that ~/.fonts.conf.d is deprecated now. it will not be
+ configuration files managed by external applications or the
+ local administrator. The filenames starting with decimal digits
+ are sorted in lexicographic order and used as additional
+ configuration files. All of these files are in XML format. The
+ master fonts.conf file references this directory in an
+ <include> directive.
+
+ fonts.dtd is a DTD that describes the format of the
+ configuration files.
+
+ $XDG_CONFIG_HOME/fontconfig/conf.d and ~/.fonts.conf.d is the
+ conventional name for a per-user directory of (typically
+ auto-generated) configuration files, although the actual
+ location is specified in the global fonts.conf file. please
+ note that ~/.fonts.conf.d is deprecated now. it will not be
read by default in the future version.
$XDG_CONFIG_HOME/fontconfig/fonts.conf and ~/.fonts.conf is the
- conventional location for per-user font configuration, although the actual
- location is specified in the global fonts.conf file. please note that
- ~/.fonts.conf is deprecated now. it will not be read by default in the
- future version.
-
- $XDG_CACHE_HOME/fontconfig/*.cache-* and ~/.fontconfig/*.cache-* is the
- conventional repository of font information that isn't found in the
- per-directory caches. This file is automatically maintained by fontconfig.
- please note that ~/.fontconfig/*.cache-* is deprecated now. it will not be
+ conventional location for per-user font configuration, although
+ the actual location is specified in the global fonts.conf file.
+ please note that ~/.fonts.conf is deprecated now. it will not
+ be read by default in the future version.
+
+ $XDG_CACHE_HOME/fontconfig/*.cache-* and
+ ~/.fontconfig/*.cache-* is the conventional repository of font
+ information that isn't found in the per-directory caches. This
+ file is automatically maintained by fontconfig. please note
+ that ~/.fontconfig/*.cache-* is deprecated now. it will not be
read by default in the future version.
Environment variables
- FONTCONFIG_FILE is used to override the default configuration file.
+ FONTCONFIG_FILE is used to override the default configuration
+ file.
- FONTCONFIG_PATH is used to override the default configuration directory.
+ FONTCONFIG_PATH is used to override the default configuration
+ directory.
FC_DEBUG is used to output the detailed debugging messages. see
- [1]Debugging Applications section for more details.
+ Debugging Applications section for more details.
- FONTCONFIG_USE_MMAP is used to control the use of mmap(2) for the cache
- files if available. this take a boolean value. fontconfig will checks if
- the cache files are stored on the filesystem that is safe to use mmap(2).
- explicitly setting this environment variable will causes skipping this
- check and enforce to use or not use mmap(2) anyway.
+ FONTCONFIG_USE_MMAP is used to control the use of mmap(2) for
+ the cache files if available. this take a boolean value.
+ fontconfig will checks if the cache files are stored on the
+ filesystem that is safe to use mmap(2). explicitly setting this
+ environment variable will causes skipping this check and
+ enforce to use or not use mmap(2) anyway.
See Also
Version
- Fontconfig version 2.10.91
-
-References
-
- Visible links
- 1. file:///tmp/html-sp859j#DEBUG
+ Fontconfig version 2.11.93
.\" auto-generated by docbook2man-spec from docbook-utils package
-.TH "FONTS-CONF" "5" "10 1月 2013" "" ""
+.TH "FONTS-CONF" "5" "09 3月 2015" "" ""
.SH NAME
fonts.conf \- Font configuration files
.SH SYNOPSIS
file String The filename holding the font
index Int The index of the font within the file
ftface FT_Face Use the specified FreeType face object
- rasterizer String Which rasterizer is in use
+ 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,
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
.sp
.fi
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 ``<hash value>-<architecture>\&.cache-<version\&'',
+named ``<hash value>-<architecture>\&.cache-<version>\&'',
where <version> is the font configureation file
version number (currently 3).
.SS "<INCLUDE IGNORE_MISSING=""NO"" PREFIX=""DEFAULT"">"
"prepend_first" Insert at head of list Insert at head of list
"append" Append after matching Append at end of list
"append_last" Append at end of list Append at end of list
+ "delete" Delete matching value Delete all values
+ "delete_all" Delete all values Delete all values
.sp
.fi
extralight weight 40
ultralight weight 40
light weight 50
+ demilight weight 55
+ semilight weight 55
book weight 75
regular weight 80
normal weight 80
fc-cat(1), fc-cache(1), fc-list(1), fc-match(1), fc-query(1)
.SH "VERSION"
.PP
-Fontconfig version 2.10.91
+Fontconfig version 2.11.93
<refentrytitle>@FUNC@</refentrytitle>
@;@
<manvolnum>3</manvolnum>
+ <refmiscinfo class="software">Fontconfig &version;</refmiscinfo>
</refmeta>
<refnamediv>
@{PROTOTYPE@
@DESC@
</para>
</refsect1>
- <refsect1><title>Version</title>
- <para>
-Fontconfig version &version;
- </para>
+@?SINCE@
+ <refsect1><title>Since</title>
+ <para>version @SINCE@</para>
</refsect1>
+@;@
</refentry>
--- /dev/null
+# -*- encoding: utf-8 -*-
+#
+# Copyright © 2003 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 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.
+
+NULL =
+BLANKSPY = fc-blanks.py
+BLANKS_H = fcblanks.h
+TMPL = fcblanks.tmpl.h
+noinst_SCRIPTS = $(BLANKSPY)
+noinst_HEADERS = $(BLANKS_H)
+
+$(BLANKS_H): $(TMPL) $(BLANKSPY)
+ $(AM_V_GEN) $(PYTHON) $(srcdir)/$(BLANKSPY) < $< > $(BLANKS_H).tmp && \
+ mv $(BLANKS_H).tmp $(BLANKS_H) || ($(RM) $(BLANKS_H).tmp && false)
+
+EXTRA_DIST = \
+ $(BLANKSPY) \
+ $(BLANKS_H) \
+ $(TMPL) \
+ $(NULL)
+DISTCLEANFILES = $(BLANKS_H)
+
+-include $(top_srcdir)/git.mk
--- /dev/null
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# -*- encoding: utf-8 -*-
+#
+# Copyright © 2003 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 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.
+
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = fc-blanks
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+ $(noinst_HEADERS)
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \
+ $(top_srcdir)/m4/ax_cc_for_build.m4 \
+ $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+ $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SCRIPTS = $(noinst_SCRIPTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BASECONFIGDIR = @BASECONFIGDIR@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CC_FOR_BUILD = @CC_FOR_BUILD@
+CFLAGS = @CFLAGS@
+CONFIGDIR = @CONFIGDIR@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DOCMAN3 = @DOCMAN3@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@
+EXPAT_CFLAGS = @EXPAT_CFLAGS@
+EXPAT_LIBS = @EXPAT_LIBS@
+FC_ADD_FONTS = @FC_ADD_FONTS@
+FC_CACHEDIR = @FC_CACHEDIR@
+FC_DEFAULT_FONTS = @FC_DEFAULT_FONTS@
+FC_FONTDATE = @FC_FONTDATE@
+FC_FONTPATH = @FC_FONTPATH@
+FGREP = @FGREP@
+FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
+FREETYPE_LIBS = @FREETYPE_LIBS@
+GIT = @GIT@
+GPERF = @GPERF@
+GREP = @GREP@
+HASDOCBOOK = @HASDOCBOOK@
+HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@
+ICONV_CFLAGS = @ICONV_CFLAGS@
+ICONV_LIBS = @ICONV_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBT_CURRENT = @LIBT_CURRENT@
+LIBT_CURRENT_MINUS_AGE = @LIBT_CURRENT_MINUS_AGE@
+LIBT_REVISION = @LIBT_REVISION@
+LIBT_VERSION_INFO = @LIBT_VERSION_INFO@
+LIBXML2_CFLAGS = @LIBXML2_CFLAGS@
+LIBXML2_LIBS = @LIBXML2_LIBS@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
+PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RM = @RM@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TEMPLATEDIR = @TEMPLATEDIR@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+XMLDIR = @XMLDIR@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+fc_cachedir = @fc_cachedir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+ms_librarian = @ms_librarian@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgconfigdir = @pkgconfigdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+NULL =
+BLANKSPY = fc-blanks.py
+BLANKS_H = fcblanks.h
+TMPL = fcblanks.tmpl.h
+noinst_SCRIPTS = $(BLANKSPY)
+noinst_HEADERS = $(BLANKS_H)
+EXTRA_DIST = \
+ $(BLANKSPY) \
+ $(BLANKS_H) \
+ $(TMPL) \
+ $(NULL)
+
+DISTCLEANFILES = $(BLANKS_H)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fc-blanks/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu fc-blanks/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(SCRIPTS) $(HEADERS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-libtool cscopelist-am ctags ctags-am distclean \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am
+
+
+$(BLANKS_H): $(TMPL) $(BLANKSPY)
+ $(AM_V_GEN) $(PYTHON) $(srcdir)/$(BLANKSPY) < $< > $(BLANKS_H).tmp && \
+ mv $(BLANKS_H).tmp $(BLANKS_H) || ($(RM) $(BLANKS_H).tmp && false)
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- /dev/null
+#! /usr/bin/python
+
+import urllib2
+import sys
+from lxml import html
+
+fp = urllib2.urlopen('http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[%3AGC%3DZs%3A][%3ADI%3A]&abb=on&ucd=on&esc=on&g')
+data = fp.read()
+fp.close()
+
+dom = html.fromstring(data)
+x = dom.xpath('/html/body/form/p/text()')
+p = x[1]
+if p[0] == '[' and p[-1] == ']':
+ p = p.replace('[', '').replace(']', '')
+else:
+ sys.exit(1)
+fescape = False
+funicode = False
+frange = False
+fprocess = False
+v = 0
+vbegin = 0
+vend = 0
+n = 0
+l = []
+
+def insert(db, begin, end):
+ db.append([begin, end])
+
+for i in p:
+ if i == '\\':
+ if n > 0:
+ if frange == True and funicode == True:
+ vend = v
+ insert(l, vbegin, vend)
+ fprocess = True
+ elif funicode == True:
+ vbegin = v
+ vend = v
+ insert(l, vbegin, vend)
+ fprocess = True
+ funicode = False
+ fescape = True
+ elif i.lower() == 'u' and fescape == True:
+ funicode = True
+ fescape = False
+ elif i >= '0' and i <= '9' or i.lower() >= 'a' and i.lower() <= 'f':
+ if fescape == True:
+ raise RuntimeError, "Unexpected escape code"
+ if funicode == True:
+ v <<= 4
+ v += int(i, 16)
+ else:
+ raise RuntimeError, "Unable to parse Unicode"
+ elif i == ' ':
+ if fescape == True:
+ funicode = True
+ fescape = False
+ v = 0x20
+ if frange == True and funicode == True:
+ vend = v
+ insert(l, vbegin, vend)
+ fprocess = True
+ elif funicode == True:
+ vbegin = v
+ vend = v
+ insert(l, vbegin, vend)
+ fprocess = True
+ funicode = False
+ frange = False
+ elif i == '-':
+ if fescape == True:
+ raise RuntimeError, "Unexpected escape code"
+ vbegin = v
+ v = 0
+ funicode = False
+ frange = True
+ else:
+ raise RuntimeError, "Unable to parse Unicode: %s" % i
+
+ if fprocess == True:
+ vbegin = 0
+ vend = 0
+ v = 0
+ fprocess = False
+ funicode = False
+ frange = False
+ n += 1
+
+if frange == True and funicode == True:
+ vend = v
+ insert(l, vbegin, vend)
+elif funicode == True:
+ vbegin = vend = v
+ insert(l, vbegin, vend)
+
+ncode = 0
+for i in l:
+ ncode += (i[1] - i[0] + 1)
+
+a = int(x[0].split(' ')[0].replace(',', ''))
+if a != ncode:
+ sys.stderr.write("Unexpected the amount of code points: %d (expected %d)\n" % (ncode, a))
+ sys.exit(1)
+
+# exception; BRAILLE PATTERN BLANK
+insert(l, 0x2800, 0x2800)
+
+while True:
+ s = sys.stdin.readline().rstrip()
+ if s == "@@@":
+ break
+ print s
+
+print "static FcChar32 _fcBlanks[%s] = {" % (ncode + 1)
+k = 0
+for i in sorted(l, key=lambda(a): a[0]):
+ for j in range(i[0], i[1] + 1):
+ if k != 0:
+ print ","
+ print " 0x%04x" % j,
+ k += 1
+
+print "};"
+print '''
+static FcBlanks fcBlanks = {
+ %s,
+ -1,
+ _fcBlanks
+};
+''' % (ncode + 1)
--- /dev/null
+/*
+ * fontconfig/fc-blanks/fcblanks.tmpl.h
+ *
+ * Copyright © 2003 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 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.
+ */
+
+static FcChar32 _fcBlanks[4191] = {
+ 0x0020 ,
+ 0x00a0 ,
+ 0x00ad ,
+ 0x034f ,
+ 0x061c ,
+ 0x115f ,
+ 0x1160 ,
+ 0x1680 ,
+ 0x17b4 ,
+ 0x17b5 ,
+ 0x180b ,
+ 0x180c ,
+ 0x180d ,
+ 0x180e ,
+ 0x2000 ,
+ 0x2001 ,
+ 0x2002 ,
+ 0x2003 ,
+ 0x2004 ,
+ 0x2005 ,
+ 0x2006 ,
+ 0x2007 ,
+ 0x2008 ,
+ 0x2009 ,
+ 0x200a ,
+ 0x200b ,
+ 0x200c ,
+ 0x200d ,
+ 0x200e ,
+ 0x200f ,
+ 0x202a ,
+ 0x202b ,
+ 0x202c ,
+ 0x202d ,
+ 0x202e ,
+ 0x202f ,
+ 0x205f ,
+ 0x2060 ,
+ 0x2061 ,
+ 0x2062 ,
+ 0x2063 ,
+ 0x2064 ,
+ 0x2065 ,
+ 0x2066 ,
+ 0x2067 ,
+ 0x2068 ,
+ 0x2069 ,
+ 0x206a ,
+ 0x206b ,
+ 0x206c ,
+ 0x206d ,
+ 0x206e ,
+ 0x206f ,
+ 0x2800 ,
+ 0x3000 ,
+ 0x3164 ,
+ 0xfe00 ,
+ 0xfe01 ,
+ 0xfe02 ,
+ 0xfe03 ,
+ 0xfe04 ,
+ 0xfe05 ,
+ 0xfe06 ,
+ 0xfe07 ,
+ 0xfe08 ,
+ 0xfe09 ,
+ 0xfe0a ,
+ 0xfe0b ,
+ 0xfe0c ,
+ 0xfe0d ,
+ 0xfe0e ,
+ 0xfe0f ,
+ 0xfeff ,
+ 0xffa0 ,
+ 0xfff0 ,
+ 0xfff1 ,
+ 0xfff2 ,
+ 0xfff3 ,
+ 0xfff4 ,
+ 0xfff5 ,
+ 0xfff6 ,
+ 0xfff7 ,
+ 0xfff8 ,
+ 0x1bca0 ,
+ 0x1bca1 ,
+ 0x1bca2 ,
+ 0x1bca3 ,
+ 0x1d173 ,
+ 0x1d174 ,
+ 0x1d175 ,
+ 0x1d176 ,
+ 0x1d177 ,
+ 0x1d178 ,
+ 0x1d179 ,
+ 0x1d17a ,
+ 0xe0000 ,
+ 0xe0001 ,
+ 0xe0002 ,
+ 0xe0003 ,
+ 0xe0004 ,
+ 0xe0005 ,
+ 0xe0006 ,
+ 0xe0007 ,
+ 0xe0008 ,
+ 0xe0009 ,
+ 0xe000a ,
+ 0xe000b ,
+ 0xe000c ,
+ 0xe000d ,
+ 0xe000e ,
+ 0xe000f ,
+ 0xe0010 ,
+ 0xe0011 ,
+ 0xe0012 ,
+ 0xe0013 ,
+ 0xe0014 ,
+ 0xe0015 ,
+ 0xe0016 ,
+ 0xe0017 ,
+ 0xe0018 ,
+ 0xe0019 ,
+ 0xe001a ,
+ 0xe001b ,
+ 0xe001c ,
+ 0xe001d ,
+ 0xe001e ,
+ 0xe001f ,
+ 0xe0020 ,
+ 0xe0021 ,
+ 0xe0022 ,
+ 0xe0023 ,
+ 0xe0024 ,
+ 0xe0025 ,
+ 0xe0026 ,
+ 0xe0027 ,
+ 0xe0028 ,
+ 0xe0029 ,
+ 0xe002a ,
+ 0xe002b ,
+ 0xe002c ,
+ 0xe002d ,
+ 0xe002e ,
+ 0xe002f ,
+ 0xe0030 ,
+ 0xe0031 ,
+ 0xe0032 ,
+ 0xe0033 ,
+ 0xe0034 ,
+ 0xe0035 ,
+ 0xe0036 ,
+ 0xe0037 ,
+ 0xe0038 ,
+ 0xe0039 ,
+ 0xe003a ,
+ 0xe003b ,
+ 0xe003c ,
+ 0xe003d ,
+ 0xe003e ,
+ 0xe003f ,
+ 0xe0040 ,
+ 0xe0041 ,
+ 0xe0042 ,
+ 0xe0043 ,
+ 0xe0044 ,
+ 0xe0045 ,
+ 0xe0046 ,
+ 0xe0047 ,
+ 0xe0048 ,
+ 0xe0049 ,
+ 0xe004a ,
+ 0xe004b ,
+ 0xe004c ,
+ 0xe004d ,
+ 0xe004e ,
+ 0xe004f ,
+ 0xe0050 ,
+ 0xe0051 ,
+ 0xe0052 ,
+ 0xe0053 ,
+ 0xe0054 ,
+ 0xe0055 ,
+ 0xe0056 ,
+ 0xe0057 ,
+ 0xe0058 ,
+ 0xe0059 ,
+ 0xe005a ,
+ 0xe005b ,
+ 0xe005c ,
+ 0xe005d ,
+ 0xe005e ,
+ 0xe005f ,
+ 0xe0060 ,
+ 0xe0061 ,
+ 0xe0062 ,
+ 0xe0063 ,
+ 0xe0064 ,
+ 0xe0065 ,
+ 0xe0066 ,
+ 0xe0067 ,
+ 0xe0068 ,
+ 0xe0069 ,
+ 0xe006a ,
+ 0xe006b ,
+ 0xe006c ,
+ 0xe006d ,
+ 0xe006e ,
+ 0xe006f ,
+ 0xe0070 ,
+ 0xe0071 ,
+ 0xe0072 ,
+ 0xe0073 ,
+ 0xe0074 ,
+ 0xe0075 ,
+ 0xe0076 ,
+ 0xe0077 ,
+ 0xe0078 ,
+ 0xe0079 ,
+ 0xe007a ,
+ 0xe007b ,
+ 0xe007c ,
+ 0xe007d ,
+ 0xe007e ,
+ 0xe007f ,
+ 0xe0080 ,
+ 0xe0081 ,
+ 0xe0082 ,
+ 0xe0083 ,
+ 0xe0084 ,
+ 0xe0085 ,
+ 0xe0086 ,
+ 0xe0087 ,
+ 0xe0088 ,
+ 0xe0089 ,
+ 0xe008a ,
+ 0xe008b ,
+ 0xe008c ,
+ 0xe008d ,
+ 0xe008e ,
+ 0xe008f ,
+ 0xe0090 ,
+ 0xe0091 ,
+ 0xe0092 ,
+ 0xe0093 ,
+ 0xe0094 ,
+ 0xe0095 ,
+ 0xe0096 ,
+ 0xe0097 ,
+ 0xe0098 ,
+ 0xe0099 ,
+ 0xe009a ,
+ 0xe009b ,
+ 0xe009c ,
+ 0xe009d ,
+ 0xe009e ,
+ 0xe009f ,
+ 0xe00a0 ,
+ 0xe00a1 ,
+ 0xe00a2 ,
+ 0xe00a3 ,
+ 0xe00a4 ,
+ 0xe00a5 ,
+ 0xe00a6 ,
+ 0xe00a7 ,
+ 0xe00a8 ,
+ 0xe00a9 ,
+ 0xe00aa ,
+ 0xe00ab ,
+ 0xe00ac ,
+ 0xe00ad ,
+ 0xe00ae ,
+ 0xe00af ,
+ 0xe00b0 ,
+ 0xe00b1 ,
+ 0xe00b2 ,
+ 0xe00b3 ,
+ 0xe00b4 ,
+ 0xe00b5 ,
+ 0xe00b6 ,
+ 0xe00b7 ,
+ 0xe00b8 ,
+ 0xe00b9 ,
+ 0xe00ba ,
+ 0xe00bb ,
+ 0xe00bc ,
+ 0xe00bd ,
+ 0xe00be ,
+ 0xe00bf ,
+ 0xe00c0 ,
+ 0xe00c1 ,
+ 0xe00c2 ,
+ 0xe00c3 ,
+ 0xe00c4 ,
+ 0xe00c5 ,
+ 0xe00c6 ,
+ 0xe00c7 ,
+ 0xe00c8 ,
+ 0xe00c9 ,
+ 0xe00ca ,
+ 0xe00cb ,
+ 0xe00cc ,
+ 0xe00cd ,
+ 0xe00ce ,
+ 0xe00cf ,
+ 0xe00d0 ,
+ 0xe00d1 ,
+ 0xe00d2 ,
+ 0xe00d3 ,
+ 0xe00d4 ,
+ 0xe00d5 ,
+ 0xe00d6 ,
+ 0xe00d7 ,
+ 0xe00d8 ,
+ 0xe00d9 ,
+ 0xe00da ,
+ 0xe00db ,
+ 0xe00dc ,
+ 0xe00dd ,
+ 0xe00de ,
+ 0xe00df ,
+ 0xe00e0 ,
+ 0xe00e1 ,
+ 0xe00e2 ,
+ 0xe00e3 ,
+ 0xe00e4 ,
+ 0xe00e5 ,
+ 0xe00e6 ,
+ 0xe00e7 ,
+ 0xe00e8 ,
+ 0xe00e9 ,
+ 0xe00ea ,
+ 0xe00eb ,
+ 0xe00ec ,
+ 0xe00ed ,
+ 0xe00ee ,
+ 0xe00ef ,
+ 0xe00f0 ,
+ 0xe00f1 ,
+ 0xe00f2 ,
+ 0xe00f3 ,
+ 0xe00f4 ,
+ 0xe00f5 ,
+ 0xe00f6 ,
+ 0xe00f7 ,
+ 0xe00f8 ,
+ 0xe00f9 ,
+ 0xe00fa ,
+ 0xe00fb ,
+ 0xe00fc ,
+ 0xe00fd ,
+ 0xe00fe ,
+ 0xe00ff ,
+ 0xe0100 ,
+ 0xe0101 ,
+ 0xe0102 ,
+ 0xe0103 ,
+ 0xe0104 ,
+ 0xe0105 ,
+ 0xe0106 ,
+ 0xe0107 ,
+ 0xe0108 ,
+ 0xe0109 ,
+ 0xe010a ,
+ 0xe010b ,
+ 0xe010c ,
+ 0xe010d ,
+ 0xe010e ,
+ 0xe010f ,
+ 0xe0110 ,
+ 0xe0111 ,
+ 0xe0112 ,
+ 0xe0113 ,
+ 0xe0114 ,
+ 0xe0115 ,
+ 0xe0116 ,
+ 0xe0117 ,
+ 0xe0118 ,
+ 0xe0119 ,
+ 0xe011a ,
+ 0xe011b ,
+ 0xe011c ,
+ 0xe011d ,
+ 0xe011e ,
+ 0xe011f ,
+ 0xe0120 ,
+ 0xe0121 ,
+ 0xe0122 ,
+ 0xe0123 ,
+ 0xe0124 ,
+ 0xe0125 ,
+ 0xe0126 ,
+ 0xe0127 ,
+ 0xe0128 ,
+ 0xe0129 ,
+ 0xe012a ,
+ 0xe012b ,
+ 0xe012c ,
+ 0xe012d ,
+ 0xe012e ,
+ 0xe012f ,
+ 0xe0130 ,
+ 0xe0131 ,
+ 0xe0132 ,
+ 0xe0133 ,
+ 0xe0134 ,
+ 0xe0135 ,
+ 0xe0136 ,
+ 0xe0137 ,
+ 0xe0138 ,
+ 0xe0139 ,
+ 0xe013a ,
+ 0xe013b ,
+ 0xe013c ,
+ 0xe013d ,
+ 0xe013e ,
+ 0xe013f ,
+ 0xe0140 ,
+ 0xe0141 ,
+ 0xe0142 ,
+ 0xe0143 ,
+ 0xe0144 ,
+ 0xe0145 ,
+ 0xe0146 ,
+ 0xe0147 ,
+ 0xe0148 ,
+ 0xe0149 ,
+ 0xe014a ,
+ 0xe014b ,
+ 0xe014c ,
+ 0xe014d ,
+ 0xe014e ,
+ 0xe014f ,
+ 0xe0150 ,
+ 0xe0151 ,
+ 0xe0152 ,
+ 0xe0153 ,
+ 0xe0154 ,
+ 0xe0155 ,
+ 0xe0156 ,
+ 0xe0157 ,
+ 0xe0158 ,
+ 0xe0159 ,
+ 0xe015a ,
+ 0xe015b ,
+ 0xe015c ,
+ 0xe015d ,
+ 0xe015e ,
+ 0xe015f ,
+ 0xe0160 ,
+ 0xe0161 ,
+ 0xe0162 ,
+ 0xe0163 ,
+ 0xe0164 ,
+ 0xe0165 ,
+ 0xe0166 ,
+ 0xe0167 ,
+ 0xe0168 ,
+ 0xe0169 ,
+ 0xe016a ,
+ 0xe016b ,
+ 0xe016c ,
+ 0xe016d ,
+ 0xe016e ,
+ 0xe016f ,
+ 0xe0170 ,
+ 0xe0171 ,
+ 0xe0172 ,
+ 0xe0173 ,
+ 0xe0174 ,
+ 0xe0175 ,
+ 0xe0176 ,
+ 0xe0177 ,
+ 0xe0178 ,
+ 0xe0179 ,
+ 0xe017a ,
+ 0xe017b ,
+ 0xe017c ,
+ 0xe017d ,
+ 0xe017e ,
+ 0xe017f ,
+ 0xe0180 ,
+ 0xe0181 ,
+ 0xe0182 ,
+ 0xe0183 ,
+ 0xe0184 ,
+ 0xe0185 ,
+ 0xe0186 ,
+ 0xe0187 ,
+ 0xe0188 ,
+ 0xe0189 ,
+ 0xe018a ,
+ 0xe018b ,
+ 0xe018c ,
+ 0xe018d ,
+ 0xe018e ,
+ 0xe018f ,
+ 0xe0190 ,
+ 0xe0191 ,
+ 0xe0192 ,
+ 0xe0193 ,
+ 0xe0194 ,
+ 0xe0195 ,
+ 0xe0196 ,
+ 0xe0197 ,
+ 0xe0198 ,
+ 0xe0199 ,
+ 0xe019a ,
+ 0xe019b ,
+ 0xe019c ,
+ 0xe019d ,
+ 0xe019e ,
+ 0xe019f ,
+ 0xe01a0 ,
+ 0xe01a1 ,
+ 0xe01a2 ,
+ 0xe01a3 ,
+ 0xe01a4 ,
+ 0xe01a5 ,
+ 0xe01a6 ,
+ 0xe01a7 ,
+ 0xe01a8 ,
+ 0xe01a9 ,
+ 0xe01aa ,
+ 0xe01ab ,
+ 0xe01ac ,
+ 0xe01ad ,
+ 0xe01ae ,
+ 0xe01af ,
+ 0xe01b0 ,
+ 0xe01b1 ,
+ 0xe01b2 ,
+ 0xe01b3 ,
+ 0xe01b4 ,
+ 0xe01b5 ,
+ 0xe01b6 ,
+ 0xe01b7 ,
+ 0xe01b8 ,
+ 0xe01b9 ,
+ 0xe01ba ,
+ 0xe01bb ,
+ 0xe01bc ,
+ 0xe01bd ,
+ 0xe01be ,
+ 0xe01bf ,
+ 0xe01c0 ,
+ 0xe01c1 ,
+ 0xe01c2 ,
+ 0xe01c3 ,
+ 0xe01c4 ,
+ 0xe01c5 ,
+ 0xe01c6 ,
+ 0xe01c7 ,
+ 0xe01c8 ,
+ 0xe01c9 ,
+ 0xe01ca ,
+ 0xe01cb ,
+ 0xe01cc ,
+ 0xe01cd ,
+ 0xe01ce ,
+ 0xe01cf ,
+ 0xe01d0 ,
+ 0xe01d1 ,
+ 0xe01d2 ,
+ 0xe01d3 ,
+ 0xe01d4 ,
+ 0xe01d5 ,
+ 0xe01d6 ,
+ 0xe01d7 ,
+ 0xe01d8 ,
+ 0xe01d9 ,
+ 0xe01da ,
+ 0xe01db ,
+ 0xe01dc ,
+ 0xe01dd ,
+ 0xe01de ,
+ 0xe01df ,
+ 0xe01e0 ,
+ 0xe01e1 ,
+ 0xe01e2 ,
+ 0xe01e3 ,
+ 0xe01e4 ,
+ 0xe01e5 ,
+ 0xe01e6 ,
+ 0xe01e7 ,
+ 0xe01e8 ,
+ 0xe01e9 ,
+ 0xe01ea ,
+ 0xe01eb ,
+ 0xe01ec ,
+ 0xe01ed ,
+ 0xe01ee ,
+ 0xe01ef ,
+ 0xe01f0 ,
+ 0xe01f1 ,
+ 0xe01f2 ,
+ 0xe01f3 ,
+ 0xe01f4 ,
+ 0xe01f5 ,
+ 0xe01f6 ,
+ 0xe01f7 ,
+ 0xe01f8 ,
+ 0xe01f9 ,
+ 0xe01fa ,
+ 0xe01fb ,
+ 0xe01fc ,
+ 0xe01fd ,
+ 0xe01fe ,
+ 0xe01ff ,
+ 0xe0200 ,
+ 0xe0201 ,
+ 0xe0202 ,
+ 0xe0203 ,
+ 0xe0204 ,
+ 0xe0205 ,
+ 0xe0206 ,
+ 0xe0207 ,
+ 0xe0208 ,
+ 0xe0209 ,
+ 0xe020a ,
+ 0xe020b ,
+ 0xe020c ,
+ 0xe020d ,
+ 0xe020e ,
+ 0xe020f ,
+ 0xe0210 ,
+ 0xe0211 ,
+ 0xe0212 ,
+ 0xe0213 ,
+ 0xe0214 ,
+ 0xe0215 ,
+ 0xe0216 ,
+ 0xe0217 ,
+ 0xe0218 ,
+ 0xe0219 ,
+ 0xe021a ,
+ 0xe021b ,
+ 0xe021c ,
+ 0xe021d ,
+ 0xe021e ,
+ 0xe021f ,
+ 0xe0220 ,
+ 0xe0221 ,
+ 0xe0222 ,
+ 0xe0223 ,
+ 0xe0224 ,
+ 0xe0225 ,
+ 0xe0226 ,
+ 0xe0227 ,
+ 0xe0228 ,
+ 0xe0229 ,
+ 0xe022a ,
+ 0xe022b ,
+ 0xe022c ,
+ 0xe022d ,
+ 0xe022e ,
+ 0xe022f ,
+ 0xe0230 ,
+ 0xe0231 ,
+ 0xe0232 ,
+ 0xe0233 ,
+ 0xe0234 ,
+ 0xe0235 ,
+ 0xe0236 ,
+ 0xe0237 ,
+ 0xe0238 ,
+ 0xe0239 ,
+ 0xe023a ,
+ 0xe023b ,
+ 0xe023c ,
+ 0xe023d ,
+ 0xe023e ,
+ 0xe023f ,
+ 0xe0240 ,
+ 0xe0241 ,
+ 0xe0242 ,
+ 0xe0243 ,
+ 0xe0244 ,
+ 0xe0245 ,
+ 0xe0246 ,
+ 0xe0247 ,
+ 0xe0248 ,
+ 0xe0249 ,
+ 0xe024a ,
+ 0xe024b ,
+ 0xe024c ,
+ 0xe024d ,
+ 0xe024e ,
+ 0xe024f ,
+ 0xe0250 ,
+ 0xe0251 ,
+ 0xe0252 ,
+ 0xe0253 ,
+ 0xe0254 ,
+ 0xe0255 ,
+ 0xe0256 ,
+ 0xe0257 ,
+ 0xe0258 ,
+ 0xe0259 ,
+ 0xe025a ,
+ 0xe025b ,
+ 0xe025c ,
+ 0xe025d ,
+ 0xe025e ,
+ 0xe025f ,
+ 0xe0260 ,
+ 0xe0261 ,
+ 0xe0262 ,
+ 0xe0263 ,
+ 0xe0264 ,
+ 0xe0265 ,
+ 0xe0266 ,
+ 0xe0267 ,
+ 0xe0268 ,
+ 0xe0269 ,
+ 0xe026a ,
+ 0xe026b ,
+ 0xe026c ,
+ 0xe026d ,
+ 0xe026e ,
+ 0xe026f ,
+ 0xe0270 ,
+ 0xe0271 ,
+ 0xe0272 ,
+ 0xe0273 ,
+ 0xe0274 ,
+ 0xe0275 ,
+ 0xe0276 ,
+ 0xe0277 ,
+ 0xe0278 ,
+ 0xe0279 ,
+ 0xe027a ,
+ 0xe027b ,
+ 0xe027c ,
+ 0xe027d ,
+ 0xe027e ,
+ 0xe027f ,
+ 0xe0280 ,
+ 0xe0281 ,
+ 0xe0282 ,
+ 0xe0283 ,
+ 0xe0284 ,
+ 0xe0285 ,
+ 0xe0286 ,
+ 0xe0287 ,
+ 0xe0288 ,
+ 0xe0289 ,
+ 0xe028a ,
+ 0xe028b ,
+ 0xe028c ,
+ 0xe028d ,
+ 0xe028e ,
+ 0xe028f ,
+ 0xe0290 ,
+ 0xe0291 ,
+ 0xe0292 ,
+ 0xe0293 ,
+ 0xe0294 ,
+ 0xe0295 ,
+ 0xe0296 ,
+ 0xe0297 ,
+ 0xe0298 ,
+ 0xe0299 ,
+ 0xe029a ,
+ 0xe029b ,
+ 0xe029c ,
+ 0xe029d ,
+ 0xe029e ,
+ 0xe029f ,
+ 0xe02a0 ,
+ 0xe02a1 ,
+ 0xe02a2 ,
+ 0xe02a3 ,
+ 0xe02a4 ,
+ 0xe02a5 ,
+ 0xe02a6 ,
+ 0xe02a7 ,
+ 0xe02a8 ,
+ 0xe02a9 ,
+ 0xe02aa ,
+ 0xe02ab ,
+ 0xe02ac ,
+ 0xe02ad ,
+ 0xe02ae ,
+ 0xe02af ,
+ 0xe02b0 ,
+ 0xe02b1 ,
+ 0xe02b2 ,
+ 0xe02b3 ,
+ 0xe02b4 ,
+ 0xe02b5 ,
+ 0xe02b6 ,
+ 0xe02b7 ,
+ 0xe02b8 ,
+ 0xe02b9 ,
+ 0xe02ba ,
+ 0xe02bb ,
+ 0xe02bc ,
+ 0xe02bd ,
+ 0xe02be ,
+ 0xe02bf ,
+ 0xe02c0 ,
+ 0xe02c1 ,
+ 0xe02c2 ,
+ 0xe02c3 ,
+ 0xe02c4 ,
+ 0xe02c5 ,
+ 0xe02c6 ,
+ 0xe02c7 ,
+ 0xe02c8 ,
+ 0xe02c9 ,
+ 0xe02ca ,
+ 0xe02cb ,
+ 0xe02cc ,
+ 0xe02cd ,
+ 0xe02ce ,
+ 0xe02cf ,
+ 0xe02d0 ,
+ 0xe02d1 ,
+ 0xe02d2 ,
+ 0xe02d3 ,
+ 0xe02d4 ,
+ 0xe02d5 ,
+ 0xe02d6 ,
+ 0xe02d7 ,
+ 0xe02d8 ,
+ 0xe02d9 ,
+ 0xe02da ,
+ 0xe02db ,
+ 0xe02dc ,
+ 0xe02dd ,
+ 0xe02de ,
+ 0xe02df ,
+ 0xe02e0 ,
+ 0xe02e1 ,
+ 0xe02e2 ,
+ 0xe02e3 ,
+ 0xe02e4 ,
+ 0xe02e5 ,
+ 0xe02e6 ,
+ 0xe02e7 ,
+ 0xe02e8 ,
+ 0xe02e9 ,
+ 0xe02ea ,
+ 0xe02eb ,
+ 0xe02ec ,
+ 0xe02ed ,
+ 0xe02ee ,
+ 0xe02ef ,
+ 0xe02f0 ,
+ 0xe02f1 ,
+ 0xe02f2 ,
+ 0xe02f3 ,
+ 0xe02f4 ,
+ 0xe02f5 ,
+ 0xe02f6 ,
+ 0xe02f7 ,
+ 0xe02f8 ,
+ 0xe02f9 ,
+ 0xe02fa ,
+ 0xe02fb ,
+ 0xe02fc ,
+ 0xe02fd ,
+ 0xe02fe ,
+ 0xe02ff ,
+ 0xe0300 ,
+ 0xe0301 ,
+ 0xe0302 ,
+ 0xe0303 ,
+ 0xe0304 ,
+ 0xe0305 ,
+ 0xe0306 ,
+ 0xe0307 ,
+ 0xe0308 ,
+ 0xe0309 ,
+ 0xe030a ,
+ 0xe030b ,
+ 0xe030c ,
+ 0xe030d ,
+ 0xe030e ,
+ 0xe030f ,
+ 0xe0310 ,
+ 0xe0311 ,
+ 0xe0312 ,
+ 0xe0313 ,
+ 0xe0314 ,
+ 0xe0315 ,
+ 0xe0316 ,
+ 0xe0317 ,
+ 0xe0318 ,
+ 0xe0319 ,
+ 0xe031a ,
+ 0xe031b ,
+ 0xe031c ,
+ 0xe031d ,
+ 0xe031e ,
+ 0xe031f ,
+ 0xe0320 ,
+ 0xe0321 ,
+ 0xe0322 ,
+ 0xe0323 ,
+ 0xe0324 ,
+ 0xe0325 ,
+ 0xe0326 ,
+ 0xe0327 ,
+ 0xe0328 ,
+ 0xe0329 ,
+ 0xe032a ,
+ 0xe032b ,
+ 0xe032c ,
+ 0xe032d ,
+ 0xe032e ,
+ 0xe032f ,
+ 0xe0330 ,
+ 0xe0331 ,
+ 0xe0332 ,
+ 0xe0333 ,
+ 0xe0334 ,
+ 0xe0335 ,
+ 0xe0336 ,
+ 0xe0337 ,
+ 0xe0338 ,
+ 0xe0339 ,
+ 0xe033a ,
+ 0xe033b ,
+ 0xe033c ,
+ 0xe033d ,
+ 0xe033e ,
+ 0xe033f ,
+ 0xe0340 ,
+ 0xe0341 ,
+ 0xe0342 ,
+ 0xe0343 ,
+ 0xe0344 ,
+ 0xe0345 ,
+ 0xe0346 ,
+ 0xe0347 ,
+ 0xe0348 ,
+ 0xe0349 ,
+ 0xe034a ,
+ 0xe034b ,
+ 0xe034c ,
+ 0xe034d ,
+ 0xe034e ,
+ 0xe034f ,
+ 0xe0350 ,
+ 0xe0351 ,
+ 0xe0352 ,
+ 0xe0353 ,
+ 0xe0354 ,
+ 0xe0355 ,
+ 0xe0356 ,
+ 0xe0357 ,
+ 0xe0358 ,
+ 0xe0359 ,
+ 0xe035a ,
+ 0xe035b ,
+ 0xe035c ,
+ 0xe035d ,
+ 0xe035e ,
+ 0xe035f ,
+ 0xe0360 ,
+ 0xe0361 ,
+ 0xe0362 ,
+ 0xe0363 ,
+ 0xe0364 ,
+ 0xe0365 ,
+ 0xe0366 ,
+ 0xe0367 ,
+ 0xe0368 ,
+ 0xe0369 ,
+ 0xe036a ,
+ 0xe036b ,
+ 0xe036c ,
+ 0xe036d ,
+ 0xe036e ,
+ 0xe036f ,
+ 0xe0370 ,
+ 0xe0371 ,
+ 0xe0372 ,
+ 0xe0373 ,
+ 0xe0374 ,
+ 0xe0375 ,
+ 0xe0376 ,
+ 0xe0377 ,
+ 0xe0378 ,
+ 0xe0379 ,
+ 0xe037a ,
+ 0xe037b ,
+ 0xe037c ,
+ 0xe037d ,
+ 0xe037e ,
+ 0xe037f ,
+ 0xe0380 ,
+ 0xe0381 ,
+ 0xe0382 ,
+ 0xe0383 ,
+ 0xe0384 ,
+ 0xe0385 ,
+ 0xe0386 ,
+ 0xe0387 ,
+ 0xe0388 ,
+ 0xe0389 ,
+ 0xe038a ,
+ 0xe038b ,
+ 0xe038c ,
+ 0xe038d ,
+ 0xe038e ,
+ 0xe038f ,
+ 0xe0390 ,
+ 0xe0391 ,
+ 0xe0392 ,
+ 0xe0393 ,
+ 0xe0394 ,
+ 0xe0395 ,
+ 0xe0396 ,
+ 0xe0397 ,
+ 0xe0398 ,
+ 0xe0399 ,
+ 0xe039a ,
+ 0xe039b ,
+ 0xe039c ,
+ 0xe039d ,
+ 0xe039e ,
+ 0xe039f ,
+ 0xe03a0 ,
+ 0xe03a1 ,
+ 0xe03a2 ,
+ 0xe03a3 ,
+ 0xe03a4 ,
+ 0xe03a5 ,
+ 0xe03a6 ,
+ 0xe03a7 ,
+ 0xe03a8 ,
+ 0xe03a9 ,
+ 0xe03aa ,
+ 0xe03ab ,
+ 0xe03ac ,
+ 0xe03ad ,
+ 0xe03ae ,
+ 0xe03af ,
+ 0xe03b0 ,
+ 0xe03b1 ,
+ 0xe03b2 ,
+ 0xe03b3 ,
+ 0xe03b4 ,
+ 0xe03b5 ,
+ 0xe03b6 ,
+ 0xe03b7 ,
+ 0xe03b8 ,
+ 0xe03b9 ,
+ 0xe03ba ,
+ 0xe03bb ,
+ 0xe03bc ,
+ 0xe03bd ,
+ 0xe03be ,
+ 0xe03bf ,
+ 0xe03c0 ,
+ 0xe03c1 ,
+ 0xe03c2 ,
+ 0xe03c3 ,
+ 0xe03c4 ,
+ 0xe03c5 ,
+ 0xe03c6 ,
+ 0xe03c7 ,
+ 0xe03c8 ,
+ 0xe03c9 ,
+ 0xe03ca ,
+ 0xe03cb ,
+ 0xe03cc ,
+ 0xe03cd ,
+ 0xe03ce ,
+ 0xe03cf ,
+ 0xe03d0 ,
+ 0xe03d1 ,
+ 0xe03d2 ,
+ 0xe03d3 ,
+ 0xe03d4 ,
+ 0xe03d5 ,
+ 0xe03d6 ,
+ 0xe03d7 ,
+ 0xe03d8 ,
+ 0xe03d9 ,
+ 0xe03da ,
+ 0xe03db ,
+ 0xe03dc ,
+ 0xe03dd ,
+ 0xe03de ,
+ 0xe03df ,
+ 0xe03e0 ,
+ 0xe03e1 ,
+ 0xe03e2 ,
+ 0xe03e3 ,
+ 0xe03e4 ,
+ 0xe03e5 ,
+ 0xe03e6 ,
+ 0xe03e7 ,
+ 0xe03e8 ,
+ 0xe03e9 ,
+ 0xe03ea ,
+ 0xe03eb ,
+ 0xe03ec ,
+ 0xe03ed ,
+ 0xe03ee ,
+ 0xe03ef ,
+ 0xe03f0 ,
+ 0xe03f1 ,
+ 0xe03f2 ,
+ 0xe03f3 ,
+ 0xe03f4 ,
+ 0xe03f5 ,
+ 0xe03f6 ,
+ 0xe03f7 ,
+ 0xe03f8 ,
+ 0xe03f9 ,
+ 0xe03fa ,
+ 0xe03fb ,
+ 0xe03fc ,
+ 0xe03fd ,
+ 0xe03fe ,
+ 0xe03ff ,
+ 0xe0400 ,
+ 0xe0401 ,
+ 0xe0402 ,
+ 0xe0403 ,
+ 0xe0404 ,
+ 0xe0405 ,
+ 0xe0406 ,
+ 0xe0407 ,
+ 0xe0408 ,
+ 0xe0409 ,
+ 0xe040a ,
+ 0xe040b ,
+ 0xe040c ,
+ 0xe040d ,
+ 0xe040e ,
+ 0xe040f ,
+ 0xe0410 ,
+ 0xe0411 ,
+ 0xe0412 ,
+ 0xe0413 ,
+ 0xe0414 ,
+ 0xe0415 ,
+ 0xe0416 ,
+ 0xe0417 ,
+ 0xe0418 ,
+ 0xe0419 ,
+ 0xe041a ,
+ 0xe041b ,
+ 0xe041c ,
+ 0xe041d ,
+ 0xe041e ,
+ 0xe041f ,
+ 0xe0420 ,
+ 0xe0421 ,
+ 0xe0422 ,
+ 0xe0423 ,
+ 0xe0424 ,
+ 0xe0425 ,
+ 0xe0426 ,
+ 0xe0427 ,
+ 0xe0428 ,
+ 0xe0429 ,
+ 0xe042a ,
+ 0xe042b ,
+ 0xe042c ,
+ 0xe042d ,
+ 0xe042e ,
+ 0xe042f ,
+ 0xe0430 ,
+ 0xe0431 ,
+ 0xe0432 ,
+ 0xe0433 ,
+ 0xe0434 ,
+ 0xe0435 ,
+ 0xe0436 ,
+ 0xe0437 ,
+ 0xe0438 ,
+ 0xe0439 ,
+ 0xe043a ,
+ 0xe043b ,
+ 0xe043c ,
+ 0xe043d ,
+ 0xe043e ,
+ 0xe043f ,
+ 0xe0440 ,
+ 0xe0441 ,
+ 0xe0442 ,
+ 0xe0443 ,
+ 0xe0444 ,
+ 0xe0445 ,
+ 0xe0446 ,
+ 0xe0447 ,
+ 0xe0448 ,
+ 0xe0449 ,
+ 0xe044a ,
+ 0xe044b ,
+ 0xe044c ,
+ 0xe044d ,
+ 0xe044e ,
+ 0xe044f ,
+ 0xe0450 ,
+ 0xe0451 ,
+ 0xe0452 ,
+ 0xe0453 ,
+ 0xe0454 ,
+ 0xe0455 ,
+ 0xe0456 ,
+ 0xe0457 ,
+ 0xe0458 ,
+ 0xe0459 ,
+ 0xe045a ,
+ 0xe045b ,
+ 0xe045c ,
+ 0xe045d ,
+ 0xe045e ,
+ 0xe045f ,
+ 0xe0460 ,
+ 0xe0461 ,
+ 0xe0462 ,
+ 0xe0463 ,
+ 0xe0464 ,
+ 0xe0465 ,
+ 0xe0466 ,
+ 0xe0467 ,
+ 0xe0468 ,
+ 0xe0469 ,
+ 0xe046a ,
+ 0xe046b ,
+ 0xe046c ,
+ 0xe046d ,
+ 0xe046e ,
+ 0xe046f ,
+ 0xe0470 ,
+ 0xe0471 ,
+ 0xe0472 ,
+ 0xe0473 ,
+ 0xe0474 ,
+ 0xe0475 ,
+ 0xe0476 ,
+ 0xe0477 ,
+ 0xe0478 ,
+ 0xe0479 ,
+ 0xe047a ,
+ 0xe047b ,
+ 0xe047c ,
+ 0xe047d ,
+ 0xe047e ,
+ 0xe047f ,
+ 0xe0480 ,
+ 0xe0481 ,
+ 0xe0482 ,
+ 0xe0483 ,
+ 0xe0484 ,
+ 0xe0485 ,
+ 0xe0486 ,
+ 0xe0487 ,
+ 0xe0488 ,
+ 0xe0489 ,
+ 0xe048a ,
+ 0xe048b ,
+ 0xe048c ,
+ 0xe048d ,
+ 0xe048e ,
+ 0xe048f ,
+ 0xe0490 ,
+ 0xe0491 ,
+ 0xe0492 ,
+ 0xe0493 ,
+ 0xe0494 ,
+ 0xe0495 ,
+ 0xe0496 ,
+ 0xe0497 ,
+ 0xe0498 ,
+ 0xe0499 ,
+ 0xe049a ,
+ 0xe049b ,
+ 0xe049c ,
+ 0xe049d ,
+ 0xe049e ,
+ 0xe049f ,
+ 0xe04a0 ,
+ 0xe04a1 ,
+ 0xe04a2 ,
+ 0xe04a3 ,
+ 0xe04a4 ,
+ 0xe04a5 ,
+ 0xe04a6 ,
+ 0xe04a7 ,
+ 0xe04a8 ,
+ 0xe04a9 ,
+ 0xe04aa ,
+ 0xe04ab ,
+ 0xe04ac ,
+ 0xe04ad ,
+ 0xe04ae ,
+ 0xe04af ,
+ 0xe04b0 ,
+ 0xe04b1 ,
+ 0xe04b2 ,
+ 0xe04b3 ,
+ 0xe04b4 ,
+ 0xe04b5 ,
+ 0xe04b6 ,
+ 0xe04b7 ,
+ 0xe04b8 ,
+ 0xe04b9 ,
+ 0xe04ba ,
+ 0xe04bb ,
+ 0xe04bc ,
+ 0xe04bd ,
+ 0xe04be ,
+ 0xe04bf ,
+ 0xe04c0 ,
+ 0xe04c1 ,
+ 0xe04c2 ,
+ 0xe04c3 ,
+ 0xe04c4 ,
+ 0xe04c5 ,
+ 0xe04c6 ,
+ 0xe04c7 ,
+ 0xe04c8 ,
+ 0xe04c9 ,
+ 0xe04ca ,
+ 0xe04cb ,
+ 0xe04cc ,
+ 0xe04cd ,
+ 0xe04ce ,
+ 0xe04cf ,
+ 0xe04d0 ,
+ 0xe04d1 ,
+ 0xe04d2 ,
+ 0xe04d3 ,
+ 0xe04d4 ,
+ 0xe04d5 ,
+ 0xe04d6 ,
+ 0xe04d7 ,
+ 0xe04d8 ,
+ 0xe04d9 ,
+ 0xe04da ,
+ 0xe04db ,
+ 0xe04dc ,
+ 0xe04dd ,
+ 0xe04de ,
+ 0xe04df ,
+ 0xe04e0 ,
+ 0xe04e1 ,
+ 0xe04e2 ,
+ 0xe04e3 ,
+ 0xe04e4 ,
+ 0xe04e5 ,
+ 0xe04e6 ,
+ 0xe04e7 ,
+ 0xe04e8 ,
+ 0xe04e9 ,
+ 0xe04ea ,
+ 0xe04eb ,
+ 0xe04ec ,
+ 0xe04ed ,
+ 0xe04ee ,
+ 0xe04ef ,
+ 0xe04f0 ,
+ 0xe04f1 ,
+ 0xe04f2 ,
+ 0xe04f3 ,
+ 0xe04f4 ,
+ 0xe04f5 ,
+ 0xe04f6 ,
+ 0xe04f7 ,
+ 0xe04f8 ,
+ 0xe04f9 ,
+ 0xe04fa ,
+ 0xe04fb ,
+ 0xe04fc ,
+ 0xe04fd ,
+ 0xe04fe ,
+ 0xe04ff ,
+ 0xe0500 ,
+ 0xe0501 ,
+ 0xe0502 ,
+ 0xe0503 ,
+ 0xe0504 ,
+ 0xe0505 ,
+ 0xe0506 ,
+ 0xe0507 ,
+ 0xe0508 ,
+ 0xe0509 ,
+ 0xe050a ,
+ 0xe050b ,
+ 0xe050c ,
+ 0xe050d ,
+ 0xe050e ,
+ 0xe050f ,
+ 0xe0510 ,
+ 0xe0511 ,
+ 0xe0512 ,
+ 0xe0513 ,
+ 0xe0514 ,
+ 0xe0515 ,
+ 0xe0516 ,
+ 0xe0517 ,
+ 0xe0518 ,
+ 0xe0519 ,
+ 0xe051a ,
+ 0xe051b ,
+ 0xe051c ,
+ 0xe051d ,
+ 0xe051e ,
+ 0xe051f ,
+ 0xe0520 ,
+ 0xe0521 ,
+ 0xe0522 ,
+ 0xe0523 ,
+ 0xe0524 ,
+ 0xe0525 ,
+ 0xe0526 ,
+ 0xe0527 ,
+ 0xe0528 ,
+ 0xe0529 ,
+ 0xe052a ,
+ 0xe052b ,
+ 0xe052c ,
+ 0xe052d ,
+ 0xe052e ,
+ 0xe052f ,
+ 0xe0530 ,
+ 0xe0531 ,
+ 0xe0532 ,
+ 0xe0533 ,
+ 0xe0534 ,
+ 0xe0535 ,
+ 0xe0536 ,
+ 0xe0537 ,
+ 0xe0538 ,
+ 0xe0539 ,
+ 0xe053a ,
+ 0xe053b ,
+ 0xe053c ,
+ 0xe053d ,
+ 0xe053e ,
+ 0xe053f ,
+ 0xe0540 ,
+ 0xe0541 ,
+ 0xe0542 ,
+ 0xe0543 ,
+ 0xe0544 ,
+ 0xe0545 ,
+ 0xe0546 ,
+ 0xe0547 ,
+ 0xe0548 ,
+ 0xe0549 ,
+ 0xe054a ,
+ 0xe054b ,
+ 0xe054c ,
+ 0xe054d ,
+ 0xe054e ,
+ 0xe054f ,
+ 0xe0550 ,
+ 0xe0551 ,
+ 0xe0552 ,
+ 0xe0553 ,
+ 0xe0554 ,
+ 0xe0555 ,
+ 0xe0556 ,
+ 0xe0557 ,
+ 0xe0558 ,
+ 0xe0559 ,
+ 0xe055a ,
+ 0xe055b ,
+ 0xe055c ,
+ 0xe055d ,
+ 0xe055e ,
+ 0xe055f ,
+ 0xe0560 ,
+ 0xe0561 ,
+ 0xe0562 ,
+ 0xe0563 ,
+ 0xe0564 ,
+ 0xe0565 ,
+ 0xe0566 ,
+ 0xe0567 ,
+ 0xe0568 ,
+ 0xe0569 ,
+ 0xe056a ,
+ 0xe056b ,
+ 0xe056c ,
+ 0xe056d ,
+ 0xe056e ,
+ 0xe056f ,
+ 0xe0570 ,
+ 0xe0571 ,
+ 0xe0572 ,
+ 0xe0573 ,
+ 0xe0574 ,
+ 0xe0575 ,
+ 0xe0576 ,
+ 0xe0577 ,
+ 0xe0578 ,
+ 0xe0579 ,
+ 0xe057a ,
+ 0xe057b ,
+ 0xe057c ,
+ 0xe057d ,
+ 0xe057e ,
+ 0xe057f ,
+ 0xe0580 ,
+ 0xe0581 ,
+ 0xe0582 ,
+ 0xe0583 ,
+ 0xe0584 ,
+ 0xe0585 ,
+ 0xe0586 ,
+ 0xe0587 ,
+ 0xe0588 ,
+ 0xe0589 ,
+ 0xe058a ,
+ 0xe058b ,
+ 0xe058c ,
+ 0xe058d ,
+ 0xe058e ,
+ 0xe058f ,
+ 0xe0590 ,
+ 0xe0591 ,
+ 0xe0592 ,
+ 0xe0593 ,
+ 0xe0594 ,
+ 0xe0595 ,
+ 0xe0596 ,
+ 0xe0597 ,
+ 0xe0598 ,
+ 0xe0599 ,
+ 0xe059a ,
+ 0xe059b ,
+ 0xe059c ,
+ 0xe059d ,
+ 0xe059e ,
+ 0xe059f ,
+ 0xe05a0 ,
+ 0xe05a1 ,
+ 0xe05a2 ,
+ 0xe05a3 ,
+ 0xe05a4 ,
+ 0xe05a5 ,
+ 0xe05a6 ,
+ 0xe05a7 ,
+ 0xe05a8 ,
+ 0xe05a9 ,
+ 0xe05aa ,
+ 0xe05ab ,
+ 0xe05ac ,
+ 0xe05ad ,
+ 0xe05ae ,
+ 0xe05af ,
+ 0xe05b0 ,
+ 0xe05b1 ,
+ 0xe05b2 ,
+ 0xe05b3 ,
+ 0xe05b4 ,
+ 0xe05b5 ,
+ 0xe05b6 ,
+ 0xe05b7 ,
+ 0xe05b8 ,
+ 0xe05b9 ,
+ 0xe05ba ,
+ 0xe05bb ,
+ 0xe05bc ,
+ 0xe05bd ,
+ 0xe05be ,
+ 0xe05bf ,
+ 0xe05c0 ,
+ 0xe05c1 ,
+ 0xe05c2 ,
+ 0xe05c3 ,
+ 0xe05c4 ,
+ 0xe05c5 ,
+ 0xe05c6 ,
+ 0xe05c7 ,
+ 0xe05c8 ,
+ 0xe05c9 ,
+ 0xe05ca ,
+ 0xe05cb ,
+ 0xe05cc ,
+ 0xe05cd ,
+ 0xe05ce ,
+ 0xe05cf ,
+ 0xe05d0 ,
+ 0xe05d1 ,
+ 0xe05d2 ,
+ 0xe05d3 ,
+ 0xe05d4 ,
+ 0xe05d5 ,
+ 0xe05d6 ,
+ 0xe05d7 ,
+ 0xe05d8 ,
+ 0xe05d9 ,
+ 0xe05da ,
+ 0xe05db ,
+ 0xe05dc ,
+ 0xe05dd ,
+ 0xe05de ,
+ 0xe05df ,
+ 0xe05e0 ,
+ 0xe05e1 ,
+ 0xe05e2 ,
+ 0xe05e3 ,
+ 0xe05e4 ,
+ 0xe05e5 ,
+ 0xe05e6 ,
+ 0xe05e7 ,
+ 0xe05e8 ,
+ 0xe05e9 ,
+ 0xe05ea ,
+ 0xe05eb ,
+ 0xe05ec ,
+ 0xe05ed ,
+ 0xe05ee ,
+ 0xe05ef ,
+ 0xe05f0 ,
+ 0xe05f1 ,
+ 0xe05f2 ,
+ 0xe05f3 ,
+ 0xe05f4 ,
+ 0xe05f5 ,
+ 0xe05f6 ,
+ 0xe05f7 ,
+ 0xe05f8 ,
+ 0xe05f9 ,
+ 0xe05fa ,
+ 0xe05fb ,
+ 0xe05fc ,
+ 0xe05fd ,
+ 0xe05fe ,
+ 0xe05ff ,
+ 0xe0600 ,
+ 0xe0601 ,
+ 0xe0602 ,
+ 0xe0603 ,
+ 0xe0604 ,
+ 0xe0605 ,
+ 0xe0606 ,
+ 0xe0607 ,
+ 0xe0608 ,
+ 0xe0609 ,
+ 0xe060a ,
+ 0xe060b ,
+ 0xe060c ,
+ 0xe060d ,
+ 0xe060e ,
+ 0xe060f ,
+ 0xe0610 ,
+ 0xe0611 ,
+ 0xe0612 ,
+ 0xe0613 ,
+ 0xe0614 ,
+ 0xe0615 ,
+ 0xe0616 ,
+ 0xe0617 ,
+ 0xe0618 ,
+ 0xe0619 ,
+ 0xe061a ,
+ 0xe061b ,
+ 0xe061c ,
+ 0xe061d ,
+ 0xe061e ,
+ 0xe061f ,
+ 0xe0620 ,
+ 0xe0621 ,
+ 0xe0622 ,
+ 0xe0623 ,
+ 0xe0624 ,
+ 0xe0625 ,
+ 0xe0626 ,
+ 0xe0627 ,
+ 0xe0628 ,
+ 0xe0629 ,
+ 0xe062a ,
+ 0xe062b ,
+ 0xe062c ,
+ 0xe062d ,
+ 0xe062e ,
+ 0xe062f ,
+ 0xe0630 ,
+ 0xe0631 ,
+ 0xe0632 ,
+ 0xe0633 ,
+ 0xe0634 ,
+ 0xe0635 ,
+ 0xe0636 ,
+ 0xe0637 ,
+ 0xe0638 ,
+ 0xe0639 ,
+ 0xe063a ,
+ 0xe063b ,
+ 0xe063c ,
+ 0xe063d ,
+ 0xe063e ,
+ 0xe063f ,
+ 0xe0640 ,
+ 0xe0641 ,
+ 0xe0642 ,
+ 0xe0643 ,
+ 0xe0644 ,
+ 0xe0645 ,
+ 0xe0646 ,
+ 0xe0647 ,
+ 0xe0648 ,
+ 0xe0649 ,
+ 0xe064a ,
+ 0xe064b ,
+ 0xe064c ,
+ 0xe064d ,
+ 0xe064e ,
+ 0xe064f ,
+ 0xe0650 ,
+ 0xe0651 ,
+ 0xe0652 ,
+ 0xe0653 ,
+ 0xe0654 ,
+ 0xe0655 ,
+ 0xe0656 ,
+ 0xe0657 ,
+ 0xe0658 ,
+ 0xe0659 ,
+ 0xe065a ,
+ 0xe065b ,
+ 0xe065c ,
+ 0xe065d ,
+ 0xe065e ,
+ 0xe065f ,
+ 0xe0660 ,
+ 0xe0661 ,
+ 0xe0662 ,
+ 0xe0663 ,
+ 0xe0664 ,
+ 0xe0665 ,
+ 0xe0666 ,
+ 0xe0667 ,
+ 0xe0668 ,
+ 0xe0669 ,
+ 0xe066a ,
+ 0xe066b ,
+ 0xe066c ,
+ 0xe066d ,
+ 0xe066e ,
+ 0xe066f ,
+ 0xe0670 ,
+ 0xe0671 ,
+ 0xe0672 ,
+ 0xe0673 ,
+ 0xe0674 ,
+ 0xe0675 ,
+ 0xe0676 ,
+ 0xe0677 ,
+ 0xe0678 ,
+ 0xe0679 ,
+ 0xe067a ,
+ 0xe067b ,
+ 0xe067c ,
+ 0xe067d ,
+ 0xe067e ,
+ 0xe067f ,
+ 0xe0680 ,
+ 0xe0681 ,
+ 0xe0682 ,
+ 0xe0683 ,
+ 0xe0684 ,
+ 0xe0685 ,
+ 0xe0686 ,
+ 0xe0687 ,
+ 0xe0688 ,
+ 0xe0689 ,
+ 0xe068a ,
+ 0xe068b ,
+ 0xe068c ,
+ 0xe068d ,
+ 0xe068e ,
+ 0xe068f ,
+ 0xe0690 ,
+ 0xe0691 ,
+ 0xe0692 ,
+ 0xe0693 ,
+ 0xe0694 ,
+ 0xe0695 ,
+ 0xe0696 ,
+ 0xe0697 ,
+ 0xe0698 ,
+ 0xe0699 ,
+ 0xe069a ,
+ 0xe069b ,
+ 0xe069c ,
+ 0xe069d ,
+ 0xe069e ,
+ 0xe069f ,
+ 0xe06a0 ,
+ 0xe06a1 ,
+ 0xe06a2 ,
+ 0xe06a3 ,
+ 0xe06a4 ,
+ 0xe06a5 ,
+ 0xe06a6 ,
+ 0xe06a7 ,
+ 0xe06a8 ,
+ 0xe06a9 ,
+ 0xe06aa ,
+ 0xe06ab ,
+ 0xe06ac ,
+ 0xe06ad ,
+ 0xe06ae ,
+ 0xe06af ,
+ 0xe06b0 ,
+ 0xe06b1 ,
+ 0xe06b2 ,
+ 0xe06b3 ,
+ 0xe06b4 ,
+ 0xe06b5 ,
+ 0xe06b6 ,
+ 0xe06b7 ,
+ 0xe06b8 ,
+ 0xe06b9 ,
+ 0xe06ba ,
+ 0xe06bb ,
+ 0xe06bc ,
+ 0xe06bd ,
+ 0xe06be ,
+ 0xe06bf ,
+ 0xe06c0 ,
+ 0xe06c1 ,
+ 0xe06c2 ,
+ 0xe06c3 ,
+ 0xe06c4 ,
+ 0xe06c5 ,
+ 0xe06c6 ,
+ 0xe06c7 ,
+ 0xe06c8 ,
+ 0xe06c9 ,
+ 0xe06ca ,
+ 0xe06cb ,
+ 0xe06cc ,
+ 0xe06cd ,
+ 0xe06ce ,
+ 0xe06cf ,
+ 0xe06d0 ,
+ 0xe06d1 ,
+ 0xe06d2 ,
+ 0xe06d3 ,
+ 0xe06d4 ,
+ 0xe06d5 ,
+ 0xe06d6 ,
+ 0xe06d7 ,
+ 0xe06d8 ,
+ 0xe06d9 ,
+ 0xe06da ,
+ 0xe06db ,
+ 0xe06dc ,
+ 0xe06dd ,
+ 0xe06de ,
+ 0xe06df ,
+ 0xe06e0 ,
+ 0xe06e1 ,
+ 0xe06e2 ,
+ 0xe06e3 ,
+ 0xe06e4 ,
+ 0xe06e5 ,
+ 0xe06e6 ,
+ 0xe06e7 ,
+ 0xe06e8 ,
+ 0xe06e9 ,
+ 0xe06ea ,
+ 0xe06eb ,
+ 0xe06ec ,
+ 0xe06ed ,
+ 0xe06ee ,
+ 0xe06ef ,
+ 0xe06f0 ,
+ 0xe06f1 ,
+ 0xe06f2 ,
+ 0xe06f3 ,
+ 0xe06f4 ,
+ 0xe06f5 ,
+ 0xe06f6 ,
+ 0xe06f7 ,
+ 0xe06f8 ,
+ 0xe06f9 ,
+ 0xe06fa ,
+ 0xe06fb ,
+ 0xe06fc ,
+ 0xe06fd ,
+ 0xe06fe ,
+ 0xe06ff ,
+ 0xe0700 ,
+ 0xe0701 ,
+ 0xe0702 ,
+ 0xe0703 ,
+ 0xe0704 ,
+ 0xe0705 ,
+ 0xe0706 ,
+ 0xe0707 ,
+ 0xe0708 ,
+ 0xe0709 ,
+ 0xe070a ,
+ 0xe070b ,
+ 0xe070c ,
+ 0xe070d ,
+ 0xe070e ,
+ 0xe070f ,
+ 0xe0710 ,
+ 0xe0711 ,
+ 0xe0712 ,
+ 0xe0713 ,
+ 0xe0714 ,
+ 0xe0715 ,
+ 0xe0716 ,
+ 0xe0717 ,
+ 0xe0718 ,
+ 0xe0719 ,
+ 0xe071a ,
+ 0xe071b ,
+ 0xe071c ,
+ 0xe071d ,
+ 0xe071e ,
+ 0xe071f ,
+ 0xe0720 ,
+ 0xe0721 ,
+ 0xe0722 ,
+ 0xe0723 ,
+ 0xe0724 ,
+ 0xe0725 ,
+ 0xe0726 ,
+ 0xe0727 ,
+ 0xe0728 ,
+ 0xe0729 ,
+ 0xe072a ,
+ 0xe072b ,
+ 0xe072c ,
+ 0xe072d ,
+ 0xe072e ,
+ 0xe072f ,
+ 0xe0730 ,
+ 0xe0731 ,
+ 0xe0732 ,
+ 0xe0733 ,
+ 0xe0734 ,
+ 0xe0735 ,
+ 0xe0736 ,
+ 0xe0737 ,
+ 0xe0738 ,
+ 0xe0739 ,
+ 0xe073a ,
+ 0xe073b ,
+ 0xe073c ,
+ 0xe073d ,
+ 0xe073e ,
+ 0xe073f ,
+ 0xe0740 ,
+ 0xe0741 ,
+ 0xe0742 ,
+ 0xe0743 ,
+ 0xe0744 ,
+ 0xe0745 ,
+ 0xe0746 ,
+ 0xe0747 ,
+ 0xe0748 ,
+ 0xe0749 ,
+ 0xe074a ,
+ 0xe074b ,
+ 0xe074c ,
+ 0xe074d ,
+ 0xe074e ,
+ 0xe074f ,
+ 0xe0750 ,
+ 0xe0751 ,
+ 0xe0752 ,
+ 0xe0753 ,
+ 0xe0754 ,
+ 0xe0755 ,
+ 0xe0756 ,
+ 0xe0757 ,
+ 0xe0758 ,
+ 0xe0759 ,
+ 0xe075a ,
+ 0xe075b ,
+ 0xe075c ,
+ 0xe075d ,
+ 0xe075e ,
+ 0xe075f ,
+ 0xe0760 ,
+ 0xe0761 ,
+ 0xe0762 ,
+ 0xe0763 ,
+ 0xe0764 ,
+ 0xe0765 ,
+ 0xe0766 ,
+ 0xe0767 ,
+ 0xe0768 ,
+ 0xe0769 ,
+ 0xe076a ,
+ 0xe076b ,
+ 0xe076c ,
+ 0xe076d ,
+ 0xe076e ,
+ 0xe076f ,
+ 0xe0770 ,
+ 0xe0771 ,
+ 0xe0772 ,
+ 0xe0773 ,
+ 0xe0774 ,
+ 0xe0775 ,
+ 0xe0776 ,
+ 0xe0777 ,
+ 0xe0778 ,
+ 0xe0779 ,
+ 0xe077a ,
+ 0xe077b ,
+ 0xe077c ,
+ 0xe077d ,
+ 0xe077e ,
+ 0xe077f ,
+ 0xe0780 ,
+ 0xe0781 ,
+ 0xe0782 ,
+ 0xe0783 ,
+ 0xe0784 ,
+ 0xe0785 ,
+ 0xe0786 ,
+ 0xe0787 ,
+ 0xe0788 ,
+ 0xe0789 ,
+ 0xe078a ,
+ 0xe078b ,
+ 0xe078c ,
+ 0xe078d ,
+ 0xe078e ,
+ 0xe078f ,
+ 0xe0790 ,
+ 0xe0791 ,
+ 0xe0792 ,
+ 0xe0793 ,
+ 0xe0794 ,
+ 0xe0795 ,
+ 0xe0796 ,
+ 0xe0797 ,
+ 0xe0798 ,
+ 0xe0799 ,
+ 0xe079a ,
+ 0xe079b ,
+ 0xe079c ,
+ 0xe079d ,
+ 0xe079e ,
+ 0xe079f ,
+ 0xe07a0 ,
+ 0xe07a1 ,
+ 0xe07a2 ,
+ 0xe07a3 ,
+ 0xe07a4 ,
+ 0xe07a5 ,
+ 0xe07a6 ,
+ 0xe07a7 ,
+ 0xe07a8 ,
+ 0xe07a9 ,
+ 0xe07aa ,
+ 0xe07ab ,
+ 0xe07ac ,
+ 0xe07ad ,
+ 0xe07ae ,
+ 0xe07af ,
+ 0xe07b0 ,
+ 0xe07b1 ,
+ 0xe07b2 ,
+ 0xe07b3 ,
+ 0xe07b4 ,
+ 0xe07b5 ,
+ 0xe07b6 ,
+ 0xe07b7 ,
+ 0xe07b8 ,
+ 0xe07b9 ,
+ 0xe07ba ,
+ 0xe07bb ,
+ 0xe07bc ,
+ 0xe07bd ,
+ 0xe07be ,
+ 0xe07bf ,
+ 0xe07c0 ,
+ 0xe07c1 ,
+ 0xe07c2 ,
+ 0xe07c3 ,
+ 0xe07c4 ,
+ 0xe07c5 ,
+ 0xe07c6 ,
+ 0xe07c7 ,
+ 0xe07c8 ,
+ 0xe07c9 ,
+ 0xe07ca ,
+ 0xe07cb ,
+ 0xe07cc ,
+ 0xe07cd ,
+ 0xe07ce ,
+ 0xe07cf ,
+ 0xe07d0 ,
+ 0xe07d1 ,
+ 0xe07d2 ,
+ 0xe07d3 ,
+ 0xe07d4 ,
+ 0xe07d5 ,
+ 0xe07d6 ,
+ 0xe07d7 ,
+ 0xe07d8 ,
+ 0xe07d9 ,
+ 0xe07da ,
+ 0xe07db ,
+ 0xe07dc ,
+ 0xe07dd ,
+ 0xe07de ,
+ 0xe07df ,
+ 0xe07e0 ,
+ 0xe07e1 ,
+ 0xe07e2 ,
+ 0xe07e3 ,
+ 0xe07e4 ,
+ 0xe07e5 ,
+ 0xe07e6 ,
+ 0xe07e7 ,
+ 0xe07e8 ,
+ 0xe07e9 ,
+ 0xe07ea ,
+ 0xe07eb ,
+ 0xe07ec ,
+ 0xe07ed ,
+ 0xe07ee ,
+ 0xe07ef ,
+ 0xe07f0 ,
+ 0xe07f1 ,
+ 0xe07f2 ,
+ 0xe07f3 ,
+ 0xe07f4 ,
+ 0xe07f5 ,
+ 0xe07f6 ,
+ 0xe07f7 ,
+ 0xe07f8 ,
+ 0xe07f9 ,
+ 0xe07fa ,
+ 0xe07fb ,
+ 0xe07fc ,
+ 0xe07fd ,
+ 0xe07fe ,
+ 0xe07ff ,
+ 0xe0800 ,
+ 0xe0801 ,
+ 0xe0802 ,
+ 0xe0803 ,
+ 0xe0804 ,
+ 0xe0805 ,
+ 0xe0806 ,
+ 0xe0807 ,
+ 0xe0808 ,
+ 0xe0809 ,
+ 0xe080a ,
+ 0xe080b ,
+ 0xe080c ,
+ 0xe080d ,
+ 0xe080e ,
+ 0xe080f ,
+ 0xe0810 ,
+ 0xe0811 ,
+ 0xe0812 ,
+ 0xe0813 ,
+ 0xe0814 ,
+ 0xe0815 ,
+ 0xe0816 ,
+ 0xe0817 ,
+ 0xe0818 ,
+ 0xe0819 ,
+ 0xe081a ,
+ 0xe081b ,
+ 0xe081c ,
+ 0xe081d ,
+ 0xe081e ,
+ 0xe081f ,
+ 0xe0820 ,
+ 0xe0821 ,
+ 0xe0822 ,
+ 0xe0823 ,
+ 0xe0824 ,
+ 0xe0825 ,
+ 0xe0826 ,
+ 0xe0827 ,
+ 0xe0828 ,
+ 0xe0829 ,
+ 0xe082a ,
+ 0xe082b ,
+ 0xe082c ,
+ 0xe082d ,
+ 0xe082e ,
+ 0xe082f ,
+ 0xe0830 ,
+ 0xe0831 ,
+ 0xe0832 ,
+ 0xe0833 ,
+ 0xe0834 ,
+ 0xe0835 ,
+ 0xe0836 ,
+ 0xe0837 ,
+ 0xe0838 ,
+ 0xe0839 ,
+ 0xe083a ,
+ 0xe083b ,
+ 0xe083c ,
+ 0xe083d ,
+ 0xe083e ,
+ 0xe083f ,
+ 0xe0840 ,
+ 0xe0841 ,
+ 0xe0842 ,
+ 0xe0843 ,
+ 0xe0844 ,
+ 0xe0845 ,
+ 0xe0846 ,
+ 0xe0847 ,
+ 0xe0848 ,
+ 0xe0849 ,
+ 0xe084a ,
+ 0xe084b ,
+ 0xe084c ,
+ 0xe084d ,
+ 0xe084e ,
+ 0xe084f ,
+ 0xe0850 ,
+ 0xe0851 ,
+ 0xe0852 ,
+ 0xe0853 ,
+ 0xe0854 ,
+ 0xe0855 ,
+ 0xe0856 ,
+ 0xe0857 ,
+ 0xe0858 ,
+ 0xe0859 ,
+ 0xe085a ,
+ 0xe085b ,
+ 0xe085c ,
+ 0xe085d ,
+ 0xe085e ,
+ 0xe085f ,
+ 0xe0860 ,
+ 0xe0861 ,
+ 0xe0862 ,
+ 0xe0863 ,
+ 0xe0864 ,
+ 0xe0865 ,
+ 0xe0866 ,
+ 0xe0867 ,
+ 0xe0868 ,
+ 0xe0869 ,
+ 0xe086a ,
+ 0xe086b ,
+ 0xe086c ,
+ 0xe086d ,
+ 0xe086e ,
+ 0xe086f ,
+ 0xe0870 ,
+ 0xe0871 ,
+ 0xe0872 ,
+ 0xe0873 ,
+ 0xe0874 ,
+ 0xe0875 ,
+ 0xe0876 ,
+ 0xe0877 ,
+ 0xe0878 ,
+ 0xe0879 ,
+ 0xe087a ,
+ 0xe087b ,
+ 0xe087c ,
+ 0xe087d ,
+ 0xe087e ,
+ 0xe087f ,
+ 0xe0880 ,
+ 0xe0881 ,
+ 0xe0882 ,
+ 0xe0883 ,
+ 0xe0884 ,
+ 0xe0885 ,
+ 0xe0886 ,
+ 0xe0887 ,
+ 0xe0888 ,
+ 0xe0889 ,
+ 0xe088a ,
+ 0xe088b ,
+ 0xe088c ,
+ 0xe088d ,
+ 0xe088e ,
+ 0xe088f ,
+ 0xe0890 ,
+ 0xe0891 ,
+ 0xe0892 ,
+ 0xe0893 ,
+ 0xe0894 ,
+ 0xe0895 ,
+ 0xe0896 ,
+ 0xe0897 ,
+ 0xe0898 ,
+ 0xe0899 ,
+ 0xe089a ,
+ 0xe089b ,
+ 0xe089c ,
+ 0xe089d ,
+ 0xe089e ,
+ 0xe089f ,
+ 0xe08a0 ,
+ 0xe08a1 ,
+ 0xe08a2 ,
+ 0xe08a3 ,
+ 0xe08a4 ,
+ 0xe08a5 ,
+ 0xe08a6 ,
+ 0xe08a7 ,
+ 0xe08a8 ,
+ 0xe08a9 ,
+ 0xe08aa ,
+ 0xe08ab ,
+ 0xe08ac ,
+ 0xe08ad ,
+ 0xe08ae ,
+ 0xe08af ,
+ 0xe08b0 ,
+ 0xe08b1 ,
+ 0xe08b2 ,
+ 0xe08b3 ,
+ 0xe08b4 ,
+ 0xe08b5 ,
+ 0xe08b6 ,
+ 0xe08b7 ,
+ 0xe08b8 ,
+ 0xe08b9 ,
+ 0xe08ba ,
+ 0xe08bb ,
+ 0xe08bc ,
+ 0xe08bd ,
+ 0xe08be ,
+ 0xe08bf ,
+ 0xe08c0 ,
+ 0xe08c1 ,
+ 0xe08c2 ,
+ 0xe08c3 ,
+ 0xe08c4 ,
+ 0xe08c5 ,
+ 0xe08c6 ,
+ 0xe08c7 ,
+ 0xe08c8 ,
+ 0xe08c9 ,
+ 0xe08ca ,
+ 0xe08cb ,
+ 0xe08cc ,
+ 0xe08cd ,
+ 0xe08ce ,
+ 0xe08cf ,
+ 0xe08d0 ,
+ 0xe08d1 ,
+ 0xe08d2 ,
+ 0xe08d3 ,
+ 0xe08d4 ,
+ 0xe08d5 ,
+ 0xe08d6 ,
+ 0xe08d7 ,
+ 0xe08d8 ,
+ 0xe08d9 ,
+ 0xe08da ,
+ 0xe08db ,
+ 0xe08dc ,
+ 0xe08dd ,
+ 0xe08de ,
+ 0xe08df ,
+ 0xe08e0 ,
+ 0xe08e1 ,
+ 0xe08e2 ,
+ 0xe08e3 ,
+ 0xe08e4 ,
+ 0xe08e5 ,
+ 0xe08e6 ,
+ 0xe08e7 ,
+ 0xe08e8 ,
+ 0xe08e9 ,
+ 0xe08ea ,
+ 0xe08eb ,
+ 0xe08ec ,
+ 0xe08ed ,
+ 0xe08ee ,
+ 0xe08ef ,
+ 0xe08f0 ,
+ 0xe08f1 ,
+ 0xe08f2 ,
+ 0xe08f3 ,
+ 0xe08f4 ,
+ 0xe08f5 ,
+ 0xe08f6 ,
+ 0xe08f7 ,
+ 0xe08f8 ,
+ 0xe08f9 ,
+ 0xe08fa ,
+ 0xe08fb ,
+ 0xe08fc ,
+ 0xe08fd ,
+ 0xe08fe ,
+ 0xe08ff ,
+ 0xe0900 ,
+ 0xe0901 ,
+ 0xe0902 ,
+ 0xe0903 ,
+ 0xe0904 ,
+ 0xe0905 ,
+ 0xe0906 ,
+ 0xe0907 ,
+ 0xe0908 ,
+ 0xe0909 ,
+ 0xe090a ,
+ 0xe090b ,
+ 0xe090c ,
+ 0xe090d ,
+ 0xe090e ,
+ 0xe090f ,
+ 0xe0910 ,
+ 0xe0911 ,
+ 0xe0912 ,
+ 0xe0913 ,
+ 0xe0914 ,
+ 0xe0915 ,
+ 0xe0916 ,
+ 0xe0917 ,
+ 0xe0918 ,
+ 0xe0919 ,
+ 0xe091a ,
+ 0xe091b ,
+ 0xe091c ,
+ 0xe091d ,
+ 0xe091e ,
+ 0xe091f ,
+ 0xe0920 ,
+ 0xe0921 ,
+ 0xe0922 ,
+ 0xe0923 ,
+ 0xe0924 ,
+ 0xe0925 ,
+ 0xe0926 ,
+ 0xe0927 ,
+ 0xe0928 ,
+ 0xe0929 ,
+ 0xe092a ,
+ 0xe092b ,
+ 0xe092c ,
+ 0xe092d ,
+ 0xe092e ,
+ 0xe092f ,
+ 0xe0930 ,
+ 0xe0931 ,
+ 0xe0932 ,
+ 0xe0933 ,
+ 0xe0934 ,
+ 0xe0935 ,
+ 0xe0936 ,
+ 0xe0937 ,
+ 0xe0938 ,
+ 0xe0939 ,
+ 0xe093a ,
+ 0xe093b ,
+ 0xe093c ,
+ 0xe093d ,
+ 0xe093e ,
+ 0xe093f ,
+ 0xe0940 ,
+ 0xe0941 ,
+ 0xe0942 ,
+ 0xe0943 ,
+ 0xe0944 ,
+ 0xe0945 ,
+ 0xe0946 ,
+ 0xe0947 ,
+ 0xe0948 ,
+ 0xe0949 ,
+ 0xe094a ,
+ 0xe094b ,
+ 0xe094c ,
+ 0xe094d ,
+ 0xe094e ,
+ 0xe094f ,
+ 0xe0950 ,
+ 0xe0951 ,
+ 0xe0952 ,
+ 0xe0953 ,
+ 0xe0954 ,
+ 0xe0955 ,
+ 0xe0956 ,
+ 0xe0957 ,
+ 0xe0958 ,
+ 0xe0959 ,
+ 0xe095a ,
+ 0xe095b ,
+ 0xe095c ,
+ 0xe095d ,
+ 0xe095e ,
+ 0xe095f ,
+ 0xe0960 ,
+ 0xe0961 ,
+ 0xe0962 ,
+ 0xe0963 ,
+ 0xe0964 ,
+ 0xe0965 ,
+ 0xe0966 ,
+ 0xe0967 ,
+ 0xe0968 ,
+ 0xe0969 ,
+ 0xe096a ,
+ 0xe096b ,
+ 0xe096c ,
+ 0xe096d ,
+ 0xe096e ,
+ 0xe096f ,
+ 0xe0970 ,
+ 0xe0971 ,
+ 0xe0972 ,
+ 0xe0973 ,
+ 0xe0974 ,
+ 0xe0975 ,
+ 0xe0976 ,
+ 0xe0977 ,
+ 0xe0978 ,
+ 0xe0979 ,
+ 0xe097a ,
+ 0xe097b ,
+ 0xe097c ,
+ 0xe097d ,
+ 0xe097e ,
+ 0xe097f ,
+ 0xe0980 ,
+ 0xe0981 ,
+ 0xe0982 ,
+ 0xe0983 ,
+ 0xe0984 ,
+ 0xe0985 ,
+ 0xe0986 ,
+ 0xe0987 ,
+ 0xe0988 ,
+ 0xe0989 ,
+ 0xe098a ,
+ 0xe098b ,
+ 0xe098c ,
+ 0xe098d ,
+ 0xe098e ,
+ 0xe098f ,
+ 0xe0990 ,
+ 0xe0991 ,
+ 0xe0992 ,
+ 0xe0993 ,
+ 0xe0994 ,
+ 0xe0995 ,
+ 0xe0996 ,
+ 0xe0997 ,
+ 0xe0998 ,
+ 0xe0999 ,
+ 0xe099a ,
+ 0xe099b ,
+ 0xe099c ,
+ 0xe099d ,
+ 0xe099e ,
+ 0xe099f ,
+ 0xe09a0 ,
+ 0xe09a1 ,
+ 0xe09a2 ,
+ 0xe09a3 ,
+ 0xe09a4 ,
+ 0xe09a5 ,
+ 0xe09a6 ,
+ 0xe09a7 ,
+ 0xe09a8 ,
+ 0xe09a9 ,
+ 0xe09aa ,
+ 0xe09ab ,
+ 0xe09ac ,
+ 0xe09ad ,
+ 0xe09ae ,
+ 0xe09af ,
+ 0xe09b0 ,
+ 0xe09b1 ,
+ 0xe09b2 ,
+ 0xe09b3 ,
+ 0xe09b4 ,
+ 0xe09b5 ,
+ 0xe09b6 ,
+ 0xe09b7 ,
+ 0xe09b8 ,
+ 0xe09b9 ,
+ 0xe09ba ,
+ 0xe09bb ,
+ 0xe09bc ,
+ 0xe09bd ,
+ 0xe09be ,
+ 0xe09bf ,
+ 0xe09c0 ,
+ 0xe09c1 ,
+ 0xe09c2 ,
+ 0xe09c3 ,
+ 0xe09c4 ,
+ 0xe09c5 ,
+ 0xe09c6 ,
+ 0xe09c7 ,
+ 0xe09c8 ,
+ 0xe09c9 ,
+ 0xe09ca ,
+ 0xe09cb ,
+ 0xe09cc ,
+ 0xe09cd ,
+ 0xe09ce ,
+ 0xe09cf ,
+ 0xe09d0 ,
+ 0xe09d1 ,
+ 0xe09d2 ,
+ 0xe09d3 ,
+ 0xe09d4 ,
+ 0xe09d5 ,
+ 0xe09d6 ,
+ 0xe09d7 ,
+ 0xe09d8 ,
+ 0xe09d9 ,
+ 0xe09da ,
+ 0xe09db ,
+ 0xe09dc ,
+ 0xe09dd ,
+ 0xe09de ,
+ 0xe09df ,
+ 0xe09e0 ,
+ 0xe09e1 ,
+ 0xe09e2 ,
+ 0xe09e3 ,
+ 0xe09e4 ,
+ 0xe09e5 ,
+ 0xe09e6 ,
+ 0xe09e7 ,
+ 0xe09e8 ,
+ 0xe09e9 ,
+ 0xe09ea ,
+ 0xe09eb ,
+ 0xe09ec ,
+ 0xe09ed ,
+ 0xe09ee ,
+ 0xe09ef ,
+ 0xe09f0 ,
+ 0xe09f1 ,
+ 0xe09f2 ,
+ 0xe09f3 ,
+ 0xe09f4 ,
+ 0xe09f5 ,
+ 0xe09f6 ,
+ 0xe09f7 ,
+ 0xe09f8 ,
+ 0xe09f9 ,
+ 0xe09fa ,
+ 0xe09fb ,
+ 0xe09fc ,
+ 0xe09fd ,
+ 0xe09fe ,
+ 0xe09ff ,
+ 0xe0a00 ,
+ 0xe0a01 ,
+ 0xe0a02 ,
+ 0xe0a03 ,
+ 0xe0a04 ,
+ 0xe0a05 ,
+ 0xe0a06 ,
+ 0xe0a07 ,
+ 0xe0a08 ,
+ 0xe0a09 ,
+ 0xe0a0a ,
+ 0xe0a0b ,
+ 0xe0a0c ,
+ 0xe0a0d ,
+ 0xe0a0e ,
+ 0xe0a0f ,
+ 0xe0a10 ,
+ 0xe0a11 ,
+ 0xe0a12 ,
+ 0xe0a13 ,
+ 0xe0a14 ,
+ 0xe0a15 ,
+ 0xe0a16 ,
+ 0xe0a17 ,
+ 0xe0a18 ,
+ 0xe0a19 ,
+ 0xe0a1a ,
+ 0xe0a1b ,
+ 0xe0a1c ,
+ 0xe0a1d ,
+ 0xe0a1e ,
+ 0xe0a1f ,
+ 0xe0a20 ,
+ 0xe0a21 ,
+ 0xe0a22 ,
+ 0xe0a23 ,
+ 0xe0a24 ,
+ 0xe0a25 ,
+ 0xe0a26 ,
+ 0xe0a27 ,
+ 0xe0a28 ,
+ 0xe0a29 ,
+ 0xe0a2a ,
+ 0xe0a2b ,
+ 0xe0a2c ,
+ 0xe0a2d ,
+ 0xe0a2e ,
+ 0xe0a2f ,
+ 0xe0a30 ,
+ 0xe0a31 ,
+ 0xe0a32 ,
+ 0xe0a33 ,
+ 0xe0a34 ,
+ 0xe0a35 ,
+ 0xe0a36 ,
+ 0xe0a37 ,
+ 0xe0a38 ,
+ 0xe0a39 ,
+ 0xe0a3a ,
+ 0xe0a3b ,
+ 0xe0a3c ,
+ 0xe0a3d ,
+ 0xe0a3e ,
+ 0xe0a3f ,
+ 0xe0a40 ,
+ 0xe0a41 ,
+ 0xe0a42 ,
+ 0xe0a43 ,
+ 0xe0a44 ,
+ 0xe0a45 ,
+ 0xe0a46 ,
+ 0xe0a47 ,
+ 0xe0a48 ,
+ 0xe0a49 ,
+ 0xe0a4a ,
+ 0xe0a4b ,
+ 0xe0a4c ,
+ 0xe0a4d ,
+ 0xe0a4e ,
+ 0xe0a4f ,
+ 0xe0a50 ,
+ 0xe0a51 ,
+ 0xe0a52 ,
+ 0xe0a53 ,
+ 0xe0a54 ,
+ 0xe0a55 ,
+ 0xe0a56 ,
+ 0xe0a57 ,
+ 0xe0a58 ,
+ 0xe0a59 ,
+ 0xe0a5a ,
+ 0xe0a5b ,
+ 0xe0a5c ,
+ 0xe0a5d ,
+ 0xe0a5e ,
+ 0xe0a5f ,
+ 0xe0a60 ,
+ 0xe0a61 ,
+ 0xe0a62 ,
+ 0xe0a63 ,
+ 0xe0a64 ,
+ 0xe0a65 ,
+ 0xe0a66 ,
+ 0xe0a67 ,
+ 0xe0a68 ,
+ 0xe0a69 ,
+ 0xe0a6a ,
+ 0xe0a6b ,
+ 0xe0a6c ,
+ 0xe0a6d ,
+ 0xe0a6e ,
+ 0xe0a6f ,
+ 0xe0a70 ,
+ 0xe0a71 ,
+ 0xe0a72 ,
+ 0xe0a73 ,
+ 0xe0a74 ,
+ 0xe0a75 ,
+ 0xe0a76 ,
+ 0xe0a77 ,
+ 0xe0a78 ,
+ 0xe0a79 ,
+ 0xe0a7a ,
+ 0xe0a7b ,
+ 0xe0a7c ,
+ 0xe0a7d ,
+ 0xe0a7e ,
+ 0xe0a7f ,
+ 0xe0a80 ,
+ 0xe0a81 ,
+ 0xe0a82 ,
+ 0xe0a83 ,
+ 0xe0a84 ,
+ 0xe0a85 ,
+ 0xe0a86 ,
+ 0xe0a87 ,
+ 0xe0a88 ,
+ 0xe0a89 ,
+ 0xe0a8a ,
+ 0xe0a8b ,
+ 0xe0a8c ,
+ 0xe0a8d ,
+ 0xe0a8e ,
+ 0xe0a8f ,
+ 0xe0a90 ,
+ 0xe0a91 ,
+ 0xe0a92 ,
+ 0xe0a93 ,
+ 0xe0a94 ,
+ 0xe0a95 ,
+ 0xe0a96 ,
+ 0xe0a97 ,
+ 0xe0a98 ,
+ 0xe0a99 ,
+ 0xe0a9a ,
+ 0xe0a9b ,
+ 0xe0a9c ,
+ 0xe0a9d ,
+ 0xe0a9e ,
+ 0xe0a9f ,
+ 0xe0aa0 ,
+ 0xe0aa1 ,
+ 0xe0aa2 ,
+ 0xe0aa3 ,
+ 0xe0aa4 ,
+ 0xe0aa5 ,
+ 0xe0aa6 ,
+ 0xe0aa7 ,
+ 0xe0aa8 ,
+ 0xe0aa9 ,
+ 0xe0aaa ,
+ 0xe0aab ,
+ 0xe0aac ,
+ 0xe0aad ,
+ 0xe0aae ,
+ 0xe0aaf ,
+ 0xe0ab0 ,
+ 0xe0ab1 ,
+ 0xe0ab2 ,
+ 0xe0ab3 ,
+ 0xe0ab4 ,
+ 0xe0ab5 ,
+ 0xe0ab6 ,
+ 0xe0ab7 ,
+ 0xe0ab8 ,
+ 0xe0ab9 ,
+ 0xe0aba ,
+ 0xe0abb ,
+ 0xe0abc ,
+ 0xe0abd ,
+ 0xe0abe ,
+ 0xe0abf ,
+ 0xe0ac0 ,
+ 0xe0ac1 ,
+ 0xe0ac2 ,
+ 0xe0ac3 ,
+ 0xe0ac4 ,
+ 0xe0ac5 ,
+ 0xe0ac6 ,
+ 0xe0ac7 ,
+ 0xe0ac8 ,
+ 0xe0ac9 ,
+ 0xe0aca ,
+ 0xe0acb ,
+ 0xe0acc ,
+ 0xe0acd ,
+ 0xe0ace ,
+ 0xe0acf ,
+ 0xe0ad0 ,
+ 0xe0ad1 ,
+ 0xe0ad2 ,
+ 0xe0ad3 ,
+ 0xe0ad4 ,
+ 0xe0ad5 ,
+ 0xe0ad6 ,
+ 0xe0ad7 ,
+ 0xe0ad8 ,
+ 0xe0ad9 ,
+ 0xe0ada ,
+ 0xe0adb ,
+ 0xe0adc ,
+ 0xe0add ,
+ 0xe0ade ,
+ 0xe0adf ,
+ 0xe0ae0 ,
+ 0xe0ae1 ,
+ 0xe0ae2 ,
+ 0xe0ae3 ,
+ 0xe0ae4 ,
+ 0xe0ae5 ,
+ 0xe0ae6 ,
+ 0xe0ae7 ,
+ 0xe0ae8 ,
+ 0xe0ae9 ,
+ 0xe0aea ,
+ 0xe0aeb ,
+ 0xe0aec ,
+ 0xe0aed ,
+ 0xe0aee ,
+ 0xe0aef ,
+ 0xe0af0 ,
+ 0xe0af1 ,
+ 0xe0af2 ,
+ 0xe0af3 ,
+ 0xe0af4 ,
+ 0xe0af5 ,
+ 0xe0af6 ,
+ 0xe0af7 ,
+ 0xe0af8 ,
+ 0xe0af9 ,
+ 0xe0afa ,
+ 0xe0afb ,
+ 0xe0afc ,
+ 0xe0afd ,
+ 0xe0afe ,
+ 0xe0aff ,
+ 0xe0b00 ,
+ 0xe0b01 ,
+ 0xe0b02 ,
+ 0xe0b03 ,
+ 0xe0b04 ,
+ 0xe0b05 ,
+ 0xe0b06 ,
+ 0xe0b07 ,
+ 0xe0b08 ,
+ 0xe0b09 ,
+ 0xe0b0a ,
+ 0xe0b0b ,
+ 0xe0b0c ,
+ 0xe0b0d ,
+ 0xe0b0e ,
+ 0xe0b0f ,
+ 0xe0b10 ,
+ 0xe0b11 ,
+ 0xe0b12 ,
+ 0xe0b13 ,
+ 0xe0b14 ,
+ 0xe0b15 ,
+ 0xe0b16 ,
+ 0xe0b17 ,
+ 0xe0b18 ,
+ 0xe0b19 ,
+ 0xe0b1a ,
+ 0xe0b1b ,
+ 0xe0b1c ,
+ 0xe0b1d ,
+ 0xe0b1e ,
+ 0xe0b1f ,
+ 0xe0b20 ,
+ 0xe0b21 ,
+ 0xe0b22 ,
+ 0xe0b23 ,
+ 0xe0b24 ,
+ 0xe0b25 ,
+ 0xe0b26 ,
+ 0xe0b27 ,
+ 0xe0b28 ,
+ 0xe0b29 ,
+ 0xe0b2a ,
+ 0xe0b2b ,
+ 0xe0b2c ,
+ 0xe0b2d ,
+ 0xe0b2e ,
+ 0xe0b2f ,
+ 0xe0b30 ,
+ 0xe0b31 ,
+ 0xe0b32 ,
+ 0xe0b33 ,
+ 0xe0b34 ,
+ 0xe0b35 ,
+ 0xe0b36 ,
+ 0xe0b37 ,
+ 0xe0b38 ,
+ 0xe0b39 ,
+ 0xe0b3a ,
+ 0xe0b3b ,
+ 0xe0b3c ,
+ 0xe0b3d ,
+ 0xe0b3e ,
+ 0xe0b3f ,
+ 0xe0b40 ,
+ 0xe0b41 ,
+ 0xe0b42 ,
+ 0xe0b43 ,
+ 0xe0b44 ,
+ 0xe0b45 ,
+ 0xe0b46 ,
+ 0xe0b47 ,
+ 0xe0b48 ,
+ 0xe0b49 ,
+ 0xe0b4a ,
+ 0xe0b4b ,
+ 0xe0b4c ,
+ 0xe0b4d ,
+ 0xe0b4e ,
+ 0xe0b4f ,
+ 0xe0b50 ,
+ 0xe0b51 ,
+ 0xe0b52 ,
+ 0xe0b53 ,
+ 0xe0b54 ,
+ 0xe0b55 ,
+ 0xe0b56 ,
+ 0xe0b57 ,
+ 0xe0b58 ,
+ 0xe0b59 ,
+ 0xe0b5a ,
+ 0xe0b5b ,
+ 0xe0b5c ,
+ 0xe0b5d ,
+ 0xe0b5e ,
+ 0xe0b5f ,
+ 0xe0b60 ,
+ 0xe0b61 ,
+ 0xe0b62 ,
+ 0xe0b63 ,
+ 0xe0b64 ,
+ 0xe0b65 ,
+ 0xe0b66 ,
+ 0xe0b67 ,
+ 0xe0b68 ,
+ 0xe0b69 ,
+ 0xe0b6a ,
+ 0xe0b6b ,
+ 0xe0b6c ,
+ 0xe0b6d ,
+ 0xe0b6e ,
+ 0xe0b6f ,
+ 0xe0b70 ,
+ 0xe0b71 ,
+ 0xe0b72 ,
+ 0xe0b73 ,
+ 0xe0b74 ,
+ 0xe0b75 ,
+ 0xe0b76 ,
+ 0xe0b77 ,
+ 0xe0b78 ,
+ 0xe0b79 ,
+ 0xe0b7a ,
+ 0xe0b7b ,
+ 0xe0b7c ,
+ 0xe0b7d ,
+ 0xe0b7e ,
+ 0xe0b7f ,
+ 0xe0b80 ,
+ 0xe0b81 ,
+ 0xe0b82 ,
+ 0xe0b83 ,
+ 0xe0b84 ,
+ 0xe0b85 ,
+ 0xe0b86 ,
+ 0xe0b87 ,
+ 0xe0b88 ,
+ 0xe0b89 ,
+ 0xe0b8a ,
+ 0xe0b8b ,
+ 0xe0b8c ,
+ 0xe0b8d ,
+ 0xe0b8e ,
+ 0xe0b8f ,
+ 0xe0b90 ,
+ 0xe0b91 ,
+ 0xe0b92 ,
+ 0xe0b93 ,
+ 0xe0b94 ,
+ 0xe0b95 ,
+ 0xe0b96 ,
+ 0xe0b97 ,
+ 0xe0b98 ,
+ 0xe0b99 ,
+ 0xe0b9a ,
+ 0xe0b9b ,
+ 0xe0b9c ,
+ 0xe0b9d ,
+ 0xe0b9e ,
+ 0xe0b9f ,
+ 0xe0ba0 ,
+ 0xe0ba1 ,
+ 0xe0ba2 ,
+ 0xe0ba3 ,
+ 0xe0ba4 ,
+ 0xe0ba5 ,
+ 0xe0ba6 ,
+ 0xe0ba7 ,
+ 0xe0ba8 ,
+ 0xe0ba9 ,
+ 0xe0baa ,
+ 0xe0bab ,
+ 0xe0bac ,
+ 0xe0bad ,
+ 0xe0bae ,
+ 0xe0baf ,
+ 0xe0bb0 ,
+ 0xe0bb1 ,
+ 0xe0bb2 ,
+ 0xe0bb3 ,
+ 0xe0bb4 ,
+ 0xe0bb5 ,
+ 0xe0bb6 ,
+ 0xe0bb7 ,
+ 0xe0bb8 ,
+ 0xe0bb9 ,
+ 0xe0bba ,
+ 0xe0bbb ,
+ 0xe0bbc ,
+ 0xe0bbd ,
+ 0xe0bbe ,
+ 0xe0bbf ,
+ 0xe0bc0 ,
+ 0xe0bc1 ,
+ 0xe0bc2 ,
+ 0xe0bc3 ,
+ 0xe0bc4 ,
+ 0xe0bc5 ,
+ 0xe0bc6 ,
+ 0xe0bc7 ,
+ 0xe0bc8 ,
+ 0xe0bc9 ,
+ 0xe0bca ,
+ 0xe0bcb ,
+ 0xe0bcc ,
+ 0xe0bcd ,
+ 0xe0bce ,
+ 0xe0bcf ,
+ 0xe0bd0 ,
+ 0xe0bd1 ,
+ 0xe0bd2 ,
+ 0xe0bd3 ,
+ 0xe0bd4 ,
+ 0xe0bd5 ,
+ 0xe0bd6 ,
+ 0xe0bd7 ,
+ 0xe0bd8 ,
+ 0xe0bd9 ,
+ 0xe0bda ,
+ 0xe0bdb ,
+ 0xe0bdc ,
+ 0xe0bdd ,
+ 0xe0bde ,
+ 0xe0bdf ,
+ 0xe0be0 ,
+ 0xe0be1 ,
+ 0xe0be2 ,
+ 0xe0be3 ,
+ 0xe0be4 ,
+ 0xe0be5 ,
+ 0xe0be6 ,
+ 0xe0be7 ,
+ 0xe0be8 ,
+ 0xe0be9 ,
+ 0xe0bea ,
+ 0xe0beb ,
+ 0xe0bec ,
+ 0xe0bed ,
+ 0xe0bee ,
+ 0xe0bef ,
+ 0xe0bf0 ,
+ 0xe0bf1 ,
+ 0xe0bf2 ,
+ 0xe0bf3 ,
+ 0xe0bf4 ,
+ 0xe0bf5 ,
+ 0xe0bf6 ,
+ 0xe0bf7 ,
+ 0xe0bf8 ,
+ 0xe0bf9 ,
+ 0xe0bfa ,
+ 0xe0bfb ,
+ 0xe0bfc ,
+ 0xe0bfd ,
+ 0xe0bfe ,
+ 0xe0bff ,
+ 0xe0c00 ,
+ 0xe0c01 ,
+ 0xe0c02 ,
+ 0xe0c03 ,
+ 0xe0c04 ,
+ 0xe0c05 ,
+ 0xe0c06 ,
+ 0xe0c07 ,
+ 0xe0c08 ,
+ 0xe0c09 ,
+ 0xe0c0a ,
+ 0xe0c0b ,
+ 0xe0c0c ,
+ 0xe0c0d ,
+ 0xe0c0e ,
+ 0xe0c0f ,
+ 0xe0c10 ,
+ 0xe0c11 ,
+ 0xe0c12 ,
+ 0xe0c13 ,
+ 0xe0c14 ,
+ 0xe0c15 ,
+ 0xe0c16 ,
+ 0xe0c17 ,
+ 0xe0c18 ,
+ 0xe0c19 ,
+ 0xe0c1a ,
+ 0xe0c1b ,
+ 0xe0c1c ,
+ 0xe0c1d ,
+ 0xe0c1e ,
+ 0xe0c1f ,
+ 0xe0c20 ,
+ 0xe0c21 ,
+ 0xe0c22 ,
+ 0xe0c23 ,
+ 0xe0c24 ,
+ 0xe0c25 ,
+ 0xe0c26 ,
+ 0xe0c27 ,
+ 0xe0c28 ,
+ 0xe0c29 ,
+ 0xe0c2a ,
+ 0xe0c2b ,
+ 0xe0c2c ,
+ 0xe0c2d ,
+ 0xe0c2e ,
+ 0xe0c2f ,
+ 0xe0c30 ,
+ 0xe0c31 ,
+ 0xe0c32 ,
+ 0xe0c33 ,
+ 0xe0c34 ,
+ 0xe0c35 ,
+ 0xe0c36 ,
+ 0xe0c37 ,
+ 0xe0c38 ,
+ 0xe0c39 ,
+ 0xe0c3a ,
+ 0xe0c3b ,
+ 0xe0c3c ,
+ 0xe0c3d ,
+ 0xe0c3e ,
+ 0xe0c3f ,
+ 0xe0c40 ,
+ 0xe0c41 ,
+ 0xe0c42 ,
+ 0xe0c43 ,
+ 0xe0c44 ,
+ 0xe0c45 ,
+ 0xe0c46 ,
+ 0xe0c47 ,
+ 0xe0c48 ,
+ 0xe0c49 ,
+ 0xe0c4a ,
+ 0xe0c4b ,
+ 0xe0c4c ,
+ 0xe0c4d ,
+ 0xe0c4e ,
+ 0xe0c4f ,
+ 0xe0c50 ,
+ 0xe0c51 ,
+ 0xe0c52 ,
+ 0xe0c53 ,
+ 0xe0c54 ,
+ 0xe0c55 ,
+ 0xe0c56 ,
+ 0xe0c57 ,
+ 0xe0c58 ,
+ 0xe0c59 ,
+ 0xe0c5a ,
+ 0xe0c5b ,
+ 0xe0c5c ,
+ 0xe0c5d ,
+ 0xe0c5e ,
+ 0xe0c5f ,
+ 0xe0c60 ,
+ 0xe0c61 ,
+ 0xe0c62 ,
+ 0xe0c63 ,
+ 0xe0c64 ,
+ 0xe0c65 ,
+ 0xe0c66 ,
+ 0xe0c67 ,
+ 0xe0c68 ,
+ 0xe0c69 ,
+ 0xe0c6a ,
+ 0xe0c6b ,
+ 0xe0c6c ,
+ 0xe0c6d ,
+ 0xe0c6e ,
+ 0xe0c6f ,
+ 0xe0c70 ,
+ 0xe0c71 ,
+ 0xe0c72 ,
+ 0xe0c73 ,
+ 0xe0c74 ,
+ 0xe0c75 ,
+ 0xe0c76 ,
+ 0xe0c77 ,
+ 0xe0c78 ,
+ 0xe0c79 ,
+ 0xe0c7a ,
+ 0xe0c7b ,
+ 0xe0c7c ,
+ 0xe0c7d ,
+ 0xe0c7e ,
+ 0xe0c7f ,
+ 0xe0c80 ,
+ 0xe0c81 ,
+ 0xe0c82 ,
+ 0xe0c83 ,
+ 0xe0c84 ,
+ 0xe0c85 ,
+ 0xe0c86 ,
+ 0xe0c87 ,
+ 0xe0c88 ,
+ 0xe0c89 ,
+ 0xe0c8a ,
+ 0xe0c8b ,
+ 0xe0c8c ,
+ 0xe0c8d ,
+ 0xe0c8e ,
+ 0xe0c8f ,
+ 0xe0c90 ,
+ 0xe0c91 ,
+ 0xe0c92 ,
+ 0xe0c93 ,
+ 0xe0c94 ,
+ 0xe0c95 ,
+ 0xe0c96 ,
+ 0xe0c97 ,
+ 0xe0c98 ,
+ 0xe0c99 ,
+ 0xe0c9a ,
+ 0xe0c9b ,
+ 0xe0c9c ,
+ 0xe0c9d ,
+ 0xe0c9e ,
+ 0xe0c9f ,
+ 0xe0ca0 ,
+ 0xe0ca1 ,
+ 0xe0ca2 ,
+ 0xe0ca3 ,
+ 0xe0ca4 ,
+ 0xe0ca5 ,
+ 0xe0ca6 ,
+ 0xe0ca7 ,
+ 0xe0ca8 ,
+ 0xe0ca9 ,
+ 0xe0caa ,
+ 0xe0cab ,
+ 0xe0cac ,
+ 0xe0cad ,
+ 0xe0cae ,
+ 0xe0caf ,
+ 0xe0cb0 ,
+ 0xe0cb1 ,
+ 0xe0cb2 ,
+ 0xe0cb3 ,
+ 0xe0cb4 ,
+ 0xe0cb5 ,
+ 0xe0cb6 ,
+ 0xe0cb7 ,
+ 0xe0cb8 ,
+ 0xe0cb9 ,
+ 0xe0cba ,
+ 0xe0cbb ,
+ 0xe0cbc ,
+ 0xe0cbd ,
+ 0xe0cbe ,
+ 0xe0cbf ,
+ 0xe0cc0 ,
+ 0xe0cc1 ,
+ 0xe0cc2 ,
+ 0xe0cc3 ,
+ 0xe0cc4 ,
+ 0xe0cc5 ,
+ 0xe0cc6 ,
+ 0xe0cc7 ,
+ 0xe0cc8 ,
+ 0xe0cc9 ,
+ 0xe0cca ,
+ 0xe0ccb ,
+ 0xe0ccc ,
+ 0xe0ccd ,
+ 0xe0cce ,
+ 0xe0ccf ,
+ 0xe0cd0 ,
+ 0xe0cd1 ,
+ 0xe0cd2 ,
+ 0xe0cd3 ,
+ 0xe0cd4 ,
+ 0xe0cd5 ,
+ 0xe0cd6 ,
+ 0xe0cd7 ,
+ 0xe0cd8 ,
+ 0xe0cd9 ,
+ 0xe0cda ,
+ 0xe0cdb ,
+ 0xe0cdc ,
+ 0xe0cdd ,
+ 0xe0cde ,
+ 0xe0cdf ,
+ 0xe0ce0 ,
+ 0xe0ce1 ,
+ 0xe0ce2 ,
+ 0xe0ce3 ,
+ 0xe0ce4 ,
+ 0xe0ce5 ,
+ 0xe0ce6 ,
+ 0xe0ce7 ,
+ 0xe0ce8 ,
+ 0xe0ce9 ,
+ 0xe0cea ,
+ 0xe0ceb ,
+ 0xe0cec ,
+ 0xe0ced ,
+ 0xe0cee ,
+ 0xe0cef ,
+ 0xe0cf0 ,
+ 0xe0cf1 ,
+ 0xe0cf2 ,
+ 0xe0cf3 ,
+ 0xe0cf4 ,
+ 0xe0cf5 ,
+ 0xe0cf6 ,
+ 0xe0cf7 ,
+ 0xe0cf8 ,
+ 0xe0cf9 ,
+ 0xe0cfa ,
+ 0xe0cfb ,
+ 0xe0cfc ,
+ 0xe0cfd ,
+ 0xe0cfe ,
+ 0xe0cff ,
+ 0xe0d00 ,
+ 0xe0d01 ,
+ 0xe0d02 ,
+ 0xe0d03 ,
+ 0xe0d04 ,
+ 0xe0d05 ,
+ 0xe0d06 ,
+ 0xe0d07 ,
+ 0xe0d08 ,
+ 0xe0d09 ,
+ 0xe0d0a ,
+ 0xe0d0b ,
+ 0xe0d0c ,
+ 0xe0d0d ,
+ 0xe0d0e ,
+ 0xe0d0f ,
+ 0xe0d10 ,
+ 0xe0d11 ,
+ 0xe0d12 ,
+ 0xe0d13 ,
+ 0xe0d14 ,
+ 0xe0d15 ,
+ 0xe0d16 ,
+ 0xe0d17 ,
+ 0xe0d18 ,
+ 0xe0d19 ,
+ 0xe0d1a ,
+ 0xe0d1b ,
+ 0xe0d1c ,
+ 0xe0d1d ,
+ 0xe0d1e ,
+ 0xe0d1f ,
+ 0xe0d20 ,
+ 0xe0d21 ,
+ 0xe0d22 ,
+ 0xe0d23 ,
+ 0xe0d24 ,
+ 0xe0d25 ,
+ 0xe0d26 ,
+ 0xe0d27 ,
+ 0xe0d28 ,
+ 0xe0d29 ,
+ 0xe0d2a ,
+ 0xe0d2b ,
+ 0xe0d2c ,
+ 0xe0d2d ,
+ 0xe0d2e ,
+ 0xe0d2f ,
+ 0xe0d30 ,
+ 0xe0d31 ,
+ 0xe0d32 ,
+ 0xe0d33 ,
+ 0xe0d34 ,
+ 0xe0d35 ,
+ 0xe0d36 ,
+ 0xe0d37 ,
+ 0xe0d38 ,
+ 0xe0d39 ,
+ 0xe0d3a ,
+ 0xe0d3b ,
+ 0xe0d3c ,
+ 0xe0d3d ,
+ 0xe0d3e ,
+ 0xe0d3f ,
+ 0xe0d40 ,
+ 0xe0d41 ,
+ 0xe0d42 ,
+ 0xe0d43 ,
+ 0xe0d44 ,
+ 0xe0d45 ,
+ 0xe0d46 ,
+ 0xe0d47 ,
+ 0xe0d48 ,
+ 0xe0d49 ,
+ 0xe0d4a ,
+ 0xe0d4b ,
+ 0xe0d4c ,
+ 0xe0d4d ,
+ 0xe0d4e ,
+ 0xe0d4f ,
+ 0xe0d50 ,
+ 0xe0d51 ,
+ 0xe0d52 ,
+ 0xe0d53 ,
+ 0xe0d54 ,
+ 0xe0d55 ,
+ 0xe0d56 ,
+ 0xe0d57 ,
+ 0xe0d58 ,
+ 0xe0d59 ,
+ 0xe0d5a ,
+ 0xe0d5b ,
+ 0xe0d5c ,
+ 0xe0d5d ,
+ 0xe0d5e ,
+ 0xe0d5f ,
+ 0xe0d60 ,
+ 0xe0d61 ,
+ 0xe0d62 ,
+ 0xe0d63 ,
+ 0xe0d64 ,
+ 0xe0d65 ,
+ 0xe0d66 ,
+ 0xe0d67 ,
+ 0xe0d68 ,
+ 0xe0d69 ,
+ 0xe0d6a ,
+ 0xe0d6b ,
+ 0xe0d6c ,
+ 0xe0d6d ,
+ 0xe0d6e ,
+ 0xe0d6f ,
+ 0xe0d70 ,
+ 0xe0d71 ,
+ 0xe0d72 ,
+ 0xe0d73 ,
+ 0xe0d74 ,
+ 0xe0d75 ,
+ 0xe0d76 ,
+ 0xe0d77 ,
+ 0xe0d78 ,
+ 0xe0d79 ,
+ 0xe0d7a ,
+ 0xe0d7b ,
+ 0xe0d7c ,
+ 0xe0d7d ,
+ 0xe0d7e ,
+ 0xe0d7f ,
+ 0xe0d80 ,
+ 0xe0d81 ,
+ 0xe0d82 ,
+ 0xe0d83 ,
+ 0xe0d84 ,
+ 0xe0d85 ,
+ 0xe0d86 ,
+ 0xe0d87 ,
+ 0xe0d88 ,
+ 0xe0d89 ,
+ 0xe0d8a ,
+ 0xe0d8b ,
+ 0xe0d8c ,
+ 0xe0d8d ,
+ 0xe0d8e ,
+ 0xe0d8f ,
+ 0xe0d90 ,
+ 0xe0d91 ,
+ 0xe0d92 ,
+ 0xe0d93 ,
+ 0xe0d94 ,
+ 0xe0d95 ,
+ 0xe0d96 ,
+ 0xe0d97 ,
+ 0xe0d98 ,
+ 0xe0d99 ,
+ 0xe0d9a ,
+ 0xe0d9b ,
+ 0xe0d9c ,
+ 0xe0d9d ,
+ 0xe0d9e ,
+ 0xe0d9f ,
+ 0xe0da0 ,
+ 0xe0da1 ,
+ 0xe0da2 ,
+ 0xe0da3 ,
+ 0xe0da4 ,
+ 0xe0da5 ,
+ 0xe0da6 ,
+ 0xe0da7 ,
+ 0xe0da8 ,
+ 0xe0da9 ,
+ 0xe0daa ,
+ 0xe0dab ,
+ 0xe0dac ,
+ 0xe0dad ,
+ 0xe0dae ,
+ 0xe0daf ,
+ 0xe0db0 ,
+ 0xe0db1 ,
+ 0xe0db2 ,
+ 0xe0db3 ,
+ 0xe0db4 ,
+ 0xe0db5 ,
+ 0xe0db6 ,
+ 0xe0db7 ,
+ 0xe0db8 ,
+ 0xe0db9 ,
+ 0xe0dba ,
+ 0xe0dbb ,
+ 0xe0dbc ,
+ 0xe0dbd ,
+ 0xe0dbe ,
+ 0xe0dbf ,
+ 0xe0dc0 ,
+ 0xe0dc1 ,
+ 0xe0dc2 ,
+ 0xe0dc3 ,
+ 0xe0dc4 ,
+ 0xe0dc5 ,
+ 0xe0dc6 ,
+ 0xe0dc7 ,
+ 0xe0dc8 ,
+ 0xe0dc9 ,
+ 0xe0dca ,
+ 0xe0dcb ,
+ 0xe0dcc ,
+ 0xe0dcd ,
+ 0xe0dce ,
+ 0xe0dcf ,
+ 0xe0dd0 ,
+ 0xe0dd1 ,
+ 0xe0dd2 ,
+ 0xe0dd3 ,
+ 0xe0dd4 ,
+ 0xe0dd5 ,
+ 0xe0dd6 ,
+ 0xe0dd7 ,
+ 0xe0dd8 ,
+ 0xe0dd9 ,
+ 0xe0dda ,
+ 0xe0ddb ,
+ 0xe0ddc ,
+ 0xe0ddd ,
+ 0xe0dde ,
+ 0xe0ddf ,
+ 0xe0de0 ,
+ 0xe0de1 ,
+ 0xe0de2 ,
+ 0xe0de3 ,
+ 0xe0de4 ,
+ 0xe0de5 ,
+ 0xe0de6 ,
+ 0xe0de7 ,
+ 0xe0de8 ,
+ 0xe0de9 ,
+ 0xe0dea ,
+ 0xe0deb ,
+ 0xe0dec ,
+ 0xe0ded ,
+ 0xe0dee ,
+ 0xe0def ,
+ 0xe0df0 ,
+ 0xe0df1 ,
+ 0xe0df2 ,
+ 0xe0df3 ,
+ 0xe0df4 ,
+ 0xe0df5 ,
+ 0xe0df6 ,
+ 0xe0df7 ,
+ 0xe0df8 ,
+ 0xe0df9 ,
+ 0xe0dfa ,
+ 0xe0dfb ,
+ 0xe0dfc ,
+ 0xe0dfd ,
+ 0xe0dfe ,
+ 0xe0dff ,
+ 0xe0e00 ,
+ 0xe0e01 ,
+ 0xe0e02 ,
+ 0xe0e03 ,
+ 0xe0e04 ,
+ 0xe0e05 ,
+ 0xe0e06 ,
+ 0xe0e07 ,
+ 0xe0e08 ,
+ 0xe0e09 ,
+ 0xe0e0a ,
+ 0xe0e0b ,
+ 0xe0e0c ,
+ 0xe0e0d ,
+ 0xe0e0e ,
+ 0xe0e0f ,
+ 0xe0e10 ,
+ 0xe0e11 ,
+ 0xe0e12 ,
+ 0xe0e13 ,
+ 0xe0e14 ,
+ 0xe0e15 ,
+ 0xe0e16 ,
+ 0xe0e17 ,
+ 0xe0e18 ,
+ 0xe0e19 ,
+ 0xe0e1a ,
+ 0xe0e1b ,
+ 0xe0e1c ,
+ 0xe0e1d ,
+ 0xe0e1e ,
+ 0xe0e1f ,
+ 0xe0e20 ,
+ 0xe0e21 ,
+ 0xe0e22 ,
+ 0xe0e23 ,
+ 0xe0e24 ,
+ 0xe0e25 ,
+ 0xe0e26 ,
+ 0xe0e27 ,
+ 0xe0e28 ,
+ 0xe0e29 ,
+ 0xe0e2a ,
+ 0xe0e2b ,
+ 0xe0e2c ,
+ 0xe0e2d ,
+ 0xe0e2e ,
+ 0xe0e2f ,
+ 0xe0e30 ,
+ 0xe0e31 ,
+ 0xe0e32 ,
+ 0xe0e33 ,
+ 0xe0e34 ,
+ 0xe0e35 ,
+ 0xe0e36 ,
+ 0xe0e37 ,
+ 0xe0e38 ,
+ 0xe0e39 ,
+ 0xe0e3a ,
+ 0xe0e3b ,
+ 0xe0e3c ,
+ 0xe0e3d ,
+ 0xe0e3e ,
+ 0xe0e3f ,
+ 0xe0e40 ,
+ 0xe0e41 ,
+ 0xe0e42 ,
+ 0xe0e43 ,
+ 0xe0e44 ,
+ 0xe0e45 ,
+ 0xe0e46 ,
+ 0xe0e47 ,
+ 0xe0e48 ,
+ 0xe0e49 ,
+ 0xe0e4a ,
+ 0xe0e4b ,
+ 0xe0e4c ,
+ 0xe0e4d ,
+ 0xe0e4e ,
+ 0xe0e4f ,
+ 0xe0e50 ,
+ 0xe0e51 ,
+ 0xe0e52 ,
+ 0xe0e53 ,
+ 0xe0e54 ,
+ 0xe0e55 ,
+ 0xe0e56 ,
+ 0xe0e57 ,
+ 0xe0e58 ,
+ 0xe0e59 ,
+ 0xe0e5a ,
+ 0xe0e5b ,
+ 0xe0e5c ,
+ 0xe0e5d ,
+ 0xe0e5e ,
+ 0xe0e5f ,
+ 0xe0e60 ,
+ 0xe0e61 ,
+ 0xe0e62 ,
+ 0xe0e63 ,
+ 0xe0e64 ,
+ 0xe0e65 ,
+ 0xe0e66 ,
+ 0xe0e67 ,
+ 0xe0e68 ,
+ 0xe0e69 ,
+ 0xe0e6a ,
+ 0xe0e6b ,
+ 0xe0e6c ,
+ 0xe0e6d ,
+ 0xe0e6e ,
+ 0xe0e6f ,
+ 0xe0e70 ,
+ 0xe0e71 ,
+ 0xe0e72 ,
+ 0xe0e73 ,
+ 0xe0e74 ,
+ 0xe0e75 ,
+ 0xe0e76 ,
+ 0xe0e77 ,
+ 0xe0e78 ,
+ 0xe0e79 ,
+ 0xe0e7a ,
+ 0xe0e7b ,
+ 0xe0e7c ,
+ 0xe0e7d ,
+ 0xe0e7e ,
+ 0xe0e7f ,
+ 0xe0e80 ,
+ 0xe0e81 ,
+ 0xe0e82 ,
+ 0xe0e83 ,
+ 0xe0e84 ,
+ 0xe0e85 ,
+ 0xe0e86 ,
+ 0xe0e87 ,
+ 0xe0e88 ,
+ 0xe0e89 ,
+ 0xe0e8a ,
+ 0xe0e8b ,
+ 0xe0e8c ,
+ 0xe0e8d ,
+ 0xe0e8e ,
+ 0xe0e8f ,
+ 0xe0e90 ,
+ 0xe0e91 ,
+ 0xe0e92 ,
+ 0xe0e93 ,
+ 0xe0e94 ,
+ 0xe0e95 ,
+ 0xe0e96 ,
+ 0xe0e97 ,
+ 0xe0e98 ,
+ 0xe0e99 ,
+ 0xe0e9a ,
+ 0xe0e9b ,
+ 0xe0e9c ,
+ 0xe0e9d ,
+ 0xe0e9e ,
+ 0xe0e9f ,
+ 0xe0ea0 ,
+ 0xe0ea1 ,
+ 0xe0ea2 ,
+ 0xe0ea3 ,
+ 0xe0ea4 ,
+ 0xe0ea5 ,
+ 0xe0ea6 ,
+ 0xe0ea7 ,
+ 0xe0ea8 ,
+ 0xe0ea9 ,
+ 0xe0eaa ,
+ 0xe0eab ,
+ 0xe0eac ,
+ 0xe0ead ,
+ 0xe0eae ,
+ 0xe0eaf ,
+ 0xe0eb0 ,
+ 0xe0eb1 ,
+ 0xe0eb2 ,
+ 0xe0eb3 ,
+ 0xe0eb4 ,
+ 0xe0eb5 ,
+ 0xe0eb6 ,
+ 0xe0eb7 ,
+ 0xe0eb8 ,
+ 0xe0eb9 ,
+ 0xe0eba ,
+ 0xe0ebb ,
+ 0xe0ebc ,
+ 0xe0ebd ,
+ 0xe0ebe ,
+ 0xe0ebf ,
+ 0xe0ec0 ,
+ 0xe0ec1 ,
+ 0xe0ec2 ,
+ 0xe0ec3 ,
+ 0xe0ec4 ,
+ 0xe0ec5 ,
+ 0xe0ec6 ,
+ 0xe0ec7 ,
+ 0xe0ec8 ,
+ 0xe0ec9 ,
+ 0xe0eca ,
+ 0xe0ecb ,
+ 0xe0ecc ,
+ 0xe0ecd ,
+ 0xe0ece ,
+ 0xe0ecf ,
+ 0xe0ed0 ,
+ 0xe0ed1 ,
+ 0xe0ed2 ,
+ 0xe0ed3 ,
+ 0xe0ed4 ,
+ 0xe0ed5 ,
+ 0xe0ed6 ,
+ 0xe0ed7 ,
+ 0xe0ed8 ,
+ 0xe0ed9 ,
+ 0xe0eda ,
+ 0xe0edb ,
+ 0xe0edc ,
+ 0xe0edd ,
+ 0xe0ede ,
+ 0xe0edf ,
+ 0xe0ee0 ,
+ 0xe0ee1 ,
+ 0xe0ee2 ,
+ 0xe0ee3 ,
+ 0xe0ee4 ,
+ 0xe0ee5 ,
+ 0xe0ee6 ,
+ 0xe0ee7 ,
+ 0xe0ee8 ,
+ 0xe0ee9 ,
+ 0xe0eea ,
+ 0xe0eeb ,
+ 0xe0eec ,
+ 0xe0eed ,
+ 0xe0eee ,
+ 0xe0eef ,
+ 0xe0ef0 ,
+ 0xe0ef1 ,
+ 0xe0ef2 ,
+ 0xe0ef3 ,
+ 0xe0ef4 ,
+ 0xe0ef5 ,
+ 0xe0ef6 ,
+ 0xe0ef7 ,
+ 0xe0ef8 ,
+ 0xe0ef9 ,
+ 0xe0efa ,
+ 0xe0efb ,
+ 0xe0efc ,
+ 0xe0efd ,
+ 0xe0efe ,
+ 0xe0eff ,
+ 0xe0f00 ,
+ 0xe0f01 ,
+ 0xe0f02 ,
+ 0xe0f03 ,
+ 0xe0f04 ,
+ 0xe0f05 ,
+ 0xe0f06 ,
+ 0xe0f07 ,
+ 0xe0f08 ,
+ 0xe0f09 ,
+ 0xe0f0a ,
+ 0xe0f0b ,
+ 0xe0f0c ,
+ 0xe0f0d ,
+ 0xe0f0e ,
+ 0xe0f0f ,
+ 0xe0f10 ,
+ 0xe0f11 ,
+ 0xe0f12 ,
+ 0xe0f13 ,
+ 0xe0f14 ,
+ 0xe0f15 ,
+ 0xe0f16 ,
+ 0xe0f17 ,
+ 0xe0f18 ,
+ 0xe0f19 ,
+ 0xe0f1a ,
+ 0xe0f1b ,
+ 0xe0f1c ,
+ 0xe0f1d ,
+ 0xe0f1e ,
+ 0xe0f1f ,
+ 0xe0f20 ,
+ 0xe0f21 ,
+ 0xe0f22 ,
+ 0xe0f23 ,
+ 0xe0f24 ,
+ 0xe0f25 ,
+ 0xe0f26 ,
+ 0xe0f27 ,
+ 0xe0f28 ,
+ 0xe0f29 ,
+ 0xe0f2a ,
+ 0xe0f2b ,
+ 0xe0f2c ,
+ 0xe0f2d ,
+ 0xe0f2e ,
+ 0xe0f2f ,
+ 0xe0f30 ,
+ 0xe0f31 ,
+ 0xe0f32 ,
+ 0xe0f33 ,
+ 0xe0f34 ,
+ 0xe0f35 ,
+ 0xe0f36 ,
+ 0xe0f37 ,
+ 0xe0f38 ,
+ 0xe0f39 ,
+ 0xe0f3a ,
+ 0xe0f3b ,
+ 0xe0f3c ,
+ 0xe0f3d ,
+ 0xe0f3e ,
+ 0xe0f3f ,
+ 0xe0f40 ,
+ 0xe0f41 ,
+ 0xe0f42 ,
+ 0xe0f43 ,
+ 0xe0f44 ,
+ 0xe0f45 ,
+ 0xe0f46 ,
+ 0xe0f47 ,
+ 0xe0f48 ,
+ 0xe0f49 ,
+ 0xe0f4a ,
+ 0xe0f4b ,
+ 0xe0f4c ,
+ 0xe0f4d ,
+ 0xe0f4e ,
+ 0xe0f4f ,
+ 0xe0f50 ,
+ 0xe0f51 ,
+ 0xe0f52 ,
+ 0xe0f53 ,
+ 0xe0f54 ,
+ 0xe0f55 ,
+ 0xe0f56 ,
+ 0xe0f57 ,
+ 0xe0f58 ,
+ 0xe0f59 ,
+ 0xe0f5a ,
+ 0xe0f5b ,
+ 0xe0f5c ,
+ 0xe0f5d ,
+ 0xe0f5e ,
+ 0xe0f5f ,
+ 0xe0f60 ,
+ 0xe0f61 ,
+ 0xe0f62 ,
+ 0xe0f63 ,
+ 0xe0f64 ,
+ 0xe0f65 ,
+ 0xe0f66 ,
+ 0xe0f67 ,
+ 0xe0f68 ,
+ 0xe0f69 ,
+ 0xe0f6a ,
+ 0xe0f6b ,
+ 0xe0f6c ,
+ 0xe0f6d ,
+ 0xe0f6e ,
+ 0xe0f6f ,
+ 0xe0f70 ,
+ 0xe0f71 ,
+ 0xe0f72 ,
+ 0xe0f73 ,
+ 0xe0f74 ,
+ 0xe0f75 ,
+ 0xe0f76 ,
+ 0xe0f77 ,
+ 0xe0f78 ,
+ 0xe0f79 ,
+ 0xe0f7a ,
+ 0xe0f7b ,
+ 0xe0f7c ,
+ 0xe0f7d ,
+ 0xe0f7e ,
+ 0xe0f7f ,
+ 0xe0f80 ,
+ 0xe0f81 ,
+ 0xe0f82 ,
+ 0xe0f83 ,
+ 0xe0f84 ,
+ 0xe0f85 ,
+ 0xe0f86 ,
+ 0xe0f87 ,
+ 0xe0f88 ,
+ 0xe0f89 ,
+ 0xe0f8a ,
+ 0xe0f8b ,
+ 0xe0f8c ,
+ 0xe0f8d ,
+ 0xe0f8e ,
+ 0xe0f8f ,
+ 0xe0f90 ,
+ 0xe0f91 ,
+ 0xe0f92 ,
+ 0xe0f93 ,
+ 0xe0f94 ,
+ 0xe0f95 ,
+ 0xe0f96 ,
+ 0xe0f97 ,
+ 0xe0f98 ,
+ 0xe0f99 ,
+ 0xe0f9a ,
+ 0xe0f9b ,
+ 0xe0f9c ,
+ 0xe0f9d ,
+ 0xe0f9e ,
+ 0xe0f9f ,
+ 0xe0fa0 ,
+ 0xe0fa1 ,
+ 0xe0fa2 ,
+ 0xe0fa3 ,
+ 0xe0fa4 ,
+ 0xe0fa5 ,
+ 0xe0fa6 ,
+ 0xe0fa7 ,
+ 0xe0fa8 ,
+ 0xe0fa9 ,
+ 0xe0faa ,
+ 0xe0fab ,
+ 0xe0fac ,
+ 0xe0fad ,
+ 0xe0fae ,
+ 0xe0faf ,
+ 0xe0fb0 ,
+ 0xe0fb1 ,
+ 0xe0fb2 ,
+ 0xe0fb3 ,
+ 0xe0fb4 ,
+ 0xe0fb5 ,
+ 0xe0fb6 ,
+ 0xe0fb7 ,
+ 0xe0fb8 ,
+ 0xe0fb9 ,
+ 0xe0fba ,
+ 0xe0fbb ,
+ 0xe0fbc ,
+ 0xe0fbd ,
+ 0xe0fbe ,
+ 0xe0fbf ,
+ 0xe0fc0 ,
+ 0xe0fc1 ,
+ 0xe0fc2 ,
+ 0xe0fc3 ,
+ 0xe0fc4 ,
+ 0xe0fc5 ,
+ 0xe0fc6 ,
+ 0xe0fc7 ,
+ 0xe0fc8 ,
+ 0xe0fc9 ,
+ 0xe0fca ,
+ 0xe0fcb ,
+ 0xe0fcc ,
+ 0xe0fcd ,
+ 0xe0fce ,
+ 0xe0fcf ,
+ 0xe0fd0 ,
+ 0xe0fd1 ,
+ 0xe0fd2 ,
+ 0xe0fd3 ,
+ 0xe0fd4 ,
+ 0xe0fd5 ,
+ 0xe0fd6 ,
+ 0xe0fd7 ,
+ 0xe0fd8 ,
+ 0xe0fd9 ,
+ 0xe0fda ,
+ 0xe0fdb ,
+ 0xe0fdc ,
+ 0xe0fdd ,
+ 0xe0fde ,
+ 0xe0fdf ,
+ 0xe0fe0 ,
+ 0xe0fe1 ,
+ 0xe0fe2 ,
+ 0xe0fe3 ,
+ 0xe0fe4 ,
+ 0xe0fe5 ,
+ 0xe0fe6 ,
+ 0xe0fe7 ,
+ 0xe0fe8 ,
+ 0xe0fe9 ,
+ 0xe0fea ,
+ 0xe0feb ,
+ 0xe0fec ,
+ 0xe0fed ,
+ 0xe0fee ,
+ 0xe0fef ,
+ 0xe0ff0 ,
+ 0xe0ff1 ,
+ 0xe0ff2 ,
+ 0xe0ff3 ,
+ 0xe0ff4 ,
+ 0xe0ff5 ,
+ 0xe0ff6 ,
+ 0xe0ff7 ,
+ 0xe0ff8 ,
+ 0xe0ff9 ,
+ 0xe0ffa ,
+ 0xe0ffb ,
+ 0xe0ffc ,
+ 0xe0ffd ,
+ 0xe0ffe ,
+ 0xe0fff };
+
+static FcBlanks fcBlanks = {
+ 4191,
+ -1,
+ _fcBlanks
+};
+
--- /dev/null
+/*
+ * fontconfig/fc-blanks/fcblanks.tmpl.h
+ *
+ * Copyright © 2003 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 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.
+ */
+
+@@@
-$(RM) -rf "$(DESTDIR)$(fc_cachedir)"
endif
-INCLUDES=-I${top_srcdir} -I${top_srcdir}/src $(WARN_CFLAGS)
+AM_CPPFLAGS=-I${top_srcdir} -I${top_srcdir}/src $(WARN_CFLAGS)
bin_PROGRAMS=fc-cache
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# PERFORMANCE OF THIS SOFTWARE.
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
- test $$am__dry = yes; \
- }
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
bin_PROGRAMS = fc-cache$(EXEEXT)
@USEDOCBOOK_TRUE@am__append_1 = ${man_MANS}
subdir = fc-cache
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(top_srcdir)/depcomp
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_for_build.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \
+ $(top_srcdir)/m4/ax_cc_for_build.m4 \
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
$(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
man1dir = $(mandir)/man1
NROFF = nroff
MANS = $(man_MANS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
FGREP = @FGREP@
FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
FREETYPE_LIBS = @FREETYPE_LIBS@
+GIT = @GIT@
+GPERF = @GPERF@
GREP = @GREP@
HASDOCBOOK = @HASDOCBOOK@
HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
+PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PTHREAD_CC = @PTHREAD_CC@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
PTHREAD_LIBS = @PTHREAD_LIBS@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RM = @RM@
SED = @SED@
am__tar = @am__tar@
am__untar = @am__untar@
ax_pthread_config = @ax_pthread_config@
-baseconfigdir = @baseconfigdir@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
-configdir = @configdir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
ms_librarian = @ms_librarian@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgconfigdir = @pkgconfigdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-templatedir = @templatedir@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-xmldir = @xmldir@
DOC2MAN = docbook2man
FC_CACHE_SRC = ${top_srcdir}/fc-cache
SGML = ${FC_CACHE_SRC}/fc-cache.sgml
-INCLUDES = -I${top_srcdir} -I${top_srcdir}/src $(WARN_CFLAGS)
+AM_CPPFLAGS = -I${top_srcdir} -I${top_srcdir}/src $(WARN_CFLAGS)
BUILT_MANS = fc-cache.1
@ENABLE_DOCS_TRUE@man_MANS = ${BUILT_MANS}
EXTRA_DIST = fc-cache.sgml $(BUILT_MANS)
fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p || test -f $$p1; \
- then echo "$$p"; echo "$$p"; else :; fi; \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
done | \
- sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' `; \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(bindir)" && rm -f $$files
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
+
fc-cache$(EXEEXT): $(fc_cache_OBJECTS) $(fc_cache_DEPENDENCIES) $(EXTRA_fc_cache_DEPENDENCIES)
@rm -f fc-cache$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fc_cache_OBJECTS) $(fc_cache_LDADD) $(LIBS)
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
-cscopelist: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
- @list='$(MANS)'; if test -n "$$list"; then \
- list=`for p in $$list; do \
- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
- if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
- if test -n "$$list" && \
- grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
- echo "error: found man pages containing the 'missing help2man' replacement text:" >&2; \
- grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
- echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
- echo " typically 'make maintainer-clean' will remove them" >&2; \
- exit 1; \
- else :; fi; \
- else :; fi
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
.MAKE: install-am install-strip
-.PHONY: CTAGS GTAGS all all-am all-local check check-am clean \
- clean-binPROGRAMS clean-generic clean-libtool cscopelist ctags \
- distclean distclean-compile distclean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \
+ clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
+ ctags ctags-am distclean distclean-compile distclean-generic \
distclean-libtool distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-binPROGRAMS \
install-data install-data-am install-data-local install-dvi \
install-ps-am install-strip installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
uninstall-am uninstall-binPROGRAMS uninstall-local \
uninstall-man uninstall-man1
fc-cache \- build font information cache files
.SH SYNOPSIS
.sp
-\fBfc-cache\fR [ \fB-frsvVh\fR ] [ \fB--force\fR ] [ \fB--really-force\fR ] [ \fB--system-only\fR ] [ \fB--verbose\fR ] [ \fB--version\fR ] [ \fB--help\fR ] [ \fB\fIdir\fB\fR\fI...\fR ]
+\fBfc-cache\fR [ \fB-EfrsvVh\fR ] [ \fB--error-on-no-fonts\fR ] [ \fB--force\fR ] [ \fB--really-force\fR ] [ \fB [ -y \fIdir\fB ] [ --sysroot \fIdir\fB ] \fR ] [ \fB--system-only\fR ] [ \fB--verbose\fR ] [ \fB--version\fR ] [ \fB--help\fR ] [ \fB\fIdir\fB\fR\fI...\fR ]
.SH "DESCRIPTION"
.PP
\fBfc-cache\fR scans the font directories on
with long options starting with two dashes (`-'). A summary of
options is included below.
.TP
+\fB-E\fR
+Raise an error if there are no fonts in
+\fB\fIdir\fB\fR or directories
+in the configuration if not given.
+.TP
\fB-f\fR
Force re-generation of apparently up-to-date cache files,
overriding the timestamp checking.
\fB-v\fR
Display status information while busy.
.TP
+\fB-y\fR
+Prepend \fB\fIdir\fB\fR to all paths for scanning.
+.TP
\fB-h\fR
Show summary of options.
.TP
.TP
\fB\fIdir\fB\fR
Directory to scan for fonts.
+.SH "RETURN CODES"
+.PP
+\fBfc-cache\fR returns zero if the caches successfully generated. otherwise non-zero.
.SH "FILES"
.TP
-\fB\fI%cachdir%/*-%arch%\&.cache-2\fB\fR
+\fB\fI%cachedir%/*-%arch%\&.cache-%version%\fB\fR
These files are generated by \fBfc-cache\fR
and contain maps from file names to font properties. They are
read by the fontconfig library at application startup to locate
#define _GNU_SOURCE
#include <getopt.h>
const struct option longopts[] = {
+ {"error-on-no-fonts", 0, 0, 'E'},
{"force", 0, 0, 'f'},
{"really-force", 0, 0, 'r'},
+ {"sysroot", required_argument, 0, 'y'},
{"system-only", 0, 0, 's'},
{"version", 0, 0, 'V'},
{"verbose", 0, 0, 'v'},
{
FILE *file = error ? stderr : stdout;
#if HAVE_GETOPT_LONG
- fprintf (file, "usage: %s [-frsvVh] [--force|--really-force] [--system-only] [--verbose] [--version] [--help] [dirs]\n",
+ fprintf (file, "usage: %s [-EfrsvVh] [-y SYSROOT] [--error-on-no-fonts] [--force|--really-force] [--sysroot=SYSROOT] [--system-only] [--verbose] [--version] [--help] [dirs]\n",
program);
#else
- fprintf (file, "usage: %s [-frsvVh] [dirs]\n",
+ fprintf (file, "usage: %s [-EfrsvVh] [-y SYSROOT] [dirs]\n",
program);
#endif
fprintf (file, "Build font information caches in [dirs]\n"
"(all directories in font configuration by default).\n");
fprintf (file, "\n");
#if HAVE_GETOPT_LONG
- fprintf (file, " -f, --force scan directories with apparently valid caches\n");
- fprintf (file, " -r, --really-force erase all existing caches, then rescan\n");
- fprintf (file, " -s, --system-only scan system-wide directories only\n");
- fprintf (file, " -v, --verbose display status information while busy\n");
- fprintf (file, " -V, --version display font config version and exit\n");
- fprintf (file, " -h, --help display this help and exit\n");
+ fprintf (file, " -E, --error-on-no-fonts raise an error if no fonts in a directory\n");
+ fprintf (file, " -f, --force scan directories with apparently valid caches\n");
+ fprintf (file, " -r, --really-force erase all existing caches, then rescan\n");
+ fprintf (file, " -s, --system-only scan system-wide directories only\n");
+ fprintf (file, " -y, --sysroot=SYSROOT prepend SYSROOT to all paths for scanning\n");
+ fprintf (file, " -v, --verbose display status information while busy\n");
+ fprintf (file, " -V, --version display font config version and exit\n");
+ fprintf (file, " -h, --help display this help and exit\n");
#else
+ fprintf (file, " -E (error-on-no-fonts)\n");
+ fprintf (file, " raise an error if no fonts in a directory\n");
fprintf (file, " -f (force) scan directories with apparently valid caches\n");
fprintf (file, " -r, (really force) erase all existing caches, then rescan\n");
fprintf (file, " -s (system) scan system-wide directories only\n");
+ fprintf (file, " -y SYSROOT (sysroot) prepend SYSROOT to all paths for scanning\n");
fprintf (file, " -v (verbose) display status information while busy\n");
fprintf (file, " -V (version) display font config version and exit\n");
fprintf (file, " -h (help) display this help and exit\n");
static FcStrSet *processed_dirs;
static int
-scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, FcBool verbose, int *changed)
+scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, FcBool verbose, FcBool recursive, FcBool error_on_no_fonts, int *changed, FcStrSet *updateDirs)
{
int ret = 0;
const FcChar8 *dir;
FcStrList *sublist;
FcCache *cache;
struct stat statb;
- FcBool was_valid;
+ FcBool was_valid, was_processed = FcFalse;
int i;
-
+ const FcChar8 *sysroot = FcConfigGetSysRoot (config);
+
/*
* Now scan all of the directories into separate databases
* and write out the results
{
if (verbose)
{
+ if (!recursive)
+ printf ("Re-scanning ");
+ if (sysroot)
+ printf ("[%s]", sysroot);
printf ("%s: ", dir);
fflush (stdout);
}
- if (FcStrSetMember (processed_dirs, dir))
+ if (recursive && FcStrSetMember (processed_dirs, dir))
{
if (verbose)
printf ("skipping, looped directory detected\n");
fprintf (stderr, "\"%s\": not a directory, skipping\n", dir);
continue;
}
+ was_processed = FcTrue;
if (really_force)
FcDirCacheUnlink (dir, config);
if (!cache)
{
- (*changed)++;
- cache = FcDirCacheRead (dir, FcTrue, config);
+ if (!recursive)
+ cache = FcDirCacheRescan (dir, config);
+ else
+ {
+ (*changed)++;
+ cache = FcDirCacheRead (dir, FcTrue, config);
+ }
if (!cache)
{
fprintf (stderr, "%s: error scanning\n", dir);
ret++;
}
}
-
- subdirs = FcStrSetCreate ();
- if (!subdirs)
+
+ if (recursive)
{
- fprintf (stderr, "%s: Can't create subdir set\n", dir);
- ret++;
- FcDirCacheUnload (cache);
- continue;
- }
- for (i = 0; i < FcCacheNumSubdir (cache); i++)
- FcStrSetAdd (subdirs, FcCacheSubdir (cache, i));
+ subdirs = FcStrSetCreate ();
+ if (!subdirs)
+ {
+ fprintf (stderr, "%s: Can't create subdir set\n", dir);
+ ret++;
+ FcDirCacheUnload (cache);
+ continue;
+ }
+ for (i = 0; i < FcCacheNumSubdir (cache); i++)
+ FcStrSetAdd (subdirs, FcCacheSubdir (cache, i));
+ if (updateDirs && FcCacheNumSubdir (cache) > 0)
+ FcStrSetAdd (updateDirs, dir);
- FcDirCacheUnload (cache);
+ FcDirCacheUnload (cache);
- sublist = FcStrListCreate (subdirs);
- FcStrSetDestroy (subdirs);
- if (!sublist)
- {
- fprintf (stderr, "%s: Can't create subdir list\n", dir);
- ret++;
- continue;
+ sublist = FcStrListCreate (subdirs);
+ FcStrSetDestroy (subdirs);
+ if (!sublist)
+ {
+ fprintf (stderr, "%s: Can't create subdir list\n", dir);
+ ret++;
+ continue;
+ }
+ FcStrSetAdd (processed_dirs, dir);
+ ret += scanDirs (sublist, config, force, really_force, verbose, recursive, error_on_no_fonts, changed, updateDirs);
+ FcStrListDone (sublist);
}
- FcStrSetAdd (processed_dirs, dir);
- ret += scanDirs (sublist, config, force, really_force, verbose, changed);
+ else
+ FcDirCacheUnload (cache);
}
- FcStrListDone (list);
+ if (error_on_no_fonts && !was_processed)
+ ret++;
return ret;
}
int
main (int argc, char **argv)
{
- FcStrSet *dirs;
+ FcStrSet *dirs, *updateDirs;
FcStrList *list;
FcBool verbose = FcFalse;
FcBool force = FcFalse;
FcBool really_force = FcFalse;
FcBool systemOnly = FcFalse;
+ FcBool error_on_no_fonts = FcFalse;
FcConfig *config;
+ FcChar8 *sysroot = NULL;
int i;
int changed;
int ret;
int c;
#if HAVE_GETOPT_LONG
- while ((c = getopt_long (argc, argv, "frsVvh", longopts, NULL)) != -1)
+ while ((c = getopt_long (argc, argv, "Efrsy:Vvh", longopts, NULL)) != -1)
#else
- while ((c = getopt (argc, argv, "frsVvh")) != -1)
+ while ((c = getopt (argc, argv, "Efrsy:Vvh")) != -1)
#endif
{
switch (c) {
+ case 'E':
+ error_on_no_fonts = FcTrue;
+ break;
case 'r':
really_force = FcTrue;
/* fall through */
case 's':
systemOnly = FcTrue;
break;
+ case 'y':
+ sysroot = FcStrCopy ((const FcChar8 *)optarg);
+ break;
case 'V':
fprintf (stderr, "fontconfig version %d.%d.%d\n",
FC_MAJOR, FC_MINOR, FC_REVISION);
if (systemOnly)
FcConfigEnableHome (FcFalse);
- config = FcInitLoadConfig ();
+ if (sysroot)
+ {
+ FcConfigSetSysRoot (NULL, sysroot);
+ FcStrFree (sysroot);
+ config = FcConfigGetCurrent();
+ }
+ else
+ {
+ config = FcInitLoadConfig ();
+ }
if (!config)
{
fprintf (stderr, "%s: Can't init font config library\n", argv[0]);
fprintf(stderr, "Cannot malloc\n");
return 1;
}
-
+
+ updateDirs = FcStrSetCreate ();
changed = 0;
- ret = scanDirs (list, config, force, really_force, verbose, &changed);
+ ret = scanDirs (list, config, force, really_force, verbose, FcTrue, error_on_no_fonts, &changed, updateDirs);
+ /* Update the directory cache again to avoid the race condition as much as possible */
+ FcStrListDone (list);
+ list = FcStrListCreate (updateDirs);
+ if (list)
+ {
+ ret += scanDirs (list, config, FcTrue, FcFalse, verbose, FcFalse, error_on_no_fonts, &changed, NULL);
+ FcStrListDone (list);
+ }
+ FcStrSetDestroy (updateDirs);
/*
* Try to create CACHEDIR.TAG anyway.
cleanCacheDirectories (config, verbose);
+ FcConfigDestroy (config);
+ FcFini ();
/*
* Now we need to sleep a second (or two, to be extra sure), to make
* sure that timestamps for changes after this run of fc-cache are later
* sleep(3) can't be interrupted by a signal here -- this isn't in the
* library, and there aren't any signals flying around here.
*/
- FcConfigDestroy (config);
- FcFini ();
+ /* the resolution of mtime on FAT is 2 seconds */
if (changed)
sleep (2);
if (verbose)
<cmdsynopsis>
<command>&dhpackage;</command>
- <arg><option>-frsvVh</option></arg>
+ <arg><option>-EfrsvVh</option></arg>
+ <arg><option>--error-on-no-fonts</option></arg>
<arg><option>--force</option></arg>
<arg><option>--really-force</option></arg>
+ <group>
+ <arg><option>-y</option> <option><replaceable>dir</replaceable></option></arg>
+ <arg><option>--sysroot</option> <option><replaceable>dir</replaceable></option></arg>
+ </group>
<arg><option>--system-only</option></arg>
<arg><option>--verbose</option></arg>
<arg><option>--version</option></arg>
<variablelist>
<varlistentry>
+ <term><option>-E</option>
+ <option>--error-on-no-fonts</option>
+ </term>
+ <listitem>
+ <para>Raise an error if there are no fonts in
+ <option><replaceable>dir</replaceable></option> or directories
+ in the configuration if not given.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
<term><option>-f</option>
<option>--force</option>
</term>
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>-y</option>
+ <option>-sysroot</option>
+ <option><replaceable>dir</replaceable></option>
+ </term>
+ <listitem>
+ <para>Prepend <option><replaceable>dir</replaceable></option> to all paths for scanning.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
<term><option>-h</option>
<option>--help</option>
</term>
</refsect1>
<refsect1>
+ <title>RETURN CODES</title>
+ <para><command>fc-cache</command> returns zero if the caches successfully generated. otherwise non-zero.</para>
+ </refsect1>
+
+ <refsect1>
<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
-# CaseFolding-6.2.0.txt
-# Date: 2012-08-14, 17:54:49 GMT [MD]
+# CaseFolding-7.0.0.txt
+# Date: 2014-04-09, 20:00:56 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2012 Unicode, Inc.
+# Copyright (c) 1991-2014 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see http://www.unicode.org/reports/tr44/
#
#
# For information on case folding, including how to have case folding
# preserve normalization formats, see Section 3.13 Default Case Algorithms in
-# The Unicode Standard, Version 5.0.
+# The Unicode Standard.
#
# ================================================================================
# Format
# All code points not explicitly listed for Case_Folding
# have the value C for the status field, and the code point itself for the mapping field.
-# @missing: 0000..10FFFF; C; <code point>
-
# =================================================================
0041; C; 0061; # LATIN CAPITAL LETTER A
0042; C; 0062; # LATIN CAPITAL LETTER B
0370; C; 0371; # GREEK CAPITAL LETTER HETA
0372; C; 0373; # GREEK CAPITAL LETTER ARCHAIC SAMPI
0376; C; 0377; # GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
+037F; C; 03F3; # GREEK CAPITAL LETTER YOT
0386; C; 03AC; # GREEK CAPITAL LETTER ALPHA WITH TONOS
0388; C; 03AD; # GREEK CAPITAL LETTER EPSILON WITH TONOS
0389; C; 03AE; # GREEK CAPITAL LETTER ETA WITH TONOS
0522; C; 0523; # CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
0524; C; 0525; # CYRILLIC CAPITAL LETTER PE WITH DESCENDER
0526; C; 0527; # CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
+0528; C; 0529; # CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
+052A; C; 052B; # CYRILLIC CAPITAL LETTER DZZHE
+052C; C; 052D; # CYRILLIC CAPITAL LETTER DCHE
+052E; C; 052F; # CYRILLIC CAPITAL LETTER EL WITH DESCENDER
0531; C; 0561; # ARMENIAN CAPITAL LETTER AYB
0532; C; 0562; # ARMENIAN CAPITAL LETTER BEN
0533; C; 0563; # ARMENIAN CAPITAL LETTER GIM
A692; C; A693; # CYRILLIC CAPITAL LETTER TCHE
A694; C; A695; # CYRILLIC CAPITAL LETTER HWE
A696; C; A697; # CYRILLIC CAPITAL LETTER SHWE
+A698; C; A699; # CYRILLIC CAPITAL LETTER DOUBLE O
+A69A; C; A69B; # CYRILLIC CAPITAL LETTER CROSSED O
A722; C; A723; # LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
A724; C; A725; # LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
A726; C; A727; # LATIN CAPITAL LETTER HENG
A78D; C; 0265; # LATIN CAPITAL LETTER TURNED H
A790; C; A791; # LATIN CAPITAL LETTER N WITH DESCENDER
A792; C; A793; # LATIN CAPITAL LETTER C WITH BAR
+A796; C; A797; # LATIN CAPITAL LETTER B WITH FLOURISH
+A798; C; A799; # LATIN CAPITAL LETTER F WITH STROKE
+A79A; C; A79B; # LATIN CAPITAL LETTER VOLAPUK AE
+A79C; C; A79D; # LATIN CAPITAL LETTER VOLAPUK OE
+A79E; C; A79F; # LATIN CAPITAL LETTER VOLAPUK UE
A7A0; C; A7A1; # LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
A7A2; C; A7A3; # LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
A7A4; C; A7A5; # LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
A7A6; C; A7A7; # LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
A7A8; C; A7A9; # LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
A7AA; C; 0266; # LATIN CAPITAL LETTER H WITH HOOK
+A7AB; C; 025C; # LATIN CAPITAL LETTER REVERSED OPEN E
+A7AC; C; 0261; # LATIN CAPITAL LETTER SCRIPT G
+A7AD; C; 026C; # LATIN CAPITAL LETTER L WITH BELT
+A7B0; C; 029E; # LATIN CAPITAL LETTER TURNED K
+A7B1; C; 0287; # LATIN CAPITAL LETTER TURNED T
FB00; F; 0066 0066; # LATIN SMALL LIGATURE FF
FB01; F; 0066 0069; # LATIN SMALL LIGATURE FI
FB02; F; 0066 006C; # LATIN SMALL LIGATURE FL
10425; C; 1044D; # DESERET CAPITAL LETTER ENG
10426; C; 1044E; # DESERET CAPITAL LETTER OI
10427; C; 1044F; # DESERET CAPITAL LETTER EW
+118A0; C; 118C0; # WARANG CITI CAPITAL LETTER NGAA
+118A1; C; 118C1; # WARANG CITI CAPITAL LETTER A
+118A2; C; 118C2; # WARANG CITI CAPITAL LETTER WI
+118A3; C; 118C3; # WARANG CITI CAPITAL LETTER YU
+118A4; C; 118C4; # WARANG CITI CAPITAL LETTER YA
+118A5; C; 118C5; # WARANG CITI CAPITAL LETTER YO
+118A6; C; 118C6; # WARANG CITI CAPITAL LETTER II
+118A7; C; 118C7; # WARANG CITI CAPITAL LETTER UU
+118A8; C; 118C8; # WARANG CITI CAPITAL LETTER E
+118A9; C; 118C9; # WARANG CITI CAPITAL LETTER O
+118AA; C; 118CA; # WARANG CITI CAPITAL LETTER ANG
+118AB; C; 118CB; # WARANG CITI CAPITAL LETTER GA
+118AC; C; 118CC; # WARANG CITI CAPITAL LETTER KO
+118AD; C; 118CD; # WARANG CITI CAPITAL LETTER ENY
+118AE; C; 118CE; # WARANG CITI CAPITAL LETTER YUJ
+118AF; C; 118CF; # WARANG CITI CAPITAL LETTER UC
+118B0; C; 118D0; # WARANG CITI CAPITAL LETTER ENN
+118B1; C; 118D1; # WARANG CITI CAPITAL LETTER ODD
+118B2; C; 118D2; # WARANG CITI CAPITAL LETTER TTE
+118B3; C; 118D3; # WARANG CITI CAPITAL LETTER NUNG
+118B4; C; 118D4; # WARANG CITI CAPITAL LETTER DA
+118B5; C; 118D5; # WARANG CITI CAPITAL LETTER AT
+118B6; C; 118D6; # WARANG CITI CAPITAL LETTER AM
+118B7; C; 118D7; # WARANG CITI CAPITAL LETTER BU
+118B8; C; 118D8; # WARANG CITI CAPITAL LETTER PU
+118B9; C; 118D9; # WARANG CITI CAPITAL LETTER HIYO
+118BA; C; 118DA; # WARANG CITI CAPITAL LETTER HOLO
+118BB; C; 118DB; # WARANG CITI CAPITAL LETTER HORR
+118BC; C; 118DC; # WARANG CITI CAPITAL LETTER HAR
+118BD; C; 118DD; # WARANG CITI CAPITAL LETTER SSUU
+118BE; C; 118DE; # WARANG CITI CAPITAL LETTER SII
+118BF; C; 118DF; # WARANG CITI CAPITAL LETTER VIYO
#
# EOF
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# Google Author(s): Behdad Esfahbod
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
esac; \
- test $$am__dry = yes; \
- }
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in $(top_srcdir)/Tools.mk
+DIST_COMMON = $(top_srcdir)/Tools.mk $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(noinst_HEADERS)
subdir = fc-case
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_for_build.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \
+ $(top_srcdir)/m4/ax_cc_for_build.m4 \
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
$(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
*) (install-info --version) >/dev/null 2>&1;; \
esac
HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
FGREP = @FGREP@
FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
FREETYPE_LIBS = @FREETYPE_LIBS@
+GIT = @GIT@
+GPERF = @GPERF@
GREP = @GREP@
HASDOCBOOK = @HASDOCBOOK@
HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
+PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PTHREAD_CC = @PTHREAD_CC@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
PTHREAD_LIBS = @PTHREAD_LIBS@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RM = @RM@
SED = @SED@
am__tar = @am__tar@
am__untar = @am__untar@
ax_pthread_config = @ax_pthread_config@
-baseconfigdir = @baseconfigdir@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
-configdir = @configdir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
ms_librarian = @ms_librarian@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgconfigdir = @pkgconfigdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-templatedir = @templatedir@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-xmldir = @xmldir@
TAG = case
DEPS = $(srcdir)/CaseFolding.txt
ARGS = $(srcdir)/CaseFolding.txt
TSRC = $(DIR).c
TOOL = ./$(DIR)$(EXEEXT_FOR_BUILD)
EXTRA_DIST = $(TARG) $(TMPL) $(TSRC) $(DIST)
-INCLUDES = \
+AM_CPPFLAGS = \
-I$(builddir) \
-I$(srcdir) \
-I$(top_builddir)/src \
clean-libtool:
-rm -rf .libs _libs
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
-cscopelist: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
.MAKE: all check install install-am install-strip
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libtool cscopelist ctags distclean distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-man install-pdf install-pdf-am \
- install-ps install-ps-am install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-libtool cscopelist-am ctags ctags-am distclean \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
uninstall-am
$(TOOL): $(TSRC) $(ALIAS_FILES)
- $(AM_V_GEN) $(CC_FOR_BUILD) -o $(TOOL) $< $(INCLUDES)
+ $(AM_V_GEN) $(CC_FOR_BUILD) -o $(TOOL) $< $(AM_CPPFLAGS)
$(TARG): $(TMPL) $(TSRC) $(DEPS)
$(AM_V_GEN) $(MAKE) $(TOOL) && \
* PERFORMANCE OF THIS SOFTWARE.
*/
-#define FC_NUM_CASE_FOLD 264
+#define FC_NUM_CASE_FOLD 271
#define FC_NUM_CASE_FOLD_CHARS 471
#define FC_MAX_CASE_FOLD_CHARS 6
#define FC_MAX_CASE_FOLD_EXPAND 4
#define FC_MIN_FOLD_CHAR 0x00000041
-#define FC_MAX_FOLD_CHAR 0x00010427
+#define FC_MAX_FOLD_CHAR 0x000118bf
static const FcCaseFold fcCaseFold[FC_NUM_CASE_FOLD] = {
{ 0x00000041, FC_CASE_FOLD_RANGE, 0x001a, 32 },
{ 0x00000345, FC_CASE_FOLD_RANGE, 0x0001, 116 },
{ 0x00000370, FC_CASE_FOLD_EVEN_ODD, 0x0003, 1 },
{ 0x00000376, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 },
+ { 0x0000037f, FC_CASE_FOLD_RANGE, 0x0001, 116 },
{ 0x00000386, FC_CASE_FOLD_RANGE, 0x0001, 38 },
{ 0x00000388, FC_CASE_FOLD_RANGE, 0x0003, 37 },
{ 0x0000038c, FC_CASE_FOLD_RANGE, 0x0001, 64 },
{ 0x0000048a, FC_CASE_FOLD_EVEN_ODD, 0x0035, 1 },
{ 0x000004c0, FC_CASE_FOLD_RANGE, 0x0001, 15 },
{ 0x000004c1, FC_CASE_FOLD_EVEN_ODD, 0x000d, 1 },
- { 0x000004d0, FC_CASE_FOLD_EVEN_ODD, 0x0057, 1 },
+ { 0x000004d0, FC_CASE_FOLD_EVEN_ODD, 0x005f, 1 },
{ 0x00000531, FC_CASE_FOLD_RANGE, 0x0026, 48 },
{ 0x00000587, FC_CASE_FOLD_FULL, 0x0004, 23 },
{ 0x000010a0, FC_CASE_FOLD_RANGE, 0x0026, 7264 },
{ 0x00002ceb, FC_CASE_FOLD_EVEN_ODD, 0x0003, 1 },
{ 0x00002cf2, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 },
{ 0x0000a640, FC_CASE_FOLD_EVEN_ODD, 0x002d, 1 },
- { 0x0000a680, FC_CASE_FOLD_EVEN_ODD, 0x0017, 1 },
+ { 0x0000a680, FC_CASE_FOLD_EVEN_ODD, 0x001b, 1 },
{ 0x0000a722, FC_CASE_FOLD_EVEN_ODD, 0x000d, 1 },
{ 0x0000a732, FC_CASE_FOLD_EVEN_ODD, 0x003d, 1 },
{ 0x0000a779, FC_CASE_FOLD_EVEN_ODD, 0x0003, 1 },
{ 0x0000a78b, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 },
{ 0x0000a78d, FC_CASE_FOLD_RANGE, 0x0001, 23256 },
{ 0x0000a790, FC_CASE_FOLD_EVEN_ODD, 0x0003, 1 },
- { 0x0000a7a0, FC_CASE_FOLD_EVEN_ODD, 0x0009, 1 },
+ { 0x0000a796, FC_CASE_FOLD_EVEN_ODD, 0x0013, 1 },
{ 0x0000a7aa, FC_CASE_FOLD_RANGE, 0x0001, 23228 },
+ { 0x0000a7ab, FC_CASE_FOLD_RANGE, 0x0001, 23217 },
+ { 0x0000a7ac, FC_CASE_FOLD_RANGE, 0x0001, 23221 },
+ { 0x0000a7ad, FC_CASE_FOLD_RANGE, 0x0001, 23231 },
+ { 0x0000a7b0, FC_CASE_FOLD_RANGE, 0x0001, 23278 },
+ { 0x0000a7b1, FC_CASE_FOLD_RANGE, 0x0001, 23254 },
{ 0x0000fb00, FC_CASE_FOLD_FULL, 0x0002, 435 },
{ 0x0000fb01, FC_CASE_FOLD_FULL, 0x0002, 437 },
{ 0x0000fb02, FC_CASE_FOLD_FULL, 0x0002, 439 },
{ 0x0000fb17, FC_CASE_FOLD_FULL, 0x0004, 467 },
{ 0x0000ff21, FC_CASE_FOLD_RANGE, 0x001a, 32 },
{ 0x00010400, FC_CASE_FOLD_RANGE, 0x0028, 40 },
+ { 0x000118a0, FC_CASE_FOLD_RANGE, 0x0020, 32 },
};
static const FcChar8 fcCaseFoldChars[FC_NUM_CASE_FOLD_CHARS] = {
SGML = ${FC_CAT_SRC}/fc-cat.sgml
-INCLUDES=-I${top_srcdir} $(WARN_CFLAGS)
+AM_CPPFLAGS=-I${top_srcdir} $(WARN_CFLAGS)
bin_PROGRAMS=fc-cat
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# PERFORMANCE OF THIS SOFTWARE.
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
- test $$am__dry = yes; \
- }
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
bin_PROGRAMS = fc-cat$(EXEEXT)
@USEDOCBOOK_TRUE@am__append_1 = ${man_MANS}
subdir = fc-cat
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(top_srcdir)/depcomp
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_for_build.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \
+ $(top_srcdir)/m4/ax_cc_for_build.m4 \
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
$(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
man1dir = $(mandir)/man1
NROFF = nroff
MANS = $(man_MANS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
FGREP = @FGREP@
FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
FREETYPE_LIBS = @FREETYPE_LIBS@
+GIT = @GIT@
+GPERF = @GPERF@
GREP = @GREP@
HASDOCBOOK = @HASDOCBOOK@
HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
+PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PTHREAD_CC = @PTHREAD_CC@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
PTHREAD_LIBS = @PTHREAD_LIBS@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RM = @RM@
SED = @SED@
am__tar = @am__tar@
am__untar = @am__untar@
ax_pthread_config = @ax_pthread_config@
-baseconfigdir = @baseconfigdir@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
-configdir = @configdir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
ms_librarian = @ms_librarian@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgconfigdir = @pkgconfigdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-templatedir = @templatedir@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-xmldir = @xmldir@
DOC2MAN = docbook2man
FC_CAT_SRC = ${top_srcdir}/fc-cat
SGML = ${FC_CAT_SRC}/fc-cat.sgml
-INCLUDES = -I${top_srcdir} $(WARN_CFLAGS)
+AM_CPPFLAGS = -I${top_srcdir} $(WARN_CFLAGS)
BUILT_MANS = fc-cat.1
@ENABLE_DOCS_TRUE@man_MANS = ${BUILT_MANS}
EXTRA_DIST = fc-cat.sgml ${BUILT_MANS}
fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p || test -f $$p1; \
- then echo "$$p"; echo "$$p"; else :; fi; \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
done | \
- sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' `; \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(bindir)" && rm -f $$files
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
+
fc-cat$(EXEEXT): $(fc_cat_OBJECTS) $(fc_cat_DEPENDENCIES) $(EXTRA_fc_cat_DEPENDENCIES)
@rm -f fc-cat$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fc_cat_OBJECTS) $(fc_cat_LDADD) $(LIBS)
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
-cscopelist: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
- @list='$(MANS)'; if test -n "$$list"; then \
- list=`for p in $$list; do \
- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
- if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
- if test -n "$$list" && \
- grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
- echo "error: found man pages containing the 'missing help2man' replacement text:" >&2; \
- grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
- echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
- echo " typically 'make maintainer-clean' will remove them" >&2; \
- exit 1; \
- else :; fi; \
- else :; fi
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
.MAKE: install-am install-strip
-.PHONY: CTAGS GTAGS all all-am all-local check check-am clean \
- clean-binPROGRAMS clean-generic clean-libtool cscopelist ctags \
- distclean distclean-compile distclean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \
+ clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
+ ctags ctags-am distclean distclean-compile distclean-generic \
distclean-libtool distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-binPROGRAMS \
install-data install-data-am install-dvi install-dvi-am \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags uninstall uninstall-am \
+ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
uninstall-binPROGRAMS uninstall-man uninstall-man1
.sp
\fBfc-cat\fR [ \fB-rvVh\fR ] [ \fB--recurse\fR ] [ \fB--verbose\fR ] [ \fB--version\fR ] [ \fB--help\fR ]
- [ \fB [ \fIfonts-cache-2-files\fB ] [ \fIdirs\fB ] \fR\fI...\fR ]
+ [ \fB [ \fIfonts-cache-%version%-files\fB ] [ \fIdirs\fB ] \fR\fI...\fR ]
.SH "DESCRIPTION"
.PP
\fBfc-cat\fR reads the font information from
return 1;
}
FcConfigSetCurrent (config);
+ FcConfigDestroy (config);
args = FcStrSetCreate ();
if (!args)
return 1;
}
}
- arglist = FcStrListCreate (args);
- if (!arglist)
- {
- fprintf (stderr, "%s: malloc failure\n", argv[0]);
- return 1;
- }
}
else
{
fprintf (stderr, "%s: malloc failure\n", argv[0]);
return 1;
}
+ FcStrSetDestroy (args);
while ((arg = FcStrListNext (arglist)))
{
if (cache_file)
FcStrFree (cache_file);
}
+ FcStrListDone (arglist);
FcFini ();
return 0;
<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>
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# Google Author(s): Behdad Esfahbod
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
esac; \
- test $$am__dry = yes; \
- }
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in $(top_srcdir)/Tools.mk
+DIST_COMMON = $(top_srcdir)/Tools.mk $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(noinst_HEADERS)
subdir = fc-glyphname
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_for_build.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \
+ $(top_srcdir)/m4/ax_cc_for_build.m4 \
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
$(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
*) (install-info --version) >/dev/null 2>&1;; \
esac
HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
FGREP = @FGREP@
FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
FREETYPE_LIBS = @FREETYPE_LIBS@
+GIT = @GIT@
+GPERF = @GPERF@
GREP = @GREP@
HASDOCBOOK = @HASDOCBOOK@
HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
+PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PTHREAD_CC = @PTHREAD_CC@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
PTHREAD_LIBS = @PTHREAD_LIBS@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RM = @RM@
SED = @SED@
am__tar = @am__tar@
am__untar = @am__untar@
ax_pthread_config = @ax_pthread_config@
-baseconfigdir = @baseconfigdir@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
-configdir = @configdir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
ms_librarian = @ms_librarian@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgconfigdir = @pkgconfigdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-templatedir = @templatedir@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-xmldir = @xmldir@
TAG = glyphname
DEPS = $(srcdir)/zapfdingbats.txt
ARGS = $(srcdir)/zapfdingbats.txt
TSRC = $(DIR).c
TOOL = ./$(DIR)$(EXEEXT_FOR_BUILD)
EXTRA_DIST = $(TARG) $(TMPL) $(TSRC) $(DIST)
-INCLUDES = \
+AM_CPPFLAGS = \
-I$(builddir) \
-I$(srcdir) \
-I$(top_builddir)/src \
clean-libtool:
-rm -rf .libs _libs
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
-cscopelist: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
.MAKE: all check install install-am install-strip
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libtool cscopelist ctags distclean distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-man install-pdf install-pdf-am \
- install-ps install-ps-am install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-libtool cscopelist-am ctags ctags-am distclean \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
uninstall-am
$(TOOL): $(TSRC) $(ALIAS_FILES)
- $(AM_V_GEN) $(CC_FOR_BUILD) -o $(TOOL) $< $(INCLUDES)
+ $(AM_V_GEN) $(CC_FOR_BUILD) -o $(TOOL) $< $(AM_CPPFLAGS)
$(TARG): $(TMPL) $(TSRC) $(DEPS)
$(AM_V_GEN) $(MAKE) $(TOOL) && \
int
main (int argc FC_UNUSED, char **argv)
{
- char *files[MAX_GLYPHFILE];
+ char *files[MAX_GLYPHFILE + 1];
char line[1024];
FILE *f;
int i;
pap_an.orth \
pap_aw.orth \
qu.orth \
+ quz.orth \
rn.orth \
rw.orth \
sc.orth \
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# Google Author(s): Behdad Esfahbod
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
esac; \
- test $$am__dry = yes; \
- }
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in $(top_srcdir)/Tools.mk
+DIST_COMMON = $(top_srcdir)/Tools.mk $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(noinst_HEADERS) README
subdir = fc-lang
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_for_build.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \
+ $(top_srcdir)/m4/ax_cc_for_build.m4 \
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
$(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
*) (install-info --version) >/dev/null 2>&1;; \
esac
HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
FGREP = @FGREP@
FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
FREETYPE_LIBS = @FREETYPE_LIBS@
+GIT = @GIT@
+GPERF = @GPERF@
GREP = @GREP@
HASDOCBOOK = @HASDOCBOOK@
HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
+PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PTHREAD_CC = @PTHREAD_CC@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
PTHREAD_LIBS = @PTHREAD_LIBS@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RM = @RM@
SED = @SED@
am__tar = @am__tar@
am__untar = @am__untar@
ax_pthread_config = @ax_pthread_config@
-baseconfigdir = @baseconfigdir@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
-configdir = @configdir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
ms_librarian = @ms_librarian@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgconfigdir = @pkgconfigdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-templatedir = @templatedir@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-xmldir = @xmldir@
TAG = lang
DEPS = $(ORTH)
ARGS = -d $(srcdir) $(ORTH)
TSRC = $(DIR).c
TOOL = ./$(DIR)$(EXEEXT_FOR_BUILD)
EXTRA_DIST = $(TARG) $(TMPL) $(TSRC) $(DIST)
-INCLUDES = \
+AM_CPPFLAGS = \
-I$(builddir) \
-I$(srcdir) \
-I$(top_builddir)/src \
pap_an.orth \
pap_aw.orth \
qu.orth \
+ quz.orth \
rn.orth \
rw.orth \
sc.orth \
clean-libtool:
-rm -rf .libs _libs
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
-cscopelist: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
.MAKE: all check install install-am install-strip
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libtool cscopelist ctags distclean distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-man install-pdf install-pdf-am \
- install-ps install-ps-am install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-libtool cscopelist-am ctags ctags-am distclean \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
uninstall-am
$(TOOL): $(TSRC) $(ALIAS_FILES)
- $(AM_V_GEN) $(CC_FOR_BUILD) -o $(TOOL) $< $(INCLUDES)
+ $(AM_V_GEN) $(CC_FOR_BUILD) -o $(TOOL) $< $(AM_CPPFLAGS)
$(TARG): $(TMPL) $(TSRC) $(DEPS)
$(AM_V_GEN) $(MAKE) $(TOOL) && \
--- /dev/null
+Requirements for adding new orth file:
+
+* we are following up to the locale name, 2 or 3 letter code
+ in ISO 639 and ISO 3166-1 alpha-2 code to determine a
+ filename. if it's not yet available, in advance, you
+ should get it fixed in glibc or so.
+
+* Please add a reference URL (written in English as far as
+ possible) into the orth file that explains the code
+ coverage for the certain language. this would helps to
+ review if it has enough coverage.
+
+* no need to add all of the codepoints for the certain
+ language. good enough if it covers most frequently used
+ codepoints in it.
+
+To update existing orth files:
+
+* Please make sure how the changes affects to the existing
+ fonts and no regressions except it is expected behavior.
+
+* Please add any reference URL in bugzilla or any
+ explanation why it needs to be added/removed and also why
+ current orth file doesn't work.
+
+* Please provide a test case what fonts are supposed to be
+ accepted against the change and what fonts aren't.
+
int
main (int argc FC_UNUSED, char **argv)
{
- static Entry entries[MAX_LANG];
+ static Entry entries[MAX_LANG + 1];
static FcCharSet *sets[MAX_LANG];
static int duplicate[MAX_LANG];
static int country[MAX_LANG];
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* total size: 909 unique leaves: 617 */
+/* total size: 1087 unique leaves: 702 */
-#define LEAF0 (243 * sizeof (FcLangCharSet))
-#define OFF0 (LEAF0 + 617 * sizeof (FcCharLeaf))
-#define NUM0 (OFF0 + 667 * sizeof (uintptr_t))
+#define LEAF0 (244 * sizeof (FcLangCharSet))
+#define OFF0 (LEAF0 + 702 * sizeof (FcCharLeaf))
+#define NUM0 (OFF0 + 755 * sizeof (uintptr_t))
#define SET(n) (n * sizeof (FcLangCharSet) + offsetof (FcLangCharSet, charset))
#define OFF(s,o) (OFF0 + o * sizeof (uintptr_t) - SET(s))
#define NUM(s,n) (NUM0 + n * sizeof (FcChar16) - SET(s))
#define fcLangCharSetIndicesInv (fcLangData.langIndicesInv)
static const struct {
- FcLangCharSet langCharSets[243];
- FcCharLeaf leaves[617];
- uintptr_t leaf_offsets[667];
- FcChar16 numbers[667];
- FcChar8 langIndices[243];
- FcChar8 langIndicesInv[243];
+ FcLangCharSet langCharSets[244];
+ FcCharLeaf leaves[702];
+ uintptr_t leaf_offsets[755];
+ FcChar16 numbers[755];
+ FcChar8 langIndices[244];
+ FcChar8 langIndicesInv[244];
} fcLangData = {
{
{ "aa", { FC_REF_CONSTANT, 1, OFF(0,0), NUM(0,0) } }, /* 0 */
{ "ps-pk", { FC_REF_CONSTANT, 1, OFF(165,343), NUM(165,343) } }, /* 165 */
{ "pt", { FC_REF_CONSTANT, 1, OFF(166,344), NUM(166,344) } }, /* 166 */
{ "qu", { FC_REF_CONSTANT, 2, OFF(167,345), NUM(167,345) } }, /* 167 */
- { "rm", { FC_REF_CONSTANT, 1, OFF(168,347), NUM(168,347) } }, /* 168 */
- { "rn", { FC_REF_CONSTANT, 1, OFF(169,87), NUM(169,87) } }, /* 169 */
- { "ro", { FC_REF_CONSTANT, 3, OFF(170,348), NUM(170,348) } }, /* 170 */
- { "ru", { FC_REF_CONSTANT, 1, OFF(171,279), NUM(171,279) } }, /* 171 */
- { "rw", { FC_REF_CONSTANT, 1, OFF(172,87), NUM(172,87) } }, /* 172 */
- { "sa", { FC_REF_CONSTANT, 1, OFF(173,30), NUM(173,30) } }, /* 173 */
- { "sah", { FC_REF_CONSTANT, 1, OFF(174,351), NUM(174,351) } }, /* 174 */
- { "sat", { FC_REF_CONSTANT, 1, OFF(175,352), NUM(175,352) } }, /* 175 */
- { "sc", { FC_REF_CONSTANT, 1, OFF(176,353), NUM(176,353) } }, /* 176 */
- { "sco", { FC_REF_CONSTANT, 3, OFF(177,354), NUM(177,354) } }, /* 177 */
- { "sd", { FC_REF_CONSTANT, 1, OFF(178,357), NUM(178,357) } }, /* 178 */
- { "se", { FC_REF_CONSTANT, 2, OFF(179,358), NUM(179,358) } }, /* 179 */
- { "sel", { FC_REF_CONSTANT, 1, OFF(180,279), NUM(180,279) } }, /* 180 */
- { "sg", { FC_REF_CONSTANT, 1, OFF(181,360), NUM(181,360) } }, /* 181 */
- { "sh", { FC_REF_CONSTANT, 3, OFF(182,361), NUM(182,361) } }, /* 182 */
- { "shs", { FC_REF_CONSTANT, 2, OFF(183,364), NUM(183,364) } }, /* 183 */
- { "si", { FC_REF_CONSTANT, 1, OFF(184,366), NUM(184,366) } }, /* 184 */
- { "sid", { FC_REF_CONSTANT, 2, OFF(185,367), NUM(185,367) } }, /* 185 */
- { "sk", { FC_REF_CONSTANT, 2, OFF(186,369), NUM(186,369) } }, /* 186 */
- { "sl", { FC_REF_CONSTANT, 2, OFF(187,42), NUM(187,42) } }, /* 187 */
- { "sm", { FC_REF_CONSTANT, 2, OFF(188,371), NUM(188,371) } }, /* 188 */
- { "sma", { FC_REF_CONSTANT, 1, OFF(189,373), NUM(189,373) } }, /* 189 */
- { "smj", { FC_REF_CONSTANT, 1, OFF(190,374), NUM(190,374) } }, /* 190 */
- { "smn", { FC_REF_CONSTANT, 2, OFF(191,375), NUM(191,375) } }, /* 191 */
- { "sms", { FC_REF_CONSTANT, 3, OFF(192,377), NUM(192,377) } }, /* 192 */
- { "sn", { FC_REF_CONSTANT, 1, OFF(193,87), NUM(193,87) } }, /* 193 */
- { "so", { FC_REF_CONSTANT, 1, OFF(194,87), NUM(194,87) } }, /* 194 */
- { "sq", { FC_REF_CONSTANT, 1, OFF(195,380), NUM(195,380) } }, /* 195 */
- { "sr", { FC_REF_CONSTANT, 1, OFF(196,381), NUM(196,381) } }, /* 196 */
- { "ss", { FC_REF_CONSTANT, 1, OFF(197,87), NUM(197,87) } }, /* 197 */
- { "st", { FC_REF_CONSTANT, 1, OFF(198,87), NUM(198,87) } }, /* 198 */
- { "su", { FC_REF_CONSTANT, 1, OFF(199,118), NUM(199,118) } }, /* 199 */
- { "sv", { FC_REF_CONSTANT, 1, OFF(200,382), NUM(200,382) } }, /* 200 */
- { "sw", { FC_REF_CONSTANT, 1, OFF(201,87), NUM(201,87) } }, /* 201 */
- { "syr", { FC_REF_CONSTANT, 1, OFF(202,383), NUM(202,383) } }, /* 202 */
- { "ta", { FC_REF_CONSTANT, 1, OFF(203,384), NUM(203,384) } }, /* 203 */
- { "te", { FC_REF_CONSTANT, 1, OFF(204,385), NUM(204,385) } }, /* 204 */
- { "tg", { FC_REF_CONSTANT, 1, OFF(205,386), NUM(205,386) } }, /* 205 */
- { "th", { FC_REF_CONSTANT, 1, OFF(206,387), NUM(206,387) } }, /* 206 */
- { "ti-er", { FC_REF_CONSTANT, 2, OFF(207,45), NUM(207,45) } }, /* 207 */
- { "ti-et", { FC_REF_CONSTANT, 2, OFF(208,367), NUM(208,367) } }, /* 208 */
- { "tig", { FC_REF_CONSTANT, 2, OFF(209,388), NUM(209,388) } }, /* 209 */
- { "tk", { FC_REF_CONSTANT, 2, OFF(210,390), NUM(210,390) } }, /* 210 */
- { "tl", { FC_REF_CONSTANT, 1, OFF(211,86), NUM(211,86) } }, /* 211 */
- { "tn", { FC_REF_CONSTANT, 2, OFF(212,326), NUM(212,326) } }, /* 212 */
- { "to", { FC_REF_CONSTANT, 2, OFF(213,371), NUM(213,371) } }, /* 213 */
- { "tr", { FC_REF_CONSTANT, 2, OFF(214,392), NUM(214,392) } }, /* 214 */
- { "ts", { FC_REF_CONSTANT, 1, OFF(215,87), NUM(215,87) } }, /* 215 */
- { "tt", { FC_REF_CONSTANT, 1, OFF(216,394), NUM(216,394) } }, /* 216 */
- { "tw", { FC_REF_CONSTANT, 5, OFF(217,4), NUM(217,4) } }, /* 217 */
- { "ty", { FC_REF_CONSTANT, 3, OFF(218,395), NUM(218,395) } }, /* 218 */
- { "tyv", { FC_REF_CONSTANT, 1, OFF(219,284), NUM(219,284) } }, /* 219 */
- { "ug", { FC_REF_CONSTANT, 1, OFF(220,398), NUM(220,398) } }, /* 220 */
- { "uk", { FC_REF_CONSTANT, 1, OFF(221,399), NUM(221,399) } }, /* 221 */
- { "ur", { FC_REF_CONSTANT, 1, OFF(222,287), NUM(222,287) } }, /* 222 */
- { "uz", { FC_REF_CONSTANT, 1, OFF(223,87), NUM(223,87) } }, /* 223 */
- { "ve", { FC_REF_CONSTANT, 2, OFF(224,400), NUM(224,400) } }, /* 224 */
- { "vi", { FC_REF_CONSTANT, 4, OFF(225,402), NUM(225,402) } }, /* 225 */
- { "vo", { FC_REF_CONSTANT, 1, OFF(226,406), NUM(226,406) } }, /* 226 */
- { "vot", { FC_REF_CONSTANT, 2, OFF(227,407), NUM(227,407) } }, /* 227 */
- { "wa", { FC_REF_CONSTANT, 1, OFF(228,409), NUM(228,409) } }, /* 228 */
- { "wal", { FC_REF_CONSTANT, 2, OFF(229,367), NUM(229,367) } }, /* 229 */
- { "wen", { FC_REF_CONSTANT, 2, OFF(230,410), NUM(230,410) } }, /* 230 */
- { "wo", { FC_REF_CONSTANT, 2, OFF(231,412), NUM(231,412) } }, /* 231 */
- { "xh", { FC_REF_CONSTANT, 1, OFF(232,87), NUM(232,87) } }, /* 232 */
- { "yap", { FC_REF_CONSTANT, 1, OFF(233,414), NUM(233,414) } }, /* 233 */
- { "yi", { FC_REF_CONSTANT, 1, OFF(234,108), NUM(234,108) } }, /* 234 */
- { "yo", { FC_REF_CONSTANT, 4, OFF(235,415), NUM(235,415) } }, /* 235 */
- { "za", { FC_REF_CONSTANT, 1, OFF(236,87), NUM(236,87) } }, /* 236 */
- { "zh-cn", { FC_REF_CONSTANT, 82, OFF(237,419), NUM(237,419) } }, /* 237 */
- { "zh-hk", { FC_REF_CONSTANT, 83, OFF(238,501), NUM(238,501) } }, /* 238 */
- { "zh-mo", { FC_REF_CONSTANT, 83, OFF(239,501), NUM(239,501) } }, /* 239 */
- { "zh-sg", { FC_REF_CONSTANT, 82, OFF(240,419), NUM(240,419) } }, /* 240 */
- { "zh-tw", { FC_REF_CONSTANT, 83, OFF(241,584), NUM(241,584) } }, /* 241 */
- { "zu", { FC_REF_CONSTANT, 1, OFF(242,87), NUM(242,87) } }, /* 242 */
+ { "quz", { FC_REF_CONSTANT, 2, OFF(168,345), NUM(168,345) } }, /* 168 */
+ { "rm", { FC_REF_CONSTANT, 1, OFF(169,347), NUM(169,347) } }, /* 169 */
+ { "rn", { FC_REF_CONSTANT, 1, OFF(170,87), NUM(170,87) } }, /* 170 */
+ { "ro", { FC_REF_CONSTANT, 3, OFF(171,348), NUM(171,348) } }, /* 171 */
+ { "ru", { FC_REF_CONSTANT, 1, OFF(172,279), NUM(172,279) } }, /* 172 */
+ { "rw", { FC_REF_CONSTANT, 1, OFF(173,87), NUM(173,87) } }, /* 173 */
+ { "sa", { FC_REF_CONSTANT, 1, OFF(174,30), NUM(174,30) } }, /* 174 */
+ { "sah", { FC_REF_CONSTANT, 1, OFF(175,351), NUM(175,351) } }, /* 175 */
+ { "sat", { FC_REF_CONSTANT, 1, OFF(176,352), NUM(176,352) } }, /* 176 */
+ { "sc", { FC_REF_CONSTANT, 1, OFF(177,353), NUM(177,353) } }, /* 177 */
+ { "sco", { FC_REF_CONSTANT, 3, OFF(178,354), NUM(178,354) } }, /* 178 */
+ { "sd", { FC_REF_CONSTANT, 1, OFF(179,357), NUM(179,357) } }, /* 179 */
+ { "se", { FC_REF_CONSTANT, 2, OFF(180,358), NUM(180,358) } }, /* 180 */
+ { "sel", { FC_REF_CONSTANT, 1, OFF(181,279), NUM(181,279) } }, /* 181 */
+ { "sg", { FC_REF_CONSTANT, 1, OFF(182,360), NUM(182,360) } }, /* 182 */
+ { "sh", { FC_REF_CONSTANT, 3, OFF(183,361), NUM(183,361) } }, /* 183 */
+ { "shs", { FC_REF_CONSTANT, 2, OFF(184,364), NUM(184,364) } }, /* 184 */
+ { "si", { FC_REF_CONSTANT, 1, OFF(185,366), NUM(185,366) } }, /* 185 */
+ { "sid", { FC_REF_CONSTANT, 2, OFF(186,367), NUM(186,367) } }, /* 186 */
+ { "sk", { FC_REF_CONSTANT, 2, OFF(187,369), NUM(187,369) } }, /* 187 */
+ { "sl", { FC_REF_CONSTANT, 2, OFF(188,42), NUM(188,42) } }, /* 188 */
+ { "sm", { FC_REF_CONSTANT, 2, OFF(189,371), NUM(189,371) } }, /* 189 */
+ { "sma", { FC_REF_CONSTANT, 1, OFF(190,373), NUM(190,373) } }, /* 190 */
+ { "smj", { FC_REF_CONSTANT, 1, OFF(191,374), NUM(191,374) } }, /* 191 */
+ { "smn", { FC_REF_CONSTANT, 2, OFF(192,375), NUM(192,375) } }, /* 192 */
+ { "sms", { FC_REF_CONSTANT, 3, OFF(193,377), NUM(193,377) } }, /* 193 */
+ { "sn", { FC_REF_CONSTANT, 1, OFF(194,87), NUM(194,87) } }, /* 194 */
+ { "so", { FC_REF_CONSTANT, 1, OFF(195,87), NUM(195,87) } }, /* 195 */
+ { "sq", { FC_REF_CONSTANT, 1, OFF(196,380), NUM(196,380) } }, /* 196 */
+ { "sr", { FC_REF_CONSTANT, 1, OFF(197,381), NUM(197,381) } }, /* 197 */
+ { "ss", { FC_REF_CONSTANT, 1, OFF(198,87), NUM(198,87) } }, /* 198 */
+ { "st", { FC_REF_CONSTANT, 1, OFF(199,87), NUM(199,87) } }, /* 199 */
+ { "su", { FC_REF_CONSTANT, 1, OFF(200,118), NUM(200,118) } }, /* 200 */
+ { "sv", { FC_REF_CONSTANT, 1, OFF(201,382), NUM(201,382) } }, /* 201 */
+ { "sw", { FC_REF_CONSTANT, 1, OFF(202,87), NUM(202,87) } }, /* 202 */
+ { "syr", { FC_REF_CONSTANT, 1, OFF(203,383), NUM(203,383) } }, /* 203 */
+ { "ta", { FC_REF_CONSTANT, 1, OFF(204,384), NUM(204,384) } }, /* 204 */
+ { "te", { FC_REF_CONSTANT, 1, OFF(205,385), NUM(205,385) } }, /* 205 */
+ { "tg", { FC_REF_CONSTANT, 1, OFF(206,386), NUM(206,386) } }, /* 206 */
+ { "th", { FC_REF_CONSTANT, 1, OFF(207,387), NUM(207,387) } }, /* 207 */
+ { "ti-er", { FC_REF_CONSTANT, 2, OFF(208,45), NUM(208,45) } }, /* 208 */
+ { "ti-et", { FC_REF_CONSTANT, 2, OFF(209,367), NUM(209,367) } }, /* 209 */
+ { "tig", { FC_REF_CONSTANT, 2, OFF(210,388), NUM(210,388) } }, /* 210 */
+ { "tk", { FC_REF_CONSTANT, 2, OFF(211,390), NUM(211,390) } }, /* 211 */
+ { "tl", { FC_REF_CONSTANT, 1, OFF(212,86), NUM(212,86) } }, /* 212 */
+ { "tn", { FC_REF_CONSTANT, 2, OFF(213,326), NUM(213,326) } }, /* 213 */
+ { "to", { FC_REF_CONSTANT, 2, OFF(214,371), NUM(214,371) } }, /* 214 */
+ { "tr", { FC_REF_CONSTANT, 2, OFF(215,392), NUM(215,392) } }, /* 215 */
+ { "ts", { FC_REF_CONSTANT, 1, OFF(216,87), NUM(216,87) } }, /* 216 */
+ { "tt", { FC_REF_CONSTANT, 1, OFF(217,394), NUM(217,394) } }, /* 217 */
+ { "tw", { FC_REF_CONSTANT, 5, OFF(218,4), NUM(218,4) } }, /* 218 */
+ { "ty", { FC_REF_CONSTANT, 3, OFF(219,395), NUM(219,395) } }, /* 219 */
+ { "tyv", { FC_REF_CONSTANT, 1, OFF(220,284), NUM(220,284) } }, /* 220 */
+ { "ug", { FC_REF_CONSTANT, 1, OFF(221,398), NUM(221,398) } }, /* 221 */
+ { "uk", { FC_REF_CONSTANT, 1, OFF(222,399), NUM(222,399) } }, /* 222 */
+ { "ur", { FC_REF_CONSTANT, 1, OFF(223,287), NUM(223,287) } }, /* 223 */
+ { "uz", { FC_REF_CONSTANT, 1, OFF(224,87), NUM(224,87) } }, /* 224 */
+ { "ve", { FC_REF_CONSTANT, 2, OFF(225,400), NUM(225,400) } }, /* 225 */
+ { "vi", { FC_REF_CONSTANT, 4, OFF(226,402), NUM(226,402) } }, /* 226 */
+ { "vo", { FC_REF_CONSTANT, 1, OFF(227,406), NUM(227,406) } }, /* 227 */
+ { "vot", { FC_REF_CONSTANT, 2, OFF(228,407), NUM(228,407) } }, /* 228 */
+ { "wa", { FC_REF_CONSTANT, 1, OFF(229,409), NUM(229,409) } }, /* 229 */
+ { "wal", { FC_REF_CONSTANT, 2, OFF(230,367), NUM(230,367) } }, /* 230 */
+ { "wen", { FC_REF_CONSTANT, 2, OFF(231,410), NUM(231,410) } }, /* 231 */
+ { "wo", { FC_REF_CONSTANT, 2, OFF(232,412), NUM(232,412) } }, /* 232 */
+ { "xh", { FC_REF_CONSTANT, 1, OFF(233,87), NUM(233,87) } }, /* 233 */
+ { "yap", { FC_REF_CONSTANT, 1, OFF(234,414), NUM(234,414) } }, /* 234 */
+ { "yi", { FC_REF_CONSTANT, 1, OFF(235,108), NUM(235,108) } }, /* 235 */
+ { "yo", { FC_REF_CONSTANT, 4, OFF(236,415), NUM(236,415) } }, /* 236 */
+ { "za", { FC_REF_CONSTANT, 1, OFF(237,87), NUM(237,87) } }, /* 237 */
+ { "zh-cn", { FC_REF_CONSTANT, 82, OFF(238,419), NUM(238,419) } }, /* 238 */
+ { "zh-hk", { FC_REF_CONSTANT, 171, OFF(239,501), NUM(239,501) } }, /* 239 */
+ { "zh-mo", { FC_REF_CONSTANT, 171, OFF(240,501), NUM(240,501) } }, /* 240 */
+ { "zh-sg", { FC_REF_CONSTANT, 82, OFF(241,419), NUM(241,419) } }, /* 241 */
+ { "zh-tw", { FC_REF_CONSTANT, 83, OFF(242,672), NUM(242,672) } }, /* 242 */
+ { "zu", { FC_REF_CONSTANT, 1, OFF(243,87), NUM(243,87) } }, /* 243 */
},
{
{ { /* 0 */
0x00000000, 0x00000000, 0x00000000, 0x00000000,
} },
{ { /* 117 */
- 0x000000e7, 0x00000000, 0xfffffffe, 0xffffffff,
+ 0x000000a7, 0x00000000, 0xfffffffe, 0xffffffff,
0x780fffff, 0xfffffffe, 0xffffffff, 0x787fffff,
} },
{ { /* 118 */
- 0x43f36f8b, 0x9b462442, 0xe3e0e82c, 0x400a0004,
- 0xdb365f65, 0x04497977, 0xe3f0ecd7, 0x08c56038,
+ 0x03506f8b, 0x1b042042, 0x62808020, 0x400a0000,
+ 0x10341b41, 0x04003812, 0x03608c02, 0x08454038,
} },
{ { /* 119 */
- 0x3403e602, 0x35518000, 0x7eabe0c8, 0x98698200,
- 0x2942a948, 0x8060e803, 0xad93441c, 0x4568c03a,
+ 0x2403c002, 0x15108000, 0x1229e040, 0x80280000,
+ 0x28002800, 0x8060c002, 0x2080040c, 0x05284002,
} },
{ { /* 120 */
- 0x8656aa60, 0x02403f7a, 0x14618388, 0x21741020,
- 0x07022021, 0x40bc3000, 0x4462a624, 0x0a2060a8,
+ 0x82042a00, 0x02000818, 0x10008200, 0x20700020,
+ 0x03022000, 0x40a41000, 0x0420a020, 0x00000080,
} },
{ { /* 121 */
- 0x85740217, 0x9c840402, 0x14157bfb, 0x11e27f24,
- 0x02efb665, 0x20ff1f75, 0x28403a70, 0x676326c3,
+ 0x80040011, 0x00000400, 0x04012b78, 0x11a23920,
+ 0x02842460, 0x00c01021, 0x20002050, 0x07400042,
} },
{ { /* 122 */
- 0x20924dd9, 0x0fc946b0, 0x4850bc98, 0xa03f8638,
- 0x88162388, 0x52323e09, 0xe3a422aa, 0xc72c00dd,
+ 0x208205c9, 0x0fc10230, 0x08402480, 0x00258018,
+ 0x88000080, 0x42120609, 0xa32002a8, 0x40040094,
} },
{ { /* 123 */
- 0x26e1a166, 0x8f0a840b, 0x559e27eb, 0x89bbc241,
- 0x85400014, 0x08496361, 0x8ad07f0c, 0x05cfff3e,
+ 0x00c00024, 0x8e000001, 0x059e058a, 0x013b0001,
+ 0x85000010, 0x08080000, 0x02d07d04, 0x018d9838,
} },
{ { /* 124 */
- 0xa803ff1a, 0x7b407a41, 0x80024745, 0x38eb0500,
- 0x0005d851, 0x710c9934, 0x01000397, 0x24046366,
+ 0x8803f310, 0x03000840, 0x00000704, 0x30080500,
+ 0x00001000, 0x20040000, 0x00000003, 0x04040002,
} },
{ { /* 125 */
- 0x005180d0, 0x430ac000, 0x30c89071, 0x58000008,
- 0xf7000e99, 0x00415f80, 0x941000b0, 0x62800018,
+ 0x000100d0, 0x40028000, 0x00088040, 0x00000000,
+ 0x34000210, 0x00400e00, 0x00000020, 0x00000008,
} },
{ { /* 126 */
- 0x09d00240, 0x01568200, 0x08015004, 0x05101d10,
- 0x001084c1, 0x10504025, 0x4d8a410f, 0xa60d4009,
+ 0x00000040, 0x00060000, 0x00000000, 0x00100100,
+ 0x00000080, 0x00000000, 0x4c000000, 0x240d0009,
} },
{ { /* 127 */
- 0x914cab19, 0x098121c0, 0x0003c485, 0x80000652,
- 0x00080b04, 0x0009041d, 0x905c4849, 0x16900009,
+ 0x80048000, 0x00010180, 0x00020484, 0x00000400,
+ 0x00000804, 0x00000008, 0x80004800, 0x16800000,
} },
{ { /* 128 */
- 0x22200c65, 0x24338412, 0x47960c03, 0x42250a04,
- 0x90880028, 0x4f084900, 0xd3aa14a2, 0x3e87d830,
+ 0x00200065, 0x00120410, 0x44920403, 0x40000200,
+ 0x10880008, 0x40080100, 0x00001482, 0x00074800,
} },
{ { /* 129 */
- 0x1f618604, 0x41867ea4, 0x05b3c390, 0x211857a5,
- 0x2a48241e, 0x4a041128, 0x161b0a40, 0x88400d60,
+ 0x14608200, 0x00024e84, 0x00128380, 0x20184520,
+ 0x0240041c, 0x0a001120, 0x00180a00, 0x88000800,
} },
{ { /* 130 */
- 0x9502020a, 0x10608221, 0x04000243, 0x80001444,
- 0x0c040000, 0x70000000, 0x00c11a06, 0x0c00024a,
+ 0x01000002, 0x00008001, 0x04000040, 0x80000040,
+ 0x08040000, 0x00000000, 0x00001202, 0x00000002,
} },
{ { /* 131 */
- 0x00401a00, 0x40451404, 0xbdb30029, 0x052b0a78,
- 0xbfa0bba9, 0x8379407c, 0xe81d12fc, 0xc5694bf6,
+ 0x00000000, 0x00000004, 0x21910000, 0x00000858,
+ 0xbf8013a0, 0x8279401c, 0xa8041054, 0xc5004282,
} },
{ { /* 132 */
- 0x044aeff6, 0xff022115, 0x402bed63, 0x0242d033,
- 0x00131000, 0x59ca1b02, 0x020000a0, 0x2c41a703,
+ 0x0402ce56, 0xfc020000, 0x40200d21, 0x00028030,
+ 0x00010000, 0x01081202, 0x00000000, 0x00410003,
} },
{ { /* 133 */
- 0x8ff24880, 0x00000204, 0x10055800, 0x00489200,
- 0x20011894, 0x34805004, 0x684c3200, 0x68be49ea,
+ 0x00404080, 0x00000200, 0x00010000, 0x00000000,
+ 0x00000000, 0x00000000, 0x60000000, 0x480241ea,
} },
{ { /* 134 */
- 0x2e42184c, 0x21c9a820, 0x80b050b9, 0xff7c001e,
- 0x14e0849a, 0x01e028c1, 0xac49870e, 0xdddb130f,
+ 0x2000104c, 0x2109a820, 0x00200020, 0x7b1c0008,
+ 0x10a0840a, 0x01c028c0, 0x00000608, 0x04c00000,
} },
{ { /* 135 */
- 0x89fbbe1a, 0x51a2a2e0, 0x32ca5502, 0x928b3e46,
- 0x438f1dbf, 0x32186703, 0x33c03028, 0xa9230811,
+ 0x80398412, 0x40a200e0, 0x02080000, 0x12030a04,
+ 0x008d1833, 0x02184602, 0x13803028, 0x00200801,
} },
{ { /* 136 */
- 0x3a65c000, 0x04028fe3, 0x86252c4e, 0x00a1bf3d,
- 0x8cd43a1a, 0x317c06c9, 0x950a00e0, 0x0edb018b,
+ 0x20440000, 0x000005a1, 0x00050800, 0x0020a328,
+ 0x80100000, 0x10040649, 0x10020020, 0x00090180,
} },
{ { /* 137 */
- 0x8c20e34b, 0xf0101182, 0xa7287d94, 0x40fbc9ac,
- 0x06534484, 0x44445a90, 0x00013fc8, 0xf5d40048,
+ 0x8c008202, 0x00000000, 0x00205910, 0x0041410c,
+ 0x00004004, 0x40441290, 0x00010080, 0x01040000,
} },
{ { /* 138 */
- 0xec577701, 0x891dc442, 0x49286b83, 0xd2424109,
- 0x59fe061d, 0x3a221800, 0x3b9fb7e4, 0xc0eaf003,
+ 0x04070000, 0x89108040, 0x00282a81, 0x82420000,
+ 0x51a20411, 0x32220800, 0x2b0d2220, 0x40c83003,
} },
{ { /* 139 */
- 0x82021386, 0xe4008980, 0x10a1b200, 0x0cc44b80,
- 0x8944d309, 0x48341faf, 0x0c458259, 0x0450420a,
+ 0x82020082, 0x80008900, 0x10a00200, 0x08004100,
+ 0x09041108, 0x000405a6, 0x0c018000, 0x04104002,
} },
{ { /* 140 */
- 0x10c8a040, 0x44503140, 0x01004004, 0x05408280,
- 0x442c0108, 0x1a056a30, 0x051420a6, 0x645690cf,
+ 0x00002000, 0x44003000, 0x01000004, 0x00008200,
+ 0x00000008, 0x00044010, 0x00002002, 0x00001040,
} },
{ { /* 141 */
- 0x31000021, 0xcbf09c18, 0x63e2a120, 0x01b5104c,
- 0x9a83538c, 0x3281b8b2, 0x0a84987a, 0x0c0233e7,
+ 0x00000000, 0xca008000, 0x02828020, 0x00b1100c,
+ 0x12824280, 0x22013030, 0x00808820, 0x040013e4,
} },
{ { /* 142 */
- 0x9018d4cc, 0x9070a1a1, 0xe0048a1e, 0x0451c3d4,
- 0x21c2439a, 0x53104844, 0x36400292, 0xf3bd0241,
+ 0x801840c0, 0x1000a1a1, 0x00000004, 0x0050c200,
+ 0x00c20082, 0x00104840, 0x10400080, 0xa3140000,
} },
{ { /* 143 */
- 0xe8f0ab09, 0xa5d27dc0, 0xd24bc242, 0xd0afa43f,
- 0x34a11aa0, 0x03d88247, 0x651bc452, 0xc83ad294,
+ 0xa8a02301, 0x24123d00, 0x80030200, 0xc0028022,
+ 0x34a10000, 0x00408005, 0x00190010, 0x882a0000,
} },
{ { /* 144 */
- 0x40c8001c, 0x33140e06, 0xb21b614f, 0xc0d00088,
- 0xa898a02a, 0x166ba1c5, 0x85b42e50, 0x0604c08b,
+ 0x00080018, 0x33000402, 0x9002010a, 0x00000000,
+ 0x00800020, 0x00010100, 0x84040810, 0x04004000,
} },
{ { /* 145 */
- 0x1e04f933, 0xa251056e, 0x76380400, 0x73b8ec07,
- 0x18324406, 0xc8164081, 0x63097c8a, 0xaa042980,
+ 0x10006020, 0x00000000, 0x00000000, 0x30a02000,
+ 0x00000004, 0x00000000, 0x01000800, 0x20000000,
} },
{ { /* 146 */
- 0xca9c1c24, 0x27604e0e, 0x83000990, 0x81040046,
- 0x10816011, 0x0908540d, 0xcc0a000e, 0x0c000500,
+ 0x02000000, 0x02000602, 0x80000800, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
} },
{ { /* 147 */
- 0xa0440430, 0x6784008b, 0x8a195288, 0x8b18865e,
- 0x41602e59, 0x9cbe8c10, 0x891c6861, 0x00089800,
+ 0x00000010, 0x44040083, 0x00081000, 0x0818824c,
+ 0x00400e00, 0x8c300000, 0x08146001, 0x00000000,
} },
{ { /* 148 */
- 0x089a8100, 0x41900018, 0xe4a14007, 0x640d0505,
- 0x0e4d310e, 0xff0a4806, 0x2aa81632, 0x000b852e,
+ 0x00828000, 0x41900000, 0x84804006, 0x24010001,
+ 0x02400108, 0x9b080006, 0x00201602, 0x0009012e,
} },
{ { /* 149 */
- 0xca841800, 0x696c0e20, 0x16000032, 0x03905658,
- 0x1a285120, 0x11248000, 0x432618e1, 0x0eaa5d52,
+ 0x40800800, 0x48000420, 0x10000032, 0x01904440,
+ 0x02000100, 0x10048000, 0x00020000, 0x08820802,
} },
{ { /* 150 */
- 0xae280fa0, 0x4500fa7b, 0x89406408, 0xc044c880,
- 0xb1419005, 0x24c48424, 0x603a1a34, 0xc1949000,
+ 0x08080ba0, 0x00009242, 0x00400000, 0xc0008080,
+ 0x20410001, 0x04400000, 0x60020820, 0x00100000,
} },
{ { /* 151 */
- 0x003a8246, 0xc106180d, 0x99100022, 0x1511e050,
- 0x00824057, 0x020a041a, 0x8930004f, 0x444ad813,
+ 0x00108046, 0x01001805, 0x90100000, 0x00014010,
+ 0x00000010, 0x00000000, 0x0000000b, 0x00008800,
} },
{ { /* 152 */
- 0xed228a02, 0x400510c0, 0x01021000, 0x31018808,
- 0x02044600, 0x0708f000, 0xa2008900, 0x22020000,
+ 0x00000000, 0x00001000, 0x00000000, 0x20018800,
+ 0x00004600, 0x06002000, 0x00000100, 0x00000000,
} },
{ { /* 153 */
- 0x16100200, 0x10400042, 0x02605200, 0x200052f4,
- 0x80308510, 0x42021100, 0x80b54308, 0x9a2070e1,
+ 0x00000000, 0x10400042, 0x02004000, 0x00004280,
+ 0x80000400, 0x00020000, 0x00000008, 0x00000020,
} },
{ { /* 154 */
- 0x08012040, 0xfc653500, 0xab0419c1, 0x62140286,
- 0x00440087, 0x02449085, 0x0a85405c, 0x33803207,
+ 0x00000040, 0x20600400, 0x0a000180, 0x02040280,
+ 0x00000000, 0x00409001, 0x02000004, 0x00003200,
} },
{ { /* 155 */
- 0xb8c00400, 0xc0d0ce20, 0x0080c030, 0x0d250508,
- 0x00400a90, 0x080c0200, 0x40006505, 0x41026421,
+ 0x88000000, 0x80404800, 0x00000010, 0x00040008,
+ 0x00000a90, 0x00000200, 0x00002000, 0x40002001,
} },
{ { /* 156 */
- 0x00000268, 0x847c0024, 0xde200002, 0x40498619,
- 0x40000808, 0x20010084, 0x10108400, 0x01c742cd,
+ 0x00000048, 0x00100000, 0x00000000, 0x00000001,
+ 0x00000008, 0x20010080, 0x00000000, 0x00400040,
} },
{ { /* 157 */
- 0xd52a7038, 0x1d8f1968, 0x3e12be50, 0x81d92ef5,
- 0x2412cec4, 0x732e0828, 0x4b3424ac, 0xd41d020c,
+ 0x85000000, 0x0c8f0108, 0x32129000, 0x80090420,
+ 0x00024000, 0x40040800, 0x092000a0, 0x00100204,
} },
{ { /* 158 */
- 0x80002a02, 0x08110097, 0x114411c4, 0x7d451786,
- 0x064949d9, 0x87914000, 0xd8c4254c, 0x491444ba,
+ 0x00002000, 0x00000000, 0x00440004, 0x6c000000,
+ 0x000000d0, 0x80004000, 0x88800440, 0x41144018,
} },
{ { /* 159 */
- 0xc8001b92, 0x15800271, 0x0c000081, 0xc200096a,
- 0x40024800, 0xba493021, 0x1c802080, 0x1008e2ac,
+ 0x80001a02, 0x14000001, 0x00000001, 0x0000004a,
+ 0x00000000, 0x00083000, 0x08000000, 0x0008a024,
} },
{ { /* 160 */
- 0x00341004, 0x841400e1, 0x20000020, 0x10149800,
- 0x04aa70c2, 0x54208688, 0x04130c62, 0x20109180,
+ 0x00300004, 0x00140000, 0x20000000, 0x00001800,
+ 0x00020002, 0x04000000, 0x00000002, 0x00000100,
} },
{ { /* 161 */
- 0x02064082, 0x54001c40, 0xe4e90383, 0x84802125,
- 0x2000e433, 0xe60944c0, 0x81260a03, 0x080112da,
+ 0x00004002, 0x54000000, 0x60400300, 0x00002120,
+ 0x0000a022, 0x00000000, 0x81060803, 0x08010200,
} },
{ { /* 162 */
- 0x97906901, 0xf8864001, 0x0081e24d, 0xa6510a0e,
- 0x81ec011a, 0x8441c600, 0xb62cadb8, 0x8741a46f,
+ 0x04004800, 0xb0044000, 0x0000a005, 0x04500800,
+ 0x800c000a, 0x0000c000, 0x10000800, 0x02408021,
} },
{ { /* 163 */
- 0x4b028d54, 0x02681161, 0x2057bb60, 0x043350a0,
- 0xb7b4a8c0, 0x01122402, 0x20009ad3, 0x00c82271,
+ 0x08020000, 0x00001040, 0x00540a40, 0x00000000,
+ 0x00800880, 0x01020002, 0x00000211, 0x00000010,
} },
{ { /* 164 */
- 0x809e2081, 0xe1800c8a, 0x8151b009, 0x40281031,
- 0x89a52a0e, 0x620e69b6, 0xd1444425, 0x4d548085,
+ 0x00000000, 0x80000002, 0x00002000, 0x00080001,
+ 0x09840a00, 0x40000080, 0x00400000, 0x49000080,
} },
{ { /* 165 */
- 0x1fb12c75, 0x862dd807, 0x4841d87c, 0x226e414e,
- 0x9e088200, 0xed37f80c, 0x75268c80, 0x08149313,
+ 0x0e102831, 0x06098807, 0x40011014, 0x02620042,
+ 0x06000000, 0x88062000, 0x04068400, 0x08108301,
} },
{ { /* 166 */
- 0xc8040e32, 0x6ea6484e, 0x66702c4a, 0xba0126c0,
- 0x185dd30c, 0x00000000, 0x00000000, 0x00000000,
+ 0x08000012, 0x40004840, 0x00300402, 0x00012000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
} },
{ { /* 167 */
- 0x00000000, 0x05400000, 0x81337020, 0x03a54f81,
- 0x641055ec, 0x2344c318, 0x00341462, 0x1a090a43,
+ 0x00000000, 0x00400000, 0x00000000, 0x00a54400,
+ 0x40004420, 0x20000310, 0x00041002, 0x18000000,
} },
{ { /* 168 */
- 0x13a5187b, 0xa8480102, 0xc5440440, 0xe2dd8106,
- 0x2d481af0, 0x0416b626, 0x6e405058, 0x31128032,
+ 0x00a1002a, 0x00080000, 0x40400000, 0x00900000,
+ 0x21401200, 0x04048626, 0x40005048, 0x21100000,
} },
{ { /* 169 */
- 0x0c0007e4, 0x420a8208, 0x803b4840, 0x87134860,
- 0x3428850d, 0xe5290319, 0x870a2345, 0x5c1825a9,
+ 0x040005a4, 0x000a0000, 0x00214000, 0x07010800,
+ 0x34000000, 0x00080100, 0x00080040, 0x10182508,
} },
{ { /* 170 */
- 0xd9c577a6, 0x03e85e00, 0xa7000081, 0x41c6cd54,
- 0xa2042800, 0x2b0ab860, 0xda9e0020, 0x0e1a08ea,
+ 0xc0805100, 0x02c01400, 0x00000080, 0x00448040,
+ 0x20000800, 0x210a8000, 0x08800000, 0x00020060,
} },
{ { /* 171 */
- 0x11c0427c, 0x03768908, 0x01058621, 0x18a80000,
- 0xc44846a0, 0x20220d05, 0x91485422, 0x28978a01,
+ 0x00004004, 0x00400100, 0x01040200, 0x00800000,
+ 0x00000000, 0x00000000, 0x10081400, 0x00008000,
} },
{ { /* 172 */
- 0x00087898, 0x31221605, 0x08804240, 0x06a2fa4e,
- 0x92110814, 0x9b042002, 0x06432e52, 0x90105000,
+ 0x00004000, 0x20000000, 0x08800200, 0x00001000,
+ 0x00000000, 0x01000000, 0x00000810, 0x00000000,
} },
{ { /* 173 */
- 0x85ba0041, 0x20203042, 0x05a04f0b, 0x40802708,
- 0x1a930591, 0x0600df50, 0x3021a202, 0x4e800630,
+ 0x00020000, 0x20200000, 0x00000000, 0x00000000,
+ 0x00000010, 0x00001c40, 0x00002000, 0x08000210,
} },
{ { /* 174 */
- 0x04c80cc4, 0x8001a004, 0xd4316000, 0x0a020880,
- 0x00281c00, 0x00418e18, 0xca106ad0, 0x4b00f210,
+ 0x00000000, 0x00000000, 0x54014000, 0x02000800,
+ 0x00200400, 0x00000000, 0x00002080, 0x00004000,
} },
{ { /* 175 */
- 0x1506274d, 0x88900220, 0x82a85a00, 0x81504549,
- 0x80002004, 0x2c088804, 0x000508d1, 0x4ac48001,
+ 0x10000004, 0x00000000, 0x00000000, 0x00000000,
+ 0x00002000, 0x00000000, 0x00000000, 0x00000000,
} },
{ { /* 176 */
- 0x0062e020, 0x0a42008e, 0x6a8c3055, 0xe0a5090e,
- 0x42c42906, 0x80b34814, 0xb330803e, 0x731c0102,
+ 0x00000000, 0x00000000, 0x28881041, 0x0081010a,
+ 0x00400800, 0x00000800, 0x10208026, 0x61000000,
} },
{ { /* 177 */
- 0x600d1494, 0x09400c20, 0xc040301a, 0xc094a451,
- 0x05c88dca, 0xa40c96c2, 0x34040001, 0x011000c8,
+ 0x00050080, 0x00000000, 0x80000000, 0x80040000,
+ 0x044088c2, 0x00080480, 0x00040000, 0x00000048,
} },
{ { /* 178 */
- 0xa9c9550d, 0x1c5a2428, 0x48370142, 0x100f7a4d,
- 0x452a32b4, 0x9205317b, 0x5c44b894, 0x458a68d7,
+ 0x8188410d, 0x141a2400, 0x40310000, 0x000f4249,
+ 0x41283280, 0x80053011, 0x00400880, 0x410060c0,
} },
{ { /* 179 */
- 0x2ed15097, 0x42081943, 0x9d40d202, 0x20979840,
- 0x064d5409, 0x00000000, 0x00000000, 0x00000000,
+ 0x2a004013, 0x02000002, 0x11000000, 0x00850040,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
} },
{ { /* 180 */
- 0x00000000, 0x84800000, 0x04215542, 0x17001c06,
- 0x61107624, 0xb9ddff87, 0x5c0a659f, 0x3c00245d,
+ 0x00000000, 0x00800000, 0x04000440, 0x00000402,
+ 0x60001000, 0x99909f87, 0x5808049d, 0x10002445,
} },
{ { /* 181 */
- 0x0059adb0, 0x00000000, 0x00000000, 0x009b28d0,
- 0x02000422, 0x44080108, 0xac409804, 0x90288d0a,
+ 0x00000100, 0x00000000, 0x00000000, 0x00910050,
+ 0x00000420, 0x00080008, 0x20000000, 0x00288002,
} },
{ { /* 182 */
- 0xe0018700, 0x00310400, 0x82211794, 0x10540019,
- 0x021a2cb2, 0x40039c02, 0x88043d60, 0x7900080c,
+ 0x00008400, 0x00000400, 0x00000000, 0x00100000,
+ 0x00002000, 0x00000800, 0x80043400, 0x21000004,
} },
{ { /* 183 */
- 0xba3c1628, 0xcb088640, 0x90807274, 0x0000001e,
- 0xd8000000, 0x9c87e188, 0x04124034, 0x2791ae64,
+ 0x20000208, 0x01000600, 0x00000010, 0x00000000,
+ 0x48000000, 0x14060008, 0x00124020, 0x20812800,
} },
{ { /* 184 */
- 0xe6fbe86b, 0x5366408f, 0x537feea6, 0xb5e4e32b,
- 0x0002869f, 0x01228548, 0x08004402, 0x20a02116,
+ 0xa419804b, 0x01064009, 0x10386ca4, 0x85a0620b,
+ 0x00000010, 0x01000448, 0x00004400, 0x20a02102,
} },
{ { /* 185 */
- 0x02040004, 0x00052000, 0x01547e00, 0x01ac162c,
- 0x10852a84, 0x05308c14, 0xb943fbc3, 0x906000ca,
+ 0x00000000, 0x00000000, 0x00147000, 0x01a01404,
+ 0x10040000, 0x01000000, 0x3002f180, 0x00000008,
} },
{ { /* 186 */
- 0x40326000, 0x80901200, 0x4c810b30, 0x40020054,
- 0x1d6a0029, 0x02802000, 0x00048000, 0x150c2610,
+ 0x00002000, 0x00100000, 0x08000010, 0x00020004,
+ 0x01000029, 0x00002000, 0x00000000, 0x10082000,
} },
{ { /* 187 */
- 0x07018040, 0x0c24d94d, 0x18502810, 0x50205001,
- 0x04d01000, 0x02017080, 0x21c30108, 0x00000132,
+ 0x00000000, 0x0004d041, 0x08000800, 0x00200000,
+ 0x00401000, 0x00004000, 0x00000000, 0x00000002,
} },
{ { /* 188 */
- 0x07190088, 0x05600802, 0x4c0e0012, 0xf0a10405,
- 0x00000002, 0x00000000, 0x00000000, 0x00000000,
+ 0x01000000, 0x00000000, 0x00020000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
} },
{ { /* 189 */
0x00000000, 0x00000000, 0x00000000, 0x00800000,
- 0x035a8e8d, 0x5a0421bd, 0x11703488, 0x00000026,
+ 0x000a0a01, 0x0004002c, 0x01000080, 0x00000000,
} },
{ { /* 190 */
- 0x10000000, 0x8804c502, 0xf801b815, 0x25ed147c,
- 0x1bb0ed60, 0x1bd70589, 0x1a627af3, 0x0ac50d0c,
+ 0x10000000, 0x08040400, 0x08012010, 0x2569043c,
+ 0x1a10c460, 0x08800009, 0x000210f0, 0x08c5050c,
} },
{ { /* 191 */
- 0x524ae5d1, 0x63050490, 0x52440354, 0x16122b57,
- 0x1101a872, 0x00182949, 0x10080948, 0x886c6000,
+ 0x10000481, 0x00040080, 0x42040000, 0x00100204,
+ 0x00000000, 0x00000000, 0x00080000, 0x88080000,
} },
{ { /* 192 */
- 0x058f916e, 0x39903012, 0x4930f840, 0x001b8880,
- 0x00000000, 0x00428500, 0x98000058, 0x7014ea04,
+ 0x010f016c, 0x18002000, 0x41307000, 0x00000080,
+ 0x00000000, 0x00000100, 0x88000000, 0x70048004,
} },
{ { /* 193 */
- 0x611d1628, 0x60005113, 0x00a71a24, 0x00000000,
- 0x03c00000, 0x10187120, 0xa9270172, 0x89066004,
+ 0x00081420, 0x00000100, 0x00000000, 0x00000000,
+ 0x02400000, 0x00001000, 0x00050070, 0x00000000,
} },
{ { /* 194 */
- 0x020cc022, 0x40810900, 0x8ca0202d, 0x00000e34,
- 0x00000000, 0x11012100, 0xc11a8011, 0x0892ec4c,
+ 0x000c4000, 0x00010000, 0x04000000, 0x00000000,
+ 0x00000000, 0x01000100, 0x01000010, 0x00000400,
} },
{ { /* 195 */
- 0x85000040, 0x1806c7ac, 0x0512e03e, 0x00108000,
- 0x80ce4008, 0x02106d01, 0x08568641, 0x0027011e,
+ 0x00000000, 0x10020000, 0x04100024, 0x00000000,
+ 0x00000000, 0x00004000, 0x00000000, 0x00000100,
} },
{ { /* 196 */
- 0x083d3750, 0x4e05e032, 0x048401c0, 0x01400081,
- 0x00000000, 0x00000000, 0x00000000, 0x00591aa0,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00100020,
} },
{ { /* 197 */
- 0x882443c8, 0xc8001d48, 0x72030152, 0x04049013,
- 0x04008280, 0x0d148a10, 0x02088056, 0x2704a040,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00008000, 0x00100000, 0x00000000, 0x00000000,
} },
{ { /* 198 */
- 0x4c000000, 0x00000000, 0x00000000, 0xa3200000,
- 0xa0ae1902, 0xdf002660, 0x7b15f010, 0x3ad08121,
+ 0x00000000, 0x00000000, 0x00000000, 0x80000000,
+ 0x00880000, 0x0c000040, 0x02040010, 0x00000000,
} },
{ { /* 199 */
- 0x00284180, 0x48001003, 0x8014cc00, 0x00c414cf,
- 0x30202000, 0x00000001, 0x00000000, 0x00000000,
+ 0x00080000, 0x08000000, 0x00000000, 0x00000004,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
} },
{ { /* 200 */
0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
0xfffddfec, 0xc3effdff, 0x40603ddf, 0x00000003,
} },
{ { /* 209 */
- 0x00000000, 0xfffe0000, 0xffffffff, 0xffffffff,
+ 0x00000000, 0xfffe0000, 0xffffffff, 0xffffffef,
0x00007fff, 0x00000000, 0x00000000, 0x00000000,
} },
{ { /* 210 */
0x8e001ff9, 0x00000001, 0x00000000, 0x00000000,
} },
{ { /* 451 */
- 0x14000010, 0xa0c09512, 0x0c000200, 0x01000400,
- 0x050002a3, 0x98800009, 0x00004000, 0x01004c00,
+ 0x00000080, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
} },
{ { /* 452 */
- 0x04800008, 0x02840300, 0x00000824, 0x00040000,
- 0x00000400, 0x20010904, 0x00001100, 0x22050030,
+ 0x00000000, 0x00000000, 0x00001000, 0x64080010,
+ 0x00480000, 0x10000020, 0x80000102, 0x08000010,
} },
{ { /* 453 */
- 0x00000108, 0x08104000, 0x01400000, 0x00001040,
- 0x00010102, 0x10000040, 0x82012000, 0x10100002,
+ 0x00000040, 0x40000000, 0x00020000, 0x01852002,
+ 0x00800010, 0x80002022, 0x084444a2, 0x480e0000,
} },
{ { /* 454 */
- 0x00006002, 0x00000800, 0x00400000, 0x02100401,
- 0x14400144, 0x013c4980, 0x880e8288, 0x50102014,
+ 0x04000200, 0x02202008, 0x80004380, 0x04000000,
+ 0x00000002, 0x12231420, 0x2058003a, 0x00200060,
} },
{ { /* 455 */
- 0x80000824, 0x101000c1, 0x02800000, 0x02080101,
- 0x04118000, 0x02200112, 0x00031020, 0x02000003,
+ 0x10002508, 0x040d0028, 0x00000009, 0x00008004,
+ 0x00800000, 0x42000001, 0x00000000, 0x09040000,
} },
{ { /* 456 */
- 0x00000002, 0x090c1090, 0xa0004004, 0x60102290,
- 0x00080000, 0x00414f45, 0x07071026, 0x40c00001,
+ 0x02008000, 0x01402001, 0x00000000, 0x00000008,
+ 0x00000000, 0x00000001, 0x00021008, 0x04000000,
} },
{ { /* 457 */
- 0x04580000, 0x0014800a, 0x00002800, 0x00002600,
- 0x50988020, 0x02140018, 0x04013800, 0x00008008,
+ 0x00100100, 0x80040080, 0x00002000, 0x00000008,
+ 0x08040601, 0x01000012, 0x10000000, 0x49001024,
} },
{ { /* 458 */
- 0x41082004, 0x80000928, 0x20080280, 0x020e0a00,
- 0x00010040, 0x16110200, 0x41800002, 0x08231400,
+ 0x0180004a, 0x00100600, 0x50840800, 0x000000c0,
+ 0x00800000, 0x20000800, 0x40000000, 0x08050000,
} },
{ { /* 459 */
- 0x40020020, 0x0080202f, 0x2015a008, 0x1c000002,
- 0xc0040e00, 0x82028012, 0x00400000, 0x2002a004,
+ 0x02004000, 0x02000804, 0x01000004, 0x18060001,
+ 0x02400001, 0x40000002, 0x20800014, 0x000c1000,
} },
{ { /* 460 */
- 0x20200001, 0xa0040000, 0x8890004c, 0xc4000080,
- 0x10012500, 0x48100482, 0x60800110, 0x40008040,
+ 0x00222000, 0x00000000, 0x00100000, 0x00000000,
+ 0x00000000, 0x00000000, 0x10422800, 0x00000800,
} },
{ { /* 461 */
- 0x00040008, 0x04000044, 0x90000091, 0x000c1200,
- 0x06040000, 0x08610480, 0x10010800, 0x080d0001,
+ 0x20080000, 0x00040000, 0x80025040, 0x20208604,
+ 0x00028020, 0x80102020, 0x080820c0, 0x10880800,
} },
{ { /* 462 */
- 0x800204b4, 0x00140000, 0x00000000, 0x00200020,
- 0x84100200, 0x01811000, 0x02000210, 0x03018800,
+ 0x00000000, 0x00000000, 0x00200109, 0x00100000,
+ 0x00000000, 0x81022700, 0x40c21404, 0x84010882,
} },
{ { /* 463 */
- 0x04042804, 0x20001c92, 0x02100020, 0x4202490a,
- 0x02420146, 0x00000803, 0x0008c008, 0x44050010,
+ 0x00004010, 0x00000000, 0x03000000, 0x00000008,
+ 0x00080000, 0x00000000, 0x10800001, 0x06002020,
} },
{ { /* 464 */
- 0x80222000, 0x00000800, 0x00008452, 0x10502140,
- 0xe0410005, 0x00000400, 0x00a00008, 0x80080000,
+ 0x00000010, 0x02000000, 0x00880020, 0x00008424,
+ 0x00000000, 0x88000000, 0x81000100, 0x04000000,
} },
{ { /* 465 */
- 0x50180020, 0x00000009, 0x40080600, 0x00000000,
- 0x56000020, 0x04000000, 0x00020006, 0x00208220,
+ 0x00004218, 0x00040000, 0x00000000, 0x80005080,
+ 0x00010000, 0x00040000, 0x08008000, 0x02008000,
} },
{ { /* 466 */
- 0x01210000, 0x40009000, 0x08c00140, 0x08110000,
- 0x00004820, 0x02400810, 0x08800002, 0x00200000,
+ 0x00020000, 0x00000000, 0x00000001, 0x04000401,
+ 0x00100000, 0x12200004, 0x00000000, 0x18100000,
} },
{ { /* 467 */
- 0x00040a00, 0x00004000, 0x40000104, 0x84000000,
- 0x02040048, 0x20000000, 0x00012000, 0x1b100000,
+ 0x00000000, 0x00000800, 0x00000000, 0x00004000,
+ 0x00800000, 0x04000000, 0x82000002, 0x00042000,
} },
{ { /* 468 */
- 0x00007000, 0x04000020, 0x10032000, 0x0804000a,
- 0x00000008, 0x04020090, 0x88000014, 0x00000000,
+ 0x00080006, 0x00000000, 0x00000000, 0x04000000,
+ 0x80008000, 0x00810001, 0xa0000000, 0x00100410,
} },
{ { /* 469 */
- 0x00000000, 0x08020008, 0x00040400, 0x40a00000,
- 0x40000000, 0x00080090, 0x40800000, 0x20000388,
+ 0x00400218, 0x88084080, 0x00260008, 0x00800404,
+ 0x00000020, 0x00000000, 0x00000000, 0x00000200,
} },
{ { /* 470 */
- 0x02001080, 0x20010004, 0x12010004, 0x20008011,
- 0x13200082, 0x02800000, 0x04098001, 0x00000004,
+ 0x00a08048, 0x00000000, 0x08000000, 0x04000000,
+ 0x00000000, 0x00000000, 0x00018000, 0x00200000,
} },
{ { /* 471 */
- 0x00000000, 0x02801000, 0x00001000, 0x00000100,
- 0x20010024, 0x00000050, 0x80200028, 0x00000020,
+ 0x01000000, 0x00000000, 0x00000000, 0x10000000,
+ 0x00000000, 0x00000000, 0x00200000, 0x00102000,
} },
{ { /* 472 */
- 0x01000000, 0x00a24000, 0x00000000, 0x82001010,
- 0x00000800, 0x02000000, 0x40020002, 0x59000044,
+ 0x00000801, 0x00000000, 0x00000000, 0x00020000,
+ 0x08000000, 0x00002000, 0x20010000, 0x04002000,
} },
{ { /* 473 */
- 0x00000080, 0x0d040000, 0x04000000, 0x10020000,
- 0x00022000, 0x00508000, 0x20080001, 0x000004a2,
+ 0x40000040, 0x50202400, 0x000a0020, 0x00040420,
+ 0x00000200, 0x00000080, 0x80000000, 0x00000020,
} },
{ { /* 474 */
- 0xc0020400, 0x00310000, 0x80002000, 0x00002800,
- 0x00000b60, 0x40200000, 0x00120000, 0x80000009,
+ 0x20008000, 0x00200010, 0x00000000, 0x00000000,
+ 0x00400000, 0x01100000, 0x00020000, 0x80000010,
} },
{ { /* 475 */
- 0x41000000, 0x00010008, 0x00880910, 0x20080888,
- 0x04044020, 0x80482010, 0x00006000, 0x00020000,
+ 0x02000000, 0x00801000, 0x00000000, 0x48058000,
+ 0x20c94000, 0x60000000, 0x00000001, 0x00000000,
} },
{ { /* 476 */
- 0x42405004, 0x00400020, 0x00000010, 0x00000886,
- 0x00008000, 0x80021011, 0x00c00000, 0x42000000,
+ 0x00004090, 0x48000000, 0x08000000, 0x28802000,
+ 0x00000002, 0x00014000, 0x00002000, 0x00002002,
} },
{ { /* 477 */
- 0x4801201f, 0x40c00004, 0x20600480, 0x00000020,
- 0x01000110, 0x22400040, 0x00000428, 0x00000000,
+ 0x00010200, 0x00100000, 0x00000000, 0x00800000,
+ 0x10020000, 0x00000000, 0x00000000, 0x00000000,
} },
{ { /* 478 */
- 0x0f00020f, 0x40401000, 0x00200048, 0x000c0092,
- 0x81000421, 0x00040004, 0x00620001, 0x06000202,
+ 0x00000010, 0x00000402, 0x0c000000, 0x01000400,
+ 0x01000021, 0x00000000, 0x00004000, 0x00004000,
} },
{ { /* 479 */
- 0x14001808, 0x00083800, 0x008c1028, 0x04120028,
- 0x22008404, 0x40260880, 0x01100700, 0x00400000,
+ 0x00000000, 0x00800000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x02000020,
} },
{ { /* 480 */
- 0x20000020, 0x00200000, 0x00840000, 0x04108000,
- 0x00000002, 0x00000000, 0x10000002, 0x04000402,
+ 0x00000100, 0x08000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00002000, 0x00000000,
} },
{ { /* 481 */
- 0x10000000, 0x26a20000, 0x05000200, 0x82204000,
- 0x80000000, 0x00048404, 0x80004800, 0x80000400,
+ 0x00006000, 0x00000000, 0x00000000, 0x00000400,
+ 0x04000040, 0x003c0180, 0x00000200, 0x00102000,
} },
{ { /* 482 */
- 0x00000064, 0x00000050, 0x18804000, 0x00060000,
- 0x00408002, 0x02020030, 0x00000000, 0x40000000,
+ 0x00000800, 0x101000c0, 0x00800000, 0x00000000,
+ 0x00008000, 0x02200000, 0x00020020, 0x00000000,
} },
{ { /* 483 */
- 0x01208414, 0x00000600, 0x02018000, 0x10400000,
- 0x04000840, 0x09200000, 0x2e000000, 0x04000304,
+ 0x00000000, 0x01000000, 0x00000000, 0x20100000,
+ 0x00080000, 0x00000141, 0x02001002, 0x40400001,
} },
{ { /* 484 */
- 0x00c01810, 0x20100010, 0x10400010, 0x02100000,
- 0xa0000402, 0x48200000, 0x06080000, 0x01400000,
+ 0x00580000, 0x00000002, 0x00003000, 0x00002400,
+ 0x00988000, 0x00040010, 0x00002800, 0x00000008,
} },
{ { /* 485 */
- 0x40000008, 0x00001000, 0x10112800, 0xc2a09080,
- 0x00008a02, 0x3a0000e9, 0x80611011, 0x40220000,
+ 0x40080004, 0x00000020, 0x20080000, 0x02060a00,
+ 0x00010040, 0x14010200, 0x40800000, 0x08031000,
} },
{ { /* 486 */
- 0x20000020, 0x48381a00, 0x00028421, 0x54ea0800,
- 0x01425100, 0x0490200c, 0x20020000, 0x00600800,
+ 0x40020020, 0x0000202c, 0x2014a008, 0x00000000,
+ 0x80040200, 0x82020012, 0x00400000, 0x20000000,
} },
{ { /* 487 */
- 0x00e0c201, 0x00004810, 0x10a10001, 0x00000040,
- 0x80108084, 0x00042000, 0x00002000, 0x00000004,
+ 0x00000000, 0x00000000, 0x00000004, 0x04000000,
+ 0x00000000, 0x00000000, 0x40800100, 0x00000000,
} },
{ { /* 488 */
- 0x00010014, 0x03005d00, 0x00008102, 0x00120000,
- 0x51009000, 0x04000480, 0x0021c200, 0x0a888056,
+ 0x00000008, 0x04000040, 0x00000001, 0x000c0200,
+ 0x00000000, 0x08000400, 0x00000000, 0x080c0001,
} },
{ { /* 489 */
- 0xd2b60004, 0x13800000, 0x204803a8, 0x04501921,
- 0x0a003004, 0x02100010, 0x00091100, 0x01070080,
+ 0x00000400, 0x00000000, 0x00000000, 0x00200000,
+ 0x80000000, 0x00001000, 0x00000200, 0x01000800,
} },
{ { /* 490 */
- 0x42004020, 0x08300000, 0x002a2444, 0x04046081,
- 0x40046008, 0x00120000, 0x10000108, 0x00000000,
+ 0x00000000, 0x00000800, 0x00000000, 0x40000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x04040000,
} },
{ { /* 491 */
- 0x00000084, 0x08001000, 0x0012e001, 0x045880c0,
- 0x00010000, 0x00800022, 0x02401000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000040, 0x00002000,
+ 0xa0000000, 0x00000000, 0x08000008, 0x00080000,
} },
{ { /* 492 */
- 0x4000d000, 0x00000850, 0x01000009, 0x0d840000,
- 0x01080000, 0x42008000, 0x20000828, 0x40100040,
+ 0x00000020, 0x00000000, 0x40000400, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00008000,
} },
{ { /* 493 */
- 0x51000100, 0x32000000, 0x001a0894, 0x04000040,
- 0x00002102, 0x03428000, 0x018c0080, 0x00234010,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000800, 0x00000000, 0x00000000, 0x00200000,
} },
{ { /* 494 */
- 0x00000040, 0x185c4000, 0x03000000, 0x40020004,
- 0xa20200c9, 0x00000220, 0x00101050, 0x00120004,
+ 0x00000000, 0x00000000, 0x00000000, 0x04000000,
+ 0x00000008, 0x00000000, 0x00010000, 0x1b000000,
} },
{ { /* 495 */
- 0x00000040, 0x44002400, 0x00000228, 0x20000020,
- 0x000a0008, 0x18010000, 0x3c08830c, 0x40000684,
+ 0x00007000, 0x00000000, 0x10000000, 0x00000000,
+ 0x00000000, 0x00000080, 0x80000000, 0x00000000,
} },
{ { /* 496 */
- 0x80101800, 0x02000280, 0x0020000c, 0x08009004,
- 0x00040000, 0x0004000c, 0x00018000, 0x14001000,
+ 0x00000000, 0x00020000, 0x00000000, 0x00200000,
+ 0x40000000, 0x00000010, 0x00800000, 0x00000008,
} },
{ { /* 497 */
- 0x08240000, 0x00200000, 0x20420014, 0x58112000,
- 0x10004048, 0x010050c0, 0x0408228c, 0x12282040,
+ 0x00000000, 0x00000000, 0x02000000, 0x20000010,
+ 0x00000080, 0x00000000, 0x00010000, 0x00000000,
} },
{ { /* 498 */
- 0x00000000, 0x00000020, 0x24002000, 0x00000000,
- 0x00800a00, 0x00080910, 0x1019a000, 0x60200030,
+ 0x00000000, 0x02000000, 0x00000000, 0x00000000,
+ 0x20000000, 0x00000040, 0x00200028, 0x00000000,
} },
{ { /* 499 */
- 0x00000080, 0x00000080, 0x08000000, 0x800050a0,
- 0x80044000, 0x04001010, 0x80008080, 0x00000000,
+ 0x00000000, 0x00020000, 0x00000000, 0x02000000,
+ 0x00000000, 0x02000000, 0x40020000, 0x51000040,
} },
{ { /* 500 */
- 0x00000040, 0x00800000, 0x000c4283, 0x01020000,
- 0x00888000, 0x00104008, 0x20000000, 0x04000080,
+ 0x00000080, 0x04040000, 0x00000000, 0x10000000,
+ 0x00022000, 0x00100000, 0x20000000, 0x00000082,
} },
{ { /* 501 */
- 0x20000104, 0x1802c021, 0x08100000, 0x0000004e,
- 0x80000001, 0x30c00080, 0x00000040, 0x00401200,
+ 0x40000000, 0x00010000, 0x00002000, 0x00000000,
+ 0x00000240, 0x00000000, 0x00000000, 0x00000008,
} },
{ { /* 502 */
- 0x04945288, 0x00940400, 0x06400104, 0x10002000,
- 0x00080010, 0x00400420, 0x00000102, 0x00408010,
+ 0x00000000, 0x00010000, 0x00000810, 0x00080880,
+ 0x00004000, 0x00000000, 0x00000000, 0x00020000,
} },
{ { /* 503 */
- 0x05000000, 0x40002240, 0x00100000, 0x0e400024,
- 0x00000080, 0x80000440, 0x01018410, 0xb1804004,
+ 0x00000000, 0x00400020, 0x00000000, 0x00000082,
+ 0x00000000, 0x00020001, 0x00000000, 0x00000000,
} },
{ { /* 504 */
- 0x25000800, 0x20000000, 0x00800000, 0x0000804c,
- 0x10020020, 0x42001000, 0x00082000, 0x00002000,
+ 0x40000018, 0x00000004, 0x00000000, 0x00000000,
+ 0x01000000, 0x00400000, 0x00000000, 0x00000000,
} },
{ { /* 505 */
- 0x11500020, 0x40004053, 0x11280500, 0x80060014,
- 0x004c0101, 0x60002008, 0x44000000, 0x01000036,
+ 0x00000001, 0x00400000, 0x00000000, 0x00080002,
+ 0x00000400, 0x00040000, 0x00000000, 0x00000000,
} },
{ { /* 506 */
- 0x00010028, 0x01180000, 0x84041804, 0x00098000,
- 0x00800000, 0x00000000, 0x00400002, 0x10004001,
+ 0x00000800, 0x00000800, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000100, 0x00000000,
} },
{ { /* 507 */
- 0x0051a004, 0x00008100, 0x00000024, 0x40041000,
- 0x00040000, 0x00042001, 0x00000000, 0x00008000,
+ 0x00000000, 0x00200000, 0x00000000, 0x04108000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000002,
} },
{ { /* 508 */
- 0x00000000, 0x00000000, 0x00000000, 0x20030000,
- 0x00001840, 0x00020220, 0x04404002, 0x00204000,
+ 0x00000000, 0x02800000, 0x04000000, 0x00000000,
+ 0x00000000, 0x00000004, 0x00000000, 0x00000400,
} },
{ { /* 509 */
- 0x01008010, 0x00002080, 0x40008064, 0x00004031,
- 0x10018090, 0x80304001, 0x000080a0, 0x80200040,
+ 0x00000000, 0x00000000, 0x10000000, 0x00040000,
+ 0x00400000, 0x00000000, 0x00000000, 0x00000000,
} },
{ { /* 510 */
- 0x00000001, 0x00000010, 0x00102088, 0x00800020,
- 0x00120681, 0x100002a0, 0x00000042, 0x00000080,
+ 0x00200000, 0x00000200, 0x00000000, 0x10000000,
+ 0x00000000, 0x00000000, 0x2a000000, 0x00000000,
} },
{ { /* 511 */
- 0x10000000, 0x21000a00, 0x00000200, 0x40000080,
- 0x10110000, 0x00108200, 0x04000000, 0x00000400,
+ 0x00400000, 0x00000000, 0x00400000, 0x00000000,
+ 0x00000002, 0x40000000, 0x00000000, 0x00400000,
} },
{ { /* 512 */
- 0x80001000, 0x80002000, 0x40003008, 0x00000204,
- 0x0801000a, 0x40000001, 0x00000000, 0x00000004,
+ 0x40000000, 0x00001000, 0x00000000, 0x00000000,
+ 0x00000202, 0x02000000, 0x80000000, 0x00020000,
} },
{ { /* 513 */
- 0x00000000, 0x00000000, 0x00020000, 0x00000000,
- 0x88000000, 0x00002000, 0x08502000, 0x00840a00,
+ 0x00000020, 0x00000800, 0x00020421, 0x00020000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00400000,
} },
{ { /* 514 */
- 0x31061808, 0x00000000, 0x00000000, 0x04000000,
- 0x00000004, 0x00000240, 0x00100009, 0x00000000,
+ 0x00200000, 0x00000000, 0x00000001, 0x00000000,
+ 0x00000084, 0x00000000, 0x00000000, 0x00000000,
} },
{ { /* 515 */
- 0x00004002, 0x04002500, 0x00008040, 0x40a20100,
- 0x00000001, 0x12412080, 0x04004008, 0x00042014,
+ 0x00000000, 0x00004400, 0x00000002, 0x00100000,
+ 0x00000000, 0x00000000, 0x00008200, 0x00000000,
} },
{ { /* 516 */
- 0x02000000, 0x00012000, 0x10000402, 0x000040c0,
- 0x00080000, 0x5fe800a1, 0x04019402, 0x02000000,
+ 0x00000000, 0x12000000, 0x00000100, 0x00000001,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
} },
{ { /* 517 */
- 0x00040100, 0x00880000, 0x00401000, 0x00001012,
- 0x00000000, 0x08004100, 0x00000010, 0x00000000,
+ 0x00000020, 0x08100000, 0x000a0400, 0x00000081,
+ 0x00006000, 0x00120000, 0x00000000, 0x00000000,
} },
{ { /* 518 */
- 0x00000000, 0x00000000, 0x52020000, 0x10410080,
- 0x00005000, 0x08400200, 0x80400010, 0x44400020,
+ 0x00000004, 0x08000000, 0x00004000, 0x044000c0,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
} },
{ { /* 519 */
- 0x00084100, 0x10200d02, 0xa1200012, 0x00804804,
- 0x00008212, 0xc6024000, 0x08100000, 0x205c1828,
+ 0x40001000, 0x00000000, 0x01000001, 0x05000000,
+ 0x00080000, 0x02000000, 0x00000800, 0x00000000,
} },
{ { /* 520 */
- 0x00000088, 0x00031000, 0x8000013f, 0x21184b44,
- 0x100100f2, 0xa9002001, 0x08080840, 0x001b0001,
+ 0x00000100, 0x00000000, 0x00000000, 0x00000000,
+ 0x00002002, 0x01020000, 0x00800000, 0x00000000,
} },
{ { /* 521 */
- 0x28800112, 0x400020f0, 0x0910200c, 0x0a0010a0,
- 0x80000020, 0x00000004, 0x1000000a, 0x00400000,
+ 0x00000040, 0x00004000, 0x01000000, 0x00000004,
+ 0x00020000, 0x00000000, 0x00000010, 0x00000000,
} },
{ { /* 522 */
- 0x00000000, 0x00002000, 0x00000080, 0x81000000,
- 0x02c00020, 0x000004c5, 0x00000000, 0x00100100,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00080000, 0x00010000, 0x30000300, 0x00000400,
} },
{ { /* 523 */
- 0x20000000, 0x01080000, 0x00400022, 0x08000200,
- 0x00408002, 0x20400028, 0x00000000, 0x00100000,
+ 0x00000800, 0x02000000, 0x00000000, 0x00008000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
} },
{ { /* 524 */
- 0x08000008, 0x00420002, 0xa0a20003, 0x00022000,
- 0x88000280, 0x65160000, 0x00040105, 0x00244041,
+ 0x00200000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x000040c0, 0x00002200, 0x12002000,
} },
{ { /* 525 */
- 0x80300000, 0x00184008, 0x00000880, 0x00201140,
- 0x00000000, 0x02900000, 0x50004588, 0x00221043,
+ 0x00000000, 0x00000020, 0x20000000, 0x00000000,
+ 0x00000200, 0x00080800, 0x1000a000, 0x00000000,
} },
{ { /* 526 */
- 0x12004000, 0x0b800000, 0x20002405, 0x0000000c,
- 0x08000000, 0x11000410, 0x04000030, 0x00200043,
+ 0x00000000, 0x00000000, 0x00000000, 0x00004000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
} },
{ { /* 527 */
- 0x80011000, 0x18008042, 0x11000000, 0x00001008,
- 0x00008000, 0x24440000, 0x00800000, 0x80100005,
+ 0x00000000, 0x00000000, 0x00004280, 0x01000000,
+ 0x00800000, 0x00000008, 0x00000000, 0x00000000,
} },
{ { /* 528 */
- 0x00108204, 0x02102400, 0x00010001, 0x80000200,
- 0xa080e80a, 0x00010000, 0x20008000, 0x80122200,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000002,
+ 0x00000000, 0x20400000, 0x00000040, 0x00000000,
} },
{ { /* 529 */
- 0x88211404, 0x04208041, 0x20088020, 0x18040000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00800080, 0x00800000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00400020, 0x00000000, 0x00008000,
} },
{ { /* 530 */
- 0x00401004, 0x02100002, 0x40014210, 0x50006000,
- 0x00080008, 0x20000820, 0x00100211, 0x10000000,
+ 0x01000000, 0x00000040, 0x00000000, 0x00400000,
+ 0x00000000, 0x00000440, 0x00000000, 0x00800000,
} },
{ { /* 531 */
- 0x91005400, 0x00000000, 0x00000000, 0x08000000,
- 0x41610032, 0xa0029d44, 0x000000d2, 0x41020004,
+ 0x01000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00080000, 0x00000000,
} },
{ { /* 532 */
- 0x00800104, 0x020000c0, 0x04090030, 0x80000204,
- 0x82004000, 0x00000020, 0x00000000, 0x00000000,
+ 0x01000000, 0x00000001, 0x00000000, 0x00020000,
+ 0x00000000, 0x20002000, 0x00000000, 0x00000004,
} },
{ { /* 533 */
- 0x00000000, 0x00000000, 0x00000080, 0x00000000,
+ 0x00000008, 0x00100000, 0x00000000, 0x00010000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
} },
{ { /* 534 */
+ 0x00000004, 0x00008000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00008000,
+ } },
+ { { /* 535 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000040, 0x00000000, 0x00004000, 0x00000000,
+ } },
+ { { /* 536 */
+ 0x00000010, 0x00002000, 0x40000040, 0x00000000,
+ 0x10000000, 0x00000000, 0x00008080, 0x00000000,
+ } },
+ { { /* 537 */
+ 0x00000000, 0x00000000, 0x00000080, 0x00000000,
+ 0x00100080, 0x000000a0, 0x00000000, 0x00000000,
+ } },
+ { { /* 538 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00100000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 539 */
+ 0x00000000, 0x00000000, 0x00001000, 0x00000000,
+ 0x0001000a, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 540 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x08002000, 0x00000000,
+ } },
+ { { /* 541 */
+ 0x00000808, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 542 */
+ 0x00004000, 0x00002400, 0x00008000, 0x40000000,
+ 0x00000001, 0x00002000, 0x04000000, 0x00040004,
+ } },
+ { { /* 543 */
+ 0x00000000, 0x00002000, 0x00000000, 0x00000000,
+ 0x00000000, 0x1c200000, 0x00000000, 0x02000000,
+ } },
+ { { /* 544 */
+ 0x00000000, 0x00080000, 0x00400000, 0x00000002,
+ 0x00000000, 0x00000100, 0x00000000, 0x00000000,
+ } },
+ { { /* 545 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00400000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 546 */
+ 0x00004100, 0x00000400, 0x20200010, 0x00004004,
+ 0x00000000, 0x42000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 547 */
+ 0x00000080, 0x00000000, 0x00000121, 0x00000200,
+ 0x000000b0, 0x80002000, 0x00000000, 0x00010000,
+ } },
+ { { /* 548 */
+ 0x00000010, 0x000000c0, 0x08100000, 0x00000020,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 549 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x02000000, 0x00000404, 0x00000000, 0x00000000,
+ } },
+ { { /* 550 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00400000, 0x00000008, 0x00000000, 0x00000000,
+ } },
+ { { /* 551 */
+ 0x00000000, 0x00000002, 0x00020000, 0x00002000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00204000,
+ } },
+ { { /* 552 */
+ 0x00000000, 0x00100000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00800000, 0x00000100, 0x00000001,
+ } },
+ { { /* 553 */
+ 0x10000000, 0x01000000, 0x00002400, 0x00000004,
+ 0x00000000, 0x00000000, 0x00000020, 0x00000002,
+ } },
+ { { /* 554 */
+ 0x00010000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 555 */
+ 0x00000000, 0x00002400, 0x00000000, 0x00000000,
+ 0x00004802, 0x00000000, 0x00000000, 0x80022000,
+ } },
+ { { /* 556 */
+ 0x00001004, 0x04208000, 0x20000020, 0x00040000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 557 */
+ 0x00000000, 0x00100000, 0x40010000, 0x00000000,
+ 0x00080000, 0x00000000, 0x00100211, 0x00000000,
+ } },
+ { { /* 558 */
+ 0x00001400, 0x00000000, 0x00000000, 0x00000000,
+ 0x00610000, 0x80008c00, 0x00000000, 0x00000000,
+ } },
+ { { /* 559 */
+ 0x00000100, 0x00000040, 0x00000000, 0x00000004,
+ 0x00004000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 560 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000400, 0x00000000,
+ } },
+ { { /* 561 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000210, 0x00000000, 0x00000000,
+ } },
+ { { /* 562 */
+ 0x00000000, 0x00000020, 0x00000002, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 563 */
+ 0x00004000, 0x00000000, 0x00000000, 0x02000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 564 */
+ 0x00000000, 0x00000000, 0x00080002, 0x01000020,
+ 0x00400000, 0x00200000, 0x00008000, 0x00000000,
+ } },
+ { { /* 565 */
+ 0x00000000, 0x00020000, 0x00000000, 0xc0020000,
+ 0x10000000, 0x00000080, 0x00000000, 0x00000000,
+ } },
+ { { /* 566 */
+ 0x00000210, 0x00000000, 0x00001000, 0x04480000,
+ 0x20000000, 0x00000004, 0x00800000, 0x02000000,
+ } },
+ { { /* 567 */
+ 0x00000000, 0x08006000, 0x00001000, 0x00000000,
+ 0x00000000, 0x00100000, 0x00000000, 0x00000400,
+ } },
+ { { /* 568 */
+ 0x00100000, 0x00000000, 0x10000000, 0x08608000,
+ 0x00000000, 0x00000000, 0x00080002, 0x00000000,
+ } },
+ { { /* 569 */
+ 0x00000000, 0x20000000, 0x00008020, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 570 */
+ 0x00000000, 0x00000000, 0x00000000, 0x10000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 571 */
+ 0x00000000, 0x00100000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 572 */
+ 0x00000000, 0x00000400, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 573 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x02000000,
+ } },
+ { { /* 574 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000080, 0x00000000,
+ } },
+ { { /* 575 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000002, 0x00000000, 0x00000000,
+ } },
+ { { /* 576 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00008000, 0x00000000,
+ } },
+ { { /* 577 */
+ 0x00000000, 0x00000000, 0x00000008, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000400, 0x00000000,
+ } },
+ { { /* 578 */
+ 0x00000000, 0x00000000, 0x00220000, 0x00000004,
+ 0x00000000, 0x00040000, 0x00000004, 0x00000000,
+ } },
+ { { /* 579 */
+ 0x00000000, 0x00000000, 0x00001000, 0x00000080,
+ 0x00002000, 0x00000000, 0x00000000, 0x00004000,
+ } },
+ { { /* 580 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00100000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 581 */
+ 0x00000000, 0x00020000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 582 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00200000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 583 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x04000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 584 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000200, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 585 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000001, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 586 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00080000, 0x00000000,
+ } },
+ { { /* 587 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x01000000, 0x00000000, 0x00000400,
+ } },
+ { { /* 588 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000080, 0x00000000, 0x00000000,
+ } },
+ { { /* 589 */
+ 0x00000000, 0x00000800, 0x00000100, 0x40000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 590 */
+ 0x00000000, 0x00200000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 591 */
+ 0x00000000, 0x00000000, 0x01000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 592 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x04000000, 0x00000000,
+ } },
+ { { /* 593 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00001000, 0x00000000,
+ } },
+ { { /* 594 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000400, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 595 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x04040000,
+ } },
+ { { /* 596 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000020, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 597 */
+ 0x00000000, 0x00000000, 0x00800000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 598 */
+ 0x00000000, 0x00200000, 0x40000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 599 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x20000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 600 */
+ 0x00000000, 0x00000000, 0x00000000, 0x04000000,
+ 0x00000000, 0x00000001, 0x00000000, 0x00000000,
+ } },
+ { { /* 601 */
+ 0x00000000, 0x40000000, 0x02000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 602 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00080000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 603 */
+ 0x00000000, 0x00000010, 0x00000000, 0x00000000,
+ 0x00000000, 0x20000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 604 */
+ 0x00000000, 0x00000000, 0x20000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 605 */
+ 0x00000080, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000004,
+ } },
+ { { /* 606 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00002000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 607 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x10000001, 0x00000000,
+ } },
+ { { /* 608 */
+ 0x00008000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 609 */
+ 0x00000000, 0x00000000, 0x00004040, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 610 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00042400, 0x00000000,
+ } },
+ { { /* 611 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x02000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 612 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000080,
+ } },
+ { { /* 613 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000020,
+ } },
+ { { /* 614 */
+ 0x00000000, 0x00000001, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 615 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00020000, 0x00000000,
+ } },
+ { { /* 616 */
+ 0x00000000, 0x00000000, 0x00002000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 617 */
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x01000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 618 */
+ 0x00000000, 0x00040000, 0x08000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ } },
+ { { /* 619 */
0xc373ff8b, 0x1b0f6840, 0xf34ce9ac, 0xc0080200,
0xca3e795c, 0x06487976, 0xf7f02fdf, 0xa8ff033a,
} },
- { { /* 535 */
+ { { /* 620 */
0x233fef37, 0xfd59b004, 0xfffff3ca, 0xfff9de9f,
0x7df7abff, 0x8eecc000, 0xffdbeebf, 0x45fad003,
} },
- { { /* 536 */
+ { { /* 621 */
0xdffefae1, 0x10abbfef, 0xfcaaffeb, 0x24fdef3f,
0x7f7678ad, 0xedfff00c, 0x2cfacff6, 0xeb6bf7f9,
} },
- { { /* 537 */
+ { { /* 622 */
0x95bf1ffd, 0xbfbf6677, 0xfeb43bfb, 0x11e27bae,
0x41bea681, 0x72c31435, 0x71917d70, 0x276b0003,
} },
- { { /* 538 */
+ { { /* 623 */
0x70cf57cb, 0x0def4732, 0xfc747eda, 0xbdb4fe06,
0x8bca3f9f, 0x58007e49, 0xebec228f, 0xddbb8a5c,
} },
- { { /* 539 */
+ { { /* 624 */
0xb6e7ef60, 0xf293a40f, 0x549e37bb, 0x9bafd04b,
0xf7d4c414, 0x0a1430b0, 0x88d02f08, 0x192fff7e,
} },
- { { /* 540 */
+ { { /* 625 */
0xfb07ffda, 0x7beb7ff1, 0x0010c5ef, 0xfdff99ff,
0x056779d7, 0xfdcbffe7, 0x4040c3ff, 0xbd8e6ff7,
} },
- { { /* 541 */
+ { { /* 626 */
0x0497dffa, 0x5bfff4c0, 0xd0e7ed7b, 0xf8e0047e,
0xb73eff9f, 0x882e7dfe, 0xbe7ffffd, 0xf6c483fe,
} },
- { { /* 542 */
+ { { /* 627 */
0xb8fdf357, 0xef7dd680, 0x47885767, 0xc3dfff7d,
0x37a9f0ff, 0x70fc7de0, 0xec9a3f6f, 0x86814cb3,
} },
- { { /* 543 */
+ { { /* 628 */
0xdd5c3f9e, 0x4819f70d, 0x0007fea3, 0x38ffaf56,
0xefb8980d, 0xb760403d, 0x9035d8ce, 0x3fff72bf,
} },
- { { /* 544 */
+ { { /* 629 */
0x7a117ff7, 0xabfff7bb, 0x6fbeff00, 0xfe72a93c,
0xf11bcfef, 0xf40adb6b, 0xef7ec3e6, 0xf6109b9c,
} },
- { { /* 545 */
+ { { /* 630 */
0x16f4f048, 0x5182feb5, 0x15bbc7b1, 0xfbdf6e87,
0x63cde43f, 0x7e7ec1ff, 0x7d5ffdeb, 0xfcfe777b,
} },
- { { /* 546 */
+ { { /* 631 */
0xdbea960b, 0x53e86229, 0xfdef37df, 0xbd8136f5,
0xfcbddc18, 0xffffd2e4, 0xffe03fd7, 0xabf87f6f,
} },
- { { /* 547 */
+ { { /* 632 */
0x6ed99bae, 0xf115f5fb, 0xbdfb79a9, 0xadaf5a3c,
0x1facdbba, 0x837971fc, 0xc35f7cf7, 0x0567dfff,
} },
- { { /* 548 */
+ { { /* 633 */
0x8467ff9a, 0xdf8b1534, 0x3373f9f3, 0x5e1af7bd,
0xa03fbf40, 0x01ebffff, 0xcfdddfc0, 0xabd37500,
} },
- { { /* 549 */
+ { { /* 634 */
0xeed6f8c3, 0xb7ff43fd, 0x42275eaf, 0xf6869bac,
0xf6bc27d7, 0x35b7f787, 0xe176aacd, 0xe29f49e7,
} },
- { { /* 550 */
+ { { /* 635 */
0xaff2545c, 0x61d82b3f, 0xbbb8fc3b, 0x7b7dffcf,
0x1ce0bf95, 0x43ff7dfd, 0xfffe5ff6, 0xc4ced3ef,
} },
- { { /* 551 */
+ { { /* 636 */
0xadbc8db6, 0x11eb63dc, 0x23d0df59, 0xf3dbbeb4,
0xdbc71fe7, 0xfae4ff63, 0x63f7b22b, 0xadbaed3b,
} },
- { { /* 552 */
+ { { /* 637 */
0x7efffe01, 0x02bcfff7, 0xef3932ff, 0x8005fffc,
0xbcf577fb, 0xfff7010d, 0xbf3afffb, 0xdfff0057,
} },
- { { /* 553 */
+ { { /* 638 */
0xbd7def7b, 0xc8d4db88, 0xed7cfff3, 0x56ff5dee,
0xac5f7e0d, 0xd57fff96, 0xc1403fee, 0xffe76ff9,
} },
- { { /* 554 */
+ { { /* 639 */
0x8e77779b, 0xe45d6ebf, 0x5f1f6fcf, 0xfedfe07f,
0x01fed7db, 0xfb7bff00, 0x1fdfffd4, 0xfffff800,
} },
- { { /* 555 */
+ { { /* 640 */
0x007bfb8f, 0x7f5cbf00, 0x07f3ffff, 0x3de7eba0,
0xfbd7f7bf, 0x6003ffbf, 0xbfedfffd, 0x027fefbb,
} },
- { { /* 556 */
+ { { /* 641 */
0xddfdfe40, 0xe2f9fdff, 0xfb1f680b, 0xaffdfbe3,
0xf7ed9fa4, 0xf80f7a7d, 0x0fd5eebe, 0xfd9fbb5d,
} },
- { { /* 557 */
+ { { /* 642 */
0x3bf9f2db, 0xebccfe7f, 0x73fa876a, 0x9ffc95fc,
0xfaf7109f, 0xbbcdddb7, 0xeccdf87e, 0x3c3ff366,
} },
- { { /* 558 */
+ { { /* 643 */
0xb03ffffd, 0x067ee9f7, 0xfe0696ae, 0x5fd7d576,
0xa3f33fd1, 0x6fb7cf07, 0x7f449fd1, 0xd3dd7b59,
} },
- { { /* 559 */
+ { { /* 644 */
0xa9bdaf3b, 0xff3a7dcf, 0xf6ebfbe0, 0xffffb401,
0xb7bf7afa, 0x0ffdc000, 0xff1fff7f, 0x95fffefc,
} },
- { { /* 560 */
+ { { /* 645 */
0xb5dc0000, 0x3f3eef63, 0x001bfb7f, 0xfbf6e800,
0xb8df9eef, 0x003fff9f, 0xf5ff7bd0, 0x3fffdfdb,
} },
- { { /* 561 */
+ { { /* 646 */
0x00bffdf0, 0xbbbd8420, 0xffdedf37, 0x0ff3ff6d,
0x5efb604c, 0xfafbfffb, 0x0219fe5e, 0xf9de79f4,
} },
- { { /* 562 */
+ { { /* 647 */
0xebfaa7f7, 0xff3401eb, 0xef73ebd3, 0xc040afd7,
0xdcff72bb, 0x2fd8f17f, 0xfe0bb8ec, 0x1f0bdda3,
} },
- { { /* 563 */
+ { { /* 648 */
0x47cf8f1d, 0xffdeb12b, 0xda737fee, 0xcbc424ff,
0xcbf2f75d, 0xb4edecfd, 0x4dddbff9, 0xfb8d99dd,
} },
- { { /* 564 */
+ { { /* 649 */
0xaf7bbb7f, 0xc959ddfb, 0xfab5fc4f, 0x6d5fafe3,
0x3f7dffff, 0xffdb7800, 0x7effb6ff, 0x022ffbaf,
} },
- { { /* 565 */
+ { { /* 650 */
0xefc7ff9b, 0xffffffa5, 0xc7000007, 0xfff1f7ff,
0x01bf7ffd, 0xfdbcdc00, 0xffffbff5, 0x3effff7f,
} },
- { { /* 566 */
+ { { /* 651 */
0xbe000029, 0xff7ff9ff, 0xfd7e6efb, 0x039ecbff,
0xfbdde300, 0xf6dfccff, 0x117fffff, 0xfbf6f800,
} },
- { { /* 567 */
+ { { /* 652 */
0xd73ce7ef, 0xdfeffeef, 0xedbfc00b, 0xfdcdfedf,
0x40fd7bf5, 0xb75fffff, 0xf930ffdf, 0xdc97fbdf,
} },
- { { /* 568 */
+ { { /* 653 */
0xbff2fef3, 0xdfbf8fdf, 0xede6177f, 0x35530f7f,
0x877e447c, 0x45bbfa12, 0x779eede0, 0xbfd98017,
} },
- { { /* 569 */
+ { { /* 654 */
0xde897e55, 0x0447c16f, 0xf75d7ade, 0x290557ff,
0xfe9586f7, 0xf32f97b3, 0x9f75cfff, 0xfb1771f7,
} },
- { { /* 570 */
+ { { /* 655 */
0xee1934ee, 0xef6137cc, 0xef4c9fd6, 0xfbddd68f,
0x6def7b73, 0xa431d7fe, 0x97d75e7f, 0xffd80f5b,
} },
- { { /* 571 */
+ { { /* 656 */
0x7bce9d83, 0xdcff22ec, 0xef87763d, 0xfdeddfe7,
0xa0fc4fff, 0xdbfc3b77, 0x7fdc3ded, 0xf5706fa9,
} },
- { { /* 572 */
+ { { /* 657 */
0x2c403ffb, 0x847fff7f, 0xdeb7ec57, 0xf22fe69c,
0xd5b50feb, 0xede7afeb, 0xfff08c2f, 0xe8f0537f,
} },
- { { /* 573 */
+ { { /* 658 */
0xb5ffb99d, 0xe78fff66, 0xbe10d981, 0xe3c19c7c,
0x27339cd1, 0xff6d0cbc, 0xefb7fcb7, 0xffffa0df,
} },
- { { /* 574 */
+ { { /* 659 */
0xfe7bbf0b, 0x353fa3ff, 0x97cd13cc, 0xfb277637,
0x7e6ccfd6, 0xed31ec50, 0xfc1c677c, 0x5fbff6fa,
} },
- { { /* 575 */
+ { { /* 660 */
0xae2f0fba, 0x7ffea3ad, 0xde74fcf0, 0xf200ffef,
0xfea2fbbf, 0xbcff3daf, 0x5fb9f694, 0x3f8ff3ad,
} },
- { { /* 576 */
+ { { /* 661 */
0xa01ff26c, 0x01bfffef, 0x70057728, 0xda03ff35,
0xc7fad2f9, 0x5c1d3fbf, 0xec33ff3a, 0xfe9cb7af,
} },
- { { /* 577 */
+ { { /* 662 */
0x7a9f5236, 0xe722bffa, 0xfcff9ff7, 0xb61d2fbb,
0x1dfded06, 0xefdf7dd7, 0xf166eb23, 0x0dc07ed9,
} },
- { { /* 578 */
+ { { /* 663 */
0xdfbf3d3d, 0xba83c945, 0x9dd07dd1, 0xcf737b87,
0xc3f59ff3, 0xc5fedf0d, 0x83020cb3, 0xaec0e879,
} },
- { { /* 579 */
+ { { /* 664 */
0x6f0fc773, 0x093ffd7d, 0x0157fff1, 0x01ff62fb,
0x3bf3fdb4, 0x43b2b013, 0xff305ed3, 0xeb9f0fff,
} },
- { { /* 580 */
+ { { /* 665 */
0xf203feef, 0xfb893fef, 0x9e9937a9, 0xa72cdef9,
0xc1f63733, 0xfe3e812e, 0xf2f75d20, 0x69d7d585,
} },
- { { /* 581 */
+ { { /* 666 */
0xffffffff, 0xff6fdb07, 0xd97fc4ff, 0xbe0fefce,
0xf05ef17b, 0xffb7f6cf, 0xef845ef7, 0x0edfd7cb,
} },
- { { /* 582 */
+ { { /* 667 */
0xfcffff08, 0xffffee3f, 0xd7ff13ff, 0x7ffdaf0f,
0x1ffabdc7, 0x00000000, 0x00000000, 0x00000000,
} },
- { { /* 583 */
+ { { /* 668 */
0x00000000, 0xe7400000, 0xf933bd38, 0xfeed7feb,
0x7c767fe8, 0xffefb3f7, 0xd8b7feaf, 0xfbbfff6f,
} },
- { { /* 584 */
+ { { /* 669 */
0xdbf7f8fb, 0xe2f91752, 0x754785c8, 0xe3ef9090,
0x3f6d9ef4, 0x0536ee2e, 0x7ff3f7bc, 0x7f3fa07b,
} },
- { { /* 585 */
+ { { /* 670 */
0xeb600567, 0x6601babe, 0x583ffcd8, 0x87dfcaf7,
0xffa0bfcd, 0xfebf5bcd, 0xefa7b6fd, 0xdf9c77ef,
} },
- { { /* 586 */
+ { { /* 671 */
0xf8773fb7, 0xb7fc9d27, 0xdfefcab5, 0xf1b6fb5a,
0xef1fec39, 0x7ffbfbbf, 0xdafe000d, 0x4e7fbdfb,
} },
- { { /* 587 */
+ { { /* 672 */
0x5ac033ff, 0x9ffebff5, 0x005fffbf, 0xfdf80000,
0x6ffdffca, 0xa001cffd, 0xfbf2dfff, 0xff7fdfbf,
} },
- { { /* 588 */
+ { { /* 673 */
0x080ffeda, 0xbfffba08, 0xeed77afd, 0x67f9fbeb,
0xff93e044, 0x9f57df97, 0x08dffef7, 0xfedfdf80,
} },
- { { /* 589 */
+ { { /* 674 */
0xf7feffc5, 0x6803fffb, 0x6bfa67fb, 0x5fe27fff,
0xff73ffff, 0xe7fb87df, 0xf7a7ebfd, 0xefc7bf7e,
} },
- { { /* 590 */
+ { { /* 675 */
0xdf821ef3, 0xdf7e76ff, 0xda7d79c9, 0x1e9befbe,
0x77fb7ce0, 0xfffb87be, 0xffdb1bff, 0x4fe03f5c,
} },
- { { /* 591 */
+ { { /* 676 */
0x5f0e7fff, 0xddbf77ff, 0xfffff04f, 0x0ff8ffff,
0xfddfa3be, 0xfffdfc1c, 0xfb9e1f7d, 0xdedcbdff,
} },
- { { /* 592 */
+ { { /* 677 */
0xbafb3f6f, 0xfbefdf7f, 0x2eec7d1b, 0xf2f7af8e,
0xcfee7b0f, 0x77c61d96, 0xfff57e07, 0x7fdfd982,
} },
- { { /* 593 */
+ { { /* 678 */
0xc7ff5ee6, 0x79effeee, 0xffcf9a56, 0xde5efe5f,
0xf9e8896e, 0xe6c4f45e, 0xbe7c0001, 0xdddf3b7f,
} },
- { { /* 594 */
+ { { /* 679 */
0xe9efd59d, 0xde5334ac, 0x4bf7f573, 0x9eff7b4f,
0x476eb8fe, 0xff450dfb, 0xfbfeabfd, 0xddffe9d7,
} },
- { { /* 595 */
+ { { /* 680 */
0x7fffedf7, 0x7eebddfd, 0xb7ffcfe7, 0xef91bde9,
0xd77c5d75, 0x00000000, 0x00000000, 0x00000000,
} },
- { { /* 596 */
+ { { /* 681 */
0x00000000, 0xfa800000, 0xb4f1ffee, 0x2fefbf76,
0x77bfb677, 0xfffd9fbf, 0xf6ae95bf, 0x7f3b75ff,
} },
- { { /* 597 */
+ { { /* 682 */
0x0af9a7f5, 0x00000000, 0x00000000, 0x2bddfbd0,
0x9a7ff633, 0xd6fcfdab, 0xbfebf9e6, 0xf41fdfdf,
} },
- { { /* 598 */
+ { { /* 683 */
0xffffa6fd, 0xf37b4aff, 0xfef97fb7, 0x1d5cb6ff,
0xe5ff7ff6, 0x24041f7b, 0xf99ebe05, 0xdff2dbe3,
} },
- { { /* 599 */
+ { { /* 684 */
0xfdff6fef, 0xcbfcd679, 0xefffebfd, 0x0000001f,
0x98000000, 0x8017e148, 0x00fe6a74, 0xfdf16d7f,
} },
- { { /* 600 */
+ { { /* 685 */
0xfef3b87f, 0xf176e01f, 0x7b3fee96, 0xfffdeb8d,
0xcbb3adff, 0xe17f84ef, 0xbff04daa, 0xfe3fbf3f,
} },
- { { /* 601 */
+ { { /* 686 */
0xffd7ebff, 0xcf7fffdf, 0x85edfffb, 0x07bcd73f,
0xfe0faeff, 0x76bffdaf, 0x37bbfaef, 0xa3ba7fdc,
} },
- { { /* 602 */
+ { { /* 687 */
0x56f7b6ff, 0xe7df60f8, 0x4cdfff61, 0xff45b0fb,
0x3ffa7ded, 0x18fc1fff, 0xe3afffff, 0xdf83c7d3,
} },
- { { /* 603 */
+ { { /* 688 */
0xef7dfb57, 0x1378efff, 0x5ff7fec0, 0x5ee334bb,
0xeff6f70d, 0x00bfd7fe, 0xf7f7f59d, 0xffe051de,
} },
- { { /* 604 */
+ { { /* 689 */
0x037ffec9, 0xbfef5f01, 0x60a79ff1, 0xf1ffef1d,
0x0000000f, 0x00000000, 0x00000000, 0x00000000,
} },
- { { /* 605 */
+ { { /* 690 */
0x00000000, 0x00000000, 0x00000000, 0x3c800000,
0xd91ffb4d, 0xfee37b3a, 0xdc7f3fe9, 0x0000003f,
} },
- { { /* 606 */
+ { { /* 691 */
0x50000000, 0xbe07f51f, 0xf91bfc1d, 0x71ffbc1e,
0x5bbe6ff9, 0x9b1b5796, 0xfffc7fff, 0xafe7872e,
} },
- { { /* 607 */
+ { { /* 692 */
0xf34febf5, 0xe725dffd, 0x5d440bdc, 0xfddd5747,
0x7790ed3f, 0x8ac87d7f, 0xf3f9fafa, 0xef4b202a,
} },
- { { /* 608 */
+ { { /* 693 */
0x79cff5ff, 0x0ba5abd3, 0xfb8ff77a, 0x001f8ebd,
0x00000000, 0xfd4ef300, 0x88001a57, 0x7654aeac,
} },
- { { /* 609 */
+ { { /* 694 */
0xcdff17ad, 0xf42fffb2, 0xdbff5baa, 0x00000002,
0x73c00000, 0x2e3ff9ea, 0xbbfffa8e, 0xffd376bc,
} },
- { { /* 610 */
+ { { /* 695 */
0x7e72eefe, 0xe7f77ebd, 0xcefdf77f, 0x00000ff5,
0x00000000, 0xdb9ba900, 0x917fa4c7, 0x7ecef8ca,
} },
- { { /* 611 */
+ { { /* 696 */
0xc7e77d7a, 0xdcaecbbd, 0x8f76fd7e, 0x7cf391d3,
0x4c2f01e5, 0xa360ed77, 0x5ef807db, 0x21811df7,
} },
- { { /* 612 */
+ { { /* 697 */
0x309c6be0, 0xfade3b3a, 0xc3f57f53, 0x07ba61cd,
0x00000000, 0x00000000, 0x00000000, 0xbefe26e0,
} },
- { { /* 613 */
+ { { /* 698 */
0xebb503f9, 0xe9cbe36d, 0xbfde9c2f, 0xabbf9f83,
0xffd51ff7, 0xdffeb7df, 0xffeffdae, 0xeffdfb7e,
} },
- { { /* 614 */
+ { { /* 699 */
0x6ebfaaff, 0x00000000, 0x00000000, 0xb6200000,
0xbe9e7fcd, 0x58f162b3, 0xfd7bf10d, 0xbefde9f1,
} },
- { { /* 615 */
+ { { /* 700 */
0x5f6dc6c3, 0x69ffff3d, 0xfbf4ffcf, 0x4ff7dcfb,
0x11372000, 0x00000015, 0x00000000, 0x00000000,
} },
- { { /* 616 */
+ { { /* 701 */
0x00003000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
} },
LEAF(501,519), LEAF(501,520), LEAF(501,521), LEAF(501,522),
LEAF(501,523), LEAF(501,524), LEAF(501,525), LEAF(501,526),
LEAF(501,527), LEAF(501,528), LEAF(501,529), LEAF(501,530),
- LEAF(501,531), LEAF(501,532), LEAF(501,533),
+ LEAF(501,531), LEAF(501,532), LEAF(501,533), LEAF(501,534),
+ LEAF(501,535), LEAF(501,536), LEAF(501,537), LEAF(501,538),
+ LEAF(501,539), LEAF(501,540), LEAF(501,541), LEAF(501,542),
+ LEAF(501,543), LEAF(501,544), LEAF(501,545), LEAF(501,546),
+ LEAF(501,547), LEAF(501,548), LEAF(501,549), LEAF(501,550),
+ LEAF(501,551), LEAF(501,552), LEAF(501,553), LEAF(501,554),
+ LEAF(501,555), LEAF(501,556), LEAF(501,557), LEAF(501,558),
+ LEAF(501,559), LEAF(501,560), LEAF(501,561), LEAF(501,562),
+ LEAF(501,563), LEAF(501,564), LEAF(501,565), LEAF(501,566),
+ LEAF(501,567), LEAF(501,568), LEAF(501,569), LEAF(501,570),
+ LEAF(501,571), LEAF(501,572), LEAF(501,573), LEAF(501,574),
+ LEAF(501,575), LEAF(501,576), LEAF(501,577), LEAF(501,578),
+ LEAF(501,579), LEAF(501,580), LEAF(501,581), LEAF(501,582),
+ LEAF(501,583), LEAF(501,318), LEAF(501,584), LEAF(501,585),
+ LEAF(501,586), LEAF(501,587), LEAF(501,588), LEAF(501,589),
+ LEAF(501,590), LEAF(501, 3), LEAF(501,591), LEAF(501,592),
+ LEAF(501,593), LEAF(501,594), LEAF(501,595), LEAF(501,596),
+ LEAF(501,580), LEAF(501,597), LEAF(501,598), LEAF(501,599),
+ LEAF(501,600), LEAF(501,601), LEAF(501,602), LEAF(501,603),
+ LEAF(501,604), LEAF(501,605), LEAF(501,606), LEAF(501,607),
+ LEAF(501,608), LEAF(501,609), LEAF(501,610), LEAF(501,611),
+ LEAF(501,612), LEAF(501,613), LEAF(501,614), LEAF(501,615),
+ LEAF(501,616), LEAF(501,617), LEAF(501,618),
/* zh_tw */
- LEAF(584,534), LEAF(584,535), LEAF(584,536), LEAF(584,537),
- LEAF(584,538), LEAF(584,539), LEAF(584,540), LEAF(584,541),
- LEAF(584,542), LEAF(584,543), LEAF(584,544), LEAF(584,545),
- LEAF(584,546), LEAF(584,547), LEAF(584,548), LEAF(584,549),
- LEAF(584,550), LEAF(584,551), LEAF(584,552), LEAF(584,553),
- LEAF(584,554), LEAF(584,555), LEAF(584,556), LEAF(584,557),
- LEAF(584,558), LEAF(584,559), LEAF(584,560), LEAF(584,561),
- LEAF(584,562), LEAF(584,563), LEAF(584,564), LEAF(584,565),
- LEAF(584,566), LEAF(584,567), LEAF(584,568), LEAF(584,569),
- LEAF(584,570), LEAF(584,571), LEAF(584,572), LEAF(584,573),
- LEAF(584,574), LEAF(584,575), LEAF(584,576), LEAF(584,577),
- LEAF(584,578), LEAF(584,579), LEAF(584,580), LEAF(584,581),
- LEAF(584,582), LEAF(584,583), LEAF(584,584), LEAF(584,585),
- LEAF(584,586), LEAF(584,587), LEAF(584,588), LEAF(584,589),
- LEAF(584,590), LEAF(584,591), LEAF(584,592), LEAF(584,593),
- LEAF(584,594), LEAF(584,595), LEAF(584,596), LEAF(584,597),
- LEAF(584,598), LEAF(584,599), LEAF(584,600), LEAF(584,601),
- LEAF(584,602), LEAF(584,603), LEAF(584,604), LEAF(584,605),
- LEAF(584,606), LEAF(584,607), LEAF(584,608), LEAF(584,609),
- LEAF(584,610), LEAF(584,611), LEAF(584,612), LEAF(584,613),
- LEAF(584,614), LEAF(584,615), LEAF(584,616),
+ LEAF(672,619), LEAF(672,620), LEAF(672,621), LEAF(672,622),
+ LEAF(672,623), LEAF(672,624), LEAF(672,625), LEAF(672,626),
+ LEAF(672,627), LEAF(672,628), LEAF(672,629), LEAF(672,630),
+ LEAF(672,631), LEAF(672,632), LEAF(672,633), LEAF(672,634),
+ LEAF(672,635), LEAF(672,636), LEAF(672,637), LEAF(672,638),
+ LEAF(672,639), LEAF(672,640), LEAF(672,641), LEAF(672,642),
+ LEAF(672,643), LEAF(672,644), LEAF(672,645), LEAF(672,646),
+ LEAF(672,647), LEAF(672,648), LEAF(672,649), LEAF(672,650),
+ LEAF(672,651), LEAF(672,652), LEAF(672,653), LEAF(672,654),
+ LEAF(672,655), LEAF(672,656), LEAF(672,657), LEAF(672,658),
+ LEAF(672,659), LEAF(672,660), LEAF(672,661), LEAF(672,662),
+ LEAF(672,663), LEAF(672,664), LEAF(672,665), LEAF(672,666),
+ LEAF(672,667), LEAF(672,668), LEAF(672,669), LEAF(672,670),
+ LEAF(672,671), LEAF(672,672), LEAF(672,673), LEAF(672,674),
+ LEAF(672,675), LEAF(672,676), LEAF(672,677), LEAF(672,678),
+ LEAF(672,679), LEAF(672,680), LEAF(672,681), LEAF(672,682),
+ LEAF(672,683), LEAF(672,684), LEAF(672,685), LEAF(672,686),
+ LEAF(672,687), LEAF(672,688), LEAF(672,689), LEAF(672,690),
+ LEAF(672,691), LEAF(672,692), LEAF(672,693), LEAF(672,694),
+ LEAF(672,695), LEAF(672,696), LEAF(672,697), LEAF(672,698),
+ LEAF(672,699), LEAF(672,700), LEAF(672,701),
},
{
/* aa */
0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c,
0x009e, 0x009f,
/* zh_hk */
- 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055,
- 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d,
- 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065,
- 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d,
- 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075,
- 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d,
- 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085,
- 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d,
- 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095,
- 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d,
- 0x009e, 0x009f, 0x0205,
+ 0x0030, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a,
+ 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042,
+ 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a,
+ 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052,
+ 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a,
+ 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062,
+ 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a,
+ 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072,
+ 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a,
+ 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082,
+ 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a,
+ 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092,
+ 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a,
+ 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x0200, 0x0201, 0x0203,
+ 0x0207, 0x020c, 0x020d, 0x020e, 0x020f, 0x0210, 0x0211, 0x0219,
+ 0x021a, 0x021c, 0x021d, 0x0220, 0x0221, 0x022a, 0x022b, 0x022c,
+ 0x022d, 0x022f, 0x0232, 0x0235, 0x0236, 0x023c, 0x023e, 0x023f,
+ 0x0244, 0x024d, 0x024e, 0x0251, 0x0255, 0x025e, 0x0262, 0x0266,
+ 0x0267, 0x0268, 0x0269, 0x0272, 0x0275, 0x0276, 0x0277, 0x0278,
+ 0x0279, 0x027a, 0x027d, 0x0280, 0x0281, 0x0282, 0x0283, 0x0289,
+ 0x028a, 0x028b, 0x028c, 0x028d, 0x028e, 0x0294, 0x0297, 0x0298,
+ 0x029a, 0x029d, 0x02a6,
/* zh_tw */
0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055,
0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d,
19, /* bn */
20, /* bo */
21, /* br */
- 239, /* brx */
+ 240, /* brx */
22, /* bs */
23, /* bua */
194, /* byn */
33, /* cy */
34, /* da */
35, /* de */
- 241, /* doi */
+ 242, /* doi */
197, /* dv */
36, /* dz */
198, /* ee */
212, /* kwm */
91, /* ky */
92, /* la */
- 237, /* lah */
+ 238, /* lah */
93, /* lb */
94, /* lez */
213, /* lg */
103, /* ml */
104, /* mn_cn */
216, /* mn_mn */
- 242, /* mni */
+ 243, /* mni */
105, /* mo */
106, /* mr */
217, /* ms */
112, /* nl */
113, /* nn */
114, /* no */
- 238, /* nqo */
+ 239, /* nqo */
115, /* nr */
116, /* nso */
220, /* nv */
125, /* ps_pk */
126, /* pt */
225, /* qu */
+ 226, /* quz */
127, /* rm */
- 226, /* rn */
+ 227, /* rn */
128, /* ro */
129, /* ru */
- 227, /* rw */
+ 228, /* rw */
130, /* sa */
131, /* sah */
- 240, /* sat */
- 228, /* sc */
+ 241, /* sat */
+ 229, /* sc */
132, /* sco */
- 229, /* sd */
+ 230, /* sd */
133, /* se */
134, /* sel */
- 230, /* sg */
+ 231, /* sg */
135, /* sh */
136, /* shs */
137, /* si */
- 231, /* sid */
+ 232, /* sid */
138, /* sk */
139, /* sl */
140, /* sm */
142, /* smj */
143, /* smn */
144, /* sms */
- 232, /* sn */
+ 233, /* sn */
145, /* so */
146, /* sq */
147, /* sr */
148, /* ss */
149, /* st */
- 233, /* su */
+ 234, /* su */
150, /* sv */
151, /* sw */
152, /* syr */
165, /* ts */
166, /* tt */
167, /* tw */
- 234, /* ty */
+ 235, /* ty */
168, /* tyv */
169, /* ug */
170, /* uk */
175, /* vo */
176, /* vot */
177, /* wa */
- 235, /* wal */
+ 236, /* wal */
178, /* wen */
179, /* wo */
180, /* xh */
181, /* yap */
182, /* yi */
183, /* yo */
- 236, /* za */
+ 237, /* za */
184, /* zh_cn */
185, /* zh_hk */
186, /* zh_mo */
164, /* ps_af */
165, /* ps_pk */
166, /* pt */
- 168, /* rm */
- 170, /* ro */
- 171, /* ru */
- 173, /* sa */
- 174, /* sah */
- 177, /* sco */
- 179, /* se */
- 180, /* sel */
- 182, /* sh */
- 183, /* shs */
- 184, /* si */
- 186, /* sk */
- 187, /* sl */
- 188, /* sm */
- 189, /* sma */
- 190, /* smj */
- 191, /* smn */
- 192, /* sms */
- 194, /* so */
- 195, /* sq */
- 196, /* sr */
- 197, /* ss */
- 198, /* st */
- 200, /* sv */
- 201, /* sw */
- 202, /* syr */
- 203, /* ta */
- 204, /* te */
- 205, /* tg */
- 206, /* th */
- 207, /* ti_er */
- 208, /* ti_et */
- 209, /* tig */
- 210, /* tk */
- 211, /* tl */
- 212, /* tn */
- 213, /* to */
- 214, /* tr */
- 215, /* ts */
- 216, /* tt */
- 217, /* tw */
- 219, /* tyv */
- 220, /* ug */
- 221, /* uk */
- 222, /* ur */
- 223, /* uz */
- 224, /* ve */
- 225, /* vi */
- 226, /* vo */
- 227, /* vot */
- 228, /* wa */
- 230, /* wen */
- 231, /* wo */
- 232, /* xh */
- 233, /* yap */
- 234, /* yi */
- 235, /* yo */
- 237, /* zh_cn */
- 238, /* zh_hk */
- 239, /* zh_mo */
- 240, /* zh_sg */
- 241, /* zh_tw */
- 242, /* zu */
+ 169, /* rm */
+ 171, /* ro */
+ 172, /* ru */
+ 174, /* sa */
+ 175, /* sah */
+ 178, /* sco */
+ 180, /* se */
+ 181, /* sel */
+ 183, /* sh */
+ 184, /* shs */
+ 185, /* si */
+ 187, /* sk */
+ 188, /* sl */
+ 189, /* sm */
+ 190, /* sma */
+ 191, /* smj */
+ 192, /* smn */
+ 193, /* sms */
+ 195, /* so */
+ 196, /* sq */
+ 197, /* sr */
+ 198, /* ss */
+ 199, /* st */
+ 201, /* sv */
+ 202, /* sw */
+ 203, /* syr */
+ 204, /* ta */
+ 205, /* te */
+ 206, /* tg */
+ 207, /* th */
+ 208, /* ti_er */
+ 209, /* ti_et */
+ 210, /* tig */
+ 211, /* tk */
+ 212, /* tl */
+ 213, /* tn */
+ 214, /* to */
+ 215, /* tr */
+ 216, /* ts */
+ 217, /* tt */
+ 218, /* tw */
+ 220, /* tyv */
+ 221, /* ug */
+ 222, /* uk */
+ 223, /* ur */
+ 224, /* uz */
+ 225, /* ve */
+ 226, /* vi */
+ 227, /* vo */
+ 228, /* vot */
+ 229, /* wa */
+ 231, /* wen */
+ 232, /* wo */
+ 233, /* xh */
+ 234, /* yap */
+ 235, /* yi */
+ 236, /* yo */
+ 238, /* zh_cn */
+ 239, /* zh_hk */
+ 240, /* zh_mo */
+ 241, /* zh_sg */
+ 242, /* zh_tw */
+ 243, /* zu */
3, /* ak */
5, /* an */
15, /* ber_dz */
161, /* pap_an */
162, /* pap_aw */
167, /* qu */
- 169, /* rn */
- 172, /* rw */
- 176, /* sc */
- 178, /* sd */
- 181, /* sg */
- 185, /* sid */
- 193, /* sn */
- 199, /* su */
- 218, /* ty */
- 229, /* wal */
- 236, /* za */
+ 168, /* quz */
+ 170, /* rn */
+ 173, /* rw */
+ 177, /* sc */
+ 179, /* sd */
+ 182, /* sg */
+ 186, /* sid */
+ 194, /* sn */
+ 200, /* su */
+ 219, /* ty */
+ 230, /* wal */
+ 237, /* za */
118, /* lah */
149, /* nqo */
26, /* brx */
- 175, /* sat */
+ 176, /* sat */
44, /* doi */
135, /* mni */
}
};
-#define NUM_LANG_CHAR_SET 243
+#define NUM_LANG_CHAR_SET 244
#define NUM_LANG_SET_MAP 8
static const FcChar32 fcLangCountrySets[][NUM_LANG_SET_MAP] = {
{ 141, 153 }, /* n */
{ 154, 158 }, /* o */
{ 159, 166 }, /* p */
- { 167, 167 }, /* q */
- { 168, 172 }, /* r */
- { 173, 202 }, /* s */
- { 203, 219 }, /* t */
- { 220, 223 }, /* u */
- { 224, 227 }, /* v */
- { 228, 231 }, /* w */
- { 232, 232 }, /* x */
- { 233, 235 }, /* y */
- { 236, 242 }, /* z */
+ { 167, 168 }, /* q */
+ { 169, 173 }, /* r */
+ { 174, 203 }, /* s */
+ { 204, 220 }, /* t */
+ { 221, 224 }, /* u */
+ { 225, 228 }, /* v */
+ { 229, 232 }, /* w */
+ { 233, 233 }, /* x */
+ { 234, 236 }, /* y */
+ { 237, 243 }, /* z */
};
# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
#
-# Coverage from JIS X 0208 (1990)
+# Coverage from JIS X 0208 (1997) for non kanji characters, and
+# Joyo Kanji List (2010, cabinet notification of regular-use chinese characters)
#
0x3000 # IDEOGRAPHIC SPACE
0x3001 # IDEOGRAPHIC COMMA
0x3002 # IDEOGRAPHIC FULL STOP
0x3005 # IDEOGRAPHIC ITERATION MARK
-0x3006 # IDEOGRAPHIC CLOSING MARK
+#0x3006 # IDEOGRAPHIC CLOSING MARK # not in Sawarabi Gothic
0x3007 # IDEOGRAPHIC NUMBER ZERO
0x3041 # HIRAGANA LETTER SMALL A
0x3042 # HIRAGANA LETTER A
0x4E0B # <CJK>
0x4E0D # <CJK>
0x4E0E # <CJK>
-0x4E10 # <CJK>
-0x4E11 # <CJK>
0x4E14 # <CJK>
-0x4E15 # <CJK>
0x4E16 # <CJK>
-0x4E17 # <CJK>
0x4E18 # <CJK>
0x4E19 # <CJK>
-0x4E1E # <CJK>
0x4E21 # <CJK>
0x4E26 # <CJK>
-0x4E2A # <CJK>
0x4E2D # <CJK>
-0x4E31 # <CJK>
0x4E32 # <CJK>
-0x4E36 # <CJK>
0x4E38 # <CJK>
0x4E39 # <CJK>
0x4E3B # <CJK>
0x4E3C # <CJK>
-0x4E3F # <CJK>
-0x4E42 # <CJK>
-0x4E43 # <CJK>
0x4E45 # <CJK>
-0x4E4B # <CJK>
-0x4E4D # <CJK>
-0x4E4E # <CJK>
0x4E4F # <CJK>
-0x4E55 # <CJK>
-0x4E56 # <CJK>
0x4E57 # <CJK>
-0x4E58 # <CJK>
0x4E59 # <CJK>
0x4E5D # <CJK>
0x4E5E # <CJK>
-0x4E5F # <CJK>
-0x4E62 # <CJK>
0x4E71 # <CJK>
0x4E73 # <CJK>
0x4E7E # <CJK>
0x4E80 # <CJK>
-0x4E82 # <CJK>
-0x4E85 # <CJK>
0x4E86 # <CJK>
0x4E88 # <CJK>
0x4E89 # <CJK>
-0x4E8A # <CJK>
0x4E8B # <CJK>
0x4E8C # <CJK>
-0x4E8E # <CJK>
-0x4E91 # <CJK>
0x4E92 # <CJK>
0x4E94 # <CJK>
0x4E95 # <CJK>
-0x4E98 # <CJK>
-0x4E99 # <CJK>
-0x4E9B # <CJK>
0x4E9C # <CJK>
-0x4E9E # <CJK>
-0x4E9F # <CJK>
-0x4EA0 # <CJK>
0x4EA1 # <CJK>
-0x4EA2 # <CJK>
0x4EA4 # <CJK>
-0x4EA5 # <CJK>
-0x4EA6 # <CJK>
-0x4EA8 # <CJK>
0x4EAB # <CJK>
0x4EAC # <CJK>
0x4EAD # <CJK>
-0x4EAE # <CJK>
-0x4EB0 # <CJK>
-0x4EB3 # <CJK>
-0x4EB6 # <CJK>
0x4EBA # <CJK>
-0x4EC0 # <CJK>
0x4EC1 # <CJK>
-0x4EC2 # <CJK>
-0x4EC4 # <CJK>
-0x4EC6 # <CJK>
-0x4EC7 # <CJK>
0x4ECA # <CJK>
0x4ECB # <CJK>
-0x4ECD # <CJK>
-0x4ECE # <CJK>
0x4ECF # <CJK>
-0x4ED4 # <CJK>
0x4ED5 # <CJK>
0x4ED6 # <CJK>
-0x4ED7 # <CJK>
0x4ED8 # <CJK>
0x4ED9 # <CJK>
-0x4EDD # <CJK>
-0x4EDE # <CJK>
-0x4EDF # <CJK>
0x4EE3 # <CJK>
0x4EE4 # <CJK>
0x4EE5 # <CJK>
-0x4EED # <CJK>
0x4EEE # <CJK>
0x4EF0 # <CJK>
0x4EF2 # <CJK>
0x4EF6 # <CJK>
-0x4EF7 # <CJK>
0x4EFB # <CJK>
0x4F01 # <CJK>
-0x4F09 # <CJK>
-0x4F0A # <CJK>
-0x4F0D # <CJK>
0x4F0E # <CJK>
0x4F0F # <CJK>
0x4F10 # <CJK>
0x4F11 # <CJK>
0x4F1A # <CJK>
-0x4F1C # <CJK>
0x4F1D # <CJK>
0x4F2F # <CJK>
-0x4F30 # <CJK>
0x4F34 # <CJK>
-0x4F36 # <CJK>
0x4F38 # <CJK>
0x4F3A # <CJK>
0x4F3C # <CJK>
-0x4F3D # <CJK>
-0x4F43 # <CJK>
0x4F46 # <CJK>
-0x4F47 # <CJK>
0x4F4D # <CJK>
0x4F4E # <CJK>
0x4F4F # <CJK>
0x4F50 # <CJK>
-0x4F51 # <CJK>
0x4F53 # <CJK>
0x4F55 # <CJK>
-0x4F57 # <CJK>
0x4F59 # <CJK>
-0x4F5A # <CJK>
-0x4F5B # <CJK>
0x4F5C # <CJK>
-0x4F5D # <CJK>
-0x4F5E # <CJK>
-0x4F69 # <CJK>
-0x4F6F # <CJK>
-0x4F70 # <CJK>
0x4F73 # <CJK>
0x4F75 # <CJK>
-0x4F76 # <CJK>
-0x4F7B # <CJK>
-0x4F7C # <CJK>
0x4F7F # <CJK>
-0x4F83 # <CJK>
-0x4F86 # <CJK>
-0x4F88 # <CJK>
0x4F8B # <CJK>
0x4F8D # <CJK>
-0x4F8F # <CJK>
-0x4F91 # <CJK>
-0x4F96 # <CJK>
-0x4F98 # <CJK>
0x4F9B # <CJK>
0x4F9D # <CJK>
-0x4FA0 # <CJK>
0x4FA1 # <CJK>
-0x4FAB # <CJK>
-0x4FAD # <CJK>
0x4FAE # <CJK>
0x4FAF # <CJK>
0x4FB5 # <CJK>
0x4FBF # <CJK>
0x4FC2 # <CJK>
0x4FC3 # <CJK>
-0x4FC4 # <CJK>
0x4FCA # <CJK>
-0x4FCE # <CJK>
-0x4FD0 # <CJK>
-0x4FD1 # <CJK>
-0x4FD4 # <CJK>
0x4FD7 # <CJK>
-0x4FD8 # <CJK>
-0x4FDA # <CJK>
-0x4FDB # <CJK>
0x4FDD # <CJK>
-0x4FDF # <CJK>
0x4FE1 # <CJK>
-0x4FE3 # <CJK>
-0x4FE4 # <CJK>
-0x4FE5 # <CJK>
0x4FEE # <CJK>
-0x4FEF # <CJK>
0x4FF3 # <CJK>
0x4FF5 # <CJK>
-0x4FF6 # <CJK>
0x4FF8 # <CJK>
0x4FFA # <CJK>
-0x4FFE # <CJK>
-0x5005 # <CJK>
-0x5006 # <CJK>
0x5009 # <CJK>
0x500B # <CJK>
0x500D # <CJK>
-0x500F # <CJK>
-0x5011 # <CJK>
0x5012 # <CJK>
-0x5014 # <CJK>
-0x5016 # <CJK>
0x5019 # <CJK>
-0x501A # <CJK>
0x501F # <CJK>
-0x5021 # <CJK>
0x5023 # <CJK>
0x5024 # <CJK>
-0x5025 # <CJK>
-0x5026 # <CJK>
-0x5028 # <CJK>
-0x5029 # <CJK>
-0x502A # <CJK>
0x502B # <CJK>
-0x502C # <CJK>
-0x502D # <CJK>
-0x5036 # <CJK>
0x5039 # <CJK>
-0x5043 # <CJK>
-0x5047 # <CJK>
-0x5048 # <CJK>
0x5049 # <CJK>
0x504F # <CJK>
-0x5050 # <CJK>
-0x5055 # <CJK>
-0x5056 # <CJK>
-0x505A # <CJK>
0x505C # <CJK>
0x5065 # <CJK>
-0x506C # <CJK>
-0x5072 # <CJK>
0x5074 # <CJK>
0x5075 # <CJK>
0x5076 # <CJK>
-0x5078 # <CJK>
0x507D # <CJK>
-0x5080 # <CJK>
-0x5085 # <CJK>
0x508D # <CJK>
0x5091 # <CJK>
0x5098 # <CJK>
0x5099 # <CJK>
-0x509A # <CJK>
0x50AC # <CJK>
-0x50AD # <CJK>
0x50B2 # <CJK>
-0x50B3 # <CJK>
-0x50B4 # <CJK>
0x50B5 # <CJK>
0x50B7 # <CJK>
0x50BE # <CJK>
-0x50C2 # <CJK>
0x50C5 # <CJK>
-0x50C9 # <CJK>
-0x50CA # <CJK>
0x50CD # <CJK>
0x50CF # <CJK>
-0x50D1 # <CJK>
0x50D5 # <CJK>
-0x50D6 # <CJK>
0x50DA # <CJK>
-0x50DE # <CJK>
-0x50E3 # <CJK>
-0x50E5 # <CJK>
0x50E7 # <CJK>
-0x50ED # <CJK>
-0x50EE # <CJK>
-0x50F5 # <CJK>
-0x50F9 # <CJK>
-0x50FB # <CJK>
0x5100 # <CJK>
-0x5101 # <CJK>
-0x5102 # <CJK>
0x5104 # <CJK>
-0x5109 # <CJK>
0x5112 # <CJK>
-0x5114 # <CJK>
-0x5115 # <CJK>
-0x5116 # <CJK>
-0x5118 # <CJK>
-0x511A # <CJK>
0x511F # <CJK>
-0x5121 # <CJK>
0x512A # <CJK>
-0x5132 # <CJK>
-0x5137 # <CJK>
-0x513A # <CJK>
-0x513B # <CJK>
-0x513C # <CJK>
-0x513F # <CJK>
-0x5140 # <CJK>
-0x5141 # <CJK>
0x5143 # <CJK>
0x5144 # <CJK>
0x5145 # <CJK>
0x5146 # <CJK>
-0x5147 # <CJK>
0x5148 # <CJK>
0x5149 # <CJK>
0x514B # <CJK>
-0x514C # <CJK>
0x514D # <CJK>
-0x514E # <CJK>
0x5150 # <CJK>
-0x5152 # <CJK>
-0x5154 # <CJK>
0x515A # <CJK>
-0x515C # <CJK>
-0x5162 # <CJK>
0x5165 # <CJK>
0x5168 # <CJK>
-0x5169 # <CJK>
-0x516A # <CJK>
0x516B # <CJK>
0x516C # <CJK>
0x516D # <CJK>
-0x516E # <CJK>
0x5171 # <CJK>
0x5175 # <CJK>
-0x5176 # <CJK>
0x5177 # <CJK>
0x5178 # <CJK>
0x517C # <CJK>
-0x5180 # <CJK>
-0x5182 # <CJK>
0x5185 # <CJK>
0x5186 # <CJK>
-0x5189 # <CJK>
0x518A # <CJK>
-0x518C # <CJK>
0x518D # <CJK>
-0x518F # <CJK>
-0x5190 # <CJK>
-0x5191 # <CJK>
0x5192 # <CJK>
-0x5193 # <CJK>
-0x5195 # <CJK>
-0x5196 # <CJK>
0x5197 # <CJK>
0x5199 # <CJK>
0x51A0 # <CJK>
-0x51A2 # <CJK>
-0x51A4 # <CJK>
0x51A5 # <CJK>
-0x51A6 # <CJK>
-0x51A8 # <CJK>
-0x51A9 # <CJK>
-0x51AA # <CJK>
-0x51AB # <CJK>
0x51AC # <CJK>
-0x51B0 # <CJK>
-0x51B1 # <CJK>
-0x51B2 # <CJK>
-0x51B3 # <CJK>
-0x51B4 # <CJK>
-0x51B5 # <CJK>
0x51B6 # <CJK>
0x51B7 # <CJK>
-0x51BD # <CJK>
0x51C4 # <CJK>
-0x51C5 # <CJK>
0x51C6 # <CJK>
-0x51C9 # <CJK>
-0x51CB # <CJK>
-0x51CC # <CJK>
0x51CD # <CJK>
-0x51D6 # <CJK>
-0x51DB # <CJK>
-#0x51DC # <CJK> # not in kochi fonts
0x51DD # <CJK>
-0x51E0 # <CJK>
0x51E1 # <CJK>
0x51E6 # <CJK>
-0x51E7 # <CJK>
-0x51E9 # <CJK>
-0x51EA # <CJK>
-0x51ED # <CJK>
-0x51F0 # <CJK>
-0x51F1 # <CJK>
-0x51F5 # <CJK>
0x51F6 # <CJK>
0x51F8 # <CJK>
0x51F9 # <CJK>
0x51FA # <CJK>
-0x51FD # <CJK>
-0x51FE # <CJK>
0x5200 # <CJK>
0x5203 # <CJK>
-0x5204 # <CJK>
0x5206 # <CJK>
0x5207 # <CJK>
0x5208 # <CJK>
0x520A # <CJK>
-0x520B # <CJK>
-0x520E # <CJK>
0x5211 # <CJK>
-0x5214 # <CJK>
0x5217 # <CJK>
0x521D # <CJK>
0x5224 # <CJK>
0x5225 # <CJK>
-0x5227 # <CJK>
0x5229 # <CJK>
-0x522A # <CJK>
-0x522E # <CJK>
0x5230 # <CJK>
-0x5233 # <CJK>
0x5236 # <CJK>
0x5237 # <CJK>
0x5238 # <CJK>
0x5239 # <CJK>
0x523A # <CJK>
0x523B # <CJK>
-0x5243 # <CJK>
-0x5244 # <CJK>
0x5247 # <CJK>
0x524A # <CJK>
-0x524B # <CJK>
-0x524C # <CJK>
0x524D # <CJK>
-0x524F # <CJK>
-0x5254 # <CJK>
0x5256 # <CJK>
0x525B # <CJK>
-0x525E # <CJK>
+#0x525D # <CJK> # not in sazanami gothic/mincho, DroidSansJapanese
0x5263 # <CJK>
0x5264 # <CJK>
-0x5265 # <CJK>
-0x5269 # <CJK>
-0x526A # <CJK>
0x526F # <CJK>
0x5270 # <CJK>
-0x5271 # <CJK>
0x5272 # <CJK>
-0x5273 # <CJK>
-0x5274 # <CJK>
0x5275 # <CJK>
-0x527D # <CJK>
-0x527F # <CJK>
-0x5283 # <CJK>
0x5287 # <CJK>
-0x5288 # <CJK>
-0x5289 # <CJK>
-0x528D # <CJK>
-0x5291 # <CJK>
-0x5292 # <CJK>
-0x5294 # <CJK>
0x529B # <CJK>
0x529F # <CJK>
0x52A0 # <CJK>
0x52A3 # <CJK>
0x52A9 # <CJK>
0x52AA # <CJK>
-0x52AB # <CJK>
-0x52AC # <CJK>
-0x52AD # <CJK>
0x52B1 # <CJK>
0x52B4 # <CJK>
-0x52B5 # <CJK>
0x52B9 # <CJK>
-0x52BC # <CJK>
0x52BE # <CJK>
-0x52C1 # <CJK>
0x52C3 # <CJK>
0x52C5 # <CJK>
0x52C7 # <CJK>
0x52C9 # <CJK>
-0x52CD # <CJK>
-0x52D2 # <CJK>
0x52D5 # <CJK>
-0x52D7 # <CJK>
0x52D8 # <CJK>
0x52D9 # <CJK>
0x52DD # <CJK>
-0x52DE # <CJK>
0x52DF # <CJK>
-0x52E0 # <CJK>
0x52E2 # <CJK>
-0x52E3 # <CJK>
0x52E4 # <CJK>
-0x52E6 # <CJK>
0x52E7 # <CJK>
0x52F2 # <CJK>
-0x52F3 # <CJK>
-0x52F5 # <CJK>
-0x52F8 # <CJK>
-0x52F9 # <CJK>
-0x52FA # <CJK>
0x52FE # <CJK>
-0x52FF # <CJK>
-0x5301 # <CJK>
0x5302 # <CJK>
0x5305 # <CJK>
-0x5306 # <CJK>
-0x5308 # <CJK>
-0x530D # <CJK>
-0x530F # <CJK>
-0x5310 # <CJK>
-0x5315 # <CJK>
0x5316 # <CJK>
0x5317 # <CJK>
-0x5319 # <CJK>
-0x531A # <CJK>
-0x531D # <CJK>
0x5320 # <CJK>
-0x5321 # <CJK>
-0x5323 # <CJK>
-0x532A # <CJK>
-0x532F # <CJK>
-0x5331 # <CJK>
-0x5333 # <CJK>
-0x5338 # <CJK>
0x5339 # <CJK>
0x533A # <CJK>
0x533B # <CJK>
0x533F # <CJK>
-0x5340 # <CJK>
0x5341 # <CJK>
0x5343 # <CJK>
-0x5345 # <CJK>
-0x5346 # <CJK>
0x5347 # <CJK>
0x5348 # <CJK>
-0x5349 # <CJK>
0x534A # <CJK>
-0x534D # <CJK>
0x5351 # <CJK>
0x5352 # <CJK>
0x5353 # <CJK>
0x5357 # <CJK>
0x5358 # <CJK>
0x535A # <CJK>
-0x535C # <CJK>
-0x535E # <CJK>
0x5360 # <CJK>
-0x5366 # <CJK>
-0x5369 # <CJK>
-0x536E # <CJK>
-0x536F # <CJK>
0x5370 # <CJK>
0x5371 # <CJK>
0x5373 # <CJK>
0x5374 # <CJK>
0x5375 # <CJK>
-0x5377 # <CJK>
0x5378 # <CJK>
-0x537B # <CJK>
-0x537F # <CJK>
-0x5382 # <CJK>
0x5384 # <CJK>
-0x5396 # <CJK>
0x5398 # <CJK>
0x539A # <CJK>
0x539F # <CJK>
-0x53A0 # <CJK>
-0x53A5 # <CJK>
-0x53A6 # <CJK>
-0x53A8 # <CJK>
-0x53A9 # <CJK>
-0x53AD # <CJK>
-0x53AE # <CJK>
-0x53B0 # <CJK>
0x53B3 # <CJK>
-0x53B6 # <CJK>
0x53BB # <CJK>
0x53C2 # <CJK>
-0x53C3 # <CJK>
0x53C8 # <CJK>
-0x53C9 # <CJK>
0x53CA # <CJK>
0x53CB # <CJK>
0x53CC # <CJK>
0x53D6 # <CJK>
0x53D7 # <CJK>
0x53D9 # <CJK>
-0x53DB # <CJK>
-0x53DF # <CJK>
-0x53E1 # <CJK>
-0x53E2 # <CJK>
0x53E3 # <CJK>
0x53E4 # <CJK>
0x53E5 # <CJK>
-0x53E8 # <CJK>
-0x53E9 # <CJK>
-0x53EA # <CJK>
0x53EB # <CJK>
0x53EC # <CJK>
-0x53ED # <CJK>
-0x53EE # <CJK>
0x53EF # <CJK>
0x53F0 # <CJK>
-0x53F1 # <CJK>
0x53F2 # <CJK>
0x53F3 # <CJK>
-0x53F6 # <CJK>
0x53F7 # <CJK>
0x53F8 # <CJK>
-0x53FA # <CJK>
-0x5401 # <CJK>
-0x5403 # <CJK>
0x5404 # <CJK>
0x5408 # <CJK>
0x5409 # <CJK>
-0x540A # <CJK>
-0x540B # <CJK>
0x540C # <CJK>
0x540D # <CJK>
0x540E # <CJK>
0x5410 # <CJK>
0x5411 # <CJK>
0x541B # <CJK>
-0x541D # <CJK>
0x541F # <CJK>
-0x5420 # <CJK>
0x5426 # <CJK>
-0x5429 # <CJK>
0x542B # <CJK>
-0x542C # <CJK>
-0x542D # <CJK>
-0x542E # <CJK>
-0x5436 # <CJK>
0x5438 # <CJK>
0x5439 # <CJK>
-0x543B # <CJK>
-0x543C # <CJK>
-0x543D # <CJK>
-0x543E # <CJK>
-0x5440 # <CJK>
0x5442 # <CJK>
-0x5446 # <CJK>
0x5448 # <CJK>
0x5449 # <CJK>
0x544A # <CJK>
-0x544E # <CJK>
-0x5451 # <CJK>
-0x545F # <CJK>
0x5468 # <CJK>
0x546A # <CJK>
-0x5470 # <CJK>
-0x5471 # <CJK>
0x5473 # <CJK>
-0x5475 # <CJK>
-0x5476 # <CJK>
-0x5477 # <CJK>
-0x547B # <CJK>
0x547C # <CJK>
0x547D # <CJK>
-0x5480 # <CJK>
-0x5484 # <CJK>
-0x5486 # <CJK>
-0x548B # <CJK>
0x548C # <CJK>
-0x548E # <CJK>
-0x548F # <CJK>
-0x5490 # <CJK>
-0x5492 # <CJK>
-0x54A2 # <CJK>
-0x54A4 # <CJK>
-0x54A5 # <CJK>
-0x54A8 # <CJK>
-0x54AB # <CJK>
-0x54AC # <CJK>
-0x54AF # <CJK>
0x54B2 # <CJK>
-0x54B3 # <CJK>
-0x54B8 # <CJK>
-0x54BC # <CJK>
0x54BD # <CJK>
-0x54BE # <CJK>
0x54C0 # <CJK>
0x54C1 # <CJK>
-0x54C2 # <CJK>
-0x54C4 # <CJK>
-0x54C7 # <CJK>
-0x54C8 # <CJK>
-0x54C9 # <CJK>
-0x54D8 # <CJK>
0x54E1 # <CJK>
-0x54E2 # <CJK>
-0x54E5 # <CJK>
-0x54E6 # <CJK>
-0x54E8 # <CJK>
-0x54E9 # <CJK>
-0x54ED # <CJK>
-0x54EE # <CJK>
0x54F2 # <CJK>
0x54FA # <CJK>
-0x54FD # <CJK>
0x5504 # <CJK>
0x5506 # <CJK>
0x5507 # <CJK>
-0x550F # <CJK>
0x5510 # <CJK>
-0x5514 # <CJK>
-0x5516 # <CJK>
-0x552E # <CJK>
0x552F # <CJK>
0x5531 # <CJK>
-0x5533 # <CJK>
-0x5538 # <CJK>
-0x5539 # <CJK>
0x553E # <CJK>
-0x5540 # <CJK>
-0x5544 # <CJK>
-0x5545 # <CJK>
0x5546 # <CJK>
-0x554C # <CJK>
0x554F # <CJK>
0x5553 # <CJK>
-0x5556 # <CJK>
-0x5557 # <CJK>
-0x555C # <CJK>
-0x555D # <CJK>
-0x5563 # <CJK>
-0x557B # <CJK>
-0x557C # <CJK>
-0x557E # <CJK>
-0x5580 # <CJK>
-0x5583 # <CJK>
0x5584 # <CJK>
-0x5587 # <CJK>
0x5589 # <CJK>
-0x558A # <CJK>
-0x558B # <CJK>
-0x5598 # <CJK>
-0x5599 # <CJK>
0x559A # <CJK>
0x559C # <CJK>
0x559D # <CJK>
-0x559E # <CJK>
-0x559F # <CJK>
-0x55A7 # <CJK>
-0x55A8 # <CJK>
0x55A9 # <CJK>
0x55AA # <CJK>
0x55AB # <CJK>
-0x55AC # <CJK>
-0x55AE # <CJK>
-0x55B0 # <CJK>
0x55B6 # <CJK>
-0x55C4 # <CJK>
0x55C5 # <CJK>
-0x55C7 # <CJK>
-0x55D4 # <CJK>
-0x55DA # <CJK>
-0x55DC # <CJK>
-0x55DF # <CJK>
0x55E3 # <CJK>
-0x55E4 # <CJK>
-0x55F7 # <CJK>
-0x55F9 # <CJK>
-0x55FD # <CJK>
-0x55FE # <CJK>
0x5606 # <CJK>
-0x5609 # <CJK>
-0x5614 # <CJK>
-0x5616 # <CJK>
-0x5617 # <CJK>
-0x5618 # <CJK>
-0x561B # <CJK>
-0x5629 # <CJK>
-0x562F # <CJK>
0x5631 # <CJK>
0x5632 # <CJK>
-0x5634 # <CJK>
-0x5636 # <CJK>
-0x5638 # <CJK>
-0x5642 # <CJK>
-0x564C # <CJK>
-0x564E # <CJK>
-0x5650 # <CJK>
-0x565B # <CJK>
-0x5664 # <CJK>
0x5668 # <CJK>
-0x566A # <CJK>
-0x566B # <CJK>
-0x566C # <CJK>
0x5674 # <CJK>
-0x5678 # <CJK>
-0x567A # <CJK>
-0x5680 # <CJK>
-0x5686 # <CJK>
0x5687 # <CJK>
-0x568A # <CJK>
-0x568F # <CJK>
-0x5694 # <CJK>
-0x56A0 # <CJK>
-0x56A2 # <CJK>
-0x56A5 # <CJK>
-0x56AE # <CJK>
-0x56B4 # <CJK>
-0x56B6 # <CJK>
-0x56BC # <CJK>
-0x56C0 # <CJK>
-0x56C1 # <CJK>
-0x56C2 # <CJK>
-0x56C3 # <CJK>
-0x56C8 # <CJK>
-0x56CE # <CJK>
-0x56D1 # <CJK>
-0x56D3 # <CJK>
-0x56D7 # <CJK>
-0x56D8 # <CJK>
0x56DA # <CJK>
0x56DB # <CJK>
0x56DE # <CJK>
0x56E0 # <CJK>
0x56E3 # <CJK>
-0x56EE # <CJK>
0x56F0 # <CJK>
0x56F2 # <CJK>
0x56F3 # <CJK>
-0x56F9 # <CJK>
0x56FA # <CJK>
0x56FD # <CJK>
-0x56FF # <CJK>
-0x5700 # <CJK>
-0x5703 # <CJK>
-0x5704 # <CJK>
-0x5708 # <CJK>
-0x5709 # <CJK>
-0x570B # <CJK>
-0x570D # <CJK>
0x570F # <CJK>
0x5712 # <CJK>
-0x5713 # <CJK>
-0x5716 # <CJK>
-0x5718 # <CJK>
-0x571C # <CJK>
0x571F # <CJK>
-0x5726 # <CJK>
0x5727 # <CJK>
0x5728 # <CJK>
-0x572D # <CJK>
0x5730 # <CJK>
-0x5737 # <CJK>
-0x5738 # <CJK>
-0x573B # <CJK>
-0x5740 # <CJK>
0x5742 # <CJK>
0x5747 # <CJK>
0x574A # <CJK>
-0x574E # <CJK>
-0x574F # <CJK>
-0x5750 # <CJK>
0x5751 # <CJK>
-0x5761 # <CJK>
-0x5764 # <CJK>
-0x5766 # <CJK>
-0x5769 # <CJK>
0x576A # <CJK>
-0x577F # <CJK>
0x5782 # <CJK>
-0x5788 # <CJK>
-0x5789 # <CJK>
0x578B # <CJK>
-0x5793 # <CJK>
-0x57A0 # <CJK>
-0x57A2 # <CJK>
0x57A3 # <CJK>
-0x57A4 # <CJK>
-0x57AA # <CJK>
-0x57B0 # <CJK>
-0x57B3 # <CJK>
-0x57C0 # <CJK>
-0x57C3 # <CJK>
-0x57C6 # <CJK>
0x57CB # <CJK>
0x57CE # <CJK>
-0x57D2 # <CJK>
-0x57D3 # <CJK>
-0x57D4 # <CJK>
-0x57D6 # <CJK>
-0x57DC # <CJK>
0x57DF # <CJK>
-0x57E0 # <CJK>
-0x57E3 # <CJK>
-0x57F4 # <CJK>
0x57F7 # <CJK>
0x57F9 # <CJK>
0x57FA # <CJK>
0x5802 # <CJK>
0x5805 # <CJK>
0x5806 # <CJK>
-0x580A # <CJK>
-0x580B # <CJK>
0x5815 # <CJK>
-0x5819 # <CJK>
-0x581D # <CJK>
-0x5821 # <CJK>
0x5824 # <CJK>
0x582A # <CJK>
-0x582F # <CJK>
-0x5830 # <CJK>
0x5831 # <CJK>
0x5834 # <CJK>
-0x5835 # <CJK>
-0x583A # <CJK>
-0x583D # <CJK>
0x5840 # <CJK>
0x5841 # <CJK>
0x584A # <CJK>
-0x584B # <CJK>
0x5851 # <CJK>
-0x5852 # <CJK>
0x5854 # <CJK>
0x5857 # <CJK>
-0x5858 # <CJK>
-0x5859 # <CJK>
0x585A # <CJK>
0x585E # <CJK>
-0x5862 # <CJK>
+#0x5861 # <CJK> # not in DroidSansJapanese
0x5869 # <CJK>
-0x586B # <CJK>
-0x5870 # <CJK>
-0x5872 # <CJK>
-0x5875 # <CJK>
-0x5879 # <CJK>
0x587E # <CJK>
0x5883 # <CJK>
-0x5885 # <CJK>
0x5893 # <CJK>
0x5897 # <CJK>
0x589C # <CJK>
-0x589F # <CJK>
0x58A8 # <CJK>
-0x58AB # <CJK>
-0x58AE # <CJK>
0x58B3 # <CJK>
-0x58B8 # <CJK>
-0x58B9 # <CJK>
-0x58BA # <CJK>
-0x58BB # <CJK>
0x58BE # <CJK>
0x58C1 # <CJK>
-0x58C5 # <CJK>
0x58C7 # <CJK>
0x58CA # <CJK>
0x58CC # <CJK>
-0x58D1 # <CJK>
-0x58D3 # <CJK>
-0x58D5 # <CJK>
-0x58D7 # <CJK>
-0x58D8 # <CJK>
-0x58D9 # <CJK>
-0x58DC # <CJK>
-0x58DE # <CJK>
-0x58DF # <CJK>
-0x58E4 # <CJK>
-0x58E5 # <CJK>
0x58EB # <CJK>
-0x58EC # <CJK>
0x58EE # <CJK>
-0x58EF # <CJK>
0x58F0 # <CJK>
0x58F1 # <CJK>
0x58F2 # <CJK>
-0x58F7 # <CJK>
-0x58F9 # <CJK>
-0x58FA # <CJK>
-0x58FB # <CJK>
-0x58FC # <CJK>
-0x58FD # <CJK>
-0x5902 # <CJK>
0x5909 # <CJK>
-0x590A # <CJK>
0x590F # <CJK>
-0x5910 # <CJK>
0x5915 # <CJK>
0x5916 # <CJK>
-0x5918 # <CJK>
-0x5919 # <CJK>
0x591A # <CJK>
-0x591B # <CJK>
0x591C # <CJK>
0x5922 # <CJK>
-0x5925 # <CJK>
0x5927 # <CJK>
0x5929 # <CJK>
0x592A # <CJK>
0x592B # <CJK>
-0x592C # <CJK>
-0x592D # <CJK>
0x592E # <CJK>
0x5931 # <CJK>
-0x5932 # <CJK>
-0x5937 # <CJK>
-0x5938 # <CJK>
-0x593E # <CJK>
-0x5944 # <CJK>
0x5947 # <CJK>
0x5948 # <CJK>
0x5949 # <CJK>
-0x594E # <CJK>
0x594F # <CJK>
-0x5950 # <CJK>
0x5951 # <CJK>
0x5954 # <CJK>
-0x5955 # <CJK>
-0x5957 # <CJK>
-0x5958 # <CJK>
-0x595A # <CJK>
-0x5960 # <CJK>
-0x5962 # <CJK>
0x5965 # <CJK>
-0x5967 # <CJK>
0x5968 # <CJK>
-0x5969 # <CJK>
0x596A # <CJK>
-0x596C # <CJK>
0x596E # <CJK>
0x5973 # <CJK>
0x5974 # <CJK>
-0x5978 # <CJK>
0x597D # <CJK>
-0x5981 # <CJK>
0x5982 # <CJK>
0x5983 # <CJK>
0x5984 # <CJK>
0x598A # <CJK>
-0x598D # <CJK>
-0x5993 # <CJK>
0x5996 # <CJK>
0x5999 # <CJK>
-0x599B # <CJK>
-0x599D # <CJK>
-0x59A3 # <CJK>
0x59A5 # <CJK>
0x59A8 # <CJK>
0x59AC # <CJK>
-0x59B2 # <CJK>
0x59B9 # <CJK>
0x59BB # <CJK>
-0x59BE # <CJK>
-0x59C6 # <CJK>
0x59C9 # <CJK>
0x59CB # <CJK>
-0x59D0 # <CJK>
-0x59D1 # <CJK>
0x59D3 # <CJK>
0x59D4 # <CJK>
-0x59D9 # <CJK>
-0x59DA # <CJK>
-0x59DC # <CJK>
-0x59E5 # <CJK>
-0x59E6 # <CJK>
-0x59E8 # <CJK>
-0x59EA # <CJK>
0x59EB # <CJK>
-0x59F6 # <CJK>
0x59FB # <CJK>
0x59FF # <CJK>
0x5A01 # <CJK>
-0x5A03 # <CJK>
-0x5A09 # <CJK>
-0x5A11 # <CJK>
0x5A18 # <CJK>
-0x5A1A # <CJK>
-0x5A1C # <CJK>
-0x5A1F # <CJK>
0x5A20 # <CJK>
-0x5A25 # <CJK>
-0x5A29 # <CJK>
0x5A2F # <CJK>
-0x5A35 # <CJK>
-0x5A36 # <CJK>
-0x5A3C # <CJK>
-0x5A40 # <CJK>
-0x5A41 # <CJK>
0x5A46 # <CJK>
-0x5A49 # <CJK>
0x5A5A # <CJK>
-0x5A62 # <CJK>
0x5A66 # <CJK>
-0x5A6A # <CJK>
-0x5A6C # <CJK>
0x5A7F # <CJK>
0x5A92 # <CJK>
-0x5A9A # <CJK>
0x5A9B # <CJK>
-0x5ABC # <CJK>
-0x5ABD # <CJK>
-0x5ABE # <CJK>
0x5AC1 # <CJK>
-0x5AC2 # <CJK>
0x5AC9 # <CJK>
-0x5ACB # <CJK>
0x5ACC # <CJK>
-0x5AD0 # <CJK>
-0x5AD6 # <CJK>
-0x5AD7 # <CJK>
0x5AE1 # <CJK>
-0x5AE3 # <CJK>
-0x5AE6 # <CJK>
-0x5AE9 # <CJK>
-0x5AFA # <CJK>
-0x5AFB # <CJK>
-0x5B09 # <CJK>
-0x5B0B # <CJK>
-0x5B0C # <CJK>
-0x5B16 # <CJK>
0x5B22 # <CJK>
-0x5B2A # <CJK>
-0x5B2C # <CJK>
-0x5B30 # <CJK>
-0x5B32 # <CJK>
-0x5B36 # <CJK>
-0x5B3E # <CJK>
-0x5B40 # <CJK>
-0x5B43 # <CJK>
-0x5B45 # <CJK>
0x5B50 # <CJK>
-0x5B51 # <CJK>
0x5B54 # <CJK>
-0x5B55 # <CJK>
0x5B57 # <CJK>
0x5B58 # <CJK>
-0x5B5A # <CJK>
-0x5B5B # <CJK>
-0x5B5C # <CJK>
0x5B5D # <CJK>
-0x5B5F # <CJK>
0x5B63 # <CJK>
0x5B64 # <CJK>
-0x5B65 # <CJK>
0x5B66 # <CJK>
-0x5B69 # <CJK>
0x5B6B # <CJK>
-0x5B70 # <CJK>
-0x5B71 # <CJK>
-0x5B73 # <CJK>
-0x5B75 # <CJK>
-0x5B78 # <CJK>
-0x5B7A # <CJK>
-0x5B80 # <CJK>
-0x5B83 # <CJK>
0x5B85 # <CJK>
0x5B87 # <CJK>
0x5B88 # <CJK>
0x5B89 # <CJK>
-0x5B8B # <CJK>
0x5B8C # <CJK>
-0x5B8D # <CJK>
-0x5B8F # <CJK>
-0x5B95 # <CJK>
0x5B97 # <CJK>
0x5B98 # <CJK>
0x5B99 # <CJK>
0x5BA2 # <CJK>
0x5BA3 # <CJK>
0x5BA4 # <CJK>
-0x5BA5 # <CJK>
-0x5BA6 # <CJK>
0x5BAE # <CJK>
0x5BB0 # <CJK>
0x5BB3 # <CJK>
0x5BB4 # <CJK>
0x5BB5 # <CJK>
0x5BB6 # <CJK>
-0x5BB8 # <CJK>
0x5BB9 # <CJK>
0x5BBF # <CJK>
0x5BC2 # <CJK>
-0x5BC3 # <CJK>
0x5BC4 # <CJK>
-0x5BC5 # <CJK>
0x5BC6 # <CJK>
-0x5BC7 # <CJK>
-0x5BC9 # <CJK>
0x5BCC # <CJK>
-0x5BD0 # <CJK>
0x5BD2 # <CJK>
-0x5BD3 # <CJK>
-0x5BD4 # <CJK>
0x5BDB # <CJK>
0x5BDD # <CJK>
-0x5BDE # <CJK>
0x5BDF # <CJK>
0x5BE1 # <CJK>
-0x5BE2 # <CJK>
-0x5BE4 # <CJK>
-0x5BE5 # <CJK>
-0x5BE6 # <CJK>
0x5BE7 # <CJK>
-0x5BE8 # <CJK>
0x5BE9 # <CJK>
-0x5BEB # <CJK>
0x5BEE # <CJK>
-0x5BF0 # <CJK>
-0x5BF3 # <CJK>
-0x5BF5 # <CJK>
-0x5BF6 # <CJK>
0x5BF8 # <CJK>
0x5BFA # <CJK>
0x5BFE # <CJK>
0x5C01 # <CJK>
0x5C02 # <CJK>
0x5C04 # <CJK>
-0x5C05 # <CJK>
0x5C06 # <CJK>
-0x5C07 # <CJK>
-0x5C08 # <CJK>
0x5C09 # <CJK>
0x5C0A # <CJK>
0x5C0B # <CJK>
-0x5C0D # <CJK>
0x5C0E # <CJK>
0x5C0F # <CJK>
0x5C11 # <CJK>
-0x5C13 # <CJK>
-0x5C16 # <CJK>
0x5C1A # <CJK>
-0x5C20 # <CJK>
-0x5C22 # <CJK>
-0x5C24 # <CJK>
-0x5C28 # <CJK>
-0x5C2D # <CJK>
0x5C31 # <CJK>
-0x5C38 # <CJK>
-0x5C39 # <CJK>
0x5C3A # <CJK>
0x5C3B # <CJK>
0x5C3C # <CJK>
0x5C3E # <CJK>
0x5C3F # <CJK>
0x5C40 # <CJK>
-0x5C41 # <CJK>
0x5C45 # <CJK>
-0x5C46 # <CJK>
0x5C48 # <CJK>
0x5C4A # <CJK>
0x5C4B # <CJK>
-0x5C4D # <CJK>
-0x5C4E # <CJK>
-0x5C4F # <CJK>
-0x5C50 # <CJK>
-0x5C51 # <CJK>
-0x5C53 # <CJK>
0x5C55 # <CJK>
0x5C5E # <CJK>
-0x5C60 # <CJK>
-0x5C61 # <CJK>
0x5C64 # <CJK>
0x5C65 # <CJK>
-0x5C6C # <CJK>
-0x5C6E # <CJK>
0x5C6F # <CJK>
0x5C71 # <CJK>
-0x5C76 # <CJK>
-0x5C79 # <CJK>
-0x5C8C # <CJK>
0x5C90 # <CJK>
-0x5C91 # <CJK>
-0x5C94 # <CJK>
0x5CA1 # <CJK>
-0x5CA8 # <CJK>
0x5CA9 # <CJK>
-0x5CAB # <CJK>
0x5CAC # <CJK>
-0x5CB1 # <CJK>
0x5CB3 # <CJK>
-0x5CB6 # <CJK>
-0x5CB7 # <CJK>
0x5CB8 # <CJK>
-0x5CBB # <CJK>
-0x5CBC # <CJK>
-0x5CBE # <CJK>
-0x5CC5 # <CJK>
-0x5CC7 # <CJK>
-0x5CD9 # <CJK>
0x5CE0 # <CJK>
0x5CE1 # <CJK>
-0x5CE8 # <CJK>
-0x5CE9 # <CJK>
-0x5CEA # <CJK>
-0x5CED # <CJK>
-0x5CEF # <CJK>
0x5CF0 # <CJK>
0x5CF6 # <CJK>
-0x5CFA # <CJK>
-0x5CFB # <CJK>
-0x5CFD # <CJK>
0x5D07 # <CJK>
-0x5D0B # <CJK>
0x5D0E # <CJK>
-0x5D11 # <CJK>
-0x5D14 # <CJK>
-0x5D15 # <CJK>
0x5D16 # <CJK>
-0x5D17 # <CJK>
-0x5D18 # <CJK>
-0x5D19 # <CJK>
-0x5D1A # <CJK>
-0x5D1B # <CJK>
-0x5D1F # <CJK>
-0x5D22 # <CJK>
0x5D29 # <CJK>
-0x5D4B # <CJK>
-0x5D4C # <CJK>
-0x5D4E # <CJK>
0x5D50 # <CJK>
-0x5D52 # <CJK>
-0x5D5C # <CJK>
-0x5D69 # <CJK>
-0x5D6C # <CJK>
-0x5D6F # <CJK>
-0x5D73 # <CJK>
-0x5D76 # <CJK>
-0x5D82 # <CJK>
-0x5D84 # <CJK>
-0x5D87 # <CJK>
-0x5D8B # <CJK>
-0x5D8C # <CJK>
-0x5D90 # <CJK>
-0x5D9D # <CJK>
-0x5DA2 # <CJK>
-0x5DAC # <CJK>
-0x5DAE # <CJK>
-0x5DB7 # <CJK>
-0x5DBA # <CJK>
-0x5DBC # <CJK>
-0x5DBD # <CJK>
-0x5DC9 # <CJK>
-0x5DCC # <CJK>
-0x5DCD # <CJK>
-0x5DD2 # <CJK>
-0x5DD3 # <CJK>
-0x5DD6 # <CJK>
-0x5DDB # <CJK>
0x5DDD # <CJK>
0x5DDE # <CJK>
0x5DE1 # <CJK>
0x5DE6 # <CJK>
0x5DE7 # <CJK>
0x5DE8 # <CJK>
-0x5DEB # <CJK>
0x5DEE # <CJK>
0x5DF1 # <CJK>
-0x5DF2 # <CJK>
-0x5DF3 # <CJK>
-0x5DF4 # <CJK>
-0x5DF5 # <CJK>
-0x5DF7 # <CJK>
0x5DFB # <CJK>
-0x5DFD # <CJK>
0x5DFE # <CJK>
0x5E02 # <CJK>
0x5E03 # <CJK>
0x5E06 # <CJK>
-0x5E0B # <CJK>
0x5E0C # <CJK>
-0x5E11 # <CJK>
-0x5E16 # <CJK>
-0x5E19 # <CJK>
-0x5E1A # <CJK>
-0x5E1B # <CJK>
0x5E1D # <CJK>
0x5E25 # <CJK>
0x5E2B # <CJK>
0x5E2F # <CJK>
0x5E30 # <CJK>
0x5E33 # <CJK>
-0x5E36 # <CJK>
-0x5E37 # <CJK>
0x5E38 # <CJK>
0x5E3D # <CJK>
-0x5E40 # <CJK>
-0x5E43 # <CJK>
-0x5E44 # <CJK>
0x5E45 # <CJK>
-0x5E47 # <CJK>
-0x5E4C # <CJK>
-0x5E4E # <CJK>
-0x5E54 # <CJK>
0x5E55 # <CJK>
-0x5E57 # <CJK>
-0x5E5F # <CJK>
-0x5E61 # <CJK>
-0x5E62 # <CJK>
0x5E63 # <CJK>
-0x5E64 # <CJK>
0x5E72 # <CJK>
0x5E73 # <CJK>
0x5E74 # <CJK>
-0x5E75 # <CJK>
-0x5E76 # <CJK>
0x5E78 # <CJK>
0x5E79 # <CJK>
-0x5E7A # <CJK>
0x5E7B # <CJK>
0x5E7C # <CJK>
0x5E7D # <CJK>
0x5E7E # <CJK>
-0x5E7F # <CJK>
0x5E81 # <CJK>
0x5E83 # <CJK>
-0x5E84 # <CJK>
-0x5E87 # <CJK>
0x5E8A # <CJK>
0x5E8F # <CJK>
0x5E95 # <CJK>
-0x5E96 # <CJK>
0x5E97 # <CJK>
-0x5E9A # <CJK>
0x5E9C # <CJK>
-0x5EA0 # <CJK>
0x5EA6 # <CJK>
0x5EA7 # <CJK>
0x5EAB # <CJK>
0x5EAD # <CJK>
-0x5EB5 # <CJK>
0x5EB6 # <CJK>
0x5EB7 # <CJK>
0x5EB8 # <CJK>
-0x5EC1 # <CJK>
-0x5EC2 # <CJK>
0x5EC3 # <CJK>
-0x5EC8 # <CJK>
0x5EC9 # <CJK>
0x5ECA # <CJK>
-0x5ECF # <CJK>
-0x5ED0 # <CJK>
-0x5ED3 # <CJK>
-0x5ED6 # <CJK>
-0x5EDA # <CJK>
-0x5EDB # <CJK>
-0x5EDD # <CJK>
-0x5EDF # <CJK>
-0x5EE0 # <CJK>
-0x5EE1 # <CJK>
-0x5EE2 # <CJK>
-0x5EE3 # <CJK>
-0x5EE8 # <CJK>
-0x5EE9 # <CJK>
-0x5EEC # <CJK>
-0x5EF0 # <CJK>
-0x5EF1 # <CJK>
-0x5EF3 # <CJK>
-0x5EF4 # <CJK>
0x5EF6 # <CJK>
0x5EF7 # <CJK>
-0x5EF8 # <CJK>
0x5EFA # <CJK>
-0x5EFB # <CJK>
-0x5EFC # <CJK>
-0x5EFE # <CJK>
-0x5EFF # <CJK>
0x5F01 # <CJK>
-0x5F03 # <CJK>
0x5F04 # <CJK>
-0x5F09 # <CJK>
0x5F0A # <CJK>
-0x5F0B # <CJK>
-0x5F0C # <CJK>
-0x5F0D # <CJK>
0x5F0F # <CJK>
0x5F10 # <CJK>
-0x5F11 # <CJK>
0x5F13 # <CJK>
0x5F14 # <CJK>
0x5F15 # <CJK>
-0x5F16 # <CJK>
-0x5F17 # <CJK>
-0x5F18 # <CJK>
-0x5F1B # <CJK>
0x5F1F # <CJK>
0x5F25 # <CJK>
0x5F26 # <CJK>
0x5F27 # <CJK>
-0x5F29 # <CJK>
-0x5F2D # <CJK>
-0x5F2F # <CJK>
0x5F31 # <CJK>
0x5F35 # <CJK>
0x5F37 # <CJK>
-0x5F38 # <CJK>
-0x5F3C # <CJK>
0x5F3E # <CJK>
-0x5F41 # <CJK>
-0x5F48 # <CJK>
-0x5F4A # <CJK>
-0x5F4C # <CJK>
-0x5F4E # <CJK>
-0x5F51 # <CJK>
0x5F53 # <CJK>
-0x5F56 # <CJK>
-0x5F57 # <CJK>
0x5F59 # <CJK>
-0x5F5C # <CJK>
-0x5F5D # <CJK>
-0x5F61 # <CJK>
0x5F62 # <CJK>
-0x5F66 # <CJK>
0x5F69 # <CJK>
-0x5F6A # <CJK>
0x5F6B # <CJK>
-0x5F6C # <CJK>
-0x5F6D # <CJK>
0x5F70 # <CJK>
0x5F71 # <CJK>
-0x5F73 # <CJK>
-0x5F77 # <CJK>
0x5F79 # <CJK>
0x5F7C # <CJK>
-0x5F7F # <CJK>
0x5F80 # <CJK>
0x5F81 # <CJK>
-0x5F82 # <CJK>
-0x5F83 # <CJK>
0x5F84 # <CJK>
0x5F85 # <CJK>
-0x5F87 # <CJK>
-0x5F88 # <CJK>
-0x5F8A # <CJK>
0x5F8B # <CJK>
0x5F8C # <CJK>
0x5F90 # <CJK>
-0x5F91 # <CJK>
0x5F92 # <CJK>
0x5F93 # <CJK>
0x5F97 # <CJK>
-0x5F98 # <CJK>
-0x5F99 # <CJK>
-0x5F9E # <CJK>
-0x5FA0 # <CJK>
0x5FA1 # <CJK>
-0x5FA8 # <CJK>
0x5FA9 # <CJK>
0x5FAA # <CJK>
-0x5FAD # <CJK>
0x5FAE # <CJK>
0x5FB3 # <CJK>
0x5FB4 # <CJK>
0x5FB9 # <CJK>
-0x5FBC # <CJK>
-0x5FBD # <CJK>
0x5FC3 # <CJK>
0x5FC5 # <CJK>
0x5FCC # <CJK>
0x5FCD # <CJK>
-0x5FD6 # <CJK>
0x5FD7 # <CJK>
0x5FD8 # <CJK>
0x5FD9 # <CJK>
0x5FDC # <CJK>
-0x5FDD # <CJK>
0x5FE0 # <CJK>
-0x5FE4 # <CJK>
0x5FEB # <CJK>
-0x5FF0 # <CJK>
-0x5FF1 # <CJK>
0x5FF5 # <CJK>
-0x5FF8 # <CJK>
-0x5FFB # <CJK>
-0x5FFD # <CJK>
-0x5FFF # <CJK>
-0x600E # <CJK>
-0x600F # <CJK>
-0x6010 # <CJK>
0x6012 # <CJK>
-0x6015 # <CJK>
0x6016 # <CJK>
-0x6019 # <CJK>
-0x601B # <CJK>
-0x601C # <CJK>
0x601D # <CJK>
0x6020 # <CJK>
-0x6021 # <CJK>
0x6025 # <CJK>
-0x6026 # <CJK>
0x6027 # <CJK>
0x6028 # <CJK>
-0x6029 # <CJK>
0x602A # <CJK>
-0x602B # <CJK>
-0x602F # <CJK>
-0x6031 # <CJK>
-0x603A # <CJK>
-0x6041 # <CJK>
-0x6042 # <CJK>
-0x6043 # <CJK>
-0x6046 # <CJK>
-0x604A # <CJK>
0x604B # <CJK>
-0x604D # <CJK>
0x6050 # <CJK>
0x6052 # <CJK>
-0x6055 # <CJK>
-0x6059 # <CJK>
-0x605A # <CJK>
-0x605F # <CJK>
-0x6060 # <CJK>
-0x6062 # <CJK>
0x6063 # <CJK>
-0x6064 # <CJK>
0x6065 # <CJK>
0x6068 # <CJK>
0x6069 # <CJK>
-0x606A # <CJK>
-0x606B # <CJK>
-0x606C # <CJK>
0x606D # <CJK>
0x606F # <CJK>
-0x6070 # <CJK>
0x6075 # <CJK>
-0x6077 # <CJK>
-0x6081 # <CJK>
-0x6083 # <CJK>
-0x6084 # <CJK>
-0x6089 # <CJK>
-0x608B # <CJK>
-0x608C # <CJK>
-0x608D # <CJK>
-0x6092 # <CJK>
0x6094 # <CJK>
-0x6096 # <CJK>
-0x6097 # <CJK>
-0x609A # <CJK>
-0x609B # <CJK>
0x609F # <CJK>
0x60A0 # <CJK>
0x60A3 # <CJK>
0x60A6 # <CJK>
-0x60A7 # <CJK>
0x60A9 # <CJK>
0x60AA # <CJK>
0x60B2 # <CJK>
-0x60B3 # <CJK>
-0x60B4 # <CJK>
-0x60B5 # <CJK>
-0x60B6 # <CJK>
-0x60B8 # <CJK>
0x60BC # <CJK>
-0x60BD # <CJK>
0x60C5 # <CJK>
-0x60C6 # <CJK>
-0x60C7 # <CJK>
0x60D1 # <CJK>
-0x60D3 # <CJK>
-0x60D8 # <CJK>
-0x60DA # <CJK>
0x60DC # <CJK>
-0x60DF # <CJK>
-0x60E0 # <CJK>
-0x60E1 # <CJK>
-0x60E3 # <CJK>
0x60E7 # <CJK>
0x60E8 # <CJK>
0x60F0 # <CJK>
-0x60F1 # <CJK>
0x60F3 # <CJK>
-0x60F4 # <CJK>
-0x60F6 # <CJK>
-0x60F7 # <CJK>
-0x60F9 # <CJK>
-0x60FA # <CJK>
-0x60FB # <CJK>
-0x6100 # <CJK>
0x6101 # <CJK>
-0x6103 # <CJK>
-0x6106 # <CJK>
-0x6108 # <CJK>
0x6109 # <CJK>
-0x610D # <CJK>
-0x610E # <CJK>
0x610F # <CJK>
-0x6115 # <CJK>
0x611A # <CJK>
0x611B # <CJK>
0x611F # <CJK>
-0x6121 # <CJK>
-0x6127 # <CJK>
-0x6128 # <CJK>
-0x612C # <CJK>
-0x6134 # <CJK>
-0x613C # <CJK>
-0x613D # <CJK>
-0x613E # <CJK>
-0x613F # <CJK>
-0x6142 # <CJK>
0x6144 # <CJK>
-0x6147 # <CJK>
0x6148 # <CJK>
-0x614A # <CJK>
0x614B # <CJK>
0x614C # <CJK>
-0x614D # <CJK>
0x614E # <CJK>
-0x6153 # <CJK>
0x6155 # <CJK>
-0x6158 # <CJK>
-0x6159 # <CJK>
-0x615A # <CJK>
-0x615D # <CJK>
-0x615F # <CJK>
0x6162 # <CJK>
0x6163 # <CJK>
-0x6165 # <CJK>
-0x6167 # <CJK>
0x6168 # <CJK>
-0x616B # <CJK>
0x616E # <CJK>
-0x616F # <CJK>
0x6170 # <CJK>
-0x6171 # <CJK>
-0x6173 # <CJK>
-0x6174 # <CJK>
-0x6175 # <CJK>
0x6176 # <CJK>
-0x6177 # <CJK>
-0x617E # <CJK>
0x6182 # <CJK>
-0x6187 # <CJK>
-0x618A # <CJK>
0x618E # <CJK>
-0x6190 # <CJK>
-0x6191 # <CJK>
-0x6194 # <CJK>
-0x6196 # <CJK>
-0x6199 # <CJK>
-0x619A # <CJK>
0x61A4 # <CJK>
0x61A7 # <CJK>
0x61A9 # <CJK>
-0x61AB # <CJK>
0x61AC # <CJK>
-0x61AE # <CJK>
0x61B2 # <CJK>
0x61B6 # <CJK>
-0x61BA # <CJK>
0x61BE # <CJK>
-0x61C3 # <CJK>
-0x61C6 # <CJK>
0x61C7 # <CJK>
-0x61C8 # <CJK>
-0x61C9 # <CJK>
-0x61CA # <CJK>
-0x61CB # <CJK>
-0x61CC # <CJK>
-0x61CD # <CJK>
0x61D0 # <CJK>
-0x61E3 # <CJK>
-0x61E6 # <CJK>
0x61F2 # <CJK>
-0x61F4 # <CJK>
-0x61F6 # <CJK>
-0x61F7 # <CJK>
0x61F8 # <CJK>
-0x61FA # <CJK>
-0x61FC # <CJK>
-0x61FD # <CJK>
-0x61FE # <CJK>
-0x61FF # <CJK>
-0x6200 # <CJK>
-0x6208 # <CJK>
-0x6209 # <CJK>
-0x620A # <CJK>
-0x620C # <CJK>
-0x620D # <CJK>
-0x620E # <CJK>
0x6210 # <CJK>
0x6211 # <CJK>
0x6212 # <CJK>
-0x6214 # <CJK>
-0x6216 # <CJK>
0x621A # <CJK>
-0x621B # <CJK>
-0x621D # <CJK>
-0x621E # <CJK>
-0x621F # <CJK>
-0x6221 # <CJK>
0x6226 # <CJK>
-0x622A # <CJK>
-0x622E # <CJK>
0x622F # <CJK>
-0x6230 # <CJK>
-0x6232 # <CJK>
-0x6233 # <CJK>
0x6234 # <CJK>
0x6238 # <CJK>
0x623B # <CJK>
0x623F # <CJK>
0x6240 # <CJK>
-0x6241 # <CJK>
0x6247 # <CJK>
-0x6248 # <CJK>
0x6249 # <CJK>
0x624B # <CJK>
0x624D # <CJK>
-0x624E # <CJK>
0x6253 # <CJK>
0x6255 # <CJK>
-0x6258 # <CJK>
-0x625B # <CJK>
-0x625E # <CJK>
-0x6260 # <CJK>
-0x6263 # <CJK>
-0x6268 # <CJK>
-0x626E # <CJK>
0x6271 # <CJK>
0x6276 # <CJK>
0x6279 # <CJK>
-0x627C # <CJK>
-0x627E # <CJK>
0x627F # <CJK>
0x6280 # <CJK>
-0x6282 # <CJK>
-0x6283 # <CJK>
0x6284 # <CJK>
-0x6289 # <CJK>
0x628A # <CJK>
0x6291 # <CJK>
-0x6292 # <CJK>
-0x6293 # <CJK>
-0x6294 # <CJK>
0x6295 # <CJK>
-0x6296 # <CJK>
0x6297 # <CJK>
0x6298 # <CJK>
-0x629B # <CJK>
0x629C # <CJK>
0x629E # <CJK>
0x62AB # <CJK>
-0x62AC # <CJK>
0x62B1 # <CJK>
0x62B5 # <CJK>
0x62B9 # <CJK>
-0x62BB # <CJK>
0x62BC # <CJK>
0x62BD # <CJK>
-0x62C2 # <CJK>
0x62C5 # <CJK>
-0x62C6 # <CJK>
-0x62C7 # <CJK>
-0x62C8 # <CJK>
0x62C9 # <CJK>
-0x62CA # <CJK>
-0x62CC # <CJK>
0x62CD # <CJK>
-0x62CF # <CJK>
0x62D0 # <CJK>
-0x62D1 # <CJK>
0x62D2 # <CJK>
0x62D3 # <CJK>
-0x62D4 # <CJK>
-0x62D7 # <CJK>
0x62D8 # <CJK>
0x62D9 # <CJK>
0x62DB # <CJK>
-0x62DC # <CJK>
0x62DD # <CJK>
0x62E0 # <CJK>
0x62E1 # <CJK>
0x62EC # <CJK>
0x62ED # <CJK>
-0x62EE # <CJK>
-0x62EF # <CJK>
-0x62F1 # <CJK>
0x62F3 # <CJK>
-0x62F5 # <CJK>
0x62F6 # <CJK>
0x62F7 # <CJK>
0x62FE # <CJK>
-0x62FF # <CJK>
0x6301 # <CJK>
-0x6302 # <CJK>
0x6307 # <CJK>
-0x6308 # <CJK>
-0x6309 # <CJK>
-0x630C # <CJK>
0x6311 # <CJK>
0x6319 # <CJK>
0x631F # <CJK>
-0x6327 # <CJK>
0x6328 # <CJK>
0x632B # <CJK>
0x632F # <CJK>
-0x633A # <CJK>
-0x633D # <CJK>
-0x633E # <CJK>
0x633F # <CJK>
0x6349 # <CJK>
-0x634C # <CJK>
-0x634D # <CJK>
-0x634F # <CJK>
-0x6350 # <CJK>
0x6355 # <CJK>
0x6357 # <CJK>
0x635C # <CJK>
-0x6367 # <CJK>
0x6368 # <CJK>
-0x6369 # <CJK>
-0x636B # <CJK>
0x636E # <CJK>
-0x6372 # <CJK>
-0x6376 # <CJK>
-0x6377 # <CJK>
-0x637A # <CJK>
0x637B # <CJK>
-0x6380 # <CJK>
0x6383 # <CJK>
0x6388 # <CJK>
-0x6389 # <CJK>
0x638C # <CJK>
-0x638E # <CJK>
-0x638F # <CJK>
0x6392 # <CJK>
-0x6396 # <CJK>
0x6398 # <CJK>
0x639B # <CJK>
-0x639F # <CJK>
-0x63A0 # <CJK>
0x63A1 # <CJK>
0x63A2 # <CJK>
-0x63A3 # <CJK>
0x63A5 # <CJK>
0x63A7 # <CJK>
0x63A8 # <CJK>
-0x63A9 # <CJK>
0x63AA # <CJK>
-0x63AB # <CJK>
-0x63AC # <CJK>
0x63B2 # <CJK>
-0x63B4 # <CJK>
-0x63B5 # <CJK>
-0x63BB # <CJK>
-0x63BE # <CJK>
-0x63C0 # <CJK>
-0x63C3 # <CJK>
-0x63C4 # <CJK>
-0x63C6 # <CJK>
-0x63C9 # <CJK>
0x63CF # <CJK>
0x63D0 # <CJK>
-0x63D2 # <CJK>
-0x63D6 # <CJK>
0x63DA # <CJK>
0x63DB # <CJK>
0x63E1 # <CJK>
-0x63E3 # <CJK>
-0x63E9 # <CJK>
0x63EE # <CJK>
0x63F4 # <CJK>
-0x63F6 # <CJK>
0x63FA # <CJK>
-0x6406 # <CJK>
0x640D # <CJK>
-0x640F # <CJK>
-0x6413 # <CJK>
-0x6416 # <CJK>
-0x6417 # <CJK>
-0x641C # <CJK>
-0x6426 # <CJK>
-0x6428 # <CJK>
0x642C # <CJK>
0x642D # <CJK>
-0x6434 # <CJK>
-0x6436 # <CJK>
0x643A # <CJK>
0x643E # <CJK>
0x6442 # <CJK>
-0x644E # <CJK>
0x6458 # <CJK>
-0x6467 # <CJK>
0x6469 # <CJK>
0x646F # <CJK>
-0x6476 # <CJK>
-0x6478 # <CJK>
-0x647A # <CJK>
0x6483 # <CJK>
-0x6488 # <CJK>
-0x6492 # <CJK>
-0x6493 # <CJK>
-0x6495 # <CJK>
-0x649A # <CJK>
-0x649E # <CJK>
0x64A4 # <CJK>
-0x64A5 # <CJK>
-0x64A9 # <CJK>
-0x64AB # <CJK>
-0x64AD # <CJK>
0x64AE # <CJK>
-0x64B0 # <CJK>
0x64B2 # <CJK>
-0x64B9 # <CJK>
-0x64BB # <CJK>
-0x64BC # <CJK>
0x64C1 # <CJK>
-0x64C2 # <CJK>
-0x64C5 # <CJK>
-0x64C7 # <CJK>
0x64CD # <CJK>
-0x64D2 # <CJK>
-0x64D4 # <CJK>
-0x64D8 # <CJK>
-0x64DA # <CJK>
-0x64E0 # <CJK>
-0x64E1 # <CJK>
-0x64E2 # <CJK>
-0x64E3 # <CJK>
0x64E6 # <CJK>
-0x64E7 # <CJK>
0x64EC # <CJK>
-0x64EF # <CJK>
-0x64F1 # <CJK>
-0x64F2 # <CJK>
-0x64F4 # <CJK>
-0x64F6 # <CJK>
-0x64FA # <CJK>
-0x64FD # <CJK>
-0x64FE # <CJK>
-0x6500 # <CJK>
-0x6505 # <CJK>
-0x6518 # <CJK>
-0x651C # <CJK>
-0x651D # <CJK>
-0x6523 # <CJK>
-0x6524 # <CJK>
-0x652A # <CJK>
-0x652B # <CJK>
-0x652C # <CJK>
0x652F # <CJK>
-0x6534 # <CJK>
-0x6535 # <CJK>
-0x6536 # <CJK>
-0x6537 # <CJK>
-0x6538 # <CJK>
0x6539 # <CJK>
0x653B # <CJK>
0x653E # <CJK>
0x653F # <CJK>
0x6545 # <CJK>
-0x6548 # <CJK>
-0x654D # <CJK>
0x654F # <CJK>
0x6551 # <CJK>
-0x6555 # <CJK>
-0x6556 # <CJK>
0x6557 # <CJK>
-0x6558 # <CJK>
0x6559 # <CJK>
-0x655D # <CJK>
-0x655E # <CJK>
0x6562 # <CJK>
0x6563 # <CJK>
-0x6566 # <CJK>
0x656C # <CJK>
0x6570 # <CJK>
-0x6572 # <CJK>
0x6574 # <CJK>
0x6575 # <CJK>
0x6577 # <CJK>
-0x6578 # <CJK>
-0x6582 # <CJK>
-0x6583 # <CJK>
0x6587 # <CJK>
-0x6588 # <CJK>
0x6589 # <CJK>
-0x658C # <CJK>
0x658E # <CJK>
-0x6590 # <CJK>
0x6591 # <CJK>
0x6597 # <CJK>
0x6599 # <CJK>
-0x659B # <CJK>
0x659C # <CJK>
-0x659F # <CJK>
-0x65A1 # <CJK>
0x65A4 # <CJK>
0x65A5 # <CJK>
-0x65A7 # <CJK>
-0x65AB # <CJK>
0x65AC # <CJK>
0x65AD # <CJK>
-0x65AF # <CJK>
0x65B0 # <CJK>
-0x65B7 # <CJK>
0x65B9 # <CJK>
-0x65BC # <CJK>
0x65BD # <CJK>
-0x65C1 # <CJK>
-0x65C3 # <CJK>
-0x65C4 # <CJK>
0x65C5 # <CJK>
-0x65C6 # <CJK>
0x65CB # <CJK>
-0x65CC # <CJK>
0x65CF # <CJK>
-0x65D2 # <CJK>
0x65D7 # <CJK>
-0x65D9 # <CJK>
-0x65DB # <CJK>
-0x65E0 # <CJK>
-0x65E1 # <CJK>
0x65E2 # <CJK>
0x65E5 # <CJK>
0x65E6 # <CJK>
0x65E8 # <CJK>
0x65E9 # <CJK>
0x65EC # <CJK>
-0x65ED # <CJK>
-0x65F1 # <CJK>
0x65FA # <CJK>
-0x65FB # <CJK>
-0x6602 # <CJK>
-0x6603 # <CJK>
0x6606 # <CJK>
0x6607 # <CJK>
-0x660A # <CJK>
-0x660C # <CJK>
0x660E # <CJK>
-0x660F # <CJK>
0x6613 # <CJK>
0x6614 # <CJK>
-0x661C # <CJK>
0x661F # <CJK>
0x6620 # <CJK>
0x6625 # <CJK>
0x6628 # <CJK>
0x662D # <CJK>
0x662F # <CJK>
-0x6634 # <CJK>
-0x6635 # <CJK>
-0x6636 # <CJK>
0x663C # <CJK>
-0x663F # <CJK>
-0x6641 # <CJK>
0x6642 # <CJK>
-0x6643 # <CJK>
-0x6644 # <CJK>
-0x6649 # <CJK>
-0x664B # <CJK>
-0x664F # <CJK>
-0x6652 # <CJK>
-0x665D # <CJK>
-0x665E # <CJK>
-0x665F # <CJK>
-0x6662 # <CJK>
-0x6664 # <CJK>
-0x6666 # <CJK>
-0x6667 # <CJK>
-0x6668 # <CJK>
0x6669 # <CJK>
0x666E # <CJK>
0x666F # <CJK>
-0x6670 # <CJK>
0x6674 # <CJK>
0x6676 # <CJK>
-0x667A # <CJK>
0x6681 # <CJK>
-0x6683 # <CJK>
-0x6684 # <CJK>
0x6687 # <CJK>
-0x6688 # <CJK>
-0x6689 # <CJK>
-0x668E # <CJK>
0x6691 # <CJK>
0x6696 # <CJK>
0x6697 # <CJK>
-0x6698 # <CJK>
-0x669D # <CJK>
-0x66A2 # <CJK>
0x66A6 # <CJK>
0x66AB # <CJK>
0x66AE # <CJK>
0x66B4 # <CJK>
-0x66B8 # <CJK>
-0x66B9 # <CJK>
-0x66BC # <CJK>
-0x66BE # <CJK>
-0x66C1 # <CJK>
-0x66C4 # <CJK>
0x66C7 # <CJK>
-0x66C9 # <CJK>
0x66D6 # <CJK>
-0x66D9 # <CJK>
-0x66DA # <CJK>
0x66DC # <CJK>
-0x66DD # <CJK>
-0x66E0 # <CJK>
-0x66E6 # <CJK>
-0x66E9 # <CJK>
-0x66F0 # <CJK>
0x66F2 # <CJK>
-0x66F3 # <CJK>
0x66F4 # <CJK>
-0x66F5 # <CJK>
-0x66F7 # <CJK>
0x66F8 # <CJK>
0x66F9 # <CJK>
-0x66FC # <CJK>
0x66FD # <CJK>
-0x66FE # <CJK>
0x66FF # <CJK>
0x6700 # <CJK>
-0x6703 # <CJK>
0x6708 # <CJK>
0x6709 # <CJK>
-0x670B # <CJK>
0x670D # <CJK>
-0x670F # <CJK>
-0x6714 # <CJK>
0x6715 # <CJK>
-0x6716 # <CJK>
0x6717 # <CJK>
0x671B # <CJK>
0x671D # <CJK>
-0x671E # <CJK>
0x671F # <CJK>
-0x6726 # <CJK>
-0x6727 # <CJK>
0x6728 # <CJK>
0x672A # <CJK>
0x672B # <CJK>
0x672C # <CJK>
0x672D # <CJK>
-0x672E # <CJK>
0x6731 # <CJK>
0x6734 # <CJK>
-0x6736 # <CJK>
-0x6737 # <CJK>
-0x6738 # <CJK>
0x673A # <CJK>
0x673D # <CJK>
-0x673F # <CJK>
-0x6741 # <CJK>
-0x6746 # <CJK>
0x6749 # <CJK>
-0x674E # <CJK>
-0x674F # <CJK>
0x6750 # <CJK>
0x6751 # <CJK>
-0x6753 # <CJK>
-0x6756 # <CJK>
-0x6759 # <CJK>
-0x675C # <CJK>
-0x675E # <CJK>
0x675F # <CJK>
-0x6760 # <CJK>
0x6761 # <CJK>
-0x6762 # <CJK>
-0x6763 # <CJK>
-0x6764 # <CJK>
0x6765 # <CJK>
-0x676A # <CJK>
-0x676D # <CJK>
0x676F # <CJK>
-0x6770 # <CJK>
0x6771 # <CJK>
-0x6772 # <CJK>
-0x6773 # <CJK>
-0x6775 # <CJK>
-0x6777 # <CJK>
-0x677C # <CJK>
0x677E # <CJK>
0x677F # <CJK>
-0x6785 # <CJK>
-0x6787 # <CJK>
-0x6789 # <CJK>
-0x678B # <CJK>
-0x678C # <CJK>
0x6790 # <CJK>
0x6795 # <CJK>
0x6797 # <CJK>
0x679C # <CJK>
0x679D # <CJK>
0x67A0 # <CJK>
-0x67A1 # <CJK>
0x67A2 # <CJK>
-0x67A6 # <CJK>
-0x67A9 # <CJK>
0x67AF # <CJK>
-0x67B3 # <CJK>
-0x67B4 # <CJK>
0x67B6 # <CJK>
-0x67B7 # <CJK>
-0x67B8 # <CJK>
-0x67B9 # <CJK>
-0x67C1 # <CJK>
0x67C4 # <CJK>
-0x67C6 # <CJK>
-0x67CA # <CJK>
-0x67CE # <CJK>
-0x67CF # <CJK>
0x67D0 # <CJK>
-0x67D1 # <CJK>
0x67D3 # <CJK>
0x67D4 # <CJK>
-0x67D8 # <CJK>
-0x67DA # <CJK>
-0x67DD # <CJK>
-0x67DE # <CJK>
-0x67E2 # <CJK>
-0x67E4 # <CJK>
-0x67E7 # <CJK>
-0x67E9 # <CJK>
-0x67EC # <CJK>
-0x67EE # <CJK>
-0x67EF # <CJK>
0x67F1 # <CJK>
0x67F3 # <CJK>
-0x67F4 # <CJK>
0x67F5 # <CJK>
0x67FB # <CJK>
-0x67FE # <CJK>
0x67FF # <CJK>
-0x6802 # <CJK>
0x6803 # <CJK>
0x6804 # <CJK>
0x6813 # <CJK>
-0x6816 # <CJK>
-0x6817 # <CJK>
-0x681E # <CJK>
0x6821 # <CJK>
-0x6822 # <CJK>
-0x6829 # <CJK>
0x682A # <CJK>
-0x682B # <CJK>
-0x6832 # <CJK>
-0x6834 # <CJK>
0x6838 # <CJK>
0x6839 # <CJK>
0x683C # <CJK>
0x683D # <CJK>
-0x6840 # <CJK>
0x6841 # <CJK>
-0x6842 # <CJK>
0x6843 # <CJK>
-0x6846 # <CJK>
0x6848 # <CJK>
-0x684D # <CJK>
-0x684E # <CJK>
-0x6850 # <CJK>
0x6851 # <CJK>
-0x6853 # <CJK>
-0x6854 # <CJK>
-0x6859 # <CJK>
0x685C # <CJK>
-0x685D # <CJK>
0x685F # <CJK>
-0x6863 # <CJK>
-0x6867 # <CJK>
-0x6874 # <CJK>
-0x6876 # <CJK>
-0x6877 # <CJK>
-0x687E # <CJK>
-0x687F # <CJK>
-0x6881 # <CJK>
-0x6883 # <CJK>
0x6885 # <CJK>
-0x688D # <CJK>
-0x688F # <CJK>
-0x6893 # <CJK>
-0x6894 # <CJK>
0x6897 # <CJK>
-0x689B # <CJK>
-0x689D # <CJK>
-0x689F # <CJK>
-0x68A0 # <CJK>
-0x68A2 # <CJK>
-0x68A6 # <CJK>
-0x68A7 # <CJK>
0x68A8 # <CJK>
-0x68AD # <CJK>
-0x68AF # <CJK>
0x68B0 # <CJK>
-0x68B1 # <CJK>
-0x68B3 # <CJK>
-0x68B5 # <CJK>
-0x68B6 # <CJK>
-0x68B9 # <CJK>
-0x68BA # <CJK>
-0x68BC # <CJK>
0x68C4 # <CJK>
-0x68C6 # <CJK>
-0x68C9 # <CJK>
-0x68CA # <CJK>
0x68CB # <CJK>
-0x68CD # <CJK>
0x68D2 # <CJK>
-0x68D4 # <CJK>
-0x68D5 # <CJK>
-0x68D7 # <CJK>
-0x68D8 # <CJK>
0x68DA # <CJK>
0x68DF # <CJK>
-0x68E0 # <CJK>
-0x68E1 # <CJK>
-0x68E3 # <CJK>
-0x68E7 # <CJK>
0x68EE # <CJK>
-0x68EF # <CJK>
-0x68F2 # <CJK>
-0x68F9 # <CJK>
0x68FA # <CJK>
-0x6900 # <CJK>
-0x6901 # <CJK>
-0x6904 # <CJK>
0x6905 # <CJK>
-0x6908 # <CJK>
-0x690B # <CJK>
-0x690C # <CJK>
0x690D # <CJK>
0x690E # <CJK>
-0x690F # <CJK>
-0x6912 # <CJK>
-0x6919 # <CJK>
-0x691A # <CJK>
-0x691B # <CJK>
0x691C # <CJK>
-0x6921 # <CJK>
-0x6922 # <CJK>
-0x6923 # <CJK>
-0x6925 # <CJK>
-0x6926 # <CJK>
-0x6928 # <CJK>
-0x692A # <CJK>
-0x6930 # <CJK>
-0x6934 # <CJK>
-0x6936 # <CJK>
-0x6939 # <CJK>
-0x693D # <CJK>
-0x693F # <CJK>
-0x694A # <CJK>
-0x6953 # <CJK>
-0x6954 # <CJK>
-0x6955 # <CJK>
-0x6959 # <CJK>
-0x695A # <CJK>
-0x695C # <CJK>
-0x695D # <CJK>
-0x695E # <CJK>
-0x6960 # <CJK>
-0x6961 # <CJK>
-0x6962 # <CJK>
-0x696A # <CJK>
-0x696B # <CJK>
0x696D # <CJK>
-0x696E # <CJK>
-0x696F # <CJK>
-0x6973 # <CJK>
-0x6974 # <CJK>
0x6975 # <CJK>
0x6977 # <CJK>
-0x6978 # <CJK>
-0x6979 # <CJK>
0x697C # <CJK>
0x697D # <CJK>
-0x697E # <CJK>
-0x6981 # <CJK>
0x6982 # <CJK>
-0x698A # <CJK>
-0x698E # <CJK>
-0x6991 # <CJK>
-0x6994 # <CJK>
-0x6995 # <CJK>
-0x699B # <CJK>
-0x699C # <CJK>
-0x69A0 # <CJK>
-0x69A7 # <CJK>
-0x69AE # <CJK>
-0x69B1 # <CJK>
-0x69B2 # <CJK>
-0x69B4 # <CJK>
-0x69BB # <CJK>
-0x69BE # <CJK>
-0x69BF # <CJK>
-0x69C1 # <CJK>
-0x69C3 # <CJK>
-0x69C7 # <CJK>
-0x69CA # <CJK>
0x69CB # <CJK>
-0x69CC # <CJK>
-0x69CD # <CJK>
-0x69CE # <CJK>
-0x69D0 # <CJK>
-0x69D3 # <CJK>
0x69D8 # <CJK>
-0x69D9 # <CJK>
-0x69DD # <CJK>
-0x69DE # <CJK>
-0x69E7 # <CJK>
-0x69E8 # <CJK>
-0x69EB # <CJK>
-0x69ED # <CJK>
-0x69F2 # <CJK>
-0x69F9 # <CJK>
-0x69FB # <CJK>
0x69FD # <CJK>
-0x69FF # <CJK>
-0x6A02 # <CJK>
-0x6A05 # <CJK>
-0x6A0A # <CJK>
-0x6A0B # <CJK>
-0x6A0C # <CJK>
-0x6A12 # <CJK>
-0x6A13 # <CJK>
-0x6A14 # <CJK>
-0x6A17 # <CJK>
0x6A19 # <CJK>
-0x6A1B # <CJK>
-0x6A1E # <CJK>
-0x6A1F # <CJK>
0x6A21 # <CJK>
-0x6A22 # <CJK>
-0x6A23 # <CJK>
0x6A29 # <CJK>
0x6A2A # <CJK>
-0x6A2B # <CJK>
-0x6A2E # <CJK>
-0x6A35 # <CJK>
-0x6A36 # <CJK>
-0x6A38 # <CJK>
0x6A39 # <CJK>
-0x6A3A # <CJK>
-0x6A3D # <CJK>
-0x6A44 # <CJK>
-0x6A47 # <CJK>
-0x6A48 # <CJK>
0x6A4B # <CJK>
-0x6A58 # <CJK>
-0x6A59 # <CJK>
0x6A5F # <CJK>
-0x6A61 # <CJK>
-0x6A62 # <CJK>
-0x6A66 # <CJK>
-0x6A72 # <CJK>
-0x6A78 # <CJK>
-0x6A7F # <CJK>
-0x6A80 # <CJK>
-0x6A84 # <CJK>
-0x6A8D # <CJK>
-0x6A8E # <CJK>
-0x6A90 # <CJK>
-0x6A97 # <CJK>
-0x6A9C # <CJK>
-0x6AA0 # <CJK>
-0x6AA2 # <CJK>
-0x6AA3 # <CJK>
-0x6AAA # <CJK>
-0x6AAC # <CJK>
-0x6AAE # <CJK>
-0x6AB3 # <CJK>
-0x6AB8 # <CJK>
-0x6ABB # <CJK>
-0x6AC1 # <CJK>
-0x6AC2 # <CJK>
-0x6AC3 # <CJK>
-0x6AD1 # <CJK>
-0x6AD3 # <CJK>
-0x6ADA # <CJK>
-0x6ADB # <CJK>
-0x6ADE # <CJK>
-0x6ADF # <CJK>
-0x6AE8 # <CJK>
-0x6AEA # <CJK>
-0x6AFA # <CJK>
-0x6AFB # <CJK>
0x6B04 # <CJK>
-0x6B05 # <CJK>
-0x6B0A # <CJK>
-0x6B12 # <CJK>
-0x6B16 # <CJK>
-0x6B1D # <CJK>
-0x6B1F # <CJK>
0x6B20 # <CJK>
0x6B21 # <CJK>
-0x6B23 # <CJK>
0x6B27 # <CJK>
0x6B32 # <CJK>
-0x6B37 # <CJK>
-0x6B38 # <CJK>
-0x6B39 # <CJK>
0x6B3A # <CJK>
-0x6B3D # <CJK>
0x6B3E # <CJK>
-0x6B43 # <CJK>
-0x6B47 # <CJK>
-0x6B49 # <CJK>
0x6B4C # <CJK>
-0x6B4E # <CJK>
-0x6B50 # <CJK>
0x6B53 # <CJK>
-0x6B54 # <CJK>
-0x6B59 # <CJK>
-0x6B5B # <CJK>
-0x6B5F # <CJK>
-0x6B61 # <CJK>
0x6B62 # <CJK>
0x6B63 # <CJK>
-0x6B64 # <CJK>
0x6B66 # <CJK>
0x6B69 # <CJK>
-0x6B6A # <CJK>
0x6B6F # <CJK>
0x6B73 # <CJK>
0x6B74 # <CJK>
-0x6B78 # <CJK>
-0x6B79 # <CJK>
0x6B7B # <CJK>
-0x6B7F # <CJK>
-0x6B80 # <CJK>
-0x6B83 # <CJK>
-0x6B84 # <CJK>
-0x6B86 # <CJK>
0x6B89 # <CJK>
0x6B8A # <CJK>
0x6B8B # <CJK>
-0x6B8D # <CJK>
-0x6B95 # <CJK>
0x6B96 # <CJK>
-0x6B98 # <CJK>
-0x6B9E # <CJK>
-0x6BA4 # <CJK>
-0x6BAA # <CJK>
-0x6BAB # <CJK>
-0x6BAF # <CJK>
-0x6BB1 # <CJK>
-0x6BB2 # <CJK>
-0x6BB3 # <CJK>
0x6BB4 # <CJK>
0x6BB5 # <CJK>
-0x6BB7 # <CJK>
0x6BBA # <CJK>
0x6BBB # <CJK>
-0x6BBC # <CJK>
0x6BBF # <CJK>
0x6BC0 # <CJK>
-0x6BC5 # <CJK>
-0x6BC6 # <CJK>
-0x6BCB # <CJK>
0x6BCD # <CJK>
0x6BCE # <CJK>
0x6BD2 # <CJK>
-0x6BD3 # <CJK>
0x6BD4 # <CJK>
-0x6BD8 # <CJK>
0x6BDB # <CJK>
-0x6BDF # <CJK>
-0x6BEB # <CJK>
-0x6BEC # <CJK>
-0x6BEF # <CJK>
-0x6BF3 # <CJK>
-0x6C08 # <CJK>
0x6C0F # <CJK>
0x6C11 # <CJK>
-0x6C13 # <CJK>
-0x6C14 # <CJK>
0x6C17 # <CJK>
-0x6C1B # <CJK>
-0x6C23 # <CJK>
-0x6C24 # <CJK>
0x6C34 # <CJK>
0x6C37 # <CJK>
0x6C38 # <CJK>
0x6C3E # <CJK>
-0x6C40 # <CJK>
0x6C41 # <CJK>
0x6C42 # <CJK>
0x6C4E # <CJK>
-0x6C50 # <CJK>
-0x6C55 # <CJK>
0x6C57 # <CJK>
0x6C5A # <CJK>
-0x6C5D # <CJK>
-0x6C5E # <CJK>
0x6C5F # <CJK>
0x6C60 # <CJK>
-0x6C62 # <CJK>
-0x6C68 # <CJK>
-0x6C6A # <CJK>
0x6C70 # <CJK>
-0x6C72 # <CJK>
-0x6C73 # <CJK>
0x6C7A # <CJK>
0x6C7D # <CJK>
-0x6C7E # <CJK>
-0x6C81 # <CJK>
-0x6C82 # <CJK>
0x6C83 # <CJK>
0x6C88 # <CJK>
-0x6C8C # <CJK>
-0x6C8D # <CJK>
-0x6C90 # <CJK>
-0x6C92 # <CJK>
-0x6C93 # <CJK>
0x6C96 # <CJK>
0x6C99 # <CJK>
-0x6C9A # <CJK>
-0x6C9B # <CJK>
0x6CA1 # <CJK>
0x6CA2 # <CJK>
-0x6CAB # <CJK>
-0x6CAE # <CJK>
-0x6CB1 # <CJK>
0x6CB3 # <CJK>
0x6CB8 # <CJK>
0x6CB9 # <CJK>
-0x6CBA # <CJK>
0x6CBB # <CJK>
0x6CBC # <CJK>
-0x6CBD # <CJK>
-0x6CBE # <CJK>
0x6CBF # <CJK>
0x6CC1 # <CJK>
-0x6CC4 # <CJK>
-0x6CC5 # <CJK>
0x6CC9 # <CJK>
0x6CCA # <CJK>
0x6CCC # <CJK>
-0x6CD3 # <CJK>
0x6CD5 # <CJK>
-0x6CD7 # <CJK>
-0x6CD9 # <CJK>
-0x6CDB # <CJK>
-0x6CDD # <CJK>
0x6CE1 # <CJK>
0x6CE2 # <CJK>
0x6CE3 # <CJK>
0x6CE5 # <CJK>
0x6CE8 # <CJK>
-0x6CEA # <CJK>
-0x6CEF # <CJK>
0x6CF0 # <CJK>
-0x6CF1 # <CJK>
0x6CF3 # <CJK>
0x6D0B # <CJK>
-0x6D0C # <CJK>
-0x6D12 # <CJK>
0x6D17 # <CJK>
-0x6D19 # <CJK>
-0x6D1B # <CJK>
0x6D1E # <CJK>
-0x6D1F # <CJK>
0x6D25 # <CJK>
-0x6D29 # <CJK>
0x6D2A # <CJK>
-0x6D2B # <CJK>
-0x6D32 # <CJK>
-0x6D33 # <CJK>
-0x6D35 # <CJK>
-0x6D36 # <CJK>
-0x6D38 # <CJK>
0x6D3B # <CJK>
-0x6D3D # <CJK>
0x6D3E # <CJK>
0x6D41 # <CJK>
0x6D44 # <CJK>
0x6D45 # <CJK>
-0x6D59 # <CJK>
-0x6D5A # <CJK>
0x6D5C # <CJK>
-0x6D63 # <CJK>
-0x6D64 # <CJK>
0x6D66 # <CJK>
-0x6D69 # <CJK>
0x6D6A # <CJK>
-0x6D6C # <CJK>
0x6D6E # <CJK>
0x6D74 # <CJK>
0x6D77 # <CJK>
0x6D78 # <CJK>
-0x6D79 # <CJK>
-0x6D85 # <CJK>
0x6D88 # <CJK>
-0x6D8C # <CJK>
-0x6D8E # <CJK>
-0x6D93 # <CJK>
-0x6D95 # <CJK>
0x6D99 # <CJK>
-0x6D9B # <CJK>
-0x6D9C # <CJK>
0x6DAF # <CJK>
0x6DB2 # <CJK>
-0x6DB5 # <CJK>
-0x6DB8 # <CJK>
0x6DBC # <CJK>
-0x6DC0 # <CJK>
-0x6DC5 # <CJK>
-0x6DC6 # <CJK>
-0x6DC7 # <CJK>
-0x6DCB # <CJK>
-0x6DCC # <CJK>
0x6DD1 # <CJK>
-0x6DD2 # <CJK>
-0x6DD5 # <CJK>
-0x6DD8 # <CJK>
-0x6DD9 # <CJK>
-0x6DDE # <CJK>
0x6DE1 # <CJK>
-0x6DE4 # <CJK>
-0x6DE6 # <CJK>
-0x6DE8 # <CJK>
-0x6DEA # <CJK>
0x6DEB # <CJK>
-0x6DEC # <CJK>
-0x6DEE # <CJK>
0x6DF1 # <CJK>
-0x6DF3 # <CJK>
-0x6DF5 # <CJK>
0x6DF7 # <CJK>
-0x6DF9 # <CJK>
-0x6DFA # <CJK>
0x6DFB # <CJK>
0x6E05 # <CJK>
0x6E07 # <CJK>
0x6E08 # <CJK>
0x6E09 # <CJK>
-0x6E0A # <CJK>
0x6E0B # <CJK>
0x6E13 # <CJK>
-0x6E15 # <CJK>
-0x6E19 # <CJK>
-0x6E1A # <CJK>
0x6E1B # <CJK>
-0x6E1D # <CJK>
-0x6E1F # <CJK>
-0x6E20 # <CJK>
0x6E21 # <CJK>
-0x6E23 # <CJK>
-0x6E24 # <CJK>
-0x6E25 # <CJK>
0x6E26 # <CJK>
0x6E29 # <CJK>
-0x6E2B # <CJK>
0x6E2C # <CJK>
-0x6E2D # <CJK>
-0x6E2E # <CJK>
0x6E2F # <CJK>
-0x6E38 # <CJK>
-0x6E3A # <CJK>
-0x6E3E # <CJK>
-0x6E43 # <CJK>
-0x6E4A # <CJK>
-0x6E4D # <CJK>
-0x6E4E # <CJK>
0x6E56 # <CJK>
-0x6E58 # <CJK>
-0x6E5B # <CJK>
-0x6E5F # <CJK>
0x6E67 # <CJK>
-0x6E6B # <CJK>
-0x6E6E # <CJK>
0x6E6F # <CJK>
-0x6E72 # <CJK>
-0x6E76 # <CJK>
0x6E7E # <CJK>
0x6E7F # <CJK>
0x6E80 # <CJK>
-0x6E82 # <CJK>
-0x6E8C # <CJK>
-0x6E8F # <CJK>
0x6E90 # <CJK>
0x6E96 # <CJK>
-0x6E98 # <CJK>
-0x6E9C # <CJK>
0x6E9D # <CJK>
-0x6E9F # <CJK>
-0x6EA2 # <CJK>
-0x6EA5 # <CJK>
-0x6EAA # <CJK>
-0x6EAF # <CJK>
-0x6EB2 # <CJK>
0x6EB6 # <CJK>
-0x6EB7 # <CJK>
0x6EBA # <CJK>
-0x6EBD # <CJK>
-0x6EC2 # <CJK>
-0x6EC4 # <CJK>
0x6EC5 # <CJK>
-0x6EC9 # <CJK>
0x6ECB # <CJK>
-0x6ECC # <CJK>
0x6ED1 # <CJK>
-0x6ED3 # <CJK>
-0x6ED4 # <CJK>
-0x6ED5 # <CJK>
0x6EDD # <CJK>
0x6EDE # <CJK>
-0x6EEC # <CJK>
-0x6EEF # <CJK>
-0x6EF2 # <CJK>
0x6EF4 # <CJK>
-0x6EF7 # <CJK>
-0x6EF8 # <CJK>
-0x6EFE # <CJK>
-0x6EFF # <CJK>
0x6F01 # <CJK>
0x6F02 # <CJK>
0x6F06 # <CJK>
-0x6F09 # <CJK>
0x6F0F # <CJK>
-0x6F11 # <CJK>
-0x6F13 # <CJK>
0x6F14 # <CJK>
-0x6F15 # <CJK>
0x6F20 # <CJK>
0x6F22 # <CJK>
-0x6F23 # <CJK>
0x6F2B # <CJK>
0x6F2C # <CJK>
-0x6F31 # <CJK>
-0x6F32 # <CJK>
0x6F38 # <CJK>
-0x6F3E # <CJK>
-0x6F3F # <CJK>
-0x6F41 # <CJK>
-0x6F45 # <CJK>
0x6F54 # <CJK>
-0x6F58 # <CJK>
-0x6F5B # <CJK>
0x6F5C # <CJK>
0x6F5F # <CJK>
0x6F64 # <CJK>
-0x6F66 # <CJK>
-0x6F6D # <CJK>
0x6F6E # <CJK>
-0x6F6F # <CJK>
0x6F70 # <CJK>
-0x6F74 # <CJK>
-0x6F78 # <CJK>
-0x6F7A # <CJK>
-0x6F7C # <CJK>
-0x6F80 # <CJK>
-0x6F81 # <CJK>
-0x6F82 # <CJK>
0x6F84 # <CJK>
-0x6F86 # <CJK>
-0x6F8E # <CJK>
-0x6F91 # <CJK>
-0x6F97 # <CJK>
-0x6FA1 # <CJK>
-0x6FA3 # <CJK>
-0x6FA4 # <CJK>
-0x6FAA # <CJK>
-0x6FB1 # <CJK>
-0x6FB3 # <CJK>
-0x6FB9 # <CJK>
0x6FC0 # <CJK>
0x6FC1 # <CJK>
-0x6FC2 # <CJK>
0x6FC3 # <CJK>
-0x6FC6 # <CJK>
-0x6FD4 # <CJK>
-0x6FD5 # <CJK>
-0x6FD8 # <CJK>
-0x6FDB # <CJK>
-0x6FDF # <CJK>
-0x6FE0 # <CJK>
-0x6FE1 # <CJK>
-0x6FE4 # <CJK>
0x6FEB # <CJK>
-0x6FEC # <CJK>
-0x6FEE # <CJK>
0x6FEF # <CJK>
-0x6FF1 # <CJK>
-0x6FF3 # <CJK>
-0x6FF6 # <CJK>
-0x6FFA # <CJK>
-0x6FFE # <CJK>
-0x7001 # <CJK>
-0x7009 # <CJK>
-0x700B # <CJK>
-0x700F # <CJK>
-0x7011 # <CJK>
-0x7015 # <CJK>
-0x7018 # <CJK>
-0x701A # <CJK>
-0x701B # <CJK>
-0x701D # <CJK>
-0x701E # <CJK>
-0x701F # <CJK>
-0x7026 # <CJK>
-0x7027 # <CJK>
0x702C # <CJK>
-0x7030 # <CJK>
-0x7032 # <CJK>
-0x703E # <CJK>
-0x704C # <CJK>
-0x7051 # <CJK>
-0x7058 # <CJK>
-0x7063 # <CJK>
0x706B # <CJK>
0x706F # <CJK>
0x7070 # <CJK>
-0x7078 # <CJK>
-0x707C # <CJK>
0x707D # <CJK>
0x7089 # <CJK>
0x708A # <CJK>
0x708E # <CJK>
-0x7092 # <CJK>
-0x7099 # <CJK>
-0x70AC # <CJK>
0x70AD # <CJK>
-0x70AE # <CJK>
-0x70AF # <CJK>
-0x70B3 # <CJK>
-0x70B8 # <CJK>
0x70B9 # <CJK>
0x70BA # <CJK>
0x70C8 # <CJK>
-0x70CB # <CJK>
-0x70CF # <CJK>
-0x70D9 # <CJK>
-0x70DD # <CJK>
-0x70DF # <CJK>
-0x70F1 # <CJK>
-0x70F9 # <CJK>
-0x70FD # <CJK>
-0x7109 # <CJK>
-0x7114 # <CJK>
-0x7119 # <CJK>
-0x711A # <CJK>
-0x711C # <CJK>
0x7121 # <CJK>
0x7126 # <CJK>
0x7136 # <CJK>
0x713C # <CJK>
-0x7149 # <CJK>
-0x714C # <CJK>
0x714E # <CJK>
-0x7155 # <CJK>
-0x7156 # <CJK>
0x7159 # <CJK>
-0x7162 # <CJK>
-0x7164 # <CJK>
-0x7165 # <CJK>
-0x7166 # <CJK>
0x7167 # <CJK>
0x7169 # <CJK>
-0x716C # <CJK>
0x716E # <CJK>
-0x717D # <CJK>
-0x7184 # <CJK>
-0x7188 # <CJK>
0x718A # <CJK>
-0x718F # <CJK>
-0x7194 # <CJK>
-0x7195 # <CJK>
-#0x7199 # <CJK> # not in kochi fonts
0x719F # <CJK>
-0x71A8 # <CJK>
-0x71AC # <CJK>
0x71B1 # <CJK>
-0x71B9 # <CJK>
-0x71BE # <CJK>
0x71C3 # <CJK>
-0x71C8 # <CJK>
-0x71C9 # <CJK>
-0x71CE # <CJK>
-0x71D0 # <CJK>
-0x71D2 # <CJK>
-0x71D4 # <CJK>
-0x71D5 # <CJK>
-0x71D7 # <CJK>
-0x71DF # <CJK>
-0x71E0 # <CJK>
0x71E5 # <CJK>
-0x71E6 # <CJK>
-0x71E7 # <CJK>
-0x71EC # <CJK>
-0x71ED # <CJK>
-0x71EE # <CJK>
-0x71F5 # <CJK>
-0x71F9 # <CJK>
-0x71FB # <CJK>
-0x71FC # <CJK>
-0x71FF # <CJK>
0x7206 # <CJK>
-0x720D # <CJK>
-0x7210 # <CJK>
-0x721B # <CJK>
-0x7228 # <CJK>
0x722A # <CJK>
-0x722C # <CJK>
-0x722D # <CJK>
-0x7230 # <CJK>
-0x7232 # <CJK>
0x7235 # <CJK>
0x7236 # <CJK>
-0x723A # <CJK>
-0x723B # <CJK>
-0x723C # <CJK>
0x723D # <CJK>
-0x723E # <CJK>
-0x723F # <CJK>
-0x7240 # <CJK>
-0x7246 # <CJK>
0x7247 # <CJK>
0x7248 # <CJK>
-0x724B # <CJK>
-0x724C # <CJK>
-0x7252 # <CJK>
-0x7258 # <CJK>
0x7259 # <CJK>
0x725B # <CJK>
-0x725D # <CJK>
-0x725F # <CJK>
-0x7261 # <CJK>
-0x7262 # <CJK>
0x7267 # <CJK>
0x7269 # <CJK>
0x7272 # <CJK>
-0x7274 # <CJK>
0x7279 # <CJK>
-0x727D # <CJK>
-0x727E # <CJK>
-0x7280 # <CJK>
-0x7281 # <CJK>
-0x7282 # <CJK>
-0x7287 # <CJK>
-0x7292 # <CJK>
-0x7296 # <CJK>
0x72A0 # <CJK>
-0x72A2 # <CJK>
-0x72A7 # <CJK>
0x72AC # <CJK>
0x72AF # <CJK>
-0x72B2 # <CJK>
0x72B6 # <CJK>
-0x72B9 # <CJK>
0x72C2 # <CJK>
-0x72C3 # <CJK>
-0x72C4 # <CJK>
-0x72C6 # <CJK>
-0x72CE # <CJK>
-0x72D0 # <CJK>
-0x72D2 # <CJK>
-0x72D7 # <CJK>
0x72D9 # <CJK>
-0x72DB # <CJK>
-0x72E0 # <CJK>
-0x72E1 # <CJK>
-0x72E2 # <CJK>
0x72E9 # <CJK>
0x72EC # <CJK>
0x72ED # <CJK>
-0x72F7 # <CJK>
-0x72F8 # <CJK>
-0x72F9 # <CJK>
-0x72FC # <CJK>
-0x72FD # <CJK>
-0x730A # <CJK>
-0x7316 # <CJK>
-0x7317 # <CJK>
0x731B # <CJK>
-0x731C # <CJK>
-0x731D # <CJK>
0x731F # <CJK>
-0x7325 # <CJK>
-0x7329 # <CJK>
-0x732A # <CJK>
0x732B # <CJK>
0x732E # <CJK>
-0x732F # <CJK>
-0x7334 # <CJK>
0x7336 # <CJK>
-0x7337 # <CJK>
-0x733E # <CJK>
0x733F # <CJK>
0x7344 # <CJK>
-0x7345 # <CJK>
-0x734E # <CJK>
-0x734F # <CJK>
-0x7357 # <CJK>
0x7363 # <CJK>
-0x7368 # <CJK>
-0x736A # <CJK>
-0x7370 # <CJK>
0x7372 # <CJK>
-0x7375 # <CJK>
-0x7378 # <CJK>
-0x737A # <CJK>
-0x737B # <CJK>
0x7384 # <CJK>
0x7387 # <CJK>
0x7389 # <CJK>
0x738B # <CJK>
-0x7396 # <CJK>
0x73A9 # <CJK>
-0x73B2 # <CJK>
-0x73B3 # <CJK>
-0x73BB # <CJK>
-0x73C0 # <CJK>
-0x73C2 # <CJK>
-0x73C8 # <CJK>
-0x73CA # <CJK>
0x73CD # <CJK>
-0x73CE # <CJK>
-0x73DE # <CJK>
0x73E0 # <CJK>
-0x73E5 # <CJK>
-0x73EA # <CJK>
0x73ED # <CJK>
-0x73EE # <CJK>
-0x73F1 # <CJK>
-0x73F8 # <CJK>
0x73FE # <CJK>
0x7403 # <CJK>
-0x7405 # <CJK>
0x7406 # <CJK>
-0x7409 # <CJK>
-0x7422 # <CJK>
-0x7425 # <CJK>
-0x7432 # <CJK>
-0x7433 # <CJK>
0x7434 # <CJK>
-0x7435 # <CJK>
-0x7436 # <CJK>
-0x743A # <CJK>
-0x743F # <CJK>
-0x7441 # <CJK>
-0x7455 # <CJK>
-0x7459 # <CJK>
-0x745A # <CJK>
-0x745B # <CJK>
-0x745C # <CJK>
-0x745E # <CJK>
-0x745F # <CJK>
0x7460 # <CJK>
-0x7463 # <CJK>
-0x7464 # <CJK>
-0x7469 # <CJK>
-0x746A # <CJK>
-0x746F # <CJK>
-0x7470 # <CJK>
-0x7473 # <CJK>
-0x7476 # <CJK>
-0x747E # <CJK>
0x7483 # <CJK>
-0x748B # <CJK>
-0x749E # <CJK>
-0x74A2 # <CJK>
0x74A7 # <CJK>
0x74B0 # <CJK>
0x74BD # <CJK>
-0x74CA # <CJK>
-0x74CF # <CJK>
-0x74D4 # <CJK>
-0x74DC # <CJK>
-0x74E0 # <CJK>
-0x74E2 # <CJK>
-0x74E3 # <CJK>
0x74E6 # <CJK>
-0x74E7 # <CJK>
-0x74E9 # <CJK>
-0x74EE # <CJK>
-0x74F0 # <CJK>
-0x74F1 # <CJK>
-0x74F2 # <CJK>
0x74F6 # <CJK>
-0x74F7 # <CJK>
-0x74F8 # <CJK>
-0x7503 # <CJK>
-0x7504 # <CJK>
-0x7505 # <CJK>
-0x750C # <CJK>
-0x750D # <CJK>
-0x750E # <CJK>
-0x7511 # <CJK>
-0x7513 # <CJK>
-0x7515 # <CJK>
0x7518 # <CJK>
0x751A # <CJK>
-0x751C # <CJK>
-0x751E # <CJK>
0x751F # <CJK>
0x7523 # <CJK>
-0x7525 # <CJK>
-0x7526 # <CJK>
0x7528 # <CJK>
-0x752B # <CJK>
-0x752C # <CJK>
0x7530 # <CJK>
0x7531 # <CJK>
0x7532 # <CJK>
0x7533 # <CJK>
0x7537 # <CJK>
-0x7538 # <CJK>
0x753A # <CJK>
0x753B # <CJK>
-0x753C # <CJK>
-0x7544 # <CJK>
-0x7546 # <CJK>
-0x7549 # <CJK>
-0x754A # <CJK>
-0x754B # <CJK>
0x754C # <CJK>
-0x754D # <CJK>
0x754F # <CJK>
0x7551 # <CJK>
0x7554 # <CJK>
0x7559 # <CJK>
-0x755A # <CJK>
-0x755B # <CJK>
0x755C # <CJK>
0x755D # <CJK>
-0x7560 # <CJK>
-0x7562 # <CJK>
-0x7564 # <CJK>
0x7565 # <CJK>
-0x7566 # <CJK>
-0x7567 # <CJK>
-0x7569 # <CJK>
0x756A # <CJK>
-0x756B # <CJK>
-0x756D # <CJK>
0x7570 # <CJK>
0x7573 # <CJK>
-0x7574 # <CJK>
-0x7576 # <CJK>
-0x7577 # <CJK>
-0x7578 # <CJK>
0x757F # <CJK>
-0x7582 # <CJK>
-0x7586 # <CJK>
-0x7587 # <CJK>
-0x7589 # <CJK>
-0x758A # <CJK>
-0x758B # <CJK>
0x758E # <CJK>
-0x758F # <CJK>
0x7591 # <CJK>
-0x7594 # <CJK>
-0x759A # <CJK>
-0x759D # <CJK>
-0x75A3 # <CJK>
-0x75A5 # <CJK>
0x75AB # <CJK>
-0x75B1 # <CJK>
0x75B2 # <CJK>
-0x75B3 # <CJK>
-0x75B5 # <CJK>
-0x75B8 # <CJK>
-0x75B9 # <CJK>
-0x75BC # <CJK>
-0x75BD # <CJK>
0x75BE # <CJK>
-0x75C2 # <CJK>
-0x75C3 # <CJK>
0x75C5 # <CJK>
0x75C7 # <CJK>
-0x75CA # <CJK>
-0x75CD # <CJK>
-0x75D2 # <CJK>
-0x75D4 # <CJK>
0x75D5 # <CJK>
0x75D8 # <CJK>
-0x75D9 # <CJK>
0x75DB # <CJK>
-0x75DE # <CJK>
0x75E2 # <CJK>
-0x75E3 # <CJK>
0x75E9 # <CJK>
-0x75F0 # <CJK>
-0x75F2 # <CJK>
-0x75F3 # <CJK>
0x75F4 # <CJK>
-0x75FA # <CJK>
-0x75FC # <CJK>
-0x75FE # <CJK>
-0x75FF # <CJK>
-0x7601 # <CJK>
-0x7609 # <CJK>
-0x760B # <CJK>
0x760D # <CJK>
-0x761F # <CJK>
-0x7620 # <CJK>
-0x7621 # <CJK>
-0x7622 # <CJK>
-0x7624 # <CJK>
-0x7627 # <CJK>
-0x7630 # <CJK>
-0x7634 # <CJK>
-0x763B # <CJK>
0x7642 # <CJK>
-0x7646 # <CJK>
-0x7647 # <CJK>
-0x7648 # <CJK>
-0x764C # <CJK>
0x7652 # <CJK>
0x7656 # <CJK>
-0x7658 # <CJK>
-0x765C # <CJK>
-0x7661 # <CJK>
-0x7662 # <CJK>
-0x7667 # <CJK>
-0x7668 # <CJK>
-0x7669 # <CJK>
-0x766A # <CJK>
-0x766C # <CJK>
-0x7670 # <CJK>
-0x7672 # <CJK>
-0x7676 # <CJK>
-0x7678 # <CJK>
0x767A # <CJK>
0x767B # <CJK>
-0x767C # <CJK>
0x767D # <CJK>
0x767E # <CJK>
-0x7680 # <CJK>
-0x7683 # <CJK>
0x7684 # <CJK>
0x7686 # <CJK>
0x7687 # <CJK>
-0x7688 # <CJK>
-0x768B # <CJK>
-0x768E # <CJK>
-0x7690 # <CJK>
-0x7693 # <CJK>
-0x7696 # <CJK>
-0x7699 # <CJK>
-0x769A # <CJK>
0x76AE # <CJK>
-0x76B0 # <CJK>
-0x76B4 # <CJK>
-0x76B7 # <CJK>
-0x76B8 # <CJK>
-0x76B9 # <CJK>
-0x76BA # <CJK>
0x76BF # <CJK>
-0x76C2 # <CJK>
-0x76C3 # <CJK>
0x76C6 # <CJK>
-0x76C8 # <CJK>
0x76CA # <CJK>
-0x76CD # <CJK>
-0x76D2 # <CJK>
-0x76D6 # <CJK>
0x76D7 # <CJK>
0x76DB # <CJK>
-0x76DC # <CJK>
-0x76DE # <CJK>
0x76DF # <CJK>
-0x76E1 # <CJK>
0x76E3 # <CJK>
0x76E4 # <CJK>
-0x76E5 # <CJK>
-0x76E7 # <CJK>
-0x76EA # <CJK>
0x76EE # <CJK>
0x76F2 # <CJK>
0x76F4 # <CJK>
0x76F8 # <CJK>
-0x76FB # <CJK>
0x76FE # <CJK>
0x7701 # <CJK>
-0x7704 # <CJK>
-0x7707 # <CJK>
-0x7708 # <CJK>
0x7709 # <CJK>
0x770B # <CJK>
0x770C # <CJK>
-0x771B # <CJK>
-0x771E # <CJK>
0x771F # <CJK>
0x7720 # <CJK>
-0x7724 # <CJK>
-0x7725 # <CJK>
-0x7726 # <CJK>
-0x7729 # <CJK>
-0x7737 # <CJK>
-0x7738 # <CJK>
0x773A # <CJK>
0x773C # <CJK>
0x7740 # <CJK>
-0x7747 # <CJK>
-0x775A # <CJK>
-0x775B # <CJK>
0x7761 # <CJK>
0x7763 # <CJK>
-0x7765 # <CJK>
0x7766 # <CJK>
-0x7768 # <CJK>
-0x776B # <CJK>
-0x7779 # <CJK>
-0x777E # <CJK>
-0x777F # <CJK>
-0x778B # <CJK>
-0x778E # <CJK>
-0x7791 # <CJK>
-0x779E # <CJK>
-0x77A0 # <CJK>
-0x77A5 # <CJK>
0x77AC # <CJK>
0x77AD # <CJK>
-0x77B0 # <CJK>
0x77B3 # <CJK>
-0x77B6 # <CJK>
-0x77B9 # <CJK>
-0x77BB # <CJK>
-0x77BC # <CJK>
-0x77BD # <CJK>
-0x77BF # <CJK>
-0x77C7 # <CJK>
-0x77CD # <CJK>
-0x77D7 # <CJK>
-0x77DA # <CJK>
0x77DB # <CJK>
-0x77DC # <CJK>
0x77E2 # <CJK>
-0x77E3 # <CJK>
0x77E5 # <CJK>
-0x77E7 # <CJK>
-0x77E9 # <CJK>
0x77ED # <CJK>
-0x77EE # <CJK>
0x77EF # <CJK>
0x77F3 # <CJK>
-0x77FC # <CJK>
0x7802 # <CJK>
-0x780C # <CJK>
-0x7812 # <CJK>
0x7814 # <CJK>
0x7815 # <CJK>
-0x7820 # <CJK>
-0x7825 # <CJK>
-0x7826 # <CJK>
-0x7827 # <CJK>
0x7832 # <CJK>
0x7834 # <CJK>
-0x783A # <CJK>
-0x783F # <CJK>
-0x7845 # <CJK>
0x785D # <CJK>
0x786B # <CJK>
0x786C # <CJK>
-0x786F # <CJK>
-0x7872 # <CJK>
-0x7874 # <CJK>
-0x787C # <CJK>
0x7881 # <CJK>
-0x7886 # <CJK>
-0x7887 # <CJK>
-0x788C # <CJK>
-0x788D # <CJK>
-0x788E # <CJK>
0x7891 # <CJK>
-0x7893 # <CJK>
-0x7895 # <CJK>
-0x7897 # <CJK>
-0x789A # <CJK>
-0x78A3 # <CJK>
-0x78A7 # <CJK>
-0x78A9 # <CJK>
-0x78AA # <CJK>
-0x78AF # <CJK>
-0x78B5 # <CJK>
0x78BA # <CJK>
-0x78BC # <CJK>
-0x78BE # <CJK>
0x78C1 # <CJK>
-0x78C5 # <CJK>
-0x78C6 # <CJK>
-0x78CA # <CJK>
-0x78CB # <CJK>
-0x78D0 # <CJK>
-0x78D1 # <CJK>
-0x78D4 # <CJK>
-0x78DA # <CJK>
-0x78E7 # <CJK>
0x78E8 # <CJK>
-0x78EC # <CJK>
-0x78EF # <CJK>
-0x78F4 # <CJK>
-0x78FD # <CJK>
0x7901 # <CJK>
-0x7907 # <CJK>
0x790E # <CJK>
-0x7911 # <CJK>
-0x7912 # <CJK>
-0x7919 # <CJK>
-0x7926 # <CJK>
-0x792A # <CJK>
-0x792B # <CJK>
-0x792C # <CJK>
0x793A # <CJK>
0x793C # <CJK>
0x793E # <CJK>
-0x7940 # <CJK>
-0x7941 # <CJK>
-0x7947 # <CJK>
0x7948 # <CJK>
0x7949 # <CJK>
-0x7950 # <CJK>
-0x7953 # <CJK>
-0x7955 # <CJK>
0x7956 # <CJK>
-0x7957 # <CJK>
-0x795A # <CJK>
0x795D # <CJK>
0x795E # <CJK>
-0x795F # <CJK>
-0x7960 # <CJK>
-0x7962 # <CJK>
0x7965 # <CJK>
0x7968 # <CJK>
0x796D # <CJK>
-0x7977 # <CJK>
-0x797A # <CJK>
-0x797F # <CJK>
-0x7980 # <CJK>
0x7981 # <CJK>
-0x7984 # <CJK>
0x7985 # <CJK>
-0x798A # <CJK>
0x798D # <CJK>
-0x798E # <CJK>
0x798F # <CJK>
-0x799D # <CJK>
-0x79A6 # <CJK>
-0x79A7 # <CJK>
-0x79AA # <CJK>
-0x79AE # <CJK>
-0x79B0 # <CJK>
-0x79B3 # <CJK>
-0x79B9 # <CJK>
-0x79BA # <CJK>
-0x79BD # <CJK>
-0x79BE # <CJK>
-0x79BF # <CJK>
0x79C0 # <CJK>
0x79C1 # <CJK>
-0x79C9 # <CJK>
0x79CB # <CJK>
0x79D1 # <CJK>
0x79D2 # <CJK>
-0x79D5 # <CJK>
0x79D8 # <CJK>
0x79DF # <CJK>
-0x79E1 # <CJK>
-0x79E3 # <CJK>
-0x79E4 # <CJK>
-0x79E6 # <CJK>
-0x79E7 # <CJK>
0x79E9 # <CJK>
-0x79EC # <CJK>
0x79F0 # <CJK>
0x79FB # <CJK>
-0x7A00 # <CJK>
-0x7A08 # <CJK>
0x7A0B # <CJK>
-0x7A0D # <CJK>
0x7A0E # <CJK>
-0x7A14 # <CJK>
-0x7A17 # <CJK>
-0x7A18 # <CJK>
-0x7A19 # <CJK>
0x7A1A # <CJK>
-0x7A1C # <CJK>
-0x7A1F # <CJK>
-0x7A20 # <CJK>
0x7A2E # <CJK>
-0x7A31 # <CJK>
0x7A32 # <CJK>
-0x7A37 # <CJK>
-0x7A3B # <CJK>
0x7A3C # <CJK>
0x7A3D # <CJK>
-0x7A3E # <CJK>
0x7A3F # <CJK>
0x7A40 # <CJK>
0x7A42 # <CJK>
-0x7A43 # <CJK>
-0x7A46 # <CJK>
-0x7A49 # <CJK>
0x7A4D # <CJK>
-0x7A4E # <CJK>
0x7A4F # <CJK>
-0x7A50 # <CJK>
-0x7A57 # <CJK>
-0x7A61 # <CJK>
-0x7A62 # <CJK>
-0x7A63 # <CJK>
-0x7A69 # <CJK>
0x7A6B # <CJK>
-0x7A70 # <CJK>
0x7A74 # <CJK>
0x7A76 # <CJK>
-0x7A79 # <CJK>
0x7A7A # <CJK>
-0x7A7D # <CJK>
-0x7A7F # <CJK>
0x7A81 # <CJK>
0x7A83 # <CJK>
-0x7A84 # <CJK>
-0x7A88 # <CJK>
0x7A92 # <CJK>
0x7A93 # <CJK>
-0x7A95 # <CJK>
-0x7A96 # <CJK>
-0x7A97 # <CJK>
-0x7A98 # <CJK>
0x7A9F # <CJK>
-0x7AA9 # <CJK>
-0x7AAA # <CJK>
0x7AAE # <CJK>
0x7AAF # <CJK>
-0x7AB0 # <CJK>
-0x7AB6 # <CJK>
-0x7ABA # <CJK>
-0x7ABF # <CJK>
-0x7AC3 # <CJK>
-0x7AC4 # <CJK>
-0x7AC5 # <CJK>
-0x7AC7 # <CJK>
-0x7AC8 # <CJK>
-0x7ACA # <CJK>
0x7ACB # <CJK>
-0x7ACD # <CJK>
-0x7ACF # <CJK>
-0x7AD2 # <CJK>
-0x7AD3 # <CJK>
-0x7AD5 # <CJK>
-0x7AD9 # <CJK>
-0x7ADA # <CJK>
0x7ADC # <CJK>
-0x7ADD # <CJK>
-0x7ADF # <CJK>
0x7AE0 # <CJK>
-0x7AE1 # <CJK>
-0x7AE2 # <CJK>
-0x7AE3 # <CJK>
0x7AE5 # <CJK>
-0x7AE6 # <CJK>
-0x7AEA # <CJK>
-0x7AED # <CJK>
0x7AEF # <CJK>
-0x7AF0 # <CJK>
0x7AF6 # <CJK>
-0x7AF8 # <CJK>
0x7AF9 # <CJK>
-0x7AFA # <CJK>
-0x7AFF # <CJK>
-0x7B02 # <CJK>
-0x7B04 # <CJK>
-0x7B06 # <CJK>
-0x7B08 # <CJK>
-0x7B0A # <CJK>
-0x7B0B # <CJK>
-0x7B0F # <CJK>
0x7B11 # <CJK>
-0x7B18 # <CJK>
-0x7B19 # <CJK>
0x7B1B # <CJK>
-0x7B1E # <CJK>
-0x7B20 # <CJK>
-0x7B25 # <CJK>
0x7B26 # <CJK>
-0x7B28 # <CJK>
0x7B2C # <CJK>
-0x7B33 # <CJK>
-0x7B35 # <CJK>
-0x7B36 # <CJK>
-0x7B39 # <CJK>
-0x7B45 # <CJK>
0x7B46 # <CJK>
-0x7B48 # <CJK>
0x7B49 # <CJK>
0x7B4B # <CJK>
-0x7B4C # <CJK>
-0x7B4D # <CJK>
-0x7B4F # <CJK>
-0x7B50 # <CJK>
-0x7B51 # <CJK>
0x7B52 # <CJK>
0x7B54 # <CJK>
0x7B56 # <CJK>
-0x7B5D # <CJK>
-0x7B65 # <CJK>
-0x7B67 # <CJK>
-0x7B6C # <CJK>
-0x7B6E # <CJK>
-0x7B70 # <CJK>
-0x7B71 # <CJK>
-0x7B74 # <CJK>
-0x7B75 # <CJK>
-0x7B7A # <CJK>
-0x7B86 # <CJK>
0x7B87 # <CJK>
0x7B8B # <CJK>
-0x7B8D # <CJK>
-0x7B8F # <CJK>
-0x7B92 # <CJK>
-0x7B94 # <CJK>
-0x7B95 # <CJK>
0x7B97 # <CJK>
-0x7B98 # <CJK>
-0x7B99 # <CJK>
-0x7B9A # <CJK>
-0x7B9C # <CJK>
-0x7B9D # <CJK>
-0x7B9F # <CJK>
0x7BA1 # <CJK>
-0x7BAA # <CJK>
-0x7BAD # <CJK>
0x7BB1 # <CJK>
-0x7BB4 # <CJK>
0x7BB8 # <CJK>
0x7BC0 # <CJK>
-0x7BC1 # <CJK>
0x7BC4 # <CJK>
-0x7BC6 # <CJK>
-0x7BC7 # <CJK>
0x7BC9 # <CJK>
-0x7BCB # <CJK>
-0x7BCC # <CJK>
-0x7BCF # <CJK>
-0x7BDD # <CJK>
-0x7BE0 # <CJK>
0x7BE4 # <CJK>
-0x7BE5 # <CJK>
-0x7BE6 # <CJK>
-0x7BE9 # <CJK>
-0x7BED # <CJK>
-0x7BF3 # <CJK>
-0x7BF6 # <CJK>
-0x7BF7 # <CJK>
-0x7C00 # <CJK>
-0x7C07 # <CJK>
-0x7C0D # <CJK>
-0x7C11 # <CJK>
-0x7C12 # <CJK>
-0x7C13 # <CJK>
-0x7C14 # <CJK>
-0x7C17 # <CJK>
-0x7C1F # <CJK>
0x7C21 # <CJK>
-0x7C23 # <CJK>
-0x7C27 # <CJK>
-0x7C2A # <CJK>
-0x7C2B # <CJK>
-0x7C37 # <CJK>
-0x7C38 # <CJK>
-0x7C3D # <CJK>
-0x7C3E # <CJK>
0x7C3F # <CJK>
-0x7C40 # <CJK>
-0x7C43 # <CJK>
-0x7C4C # <CJK>
0x7C4D # <CJK>
-0x7C4F # <CJK>
-0x7C50 # <CJK>
-0x7C54 # <CJK>
-0x7C56 # <CJK>
-0x7C58 # <CJK>
-0x7C5F # <CJK>
0x7C60 # <CJK>
-0x7C64 # <CJK>
-0x7C65 # <CJK>
-0x7C6C # <CJK>
0x7C73 # <CJK>
-0x7C75 # <CJK>
-0x7C7E # <CJK>
-0x7C81 # <CJK>
-0x7C82 # <CJK>
-0x7C83 # <CJK>
0x7C89 # <CJK>
0x7C8B # <CJK>
-0x7C8D # <CJK>
-0x7C90 # <CJK>
0x7C92 # <CJK>
-0x7C95 # <CJK>
0x7C97 # <CJK>
0x7C98 # <CJK>
0x7C9B # <CJK>
-0x7C9F # <CJK>
-0x7CA1 # <CJK>
-0x7CA2 # <CJK>
-0x7CA4 # <CJK>
-0x7CA5 # <CJK>
0x7CA7 # <CJK>
-0x7CA8 # <CJK>
-0x7CAB # <CJK>
-0x7CAD # <CJK>
-0x7CAE # <CJK>
-0x7CB1 # <CJK>
-0x7CB2 # <CJK>
-0x7CB3 # <CJK>
-0x7CB9 # <CJK>
-0x7CBD # <CJK>
0x7CBE # <CJK>
-0x7CC0 # <CJK>
-0x7CC2 # <CJK>
-0x7CC5 # <CJK>
-0x7CCA # <CJK>
-0x7CCE # <CJK>
-0x7CD2 # <CJK>
0x7CD6 # <CJK>
-0x7CD8 # <CJK>
-0x7CDC # <CJK>
-0x7CDE # <CJK>
-0x7CDF # <CJK>
-0x7CE0 # <CJK>
-0x7CE2 # <CJK>
0x7CE7 # <CJK>
-0x7CEF # <CJK>
-0x7CF2 # <CJK>
-0x7CF4 # <CJK>
-0x7CF6 # <CJK>
0x7CF8 # <CJK>
-0x7CFA # <CJK>
0x7CFB # <CJK>
0x7CFE # <CJK>
0x7D00 # <CJK>
-0x7D02 # <CJK>
0x7D04 # <CJK>
0x7D05 # <CJK>
-0x7D06 # <CJK>
-0x7D0A # <CJK>
0x7D0B # <CJK>
0x7D0D # <CJK>
-0x7D10 # <CJK>
0x7D14 # <CJK>
-0x7D15 # <CJK>
-0x7D17 # <CJK>
-0x7D18 # <CJK>
0x7D19 # <CJK>
0x7D1A # <CJK>
0x7D1B # <CJK>
-0x7D1C # <CJK>
0x7D20 # <CJK>
0x7D21 # <CJK>
0x7D22 # <CJK>
0x7D2B # <CJK>
-0x7D2C # <CJK>
-0x7D2E # <CJK>
0x7D2F # <CJK>
0x7D30 # <CJK>
-0x7D32 # <CJK>
0x7D33 # <CJK>
-0x7D35 # <CJK>
0x7D39 # <CJK>
0x7D3A # <CJK>
-0x7D3F # <CJK>
0x7D42 # <CJK>
-0x7D43 # <CJK>
0x7D44 # <CJK>
-0x7D45 # <CJK>
-0x7D46 # <CJK>
-0x7D4B # <CJK>
0x7D4C # <CJK>
-0x7D4E # <CJK>
-0x7D4F # <CJK>
0x7D50 # <CJK>
-0x7D56 # <CJK>
-0x7D5B # <CJK>
0x7D5E # <CJK>
0x7D61 # <CJK>
-0x7D62 # <CJK>
-0x7D63 # <CJK>
0x7D66 # <CJK>
-0x7D68 # <CJK>
-0x7D6E # <CJK>
0x7D71 # <CJK>
-0x7D72 # <CJK>
-0x7D73 # <CJK>
0x7D75 # <CJK>
0x7D76 # <CJK>
0x7D79 # <CJK>
-0x7D7D # <CJK>
-0x7D89 # <CJK>
-0x7D8F # <CJK>
-0x7D93 # <CJK>
0x7D99 # <CJK>
0x7D9A # <CJK>
-0x7D9B # <CJK>
-0x7D9C # <CJK>
-0x7D9F # <CJK>
-0x7DA2 # <CJK>
-0x7DA3 # <CJK>
-0x7DAB # <CJK>
-0x7DAC # <CJK>
0x7DAD # <CJK>
-0x7DAE # <CJK>
-0x7DAF # <CJK>
-0x7DB0 # <CJK>
0x7DB1 # <CJK>
0x7DB2 # <CJK>
-0x7DB4 # <CJK>
-0x7DB5 # <CJK>
-0x7DB8 # <CJK>
-0x7DBA # <CJK>
0x7DBB # <CJK>
-0x7DBD # <CJK>
-0x7DBE # <CJK>
0x7DBF # <CJK>
-0x7DC7 # <CJK>
0x7DCA # <CJK>
-0x7DCB # <CJK>
0x7DCF # <CJK>
0x7DD1 # <CJK>
0x7DD2 # <CJK>
-0x7DD5 # <CJK>
-0x7DD8 # <CJK>
0x7DDA # <CJK>
-0x7DDC # <CJK>
-0x7DDD # <CJK>
-0x7DDE # <CJK>
0x7DE0 # <CJK>
-0x7DE1 # <CJK>
-0x7DE4 # <CJK>
0x7DE8 # <CJK>
0x7DE9 # <CJK>
-0x7DEC # <CJK>
0x7DEF # <CJK>
-0x7DF2 # <CJK>
0x7DF4 # <CJK>
0x7DFB # <CJK>
0x7E01 # <CJK>
0x7E04 # <CJK>
-0x7E05 # <CJK>
-0x7E09 # <CJK>
-0x7E0A # <CJK>
-0x7E0B # <CJK>
-0x7E12 # <CJK>
0x7E1B # <CJK>
-0x7E1E # <CJK>
-0x7E1F # <CJK>
-0x7E21 # <CJK>
-0x7E22 # <CJK>
-0x7E23 # <CJK>
0x7E26 # <CJK>
0x7E2B # <CJK>
0x7E2E # <CJK>
-0x7E31 # <CJK>
-0x7E32 # <CJK>
-0x7E35 # <CJK>
-0x7E37 # <CJK>
-0x7E39 # <CJK>
-0x7E3A # <CJK>
-0x7E3B # <CJK>
-0x7E3D # <CJK>
0x7E3E # <CJK>
0x7E41 # <CJK>
-0x7E43 # <CJK>
-0x7E46 # <CJK>
0x7E4A # <CJK>
-0x7E4B # <CJK>
-0x7E4D # <CJK>
0x7E54 # <CJK>
0x7E55 # <CJK>
-0x7E56 # <CJK>
-0x7E59 # <CJK>
-0x7E5A # <CJK>
-0x7E5D # <CJK>
-0x7E5E # <CJK>
-0x7E66 # <CJK>
-0x7E67 # <CJK>
-0x7E69 # <CJK>
-0x7E6A # <CJK>
0x7E6D # <CJK>
0x7E70 # <CJK>
-0x7E79 # <CJK>
-0x7E7B # <CJK>
-0x7E7C # <CJK>
-0x7E7D # <CJK>
-0x7E7F # <CJK>
-0x7E82 # <CJK>
-0x7E83 # <CJK>
-0x7E88 # <CJK>
-0x7E89 # <CJK>
-0x7E8C # <CJK>
-0x7E8E # <CJK>
-0x7E8F # <CJK>
-0x7E90 # <CJK>
-0x7E92 # <CJK>
-0x7E93 # <CJK>
-0x7E94 # <CJK>
-0x7E96 # <CJK>
-0x7E9B # <CJK>
-0x7E9C # <CJK>
0x7F36 # <CJK>
-0x7F38 # <CJK>
-0x7F3A # <CJK>
-0x7F45 # <CJK>
-0x7F4C # <CJK>
-0x7F4D # <CJK>
-0x7F4E # <CJK>
-0x7F50 # <CJK>
-0x7F51 # <CJK>
-0x7F54 # <CJK>
-0x7F55 # <CJK>
-0x7F58 # <CJK>
-0x7F5F # <CJK>
-0x7F60 # <CJK>
-0x7F67 # <CJK>
-0x7F68 # <CJK>
-0x7F69 # <CJK>
0x7F6A # <CJK>
-0x7F6B # <CJK>
0x7F6E # <CJK>
0x7F70 # <CJK>
0x7F72 # <CJK>
0x7F75 # <CJK>
0x7F77 # <CJK>
-0x7F78 # <CJK>
-0x7F79 # <CJK>
-0x7F82 # <CJK>
-0x7F83 # <CJK>
0x7F85 # <CJK>
-0x7F86 # <CJK>
-0x7F87 # <CJK>
-0x7F88 # <CJK>
0x7F8A # <CJK>
-0x7F8C # <CJK>
0x7F8E # <CJK>
-0x7F94 # <CJK>
-0x7F9A # <CJK>
-0x7F9D # <CJK>
0x7F9E # <CJK>
-0x7FA3 # <CJK>
0x7FA4 # <CJK>
0x7FA8 # <CJK>
0x7FA9 # <CJK>
-0x7FAE # <CJK>
-0x7FAF # <CJK>
-0x7FB2 # <CJK>
-0x7FB6 # <CJK>
-0x7FB8 # <CJK>
-0x7FB9 # <CJK>
0x7FBD # <CJK>
0x7FC1 # <CJK>
-0x7FC5 # <CJK>
-0x7FC6 # <CJK>
-0x7FCA # <CJK>
0x7FCC # <CJK>
0x7FD2 # <CJK>
-0x7FD4 # <CJK>
-0x7FD5 # <CJK>
-0x7FE0 # <CJK>
-0x7FE1 # <CJK>
-0x7FE6 # <CJK>
-0x7FE9 # <CJK>
-0x7FEB # <CJK>
-0x7FF0 # <CJK>
-0x7FF3 # <CJK>
-0x7FF9 # <CJK>
0x7FFB # <CJK>
0x7FFC # <CJK>
-0x8000 # <CJK>
0x8001 # <CJK>
0x8003 # <CJK>
-0x8004 # <CJK>
0x8005 # <CJK>
-0x8006 # <CJK>
-0x800B # <CJK>
-0x800C # <CJK>
0x8010 # <CJK>
-0x8012 # <CJK>
0x8015 # <CJK>
0x8017 # <CJK>
-0x8018 # <CJK>
-0x8019 # <CJK>
-0x801C # <CJK>
-0x8021 # <CJK>
-0x8028 # <CJK>
0x8033 # <CJK>
-0x8036 # <CJK>
-0x803B # <CJK>
-0x803D # <CJK>
-0x803F # <CJK>
-0x8046 # <CJK>
-0x804A # <CJK>
-0x8052 # <CJK>
0x8056 # <CJK>
-0x8058 # <CJK>
-0x805A # <CJK>
0x805E # <CJK>
-0x805F # <CJK>
-0x8061 # <CJK>
-0x8062 # <CJK>
-0x8068 # <CJK>
-0x806F # <CJK>
-0x8070 # <CJK>
-0x8072 # <CJK>
-0x8073 # <CJK>
0x8074 # <CJK>
-0x8076 # <CJK>
0x8077 # <CJK>
-0x8079 # <CJK>
-0x807D # <CJK>
-0x807E # <CJK>
-0x807F # <CJK>
-0x8084 # <CJK>
-0x8085 # <CJK>
-0x8086 # <CJK>
-0x8087 # <CJK>
0x8089 # <CJK>
-0x808B # <CJK>
0x808C # <CJK>
-0x8093 # <CJK>
0x8096 # <CJK>
0x8098 # <CJK>
-0x809A # <CJK>
-0x809B # <CJK>
0x809D # <CJK>
0x80A1 # <CJK>
0x80A2 # <CJK>
0x80A5 # <CJK>
0x80A9 # <CJK>
0x80AA # <CJK>
-0x80AC # <CJK>
-0x80AD # <CJK>
0x80AF # <CJK>
-0x80B1 # <CJK>
0x80B2 # <CJK>
-0x80B4 # <CJK>
0x80BA # <CJK>
0x80C3 # <CJK>
-0x80C4 # <CJK>
0x80C6 # <CJK>
0x80CC # <CJK>
0x80CE # <CJK>
-0x80D6 # <CJK>
-0x80D9 # <CJK>
-0x80DA # <CJK>
-0x80DB # <CJK>
-0x80DD # <CJK>
0x80DE # <CJK>
-0x80E1 # <CJK>
-0x80E4 # <CJK>
-0x80E5 # <CJK>
-0x80EF # <CJK>
-0x80F1 # <CJK>
0x80F4 # <CJK>
0x80F8 # <CJK>
-0x80FC # <CJK>
0x80FD # <CJK>
0x8102 # <CJK>
0x8105 # <CJK>
-0x8106 # <CJK>
0x8107 # <CJK>
0x8108 # <CJK>
-0x8109 # <CJK>
0x810A # <CJK>
0x811A # <CJK>
-0x811B # <CJK>
-0x8123 # <CJK>
-0x8129 # <CJK>
-0x812F # <CJK>
0x8131 # <CJK>
0x8133 # <CJK>
-0x8139 # <CJK>
-0x813E # <CJK>
-0x8146 # <CJK>
-0x814B # <CJK>
0x814E # <CJK>
0x8150 # <CJK>
-0x8151 # <CJK>
-0x8153 # <CJK>
-0x8154 # <CJK>
0x8155 # <CJK>
-0x815F # <CJK>
-0x8165 # <CJK>
-0x8166 # <CJK>
0x816B # <CJK>
-0x816E # <CJK>
0x8170 # <CJK>
-0x8171 # <CJK>
-0x8174 # <CJK>
0x8178 # <CJK>
0x8179 # <CJK>
0x817A # <CJK>
-0x817F # <CJK>
-0x8180 # <CJK>
-0x8182 # <CJK>
-0x8183 # <CJK>
-0x8188 # <CJK>
-0x818A # <CJK>
-0x818F # <CJK>
-0x8193 # <CJK>
-0x8195 # <CJK>
0x819A # <CJK>
0x819C # <CJK>
0x819D # <CJK>
-0x81A0 # <CJK>
-0x81A3 # <CJK>
-0x81A4 # <CJK>
0x81A8 # <CJK>
-0x81A9 # <CJK>
-0x81B0 # <CJK>
0x81B3 # <CJK>
-0x81B5 # <CJK>
-0x81B8 # <CJK>
-0x81BA # <CJK>
-0x81BD # <CJK>
-0x81BE # <CJK>
-0x81BF # <CJK>
-0x81C0 # <CJK>
-0x81C2 # <CJK>
0x81C6 # <CJK>
-0x81C8 # <CJK>
-0x81C9 # <CJK>
-0x81CD # <CJK>
-0x81D1 # <CJK>
0x81D3 # <CJK>
-0x81D8 # <CJK>
-0x81D9 # <CJK>
-0x81DA # <CJK>
-0x81DF # <CJK>
-0x81E0 # <CJK>
0x81E3 # <CJK>
-0x81E5 # <CJK>
-0x81E7 # <CJK>
0x81E8 # <CJK>
0x81EA # <CJK>
0x81ED # <CJK>
0x81F3 # <CJK>
0x81F4 # <CJK>
-0x81FA # <CJK>
-0x81FB # <CJK>
0x81FC # <CJK>
-0x81FE # <CJK>
-0x8201 # <CJK>
-0x8202 # <CJK>
-0x8205 # <CJK>
-0x8207 # <CJK>
0x8208 # <CJK>
-0x8209 # <CJK>
-0x820A # <CJK>
0x820C # <CJK>
-0x820D # <CJK>
0x820E # <CJK>
-0x8210 # <CJK>
-0x8212 # <CJK>
-0x8216 # <CJK>
0x8217 # <CJK>
-0x8218 # <CJK>
-0x821B # <CJK>
-0x821C # <CJK>
0x821E # <CJK>
0x821F # <CJK>
-0x8229 # <CJK>
0x822A # <CJK>
-0x822B # <CJK>
0x822C # <CJK>
-0x822E # <CJK>
-0x8233 # <CJK>
-0x8235 # <CJK>
0x8236 # <CJK>
0x8237 # <CJK>
-0x8238 # <CJK>
0x8239 # <CJK>
-0x8240 # <CJK>
0x8247 # <CJK>
-0x8258 # <CJK>
-0x8259 # <CJK>
-0x825A # <CJK>
-0x825D # <CJK>
-0x825F # <CJK>
-0x8262 # <CJK>
-0x8264 # <CJK>
0x8266 # <CJK>
-0x8268 # <CJK>
-0x826A # <CJK>
-0x826B # <CJK>
-0x826E # <CJK>
0x826F # <CJK>
-0x8271 # <CJK>
0x8272 # <CJK>
0x8276 # <CJK>
-0x8277 # <CJK>
-0x8278 # <CJK>
-0x827E # <CJK>
0x828B # <CJK>
-0x828D # <CJK>
-0x8292 # <CJK>
-0x8299 # <CJK>
0x829D # <CJK>
-0x829F # <CJK>
-0x82A5 # <CJK>
-0x82A6 # <CJK>
-0x82AB # <CJK>
-0x82AC # <CJK>
-0x82AD # <CJK>
0x82AF # <CJK>
0x82B1 # <CJK>
0x82B3 # <CJK>
0x82B8 # <CJK>
-0x82B9 # <CJK>
-0x82BB # <CJK>
0x82BD # <CJK>
-0x82C5 # <CJK>
-0x82D1 # <CJK>
-0x82D2 # <CJK>
-0x82D3 # <CJK>
-0x82D4 # <CJK>
0x82D7 # <CJK>
-0x82D9 # <CJK>
0x82DB # <CJK>
-0x82DC # <CJK>
-0x82DE # <CJK>
-0x82DF # <CJK>
-0x82E1 # <CJK>
-0x82E3 # <CJK>
0x82E5 # <CJK>
0x82E6 # <CJK>
-0x82E7 # <CJK>
-0x82EB # <CJK>
0x82F1 # <CJK>
-0x82F3 # <CJK>
-0x82F4 # <CJK>
-0x82F9 # <CJK>
-0x82FA # <CJK>
-0x82FB # <CJK>
0x8302 # <CJK>
-0x8303 # <CJK>
-0x8304 # <CJK>
-0x8305 # <CJK>
-0x8306 # <CJK>
-0x8309 # <CJK>
0x830E # <CJK>
-0x8316 # <CJK>
-0x8317 # <CJK>
-0x8318 # <CJK>
-0x831C # <CJK>
-0x8323 # <CJK>
0x8328 # <CJK>
-0x832B # <CJK>
-0x832F # <CJK>
-0x8331 # <CJK>
-0x8332 # <CJK>
-0x8334 # <CJK>
-0x8335 # <CJK>
0x8336 # <CJK>
-0x8338 # <CJK>
-0x8339 # <CJK>
-0x8340 # <CJK>
-0x8345 # <CJK>
0x8349 # <CJK>
-0x834A # <CJK>
-0x834F # <CJK>
-0x8350 # <CJK>
0x8352 # <CJK>
0x8358 # <CJK>
-0x8373 # <CJK>
-0x8375 # <CJK>
0x8377 # <CJK>
-0x837B # <CJK>
-0x837C # <CJK>
-0x8385 # <CJK>
-0x8387 # <CJK>
-0x8389 # <CJK>
-0x838A # <CJK>
-0x838E # <CJK>
-0x8393 # <CJK>
-0x8396 # <CJK>
-0x839A # <CJK>
-0x839E # <CJK>
-0x839F # <CJK>
-0x83A0 # <CJK>
-0x83A2 # <CJK>
-0x83A8 # <CJK>
-0x83AA # <CJK>
-0x83AB # <CJK>
-0x83B1 # <CJK>
-0x83B5 # <CJK>
-0x83BD # <CJK>
-0x83C1 # <CJK>
-0x83C5 # <CJK>
0x83CA # <CJK>
0x83CC # <CJK>
-0x83CE # <CJK>
0x83D3 # <CJK>
-0x83D6 # <CJK>
-0x83D8 # <CJK>
0x83DC # <CJK>
-0x83DF # <CJK>
-0x83E0 # <CJK>
-0x83E9 # <CJK>
-0x83EB # <CJK>
0x83EF # <CJK>
-0x83F0 # <CJK>
-0x83F1 # <CJK>
-0x83F2 # <CJK>
-0x83F4 # <CJK>
-0x83F7 # <CJK>
-0x83FB # <CJK>
-0x83FD # <CJK>
-0x8403 # <CJK>
-0x8404 # <CJK>
-0x8407 # <CJK>
-0x840B # <CJK>
-0x840C # <CJK>
-0x840D # <CJK>
0x840E # <CJK>
-0x8413 # <CJK>
-0x8420 # <CJK>
-0x8422 # <CJK>
-0x8429 # <CJK>
-0x842A # <CJK>
-0x842C # <CJK>
-0x8431 # <CJK>
-0x8435 # <CJK>
-0x8438 # <CJK>
-0x843C # <CJK>
0x843D # <CJK>
-0x8446 # <CJK>
0x8449 # <CJK>
-0x844E # <CJK>
0x8457 # <CJK>
0x845B # <CJK>
-0x8461 # <CJK>
-0x8462 # <CJK>
-0x8463 # <CJK>
-0x8466 # <CJK>
-0x8469 # <CJK>
-0x846B # <CJK>
0x846C # <CJK>
-0x846D # <CJK>
-0x846E # <CJK>
-0x846F # <CJK>
-0x8471 # <CJK>
-0x8475 # <CJK>
-0x8477 # <CJK>
-0x8479 # <CJK>
-0x847A # <CJK>
-0x8482 # <CJK>
-0x8484 # <CJK>
-0x848B # <CJK>
-0x8490 # <CJK>
-0x8494 # <CJK>
-0x8499 # <CJK>
-0x849C # <CJK>
-0x849F # <CJK>
-0x84A1 # <CJK>
-0x84AD # <CJK>
-0x84B2 # <CJK>
0x84B8 # <CJK>
-0x84B9 # <CJK>
-0x84BB # <CJK>
-0x84BC # <CJK>
-0x84BF # <CJK>
-0x84C1 # <CJK>
0x84C4 # <CJK>
-0x84C6 # <CJK>
-0x84C9 # <CJK>
-0x84CA # <CJK>
0x84CB # <CJK>
-0x84CD # <CJK>
-0x84D0 # <CJK>
-0x84D1 # <CJK>
-0x84D6 # <CJK>
-0x84D9 # <CJK>
-0x84DA # <CJK>
-0x84EC # <CJK>
-0x84EE # <CJK>
-0x84F4 # <CJK>
-0x84FC # <CJK>
-0x84FF # <CJK>
-0x8500 # <CJK>
-0x8506 # <CJK>
0x8511 # <CJK>
-0x8513 # <CJK>
-0x8514 # <CJK>
-0x8515 # <CJK>
-0x8517 # <CJK>
-0x8518 # <CJK>
-0x851A # <CJK>
-0x851F # <CJK>
-0x8521 # <CJK>
-0x8526 # <CJK>
-0x852C # <CJK>
-0x852D # <CJK>
0x8535 # <CJK>
0x853D # <CJK>
-0x8540 # <CJK>
-0x8541 # <CJK>
-0x8543 # <CJK>
-0x8548 # <CJK>
-0x8549 # <CJK>
-0x854A # <CJK>
-0x854B # <CJK>
-0x854E # <CJK>
-0x8555 # <CJK>
-0x8557 # <CJK>
-0x8558 # <CJK>
-0x855A # <CJK>
-0x8563 # <CJK>
-0x8568 # <CJK>
-0x8569 # <CJK>
-0x856A # <CJK>
-0x856D # <CJK>
-0x8577 # <CJK>
-0x857E # <CJK>
-0x8580 # <CJK>
0x8584 # <CJK>
-0x8587 # <CJK>
-0x8588 # <CJK>
-0x858A # <CJK>
-0x8590 # <CJK>
-0x8591 # <CJK>
-0x8594 # <CJK>
-0x8597 # <CJK>
-0x8599 # <CJK>
-0x859B # <CJK>
-0x859C # <CJK>
-0x85A4 # <CJK>
0x85A6 # <CJK>
-0x85A8 # <CJK>
-0x85A9 # <CJK>
0x85AA # <CJK>
0x85AB # <CJK>
0x85AC # <CJK>
-0x85AE # <CJK>
-0x85AF # <CJK>
-0x85B9 # <CJK>
-0x85BA # <CJK>
-0x85C1 # <CJK>
-0x85C9 # <CJK>
0x85CD # <CJK>
-0x85CF # <CJK>
-0x85D0 # <CJK>
-0x85D5 # <CJK>
-0x85DC # <CJK>
-0x85DD # <CJK>
0x85E4 # <CJK>
-0x85E5 # <CJK>
0x85E9 # <CJK>
-0x85EA # <CJK>
-0x85F7 # <CJK>
-0x85F9 # <CJK>
-0x85FA # <CJK>
0x85FB # <CJK>
-0x85FE # <CJK>
-0x8602 # <CJK>
-0x8606 # <CJK>
-0x8607 # <CJK>
-0x860A # <CJK>
-0x860B # <CJK>
-0x8613 # <CJK>
-0x8616 # <CJK>
-0x8617 # <CJK>
-0x861A # <CJK>
-0x8622 # <CJK>
-0x862D # <CJK>
-0x862F # <CJK>
-0x8630 # <CJK>
-0x863F # <CJK>
-0x864D # <CJK>
0x864E # <CJK>
0x8650 # <CJK>
-0x8654 # <CJK>
-0x8655 # <CJK>
0x865A # <CJK>
0x865C # <CJK>
0x865E # <CJK>
-0x865F # <CJK>
-0x8667 # <CJK>
0x866B # <CJK>
-0x8671 # <CJK>
0x8679 # <CJK>
-0x867B # <CJK>
0x868A # <CJK>
-0x868B # <CJK>
-0x868C # <CJK>
-0x8693 # <CJK>
0x8695 # <CJK>
-0x86A3 # <CJK>
-0x86A4 # <CJK>
-0x86A9 # <CJK>
-0x86AA # <CJK>
-0x86AB # <CJK>
-0x86AF # <CJK>
-0x86B0 # <CJK>
-0x86B6 # <CJK>
-0x86C4 # <CJK>
-0x86C6 # <CJK>
0x86C7 # <CJK>
-0x86C9 # <CJK>
-0x86CB # <CJK>
0x86CD # <CJK>
-0x86CE # <CJK>
-0x86D4 # <CJK>
-0x86D9 # <CJK>
-0x86DB # <CJK>
-0x86DE # <CJK>
-0x86DF # <CJK>
-0x86E4 # <CJK>
-0x86E9 # <CJK>
-0x86EC # <CJK>
-0x86ED # <CJK>
0x86EE # <CJK>
-0x86EF # <CJK>
-0x86F8 # <CJK>
-0x86F9 # <CJK>
-0x86FB # <CJK>
-0x86FE # <CJK>
-0x8700 # <CJK>
0x8702 # <CJK>
-0x8703 # <CJK>
-0x8706 # <CJK>
-0x8708 # <CJK>
-0x8709 # <CJK>
-0x870A # <CJK>
-0x870D # <CJK>
-0x8711 # <CJK>
-0x8712 # <CJK>
-0x8718 # <CJK>
-0x871A # <CJK>
0x871C # <CJK>
-0x8725 # <CJK>
-0x8729 # <CJK>
-0x8734 # <CJK>
-0x8737 # <CJK>
-0x873B # <CJK>
-0x873F # <CJK>
-0x8749 # <CJK>
-0x874B # <CJK>
-0x874C # <CJK>
-0x874E # <CJK>
-0x8753 # <CJK>
-0x8755 # <CJK>
-0x8757 # <CJK>
-0x8759 # <CJK>
-0x875F # <CJK>
-0x8760 # <CJK>
-0x8763 # <CJK>
-0x8766 # <CJK>
-0x8768 # <CJK>
-0x876A # <CJK>
-0x876E # <CJK>
-0x8774 # <CJK>
-0x8776 # <CJK>
-0x8778 # <CJK>
-0x877F # <CJK>
-0x8782 # <CJK>
0x878D # <CJK>
-0x879F # <CJK>
-0x87A2 # <CJK>
-0x87AB # <CJK>
-0x87AF # <CJK>
-0x87B3 # <CJK>
-0x87BA # <CJK>
-0x87BB # <CJK>
-0x87BD # <CJK>
-0x87C0 # <CJK>
-0x87C4 # <CJK>
-0x87C6 # <CJK>
-0x87C7 # <CJK>
-0x87CB # <CJK>
-0x87D0 # <CJK>
-0x87D2 # <CJK>
-0x87E0 # <CJK>
-0x87EF # <CJK>
-0x87F2 # <CJK>
-0x87F6 # <CJK>
-0x87F7 # <CJK>
-0x87F9 # <CJK>
-0x87FB # <CJK>
-0x87FE # <CJK>
-0x8805 # <CJK>
-0x880D # <CJK>
-0x880E # <CJK>
-0x880F # <CJK>
-0x8811 # <CJK>
-0x8815 # <CJK>
-0x8816 # <CJK>
-0x8821 # <CJK>
-0x8822 # <CJK>
-0x8823 # <CJK>
-0x8827 # <CJK>
-0x8831 # <CJK>
-0x8836 # <CJK>
-0x8839 # <CJK>
-0x883B # <CJK>
0x8840 # <CJK>
-0x8842 # <CJK>
-0x8844 # <CJK>
0x8846 # <CJK>
0x884C # <CJK>
-0x884D # <CJK>
-0x8852 # <CJK>
0x8853 # <CJK>
0x8857 # <CJK>
-0x8859 # <CJK>
0x885B # <CJK>
0x885D # <CJK>
-0x885E # <CJK>
0x8861 # <CJK>
-0x8862 # <CJK>
0x8863 # <CJK>
0x8868 # <CJK>
-0x886B # <CJK>
0x8870 # <CJK>
-0x8872 # <CJK>
-0x8875 # <CJK>
0x8877 # <CJK>
-0x887D # <CJK>
-0x887E # <CJK>
-0x887F # <CJK>
-0x8881 # <CJK>
-0x8882 # <CJK>
-0x8888 # <CJK>
0x888B # <CJK>
-0x888D # <CJK>
-0x8892 # <CJK>
0x8896 # <CJK>
-0x8897 # <CJK>
-0x8899 # <CJK>
-0x889E # <CJK>
-0x88A2 # <CJK>
-0x88A4 # <CJK>
0x88AB # <CJK>
-0x88AE # <CJK>
-0x88B0 # <CJK>
-0x88B1 # <CJK>
-0x88B4 # <CJK>
-0x88B5 # <CJK>
-0x88B7 # <CJK>
-0x88BF # <CJK>
0x88C1 # <CJK>
0x88C2 # <CJK>
-0x88C3 # <CJK>
-0x88C4 # <CJK>
0x88C5 # <CJK>
0x88CF # <CJK>
-0x88D4 # <CJK>
0x88D5 # <CJK>
-0x88D8 # <CJK>
-0x88D9 # <CJK>
0x88DC # <CJK>
-0x88DD # <CJK>
-0x88DF # <CJK>
-0x88E1 # <CJK>
-0x88E8 # <CJK>
-0x88F2 # <CJK>
-0x88F3 # <CJK>
-0x88F4 # <CJK>
0x88F8 # <CJK>
-0x88F9 # <CJK>
-0x88FC # <CJK>
0x88FD # <CJK>
0x88FE # <CJK>
-0x8902 # <CJK>
-0x8904 # <CJK>
0x8907 # <CJK>
-0x890A # <CJK>
-0x890C # <CJK>
0x8910 # <CJK>
0x8912 # <CJK>
-0x8913 # <CJK>
-0x891D # <CJK>
-0x891E # <CJK>
-0x8925 # <CJK>
-0x892A # <CJK>
-0x892B # <CJK>
-0x8936 # <CJK>
-0x8938 # <CJK>
-0x893B # <CJK>
-0x8941 # <CJK>
-0x8943 # <CJK>
-0x8944 # <CJK>
-0x894C # <CJK>
-0x894D # <CJK>
-0x8956 # <CJK>
-0x895E # <CJK>
0x895F # <CJK>
-0x8960 # <CJK>
-0x8964 # <CJK>
-0x8966 # <CJK>
-0x896A # <CJK>
-0x896D # <CJK>
-0x896F # <CJK>
0x8972 # <CJK>
-0x8974 # <CJK>
-0x8977 # <CJK>
-0x897E # <CJK>
0x897F # <CJK>
0x8981 # <CJK>
-0x8983 # <CJK>
0x8986 # <CJK>
0x8987 # <CJK>
-0x8988 # <CJK>
-0x898A # <CJK>
0x898B # <CJK>
0x898F # <CJK>
-0x8993 # <CJK>
0x8996 # <CJK>
-0x8997 # <CJK>
-0x8998 # <CJK>
0x899A # <CJK>
-0x89A1 # <CJK>
-0x89A6 # <CJK>
0x89A7 # <CJK>
-0x89A9 # <CJK>
0x89AA # <CJK>
-0x89AC # <CJK>
-0x89AF # <CJK>
-0x89B2 # <CJK>
0x89B3 # <CJK>
-0x89BA # <CJK>
-0x89BD # <CJK>
-0x89BF # <CJK>
-0x89C0 # <CJK>
0x89D2 # <CJK>
-0x89DA # <CJK>
-0x89DC # <CJK>
-0x89DD # <CJK>
0x89E3 # <CJK>
0x89E6 # <CJK>
-0x89E7 # <CJK>
-0x89F4 # <CJK>
-0x89F8 # <CJK>
0x8A00 # <CJK>
0x8A02 # <CJK>
0x8A03 # <CJK>
0x8A08 # <CJK>
-0x8A0A # <CJK>
-0x8A0C # <CJK>
0x8A0E # <CJK>
-0x8A10 # <CJK>
0x8A13 # <CJK>
-0x8A16 # <CJK>
0x8A17 # <CJK>
0x8A18 # <CJK>
-0x8A1B # <CJK>
-0x8A1D # <CJK>
0x8A1F # <CJK>
-0x8A23 # <CJK>
-0x8A25 # <CJK>
0x8A2A # <CJK>
0x8A2D # <CJK>
0x8A31 # <CJK>
0x8A33 # <CJK>
0x8A34 # <CJK>
-0x8A36 # <CJK>
0x8A3A # <CJK>
-0x8A3B # <CJK>
0x8A3C # <CJK>
-0x8A41 # <CJK>
-0x8A46 # <CJK>
-0x8A48 # <CJK>
0x8A50 # <CJK>
-0x8A51 # <CJK>
-0x8A52 # <CJK>
0x8A54 # <CJK>
0x8A55 # <CJK>
-0x8A5B # <CJK>
0x8A5E # <CJK>
0x8A60 # <CJK>
-0x8A62 # <CJK>
0x8A63 # <CJK>
0x8A66 # <CJK>
0x8A69 # <CJK>
-0x8A6B # <CJK>
-0x8A6C # <CJK>
-0x8A6D # <CJK>
0x8A6E # <CJK>
0x8A70 # <CJK>
0x8A71 # <CJK>
0x8A72 # <CJK>
0x8A73 # <CJK>
-0x8A7C # <CJK>
-0x8A82 # <CJK>
-0x8A84 # <CJK>
-0x8A85 # <CJK>
0x8A87 # <CJK>
0x8A89 # <CJK>
0x8A8C # <CJK>
0x8A8D # <CJK>
-0x8A91 # <CJK>
0x8A93 # <CJK>
0x8A95 # <CJK>
0x8A98 # <CJK>
-0x8A9A # <CJK>
0x8A9E # <CJK>
0x8AA0 # <CJK>
-0x8AA1 # <CJK>
-0x8AA3 # <CJK>
0x8AA4 # <CJK>
-0x8AA5 # <CJK>
-0x8AA6 # <CJK>
-0x8AA8 # <CJK>
0x8AAC # <CJK>
0x8AAD # <CJK>
0x8AB0 # <CJK>
0x8AB2 # <CJK>
-0x8AB9 # <CJK>
-0x8ABC # <CJK>
0x8ABF # <CJK>
-0x8AC2 # <CJK>
-0x8AC4 # <CJK>
0x8AC7 # <CJK>
0x8ACB # <CJK>
-0x8ACC # <CJK>
-0x8ACD # <CJK>
-0x8ACF # <CJK>
-0x8AD2 # <CJK>
0x8AD6 # <CJK>
-0x8ADA # <CJK>
-0x8ADB # <CJK>
-0x8ADC # <CJK>
-0x8ADE # <CJK>
-0x8AE0 # <CJK>
-0x8AE1 # <CJK>
-0x8AE2 # <CJK>
-0x8AE4 # <CJK>
0x8AE6 # <CJK>
0x8AE7 # <CJK>
-0x8AEB # <CJK>
0x8AED # <CJK>
0x8AEE # <CJK>
-0x8AF1 # <CJK>
-0x8AF3 # <CJK>
-0x8AF7 # <CJK>
0x8AF8 # <CJK>
-0x8AFA # <CJK>
0x8AFE # <CJK>
0x8B00 # <CJK>
0x8B01 # <CJK>
-0x8B02 # <CJK>
0x8B04 # <CJK>
-0x8B07 # <CJK>
-0x8B0C # <CJK>
0x8B0E # <CJK>
-0x8B10 # <CJK>
-0x8B14 # <CJK>
-0x8B16 # <CJK>
-0x8B17 # <CJK>
0x8B19 # <CJK>
-0x8B1A # <CJK>
0x8B1B # <CJK>
0x8B1D # <CJK>
-0x8B20 # <CJK>
0x8B21 # <CJK>
-0x8B26 # <CJK>
-0x8B28 # <CJK>
-0x8B2B # <CJK>
-0x8B2C # <CJK>
-0x8B33 # <CJK>
0x8B39 # <CJK>
-0x8B3E # <CJK>
-0x8B41 # <CJK>
-0x8B49 # <CJK>
-0x8B4C # <CJK>
-0x8B4E # <CJK>
-0x8B4F # <CJK>
-0x8B56 # <CJK>
0x8B58 # <CJK>
-0x8B5A # <CJK>
-0x8B5B # <CJK>
0x8B5C # <CJK>
-0x8B5F # <CJK>
0x8B66 # <CJK>
-0x8B6B # <CJK>
-0x8B6C # <CJK>
-0x8B6F # <CJK>
0x8B70 # <CJK>
-0x8B71 # <CJK>
0x8B72 # <CJK>
-0x8B74 # <CJK>
0x8B77 # <CJK>
-0x8B7D # <CJK>
-0x8B80 # <CJK>
-0x8B83 # <CJK>
-0x8B8A # <CJK>
-0x8B8C # <CJK>
-0x8B8E # <CJK>
-0x8B90 # <CJK>
-0x8B92 # <CJK>
-0x8B93 # <CJK>
-0x8B96 # <CJK>
-0x8B99 # <CJK>
-0x8B9A # <CJK>
0x8C37 # <CJK>
-0x8C3A # <CJK>
-0x8C3F # <CJK>
-0x8C41 # <CJK>
0x8C46 # <CJK>
-0x8C48 # <CJK>
0x8C4A # <CJK>
-0x8C4C # <CJK>
-0x8C4E # <CJK>
-0x8C50 # <CJK>
-0x8C55 # <CJK>
0x8C5A # <CJK>
0x8C61 # <CJK>
-0x8C62 # <CJK>
0x8C6A # <CJK>
-0x8C6B # <CJK>
-0x8C6C # <CJK>
-0x8C78 # <CJK>
-0x8C79 # <CJK>
-0x8C7A # <CJK>
-0x8C7C # <CJK>
-0x8C82 # <CJK>
-0x8C85 # <CJK>
-0x8C89 # <CJK>
-0x8C8A # <CJK>
0x8C8C # <CJK>
-0x8C8D # <CJK>
-0x8C8E # <CJK>
-0x8C94 # <CJK>
-0x8C98 # <CJK>
0x8C9D # <CJK>
0x8C9E # <CJK>
0x8CA0 # <CJK>
0x8CAA # <CJK>
0x8CAB # <CJK>
0x8CAC # <CJK>
-0x8CAD # <CJK>
-0x8CAE # <CJK>
0x8CAF # <CJK>
-0x8CB0 # <CJK>
-0x8CB2 # <CJK>
-0x8CB3 # <CJK>
0x8CB4 # <CJK>
-0x8CB6 # <CJK>
0x8CB7 # <CJK>
0x8CB8 # <CJK>
0x8CBB # <CJK>
0x8CBC # <CJK>
-0x8CBD # <CJK>
0x8CBF # <CJK>
0x8CC0 # <CJK>
-0x8CC1 # <CJK>
0x8CC2 # <CJK>
0x8CC3 # <CJK>
0x8CC4 # <CJK>
0x8CC7 # <CJK>
-0x8CC8 # <CJK>
0x8CCA # <CJK>
-0x8CCD # <CJK>
-0x8CCE # <CJK>
-0x8CD1 # <CJK>
0x8CD3 # <CJK>
-0x8CDA # <CJK>
0x8CDB # <CJK>
0x8CDC # <CJK>
0x8CDE # <CJK>
0x8CE0 # <CJK>
0x8CE2 # <CJK>
-0x8CE3 # <CJK>
-0x8CE4 # <CJK>
0x8CE6 # <CJK>
0x8CEA # <CJK>
0x8CED # <CJK>
-0x8CFA # <CJK>
-0x8CFB # <CJK>
0x8CFC # <CJK>
-0x8CFD # <CJK>
-0x8D04 # <CJK>
-0x8D05 # <CJK>
-0x8D07 # <CJK>
0x8D08 # <CJK>
-0x8D0A # <CJK>
-0x8D0B # <CJK>
-0x8D0D # <CJK>
-0x8D0F # <CJK>
-0x8D10 # <CJK>
-0x8D13 # <CJK>
-0x8D14 # <CJK>
-0x8D16 # <CJK>
0x8D64 # <CJK>
0x8D66 # <CJK>
-0x8D67 # <CJK>
-0x8D6B # <CJK>
-0x8D6D # <CJK>
0x8D70 # <CJK>
-0x8D71 # <CJK>
-0x8D73 # <CJK>
0x8D74 # <CJK>
0x8D77 # <CJK>
-0x8D81 # <CJK>
0x8D85 # <CJK>
0x8D8A # <CJK>
-0x8D99 # <CJK>
0x8DA3 # <CJK>
-0x8DA8 # <CJK>
0x8DB3 # <CJK>
-0x8DBA # <CJK>
-0x8DBE # <CJK>
-0x8DC2 # <CJK>
-0x8DCB # <CJK>
-0x8DCC # <CJK>
-0x8DCF # <CJK>
-0x8DD6 # <CJK>
-0x8DDA # <CJK>
-0x8DDB # <CJK>
0x8DDD # <CJK>
-0x8DDF # <CJK>
0x8DE1 # <CJK>
-0x8DE3 # <CJK>
-0x8DE8 # <CJK>
-0x8DEA # <CJK>
-0x8DEB # <CJK>
0x8DEF # <CJK>
0x8DF3 # <CJK>
0x8DF5 # <CJK>
-0x8DFC # <CJK>
-0x8DFF # <CJK>
-0x8E08 # <CJK>
-0x8E09 # <CJK>
0x8E0A # <CJK>
0x8E0F # <CJK>
-0x8E10 # <CJK>
-0x8E1D # <CJK>
-0x8E1E # <CJK>
-0x8E1F # <CJK>
0x8E2A # <CJK>
-0x8E30 # <CJK>
-0x8E34 # <CJK>
-0x8E35 # <CJK>
-0x8E42 # <CJK>
-0x8E44 # <CJK>
-0x8E47 # <CJK>
-0x8E48 # <CJK>
-0x8E49 # <CJK>
-0x8E4A # <CJK>
-0x8E4C # <CJK>
-0x8E50 # <CJK>
-0x8E55 # <CJK>
-0x8E59 # <CJK>
-0x8E5F # <CJK>
-0x8E60 # <CJK>
-0x8E63 # <CJK>
-0x8E64 # <CJK>
-0x8E72 # <CJK>
0x8E74 # <CJK>
-0x8E76 # <CJK>
-0x8E7C # <CJK>
-0x8E81 # <CJK>
-0x8E84 # <CJK>
-0x8E85 # <CJK>
-0x8E87 # <CJK>
-0x8E8A # <CJK>
-0x8E8B # <CJK>
0x8E8D # <CJK>
-0x8E91 # <CJK>
-0x8E93 # <CJK>
-0x8E94 # <CJK>
-0x8E99 # <CJK>
-0x8EA1 # <CJK>
-0x8EAA # <CJK>
0x8EAB # <CJK>
-0x8EAC # <CJK>
-0x8EAF # <CJK>
-0x8EB0 # <CJK>
-0x8EB1 # <CJK>
-0x8EBE # <CJK>
-0x8EC5 # <CJK>
-0x8EC6 # <CJK>
-0x8EC8 # <CJK>
0x8ECA # <CJK>
-0x8ECB # <CJK>
0x8ECC # <CJK>
0x8ECD # <CJK>
0x8ED2 # <CJK>
-0x8EDB # <CJK>
0x8EDF # <CJK>
0x8EE2 # <CJK>
-0x8EE3 # <CJK>
-0x8EEB # <CJK>
0x8EF8 # <CJK>
-0x8EFB # <CJK>
-0x8EFC # <CJK>
0x8EFD # <CJK>
-0x8EFE # <CJK>
0x8F03 # <CJK>
-0x8F05 # <CJK>
0x8F09 # <CJK>
-0x8F0A # <CJK>
-0x8F0C # <CJK>
-0x8F12 # <CJK>
-0x8F13 # <CJK>
-0x8F14 # <CJK>
-0x8F15 # <CJK>
-0x8F19 # <CJK>
-0x8F1B # <CJK>
-0x8F1C # <CJK>
0x8F1D # <CJK>
-0x8F1F # <CJK>
-0x8F26 # <CJK>
0x8F29 # <CJK>
0x8F2A # <CJK>
-0x8F2F # <CJK>
-0x8F33 # <CJK>
0x8F38 # <CJK>
-0x8F39 # <CJK>
-0x8F3B # <CJK>
-0x8F3E # <CJK>
-0x8F3F # <CJK>
-0x8F42 # <CJK>
0x8F44 # <CJK>
-0x8F45 # <CJK>
-0x8F46 # <CJK>
-0x8F49 # <CJK>
-0x8F4C # <CJK>
-0x8F4D # <CJK>
-0x8F4E # <CJK>
-0x8F57 # <CJK>
-0x8F5C # <CJK>
-0x8F5F # <CJK>
-0x8F61 # <CJK>
-0x8F62 # <CJK>
-0x8F63 # <CJK>
-0x8F64 # <CJK>
0x8F9B # <CJK>
-0x8F9C # <CJK>
0x8F9E # <CJK>
-0x8F9F # <CJK>
0x8FA3 # <CJK>
-0x8FA7 # <CJK>
-0x8FA8 # <CJK>
-0x8FAD # <CJK>
-0x8FAE # <CJK>
-0x8FAF # <CJK>
-0x8FB0 # <CJK>
0x8FB1 # <CJK>
0x8FB2 # <CJK>
-0x8FB7 # <CJK>
0x8FBA # <CJK>
-0x8FBB # <CJK>
0x8FBC # <CJK>
-0x8FBF # <CJK>
-0x8FC2 # <CJK>
-0x8FC4 # <CJK>
0x8FC5 # <CJK>
0x8FCE # <CJK>
0x8FD1 # <CJK>
0x8FD4 # <CJK>
-0x8FDA # <CJK>
-0x8FE2 # <CJK>
-0x8FE5 # <CJK>
-0x8FE6 # <CJK>
-0x8FE9 # <CJK>
-0x8FEA # <CJK>
0x8FEB # <CJK>
0x8FED # <CJK>
-0x8FEF # <CJK>
0x8FF0 # <CJK>
-0x8FF4 # <CJK>
0x8FF7 # <CJK>
-0x8FF8 # <CJK>
-0x8FF9 # <CJK>
-0x8FFA # <CJK>
0x8FFD # <CJK>
0x9000 # <CJK>
0x9001 # <CJK>
0x9003 # <CJK>
-0x9005 # <CJK>
0x9006 # <CJK>
-0x900B # <CJK>
-0x900D # <CJK>
-0x900E # <CJK>
0x900F # <CJK>
0x9010 # <CJK>
-0x9011 # <CJK>
0x9013 # <CJK>
0x9014 # <CJK>
-0x9015 # <CJK>
-0x9016 # <CJK>
-0x9017 # <CJK>
-0x9019 # <CJK>
0x901A # <CJK>
0x901D # <CJK>
-0x901E # <CJK>
0x901F # <CJK>
0x9020 # <CJK>
-0x9021 # <CJK>
-0x9022 # <CJK>
0x9023 # <CJK>
-0x9027 # <CJK>
0x902E # <CJK>
0x9031 # <CJK>
0x9032 # <CJK>
-0x9035 # <CJK>
-0x9036 # <CJK>
0x9038 # <CJK>
-0x9039 # <CJK>
-0x903C # <CJK>
-0x903E # <CJK>
-0x9041 # <CJK>
0x9042 # <CJK>
0x9045 # <CJK>
0x9047 # <CJK>
-0x9049 # <CJK>
0x904A # <CJK>
0x904B # <CJK>
0x904D # <CJK>
0x904E # <CJK>
-0x904F # <CJK>
-0x9050 # <CJK>
-0x9051 # <CJK>
-0x9052 # <CJK>
0x9053 # <CJK>
0x9054 # <CJK>
0x9055 # <CJK>
-0x9056 # <CJK>
-0x9058 # <CJK>
-0x9059 # <CJK>
0x905C # <CJK>
-0x905E # <CJK>
0x9060 # <CJK>
0x9061 # <CJK>
0x9063 # <CJK>
-0x9065 # <CJK>
-0x9068 # <CJK>
0x9069 # <CJK>
0x906D # <CJK>
0x906E # <CJK>
-0x906F # <CJK>
-0x9072 # <CJK>
0x9075 # <CJK>
-0x9076 # <CJK>
0x9077 # <CJK>
0x9078 # <CJK>
0x907A # <CJK>
-0x907C # <CJK>
-0x907D # <CJK>
0x907F # <CJK>
-0x9080 # <CJK>
-0x9081 # <CJK>
-0x9082 # <CJK>
-0x9083 # <CJK>
0x9084 # <CJK>
-0x9087 # <CJK>
-0x9089 # <CJK>
-0x908A # <CJK>
-0x908F # <CJK>
-0x9091 # <CJK>
0x90A3 # <CJK>
0x90A6 # <CJK>
-0x90A8 # <CJK>
0x90AA # <CJK>
-0x90AF # <CJK>
-0x90B1 # <CJK>
-0x90B5 # <CJK>
0x90B8 # <CJK>
-0x90C1 # <CJK>
0x90CA # <CJK>
0x90CE # <CJK>
-0x90DB # <CJK>
0x90E1 # <CJK>
-0x90E2 # <CJK>
-0x90E4 # <CJK>
0x90E8 # <CJK>
0x90ED # <CJK>
0x90F5 # <CJK>
0x90F7 # <CJK>
0x90FD # <CJK>
-0x9102 # <CJK>
-0x9112 # <CJK>
-0x9119 # <CJK>
-0x912D # <CJK>
-0x9130 # <CJK>
-0x9132 # <CJK>
-0x9149 # <CJK>
-0x914A # <CJK>
-0x914B # <CJK>
0x914C # <CJK>
0x914D # <CJK>
0x914E # <CJK>
0x9152 # <CJK>
0x9154 # <CJK>
-0x9156 # <CJK>
-0x9158 # <CJK>
0x9162 # <CJK>
-0x9163 # <CJK>
-0x9165 # <CJK>
-0x9169 # <CJK>
0x916A # <CJK>
0x916C # <CJK>
-0x9172 # <CJK>
-0x9173 # <CJK>
0x9175 # <CJK>
0x9177 # <CJK>
0x9178 # <CJK>
-0x9182 # <CJK>
-0x9187 # <CJK>
-0x9189 # <CJK>
-0x918B # <CJK>
-0x918D # <CJK>
-0x9190 # <CJK>
0x9192 # <CJK>
-0x9197 # <CJK>
0x919C # <CJK>
-0x91A2 # <CJK>
-0x91A4 # <CJK>
-0x91AA # <CJK>
-0x91AB # <CJK>
-0x91AF # <CJK>
-0x91B4 # <CJK>
-0x91B5 # <CJK>
0x91B8 # <CJK>
-0x91BA # <CJK>
-0x91C0 # <CJK>
-0x91C1 # <CJK>
-0x91C6 # <CJK>
0x91C7 # <CJK>
0x91C8 # <CJK>
-0x91C9 # <CJK>
-0x91CB # <CJK>
0x91CC # <CJK>
0x91CD # <CJK>
0x91CE # <CJK>
0x91CF # <CJK>
-0x91D0 # <CJK>
0x91D1 # <CJK>
-0x91D6 # <CJK>
-0x91D8 # <CJK>
-0x91DB # <CJK>
0x91DC # <CJK>
0x91DD # <CJK>
-0x91DF # <CJK>
-0x91E1 # <CJK>
0x91E3 # <CJK>
-0x91E6 # <CJK>
-0x91E7 # <CJK>
-0x91F5 # <CJK>
-0x91F6 # <CJK>
-0x91FC # <CJK>
-0x91FF # <CJK>
0x920D # <CJK>
-0x920E # <CJK>
-0x9211 # <CJK>
-0x9214 # <CJK>
-0x9215 # <CJK>
-0x921E # <CJK>
-0x9229 # <CJK>
-0x922C # <CJK>
0x9234 # <CJK>
-0x9237 # <CJK>
-0x923F # <CJK>
0x9244 # <CJK>
-0x9245 # <CJK>
-0x9248 # <CJK>
-0x9249 # <CJK>
-0x924B # <CJK>
-0x9250 # <CJK>
-0x9257 # <CJK>
-0x925A # <CJK>
0x925B # <CJK>
-0x925E # <CJK>
0x9262 # <CJK>
-0x9264 # <CJK>
-0x9266 # <CJK>
0x9271 # <CJK>
-0x927E # <CJK>
0x9280 # <CJK>
0x9283 # <CJK>
0x9285 # <CJK>
-0x9291 # <CJK>
-0x9293 # <CJK>
-0x9295 # <CJK>
-0x9296 # <CJK>
0x9298 # <CJK>
-0x929A # <CJK>
-0x929B # <CJK>
-0x929C # <CJK>
0x92AD # <CJK>
-0x92B7 # <CJK>
-0x92B9 # <CJK>
-0x92CF # <CJK>
-0x92D2 # <CJK>
-0x92E4 # <CJK>
-0x92E9 # <CJK>
-0x92EA # <CJK>
0x92ED # <CJK>
-0x92F2 # <CJK>
0x92F3 # <CJK>
-0x92F8 # <CJK>
-0x92FA # <CJK>
0x92FC # <CJK>
-0x9306 # <CJK>
-0x930F # <CJK>
-0x9310 # <CJK>
-0x9318 # <CJK>
-0x9319 # <CJK>
-0x931A # <CJK>
0x9320 # <CJK>
-0x9322 # <CJK>
-0x9323 # <CJK>
0x9326 # <CJK>
-0x9328 # <CJK>
-0x932B # <CJK>
0x932C # <CJK>
0x932E # <CJK>
0x932F # <CJK>
0x9332 # <CJK>
-0x9335 # <CJK>
-0x933A # <CJK>
-0x933B # <CJK>
-0x9344 # <CJK>
0x934B # <CJK>
-0x934D # <CJK>
-0x9354 # <CJK>
-0x9356 # <CJK>
0x935B # <CJK>
-0x935C # <CJK>
-0x9360 # <CJK>
-0x936C # <CJK>
-0x936E # <CJK>
0x9375 # <CJK>
-0x937C # <CJK>
-0x937E # <CJK>
0x938C # <CJK>
-0x9394 # <CJK>
0x9396 # <CJK>
-0x9397 # <CJK>
-0x939A # <CJK>
-0x93A7 # <CJK>
-0x93AC # <CJK>
-0x93AD # <CJK>
0x93AE # <CJK>
-0x93B0 # <CJK>
-0x93B9 # <CJK>
-0x93C3 # <CJK>
-0x93C8 # <CJK>
-0x93D0 # <CJK>
-0x93D1 # <CJK>
-0x93D6 # <CJK>
-0x93D7 # <CJK>
-0x93D8 # <CJK>
-0x93DD # <CJK>
0x93E1 # <CJK>
-0x93E4 # <CJK>
-0x93E5 # <CJK>
-0x93E8 # <CJK>
-0x9403 # <CJK>
-0x9407 # <CJK>
-0x9410 # <CJK>
-0x9413 # <CJK>
-0x9414 # <CJK>
0x9418 # <CJK>
-0x9419 # <CJK>
-0x941A # <CJK>
-0x9421 # <CJK>
-0x942B # <CJK>
-0x9435 # <CJK>
-0x9436 # <CJK>
-0x9438 # <CJK>
-0x943A # <CJK>
-0x9441 # <CJK>
-0x9444 # <CJK>
0x9451 # <CJK>
-0x9452 # <CJK>
-0x9453 # <CJK>
-0x945A # <CJK>
-0x945B # <CJK>
-0x945E # <CJK>
-0x9460 # <CJK>
-0x9462 # <CJK>
-0x946A # <CJK>
-0x9470 # <CJK>
-0x9475 # <CJK>
-0x9477 # <CJK>
-0x947C # <CJK>
-0x947D # <CJK>
-0x947E # <CJK>
-0x947F # <CJK>
-0x9481 # <CJK>
0x9577 # <CJK>
0x9580 # <CJK>
-0x9582 # <CJK>
-0x9583 # <CJK>
-0x9587 # <CJK>
0x9589 # <CJK>
-0x958A # <CJK>
0x958B # <CJK>
-0x958F # <CJK>
0x9591 # <CJK>
0x9593 # <CJK>
-0x9594 # <CJK>
-0x9596 # <CJK>
-0x9598 # <CJK>
-0x9599 # <CJK>
-0x95A0 # <CJK>
0x95A2 # <CJK>
0x95A3 # <CJK>
-0x95A4 # <CJK>
0x95A5 # <CJK>
-0x95A7 # <CJK>
-0x95A8 # <CJK>
-0x95AD # <CJK>
0x95B2 # <CJK>
-0x95B9 # <CJK>
-0x95BB # <CJK>
-0x95BC # <CJK>
-0x95BE # <CJK>
-0x95C3 # <CJK>
0x95C7 # <CJK>
-0x95CA # <CJK>
-0x95CC # <CJK>
-0x95CD # <CJK>
-0x95D4 # <CJK>
-0x95D5 # <CJK>
-0x95D6 # <CJK>
0x95D8 # <CJK>
-0x95DC # <CJK>
-0x95E1 # <CJK>
-0x95E2 # <CJK>
-0x95E5 # <CJK>
0x961C # <CJK>
-0x9621 # <CJK>
-0x9628 # <CJK>
0x962A # <CJK>
-0x962E # <CJK>
-0x962F # <CJK>
0x9632 # <CJK>
0x963B # <CJK>
-0x963F # <CJK>
-0x9640 # <CJK>
-0x9642 # <CJK>
0x9644 # <CJK>
-0x964B # <CJK>
-0x964C # <CJK>
0x964D # <CJK>
-0x964F # <CJK>
0x9650 # <CJK>
0x965B # <CJK>
-0x965C # <CJK>
-0x965D # <CJK>
-0x965E # <CJK>
-0x965F # <CJK>
0x9662 # <CJK>
0x9663 # <CJK>
0x9664 # <CJK>
0x9665 # <CJK>
-0x9666 # <CJK>
0x966A # <CJK>
-0x966C # <CJK>
0x9670 # <CJK>
-0x9672 # <CJK>
0x9673 # <CJK>
0x9675 # <CJK>
0x9676 # <CJK>
-0x9677 # <CJK>
0x9678 # <CJK>
0x967A # <CJK>
0x967D # <CJK>
0x9685 # <CJK>
0x9686 # <CJK>
-0x9688 # <CJK>
0x968A # <CJK>
-0x968B # <CJK>
-0x968D # <CJK>
0x968E # <CJK>
0x968F # <CJK>
0x9694 # <CJK>
-0x9695 # <CJK>
-0x9697 # <CJK>
-0x9698 # <CJK>
0x9699 # <CJK>
0x969B # <CJK>
0x969C # <CJK>
0x96A0 # <CJK>
0x96A3 # <CJK>
-0x96A7 # <CJK>
-0x96A8 # <CJK>
-0x96AA # <CJK>
-0x96B0 # <CJK>
-0x96B1 # <CJK>
-0x96B2 # <CJK>
-0x96B4 # <CJK>
-0x96B6 # <CJK>
0x96B7 # <CJK>
-0x96B8 # <CJK>
-0x96B9 # <CJK>
0x96BB # <CJK>
-0x96BC # <CJK>
-0x96C0 # <CJK>
-0x96C1 # <CJK>
0x96C4 # <CJK>
0x96C5 # <CJK>
0x96C6 # <CJK>
0x96C7 # <CJK>
-0x96C9 # <CJK>
-0x96CB # <CJK>
0x96CC # <CJK>
-0x96CD # <CJK>
-0x96CE # <CJK>
0x96D1 # <CJK>
-0x96D5 # <CJK>
-0x96D6 # <CJK>
-0x96D9 # <CJK>
-0x96DB # <CJK>
-0x96DC # <CJK>
0x96E2 # <CJK>
0x96E3 # <CJK>
0x96E8 # <CJK>
0x96EA # <CJK>
-0x96EB # <CJK>
0x96F0 # <CJK>
0x96F2 # <CJK>
0x96F6 # <CJK>
0x96F7 # <CJK>
-0x96F9 # <CJK>
0x96FB # <CJK>
0x9700 # <CJK>
-0x9704 # <CJK>
-0x9706 # <CJK>
0x9707 # <CJK>
-0x9708 # <CJK>
0x970A # <CJK>
-0x970D # <CJK>
-0x970E # <CJK>
-0x970F # <CJK>
-0x9711 # <CJK>
-0x9713 # <CJK>
-0x9716 # <CJK>
-0x9719 # <CJK>
0x971C # <CJK>
-0x971E # <CJK>
-0x9724 # <CJK>
0x9727 # <CJK>
-0x972A # <CJK>
-0x9730 # <CJK>
0x9732 # <CJK>
-0x9738 # <CJK>
-0x9739 # <CJK>
-0x973D # <CJK>
-0x973E # <CJK>
-0x9742 # <CJK>
-0x9744 # <CJK>
-0x9746 # <CJK>
-0x9748 # <CJK>
-0x9749 # <CJK>
0x9752 # <CJK>
-0x9756 # <CJK>
0x9759 # <CJK>
-0x975C # <CJK>
0x975E # <CJK>
-0x9760 # <CJK>
-0x9761 # <CJK>
0x9762 # <CJK>
-0x9764 # <CJK>
-0x9766 # <CJK>
-0x9768 # <CJK>
0x9769 # <CJK>
-0x976B # <CJK>
-0x976D # <CJK>
-0x9771 # <CJK>
0x9774 # <CJK>
-0x9779 # <CJK>
-0x977A # <CJK>
-0x977C # <CJK>
-0x9781 # <CJK>
-0x9784 # <CJK>
-0x9785 # <CJK>
-0x9786 # <CJK>
-0x978B # <CJK>
-0x978D # <CJK>
-0x978F # <CJK>
-0x9790 # <CJK>
-0x9798 # <CJK>
-0x979C # <CJK>
-0x97A0 # <CJK>
-0x97A3 # <CJK>
-0x97A6 # <CJK>
-0x97A8 # <CJK>
-0x97AB # <CJK>
-0x97AD # <CJK>
-0x97B3 # <CJK>
-0x97B4 # <CJK>
-0x97C3 # <CJK>
-0x97C6 # <CJK>
-0x97C8 # <CJK>
-0x97CB # <CJK>
0x97D3 # <CJK>
-0x97DC # <CJK>
-0x97ED # <CJK>
-0x97EE # <CJK>
-0x97F2 # <CJK>
0x97F3 # <CJK>
-0x97F5 # <CJK>
-0x97F6 # <CJK>
0x97FB # <CJK>
0x97FF # <CJK>
-0x9801 # <CJK>
0x9802 # <CJK>
0x9803 # <CJK>
0x9805 # <CJK>
0x9806 # <CJK>
0x9808 # <CJK>
-0x980C # <CJK>
-0x980F # <CJK>
0x9810 # <CJK>
0x9811 # <CJK>
0x9812 # <CJK>
0x9813 # <CJK>
-0x9817 # <CJK>
0x9818 # <CJK>
-0x981A # <CJK>
-0x9821 # <CJK>
-0x9824 # <CJK>
-0x982C # <CJK>
0x982D # <CJK>
-0x9834 # <CJK>
-0x9837 # <CJK>
-0x9838 # <CJK>
+#0x9830 # <CJK> # not in DroidSansJapanese
0x983B # <CJK>
0x983C # <CJK>
-0x983D # <CJK>
-0x9846 # <CJK>
-0x984B # <CJK>
0x984C # <CJK>
0x984D # <CJK>
0x984E # <CJK>
-0x984F # <CJK>
0x9854 # <CJK>
0x9855 # <CJK>
0x9858 # <CJK>
-0x985B # <CJK>
0x985E # <CJK>
0x9867 # <CJK>
-0x986B # <CJK>
-0x986F # <CJK>
-0x9870 # <CJK>
-0x9871 # <CJK>
-0x9873 # <CJK>
-0x9874 # <CJK>
0x98A8 # <CJK>
-0x98AA # <CJK>
-0x98AF # <CJK>
-0x98B1 # <CJK>
-0x98B6 # <CJK>
-0x98C3 # <CJK>
-0x98C4 # <CJK>
-0x98C6 # <CJK>
0x98DB # <CJK>
-0x98DC # <CJK>
0x98DF # <CJK>
0x98E2 # <CJK>
-0x98E9 # <CJK>
-0x98EB # <CJK>
-0x98ED # <CJK>
-0x98EE # <CJK>
0x98EF # <CJK>
0x98F2 # <CJK>
-0x98F4 # <CJK>
0x98FC # <CJK>
0x98FD # <CJK>
0x98FE # <CJK>
-0x9903 # <CJK>
0x9905 # <CJK>
-0x9909 # <CJK>
0x990A # <CJK>
0x990C # <CJK>
-0x9910 # <CJK>
-0x9912 # <CJK>
0x9913 # <CJK>
-0x9914 # <CJK>
-0x9918 # <CJK>
-0x991D # <CJK>
-0x991E # <CJK>
-0x9920 # <CJK>
-0x9921 # <CJK>
-0x9924 # <CJK>
0x9928 # <CJK>
-0x992C # <CJK>
-0x992E # <CJK>
-0x993D # <CJK>
-0x993E # <CJK>
-0x9942 # <CJK>
-0x9945 # <CJK>
-0x9949 # <CJK>
-0x994B # <CJK>
-0x994C # <CJK>
-0x9950 # <CJK>
-0x9951 # <CJK>
-0x9952 # <CJK>
-0x9955 # <CJK>
-0x9957 # <CJK>
0x9996 # <CJK>
-0x9997 # <CJK>
-0x9998 # <CJK>
0x9999 # <CJK>
-0x99A5 # <CJK>
-0x99A8 # <CJK>
0x99AC # <CJK>
-0x99AD # <CJK>
-0x99AE # <CJK>
-0x99B3 # <CJK>
-0x99B4 # <CJK>
-0x99BC # <CJK>
-0x99C1 # <CJK>
0x99C4 # <CJK>
0x99C5 # <CJK>
0x99C6 # <CJK>
-0x99C8 # <CJK>
0x99D0 # <CJK>
-0x99D1 # <CJK>
0x99D2 # <CJK>
-0x99D5 # <CJK>
-0x99D8 # <CJK>
-0x99DB # <CJK>
-0x99DD # <CJK>
-0x99DF # <CJK>
-0x99E2 # <CJK>
-0x99ED # <CJK>
-0x99EE # <CJK>
-0x99F1 # <CJK>
-0x99F2 # <CJK>
-0x99F8 # <CJK>
-0x99FB # <CJK>
-0x99FF # <CJK>
-0x9A01 # <CJK>
-0x9A05 # <CJK>
0x9A0E # <CJK>
-0x9A0F # <CJK>
0x9A12 # <CJK>
0x9A13 # <CJK>
-0x9A19 # <CJK>
-0x9A28 # <CJK>
-0x9A2B # <CJK>
0x9A30 # <CJK>
-0x9A37 # <CJK>
-0x9A3E # <CJK>
-0x9A40 # <CJK>
-0x9A42 # <CJK>
-0x9A43 # <CJK>
-0x9A45 # <CJK>
-0x9A4D # <CJK>
-0x9A55 # <CJK>
-0x9A57 # <CJK>
0x9A5A # <CJK>
-0x9A5B # <CJK>
-0x9A5F # <CJK>
-0x9A62 # <CJK>
-0x9A64 # <CJK>
-0x9A65 # <CJK>
-0x9A69 # <CJK>
-0x9A6A # <CJK>
-0x9A6B # <CJK>
0x9AA8 # <CJK>
-0x9AAD # <CJK>
-0x9AB0 # <CJK>
0x9AB8 # <CJK>
-0x9ABC # <CJK>
-0x9AC0 # <CJK>
0x9AC4 # <CJK>
-0x9ACF # <CJK>
-0x9AD1 # <CJK>
-0x9AD3 # <CJK>
-0x9AD4 # <CJK>
0x9AD8 # <CJK>
-0x9ADE # <CJK>
-0x9ADF # <CJK>
-0x9AE2 # <CJK>
-0x9AE3 # <CJK>
-0x9AE6 # <CJK>
0x9AEA # <CJK>
-0x9AEB # <CJK>
-0x9AED # <CJK>
-0x9AEE # <CJK>
-0x9AEF # <CJK>
-0x9AF1 # <CJK>
-0x9AF4 # <CJK>
-0x9AF7 # <CJK>
-0x9AFB # <CJK>
-0x9B06 # <CJK>
-0x9B18 # <CJK>
-0x9B1A # <CJK>
-0x9B1F # <CJK>
-0x9B22 # <CJK>
-0x9B23 # <CJK>
-0x9B25 # <CJK>
-0x9B27 # <CJK>
-0x9B28 # <CJK>
-0x9B29 # <CJK>
-0x9B2A # <CJK>
-0x9B2E # <CJK>
-0x9B2F # <CJK>
0x9B31 # <CJK>
-0x9B32 # <CJK>
-0x9B3B # <CJK>
0x9B3C # <CJK>
-0x9B41 # <CJK>
0x9B42 # <CJK>
-0x9B43 # <CJK>
-0x9B44 # <CJK>
0x9B45 # <CJK>
-0x9B4D # <CJK>
-0x9B4E # <CJK>
-0x9B4F # <CJK>
-0x9B51 # <CJK>
0x9B54 # <CJK>
-0x9B58 # <CJK>
0x9B5A # <CJK>
-0x9B6F # <CJK>
-0x9B74 # <CJK>
-0x9B83 # <CJK>
-0x9B8E # <CJK>
-0x9B91 # <CJK>
-0x9B92 # <CJK>
-0x9B93 # <CJK>
-0x9B96 # <CJK>
-0x9B97 # <CJK>
-0x9B9F # <CJK>
-0x9BA0 # <CJK>
-0x9BA8 # <CJK>
-0x9BAA # <CJK>
-0x9BAB # <CJK>
-0x9BAD # <CJK>
0x9BAE # <CJK>
-0x9BB4 # <CJK>
-0x9BB9 # <CJK>
-0x9BC0 # <CJK>
-0x9BC6 # <CJK>
-0x9BC9 # <CJK>
-0x9BCA # <CJK>
-0x9BCF # <CJK>
-0x9BD1 # <CJK>
-0x9BD2 # <CJK>
-0x9BD4 # <CJK>
-0x9BD6 # <CJK>
-0x9BDB # <CJK>
-0x9BE1 # <CJK>
-0x9BE2 # <CJK>
-0x9BE3 # <CJK>
-0x9BE4 # <CJK>
0x9BE8 # <CJK>
-0x9BF0 # <CJK>
-0x9BF1 # <CJK>
-0x9BF2 # <CJK>
-0x9BF5 # <CJK>
-0x9C04 # <CJK>
-0x9C06 # <CJK>
-0x9C08 # <CJK>
-0x9C09 # <CJK>
-0x9C0A # <CJK>
-0x9C0C # <CJK>
-0x9C0D # <CJK>
-0x9C10 # <CJK>
-0x9C12 # <CJK>
-0x9C13 # <CJK>
-0x9C14 # <CJK>
-0x9C15 # <CJK>
-0x9C1B # <CJK>
-0x9C21 # <CJK>
-0x9C24 # <CJK>
-0x9C25 # <CJK>
-0x9C2D # <CJK>
-0x9C2E # <CJK>
-0x9C2F # <CJK>
-0x9C30 # <CJK>
-0x9C32 # <CJK>
-0x9C39 # <CJK>
-0x9C3A # <CJK>
-0x9C3B # <CJK>
-0x9C3E # <CJK>
-0x9C46 # <CJK>
-0x9C47 # <CJK>
-0x9C48 # <CJK>
-0x9C52 # <CJK>
-0x9C57 # <CJK>
-0x9C5A # <CJK>
-0x9C60 # <CJK>
-0x9C67 # <CJK>
-0x9C76 # <CJK>
-0x9C78 # <CJK>
0x9CE5 # <CJK>
-0x9CE7 # <CJK>
-0x9CE9 # <CJK>
-0x9CEB # <CJK>
-0x9CEC # <CJK>
-0x9CF0 # <CJK>
-0x9CF3 # <CJK>
0x9CF4 # <CJK>
-0x9CF6 # <CJK>
-0x9D03 # <CJK>
-0x9D06 # <CJK>
-0x9D07 # <CJK>
-0x9D08 # <CJK>
-0x9D09 # <CJK>
-0x9D0E # <CJK>
-0x9D12 # <CJK>
-0x9D15 # <CJK>
-0x9D1B # <CJK>
-0x9D1F # <CJK>
-0x9D23 # <CJK>
-0x9D26 # <CJK>
-0x9D28 # <CJK>
-0x9D2A # <CJK>
-0x9D2B # <CJK>
-0x9D2C # <CJK>
-0x9D3B # <CJK>
-0x9D3E # <CJK>
-0x9D3F # <CJK>
-0x9D41 # <CJK>
-0x9D44 # <CJK>
-0x9D46 # <CJK>
-0x9D48 # <CJK>
-0x9D50 # <CJK>
-0x9D51 # <CJK>
-0x9D59 # <CJK>
-0x9D5C # <CJK>
-0x9D5D # <CJK>
-0x9D5E # <CJK>
-0x9D60 # <CJK>
-0x9D61 # <CJK>
-0x9D64 # <CJK>
-0x9D6C # <CJK>
-0x9D6F # <CJK>
-0x9D72 # <CJK>
-0x9D7A # <CJK>
-0x9D87 # <CJK>
-0x9D89 # <CJK>
0x9D8F # <CJK>
-0x9D9A # <CJK>
-0x9DA4 # <CJK>
-0x9DA9 # <CJK>
-0x9DAB # <CJK>
-0x9DAF # <CJK>
-0x9DB2 # <CJK>
0x9DB4 # <CJK>
-0x9DB8 # <CJK>
-0x9DBA # <CJK>
-0x9DBB # <CJK>
-0x9DC1 # <CJK>
-0x9DC2 # <CJK>
-0x9DC4 # <CJK>
-0x9DC6 # <CJK>
-0x9DCF # <CJK>
-0x9DD3 # <CJK>
-0x9DD9 # <CJK>
-0x9DE6 # <CJK>
-0x9DED # <CJK>
-0x9DEF # <CJK>
-0x9DF2 # <CJK>
-0x9DF8 # <CJK>
-0x9DF9 # <CJK>
-0x9DFA # <CJK>
-0x9DFD # <CJK>
-0x9E1A # <CJK>
-0x9E1B # <CJK>
-0x9E1E # <CJK>
-0x9E75 # <CJK>
-0x9E78 # <CJK>
-0x9E79 # <CJK>
-0x9E7D # <CJK>
0x9E7F # <CJK>
-0x9E81 # <CJK>
-0x9E88 # <CJK>
-0x9E8B # <CJK>
-0x9E8C # <CJK>
-0x9E91 # <CJK>
-0x9E92 # <CJK>
0x9E93 # <CJK>
-0x9E95 # <CJK>
0x9E97 # <CJK>
-0x9E9D # <CJK>
-0x9E9F # <CJK>
-0x9EA5 # <CJK>
0x9EA6 # <CJK>
-0x9EA9 # <CJK>
-0x9EAA # <CJK>
-0x9EAD # <CJK>
-0x9EB8 # <CJK>
-0x9EB9 # <CJK>
0x9EBA # <CJK>
0x9EBB # <CJK>
-0x9EBC # <CJK>
-0x9EBE # <CJK>
-0x9EBF # <CJK>
0x9EC4 # <CJK>
-0x9ECC # <CJK>
-0x9ECD # <CJK>
-0x9ECE # <CJK>
-0x9ECF # <CJK>
-0x9ED0 # <CJK>
0x9ED2 # <CJK>
-0x9ED4 # <CJK>
-0x9ED8 # <CJK>
0x9ED9 # <CJK>
-0x9EDB # <CJK>
-0x9EDC # <CJK>
-0x9EDD # <CJK>
-0x9EDE # <CJK>
-0x9EE0 # <CJK>
-0x9EE5 # <CJK>
-0x9EE8 # <CJK>
-0x9EEF # <CJK>
-0x9EF4 # <CJK>
-0x9EF6 # <CJK>
-0x9EF7 # <CJK>
-0x9EF9 # <CJK>
-0x9EFB # <CJK>
-0x9EFC # <CJK>
-0x9EFD # <CJK>
-0x9F07 # <CJK>
-0x9F08 # <CJK>
-0x9F0E # <CJK>
0x9F13 # <CJK>
-0x9F15 # <CJK>
-0x9F20 # <CJK>
-0x9F21 # <CJK>
-0x9F2C # <CJK>
0x9F3B # <CJK>
-0x9F3E # <CJK>
-0x9F4A # <CJK>
-0x9F4B # <CJK>
-0x9F4E # <CJK>
-0x9F4F # <CJK>
-0x9F52 # <CJK>
-0x9F54 # <CJK>
-0x9F5F # <CJK>
-0x9F60 # <CJK>
-0x9F61 # <CJK>
0x9F62 # <CJK>
-0x9F63 # <CJK>
-0x9F66 # <CJK>
-0x9F67 # <CJK>
-0x9F6A # <CJK>
-0x9F6C # <CJK>
-0x9F72 # <CJK>
-0x9F76 # <CJK>
-0x9F77 # <CJK>
-0x9F8D # <CJK>
-0x9F95 # <CJK>
-0x9F9C # <CJK>
-0x9F9D # <CJK>
-0x9FA0 # <CJK>
-#0xFFE5 # FULLWIDTH YEN SIGN
+#0x20B9F # <CJK>
0x3161 # HANGUL LETTER EU
0x3162 # HANGUL LETTER YI
0x3163 # HANGUL LETTER I
-0x3164 # HANGUL FILLER
0x3165 # HANGUL LETTER SSANGNIEUN
0x3166 # HANGUL LETTER NIEUN-TIKEUT
0x3167 # HANGUL LETTER NIEUN-SIOS
--- /dev/null
+#
+# fontconfig/fc-lang/quz.orth
+#
+# Copyright © 2009 Roozbeh Pournader
+#
+# 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 author(s) make(s) no
+# representations about the suitability of this software for any purpose. It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIM(S) 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.
+#
+# Cusco Quechua (quz)
+#
+# Sources:
+# * http://en.wikipedia.org/wiki/Quechua_alphabet
+# * http://www.omniglot.com/writing/quechua.htm
+#
+# Some basic Latin letters are not used, based on dialect
+#
+0041-005A
+0061-007A
+00D1
+00F1
+02C8
# fontconfig/fc-lang/zh_hk.orth
#
# Copyright © 2002 Keith Packard
+# Copyright © 2014 Abel Cheung
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
#
# Chinese Hong Kong Supplementary Character Set (ZH-HK)
#
-# Taken from the HKSCS-2001, including only the non-PUA BMP glyphs
-# as encoded in ISO/IEC 10646-1:2000
+# This list is a concatenation of:
+# (1) Most frequently used HKSCS characters accounting for ~99.75% usage in:
+# i. Around 11000 crawled UTF-8 Hong Kong web pages in
+# http://html5.org/temp/hk-data.tar.gz
+# ii. Database dump of main content in Cantonese Wikipedia dated 20131228:
+# http://dumps.wikimedia.org/zh_yuewiki/
+# (2) Word recommendation list from a local linguist:
+# http://founder.acgvlyric.org/iu/doku.php/%E9%80%A0%E5%AD%97:%E5%B8%B8%E7%94%A8%E9%A6%99%E6%B8%AF%E5%A4%96%E5%AD%97%E8%A1%A8
+# Level 1-5 characters are taken, excluding non-HKSCS chars.
+#
+3007
+344C
+3464
+3473
+347A
+347D
+347E
+3493
+3496
+34A5
+34BC
+34C1
+34C8
+34DF
+34E4
+34FB
+3506
+353E
+3551
+3561
+356D
+3570
+3572
+3577
+3578
+3584
+3597
+35A1
+35A5
+35AD
+35BF
+35C1
+35C5
+35C7
+35CA
+35CE
+35D2
+35D6
+35DB
+35F1
+35F2
+35F3
+35FB
+35FE
+3609
+361A
+3623
+362D
+3635
+3639
+3647
+3648
+3649
+364E
+365F
+367A
+3681
+36A5
+36AA
+36AC
+36B0
+36B1
+36B5
+36B9
+36BC
+36C1
+36C3
+36C4
+36C5
+36D3
+36D4
+36D6
+36DD
+36E5
+36E6
+36F5
+3703
+3708
+370A
+370D
+371C
+3723
+3725
+3730
+3732
+3733
+373A
+3740
+3743
+3762
+376F
+3797
+37A0
+37B9
+37BE
+37F2
+37F8
+37FB
+380F
+3819
+3820
+382D
+3836
+3838
+3863
+38A0
+38C3
+38CC
+38D1
+38FA
+3908
+3914
+3927
+3932
+393F
+394D
+3963
+3980
+3989
+398A
+3992
+399B
+39A1
+39A4
+39B8
+39DC
+39E2
+39E5
+39EC
+39F8
+39FB
+39FE
+3A01
+3A03
+3A06
+3A17
+3A18
+3A29
+3A2A
+3A34
+3A4B
+3A52
+3A57
+3A5C
+3A5E
+3A66
+3A67
+3A97
+3AAB
+3ABD
+3ADE
+3AF0
+3AF2
+3AFB
+3B0E
+3B19
+3B22
+3B2B
+3B39
+3B42
+3B58
+3B60
+3B71
+3B72
+3B7B
+3B7C
+3B80
+3B96
+3B99
+3BA1
+3BBE
+3BC2
+3BC4
+3BD7
+3BDD
+3BEC
+3BF2
+3BF3
+3C0D
+3C11
+3C15
+3C54
+3CCB
+3CCD
+3CD1
+3CD6
+3CDC
+3CEB
+3D13
+3D1D
+3D32
+3D46
+3D4C
+3D4E
+3D51
+3D5F
+3D62
+3D69
+3D6A
+3D6F
+3D75
+3D7D
+3D85
+3D8F
+3D91
+3DA5
+3DAD
+3DB4
+3DBF
+3DC6
+3DC7
+3DCD
+3DD3
+3DDB
+3DEB
+3DF3
+3DF7
+3DFC
+3E40
+3E43
+3E48
+3E55
+3E74
+3EA8
+3EA9
+3EAA
+3EAD
+3EB1
+3EB8
+3EBF
+3EC2
+3ECA
+3ECC
+3ED1
+3ED6
+3ED7
+3EDE
+3EE1
+3EE7
+3EEB
+3EF0
+3EFA
+3EFF
+3F04
+3F0E
+3F58
+3F59
+3F63
+3F93
+3FC0
+3FD7
+3FDC
+3FE5
+3FED
+3FF9
+3FFA
+4004
+4039
+4045
+4053
+4057
+4062
+4065
+406A
+406F
+40BB
+40BF
+40C8
+40D8
+40DF
+40FA
+4103
+4104
+4109
+410E
+4132
+4167
+416C
+416E
+417F
+4190
+41B2
+41CF
+41DB
+41EF
+41F9
+4211
+4240
+4260
+426A
+427A
+4294
+42A2
+42B5
+42B9
+42BC
+42F4
+42FB
+42FC
+432B
+436E
+4397
+43BA
+43C1
+43D9
+43DF
+43ED
+43F2
+4401
+4402
+4413
+447A
+448F
+449F
+44A0
+44B0
+44B7
+44DD
+44DF
+44E4
+44EA
+44F4
+4503
+4504
+4509
+4516
+4527
+452E
+4533
+453B
+453F
+4543
+4551
+4552
+4555
+4562
+456A
+4577
+4585
+45E9
+4603
+4606
+460F
+4615
+4617
+465B
+467A
+46CF
+46D0
+46F5
+4718
+477C
+47D5
+47ED
+47F4
+4800
+480B
+4871
+489B
+48AD
+48D0
+48DD
+48ED
+48FA
+4906
+491E
+492A
+492D
+4935
+493C
+493E
+4945
+4951
+4953
+4965
+496A
+4972
+4989
+49A7
+49DF
+49E5
+4A0F
+4A1D
+4A24
+4A35
+4A96
+4AB4
+4AB8
+4AD1
+4AE4
+4AFF
+4B19
+4B2C
+4B37
+4B6F
+4B70
+4B72
+4B7B
+4B7E
+4B8E
+4B90
+4B93
+4B96
+4B97
+4B9D
+4BBD
+4BBE
+4BC0
+4C04
+4C07
+4C0E
+4C3B
+4C3E
+4C5B
+4C6D
+4C77
+4C7B
+4C7D
+4C81
+4CAE
+4CB0
+4CCD
+4CE1
+4CED
+4D09
+4D10
+4D34
+4D77
+4D91
+4D9C
4E04
-4E1A
-4E1C
4E21
-4E24
-4E28
4E2A
-4E2C
-4E2F
-4E36
-4E37
-4E3D
-4E3F
-4E49
4E5A
4E5B
4E6A
4E78
4E80
-4E81
4E85
-4E87
-4E89
4E98
-4E9A
-4EA0
-4EA3
-4EB7
-4EBB
-4EBC
-4EBF
4ECE
-4EEA
-4EEB
4EEE
-4EF8
-4F03
-4F17
-4F1A
-4F28
-4F29
-4F32
4F37
-4F39
-4F42
-4F45
-4F4B
-4F72
-4F8A
-4FA2
-4FA8
-4FAB
-4FB0
-4FBD
-4FC8
-4FCC
-4FE4
4FE5
-4FF0
-4FF2
4FF9
-4FFD
-5003
5008
-502E
-5034
503B
-5056
-5058
-5066
-506C
-5081
-5088
-5090
-50A6
-50BC
50CD
-50D0
-50D9
-50DF
-50E1
-50F4
-50FC
-5101
510D
510E
-512B
-5156
-5160
516A
-5174
-5179
-5182
5186
-5188
-5196
519A
-519C
51A7
51A8
-51AB
-51AE
51B2
51B3
51B4
51B5
-51B8
-51C3
-51C7
51C9
-51CF
-51D1
-51D2
-51D3
-51DB
-51DF
-51E2
-51E4
51ED
51F4
-51FC
-51FE
-5202
-5205
520B
-521F
-5220
5226
5227
5234
523C
5257
-5259
-5260
-5268
-5273
-5279
528F
-5290
-5294
-529A
-52A1
-52A4
-52A8
52B5
52B9
52C5
-52CC
-52D0
52D1
-52E0
-52E1
-52F9
-5301
-5324
-5327
-532C
-5332
-5333
5338
-533B
-5342
-534E
-535D
-535F
-5364
-5367
-5369
-536D
5374
537D
-537E
5393
53A0
-53A2
53A6
53A8
-53A9
-53AA
-53AB
-53AE
-53B0
-53B6
53C1
-53C2
-53C5
53CC
-53D0
-53D1
-53D2
-53D8
53D9
-53DA
53E0
53F6
-53F7
53FE
5413
5414
5416
-541A
5421
-5423
-542F
-5432
-5434
-544B
+544C
544D
-5469
546A
546D
-5485
548F
5493
5494
5497
-549C
-549E
-54A3
54A4
54B2
-54B4
-54B9
54CB
-54CC
54CD
-54D0
-54DA
54E3
-54EF
5502
-550D
5513
-5518
551E
-5523
5525
-5528
-552B
-553F
-5547
-5549
5553
555D
5569
556B
5571
5572
-5573
5579
5586
5590
55A9
55B0
-55B4
-55B9
55BA
55BC
-55C1
55D7
-55D8
55DE
-55EA
55EC
55F0
55F1
-55F5
55FB
5605
5611
561E
-5620
-5621
5622
5623
5625
562D
-5637
5643
564D
564F
-5650
5652
5654
565D
-5661
-567A
-567B
-567C
5689
-568A
-568B
5692
-569E
569F
56A1
56A4
-56AF
56B1
56B9
56BF
56D6
-56E2
-56ED
-56EF
-56F1
56FD
-5700
-5715
-571D
-5732
-573D
-573F
5742
-5743
-5746
-5754
-5757
-575B
-575F
-5767
577A
-577E
-577F
-5788
-578A
-578D
-5790
-579C
-57A1
-57A7
-57AA
-57B4
-57BB
-57BE
-57C4
57C8
57D7
-57DD
57DE
-57E6
-57EF
-57FE
5803
-5812
-5822
5826
583A
5840
-5844
-5847
-585C
-585F
5869
-586C
5872
5873
-5892
-5899
-589A
-58A7
58AA
-58B0
-58B5
-58B6
58BB
-58CB
-58D0
-58DC
58E0
-58F0
58F2
58F3
58FB
-5902
-5904
-5905
-5907
590A
-5911
-591F
-5932
-5934
-5965
5975
-5989
-5994
-599A
599F
59AC
-59B0
-59B7
-59B8
-59C4
59C9
-59D9
59EB
-59EF
-59F0
59F8
-59F9
-5A02
-5A0B
-5A0D
-5A12
-5A1A
-5A21
-5A24
-5A27
-5A2A
5A2B
-5A2C
-5A3D
-5A45
-5A54
-5A59
-5A61
-5A63
-5A68
-5A6B
-5A6E
-5A71
-5A79
5A7E
-5A81
-5A82
-5A86
-5A88
-5A91
-5A96
-5A99
-5AA0
-5AA1
-5AAB
-5AC3
-5ACE
-5ACF
-5AD3
-5AE4
-5AF0
5AF2
5AFA
-5AFE
-5B0D
-5B11
-5B15
-5B1F
-5B2B
-5B41
-5B44
5B46
-5B4A
-5B4F
-5B66
-5B68
5B6D
-5B74
-5B76
-5B7C
-5B80
-5B82
-5B90
-5B96
5B9D
-5B9E
5B9F
-5BAA
5BC3
-5BD5
-5BD7
+5BDB
5BF3
-5BFF
5C05
-5C13
-5C14
-5C1C
-5C1E
-5C20
-5C23
-5C49
5C4A
-5C53
5C5E
-5C85
-5C99
-5C9A
-5C9C
-5C9E
-5CBA
-5CC1
-5CC2
-5CD1
-5CE5
-5CE9
5CEF
-5CF5
-5D10
-5D15
-5D18
-5D2C
-5D2F
-5D3E
-5D46
-5D48
-5D56
-5D57
-5D5B
-5D70
-5D74
-5D7B
-5D85
5D8B
-5D8E
-5DA4
-5DAB
-5DB6
-5DB9
-5DC1
-5DD7
-5DDB
5DF5
-5E09
-5E0B
-5E12
-5E2E
-5E42
-5E48
-5E5E
5E7A
-5E7F
5E83
-5E86
-5E92
-5E99
-5EBD
-5ECD
5ED0
-5EF4
5EF8
5EF9
5EFB
5F0C
5F0D
5F0E
-5F25
-5F3A
-5F4D
-5F50
-5F51
5F5C
-5F61
-5F63
-5F72
-5F7B
-5F83
-5FA4
5FA7
-5FB1
-5FBA
-5FC2
-5FC4
-5FDB
5FDF
-6023
6031
-603B
-604A
-6052
6075
-6077
-607E
609E
60A4
-60A7
-60B3
60D7
-60DE
60E3
-60E7
-60E8
-60E9
-60FD
-6107
-610C
-6119
-6122
-6130
-613D
-6142
-6150
6159
-615C
-6160
6164
-616F
617D
-6181
6187
-6195
-6198
-6199
-619C
-61B7
-61B9
-61C0
-61CF
61D0
-61D3
-61DA
-61E2
-622C
-6237
6239
-624C
-6268
-6282
-6285
-6290
629D
-62A4
62A6
62C3
62C5
62D5
-62DF
-62E5
-6318
-632E
6331
-6335
-6337
-6364
-636C
6379
-637F
-638B
63B9
-63C1
63D1
63DE
-63E2
63E6
63F8
-63FB
63FC
63FE
6407
6432
-6438
643A
-643B
-645A
-6471
647C
648D
6491
-64AF
64B4
-64B6
-64C0
-64D3
64DD
64E1
-64E5
64E7
-64EA
-650A
-6511
651E
-651F
6530
-6534
-6535
654D
-655F
-656B
-656D
-6585
6586
-6588
6589
-658B
-65B5
-65BE
-65D1
-65D4
-65E0
65E3
-65FF
-6618
-661E
-6623
6630
6644
-6648
664B
-6653
-6657
-6663
6667
666B
6673
-667D
-6685
668E
-6692
-669A
-66A4
-66AD
-66B3
-66B6
-66BF
-66CD
-66CE
66F1
-6702
-670C
-670E
-6716
-6719
-671E
6725
6736
-6744
6761
-6762
6767
-676B
-678F
67A0
-67A4
-67AC
67B1
-67BF
-67D6
-67D7
-67F9
-67FE
-6800
-6801
-6802
6803
6804
-680D
-6810
-681B
681E
6822
-6836
-6837
-683E
-6847
-684A
-6855
-6856
-685D
-6865
-6884
-6888
6898
-68A6
68B6
-68B9
-68BD
-68C3
-68C5
-68CA
6900
-6901
-6902
-6903
-6909
-6918
-6919
-691A
-691B
-692C
6936
-693E
-6943
-6946
-6955
6961
-6964
-6967
-6972
6973
-6980
-6985
698A
-6998
-699F
-69A2
69B2
-69C0
-69D1
-69D5
-69D6
-69E1
-69E9
-69F9
-69FA
-6A03
6A0B
-6A0C
-6A1A
-6A1C
6A2B
-6A2C
-6A2D
-6A33
-6A43
-6A45
-6A4C
-6A52
-6A53
-6A57
-6A63
-6A65
-6A71
-6A74
-6A7A
-6A82
-6A8A
-6A8F
-6A99
-6A9D
-6AA7
-6AAB
-6AB1
-6AB2
-6AB5
-6ABE
6AC8
-6AC9
-6ACA
-6AD4
-6AD8
-6AF6
-6B05
-6B1D
6B35
-6B52
-6B57
6B6F
6B74
6B7A
-6B81
-6BC1
-6BDC
6BE1
-6BEA
-6BFA
-6C1C
-6C31
-6C35
6C37
6C39
-6C3A
-6C3D
-6C49
-6C58
6C5A
-6C6E
-6C75
-6C79
-6C7F
-6C9F
6CA2
-6CAA
-6CAF
-6CB2
-6CCB
-6CCE
-6CDF
6CEA
-6CFF
-6D02
-6D05
-6D06
-6D24
-6D26
-6D4E
-6D57
-6D5B
6D5C
-6D71
6D72
-6D81
-6D8F
6D96
-6DA4
-6DA5
-6DB1
-6DB9
-6DFE
-6E02
-6E04
-6E0A
-6E0F
6E15
-6E18
6E29
-6E2A
-6E4F
-6E50
-6E59
-6E76
6E7C
-6E86
-6E8B
-6E9A
-6EB5
-6EB8
-6EBB
6ED9
-6EDA
6EDB
6EDD
-6EE2
-6EE8
-6EE9
-6EFA
-6F04
-6F0B
-6F0C
6F16
-6F17
-6F24
-6F34
-6F3D
-6F44
6F56
-6F5C
-6F74
-6F79
6F81
-6F8A
-6F9D
-6F9F
-6FB5
-6FBB
6FBE
-6FD3
-6FD9
-6FDA
6FF6
-6FF8
-7003
701E
702C
-704B
-704D
-7050
-7054
-705C
-7067
-706C
-706F
-7075
-7077
-7079
-707E
-707F
7081
7089
-708B
-708F
-70A0
-70A3
-70A5
-70A6
-70A7
70B9
-70BB
-70BC
-70BD
-70C0
-70C4
-70CC
-70D0
-70D5
-70D6
70DF
70F1
-70F5
-70FE
7105
-711D
-7129
712B
-712C
-7133
-7134
-7135
-713B
-713E
7140
7145
714A
-714F
7151
-716B
7171
-7173
-7175
-7176
-7177
-717A
-717C
-717E
-7188
-718C
-718E
-7191
-7196
-7198
-71A2
-71A3
-71AD
-71B4
-71B7
-71BA
-71D1
-71DD
-71EB
-71F5
71F6
-7200
-7209
-720E
-720F
7215
-7216
-7217
-7224
-722B
-722E
7240
-7250
-7255
-7257
-725C
-7266
7282
7287
-728F
-7294
-729F
-72AD
-72B2
-72CD
-72E2
-7302
-7304
-7310
-7328
732A
-732B
-732C
732E
-7338
-7339
7341
-7348
-734F
-7371
7374
-738C
-738F
-7398
-739C
-739E
-73A7
-73AA
-73BA
73C9
-73CE
73CF
-73D0
-73D5
-73E1
-73E2
-73E4
-73E6
-73EF
-73F3
-73F7
-73F9
-73FB
-7402
-7411
-7412
-7414
-7415
-7417
-7419
-741C
-741E
-741F
-7437
-7438
7439
743C
-7443
-7445
-7447
7448
-7449
-7453
-7456
-745D
7460
-7465
-7468
-746B
-746C
-7474
-7476
-747A
-7482
-748C
-748D
-7499
-749B
-74A4
-74B4
-74B9
-74C8
-74CC
-74D0
-74D3
-74E7
-74F0
-74F1
-74F2
-74F8
7505
-750E
-7519
-751E
7534
-7535
753B
-7542
-7546
754A
-754D
7551
7553
-7555
7560
7567
-756D
-756E
-7572
-757A
-7583
758D
758E
-7592
-759E
75B1
75B4
-75C3
-75C8
-75DC
7602
-7607
-762C
763B
-7640
-764D
764E
-764F
-7651
-7654
7666
7667
-766F
-7673
-7674
7676
767A
-7690
-76A1
-76A5
-76B7
-76CC
-76D6
-76D9
770C
-770E
-770F
771E
-7724
-7726
-772B
7740
-7743
7758
-7772
-7777
7778
777A
-777B
7793
-7798
-77AF
77B9
-77BE
-77C3
-77C5
77CB
-77DD
-77E6
-77F4
-77FE
7808
-7818
-781C
-781E
-7839
-783C
-783D
-7842
-7844
-7847
-784B
-7851
-7853
-7854
-7866
-787A
7881
-7888
788D
-78AF
78B1
-78B6
78B8
-78B9
-78C7
-78D2
-78D3
78D7
-78D8
-78E4
-78EE
-78F0
-78F1
-78F5
7906
792E
-7932
-7933
-7934
-7936
-793B
-793C
7958
-7959
7962
-7971
-797E
-7980
-7983
-7986
-7987
7991
-7999
-799D
-799F
-79A5
-79A9
79C4
-79C6
-79CC
-79D4
-79E2
-79F1
-79F4
-7A06
-7A2A
-7A2D
-7A3A
-7A3E
-7A43
-7A45
-7A49
-7A65
-7A7D
-7A83
-7A91
7A93
7AB0
-7ABB
-7ABC
-7AC2
-7AC3
7AC8
7AC9
-7ACF
-7AD3
-7ADA
-7ADB
7ADC
7ADD
-7AE2
-7AE7
-7AE9
7AEA
-7AFE
7B0B
-7B0C
-7B14
-7B1F
-7B27
-7B29
7B39
-7B42
-7B43
-7B55
-7B62
-7B6C
7B6F
-7B7B
-7B92
-7BA2
-7BA3
-7BB2
-7BCF
-7BD0
-7BEC
-7BFA
-7BFC
-7C12
7C15
-7C1B
-7C35
-7C42
-7C44
-7C51
-7C56
-7C5D
-7C6D
-7C70
-7C74
-7C7B
-7C7C
-7C7E
-7C83
-7C86
-7C8E
-7C9C
7CA6
7CA7
-7CAC
7CAE
-7CB8
-7CC2
-7CC3
-7CC7
7CC9
7CCD
-7CD3
-7CDA
-7CE6
7CED
-7CF3
-7CF5
7CF9
7CFC
7D25
-7D4D
-7D5A
7D5D
7D89
-7D8B
-7D97
-7DA4
-7DA8
7DAB
7DB3
7DCD
7DCF
-7DD0
-7DD3
-7DD4
7DDC
-7DE4
-7DE5
-7DF5
-7DFD
-7DFE
-7E07
-7E27
-7E5B
-7E65
-7E67
-7E6C
7E6E
-7E7F
-7E8E
-7E92
-7E9F
-7EA4
-7EAC
-7EBA
-7EC7
-7ECF
-7EDF
-7F06
-7F37
-7F40
-7F41
7F47
7F49
7F4E
-7F52
-7F53
-7F71
7F78
-7F8F
-7F93
7F97
7FA3
-7FAE
-7FB4
-7FDD
-7FE7
-7FFA
-8002
-8008
-801D
-8020
-8025
-802E
-802F
-8031
-803B
-803C
-8054
-805B
8061
-8062
-8063
-8066
-8080
-809F
-80A7
80B6
-80B7
-80BC
80BD
80C6
-80E9
-80EC
-80F6
-8103
8107
-8109
-810C
-810E
-8112
-8114
8117
-811A
-812A
-8132
-8134
8137
-8142
-8148
-8156
-8159
-815A
-816D
-817C
-8184
-8193
81A5
-81AA
81B6
-81C1
-81C8
-81E4
81EF
-81F6
8218
-821A
8226
-8229
-822D
-823E
-8254
-8262
-8265
8276
-8279
-827A
-827B
-8287
82A6
82AA
-82BF
-82C4
-82CA
-82CF
-82D0
-82D8
-82E2
-82EE
82F7
-82F8
-82FC
-82FD
-82FF
-830B
8318
-831A
-831D
-833D
-8357
-8362
-8363
-8366
-836F
-8385
-8391
-839C
-83AC
-83B9
-83BE
-83CD
83D3
-83ED
-8405
-8414
-8416
8418
-841C
8420
-8421
-8424
-8426
-842E
-843E
-8448
-844A
-8453
-8455
-8458
-845C
-8462
-8464
8471
-8472
-847F
-8480
-8488
-8492
-8493
-8496
-84A3
84AD
84BD
-84BE
-84DA
-84DE
-84E1
84E2
-84E4
-84E5
-84F8
8503
-8505
-8510
-8533
8534
-8538
-8542
-854B
-854C
-8552
-855A
-855F
-856F
8570
-8573
-8597
-85C1
-85D6
-85E0
-85EE
-85FC
8602
-860D
-860F
-8610
-8614
-8616
-8628
862F
-8642
-8645
-866C
-8672
-867E
-8692
-86A0
-86AD
-86B2
86EF
-8770
-8771
-877D
8786
-878B
-878C
-87A5
-87A9
-87B1
-87C1
87CE
-87D6
-87DA
-87EE
-87F5
8804
-880F
-8818
-8827
882D
-8842
-8845
8846
-884F
885E
-8860
-8864
-8865
-886E
-8884
-8887
-888F
-8890
889C
-88A0
-88AE
-88B4
-88B5
-88BF
-88C5
88C7
88CF
-88E6
-88F5
-88FF
-8900
-8924
-8943
8947
-894D
-8954
-8965
-8977
-8980
8987
-8989
-898A
-8991
8994
89A5
89A7
-89A9
-89BC
-89C1
-89C6
-89E7
-8A1C
-8A29
-8A2B
-8A38
-8A3D
-8A49
-8A67
-8A7E
-8A90
8A94
-8A9C
-8AA9
-8AAF
-8AB4
-8ADA
-8AEA
-8B0C
-8B1F
-8B2D
-8B3F
-8B43
8B4C
-8B4D
-8B5E
-8B62
-8B69
8B81
8B83
8B90
-8B9B
-8BA0
-8BBE
-8BE2
-8C51
-8C9B
-8C9F
-8CAD
8CCD
-8CD4
-8CD6
8CDB
-8CE9
-8CEB
-8CF2
-8CF7
8D03
8D0B
-8D0C
-8D11
-8D12
-8D18
-8D1C
-8D1D
-8D7A
-8D82
-8DA6
-8DA9
-8DC0
-8DC3
-8DD4
-8E01
8E0E
-8E28
8E2A
8E2D
-8E3A
-8E46
8E4F
-8E68
-8E71
-8E75
-8E77
8E7E
8E80
-8EA7
8EAD
-8EB0
-8EB6
-8EB9
-8EBC
-8EC3
-8ECE
8EDA
8EE2
-8EE4
-8EED
8EF2
-8F19
8F2D
-8F30
-8F41
-8F4A
-8F5C
-8F66
-8F67
-8F6E
-8F93
-8FA0
-8FA5
-8FA7
-8FB3
8FB5
-8FB6
-8FB7
-8FB8
-8FB9
8FBA
8FBB
8FBC
-8FBE
-8FC1
-8FCA
-8FCC
-8FCF
-8FD0
-8FDA
8FF9
-9008
-9012
9033
-9037
-904C
9056
9061
-9064
-906C
90A8
-90AE
-90BB
-90C4
-9151
-9159
-915C
-915E
-9167
-9170
9176
-917C
-918C
-918E
-91A9
-91B6
-91BB
-91C4
-91D6
-91DF
-91E5
-91F6
-91FA
-91FE
9208
920E
-9213
-9221
-9228
922A
-922B
-9235
-923C
-9241
9244
9255
-9258
925D
-925F
9262
-926B
926E
-9277
-9281
-9284
-9289
-928F
-92AE
-92B1
92B9
-92BA
92BE
-92BF
-92D4
-92DB
-92E3
-92E5
-92EB
-92EC
-92F2
-92F3
-92F4
-92F6
-92FD
-9303
9307
-932C
-9330
-9331
9340
-9341
-9342
-9343
-9344
9345
9348
-935F
-9362
-9366
-9368
9369
-936B
-936E
-9373
-9374
-9378
-937D
-9381
9384
9385
-9386
9387
-9390
-939C
-93A0
93AD
-93B8
-93BB
-93BD
93BF
-93C6
-93CB
-93D3
-93DB
-93E0
93F0
-93F1
-93F3
-93F4
-9401
9404
-9408
-9417
-941B
-941D
-9424
-9425
9426
9427
-942D
-943E
-9442
-9443
-944D
9454
-9458
945B
9465
-9467
-946C
-9479
-947B
-9485
-949F
-94A2
-94C1
-94C3
-94DC
-94F6
-952D
-9547
-9578
-957F
-9585
-9596
-9597
9599
-95A0
95A2
-95A6
-95A7
95AA
-95E8
-95F4
-961D
-9633
-9638
-9641
-9645
-9656
-9669
-967B
-9681
-968F
9696
96A3
-96A5
-96B6
-96BD
-96F4
-9703
-971B
9721
-9731
-9736
-9740
-9741
9751
-9755
-9757
-975D
-975F
976D
-9771
-9787
-9789
-979B
-979F
-97B1
-97B2
-97B4
-97B8
-97BA
-97BD
-97BE
-97C0
-97C2
-97C8
-97D2
-97E0
-97E6
97EE
-97F2
97F5
-9814
-9815
-981F
-9823
-982E
-9833
9834
-9847
-984B
-9866
-9868
-986C
-9875
-98B4
98B7
-98B9
-98C3
-98C7
98C8
-98CA
-98CE
-98DC
-98DE
98E0
-98E1
-98E6
-98EC
-98F1
-98F5
-990E
-9919
991C
-9937
9938
-9939
-993B
-9940
-9942
994A
994D
-995D
9962
-9963
-999B
-99A4
-99AA
-99B8
-99BC
-99C4
99C5
-99DA
-99E0
99E1
-99E6
-99F5
-9A0C
9A10
-9A1F
-9A21
-9A26
-9A2F
-9A3B
-9A3C
-9A58
-9A5C
-9A63
-9A6C
-9A8F
-9AB2
-9AB6
-9ABA
-9ABD
-9AD7
-9AE0
-9AE2
-9AF4
-9AFF
-9B02
-9B09
-9B0F
-9B14
9B2A
9B2D
-9B34
-9B39
-9B40
-9B50
-9B69
-9B7F
9B81
-9B83
9B8B
-9B8D
9B8E
-9B8F
-9B97
-9B9D
-9B9F
-9BB0
-9BCF
-9BDD
-9BE9
9BED
9BF1
-9BF4
9BFF
9C02
-9C0A
9C0C
-9C10
-9C15
-9C1B
-9C1F
-9C20
-9C26
9C2F
9C35
9C3A
9C45
-9C4F
-9C53
9C5D
9C72
-9C7B
-9C7C
-9D02
-9D0C
-9D16
-9D21
9D34
-9D39
-9D44
-9D49
-9D4E
9D50
9D5E
-9D6D
-9D6E
-9D7C
-9D7E
-9D83
9D93
-9DA5
-9DAB
-9DBD
9DC0
9DC4
9DC9
9DD4
-9DFC
9E0A
9E0C
-9E0E
-9E18
-9E1C
-9E1F
-9E7B
-9E81
-9E84
-9E85
9E90
9E95
9E96
-9E98
-9E9E
-9EA2
-9EA6
-9EA8
9EAA
9EAB
-9EAC
9EAF
-9EB1
-9EBD
9EBF
-9EC1
-9EC4
-9EC6
-9EC7
-9EE2
-9EF1
-9EF8
-9EFE
-9F02
9F08
-9F17
9F26
-9F27
-9F39
-9F44
-9F45
-9F50
-9F53
-9F5A
9F62
-9F69
-9F7F
9F8E
-9F99
-9F9F
-9FA5
-20547
+200CA
+201A4
+201A9
+20325
+20341
+2070E
+20779
+20C41
+20C53
+20C65
+20C78
+20C96
+20CB5
+20CCF
+20D31
+20D71
+20D7E
+20D7F
+20D9C
+20DA7
+20E04
+20E09
+20E4C
+20E73
+20E76
+20E7A
+20E9D
+20EA2
+20ED7
+20EF9
+20F2D
+20F2E
+20F3B
+20F4C
+20FB4
+20FEA
+21014
+2105C
+2106F
+21075
+21076
+2107B
+210C1
+210D3
+2113D
+21145
+2114F
+2197C
+21A34
+21C2A
+21DF9
+220C7
+221A1
+22ACF
+22B43
+22BCA
+22C51
+22C55
+22C62
+22CB2
+22CC2
+22D4C
+22D67
+22D8D
+22DEE
+22F74
+23231
+23595
+236BA
+23CB7
+23E89
+23F80
+244D3
+24DB8
+24DEA
+24EA7
+2512B
+25148
+2517E
+25535
+25E49
+26258
+266DA
+267CC
+2688A
+269F2
+269FA
+27285
+27574
+27657
+27735
+2775E
+2789D
+2797A
+279A0
+27A3E
+27A59
+27D73
+28024
+280BD
+2815D
+28207
+282E2
+2836D
+289C0
+289DC
+28A0F
+28B46
+28B4E
+28CCA
+28CCD
+28CD2
+28D99
+28EE7
+294E5
+29720
+298D1
+29A4D
+29D98
+2A632
+2A65B
bin_PROGRAMS=fc-list
-INCLUDES=-I${top_srcdir} $(WARN_CFLAGS)
+AM_CPPFLAGS=-I${top_srcdir} $(WARN_CFLAGS)
BUILT_MANS=fc-list.1
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# PERFORMANCE OF THIS SOFTWARE.
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
- test $$am__dry = yes; \
- }
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
bin_PROGRAMS = fc-list$(EXEEXT)
@USEDOCBOOK_TRUE@am__append_1 = ${man_MANS}
subdir = fc-list
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(top_srcdir)/depcomp
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_for_build.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \
+ $(top_srcdir)/m4/ax_cc_for_build.m4 \
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
$(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
man1dir = $(mandir)/man1
NROFF = nroff
MANS = $(man_MANS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
FGREP = @FGREP@
FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
FREETYPE_LIBS = @FREETYPE_LIBS@
+GIT = @GIT@
+GPERF = @GPERF@
GREP = @GREP@
HASDOCBOOK = @HASDOCBOOK@
HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
+PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PTHREAD_CC = @PTHREAD_CC@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
PTHREAD_LIBS = @PTHREAD_LIBS@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RM = @RM@
SED = @SED@
am__tar = @am__tar@
am__untar = @am__untar@
ax_pthread_config = @ax_pthread_config@
-baseconfigdir = @baseconfigdir@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
-configdir = @configdir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
ms_librarian = @ms_librarian@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgconfigdir = @pkgconfigdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-templatedir = @templatedir@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-xmldir = @xmldir@
DOC2MAN = docbook2man
FC_LIST_SRC = ${top_srcdir}/fc-list
SGML = ${FC_LIST_SRC}/fc-list.sgml
-INCLUDES = -I${top_srcdir} $(WARN_CFLAGS)
+AM_CPPFLAGS = -I${top_srcdir} $(WARN_CFLAGS)
BUILT_MANS = fc-list.1
@ENABLE_DOCS_TRUE@man_MANS = ${BUILT_MANS}
EXTRA_DIST = fc-list.sgml $(BUILT_MANS)
fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p || test -f $$p1; \
- then echo "$$p"; echo "$$p"; else :; fi; \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
done | \
- sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' `; \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(bindir)" && rm -f $$files
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
+
fc-list$(EXEEXT): $(fc_list_OBJECTS) $(fc_list_DEPENDENCIES) $(EXTRA_fc_list_DEPENDENCIES)
@rm -f fc-list$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fc_list_OBJECTS) $(fc_list_LDADD) $(LIBS)
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
-cscopelist: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
- @list='$(MANS)'; if test -n "$$list"; then \
- list=`for p in $$list; do \
- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
- if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
- if test -n "$$list" && \
- grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
- echo "error: found man pages containing the 'missing help2man' replacement text:" >&2; \
- grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
- echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
- echo " typically 'make maintainer-clean' will remove them" >&2; \
- exit 1; \
- else :; fi; \
- else :; fi
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
.MAKE: install-am install-strip
-.PHONY: CTAGS GTAGS all all-am all-local check check-am clean \
- clean-binPROGRAMS clean-generic clean-libtool cscopelist ctags \
- distclean distclean-compile distclean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \
+ clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
+ ctags ctags-am distclean distclean-compile distclean-generic \
distclean-libtool distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-binPROGRAMS \
install-data install-data-am install-dvi install-dvi-am \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags uninstall uninstall-am \
+ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
uninstall-binPROGRAMS uninstall-man uninstall-man1
fc-list \- list available fonts
.SH SYNOPSIS
.sp
-\fBfc-list\fR [ \fB-vVh\fR ] [ \fB--verbose\fR ] [ \fB [ -f \fIformat\fB ] [ --format \fIformat\fB ] \fR ] [ \fB--version\fR ] [ \fB--help\fR ]
+\fBfc-list\fR [ \fB-vVh\fR ] [ \fB--verbose\fR ] [ \fB [ -f \fIformat\fB ] [ --format \fIformat\fB ] \fR ] [ \fB [ -q ] [ --quiet ] \fR ] [ \fB--version\fR ] [ \fB--help\fR ]
[ \fB\fIpattern\fB [ \fIelement\fB\fI...\fB ] \fR ]
.SH "DESCRIPTION"
Format output according to the format specifier
\fIformat\fR\&.
.TP
+\fB-q\fR
+Suppress all normal output. returns 1 as the error code if no fonts matched.
+.TP
\fB-V\fR
Show version of the program and exit.
.TP
if (argv[i])
{
pat = FcNameParse ((FcChar8 *) argv[i]);
+ if (!pat)
+ {
+ fputs ("Unable to parse the pattern\n", stderr);
+ return 1;
+ }
while (argv[++i])
{
if (!os)
<arg><option>-f</option> <option><replaceable>format</replaceable></option></arg>
<arg><option>--format</option> <option><replaceable>format</replaceable></option></arg>
</group>
+ <group>
+ <arg><option>-q</option></arg>
+ <arg><option>--quiet</option></arg>
+ </group>
<arg><option>--version</option></arg>
<arg><option>--help</option></arg>
<sbr>
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>-q</option>
+ <option>--quiet</option>
+ </term>
+ <listitem>
+ <para>Suppress all normal output. returns 1 as the error code if no fonts matched.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
<term><option>-V</option>
<option>--version</option>
</term>
SGML = ${FC_MATCH_SRC}/fc-match.sgml
-INCLUDES=-I${top_srcdir} $(WARN_CFLAGS)
+AM_CPPFLAGS=-I${top_srcdir} $(WARN_CFLAGS)
BUILT_MANS=fc-match.1
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# PERFORMANCE OF THIS SOFTWARE.
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
- test $$am__dry = yes; \
- }
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
bin_PROGRAMS = fc-match$(EXEEXT)
@USEDOCBOOK_TRUE@am__append_1 = ${man_MANS}
subdir = fc-match
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(top_srcdir)/depcomp
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_for_build.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \
+ $(top_srcdir)/m4/ax_cc_for_build.m4 \
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
$(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
man1dir = $(mandir)/man1
NROFF = nroff
MANS = $(man_MANS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
FGREP = @FGREP@
FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
FREETYPE_LIBS = @FREETYPE_LIBS@
+GIT = @GIT@
+GPERF = @GPERF@
GREP = @GREP@
HASDOCBOOK = @HASDOCBOOK@
HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
+PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PTHREAD_CC = @PTHREAD_CC@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
PTHREAD_LIBS = @PTHREAD_LIBS@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RM = @RM@
SED = @SED@
am__tar = @am__tar@
am__untar = @am__untar@
ax_pthread_config = @ax_pthread_config@
-baseconfigdir = @baseconfigdir@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
-configdir = @configdir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
ms_librarian = @ms_librarian@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgconfigdir = @pkgconfigdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-templatedir = @templatedir@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-xmldir = @xmldir@
DOC2MAN = docbook2man
FC_MATCH_SRC = ${top_srcdir}/fc-match
SGML = ${FC_MATCH_SRC}/fc-match.sgml
-INCLUDES = -I${top_srcdir} $(WARN_CFLAGS)
+AM_CPPFLAGS = -I${top_srcdir} $(WARN_CFLAGS)
BUILT_MANS = fc-match.1
@ENABLE_DOCS_TRUE@man_MANS = ${BUILT_MANS}
EXTRA_DIST = fc-match.sgml $(BUILT_MANS)
fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p || test -f $$p1; \
- then echo "$$p"; echo "$$p"; else :; fi; \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
done | \
- sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' `; \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(bindir)" && rm -f $$files
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
+
fc-match$(EXEEXT): $(fc_match_OBJECTS) $(fc_match_DEPENDENCIES) $(EXTRA_fc_match_DEPENDENCIES)
@rm -f fc-match$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fc_match_OBJECTS) $(fc_match_LDADD) $(LIBS)
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
-cscopelist: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
- @list='$(MANS)'; if test -n "$$list"; then \
- list=`for p in $$list; do \
- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
- if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
- if test -n "$$list" && \
- grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
- echo "error: found man pages containing the 'missing help2man' replacement text:" >&2; \
- grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
- echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
- echo " typically 'make maintainer-clean' will remove them" >&2; \
- exit 1; \
- else :; fi; \
- else :; fi
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
.MAKE: install-am install-strip
-.PHONY: CTAGS GTAGS all all-am all-local check check-am clean \
- clean-binPROGRAMS clean-generic clean-libtool cscopelist ctags \
- distclean distclean-compile distclean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \
+ clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
+ ctags ctags-am distclean distclean-compile distclean-generic \
distclean-libtool distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-binPROGRAMS \
install-data install-data-am install-dvi install-dvi-am \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags uninstall uninstall-am \
+ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
uninstall-binPROGRAMS uninstall-man uninstall-man1
if (argv[i])
{
pat = FcNameParse ((FcChar8 *) argv[i]);
+ if (!pat)
+ {
+ fputs ("Unable to parse the pattern\n", stderr);
+ return 1;
+ }
while (argv[++i])
{
if (!os)
SGML = ${FC_PATTERN_SRC}/fc-pattern.sgml
-INCLUDES=-I${top_srcdir} $(WARN_CFLAGS)
+AM_CPPFLAGS=-I${top_srcdir} $(WARN_CFLAGS)
BUILT_MANS=fc-pattern.1
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# PERFORMANCE OF THIS SOFTWARE.
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
- test $$am__dry = yes; \
- }
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
bin_PROGRAMS = fc-pattern$(EXEEXT)
@USEDOCBOOK_TRUE@am__append_1 = ${man_MANS}
subdir = fc-pattern
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(top_srcdir)/depcomp
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_for_build.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \
+ $(top_srcdir)/m4/ax_cc_for_build.m4 \
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
$(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
man1dir = $(mandir)/man1
NROFF = nroff
MANS = $(man_MANS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
FGREP = @FGREP@
FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
FREETYPE_LIBS = @FREETYPE_LIBS@
+GIT = @GIT@
+GPERF = @GPERF@
GREP = @GREP@
HASDOCBOOK = @HASDOCBOOK@
HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
+PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PTHREAD_CC = @PTHREAD_CC@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
PTHREAD_LIBS = @PTHREAD_LIBS@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RM = @RM@
SED = @SED@
am__tar = @am__tar@
am__untar = @am__untar@
ax_pthread_config = @ax_pthread_config@
-baseconfigdir = @baseconfigdir@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
-configdir = @configdir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
ms_librarian = @ms_librarian@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgconfigdir = @pkgconfigdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-templatedir = @templatedir@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-xmldir = @xmldir@
DOC2MAN = docbook2man
FC_PATTERN_SRC = ${top_srcdir}/fc-pattern
SGML = ${FC_PATTERN_SRC}/fc-pattern.sgml
-INCLUDES = -I${top_srcdir} $(WARN_CFLAGS)
+AM_CPPFLAGS = -I${top_srcdir} $(WARN_CFLAGS)
BUILT_MANS = fc-pattern.1
@ENABLE_DOCS_TRUE@man_MANS = ${BUILT_MANS}
EXTRA_DIST = fc-pattern.sgml $(BUILT_MANS)
fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p || test -f $$p1; \
- then echo "$$p"; echo "$$p"; else :; fi; \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
done | \
- sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' `; \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(bindir)" && rm -f $$files
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
+
fc-pattern$(EXEEXT): $(fc_pattern_OBJECTS) $(fc_pattern_DEPENDENCIES) $(EXTRA_fc_pattern_DEPENDENCIES)
@rm -f fc-pattern$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fc_pattern_OBJECTS) $(fc_pattern_LDADD) $(LIBS)
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
-cscopelist: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
- @list='$(MANS)'; if test -n "$$list"; then \
- list=`for p in $$list; do \
- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
- if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
- if test -n "$$list" && \
- grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
- echo "error: found man pages containing the 'missing help2man' replacement text:" >&2; \
- grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
- echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
- echo " typically 'make maintainer-clean' will remove them" >&2; \
- exit 1; \
- else :; fi; \
- else :; fi
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
.MAKE: install-am install-strip
-.PHONY: CTAGS GTAGS all all-am all-local check check-am clean \
- clean-binPROGRAMS clean-generic clean-libtool cscopelist ctags \
- distclean distclean-compile distclean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \
+ clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
+ ctags ctags-am distclean distclean-compile distclean-generic \
distclean-libtool distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-binPROGRAMS \
install-data install-data-am install-dvi install-dvi-am \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags uninstall uninstall-am \
+ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
uninstall-binPROGRAMS uninstall-man uninstall-man1
if (argv[i])
{
pat = FcNameParse ((FcChar8 *) argv[i]);
+ if (!pat)
+ {
+ fputs ("Unable to parse the pattern\n", stderr);
+ return 1;
+ }
while (argv[++i])
{
if (!os)
SGML = ${FC_QUERY_SRC}/fc-query.sgml
-INCLUDES=-I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS)
+AM_CPPFLAGS=-I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS)
BUILT_MANS=fc-query.1
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# PERFORMANCE OF THIS SOFTWARE.
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
- test $$am__dry = yes; \
- }
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
bin_PROGRAMS = fc-query$(EXEEXT)
@USEDOCBOOK_TRUE@am__append_1 = ${man_MANS}
subdir = fc-query
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(top_srcdir)/depcomp
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_for_build.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \
+ $(top_srcdir)/m4/ax_cc_for_build.m4 \
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
$(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
man1dir = $(mandir)/man1
NROFF = nroff
MANS = $(man_MANS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
FGREP = @FGREP@
FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
FREETYPE_LIBS = @FREETYPE_LIBS@
+GIT = @GIT@
+GPERF = @GPERF@
GREP = @GREP@
HASDOCBOOK = @HASDOCBOOK@
HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
+PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PTHREAD_CC = @PTHREAD_CC@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
PTHREAD_LIBS = @PTHREAD_LIBS@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RM = @RM@
SED = @SED@
am__tar = @am__tar@
am__untar = @am__untar@
ax_pthread_config = @ax_pthread_config@
-baseconfigdir = @baseconfigdir@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
-configdir = @configdir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
ms_librarian = @ms_librarian@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgconfigdir = @pkgconfigdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-templatedir = @templatedir@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-xmldir = @xmldir@
DOC2MAN = docbook2man
FC_QUERY_SRC = ${top_srcdir}/fc-query
SGML = ${FC_QUERY_SRC}/fc-query.sgml
-INCLUDES = -I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS)
+AM_CPPFLAGS = -I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS)
BUILT_MANS = fc-query.1
@ENABLE_DOCS_TRUE@man_MANS = ${BUILT_MANS}
EXTRA_DIST = fc-query.sgml $(BUILT_MANS)
fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p || test -f $$p1; \
- then echo "$$p"; echo "$$p"; else :; fi; \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
done | \
- sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' `; \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(bindir)" && rm -f $$files
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
+
fc-query$(EXEEXT): $(fc_query_OBJECTS) $(fc_query_DEPENDENCIES) $(EXTRA_fc_query_DEPENDENCIES)
@rm -f fc-query$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fc_query_OBJECTS) $(fc_query_LDADD) $(LIBS)
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
-cscopelist: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
- @list='$(MANS)'; if test -n "$$list"; then \
- list=`for p in $$list; do \
- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
- if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
- if test -n "$$list" && \
- grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
- echo "error: found man pages containing the 'missing help2man' replacement text:" >&2; \
- grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
- echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
- echo " typically 'make maintainer-clean' will remove them" >&2; \
- exit 1; \
- else :; fi; \
- else :; fi
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
.MAKE: install-am install-strip
-.PHONY: CTAGS GTAGS all all-am all-local check check-am clean \
- clean-binPROGRAMS clean-generic clean-libtool cscopelist ctags \
- distclean distclean-compile distclean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \
+ clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
+ ctags ctags-am distclean distclean-compile distclean-generic \
distclean-libtool distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-binPROGRAMS \
install-data install-data-am install-dvi install-dvi-am \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags uninstall uninstall-am \
+ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
uninstall-binPROGRAMS uninstall-man uninstall-man1
SGML = ${FC_SCAN_SRC}/fc-scan.sgml
-INCLUDES=-I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS)
+AM_CPPFLAGS=-I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS)
BUILT_MANS=fc-scan.1
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# PERFORMANCE OF THIS SOFTWARE.
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
- test $$am__dry = yes; \
- }
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
bin_PROGRAMS = fc-scan$(EXEEXT)
@USEDOCBOOK_TRUE@am__append_1 = ${man_MANS}
subdir = fc-scan
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(top_srcdir)/depcomp
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_for_build.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \
+ $(top_srcdir)/m4/ax_cc_for_build.m4 \
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
$(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
man1dir = $(mandir)/man1
NROFF = nroff
MANS = $(man_MANS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
FGREP = @FGREP@
FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
FREETYPE_LIBS = @FREETYPE_LIBS@
+GIT = @GIT@
+GPERF = @GPERF@
GREP = @GREP@
HASDOCBOOK = @HASDOCBOOK@
HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
+PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PTHREAD_CC = @PTHREAD_CC@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
PTHREAD_LIBS = @PTHREAD_LIBS@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RM = @RM@
SED = @SED@
am__tar = @am__tar@
am__untar = @am__untar@
ax_pthread_config = @ax_pthread_config@
-baseconfigdir = @baseconfigdir@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
-configdir = @configdir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
ms_librarian = @ms_librarian@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgconfigdir = @pkgconfigdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-templatedir = @templatedir@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-xmldir = @xmldir@
DOC2MAN = docbook2man
FC_SCAN_SRC = ${top_srcdir}/fc-scan
SGML = ${FC_SCAN_SRC}/fc-scan.sgml
-INCLUDES = -I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS)
+AM_CPPFLAGS = -I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS)
BUILT_MANS = fc-scan.1
@ENABLE_DOCS_TRUE@man_MANS = ${BUILT_MANS}
EXTRA_DIST = fc-scan.sgml $(BUILT_MANS)
fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p || test -f $$p1; \
- then echo "$$p"; echo "$$p"; else :; fi; \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
done | \
- sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' `; \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(bindir)" && rm -f $$files
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
+
fc-scan$(EXEEXT): $(fc_scan_OBJECTS) $(fc_scan_DEPENDENCIES) $(EXTRA_fc_scan_DEPENDENCIES)
@rm -f fc-scan$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fc_scan_OBJECTS) $(fc_scan_LDADD) $(LIBS)
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
-cscopelist: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
- @list='$(MANS)'; if test -n "$$list"; then \
- list=`for p in $$list; do \
- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
- if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
- if test -n "$$list" && \
- grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
- echo "error: found man pages containing the 'missing help2man' replacement text:" >&2; \
- grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
- echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
- echo " typically 'make maintainer-clean' will remove them" >&2; \
- exit 1; \
- else :; fi; \
- else :; fi
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
.MAKE: install-am install-strip
-.PHONY: CTAGS GTAGS all all-am all-local check check-am clean \
- clean-binPROGRAMS clean-generic clean-libtool cscopelist ctags \
- distclean distclean-compile distclean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \
+ clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
+ ctags ctags-am distclean distclean-compile distclean-generic \
distclean-libtool distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-binPROGRAMS \
install-data install-data-am install-dvi install-dvi-am \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags uninstall uninstall-am \
+ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
uninstall-binPROGRAMS uninstall-man uninstall-man1
SGML = ${FC_VALIDATE_SRC}/fc-validate.sgml
-INCLUDES=-I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS)
+AM_CPPFLAGS=-I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS)
BUILT_MANS=fc-validate.1
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# PERFORMANCE OF THIS SOFTWARE.
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
- test $$am__dry = yes; \
- }
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
bin_PROGRAMS = fc-validate$(EXEEXT)
@USEDOCBOOK_TRUE@am__append_1 = $(man_MANS)
subdir = fc-validate
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(top_srcdir)/depcomp
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_for_build.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \
+ $(top_srcdir)/m4/ax_cc_for_build.m4 \
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
$(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
man1dir = $(mandir)/man1
NROFF = nroff
MANS = $(man_MANS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
FGREP = @FGREP@
FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
FREETYPE_LIBS = @FREETYPE_LIBS@
+GIT = @GIT@
+GPERF = @GPERF@
GREP = @GREP@
HASDOCBOOK = @HASDOCBOOK@
HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
+PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PTHREAD_CC = @PTHREAD_CC@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
PTHREAD_LIBS = @PTHREAD_LIBS@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RM = @RM@
SED = @SED@
am__tar = @am__tar@
am__untar = @am__untar@
ax_pthread_config = @ax_pthread_config@
-baseconfigdir = @baseconfigdir@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
-configdir = @configdir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
ms_librarian = @ms_librarian@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgconfigdir = @pkgconfigdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-templatedir = @templatedir@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-xmldir = @xmldir@
DOC2MAN = docbook2man
FC_VALIDATE_SRC = ${top_srcdir}/fc-validate
SGML = ${FC_VALIDATE_SRC}/fc-validate.sgml
-INCLUDES = -I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS)
+AM_CPPFLAGS = -I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS)
BUILT_MANS = fc-validate.1
@ENABLE_DOCS_TRUE@man_MANS = ${BUILT_MANS}
EXTRA_DIST = fc-validate.sgml $(BUILT_MANS)
fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
- while read p p1; do if test -f $$p || test -f $$p1; \
- then echo "$$p"; echo "$$p"; else :; fi; \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
done | \
- sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
- -e 's/$$/$(EXEEXT)/' `; \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(bindir)" && rm -f $$files
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
+
fc-validate$(EXEEXT): $(fc_validate_OBJECTS) $(fc_validate_DEPENDENCIES) $(EXTRA_fc_validate_DEPENDENCIES)
@rm -f fc-validate$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fc_validate_OBJECTS) $(fc_validate_LDADD) $(LIBS)
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
-cscopelist: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
- @list='$(MANS)'; if test -n "$$list"; then \
- list=`for p in $$list; do \
- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
- if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
- if test -n "$$list" && \
- grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
- echo "error: found man pages containing the 'missing help2man' replacement text:" >&2; \
- grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
- echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
- echo " typically 'make maintainer-clean' will remove them" >&2; \
- exit 1; \
- else :; fi; \
- else :; fi
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
.MAKE: install-am install-strip
-.PHONY: CTAGS GTAGS all all-am all-local check check-am clean \
- clean-binPROGRAMS clean-generic clean-libtool cscopelist ctags \
- distclean distclean-compile distclean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \
+ clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
+ ctags ctags-am distclean distclean-compile distclean-generic \
distclean-libtool distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-binPROGRAMS \
install-data install-data-am install-dvi install-dvi-am \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags uninstall uninstall-am \
+ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
uninstall-binPROGRAMS uninstall-man uninstall-man1
sysconfdir=@sysconfdir@
localstatedir=@localstatedir@
PACKAGE=@PACKAGE@
-confdir=@baseconfigdir@
+confdir=@BASECONFIGDIR@
cachedir=@fc_cachedir@
Name: Fontconfig
Description: Font configuration and customization library
Version: @VERSION@
+Requires: @PKGCONFIG_REQUIRES@
+Requires.private: @PKGCONFIG_REQUIRES_PRIVATELY@
Libs: -L${libdir} -lfontconfig
-Libs.private: @LIBXML2_LIBS@ @EXPAT_LIBS@ @FREETYPE_LIBS@ @ICONV_LIBS@
-Cflags: -I${includedir}
+Libs.private: @EXPAT_LIBS@ @FREETYPE_LIBS@ @ICONV_LIBS@ @LIBXML2_LIBS@
+Cflags: -I${includedir} @EXPAT_CFLAGS@ @FREETYPE_CFLAGS@ @ICONV_CFLAGS@ @LIBXML2_CFLAGS@
Summary: Font configuration and customization library
Name: fontconfig
-Version: 2.10.91
+Version: 2.11.93
Release: 1
License: MIT
Group: System Environment/Libraries
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@SET_MAKE@
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
- test $$am__dry = yes; \
- }
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
build_triplet = @build@
host_triplet = @host@
subdir = fontconfig
-DIST_COMMON = $(fontconfiginclude_HEADERS) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+ $(fontconfiginclude_HEADERS)
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_for_build.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \
+ $(top_srcdir)/m4/ax_cc_for_build.m4 \
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
$(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
}
am__installdirs = "$(DESTDIR)$(fontconfigincludedir)"
HEADERS = $(fontconfiginclude_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
FGREP = @FGREP@
FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
FREETYPE_LIBS = @FREETYPE_LIBS@
+GIT = @GIT@
+GPERF = @GPERF@
GREP = @GREP@
HASDOCBOOK = @HASDOCBOOK@
HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
+PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PTHREAD_CC = @PTHREAD_CC@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
PTHREAD_LIBS = @PTHREAD_LIBS@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RM = @RM@
SED = @SED@
am__tar = @am__tar@
am__untar = @am__untar@
ax_pthread_config = @ax_pthread_config@
-baseconfigdir = @baseconfigdir@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
-configdir = @configdir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
ms_librarian = @ms_librarian@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgconfigdir = @pkgconfigdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-templatedir = @templatedir@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-xmldir = @xmldir@
fontconfigincludedir = $(includedir)/fontconfig
fontconfig_headers = \
fontconfig.h \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(fontconfigincludedir)'; $(am__uninstall_files_from_dir)
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
-cscopelist: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
.MAKE: install-am install-strip
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libtool cscopelist ctags distclean distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-fontconfigincludeHEADERS install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags uninstall uninstall-am uninstall-fontconfigincludeHEADERS
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-libtool cscopelist-am ctags ctags-am distclean \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-fontconfigincludeHEADERS \
+ install-html install-html-am install-info install-info-am \
+ install-man install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am tags tags-am uninstall uninstall-am \
+ uninstall-fontconfigincludeHEADERS
-include $(top_srcdir)/git.mk
__o__ = va_arg (va, const char *); \
if (!__o__) \
break; \
- __v__.type = va_arg (va, FcType); \
+ __v__.type = va_arg (va, int); \
switch (__v__.type) { \
+ case FcTypeUnknown: \
case FcTypeVoid: \
goto _FcPatternVapBuild_bail1; \
case FcTypeInteger: \
case FcTypeLangSet: \
__v__.u.l = va_arg (va, const FcLangSet *); \
break; \
+ case FcTypeRange: \
+ __v__.u.r = va_arg (va, const FcRange *); \
+ break; \
} \
if (!FcPatternAdd (__p__, __o__, __v__, FcTrue)) \
goto _FcPatternVapBuild_bail1; \
*/
#define FC_MAJOR 2
-#define FC_MINOR 10
-#define FC_REVISION 91
+#define FC_MINOR 11
+#define FC_REVISION 93
#define FC_VERSION ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION))
* it means multiple copies of the font information.
*/
-#define FC_CACHE_VERSION "3"
+#define FC_CACHE_VERSION "5"
#define FcTrue 1
#define FcFalse 0
#define FC_STYLE "style" /* String */
#define FC_SLANT "slant" /* Int */
#define FC_WEIGHT "weight" /* Int */
-#define FC_SIZE "size" /* Double */
+#define FC_SIZE "size" /* Range (double) */
#define FC_ASPECT "aspect" /* Double */
#define FC_PIXEL_SIZE "pixelsize" /* Double */
#define FC_SPACING "spacing" /* Int */
#define FC_FILE "file" /* String */
#define FC_INDEX "index" /* Int */
#define FC_FT_FACE "ftface" /* FT_Face */
-#define FC_RASTERIZER "rasterizer" /* String */
+#define FC_RASTERIZER "rasterizer" /* String (deprecated) */
#define FC_OUTLINE "outline" /* Bool */
#define FC_SCALABLE "scalable" /* Bool */
+#define FC_COLOR "color" /* Bool */
#define FC_SCALE "scale" /* double */
#define FC_DPI "dpi" /* double */
#define FC_RGBA "rgba" /* Int */
#define FC_EMBEDDED_BITMAP "embeddedbitmap" /* Bool - true to enable embedded bitmaps */
#define FC_DECORATIVE "decorative" /* Bool - true if style is a decorative variant */
#define FC_LCD_FILTER "lcdfilter" /* Int */
+#define FC_FONT_FEATURES "fontfeatures" /* String */
#define FC_NAMELANG "namelang" /* String RFC 3866 langs */
+#define FC_PRGNAME "prgname" /* String */
+#define FC_HASH "hash" /* String (deprecated) */
+#define FC_POSTSCRIPT_NAME "postscriptname" /* String */
#define FC_CACHE_SUFFIX ".cache-" FC_CACHE_VERSION
#define FC_DIR_CACHE_FILE "fonts.cache-" FC_CACHE_VERSION
#define FC_WEIGHT_EXTRALIGHT 40
#define FC_WEIGHT_ULTRALIGHT FC_WEIGHT_EXTRALIGHT
#define FC_WEIGHT_LIGHT 50
+#define FC_WEIGHT_DEMILIGHT 55
+#define FC_WEIGHT_SEMILIGHT FC_WEIGHT_DEMILIGHT
#define FC_WEIGHT_BOOK 75
#define FC_WEIGHT_REGULAR 80
#define FC_WEIGHT_NORMAL FC_WEIGHT_REGULAR
#define FC_LCD_LEGACY 3
typedef enum _FcType {
+ FcTypeUnknown = -1,
FcTypeVoid,
FcTypeInteger,
FcTypeDouble,
FcTypeMatrix,
FcTypeCharSet,
FcTypeFTFace,
- FcTypeLangSet
+ FcTypeLangSet,
+ FcTypeRange
} FcType;
typedef struct _FcMatrix {
typedef struct _FcLangSet FcLangSet;
+typedef struct _FcRange FcRange;
+
typedef struct _FcValue {
FcType type;
union {
const FcCharSet *c;
void *f;
const FcLangSet *l;
+ const FcRange *r;
} u;
} FcValue;
FcPattern *p,
FcMatchKind kind);
+FcPublic const FcChar8 *
+FcConfigGetSysRoot (const FcConfig *config);
+
+FcPublic void
+FcConfigSetSysRoot (FcConfig *config,
+ const FcChar8 *sysroot);
+
/* fccharset.c */
FcPublic FcCharSet*
FcCharSetCreate (void);
FcPublic FcCache *
FcDirCacheLoad (const FcChar8 *dir, FcConfig *config, FcChar8 **cache_file);
+
+FcPublic FcCache *
+FcDirCacheRescan (const FcChar8 *dir, FcConfig *config);
FcPublic FcCache *
FcDirCacheRead (const FcChar8 *dir, FcBool force, FcConfig *config);
FcPublic FcBool
FcPatternAddLangSet (FcPattern *p, const char *object, const FcLangSet *ls);
+FcPublic FcBool
+FcPatternAddRange (FcPattern *p, const char *object, const FcRange *r);
+
FcPublic FcResult
FcPatternGetInteger (const FcPattern *p, const char *object, int n, int *i);
FcPublic FcResult
FcPatternGetLangSet (const FcPattern *p, const char *object, int n, FcLangSet **ls);
+FcPublic FcResult
+FcPatternGetRange (const FcPattern *p, const char *object, int id, FcRange **r);
+
FcPublic FcPattern *
FcPatternVaBuild (FcPattern *p, va_list va);
FcPublic FcChar8 *
FcPatternFormat (FcPattern *pat, const FcChar8 *format);
+/* fcrange.c */
+FcPublic FcRange *
+FcRangeCreateDouble (double begin, double end);
+
+FcPublic FcRange *
+FcRangeCreateInteger (FcChar32 begin, FcChar32 end);
+
+FcPublic void
+FcRangeDestroy (FcRange *range);
+
+FcPublic FcRange *
+FcRangeCopy (const FcRange *r);
+
+FcPublic FcBool
+FcRangeGetDouble(const FcRange *range, double *begin, double *end);
+
+/* fcweight.c */
+
+FcPublic int
+FcWeightFromOpenType (int ot_weight);
+
+FcPublic int
+FcWeightToOpenType (int fc_weight);
+
/* fcstr.c */
FcPublic FcChar8 *
FcPublic FcStrList *
FcStrListCreate (FcStrSet *set);
+FcPublic void
+FcStrListFirst (FcStrList *list);
+
FcPublic FcChar8 *
FcStrListNext (FcStrList *list);
<config>
<!--
- These are the default Unicode chars that are expected to be blank
- in fonts. All other blank chars are assumed to be broken and
- won't appear in the resulting charsets
- -->
- <blank>
- <int>0x0020</int> <!-- SPACE -->
- <int>0x00A0</int> <!-- NO-BREAK SPACE -->
- <int>0x00AD</int> <!-- SOFT HYPHEN -->
- <int>0x034F</int> <!-- COMBINING GRAPHEME JOINER -->
- <int>0x0600</int> <!-- ARABIC NUMBER SIGN -->
- <int>0x0601</int> <!-- ARABIC SIGN SANAH -->
- <int>0x0602</int> <!-- ARABIC FOOTNOTE MARKER -->
- <int>0x0603</int> <!-- ARABIC SIGN SAFHA -->
- <int>0x06DD</int> <!-- ARABIC END OF AYAH -->
- <int>0x070F</int> <!-- SYRIAC ABBREVIATION MARK -->
- <int>0x115F</int> <!-- HANGUL CHOSEONG FILLER -->
- <int>0x1160</int> <!-- HANGUL JUNGSEONG FILLER -->
- <int>0x1680</int> <!-- OGHAM SPACE MARK -->
- <int>0x17B4</int> <!-- KHMER VOWEL INHERENT AQ -->
- <int>0x17B5</int> <!-- KHMER VOWEL INHERENT AA -->
- <int>0x180E</int> <!-- MONGOLIAN VOWEL SEPARATOR -->
- <int>0x2000</int> <!-- EN QUAD -->
- <int>0x2001</int> <!-- EM QUAD -->
- <int>0x2002</int> <!-- EN SPACE -->
- <int>0x2003</int> <!-- EM SPACE -->
- <int>0x2004</int> <!-- THREE-PER-EM SPACE -->
- <int>0x2005</int> <!-- FOUR-PER-EM SPACE -->
- <int>0x2006</int> <!-- SIX-PER-EM SPACE -->
- <int>0x2007</int> <!-- FIGURE SPACE -->
- <int>0x2008</int> <!-- PUNCTUATION SPACE -->
- <int>0x2009</int> <!-- THIN SPACE -->
- <int>0x200A</int> <!-- HAIR SPACE -->
- <int>0x200B</int> <!-- ZERO WIDTH SPACE -->
- <int>0x200C</int> <!-- ZERO WIDTH NON-JOINER -->
- <int>0x200D</int> <!-- ZERO WIDTH JOINER -->
- <int>0x200E</int> <!-- LEFT-TO-RIGHT MARK -->
- <int>0x200F</int> <!-- RIGHT-TO-LEFT MARK -->
- <int>0x2028</int> <!-- LINE SEPARATOR -->
- <int>0x2029</int> <!-- PARAGRAPH SEPARATOR -->
- <int>0x202A</int> <!-- LEFT-TO-RIGHT EMBEDDING -->
- <int>0x202B</int> <!-- RIGHT-TO-LEFT EMBEDDING -->
- <int>0x202C</int> <!-- POP DIRECTIONAL FORMATTING -->
- <int>0x202D</int> <!-- LEFT-TO-RIGHT OVERRIDE -->
- <int>0x202E</int> <!-- RIGHT-TO-LEFT OVERRIDE -->
- <int>0x202F</int> <!-- NARROW NO-BREAK SPACE -->
- <int>0x205F</int> <!-- MEDIUM MATHEMATICAL SPACE -->
- <int>0x2060</int> <!-- WORD JOINER -->
- <int>0x2061</int> <!-- FUNCTION APPLICATION -->
- <int>0x2062</int> <!-- INVISIBLE TIMES -->
- <int>0x2063</int> <!-- INVISIBLE SEPARATOR -->
- <int>0x206A</int> <!-- INHIBIT SYMMETRIC SWAPPING -->
- <int>0x206B</int> <!-- ACTIVATE SYMMETRIC SWAPPING -->
- <int>0x206C</int> <!-- INHIBIT ARABIC FORM SHAPING -->
- <int>0x206D</int> <!-- ACTIVATE ARABIC FORM SHAPING -->
- <int>0x206E</int> <!-- NATIONAL DIGIT SHAPES -->
- <int>0x206F</int> <!-- NOMINAL DIGIT SHAPES -->
- <int>0x2800</int> <!-- BRAILLE PATTERN BLANK -->
- <int>0x3000</int> <!-- IDEOGRAPHIC SPACE -->
- <int>0x3164</int> <!-- HANGUL FILLER -->
- <int>0xFEFF</int> <!-- ZERO WIDTH NO-BREAK SPACE -->
- <int>0xFFA0</int> <!-- HALFWIDTH HANGUL FILLER -->
- <int>0xFFF9</int> <!-- INTERLINEAR ANNOTATION ANCHOR -->
- <int>0xFFFA</int> <!-- INTERLINEAR ANNOTATION SEPARATOR -->
- <int>0xFFFB</int> <!-- INTERLINEAR ANNOTATION TERMINATOR -->
- </blank>
-<!--
Rescan configuration every 30 seconds when FcFontSetList is called
-->
<rescan>
if 'target' is 'font', execute the match on the result of a font
selection.
-->
-<!ELEMENT match (test*, edit*)>
+<!ELEMENT match (test|edit)+>
<!ATTLIST match
target (pattern|font|scan) "pattern">
<!ELEMENT edit (%expr;)*>
<!ATTLIST edit
name CDATA #REQUIRED
- mode (assign|assign_replace|prepend|append|prepend_first|append_last) "assign"
+ mode (assign|assign_replace|prepend|append|prepend_first|append_last|delete|delete_all) "assign"
binding (weak|strong|same) "weak">
<!--
--- /dev/null
+dnl @synopsis AC_CHECK_SYMBOL(SYMBOL, HEADER... [,ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]])
+dnl
+dnl a wrapper around AC_EGREP_HEADER the shellvar $ac_found will hold
+dnl the HEADER-name that had been containing the symbol. This value is
+dnl shown to the user.
+dnl
+dnl @category C
+dnl @author Guido U. Draheim <guidod@gmx.de>
+dnl @version 2006-10-13
+dnl @license GPLWithACException
+
+AC_DEFUN([AC_CHECK_SYMBOL],
+[AC_MSG_CHECKING([for $1 in $2])
+AC_CACHE_VAL(ac_cv_func_$1,
+[AC_REQUIRE_CPP()dnl
+changequote(, )dnl
+symbol="[^a-zA-Z_0-9]$1[^a-zA-Z_0-9]"
+changequote([, ])dnl
+ac_found=no
+for ac_header in $2 ; do
+ ac_safe=`echo "$ac_header" | sed 'y%./+-%__p_%' `
+ if test $ac_found != "yes" ; then
+ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ AC_EGREP_HEADER( $symbol, $ac_header, [ac_found="$ac_header"] )
+ fi
+ fi
+done
+if test "$ac_found" != "no" ; then
+ AC_MSG_RESULT($ac_found)
+ ifelse([$3], , :, [$3])
+else
+ AC_MSG_RESULT(no)
+ ifelse([$4], , , [$4
+])dnl
+fi
+])])
+
+dnl AC_CHECK_SYMBOLS( symbol..., header... [, action-if-found [, action-if-not-found]])
+AC_DEFUN([AC_CHECK_SYMBOLS],
+[for ac_func in $1
+do
+P4_CHECK_SYMBOL($ac_func, $2,
+[changequote(, )dnl
+ ac_tr_func=HAVE_`echo $ac_func | sed -e 'y:abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:' -e 's:[[^A-Z0-9]]:_:'`
+changequote([, ])dnl
+ AC_DEFINE_UNQUOTED($ac_tr_func) $2], $3)dnl
+done
+])
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
-#serial 18
+#serial 21
AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
AC_DEFUN([AX_PTHREAD], [
save_LIBS="$LIBS"
LIBS="$PTHREAD_LIBS $LIBS"
AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
- AC_TRY_LINK_FUNC(pthread_join, ax_pthread_ok=yes)
- AC_MSG_RESULT($ax_pthread_ok)
+ AC_TRY_LINK_FUNC([pthread_join], [ax_pthread_ok=yes])
+ AC_MSG_RESULT([$ax_pthread_ok])
if test x"$ax_pthread_ok" = xno; then
PTHREAD_LIBS=""
PTHREAD_CFLAGS=""
darwin*)
ax_pthread_flags="-pthread $ax_pthread_flags"
;;
+ netbsd*)
+ # use libc stubs, don't link against libpthread, to allow
+ # dynamic loading
+ ax_pthread_flags=""
+ ;;
esac
+# Clang doesn't consider unrecognized options an error unless we specify
+# -Werror. We throw in some extra Clang-specific options to ensure that
+# this doesn't happen for GCC, which also accepts -Werror.
+
+AC_MSG_CHECKING([if compiler needs -Werror to reject unknown flags])
+save_CFLAGS="$CFLAGS"
+ax_pthread_extra_flags="-Werror"
+CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument"
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int foo(void);],[foo()])],
+ [AC_MSG_RESULT([yes])],
+ [ax_pthread_extra_flags=
+ AC_MSG_RESULT([no])])
+CFLAGS="$save_CFLAGS"
+
if test x"$ax_pthread_ok" = xno; then
for flag in $ax_pthread_flags; do
;;
pthread-config)
- AC_CHECK_PROG(ax_pthread_config, pthread-config, yes, no)
+ AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no])
if test x"$ax_pthread_config" = xno; then continue; fi
PTHREAD_CFLAGS="`pthread-config --cflags`"
PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
save_LIBS="$LIBS"
save_CFLAGS="$CFLAGS"
LIBS="$PTHREAD_LIBS $LIBS"
- CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags"
# Check for various functions. We must include pthread.h,
# since some functions may be macros. (On the Sequent, we
LIBS="$save_LIBS"
CFLAGS="$save_CFLAGS"
- AC_MSG_RESULT($ax_pthread_ok)
+ AC_MSG_RESULT([$ax_pthread_ok])
if test "x$ax_pthread_ok" = xyes; then
break;
fi
[attr_name=$attr; break],
[])
done
- AC_MSG_RESULT($attr_name)
+ AC_MSG_RESULT([$attr_name])
if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
- AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name,
+ AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE], [$attr_name],
[Define to necessary symbol if this constant
uses a non-standard name on your system.])
fi
if test "$GCC" = "yes"; then
flag="-D_REENTRANT"
else
+ # TODO: What about Clang on Solaris?
flag="-mt -D_REENTRANT"
fi
;;
esac
- AC_MSG_RESULT(${flag})
+ AC_MSG_RESULT([$flag])
if test "x$flag" != xno; then
PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
fi
AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
- ax_cv_PTHREAD_PRIO_INHERIT, [
- AC_LINK_IFELSE([
- AC_LANG_PROGRAM([[#include <pthread.h>]], [[int i = PTHREAD_PRIO_INHERIT;]])],
+ [ax_cv_PTHREAD_PRIO_INHERIT], [
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]],
+ [[int i = PTHREAD_PRIO_INHERIT;]])],
[ax_cv_PTHREAD_PRIO_INHERIT=yes],
[ax_cv_PTHREAD_PRIO_INHERIT=no])
])
AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"],
- AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.]))
+ [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])])
LIBS="$save_LIBS"
CFLAGS="$save_CFLAGS"
- # More AIX lossage: must compile with xlc_r or cc_r
- if test x"$GCC" != xyes; then
- AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC})
- else
- PTHREAD_CC=$CC
+ # More AIX lossage: compile with *_r variant
+ if test "x$GCC" != xyes; then
+ case $host_os in
+ aix*)
+ AS_CASE(["x/$CC"],
+ [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6],
+ [#handle absolute path differently from PATH based program lookup
+ AS_CASE(["x$CC"],
+ [x/*],
+ [AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])],
+ [AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])])
+ ;;
+ esac
fi
-else
- PTHREAD_CC="$CC"
fi
-AC_SUBST(PTHREAD_LIBS)
-AC_SUBST(PTHREAD_CFLAGS)
-AC_SUBST(PTHREAD_CC)
+test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
+
+AC_SUBST([PTHREAD_LIBS])
+AC_SUBST([PTHREAD_CFLAGS])
+AC_SUBST([PTHREAD_CC])
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
if test x"$ax_pthread_ok" = xyes; then
- ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1])
+ ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1])
:
else
ax_pthread_ok=no
rm -rf conftest*
;;
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
# Find out which ABI we are using.
echo 'int i;' > conftest.$ac_ext
x86_64-*linux*)
LD="${LD-ld} -m elf_i386"
;;
- ppc64-*linux*|powerpc64-*linux*)
+ powerpc64le-*linux*)
+ LD="${LD-ld} -m elf32lppclinux"
+ ;;
+ powerpc64-*linux*)
LD="${LD-ld} -m elf32ppclinux"
;;
s390x-*linux*)
x86_64-*linux*)
LD="${LD-ld} -m elf_x86_64"
;;
- ppc*-*linux*|powerpc*-*linux*)
+ powerpcle-*linux*)
+ LD="${LD-ld} -m elf64lppc"
+ ;;
+ powerpc-*linux*)
LD="${LD-ld} -m elf64ppc"
;;
s390*-*linux*|s390*-*tpf*)
--- /dev/null
+# 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
#! /bin/sh
-# Common stub for a few missing GNU programs while installing.
+# Common wrapper for a few potentially missing GNU programs.
-scriptversion=2012-01-06.18; # UTC
+scriptversion=2013-10-28.13; # UTC
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
-# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# 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
exit 1
fi
-run=:
-sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
-sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
-
-# In the cases where this matters, 'missing' is being run in the
-# srcdir already.
-if test -f configure.ac; then
- configure_ac=configure.ac
-else
- configure_ac=configure.in
-fi
+case $1 in
-msg="missing on your system"
+ --is-lightweight)
+ # Used by our autoconf macros to check whether the available missing
+ # script is modern enough.
+ exit 0
+ ;;
-case $1 in
---run)
- # Try to run requested program, and just exit if it succeeds.
- run=
- shift
- "$@" && exit 0
- # Exit code 63 means version mismatch. This often happens
- # when the user try to use an ancient version of a tool on
- # a file that requires a minimum version. In this case we
- # we should proceed has if the program had been absent, or
- # if --run hadn't been passed.
- if test $? = 63; then
- run=:
- msg="probably too old"
- fi
- ;;
+ --run)
+ # Back-compat with the calling convention used by older automake.
+ shift
+ ;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
-Handle 'PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
- --run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
- aclocal touch file 'aclocal.m4'
- autoconf touch file 'configure'
- autoheader touch file 'config.h.in'
- autom4te touch the output file, or create a stub one
- automake touch all 'Makefile.in' files
- bison create 'y.tab.[ch]', if possible, from existing .[ch]
- flex create 'lex.yy.c', if possible, from existing .c
- help2man touch the output file
- lex create 'lex.yy.c', if possible, from existing .c
- makeinfo touch the output file
- yacc create 'y.tab.[ch]', if possible, from existing .[ch]
+ aclocal autoconf autoheader autom4te automake makeinfo
+ bison yacc flex lex help2man
Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
'g' are ignored when checking the name.
;;
-*)
- echo 1>&2 "$0: Unknown '$1' option"
+ echo 1>&2 "$0: unknown '$1' option"
echo 1>&2 "Try '$0 --help' for more information"
exit 1
;;
esac
-# normalize program name to check for.
-program=`echo "$1" | sed '
- s/^gnu-//; t
- s/^gnu//; t
- s/^g//; t'`
-
-# Now exit if we have it, but it failed. Also exit now if we
-# don't have it and --version was passed (most likely to detect
-# the program). This is about non-GNU programs, so use $1 not
-# $program.
-case $1 in
- lex*|yacc*)
- # Not GNU programs, they don't have --version.
- ;;
-
- *)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
- # Could not run --version or --help. This is probably someone
- # running '$TOOL --version' or '$TOOL --help' to check whether
- # $TOOL exists and not knowing $TOOL uses missing.
- exit 1
- fi
- ;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case $program in
- aclocal*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified 'acinclude.m4' or '${configure_ac}'. You might want
- to install the Automake and Perl packages. Grab them from
- any GNU archive site."
- touch aclocal.m4
- ;;
-
- autoconf*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified '${configure_ac}'. You might want to install the
- Autoconf and GNU m4 packages. Grab them from any GNU
- archive site."
- touch configure
- ;;
-
- autoheader*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified 'acconfig.h' or '${configure_ac}'. You might want
- to install the Autoconf and GNU m4 packages. Grab them
- from any GNU archive site."
- files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
- test -z "$files" && files="config.h"
- touch_files=
- for f in $files; do
- case $f in
- *:*) touch_files="$touch_files "`echo "$f" |
- sed -e 's/^[^:]*://' -e 's/:.*//'`;;
- *) touch_files="$touch_files $f.in";;
- esac
- done
- touch $touch_files
- ;;
-
- automake*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified 'Makefile.am', 'acinclude.m4' or '${configure_ac}'.
- You might want to install the Automake and Perl packages.
- Grab them from any GNU archive site."
- find . -type f -name Makefile.am -print |
- sed 's/\.am$/.in/' |
- while read f; do touch "$f"; done
- ;;
-
- autom4te*)
- echo 1>&2 "\
-WARNING: '$1' is needed, but is $msg.
- You might have modified some files without having the
- proper tools for further handling them.
- You can get '$1' as part of Autoconf from any GNU
- archive site."
-
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo "#! /bin/sh"
- echo "# Created by GNU Automake missing as a replacement of"
- echo "# $ $@"
- echo "exit 0"
- chmod +x $file
- exit 1
- fi
- ;;
-
- bison*|yacc*)
- echo 1>&2 "\
-WARNING: '$1' $msg. You should only need it if
- you modified a '.y' file. You may need the Bison package
- in order for those modifications to take effect. You can get
- Bison from any GNU archive site."
- rm -f y.tab.c y.tab.h
- if test $# -ne 1; then
- eval LASTARG=\${$#}
- case $LASTARG in
- *.y)
- SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" y.tab.c
- fi
- SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" y.tab.h
- fi
- ;;
- esac
- fi
- if test ! -f y.tab.h; then
- echo >y.tab.h
- fi
- if test ! -f y.tab.c; then
- echo 'main() { return 0; }' >y.tab.c
- fi
- ;;
-
- lex*|flex*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified a '.l' file. You may need the Flex package
- in order for those modifications to take effect. You can get
- Flex from any GNU archive site."
- rm -f lex.yy.c
- if test $# -ne 1; then
- eval LASTARG=\${$#}
- case $LASTARG in
- *.l)
- SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" lex.yy.c
- fi
- ;;
- esac
- fi
- if test ! -f lex.yy.c; then
- echo 'main() { return 0; }' >lex.yy.c
- fi
- ;;
-
- help2man*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified a dependency of a manual page. You may need the
- Help2man package in order for those modifications to take
- effect. You can get Help2man from any GNU archive site."
-
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo ".ab help2man is required to generate this page"
- exit $?
- fi
- ;;
-
- makeinfo*)
- echo 1>&2 "\
-WARNING: '$1' is $msg. You should only need it if
- you modified a '.texi' or '.texinfo' file, or any other file
- indirectly affecting the aspect of the manual. The spurious
- call might also be the consequence of using a buggy 'make' (AIX,
- DU, IRIX). You might want to install the Texinfo package or
- the GNU make package. Grab either from any GNU archive site."
- # The file to touch is that specified with -o ...
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -z "$file"; then
- # ... or it is the one specified with @setfilename ...
- infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '
- /^@setfilename/{
- s/.* \([^ ]*\) *$/\1/
- p
- q
- }' $infile`
- # ... or it is derived from the source name (dir/f.texi becomes f.info)
- test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
- fi
- # If the file does not exist, the user really needs makeinfo;
- # let's fail without touching anything.
- test -f $file || exit 1
- touch $file
- ;;
+# Run the given program, remember its exit status.
+"$@"; st=$?
+
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
+
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch. This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+ msg="probably too old"
+elif test $st -eq 127; then
+ # Program was missing.
+ msg="missing on your system"
+else
+ # Program was found and executed, but failed. Give up.
+ exit $st
+fi
- *)
- echo 1>&2 "\
-WARNING: '$1' is needed, and is $msg.
- You might have modified some files without having the
- proper tools for further handling them. Check the 'README' file,
- it often tells you about the needed prerequisites for installing
- this package. You may also peek at any GNU archive site, in case
- some other package would contain this missing '$1' program."
- exit 1
+perl_URL=http://www.perl.org/
+flex_URL=http://flex.sourceforge.net/
+gnu_software_URL=http://www.gnu.org/software
+
+program_details ()
+{
+ case $1 in
+ aclocal|automake)
+ echo "The '$1' program is part of the GNU Automake package:"
+ echo "<$gnu_software_URL/automake>"
+ echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/autoconf>"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ autoconf|autom4te|autoheader)
+ echo "The '$1' program is part of the GNU Autoconf package:"
+ echo "<$gnu_software_URL/autoconf/>"
+ echo "It also requires GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ esac
+}
+
+give_advice ()
+{
+ # Normalize program name to check for.
+ normalized_program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
+ printf '%s\n' "'$1' is $msg."
+
+ configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+ case $normalized_program in
+ autoconf*)
+ echo "You should only need it if you modified 'configure.ac',"
+ echo "or m4 files included by it."
+ program_details 'autoconf'
+ ;;
+ autoheader*)
+ echo "You should only need it if you modified 'acconfig.h' or"
+ echo "$configure_deps."
+ program_details 'autoheader'
+ ;;
+ automake*)
+ echo "You should only need it if you modified 'Makefile.am' or"
+ echo "$configure_deps."
+ program_details 'automake'
+ ;;
+ aclocal*)
+ echo "You should only need it if you modified 'acinclude.m4' or"
+ echo "$configure_deps."
+ program_details 'aclocal'
+ ;;
+ autom4te*)
+ echo "You might have modified some maintainer files that require"
+ echo "the 'autom4te' program to be rebuilt."
+ program_details 'autom4te'
+ ;;
+ bison*|yacc*)
+ echo "You should only need it if you modified a '.y' file."
+ echo "You may want to install the GNU Bison package:"
+ echo "<$gnu_software_URL/bison/>"
+ ;;
+ lex*|flex*)
+ echo "You should only need it if you modified a '.l' file."
+ echo "You may want to install the Fast Lexical Analyzer package:"
+ echo "<$flex_URL>"
+ ;;
+ help2man*)
+ echo "You should only need it if you modified a dependency" \
+ "of a man page."
+ echo "You may want to install the GNU Help2man package:"
+ echo "<$gnu_software_URL/help2man/>"
;;
-esac
-
-exit 0
+ makeinfo*)
+ echo "You should only need it if you modified a '.texi' file, or"
+ echo "any other file indirectly affecting the aspect of the manual."
+ echo "You might want to install the Texinfo package:"
+ echo "<$gnu_software_URL/texinfo/>"
+ echo "The spurious makeinfo call might also be the consequence of"
+ echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+ echo "want to install GNU make:"
+ echo "<$gnu_software_URL/make/>"
+ ;;
+ *)
+ echo "You might have modified some files without having the proper"
+ echo "tools for further handling them. Check the 'README' file, it"
+ echo "often tells you about the needed prerequisites for installing"
+ echo "this package. You may also peek at any GNU archive site, in"
+ echo "case some other package contains this missing '$1' program."
+ ;;
+ esac
+}
+
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+ -e '2,$s/^/ /' >&2
+
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# gcc import library install/uninstall
-install-libtool-import-lib:
- $(INSTALL) .libs/libfontconfig.dll.a $(DESTDIR)$(libdir)
+install-libtool-import-lib: libfontconfig.la
+ $(MKDIR_P) $(DESTDIR)$(libdir)
+ $(INSTALL) .libs/libfontconfig.dll.a $(DESTDIR)$(libdir)/libfontconfig.dll.a
$(INSTALL) fontconfig.def $(DESTDIR)$(libdir)/fontconfig.def
uninstall-libtool-import-lib:
endif
-INCLUDES = \
+AM_CPPFLAGS = \
-I$(top_srcdir) \
-I$(top_srcdir)/src \
$(FREETYPE_CFLAGS) \
mv -f $@.tmp $@ || ( $(RM) $@.tmp && false )
fcobjshash.h: fcobjshash.gperf
- $(AM_V_GEN) $(top_srcdir)/missing --run gperf -m 100 $< > $@.tmp && \
+ $(AM_V_GEN) $(GPERF) -m 100 $< > $@.tmp && \
mv -f $@.tmp $@ || ( $(RM) $@.tmp && false )
EXTRA_DIST += \
fcobjs.h \
fcobjshash.h \
fcpat.c \
+ fcrange.c \
fcserialize.c \
fcstat.c \
fcstr.c \
+ fcweight.c \
fcwindows.h \
fcxml.c \
ftglue.h \
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
- test $$am__dry = yes; \
- }
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
host_triplet = @host@
noinst_PROGRAMS = fcarch$(EXEEXT)
subdir = src
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in $(top_srcdir)/depcomp
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+ $(top_srcdir)/depcomp $(noinst_HEADERS)
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_for_build.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \
+ $(top_srcdir)/m4/ax_cc_for_build.m4 \
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
$(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
fccfg.lo fccharset.lo fccompat.lo fcdbg.lo fcdefault.lo \
fcdir.lo fcformat.lo fcfreetype.lo fcfs.lo fcinit.lo fclang.lo \
fclist.lo fcmatch.lo fcmatrix.lo fcname.lo fcobjs.lo fcpat.lo \
- fcserialize.lo fcstat.lo fcstr.lo fcxml.lo ftglue.lo
+ fcrange.lo fcserialize.lo fcstat.lo fcstr.lo fcweight.lo \
+ fcxml.lo ftglue.lo
libfontconfig_la_OBJECTS = $(am_libfontconfig_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
esac
DATA = $(noinst_DATA)
HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
FGREP = @FGREP@
FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
FREETYPE_LIBS = @FREETYPE_LIBS@
+GIT = @GIT@
+GPERF = @GPERF@
GREP = @GREP@
HASDOCBOOK = @HASDOCBOOK@
HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
+PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PTHREAD_CC = @PTHREAD_CC@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
PTHREAD_LIBS = @PTHREAD_LIBS@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RM = @RM@
SED = @SED@
am__tar = @am__tar@
am__untar = @am__untar@
ax_pthread_config = @ax_pthread_config@
-baseconfigdir = @baseconfigdir@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
-configdir = @configdir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
ms_librarian = @ms_librarian@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgconfigdir = @pkgconfigdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-templatedir = @templatedir@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-xmldir = @xmldir@
EXTRA_DIST = makealias fcobjshash.gperf.h fcobjshash.gperf \
fcobjshash.h
@OS_WIN32_TRUE@export_symbols = -export-symbols fontconfig.def
# Microsoft import library install/uninstall
@MS_LIB_AVAILABLE_TRUE@noinst_DATA = fontconfig.lib
-INCLUDES = \
+AM_CPPFLAGS = \
-I$(top_srcdir) \
-I$(top_srcdir)/src \
$(FREETYPE_CFLAGS) \
fcobjs.h \
fcobjshash.h \
fcpat.c \
+ fcrange.c \
fcserialize.c \
fcstat.c \
fcstr.c \
+ fcweight.c \
fcwindows.h \
fcxml.c \
ftglue.h \
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
+
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL)
@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
echo rm -f $${locs}; \
rm -f $${locs}; \
}
+
libfontconfig.la: $(libfontconfig_la_OBJECTS) $(libfontconfig_la_DEPENDENCIES) $(EXTRA_libfontconfig_la_DEPENDENCIES)
$(AM_V_CCLD)$(libfontconfig_la_LINK) -rpath $(libdir) $(libfontconfig_la_OBJECTS) $(libfontconfig_la_LIBADD) $(LIBS)
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
+
fcarch$(EXEEXT): $(fcarch_OBJECTS) $(fcarch_DEPENDENCIES) $(EXTRA_fcarch_DEPENDENCIES)
@rm -f fcarch$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fcarch_OBJECTS) $(fcarch_LDADD) $(LIBS)
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcname.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcobjs.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcpat.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcrange.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcserialize.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcstat.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcstr.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcweight.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcxml.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftglue.Plo@am__quote@
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
clean-libtool:
-rm -rf .libs _libs
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
-cscopelist: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
.MAKE: all check install install-am install-strip
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
clean-libLTLIBRARIES clean-libtool clean-noinstPROGRAMS \
- cscopelist ctags distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-data-local install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-libLTLIBRARIES \
- install-man install-pdf install-pdf-am install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
- uninstall-am uninstall-libLTLIBRARIES uninstall-local
+ cscopelist-am ctags ctags-am distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-data-local install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am \
+ install-libLTLIBRARIES install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES \
+ uninstall-local
# gcc import library install/uninstall
-@OS_WIN32_TRUE@install-libtool-import-lib:
-@OS_WIN32_TRUE@ $(INSTALL) .libs/libfontconfig.dll.a $(DESTDIR)$(libdir)
+@OS_WIN32_TRUE@install-libtool-import-lib: libfontconfig.la
+@OS_WIN32_TRUE@ $(MKDIR_P) $(DESTDIR)$(libdir)
+@OS_WIN32_TRUE@ $(INSTALL) .libs/libfontconfig.dll.a $(DESTDIR)$(libdir)/libfontconfig.dll.a
@OS_WIN32_TRUE@ $(INSTALL) fontconfig.def $(DESTDIR)$(libdir)/fontconfig.def
@OS_WIN32_TRUE@uninstall-libtool-import-lib:
mv -f $@.tmp $@ || ( $(RM) $@.tmp && false )
fcobjshash.h: fcobjshash.gperf
- $(AM_V_GEN) $(top_srcdir)/missing --run gperf -m 100 $< > $@.tmp && \
+ $(AM_V_GEN) $(GPERF) -m 100 $< > $@.tmp && \
mv -f $@.tmp $@ || ( $(RM) $@.tmp && false )
@ENABLE_SHARED_TRUE@install-data-local: install-ms-import-lib install-libtool-import-lib
* PERFORMANCE OF THIS SOFTWARE.
*/
-#include <stdio.h>
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
#include "fcint.h"
#include "fcarch.h"
+#include <stdio.h>
FC_ASSERT_STATIC (1 == sizeof (char));
FC_ASSERT_STATIC (2 == sizeof (FcChar16));
FC_ASSERT_STATIC (SIZEOF_VOID_P == sizeof (FcCharLeaf **));
FC_ASSERT_STATIC (SIZEOF_VOID_P == sizeof (FcChar16 *));
-FC_ASSERT_STATIC (0x08 + 1*FC_MAX(4,ALIGNOF_DOUBLE) == sizeof (FcValue));
+FC_ASSERT_STATIC (0x08 + 1*FC_MAX(SIZEOF_VOID_P,ALIGNOF_DOUBLE) == sizeof (FcValue));
FC_ASSERT_STATIC (0x00 + 2*SIZEOF_VOID_P == sizeof (FcPatternElt));
FC_ASSERT_STATIC (0x08 + 2*SIZEOF_VOID_P == sizeof (FcPattern));
FC_ASSERT_STATIC (0x08 + 2*SIZEOF_VOID_P == sizeof (FcCharSet));
* and on 32bit ones, whether double is aligned to one word or two words.
* Those result in the 6 formats listed below.
*
- * If any of the assertion errors in fccache.c fail, you need to add a new
+ * If any of the assertion errors in fcarch.c fail, you need to add a new
* architecture. Contact the fontconfig mailing list in that case.
*
* name endianness pointer-size double-alignment
return FcFalse;
}
ret = link ((char *) atomic->tmp, (char *) atomic->lck);
- if (ret < 0 && errno == EPERM)
+ if (ret < 0 && (errno == EPERM || errno == ENOTSUP))
{
/* the filesystem where atomic->lck points to may not supports
* the hard link. so better try to fallback
#include "fcwindows.h"
-/* mingw32 does not have MemoryBarrier.
- * MemoryBarrier may be defined as a macro or a function.
- * Just make a failsafe version for ourselves. */
-#ifdef MemoryBarrier
-#define HBMemoryBarrier MemoryBarrier
-#else
-static inline void HBMemoryBarrier (void) {
+/* MinGW has a convoluted history of supporting MemoryBarrier
+ * properly. As such, define a function to wrap the whole
+ * thing. */
+static inline void _FCMemoryBarrier (void) {
+#if !defined(MemoryBarrier)
long dummy = 0;
InterlockedExchange (&dummy, 1);
-}
+#else
+ MemoryBarrier ();
#endif
+}
typedef LONG fc_atomic_int_t;
#define fc_atomic_int_add(AI, V) InterlockedExchangeAdd (&(AI), (V))
-#define fc_atomic_ptr_get(P) (HBMemoryBarrier (), (void *) *(P))
+#define fc_atomic_ptr_get(P) (_FCMemoryBarrier (), (void *) *(P))
#define fc_atomic_ptr_cmpexch(P,O,N) (InterlockedCompareExchangePointer ((void **) (P), (void *) (N), (void *) (O)) == (void *) (O))
#elif !defined(FC_NO_MT) && defined(__APPLE__)
#include <libkern/OSAtomic.h>
+#ifdef __MAC_OS_X_MIN_REQUIRED
+#include <AvailabilityMacros.h>
+#elif defined(__IPHONE_OS_MIN_REQUIRED)
+#include <Availability.h>
+#endif
typedef int fc_atomic_int_t;
#define fc_atomic_int_add(AI, V) (OSAtomicAdd32Barrier ((V), &(AI)) - (V))
#define fc_atomic_ptr_get(P) (OSMemoryBarrier (), (void *) *(P))
+#if (MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_4 || __IPHONE_VERSION_MIN_REQUIRED >= 20100)
#define fc_atomic_ptr_cmpexch(P,O,N) OSAtomicCompareAndSwapPtrBarrier ((void *) (O), (void *) (N), (void **) (P))
-
+#else
+#if __ppc64__ || __x86_64__
+#define fc_atomic_ptr_cmpexch(P,O,N) OSAtomicCompareAndSwap64Barrier ((int64_t) (O), (int64_t) (N), (int64_t*) (P))
+#else
+#define fc_atomic_ptr_cmpexch(P,O,N) OSAtomicCompareAndSwap32Barrier ((int32_t) (O), (int32_t) (N), (int32_t*) (P))
+#endif
+#endif
#elif !defined(FC_NO_MT) && defined(HAVE_INTEL_ATOMIC_PRIMITIVES)
void
FcBlanksDestroy (FcBlanks *b)
{
+ if (b->sblank == -1)
+ return;
if (b->blanks)
free (b->blanks);
free (b);
if (b->blanks[sblank] == ucs4)
return FcTrue;
+ if (b->sblank == -1)
+ {
+ fprintf (stderr, "Unable to update the static FcBlanks: 0x%04x\n", ucs4);
+ return FcTrue;
+ }
if (b->nblank == b->sblank)
{
sblank = b->sblank + 32;
FcBool
FcBlanksIsMember (FcBlanks *b, FcChar32 ucs4)
{
- int i;
+ int lower = 0, higher = b->nblank, middle;
- for (i = 0; i < b->nblank; i++)
- if (b->blanks[i] == ucs4)
+ if (b->nblank == 0 ||
+ b->blanks[0] > ucs4 ||
+ b->blanks[b->nblank - 1] < ucs4)
+ return FcFalse;
+ while (1)
+ {
+ middle = (lower + higher) / 2;
+ if (b->blanks[middle] == ucs4)
return FcTrue;
+ if (lower >= higher)
+ break;
+ if (b->blanks[middle] < ucs4)
+ lower = middle + 1;
+ else
+ higher = middle - 1;
+ }
+
return FcFalse;
}
#define __fcblanks__
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
#include "fcint.h"
#include "fcarch.h"
#include <stdio.h>
#include <dirent.h>
#include <string.h>
#include <sys/types.h>
-#include <time.h>
+#include <sys/stat.h>
#include <assert.h>
#if defined(HAVE_MMAP) || defined(__CYGWIN__)
# include <unistd.h>
FcChar8 cache_base[CACHEBASE_LEN];
FcStrList *list;
FcChar8 *cache_dir;
+ const FcChar8 *sysroot = FcConfigGetSysRoot (config);
FcDirCacheBasename (dir, cache_base);
while ((cache_dir = FcStrListNext (list)))
{
- cache_hashed = FcStrPlus (cache_dir, cache_base);
+ if (sysroot)
+ cache_hashed = FcStrBuildFilename (sysroot, cache_dir, cache_base, NULL);
+ else
+ cache_hashed = FcStrBuildFilename (cache_dir, cache_base, NULL);
if (!cache_hashed)
break;
(void) unlink ((char *) cache_hashed);
*/
static FcBool
FcDirCacheProcess (FcConfig *config, const FcChar8 *dir,
- FcBool (*callback) (int fd, struct stat *fd_stat,
+ FcBool (*callback) (FcConfig *config, int fd, struct stat *fd_stat,
struct stat *dir_stat, void *closure),
void *closure, FcChar8 **cache_file_ret)
{
int fd = -1;
FcChar8 cache_base[CACHEBASE_LEN];
FcStrList *list;
- FcChar8 *cache_dir;
+ FcChar8 *cache_dir, *d;
struct stat file_stat, dir_stat;
FcBool ret = FcFalse;
+ const FcChar8 *sysroot = FcConfigGetSysRoot (config);
- if (FcStatChecksum (dir, &dir_stat) < 0)
+ if (sysroot)
+ d = FcStrBuildFilename (sysroot, dir, NULL);
+ else
+ d = FcStrdup (dir);
+ if (FcStatChecksum (d, &dir_stat) < 0)
+ {
+ FcStrFree (d);
return FcFalse;
+ }
+ FcStrFree (d);
FcDirCacheBasename (dir, cache_base);
while ((cache_dir = FcStrListNext (list)))
{
- FcChar8 *cache_hashed = FcStrPlus (cache_dir, cache_base);
+ FcChar8 *cache_hashed;
+
+ if (sysroot)
+ cache_hashed = FcStrBuildFilename (sysroot, cache_dir, cache_base, NULL);
+ else
+ cache_hashed = FcStrBuildFilename (cache_dir, cache_base, NULL);
if (!cache_hashed)
break;
fd = FcDirCacheOpenFile (cache_hashed, &file_stat);
if (fd >= 0) {
- ret = (*callback) (fd, &file_stat, &dir_stat, closure);
+ ret = (*callback) (config, fd, &file_stat, &dir_stat, closure);
close (fd);
if (ret)
{
static int fcCacheMaxLevel;
-static int32_t
-FcRandom(void)
-{
- int32_t result;
-
-#if HAVE_RANDOM_R
- static struct random_data fcrandbuf;
- static char statebuf[256];
- static FcBool initialized = FcFalse;
-
- if (initialized != FcTrue)
- {
- initstate_r(time(NULL), statebuf, 256, &fcrandbuf);
- initialized = FcTrue;
- }
-
- random_r(&fcrandbuf, &result);
-#elif HAVE_RANDOM
- static char statebuf[256];
- char *state;
- static FcBool initialized = FcFalse;
-
- if (initialized != FcTrue)
- {
- state = initstate(time(NULL), statebuf, 256);
- initialized = FcTrue;
- }
- else
- state = setstate(statebuf);
-
- result = random();
-
- setstate(state);
-#elif HAVE_LRAND48
- result = lrand48();
-#elif HAVE_RAND_R
- static unsigned int seed = time(NULL);
-
- result = rand_r(&seed);
-#elif HAVE_RAND
- static FcBool initialized = FcFalse;
-
- if (initialized != FcTrue)
- {
- srand(time(NULL));
- initialized = FcTrue;
- }
- result = rand();
-#else
-# error no random number generator function available.
-#endif
-
- return result;
-}
-
-
static FcMutex *cache_lock;
static void
FcCacheSkip **next = fcCacheChains;
FcCacheSkip *s;
+ if (!object)
+ return NULL;
+
/*
* Walk chain pointers one level at a time
*/
skip = FcCacheFindByAddrUnlocked (object);
if (skip)
{
- if (FcRefDec (&skip->ref) <= 1)
+ if (FcRefDec (&skip->ref) == 1)
FcDirCacheDisposeUnlocked (skip->cache);
}
unlock_cache ();
}
static FcBool
-FcCacheTimeValid (FcCache *cache, struct stat *dir_stat)
+FcCacheTimeValid (FcConfig *config, FcCache *cache, struct stat *dir_stat)
{
struct stat dir_static;
if (!dir_stat)
{
- if (FcStatChecksum (FcCacheDir (cache), &dir_static) < 0)
+ const FcChar8 *sysroot = FcConfigGetSysRoot (config);
+ FcChar8 *d;
+
+ if (sysroot)
+ d = FcStrBuildFilename (sysroot, FcCacheDir (cache), NULL);
+ else
+ d = FcStrdup (FcCacheDir (cache));
+ if (FcStatChecksum (d, &dir_static) < 0)
+ {
+ FcStrFree (d);
return FcFalse;
+ }
+ FcStrFree (d);
dir_stat = &dir_static;
}
if (FcDebug () & FC_DBG_CACHE)
return cache->checksum == (int) dir_stat->st_mtime;
}
+static FcBool
+FcCacheDirsValid (FcConfig *config, FcCache *cache)
+{
+ FcStrSet *dirs = FcStrSetCreate ();
+ FcBool ret = FcFalse;
+ const FcChar8 *sysroot = FcConfigGetSysRoot (config);
+ FcChar8 *d;
+
+ if (!dirs)
+ goto bail;
+ if (sysroot)
+ d = FcStrBuildFilename (sysroot, FcCacheDir (cache), NULL);
+ else
+ d = FcStrdup (FcCacheDir (cache));
+ if (!FcDirScanOnly (dirs, d, config))
+ goto bail1;
+ ret = cache->dirs_count == dirs->num;
+ if (FcDebug () & FC_DBG_CACHE)
+ printf ("%s: cache: %d, fs: %d\n", d, cache->dirs_count, dirs->num);
+
+bail1:
+ FcStrSetDestroy (dirs);
+ FcStrFree (d);
+bail:
+ return ret;
+}
+
/*
* Map a cache file into memory
*/
static FcCache *
-FcDirCacheMapFd (int fd, struct stat *fd_stat, struct stat *dir_stat)
+FcDirCacheMapFd (FcConfig *config, int fd, struct stat *fd_stat, struct stat *dir_stat)
{
FcCache *cache;
FcBool allocated = FcFalse;
cache = FcCacheFindByStat (fd_stat);
if (cache)
{
- if (FcCacheTimeValid (cache, dir_stat))
+ if (FcCacheTimeValid (config, cache, dir_stat) &&
+ FcCacheDirsValid (config, cache))
return cache;
FcDirCacheUnload (cache);
cache = NULL;
{
#if defined(HAVE_MMAP) || defined(__CYGWIN__)
cache = mmap (0, fd_stat->st_size, PROT_READ, MAP_SHARED, fd, 0);
-#ifdef HAVE_POSIX_FADVISE
+#if (HAVE_POSIX_FADVISE) && defined(POSIX_FADV_WILLNEED)
posix_fadvise (fd, 0, fd_stat->st_size, POSIX_FADV_WILLNEED);
#endif
if (cache == MAP_FAILED)
if (cache->magic != FC_CACHE_MAGIC_MMAP ||
cache->version < FC_CACHE_CONTENT_VERSION ||
cache->size != (intptr_t) fd_stat->st_size ||
- !FcCacheTimeValid (cache, dir_stat) ||
+ !FcCacheTimeValid (config, cache, dir_stat) ||
+ !FcCacheDirsValid (config, cache) ||
!FcCacheInsert (cache, fd_stat))
{
if (allocated)
}
static FcBool
-FcDirCacheMapHelper (int fd, struct stat *fd_stat, struct stat *dir_stat, void *closure)
+FcDirCacheMapHelper (FcConfig *config, int fd, struct stat *fd_stat, struct stat *dir_stat, void *closure)
{
- FcCache *cache = FcDirCacheMapFd (fd, fd_stat, dir_stat);
+ FcCache *cache = FcDirCacheMapFd (config, fd, fd_stat, dir_stat);
if (!cache)
return FcFalse;
FcDirCacheMapHelper,
&cache, cache_file))
return NULL;
+
return cache;
}
fd = FcDirCacheOpenFile (cache_file, file_stat);
if (fd < 0)
return NULL;
- cache = FcDirCacheMapFd (fd, file_stat, NULL);
+ cache = FcDirCacheMapFd (FcConfigGetCurrent (), fd, file_stat, NULL);
close (fd);
return cache;
}
* the magic number and the size field
*/
static FcBool
-FcDirCacheValidateHelper (int fd, struct stat *fd_stat, struct stat *dir_stat, void *closure FC_UNUSED)
+FcDirCacheValidateHelper (FcConfig *config, int fd, struct stat *fd_stat, struct stat *dir_stat, void *closure FC_UNUSED)
{
FcBool ret = FcTrue;
FcCache c;
return NULL;
}
-
-#ifdef _WIN32
-#include <direct.h>
-#define mkdir(path,mode) _mkdir(path)
-#endif
-
-static FcBool
-FcMakeDirectory (const FcChar8 *dir)
+FcCache *
+FcDirCacheRebuild (FcCache *cache, struct stat *dir_stat, FcStrSet *dirs)
{
- FcChar8 *parent;
- FcBool ret;
+ FcCache *new;
+ FcFontSet *set = FcFontSetDeserialize (FcCacheSet (cache));
+ const FcChar8 *dir = FcCacheDir (cache);
- if (strlen ((char *) dir) == 0)
- return FcFalse;
+ new = FcDirCacheBuild (set, dir, dir_stat, dirs);
+ FcFontSetDestroy (set);
- parent = FcStrDirname (dir);
- if (!parent)
- return FcFalse;
- if (access ((char *) parent, F_OK) == 0)
- ret = mkdir ((char *) dir, 0755) == 0 && chmod ((char *) dir, 0755) == 0;
- else if (access ((char *) parent, F_OK) == -1)
- ret = FcMakeDirectory (parent) && (mkdir ((char *) dir, 0755) == 0) && chmod ((char *) dir, 0755) == 0;
- else
- ret = FcFalse;
- FcStrFree (parent);
- return ret;
+ return new;
}
/* write serialized state to the cache file */
FcAtomic *atomic;
FcStrList *list;
FcChar8 *cache_dir = NULL;
- FcChar8 *test_dir;
+ FcChar8 *test_dir, *d = NULL;
FcCacheSkip *skip;
struct stat cache_stat;
unsigned int magic;
int written;
+ const FcChar8 *sysroot = FcConfigGetSysRoot (config);
/*
* Write it to the first directory in the list which is writable
list = FcStrListCreate (config->cacheDirs);
if (!list)
return FcFalse;
- while ((test_dir = FcStrListNext (list))) {
- if (access ((char *) test_dir, W_OK) == 0)
+ while ((test_dir = FcStrListNext (list)))
+ {
+ if (d)
+ FcStrFree (d);
+ if (sysroot)
+ d = FcStrBuildFilename (sysroot, test_dir, NULL);
+ else
+ d = FcStrCopyFilename (test_dir);
+
+ if (access ((char *) d, W_OK) == 0)
{
- cache_dir = test_dir;
+ cache_dir = FcStrCopyFilename (d);
break;
}
else
/*
* If the directory doesn't exist, try to create it
*/
- if (access ((char *) test_dir, F_OK) == -1) {
- if (FcMakeDirectory (test_dir))
+ if (access ((char *) d, F_OK) == -1) {
+ if (FcMakeDirectory (d))
{
- cache_dir = test_dir;
+ cache_dir = FcStrCopyFilename (d);
/* Create CACHEDIR.TAG */
- FcDirCacheCreateTagFile (cache_dir);
+ FcDirCacheCreateTagFile (d);
break;
}
}
/*
* Otherwise, try making it writable
*/
- else if (chmod ((char *) test_dir, 0755) == 0)
+ else if (chmod ((char *) d, 0755) == 0)
{
- cache_dir = test_dir;
+ cache_dir = FcStrCopyFilename (d);
/* Try to create CACHEDIR.TAG too */
- FcDirCacheCreateTagFile (cache_dir);
+ FcDirCacheCreateTagFile (d);
break;
}
}
}
+ if (d)
+ FcStrFree (d);
FcStrListDone (list);
if (!cache_dir)
return FcFalse;
FcDirCacheBasename (dir, cache_base);
- cache_hashed = FcStrPlus (cache_dir, cache_base);
+ cache_hashed = FcStrBuildFilename (cache_dir, cache_base, NULL);
if (!cache_hashed)
return FcFalse;
+ FcStrFree (cache_dir);
if (FcDebug () & FC_DBG_CACHE)
printf ("FcDirCacheWriteDir dir \"%s\" file \"%s\"\n",
{
DIR *d;
struct dirent *ent;
- FcChar8 *dir_base;
+ FcChar8 *dir;
FcBool ret = FcTrue;
FcBool remove;
FcCache *cache;
struct stat target_stat;
+ const FcChar8 *sysroot;
- dir_base = FcStrPlus (cache_dir, (FcChar8 *) FC_DIR_SEPARATOR_S);
- if (!dir_base)
+ /* FIXME: this API needs to support non-current FcConfig */
+ sysroot = FcConfigGetSysRoot (NULL);
+ if (sysroot)
+ dir = FcStrBuildFilename (sysroot, cache_dir, NULL);
+ else
+ dir = FcStrCopyFilename (cache_dir);
+ if (!dir)
{
fprintf (stderr, "Fontconfig error: %s: out of memory\n", cache_dir);
return FcFalse;
}
- if (access ((char *) cache_dir, W_OK) != 0)
+ if (access ((char *) dir, W_OK) != 0)
{
if (verbose || FcDebug () & FC_DBG_CACHE)
- printf ("%s: not cleaning %s cache directory\n", cache_dir,
- access ((char *) cache_dir, F_OK) == 0 ? "unwritable" : "non-existent");
+ printf ("%s: not cleaning %s cache directory\n", dir,
+ access ((char *) dir, F_OK) == 0 ? "unwritable" : "non-existent");
goto bail0;
}
if (verbose || FcDebug () & FC_DBG_CACHE)
- printf ("%s: cleaning cache directory\n", cache_dir);
- d = opendir ((char *) cache_dir);
+ printf ("%s: cleaning cache directory\n", dir);
+ d = opendir ((char *) dir);
if (!d)
{
- perror ((char *) cache_dir);
+ perror ((char *) dir);
ret = FcFalse;
goto bail0;
}
strcmp(ent->d_name + 32, "-" FC_ARCHITECTURE FC_CACHE_SUFFIX))
continue;
- file_name = FcStrPlus (dir_base, (FcChar8 *) ent->d_name);
+ file_name = FcStrBuildFilename (dir, (FcChar8 *)ent->d_name, NULL);
if (!file_name)
{
- fprintf (stderr, "Fontconfig error: %s: allocation failure\n", cache_dir);
+ fprintf (stderr, "Fontconfig error: %s: allocation failure\n", dir);
ret = FcFalse;
break;
}
if (!cache)
{
if (verbose || FcDebug () & FC_DBG_CACHE)
- printf ("%s: invalid cache file: %s\n", cache_dir, ent->d_name);
+ printf ("%s: invalid cache file: %s\n", dir, ent->d_name);
remove = FcTrue;
}
else
{
+ FcChar8 *s;
+
target_dir = FcCacheDir (cache);
- if (stat ((char *) target_dir, &target_stat) < 0)
+ if (sysroot)
+ s = FcStrBuildFilename (sysroot, target_dir, NULL);
+ else
+ s = FcStrdup (target_dir);
+ if (stat ((char *) s, &target_stat) < 0)
{
if (verbose || FcDebug () & FC_DBG_CACHE)
printf ("%s: %s: missing directory: %s \n",
- cache_dir, ent->d_name, target_dir);
+ dir, ent->d_name, s);
remove = FcTrue;
}
+ FcDirCacheUnload (cache);
+ FcStrFree (s);
}
if (remove)
{
ret = FcFalse;
}
}
- FcDirCacheUnload (cache);
FcStrFree (file_name);
}
closedir (d);
bail0:
- FcStrFree (dir_base);
+ FcStrFree (dir);
return ret;
}
if (access ((char *) cache_dir, W_OK) == 0)
{
/* Create CACHEDIR.TAG */
- cache_tag = FcStrPlus (cache_dir, (const FcChar8 *) FC_DIR_SEPARATOR_S "CACHEDIR.TAG");
+ cache_tag = FcStrBuildFilename (cache_dir, "CACHEDIR.TAG", NULL);
if (!cache_tag)
return FcFalse;
atomic = FcAtomicCreate ((FcChar8 *)cache_tag);
void
FcCacheCreateTagFile (const FcConfig *config)
{
- FcChar8 *cache_dir = NULL;
+ FcChar8 *cache_dir = NULL, *d = NULL;
FcStrList *list;
+ const FcChar8 *sysroot = FcConfigGetSysRoot (config);
list = FcConfigGetCacheDirs (config);
if (!list)
while ((cache_dir = FcStrListNext (list)))
{
- if (FcDirCacheCreateTagFile (cache_dir))
+ if (d)
+ FcStrFree (d);
+ if (sysroot)
+ d = FcStrBuildFilename (sysroot, cache_dir, NULL);
+ else
+ d = FcStrCopyFilename (cache_dir);
+ if (FcDirCacheCreateTagFile (d))
break;
}
+ if (d)
+ FcStrFree (d);
FcStrListDone (list);
}
#include "fcint.h"
#include <dirent.h>
#include <sys/types.h>
+#include "../fc-blanks/fcblanks.h"
#if defined (_WIN32) && !defined (R_OK)
#define R_OK 4
if (!config->cacheDirs)
goto bail8;
- config->blanks = 0;
+ config->blanks = &fcBlanks;
config->substPattern = 0;
config->substFont = 0;
config->expr_pool = NULL;
+ config->sysRoot = NULL;
+
FcRefInit (&config->ref, 1);
return config;
while (s)
{
n = s->next;
- if (s->test)
- FcTestDestroy (s->test);
- if (s->edit)
- FcEditDestroy (s->edit);
+ if (s->rule)
+ FcRuleDestroy (s->rule);
free (s);
s = n;
}
FcExpr *
FcConfigAllocExpr (FcConfig *config)
{
- if (!config->expr_pool || config->expr_pool->next == config->expr_pool->end)
- {
- FcExprPage *new_page;
+ if (!config->expr_pool || config->expr_pool->next == config->expr_pool->end)
+ {
+ FcExprPage *new_page;
- new_page = malloc (sizeof (FcExprPage));
- if (!new_page)
- return 0;
+ new_page = malloc (sizeof (FcExprPage));
+ if (!new_page)
+ return 0;
- new_page->next_page = config->expr_pool;
- new_page->next = new_page->exprs;
- config->expr_pool = new_page;
- }
+ new_page->next_page = config->expr_pool;
+ new_page->next = new_page->exprs;
+ config->expr_pool = new_page;
+ }
- return config->expr_pool->next++;
+ return config->expr_pool->next++;
}
FcConfig *
free (page);
page = next;
}
+ if (config->sysRoot)
+ FcStrFree (config->sysRoot);
free (config);
}
if (!FcConfigAcceptFont (config, font))
continue;
- nref++;
- FcFontSetAdd (config->fonts[set], font);
+ if (FcFontSetAdd (config->fonts[set], font))
+ nref++;
}
FcDirCacheReference (cache, nref);
}
FcStrList *dirlist;
FcChar8 *dir;
FcCache *cache;
+ FcBool ret = FcFalse;
dirlist = FcStrListCreate (dirSet);
if (!dirlist)
while ((dir = FcStrListNext (dirlist)))
{
if (FcDebug () & FC_DBG_FONTSET)
- printf ("adding fonts from%s\n", dir);
+ printf ("adding fonts from %s\n", dir);
cache = FcDirCacheRead (dir, FcFalse, config);
if (!cache)
continue;
FcConfigAddCache (config, cache, set, dirSet);
FcDirCacheUnload (cache);
+ ret = FcTrue;
}
FcStrListDone (dirlist);
- return FcTrue;
+ return ret;
}
/*
if (config == cfg)
return FcTrue;
- if (!config->fonts[FcSetSystem])
+ if (config && !config->fonts[FcSetSystem])
if (!FcConfigBuildFonts (config))
return FcFalse;
if (!fc_atomic_ptr_cmpexch (&_fcConfig, cfg, config))
goto retry;
+ FcConfigReference (config);
if (cfg)
FcConfigDestroy (cfg);
return FcConfigSetRescanInterval (config, rescanInterval);
}
-
FcBool
-FcConfigAddEdit (FcConfig *config,
- FcTest *test,
- FcEdit *edit,
+FcConfigAddRule (FcConfig *config,
+ FcRule *rule,
FcMatchKind kind)
{
FcSubst *subst, **prev;
- FcTest *t;
- int num;
+ FcRule *r;
+ int n = 0;
+ if (!rule)
+ return FcFalse;
switch (kind) {
case FcMatchPattern:
prev = &config->substPattern;
return FcFalse;
for (; *prev; prev = &(*prev)->next);
*prev = subst;
- subst->next = 0;
- subst->test = test;
- subst->edit = edit;
- num = 0;
- for (t = test; t; t = t->next)
- {
- if (t->kind == FcMatchDefault)
- t->kind = kind;
- num++;
- }
- if (config->maxObjects < num)
- config->maxObjects = num;
+ subst->next = NULL;
+ subst->rule = rule;
+ for (r = rule; r; r = r->next)
+ {
+ switch (r->type)
+ {
+ case FcRuleTest:
+ if (r->u.test &&
+ r->u.test->kind == FcMatchDefault)
+ r->u.test->kind = kind;
+
+ if (n < r->u.test->object)
+ n = r->u.test->object;
+ break;
+ case FcRuleEdit:
+ if (n < r->u.edit->object)
+ n = r->u.edit->object;
+ break;
+ default:
+ break;
+ }
+ }
+ n = FC_OBJ_ID (n) - FC_MAX_BASE_OBJECT;
+ if (config->maxObjects < n)
+ config->maxObjects = n;
if (FcDebug () & FC_DBG_EDIT)
{
printf ("Add Subst ");
return FcTrue;
}
-typedef struct _FcSubState {
- FcPatternElt *elt;
- FcValueList *value;
-} FcSubState;
-
static FcValue
FcConfigPromote (FcValue v, FcValue u, FcValuePromotionBuffer *buf)
{
v.u.l = FcLangSetPromote (v.u.s, buf);
v.type = FcTypeLangSet;
}
+ else if (v.type == FcTypeVoid && u.type == FcTypeLangSet)
+ {
+ v.u.l = FcLangSetPromote (NULL, buf);
+ v.type = FcTypeLangSet;
+ }
+ else if (v.type == FcTypeVoid && u.type == FcTypeCharSet)
+ {
+ v.u.c = FcCharSetPromote (buf);
+ v.type = FcTypeCharSet;
+ }
+ if (buf && v.type == FcTypeDouble && u.type == FcTypeRange)
+ {
+ v.u.r = FcRangePromote (v.u.d, buf);
+ v.type = FcTypeRange;
+ }
return v;
}
FcBool
FcConfigCompareValue (const FcValue *left_o,
- FcOp op_,
+ unsigned int op_,
const FcValue *right_o)
{
FcValue left = FcValueCanonicalize(left_o);
if (left.type == right.type)
{
switch (left.type) {
+ case FcTypeUnknown:
+ break; /* No way to guess how to compare for this object */
case FcTypeInteger:
break; /* FcConfigPromote prevents this from happening */
case FcTypeDouble:
break;
}
break;
+ case FcTypeRange:
+ ret = FcRangeCompare (op, left.u.r, right.u.r);
+ break;
}
}
else
static FcValue
FcConfigEvaluate (FcPattern *p, FcPattern *p_pat, FcMatchKind kind, FcExpr *e)
{
- FcValue v, vl, vr;
+ FcValue v, vl, vr, vle, vre;
FcMatrix *m;
FcChar8 *str;
FcOp op = FC_OP_GET_OP (e->op);
+ FcValuePromotionBuffer buf1, buf2;
switch ((int) op) {
case FcOpInteger:
v.u.l = e->u.lval;
v = FcValueSave (v);
break;
+ case FcOpRange:
+ v.type = FcTypeRange;
+ v.u.r = e->u.rval;
+ v = FcValueSave (v);
+ break;
case FcOpBool:
v.type = FcTypeBool;
v.u.b = e->u.bval;
case FcOpDivide:
vl = FcConfigEvaluate (p, p_pat, kind, e->u.tree.left);
vr = FcConfigEvaluate (p, p_pat, kind, e->u.tree.right);
- vl = FcConfigPromote (vl, vr, NULL);
- vr = FcConfigPromote (vr, vl, NULL);
- if (vl.type == vr.type)
+ vle = FcConfigPromote (vl, vr, &buf1);
+ vre = FcConfigPromote (vr, vle, &buf2);
+ if (vle.type == vre.type)
{
- switch ((int) vl.type) {
+ switch ((int) vle.type) {
case FcTypeDouble:
switch ((int) op) {
case FcOpPlus:
v.type = FcTypeDouble;
- v.u.d = vl.u.d + vr.u.d;
+ v.u.d = vle.u.d + vre.u.d;
break;
case FcOpMinus:
v.type = FcTypeDouble;
- v.u.d = vl.u.d - vr.u.d;
+ v.u.d = vle.u.d - vre.u.d;
break;
case FcOpTimes:
v.type = FcTypeDouble;
- v.u.d = vl.u.d * vr.u.d;
+ v.u.d = vle.u.d * vre.u.d;
break;
case FcOpDivide:
v.type = FcTypeDouble;
- v.u.d = vl.u.d / vr.u.d;
+ v.u.d = vle.u.d / vre.u.d;
break;
default:
v.type = FcTypeVoid;
switch ((int) op) {
case FcOpOr:
v.type = FcTypeBool;
- v.u.b = vl.u.b || vr.u.b;
+ v.u.b = vle.u.b || vre.u.b;
break;
case FcOpAnd:
v.type = FcTypeBool;
- v.u.b = vl.u.b && vr.u.b;
+ v.u.b = vle.u.b && vre.u.b;
break;
default:
v.type = FcTypeVoid;
switch ((int) op) {
case FcOpPlus:
v.type = FcTypeString;
- str = FcStrPlus (vl.u.s, vr.u.s);
+ str = FcStrPlus (vle.u.s, vre.u.s);
v.u.s = FcStrdup (str);
FcStrFree (str);
m = malloc (sizeof (FcMatrix));
if (m)
{
- FcMatrixMultiply (m, vl.u.m, vr.u.m);
+ FcMatrixMultiply (m, vle.u.m, vre.u.m);
v.u.m = m;
}
else
switch ((int) op) {
case FcOpPlus:
v.type = FcTypeCharSet;
- v.u.c = FcCharSetUnion (vl.u.c, vr.u.c);
+ v.u.c = FcCharSetUnion (vle.u.c, vre.u.c);
if (!v.u.c)
v.type = FcTypeVoid;
break;
case FcOpMinus:
v.type = FcTypeCharSet;
- v.u.c = FcCharSetSubtract (vl.u.c, vr.u.c);
+ v.u.c = FcCharSetSubtract (vle.u.c, vre.u.c);
if (!v.u.c)
v.type = FcTypeVoid;
break;
switch ((int) op) {
case FcOpPlus:
v.type = FcTypeLangSet;
- v.u.l = FcLangSetUnion (vl.u.l, vr.u.l);
+ v.u.l = FcLangSetUnion (vle.u.l, vre.u.l);
if (!v.u.l)
v.type = FcTypeVoid;
break;
case FcOpMinus:
v.type = FcTypeLangSet;
- v.u.l = FcLangSetSubtract (vl.u.l, vr.u.l);
+ v.u.l = FcLangSetSubtract (vle.u.l, vre.u.l);
if (!v.u.l)
v.type = FcTypeVoid;
break;
FcPattern *p_pat,
FcMatchKind kind)
{
+ FcValue v;
FcSubst *s;
- FcSubState *st;
- int i;
- FcTest *t;
- FcEdit *e;
- FcValueList *l;
+ FcRule *r;
+ FcValueList *l, **value = NULL, *vl;
FcPattern *m;
FcStrSet *strs;
+ FcObject object = FC_INVALID_OBJECT;
+ FcPatternElt **elt = NULL, *e;
+ int i, nobjs;
+ FcBool retval = FcTrue;
+ FcTest **tst = NULL;
if (!config)
{
FcStrList *l = FcStrListCreate (strs);
FcChar8 *lang;
FcValue v;
+ FcLangSet *lsund = FcLangSetCreate ();
+ FcLangSetAdd (lsund, (const FcChar8 *)"und");
FcStrSetDestroy (strs);
while (l && (lang = FcStrListNext (l)))
{
+ FcPatternElt *e = FcPatternObjectFindElt (p, FC_LANG_OBJECT);
+
+ if (e)
+ {
+ FcValueListPtr ll;
+
+ for (ll = FcPatternEltValues (e); ll; ll = FcValueListNext (ll))
+ {
+ FcValue vv = FcValueCanonicalize (&ll->value);
+
+ if (vv.type == FcTypeLangSet)
+ {
+ FcLangSet *ls = FcLangSetCreate ();
+ FcBool b;
+
+ FcLangSetAdd (ls, lang);
+ b = FcLangSetContains (vv.u.l, ls);
+ FcLangSetDestroy (ls);
+ if (b)
+ goto bail_lang;
+ if (FcLangSetContains (vv.u.l, lsund))
+ goto bail_lang;
+ }
+ else
+ {
+ if (FcStrCmpIgnoreCase (vv.u.s, lang) == 0)
+ goto bail_lang;
+ if (FcStrCmpIgnoreCase (vv.u.s, (const FcChar8 *)"und") == 0)
+ goto bail_lang;
+ }
+ }
+ }
v.type = FcTypeString;
v.u.s = lang;
+
FcPatternObjectAddWithBinding (p, FC_LANG_OBJECT, v, FcValueBindingWeak, FcTrue);
}
+ bail_lang:
FcStrListDone (l);
+ FcLangSetDestroy (lsund);
+ }
+ if (FcPatternObjectGet (p, FC_PRGNAME_OBJECT, 0, &v) == FcResultNoMatch)
+ {
+ FcChar8 *prgname = FcGetPrgname ();
+ if (prgname)
+ FcPatternObjectAddString (p, FC_PRGNAME_OBJECT, prgname);
}
break;
case FcMatchFont:
return FcFalse;
}
- st = (FcSubState *) malloc (config->maxObjects * sizeof (FcSubState));
- if (!st && config->maxObjects)
- return FcFalse;
+ nobjs = FC_MAX_BASE_OBJECT + config->maxObjects + 2;
+ value = (FcValueList **) malloc (SIZEOF_VOID_P * nobjs);
+ if (!value)
+ {
+ retval = FcFalse;
+ goto bail1;
+ }
+ elt = (FcPatternElt **) malloc (SIZEOF_VOID_P * nobjs);
+ if (!elt)
+ {
+ retval = FcFalse;
+ goto bail1;
+ }
+ tst = (FcTest **) malloc (SIZEOF_VOID_P * nobjs);
+ if (!tst)
+ {
+ retval = FcFalse;
+ goto bail1;
+ }
if (FcDebug () & FC_DBG_EDIT)
{
}
for (; s; s = s->next)
{
- /*
- * Check the tests to see if
- * they all match the pattern
- */
- for (t = s->test, i = 0; t; t = t->next, i++)
+ r = s->rule;
+ for (i = 0; i < nobjs; i++)
{
- if (FcDebug () & FC_DBG_EDIT)
- {
- printf ("FcConfigSubstitute test ");
- FcTestPrint (t);
- }
- st[i].elt = 0;
- if (kind == FcMatchFont && t->kind == FcMatchPattern)
- m = p_pat;
- else
- m = p;
- if (m)
- st[i].elt = FcPatternObjectFindElt (m, t->object);
- else
- st[i].elt = 0;
- /*
- * If there's no such field in the font,
- * then FcQualAll matches while FcQualAny does not
- */
- if (!st[i].elt)
- {
- if (t->qual == FcQualAll)
+ elt[i] = NULL;
+ value[i] = NULL;
+ tst[i] = NULL;
+ }
+ for (; r; r = r->next)
+ {
+ switch (r->type) {
+ case FcRuleUnknown:
+ /* shouldn't be reached */
+ break;
+ case FcRuleTest:
+ object = FC_OBJ_ID (r->u.test->object);
+ /*
+ * Check the tests to see if
+ * they all match the pattern
+ */
+ if (FcDebug () & FC_DBG_EDIT)
{
- st[i].value = 0;
- continue;
+ printf ("FcConfigSubstitute test ");
+ FcTestPrint (r->u.test);
}
+ if (kind == FcMatchFont && r->u.test->kind == FcMatchPattern)
+ m = p_pat;
else
- break;
- }
- /*
- * Check to see if there is a match, mark the location
- * to apply match-relative edits
- */
- st[i].value = FcConfigMatchValueList (m, p_pat, kind, t, st[i].elt->values);
- if (!st[i].value)
- break;
- if (t->qual == FcQualFirst && st[i].value != st[i].elt->values)
- break;
- if (t->qual == FcQualNotFirst && st[i].value == st[i].elt->values)
- break;
- }
- if (t)
- {
- if (FcDebug () & FC_DBG_EDIT)
- printf ("No match\n");
- continue;
- }
- if (FcDebug () & FC_DBG_EDIT)
- {
- printf ("Substitute ");
- FcSubstPrint (s);
- }
- for (e = s->edit; e; e = e->next)
- {
- /*
- * Evaluate the list of expressions
- */
- l = FcConfigValues (p, p_pat,kind, e->expr, e->binding);
- /*
- * Locate any test associated with this field, skipping
- * tests associated with the pattern when substituting in
- * the font
- */
- for (t = s->test, i = 0; t; t = t->next, i++)
- {
- if ((t->kind == FcMatchFont || kind == FcMatchPattern) &&
- t->object == e->object)
+ m = p;
+ if (m)
+ e = FcPatternObjectFindElt (m, r->u.test->object);
+ else
+ e = NULL;
+ /* different 'kind' won't be the target of edit */
+ if (!elt[object] && kind == r->u.test->kind)
{
- /*
- * KLUDGE - the pattern may have been reallocated or
- * things may have been inserted or deleted above
- * this element by other edits. Go back and find
- * the element again
- */
- if (e != s->edit && st[i].elt)
- st[i].elt = FcPatternObjectFindElt (p, t->object);
- if (!st[i].elt)
- t = 0;
- break;
+ elt[object] = e;
+ tst[object] = r->u.test;
}
- }
- switch (FC_OP_GET_OP (e->op)) {
- case FcOpAssign:
/*
- * If there was a test, then replace the matched
- * value with the new list of values
+ * If there's no such field in the font,
+ * then FcQualAll matches while FcQualAny does not
*/
- if (t)
+ if (!e)
{
- FcValueList *thisValue = st[i].value;
- FcValueList *nextValue = thisValue;
-
+ if (r->u.test->qual == FcQualAll)
+ {
+ value[object] = NULL;
+ continue;
+ }
+ else
+ {
+ if (FcDebug () & FC_DBG_EDIT)
+ printf ("No match\n");
+ goto bail;
+ }
+ }
+ /*
+ * Check to see if there is a match, mark the location
+ * to apply match-relative edits
+ */
+ vl = FcConfigMatchValueList (m, p_pat, kind, r->u.test, e->values);
+ /* different 'kind' won't be the target of edit */
+ if (!value[object] && kind == r->u.test->kind)
+ value[object] = vl;
+ if (!vl ||
+ (r->u.test->qual == FcQualFirst && vl != e->values) ||
+ (r->u.test->qual == FcQualNotFirst && vl == e->values))
+ {
+ if (FcDebug () & FC_DBG_EDIT)
+ printf ("No match\n");
+ goto bail;
+ }
+ break;
+ case FcRuleEdit:
+ object = FC_OBJ_ID (r->u.edit->object);
+ if (FcDebug () & FC_DBG_EDIT)
+ {
+ printf ("Substitute ");
+ FcEditPrint (r->u.edit);
+ printf ("\n\n");
+ }
+ /*
+ * Evaluate the list of expressions
+ */
+ l = FcConfigValues (p, p_pat,kind, r->u.edit->expr, r->u.edit->binding);
+ if (tst[object] && (tst[object]->kind == FcMatchFont || kind == FcMatchPattern))
+ elt[object] = FcPatternObjectFindElt (p, tst[object]->object);
+
+ switch (FC_OP_GET_OP (r->u.edit->op)) {
+ case FcOpAssign:
/*
- * Append the new list of values after the current value
+ * If there was a test, then replace the matched
+ * value with the new list of values
*/
- FcConfigAdd (&st[i].elt->values, thisValue, FcTrue, l, e->object);
+ if (value[object])
+ {
+ FcValueList *thisValue = value[object];
+ FcValueList *nextValue = l;
+
+ /*
+ * Append the new list of values after the current value
+ */
+ FcConfigAdd (&elt[object]->values, thisValue, FcTrue, l, r->u.edit->object);
+ /*
+ * Delete the marked value
+ */
+ if (thisValue)
+ FcConfigDel (&elt[object]->values, thisValue);
+ /*
+ * Adjust a pointer into the value list to ensure
+ * future edits occur at the same place
+ */
+ value[object] = nextValue;
+ break;
+ }
+ /* fall through ... */
+ case FcOpAssignReplace:
/*
- * Delete the marked value
+ * Delete all of the values and insert
+ * the new set
*/
- if (thisValue)
- FcConfigDel (&st[i].elt->values, thisValue);
+ FcConfigPatternDel (p, r->u.edit->object);
+ FcConfigPatternAdd (p, r->u.edit->object, l, FcTrue);
/*
- * Adjust any pointers into the value list to ensure
- * future edits occur at the same place
+ * Adjust a pointer into the value list as they no
+ * longer point to anything valid
*/
- for (t = s->test, i = 0; t; t = t->next, i++)
+ value[object] = NULL;
+ break;
+ case FcOpPrepend:
+ if (value[object])
{
- if (st[i].value == thisValue)
- st[i].value = nextValue;
+ FcConfigAdd (&elt[object]->values, value[object], FcFalse, l, r->u.edit->object);
+ break;
}
+ /* fall through ... */
+ case FcOpPrependFirst:
+ FcConfigPatternAdd (p, r->u.edit->object, l, FcFalse);
break;
- }
- /* fall through ... */
- case FcOpAssignReplace:
- /*
- * Delete all of the values and insert
- * the new set
- */
- FcConfigPatternDel (p, e->object);
- FcConfigPatternAdd (p, e->object, l, FcTrue);
- /*
- * Adjust any pointers into the value list as they no
- * longer point to anything valid
- */
- if (t)
- {
- FcPatternElt *thisElt = st[i].elt;
- for (t = s->test, i = 0; t; t = t->next, i++)
+ case FcOpAppend:
+ if (value[object])
{
- if (st[i].elt == thisElt)
- st[i].value = 0;
+ FcConfigAdd (&elt[object]->values, value[object], FcTrue, l, r->u.edit->object);
+ break;
}
- }
- break;
- case FcOpPrepend:
- if (t)
- {
- FcConfigAdd (&st[i].elt->values, st[i].value, FcFalse, l, e->object);
+ /* fall through ... */
+ case FcOpAppendLast:
+ FcConfigPatternAdd (p, r->u.edit->object, l, FcTrue);
+ break;
+ case FcOpDelete:
+ if (value[object])
+ {
+ FcConfigDel (&elt[object]->values, value[object]);
+ break;
+ }
+ /* fall through ... */
+ case FcOpDeleteAll:
+ FcConfigPatternDel (p, r->u.edit->object);
+ break;
+ default:
+ FcValueListDestroy (l);
break;
}
- /* fall through ... */
- case FcOpPrependFirst:
- FcConfigPatternAdd (p, e->object, l, FcFalse);
- break;
- case FcOpAppend:
- if (t)
+ /*
+ * Now go through the pattern and eliminate
+ * any properties without data
+ */
+ FcConfigPatternCanon (p, r->u.edit->object);
+
+ if (FcDebug () & FC_DBG_EDIT)
{
- FcConfigAdd (&st[i].elt->values, st[i].value, FcTrue, l, e->object);
- break;
+ printf ("FcConfigSubstitute edit");
+ FcPatternPrint (p);
}
- /* fall through ... */
- case FcOpAppendLast:
- FcConfigPatternAdd (p, e->object, l, FcTrue);
- break;
- default:
- FcValueListDestroy (l);
break;
}
}
- /*
- * Now go through the pattern and eliminate
- * any properties without data
- */
- for (e = s->edit; e; e = e->next)
- FcConfigPatternCanon (p, e->object);
-
- if (FcDebug () & FC_DBG_EDIT)
- {
- printf ("FcConfigSubstitute edit");
- FcPatternPrint (p);
- }
+ bail:;
}
- free (st);
if (FcDebug () & FC_DBG_EDIT)
{
printf ("FcConfigSubstitute done");
FcPatternPrint (p);
}
- return FcTrue;
+bail1:
+ if (elt)
+ free (elt);
+ if (value)
+ free (value);
+ if (tst)
+ free (tst);
+
+ return retval;
}
FcBool
const char *env = getenv ("XDG_CACHE_HOME");
FcChar8 *ret = NULL;
+ if (!_FcConfigHomeEnabled)
+ return NULL;
if (env)
ret = FcStrCopy ((const FcChar8 *)env);
else
const char *env = getenv ("XDG_CONFIG_HOME");
FcChar8 *ret = NULL;
+ if (!_FcConfigHomeEnabled)
+ return NULL;
if (env)
ret = FcStrCopy ((const FcChar8 *)env);
else
const char *env = getenv ("XDG_DATA_HOME");
FcChar8 *ret = NULL;
+ if (!_FcConfigHomeEnabled)
+ return NULL;
if (env)
ret = FcStrCopy ((const FcChar8 *)env);
else
FcStrSet *subdirs;
FcStrList *sublist;
FcChar8 *subdir;
+ FcBool ret = FcFalse;
if (!config)
{
{
while ((subdir = FcStrListNext (sublist)))
{
- FcConfigAppFontAddDir (config, subdir);
+ if (FcConfigAppFontAddDir (config, subdir))
+ ret = FcTrue;
}
FcStrListDone (sublist);
}
FcStrSetDestroy (subdirs);
- return FcTrue;
+ return ret;
}
FcBool
{
FcFontSet *set;
FcStrSet *dirs;
+ FcBool ret = FcTrue;
if (!config)
{
set = FcFontSetCreate ();
if (!set)
{
- FcStrSetDestroy (dirs);
- return FcFalse;
+ ret = FcFalse;
+ goto bail;
}
FcConfigSetFonts (config, set, FcSetApplication);
}
FcStrSetAddFilename (dirs, dir);
if (!FcConfigAddDirList (config, FcSetApplication, dirs))
- {
- FcStrSetDestroy (dirs);
- return FcFalse;
- }
+ ret = FcFalse;
+bail:
FcStrSetDestroy (dirs);
- return FcTrue;
+ return ret;
}
void
}
static FcBool
-FcConfigGlobMatch (const FcChar8 *glob,
- const FcChar8 *string)
-{
- FcChar8 c;
-
- while ((c = *glob++))
- {
- switch (c) {
- case '*':
- /* short circuit common case */
- if (!*glob)
- return FcTrue;
- /* short circuit another common case */
- if (strchr ((char *) glob, '*') == 0)
- {
- size_t l1, l2;
-
- l1 = strlen ((char *) string);
- l2 = strlen ((char *) glob);
- if (l1 < l2)
- return FcFalse;
- string += (l1 - l2);
- }
- while (*string)
- {
- if (FcConfigGlobMatch (glob, string))
- return FcTrue;
- string++;
- }
- return FcFalse;
- case '?':
- if (*string++ == '\0')
- return FcFalse;
- break;
- default:
- if (*string++ != c)
- return FcFalse;
- break;
- }
- }
- return *string == '\0';
-}
-
-static FcBool
FcConfigGlobsMatch (const FcStrSet *globs,
const FcChar8 *string)
{
int i;
for (i = 0; i < globs->num; i++)
- if (FcConfigGlobMatch (globs->strs[i], string))
+ if (FcStrGlobMatch (globs->strs[i], string))
return FcTrue;
return FcFalse;
}
return FcFalse;
return FcTrue;
}
+
+const FcChar8 *
+FcConfigGetSysRoot (const FcConfig *config)
+{
+ if (!config)
+ {
+ config = FcConfigGetCurrent ();
+ if (!config)
+ return NULL;
+ }
+
+ return config->sysRoot;
+}
+
+void
+FcConfigSetSysRoot (FcConfig *config,
+ const FcChar8 *sysroot)
+{
+ FcChar8 *s = NULL;
+ FcBool init = FcFalse;
+
+ if (!config)
+ {
+ /* We can't use FcConfigGetCurrent() here to ensure
+ * the sysroot is set prior to initialize FcConfig,
+ * to avoid loading caches from non-sysroot dirs.
+ * So postpone the initialization later.
+ */
+ config = fc_atomic_ptr_get (&_fcConfig);
+ if (!config)
+ {
+ config = FcConfigCreate ();
+ if (!config)
+ return;
+ init = FcTrue;
+ }
+ }
+
+ if (sysroot)
+ {
+ s = FcStrCopyFilename (sysroot);
+ if (!s)
+ return;
+ }
+
+ if (config->sysRoot)
+ FcStrFree (config->sysRoot);
+
+ config->sysRoot = s;
+ if (init)
+ {
+ config = FcInitLoadOwnConfigAndFonts (config);
+ FcConfigSetCurrent (config);
+ /* FcConfigSetCurrent() increases the refcount.
+ * decrease it here to avoid the memory leak.
+ */
+ FcConfigDestroy (config);
+ }
+}
+
#define __fccfg__
#include "fcaliastail.h"
#undef __fccfg__
}
FcCharSet *
+FcCharSetPromote (FcValuePromotionBuffer *vbuf)
+{
+ FcCharSet *fcs = (FcCharSet *) vbuf;
+
+ FC_ASSERT_STATIC (sizeof (FcCharSet) <= sizeof (FcValuePromotionBuffer));
+
+ FcRefSetConst (&fcs->ref);
+ fcs->num = 0;
+ fcs->leaves_offset = 0;
+ fcs->numbers_offset = 0;
+
+ return fcs;
+}
+
+FcCharSet *
FcCharSetNew (void)
{
return FcCharSetCreate ();
return page;
}
-/*
- * ASCII representation of charsets.
- *
- * Each leaf is represented as 9 32-bit values, the code of the first character followed
- * by 8 32 bit values for the leaf itself. Each value is encoded as 5 ASCII characters,
- * only 85 different values are used to avoid control characters as well as the other
- * characters used to encode font names. 85**5 > 2^32 so things work out, but
- * it's not exactly human readable output. As a special case, 0 is encoded as a space
- */
-
-static const unsigned char charToValue[256] = {
- /* "" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- /* "\b" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- /* "\020" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- /* "\030" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- /* " " */ 0xff, 0x00, 0xff, 0x01, 0x02, 0x03, 0x04, 0xff,
- /* "(" */ 0x05, 0x06, 0x07, 0x08, 0xff, 0xff, 0x09, 0x0a,
- /* "0" */ 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12,
- /* "8" */ 0x13, 0x14, 0xff, 0x15, 0x16, 0xff, 0x17, 0x18,
- /* "@" */ 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20,
- /* "H" */ 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28,
- /* "P" */ 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30,
- /* "X" */ 0x31, 0x32, 0x33, 0x34, 0xff, 0x35, 0x36, 0xff,
- /* "`" */ 0xff, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d,
- /* "h" */ 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45,
- /* "p" */ 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d,
- /* "x" */ 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0xff,
- /* "\200" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- /* "\210" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- /* "\220" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- /* "\230" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- /* "\240" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- /* "\250" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- /* "\260" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- /* "\270" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- /* "\300" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- /* "\310" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- /* "\320" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- /* "\330" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- /* "\340" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- /* "\350" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- /* "\360" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- /* "\370" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-};
-
-static const FcChar8 valueToChar[0x55] = {
- /* 0x00 */ '!', '#', '$', '%', '&', '(', ')', '*',
- /* 0x08 */ '+', '.', '/', '0', '1', '2', '3', '4',
- /* 0x10 */ '5', '6', '7', '8', '9', ';', '<', '>',
- /* 0x18 */ '?', '@', 'A', 'B', 'C', 'D', 'E', 'F',
- /* 0x20 */ 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',
- /* 0x28 */ 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
- /* 0x30 */ 'W', 'X', 'Y', 'Z', '[', ']', '^', 'a',
- /* 0x38 */ 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',
- /* 0x40 */ 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q',
- /* 0x48 */ 'r', 's', 't', 'u', 'v', 'w', 'x', 'y',
- /* 0x50 */ 'z', '{', '|', '}', '~',
-};
-
-static FcChar8 *
-FcCharSetParseValue (FcChar8 *string, FcChar32 *value)
-{
- int i;
- FcChar32 v;
- FcChar32 c;
-
- if (*string == ' ')
- {
- v = 0;
- string++;
- }
- else
- {
- v = 0;
- for (i = 0; i < 5; i++)
- {
- if (!(c = (FcChar32) (unsigned char) *string++))
- return 0;
- c = charToValue[c];
- if (c == 0xff)
- return 0;
- v = v * 85 + c;
- }
- }
- *value = v;
- return string;
-}
-
static FcBool
-FcCharSetUnparseValue (FcStrBuf *buf, FcChar32 value)
+FcNameParseRange (FcChar8 **string, FcChar32 *pfirst, FcChar32 *plast)
{
- int i;
- if (value == 0)
- {
- return FcStrBufChar (buf, ' ');
- }
- else
- {
- FcChar8 string[6];
- FcChar8 *s = string + 5;
- string[5] = '\0';
- for (i = 0; i < 5; i++)
+ char *s = (char *) *string;
+ char *t;
+ long first, last;
+
+ while (isspace(*s))
+ s++;
+ t = s;
+ errno = 0;
+ first = last = strtol (s, &s, 16);
+ if (errno)
+ return FcFalse;
+ while (isspace(*s))
+ s++;
+ if (*s == '-')
{
- *--s = valueToChar[value % 85];
- value /= 85;
- }
- for (i = 0; i < 5; i++)
- if (!FcStrBufChar (buf, *s++))
+ s++;
+ errno = 0;
+ last = strtol (s, &s, 16);
+ if (errno)
return FcFalse;
- }
- return FcTrue;
+ }
+
+ if (s == t || first < 0 || last < 0 || last < first || last > 0x10ffff)
+ return FcFalse;
+
+ *string = (FcChar8 *) s;
+ *pfirst = first;
+ *plast = last;
+ return FcTrue;
}
FcCharSet *
FcNameParseCharSet (FcChar8 *string)
{
FcCharSet *c;
- FcChar32 ucs4;
- FcCharLeaf *leaf;
- FcCharLeaf temp;
- FcChar32 bits;
- int i;
+ FcChar32 first, last;
c = FcCharSetCreate ();
if (!c)
goto bail0;
while (*string)
{
- string = FcCharSetParseValue (string, &ucs4);
- if (!string)
- goto bail1;
- bits = 0;
- for (i = 0; i < 256/32; i++)
- {
- string = FcCharSetParseValue (string, &temp.map[i]);
- if (!string)
- goto bail1;
- bits |= temp.map[i];
- }
- if (bits)
- {
- leaf = malloc (sizeof (FcCharLeaf));
- if (!leaf)
- goto bail1;
- *leaf = temp;
- if (!FcCharSetInsertLeaf (c, ucs4, leaf))
+ FcChar32 u;
+
+ if (!FcNameParseRange (&string, &first, &last))
goto bail1;
- }
+
+ for (u = first; u < last + 1; u++)
+ FcCharSetAddChar (c, u);
}
return c;
bail1:
- if (c->num)
- {
- free (FcCharSetLeaves (c));
- }
- if (c->num)
- {
- free (FcCharSetNumbers (c));
- }
- free (c);
+ FcCharSetDestroy (c);
bail0:
return NULL;
}
+static void
+FcNameUnparseUnicode (FcStrBuf *buf, FcChar32 u)
+{
+ FcChar8 buf_static[64];
+ snprintf ((char *) buf_static, sizeof (buf_static), "%x", u);
+ FcStrBufString (buf, buf_static);
+}
+
FcBool
FcNameUnparseCharSet (FcStrBuf *buf, const FcCharSet *c)
{
FcCharSetIter ci;
+ FcChar32 first, last;
int i;
#ifdef CHECK
int len = buf->len;
#endif
+ first = last = 0x7FFFFFFF;
+
for (FcCharSetIterStart (c, &ci);
ci.leaf;
FcCharSetIterNext (c, &ci))
{
- if (!FcCharSetUnparseValue (buf, ci.ucs4))
- return FcFalse;
for (i = 0; i < 256/32; i++)
- if (!FcCharSetUnparseValue (buf, ci.leaf->map[i]))
- return FcFalse;
+ {
+ FcChar32 bits = ci.leaf->map[i];
+ FcChar32 u = ci.ucs4 + i * 32;
+
+ while (bits)
+ {
+ if (bits & 1)
+ {
+ if (u != last + 1)
+ {
+ if (last != first)
+ {
+ FcStrBufChar (buf, '-');
+ FcNameUnparseUnicode (buf, last);
+ }
+ if (last != 0x7FFFFFFF)
+ FcStrBufChar (buf, ' ');
+ /* Start new range. */
+ first = u;
+ FcNameUnparseUnicode (buf, u);
+ }
+ last = u;
+ }
+ bits >>= 1;
+ u++;
+ }
+ }
+ }
+ if (last != first)
+ {
+ FcStrBufChar (buf, '-');
+ FcNameUnparseUnicode (buf, last);
}
#ifdef CHECK
{
* PERFORMANCE OF THIS SOFTWARE.
*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "fcint.h"
+#include <errno.h>
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#if HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
#if HAVE_FCNTL_H
#include <fcntl.h>
#endif
#include <stdarg.h>
#include <stdlib.h>
+#include <string.h>
+#include <time.h>
#ifdef O_CLOEXEC
#define FC_O_CLOEXEC O_CLOEXEC
#else
#define FC_O_LARGEFILE 0
#endif
+#ifdef O_BINARY
+#define FC_O_BINARY O_BINARY
+#else
+#define FC_O_BINARY 0
+#endif
+#ifdef O_TEMPORARY
+#define FC_O_TEMPORARY O_TEMPORARY
+#else
+#define FC_O_TEMPORARY 0
+#endif
+#ifdef O_NOINHERIT
+#define FC_O_NOINHERIT O_NOINHERIT
+#else
+#define FC_O_NOINHERIT 0
+#endif
+
+#if !defined (HAVE_MKOSTEMP) && !defined(HAVE_MKSTEMP) && !defined(HAVE__MKTEMP_S)
+static int
+mkstemp (char *template)
+{
+ static const char s[] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
+ int fd, i;
+ size_t l;
+
+ if (template == NULL)
+ {
+ errno = EINVAL;
+ return -1;
+ }
+ l = strlen (template);
+ if (l < 6 || strcmp (&template[l - 6], "XXXXXX") != 0)
+ {
+ errno = EINVAL;
+ return -1;
+ }
+ do
+ {
+ errno = 0;
+ for (i = l - 6; i < l; i++)
+ {
+ int r = FcRandom ();
+ template[i] = s[r % 62];
+ }
+ fd = FcOpen (template, FC_O_BINARY | O_CREAT | O_EXCL | FC_O_TEMPORARY | FC_O_NOINHERIT | O_RDWR, 0600);
+ } while (fd < 0 && errno == EEXIST);
+ if (fd >= 0)
+ errno = 0;
+
+ return fd;
+}
+#define HAVE_MKSTEMP 1
+#endif
int
FcOpen(const char *pathname, int flags, ...)
# ifdef F_DUPFD_CLOEXEC
if (fd != -1)
{
- int newfd = fcntl(fd, F_DUPFD_CLOEXEC);
+ int newfd = fcntl(fd, F_DUPFD_CLOEXEC, STDIN_FILENO);
close(fd);
fd = newfd;
if (_mktemp_s(template, strlen(template) + 1) != 0)
return -1;
fd = FcOpen(template, O_RDWR | O_EXCL | O_CREAT, 0600);
-#else
-#error no secure functions to create a temporary file
#endif
return fd;
}
+
+int32_t
+FcRandom(void)
+{
+ int32_t result;
+
+#if HAVE_RANDOM_R
+ static struct random_data fcrandbuf;
+ static char statebuf[256];
+ static FcBool initialized = FcFalse;
+#ifdef _AIX
+ static char *retval;
+ long res;
+#endif
+
+ if (initialized != FcTrue)
+ {
+#ifdef _AIX
+ initstate_r (time (NULL), statebuf, 256, &retval, &fcrandbuf);
+#else
+ initstate_r (time (NULL), statebuf, 256, &fcrandbuf);
+#endif
+ initialized = FcTrue;
+ }
+
+#ifdef _AIX
+ random_r (&res, &fcrandbuf);
+ result = (int32_t)res;
+#else
+ random_r (&fcrandbuf, &result);
+#endif
+#elif HAVE_RANDOM
+ static char statebuf[256];
+ char *state;
+ static FcBool initialized = FcFalse;
+
+ if (initialized != FcTrue)
+ {
+ state = initstate (time (NULL), statebuf, 256);
+ initialized = FcTrue;
+ }
+ else
+ state = setstate (statebuf);
+
+ result = random ();
+
+ setstate (state);
+#elif HAVE_LRAND48
+ result = lrand48 ();
+#elif HAVE_RAND_R
+ static unsigned int seed = time (NULL);
+
+ result = rand_r (&seed);
+#elif HAVE_RAND
+ static FcBool initialized = FcFalse;
+
+ if (initialized != FcTrue)
+ {
+ srand (time (NULL));
+ initialized = FcTrue;
+ }
+ result = rand ();
+#else
+# error no random number generator function available.
+#endif
+
+ return result;
+}
+
+#ifdef _WIN32
+#include <direct.h>
+#define mkdir(path,mode) _mkdir(path)
+#endif
+
+FcBool
+FcMakeDirectory (const FcChar8 *dir)
+{
+ FcChar8 *parent;
+ FcBool ret;
+
+ if (strlen ((char *) dir) == 0)
+ return FcFalse;
+
+ parent = FcStrDirname (dir);
+ if (!parent)
+ return FcFalse;
+ if (access ((char *) parent, F_OK) == 0)
+ ret = mkdir ((char *) dir, 0755) == 0 && chmod ((char *) dir, 0755) == 0;
+ else if (access ((char *) parent, F_OK) == -1)
+ ret = FcMakeDirectory (parent) && (mkdir ((char *) dir, 0755) == 0) && chmod ((char *) dir, 0755) == 0;
+ else
+ ret = FcFalse;
+ FcStrFree (parent);
+ return ret;
+}
+
+#define __fccompat__
+#include "fcaliastail.h"
+#undef __fccompat__
static void
_FcValuePrintFile (FILE *f, const FcValue v)
{
+ FcRange r;
+
switch (v.type) {
+ case FcTypeUnknown:
+ fprintf (f, "<unknown>");
+ break;
case FcTypeVoid:
fprintf (f, "<void>");
break;
case FcTypeFTFace:
fprintf (f, "face");
break;
+ case FcTypeRange:
+ r = FcRangeCanonicalize (v.u.r);
+ fprintf (f, "(%g, %g)", r.u.d.begin, r.u.d.end);
+ break;
}
}
FcValuePrintWithPosition (const FcValue v, FcBool show_pos_mark)
{
if (show_pos_mark)
- printf (" [insert here] ");
+ printf (" [marker] ");
else
printf (" ");
_FcValuePrintFile (stdout, v);
case FcValueBindingSame:
printf ("(=)");
break;
+ default:
+ /* shouldn't be reached */
+ printf ("(?)");
+ break;
}
}
FcValueBindingPrint (l);
}
if (!pos)
- printf (" [insert here]");
+ printf (" [marker]");
}
void
case FcOpPrependFirst: printf ("PrependFirst"); break;
case FcOpAppend: printf ("Append"); break;
case FcOpAppendLast: printf ("AppendLast"); break;
+ case FcOpDelete: printf ("Delete"); break;
+ case FcOpDeleteAll: printf ("DeleteAll"); break;
case FcOpQuest: printf ("Quest"); break;
case FcOpOr: printf ("Or"); break;
case FcOpAnd: printf ("And"); break;
void
FcExprPrint (const FcExpr *expr)
{
+ FcRange r;
+
if (!expr) printf ("none");
else switch (FC_OP_GET_OP (expr->op)) {
case FcOpInteger: printf ("%d", expr->u.ival); break;
FcExprPrint (expr->u.mexpr->yy);
printf ("]");
break;
- case FcOpRange: break;
+ case FcOpRange:
+ r = FcRangeCanonicalize (expr->u.rval);
+ printf ("(%g, %g)", r.u.d.begin, r.u.d.end);
+ break;
case FcOpBool: printf ("%s", expr->u.bval ? "true" : "false"); break;
case FcOpCharSet: printf ("charset\n"); break;
case FcOpLangSet:
void
FcSubstPrint (const FcSubst *subst)
{
- FcEdit *e;
- FcTest *t;
+ FcRule *r;
+ FcRuleType last_type = FcRuleUnknown;
printf ("match\n");
- for (t = subst->test; t; t = t->next)
- {
- printf ("\t");
- FcTestPrint (t);
- }
- printf ("edit\n");
- for (e = subst->edit; e; e = e->next)
+ for (r = subst->rule; r; r = r->next)
{
+ if (last_type != r->type)
+ {
+ switch (r->type) {
+ case FcRuleTest:
+ printf ("[test]\n");
+ break;
+ case FcRuleEdit:
+ printf ("[edit]\n");
+ break;
+ default:
+ break;
+ }
+ last_type = r->type;
+ }
printf ("\t");
- FcEditPrint (e);
- printf (";\n");
+ switch (r->type) {
+ case FcRuleTest:
+ FcTestPrint (r->u.test);
+ break;
+ case FcRuleEdit:
+ FcEditPrint (r->u.edit);
+ printf (";\n");
+ break;
+ default:
+ break;
+ }
}
printf ("\n");
}
*/
#include "fcint.h"
+#include <limits.h>
#include <string.h>
/* MT-safe */
return lang;
}
+static FcChar8 *default_prgname;
+
+FcChar8 *
+FcGetPrgname (void)
+{
+ FcChar8 *prgname;
+retry:
+ prgname = fc_atomic_ptr_get (&default_prgname);
+ if (!prgname)
+ {
+#ifdef _WIN32
+ char buf[MAX_PATH+1];
+
+ /* TODO This is ASCII-only; fix it. */
+ if (GetModuleFileNameA (GetModuleHandle (NULL), buf, sizeof (buf) / sizeof (buf[0])) > 0)
+ {
+ char *p;
+ unsigned int len;
+
+ p = strrchr (buf, '\\');
+ if (p)
+ p++;
+ else
+ p = buf;
+
+ len = strlen (p);
+
+ if (len > 4 && 0 == strcmp (p + len - 4, ".exe"))
+ {
+ len -= 4;
+ buf[len] = '\0';
+ }
+
+ prgname = FcStrdup (p);
+ }
+#elif defined (HAVE_GETPROGNAME)
+ const char *q = getprogname ();
+ if (q)
+ prgname = FcStrdup (q);
+ else
+ prgname = FcStrdup ("");
+#else
+# if defined (HAVE_GETEXECNAME)
+ const char *p = getexecname ();
+# elif defined (HAVE_READLINK)
+ char buf[PATH_MAX + 1];
+ int len;
+ char *p = NULL;
+
+ len = readlink ("/proc/self/exe", buf, sizeof (buf) - 1);
+ if (len != -1)
+ {
+ buf[len] = '\0';
+ p = buf;
+ }
+# else
+ char *p = NULL;
+# endif
+ if (p)
+ {
+ char *r = strrchr (p, '/');
+ if (r)
+ r++;
+ else
+ r = p;
+
+ prgname = FcStrdup (r);
+ }
+
+ if (!prgname)
+ prgname = FcStrdup ("");
+#endif
+
+ if (!fc_atomic_ptr_cmpexch (&default_prgname, NULL, prgname)) {
+ free (prgname);
+ goto retry;
+ }
+ }
+
+ if (prgname && !prgname[0])
+ return NULL;
+
+ return prgname;
+}
+
void
FcDefaultFini (void)
{
FcChar8 *lang;
FcStrSet *langs;
+ FcChar8 *prgname;
lang = fc_atomic_ptr_get (&default_lang);
if (lang && fc_atomic_ptr_cmpexch (&default_lang, lang, NULL)) {
FcRefInit (&langs->ref, 1);
FcStrSetDestroy (langs);
}
+
+ prgname = fc_atomic_ptr_get (&default_prgname);
+ if (prgname && fc_atomic_ptr_cmpexch (&default_prgname, prgname, NULL)) {
+ free (prgname);
+ }
}
void
{
FcValue v, namelang, v2;
int i;
+ double dpi, size, scale, pixelsize;
if (FcPatternObjectGet (pattern, FC_WEIGHT_OBJECT, 0, &v) == FcResultNoMatch )
- FcPatternObjectAddInteger (pattern, FC_WEIGHT_OBJECT, FC_WEIGHT_MEDIUM);
+ FcPatternObjectAddInteger (pattern, FC_WEIGHT_OBJECT, FC_WEIGHT_NORMAL);
if (FcPatternObjectGet (pattern, FC_SLANT_OBJECT, 0, &v) == FcResultNoMatch)
FcPatternObjectAddInteger (pattern, FC_SLANT_OBJECT, FC_SLANT_ROMAN);
if (FcPatternObjectGet (pattern, FcBoolDefaults[i].field, 0, &v) == FcResultNoMatch)
FcPatternObjectAddBool (pattern, FcBoolDefaults[i].field, FcBoolDefaults[i].value);
- if (FcPatternObjectGet (pattern, FC_PIXEL_SIZE_OBJECT, 0, &v) == FcResultNoMatch)
- {
- double dpi, size, scale;
+ if (FcPatternObjectGetDouble (pattern, FC_SIZE_OBJECT, 0, &size) != FcResultMatch)
+ size = 12.0L;
+ if (FcPatternObjectGetDouble (pattern, FC_SCALE_OBJECT, 0, &scale) != FcResultMatch)
+ scale = 1.0;
+ if (FcPatternObjectGetDouble (pattern, FC_DPI_OBJECT, 0, &dpi) != FcResultMatch)
+ dpi = 75.0;
- if (FcPatternObjectGetDouble (pattern, FC_SIZE_OBJECT, 0, &size) != FcResultMatch)
- {
- size = 12.0;
- (void) FcPatternObjectDel (pattern, FC_SIZE_OBJECT);
- FcPatternObjectAddDouble (pattern, FC_SIZE_OBJECT, size);
- }
- if (FcPatternObjectGetDouble (pattern, FC_SCALE_OBJECT, 0, &scale) != FcResultMatch)
- {
- scale = 1.0;
- (void) FcPatternObjectDel (pattern, FC_SCALE_OBJECT);
- FcPatternObjectAddDouble (pattern, FC_SCALE_OBJECT, scale);
- }
- size *= scale;
- if (FcPatternObjectGetDouble (pattern, FC_DPI_OBJECT, 0, &dpi) != FcResultMatch)
- {
- dpi = 75.0;
- (void) FcPatternObjectDel (pattern, FC_DPI_OBJECT);
- FcPatternObjectAddDouble (pattern, FC_DPI_OBJECT, dpi);
- }
- size *= dpi / 72.0;
- FcPatternObjectAddDouble (pattern, FC_PIXEL_SIZE_OBJECT, size);
+ if (FcPatternObjectGet (pattern, FC_PIXEL_SIZE_OBJECT, 0, &v) != FcResultMatch)
+ {
+ (void) FcPatternObjectDel (pattern, FC_SCALE_OBJECT);
+ FcPatternObjectAddDouble (pattern, FC_SCALE_OBJECT, scale);
+ pixelsize = size * scale;
+ (void) FcPatternObjectDel (pattern, FC_DPI_OBJECT);
+ FcPatternObjectAddDouble (pattern, FC_DPI_OBJECT, dpi);
+ pixelsize *= dpi / 72.0;
+ FcPatternObjectAddDouble (pattern, FC_PIXEL_SIZE_OBJECT, pixelsize);
}
+ else
+ {
+ size = v.u.d;
+ size = size / dpi * 72.0 / scale;
+ }
+ (void) FcPatternObjectDel (pattern, FC_SIZE_OBJECT);
+ FcPatternObjectAddDouble (pattern, FC_SIZE_OBJECT, size);
if (FcPatternObjectGet (pattern, FC_FONTVERSION_OBJECT, 0, &v) == FcResultNoMatch)
{
* exact matched "en" has higher score than ll-cc.
*/
v2.type = FcTypeString;
- v2.u.s = FcStrdup ("en-us");
+ v2.u.s = (FcChar8 *) "en-us";
if (FcPatternObjectGet (pattern, FC_FAMILYLANG_OBJECT, 0, &v) == FcResultNoMatch)
{
FcPatternObjectAdd (pattern, FC_FAMILYLANG_OBJECT, namelang, FcTrue);
FcPatternObjectAdd (pattern, FC_FULLNAMELANG_OBJECT, namelang, FcTrue);
FcPatternObjectAddWithBinding (pattern, FC_FULLNAMELANG_OBJECT, v2, FcValueBindingWeak, FcTrue);
}
- FcFree (v2.u.s);
+
+ if (FcPatternObjectGet (pattern, FC_PRGNAME_OBJECT, 0, &v) == FcResultNoMatch)
+ {
+ FcChar8 *prgname = FcGetPrgname ();
+ if (prgname)
+ FcPatternObjectAddString (pattern, FC_PRGNAME_OBJECT, prgname);
+ }
}
#define __fcdefault__
#include "fcaliastail.h"
#endif
}
+FcBool
+FcFileIsFile (const FcChar8 *file)
+{
+ struct stat statb;
+
+ if (FcStat (file, &statb) != 0)
+ return FcFalse;
+ return S_ISREG (statb.st_mode);
+}
+
static FcBool
FcFileScanFontConfig (FcFontSet *set,
FcBlanks *blanks,
FcBool ret = FcTrue;
int id;
int count = 0;
+ const FcChar8 *sysroot = FcConfigGetSysRoot (config);
id = 0;
do
font = FcFreeTypeQuery (file, id, blanks, &count);
if (FcDebug () & FC_DBG_SCAN)
printf ("done\n");
+ /*
+ * Get rid of sysroot here so that targeting scan rule may contains FC_FILE pattern
+ * and they should usually expect without sysroot.
+ */
+ if (sysroot)
+ {
+ size_t len = strlen ((const char *)sysroot);
+ FcChar8 *f = NULL;
+
+ if (FcPatternObjectGetString (font, FC_FILE_OBJECT, 0, &f) == FcResultMatch &&
+ strncmp ((const char *)f, (const char *)sysroot, len) == 0)
+ {
+ FcChar8 *s = FcStrdup (f);
+ FcPatternObjectDel (font, FC_FILE_OBJECT);
+ if (s[len] != '/')
+ len--;
+ else if (s[len+1] == '/')
+ len++;
+ FcPatternObjectAddString (font, FC_FILE_OBJECT, &s[len]);
+ FcStrFree (s);
+ }
+ }
/*
* Edit pattern with user-defined rules
FcConfig *config)
{
if (FcFileIsDir (file))
- return FcStrSetAdd (dirs, file);
+ {
+ const FcChar8 *sysroot = FcConfigGetSysRoot (config);
+ const FcChar8 *d = file;
+ size_t len;
+
+ if (sysroot)
+ {
+ len = strlen ((const char *)sysroot);
+ if (strncmp ((const char *)file, (const char *)sysroot, len) == 0)
+ {
+ if (file[len] != '/')
+ len--;
+ else if (file[len+1] == '/')
+ len++;
+ d = &file[len];
+ }
+ }
+ return FcStrSetAdd (dirs, d);
+ }
else
- return FcFileScanFontConfig (set, blanks, file, config);
+ {
+ if (set)
+ return FcFileScanFontConfig (set, blanks, file, config);
+ else
+ return FcTrue;
+ }
}
FcBool
FcBlanks *blanks,
const FcChar8 *dir,
FcBool force, /* XXX unused */
- FcConfig *config)
+ FcConfig *config,
+ FcBool scanOnly)
{
DIR *d;
struct dirent *e;
if (!set && !dirs)
return FcTrue;
- if (!blanks)
+ if (!blanks && !scanOnly)
blanks = FcConfigGetBlanks (config);
/* freed below */
* Scan file files to build font patterns
*/
for (i = 0; i < files->num; i++)
- FcFileScanConfig (set, dirs, blanks, files->strs[i], config);
+ {
+ if (scanOnly)
+ {
+ if (FcFileIsDir (files->strs[i]))
+ FcFileScanConfig (NULL, dirs, NULL, files->strs[i], config);
+ }
+ else
+ {
+ FcFileScanConfig (set, dirs, blanks, files->strs[i], config);
+ }
+ }
bail2:
FcStrSetDestroy (files);
if (cache || !force)
return FcFalse;
- return FcDirScanConfig (set, dirs, blanks, dir, force, FcConfigGetCurrent ());
+ return FcDirScanConfig (set, dirs, blanks, dir, force, FcConfigGetCurrent (), FcFalse);
+}
+
+FcBool
+FcDirScanOnly (FcStrSet *dirs,
+ const FcChar8 *dir,
+ FcConfig *config)
+{
+ return FcDirScanConfig (NULL, dirs, NULL, dir, FcTrue, config, FcTrue);
}
/*
FcFontSet *set;
FcCache *cache = NULL;
struct stat dir_stat;
+ const FcChar8 *sysroot = FcConfigGetSysRoot (config);
+ FcChar8 *d;
+
+ if (sysroot)
+ d = FcStrBuildFilename (sysroot, dir, NULL);
+ else
+ d = FcStrdup (dir);
if (FcDebug () & FC_DBG_FONTSET)
- printf ("cache scan dir %s\n", dir);
+ printf ("cache scan dir %s\n", d);
- if (FcStatChecksum (dir, &dir_stat) < 0)
+ if (FcStatChecksum (d, &dir_stat) < 0)
goto bail;
set = FcFontSetCreate();
/*
* Scan the dir
*/
- if (!FcDirScanConfig (set, dirs, NULL, dir, FcTrue, config))
+ if (!FcDirScanConfig (set, dirs, NULL, d, FcTrue, config, FcFalse))
goto bail2;
/*
bail1:
FcFontSetDestroy (set);
bail:
+ FcStrFree (d);
+
return cache;
}
+FcCache *
+FcDirCacheRescan (const FcChar8 *dir, FcConfig *config)
+{
+ FcCache *cache;
+ FcCache *new = NULL;
+ struct stat dir_stat;
+ FcStrSet *dirs;
+ const FcChar8 *sysroot = FcConfigGetSysRoot (config);
+ FcChar8 *d = NULL;
+
+ cache = FcDirCacheLoad (dir, config, NULL);
+ if (!cache)
+ goto bail;
+
+ if (sysroot)
+ d = FcStrBuildFilename (sysroot, dir, NULL);
+ else
+ d = FcStrdup (dir);
+ if (FcStatChecksum (d, &dir_stat) < 0)
+ goto bail;
+ dirs = FcStrSetCreate ();
+ if (!dirs)
+ goto bail;
+
+ /*
+ * Scan the dir
+ */
+ if (!FcDirScanConfig (NULL, dirs, NULL, d, FcTrue, config, FcFalse))
+ goto bail1;
+ /*
+ * Rebuild the cache object
+ */
+ new = FcDirCacheRebuild (cache, &dir_stat, dirs);
+ if (!new)
+ goto bail1;
+ FcDirCacheUnload (cache);
+ /*
+ * Write out the cache file, ignoring any troubles
+ */
+ FcDirCacheWrite (new, config);
+
+bail1:
+ FcStrSetDestroy (dirs);
+bail:
+ if (d)
+ FcStrFree (d);
+
+ return new;
+}
+
/*
* Read (or construct) the cache for a directory
*/
#define NUM_FC_MAC_ROMAN_FAKE (int) (sizeof (fcMacRomanFake) / sizeof (fcMacRomanFake[0]))
+
+/* From http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/ROMAN.TXT */
+static const FcChar16 fcMacRomanNonASCIIToUnicode[128] = {
+ /*0x80*/ 0x00C4, /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+ /*0x81*/ 0x00C5, /* LATIN CAPITAL LETTER A WITH RING ABOVE */
+ /*0x82*/ 0x00C7, /* LATIN CAPITAL LETTER C WITH CEDILLA */
+ /*0x83*/ 0x00C9, /* LATIN CAPITAL LETTER E WITH ACUTE */
+ /*0x84*/ 0x00D1, /* LATIN CAPITAL LETTER N WITH TILDE */
+ /*0x85*/ 0x00D6, /* LATIN CAPITAL LETTER O WITH DIAERESIS */
+ /*0x86*/ 0x00DC, /* LATIN CAPITAL LETTER U WITH DIAERESIS */
+ /*0x87*/ 0x00E1, /* LATIN SMALL LETTER A WITH ACUTE */
+ /*0x88*/ 0x00E0, /* LATIN SMALL LETTER A WITH GRAVE */
+ /*0x89*/ 0x00E2, /* LATIN SMALL LETTER A WITH CIRCUMFLEX */
+ /*0x8A*/ 0x00E4, /* LATIN SMALL LETTER A WITH DIAERESIS */
+ /*0x8B*/ 0x00E3, /* LATIN SMALL LETTER A WITH TILDE */
+ /*0x8C*/ 0x00E5, /* LATIN SMALL LETTER A WITH RING ABOVE */
+ /*0x8D*/ 0x00E7, /* LATIN SMALL LETTER C WITH CEDILLA */
+ /*0x8E*/ 0x00E9, /* LATIN SMALL LETTER E WITH ACUTE */
+ /*0x8F*/ 0x00E8, /* LATIN SMALL LETTER E WITH GRAVE */
+ /*0x90*/ 0x00EA, /* LATIN SMALL LETTER E WITH CIRCUMFLEX */
+ /*0x91*/ 0x00EB, /* LATIN SMALL LETTER E WITH DIAERESIS */
+ /*0x92*/ 0x00ED, /* LATIN SMALL LETTER I WITH ACUTE */
+ /*0x93*/ 0x00EC, /* LATIN SMALL LETTER I WITH GRAVE */
+ /*0x94*/ 0x00EE, /* LATIN SMALL LETTER I WITH CIRCUMFLEX */
+ /*0x95*/ 0x00EF, /* LATIN SMALL LETTER I WITH DIAERESIS */
+ /*0x96*/ 0x00F1, /* LATIN SMALL LETTER N WITH TILDE */
+ /*0x97*/ 0x00F3, /* LATIN SMALL LETTER O WITH ACUTE */
+ /*0x98*/ 0x00F2, /* LATIN SMALL LETTER O WITH GRAVE */
+ /*0x99*/ 0x00F4, /* LATIN SMALL LETTER O WITH CIRCUMFLEX */
+ /*0x9A*/ 0x00F6, /* LATIN SMALL LETTER O WITH DIAERESIS */
+ /*0x9B*/ 0x00F5, /* LATIN SMALL LETTER O WITH TILDE */
+ /*0x9C*/ 0x00FA, /* LATIN SMALL LETTER U WITH ACUTE */
+ /*0x9D*/ 0x00F9, /* LATIN SMALL LETTER U WITH GRAVE */
+ /*0x9E*/ 0x00FB, /* LATIN SMALL LETTER U WITH CIRCUMFLEX */
+ /*0x9F*/ 0x00FC, /* LATIN SMALL LETTER U WITH DIAERESIS */
+ /*0xA0*/ 0x2020, /* DAGGER */
+ /*0xA1*/ 0x00B0, /* DEGREE SIGN */
+ /*0xA2*/ 0x00A2, /* CENT SIGN */
+ /*0xA3*/ 0x00A3, /* POUND SIGN */
+ /*0xA4*/ 0x00A7, /* SECTION SIGN */
+ /*0xA5*/ 0x2022, /* BULLET */
+ /*0xA6*/ 0x00B6, /* PILCROW SIGN */
+ /*0xA7*/ 0x00DF, /* LATIN SMALL LETTER SHARP S */
+ /*0xA8*/ 0x00AE, /* REGISTERED SIGN */
+ /*0xA9*/ 0x00A9, /* COPYRIGHT SIGN */
+ /*0xAA*/ 0x2122, /* TRADE MARK SIGN */
+ /*0xAB*/ 0x00B4, /* ACUTE ACCENT */
+ /*0xAC*/ 0x00A8, /* DIAERESIS */
+ /*0xAD*/ 0x2260, /* NOT EQUAL TO */
+ /*0xAE*/ 0x00C6, /* LATIN CAPITAL LETTER AE */
+ /*0xAF*/ 0x00D8, /* LATIN CAPITAL LETTER O WITH STROKE */
+ /*0xB0*/ 0x221E, /* INFINITY */
+ /*0xB1*/ 0x00B1, /* PLUS-MINUS SIGN */
+ /*0xB2*/ 0x2264, /* LESS-THAN OR EQUAL TO */
+ /*0xB3*/ 0x2265, /* GREATER-THAN OR EQUAL TO */
+ /*0xB4*/ 0x00A5, /* YEN SIGN */
+ /*0xB5*/ 0x00B5, /* MICRO SIGN */
+ /*0xB6*/ 0x2202, /* PARTIAL DIFFERENTIAL */
+ /*0xB7*/ 0x2211, /* N-ARY SUMMATION */
+ /*0xB8*/ 0x220F, /* N-ARY PRODUCT */
+ /*0xB9*/ 0x03C0, /* GREEK SMALL LETTER PI */
+ /*0xBA*/ 0x222B, /* INTEGRAL */
+ /*0xBB*/ 0x00AA, /* FEMININE ORDINAL INDICATOR */
+ /*0xBC*/ 0x00BA, /* MASCULINE ORDINAL INDICATOR */
+ /*0xBD*/ 0x03A9, /* GREEK CAPITAL LETTER OMEGA */
+ /*0xBE*/ 0x00E6, /* LATIN SMALL LETTER AE */
+ /*0xBF*/ 0x00F8, /* LATIN SMALL LETTER O WITH STROKE */
+ /*0xC0*/ 0x00BF, /* INVERTED QUESTION MARK */
+ /*0xC1*/ 0x00A1, /* INVERTED EXCLAMATION MARK */
+ /*0xC2*/ 0x00AC, /* NOT SIGN */
+ /*0xC3*/ 0x221A, /* SQUARE ROOT */
+ /*0xC4*/ 0x0192, /* LATIN SMALL LETTER F WITH HOOK */
+ /*0xC5*/ 0x2248, /* ALMOST EQUAL TO */
+ /*0xC6*/ 0x2206, /* INCREMENT */
+ /*0xC7*/ 0x00AB, /* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */
+ /*0xC8*/ 0x00BB, /* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */
+ /*0xC9*/ 0x2026, /* HORIZONTAL ELLIPSIS */
+ /*0xCA*/ 0x00A0, /* NO-BREAK SPACE */
+ /*0xCB*/ 0x00C0, /* LATIN CAPITAL LETTER A WITH GRAVE */
+ /*0xCC*/ 0x00C3, /* LATIN CAPITAL LETTER A WITH TILDE */
+ /*0xCD*/ 0x00D5, /* LATIN CAPITAL LETTER O WITH TILDE */
+ /*0xCE*/ 0x0152, /* LATIN CAPITAL LIGATURE OE */
+ /*0xCF*/ 0x0153, /* LATIN SMALL LIGATURE OE */
+ /*0xD0*/ 0x2013, /* EN DASH */
+ /*0xD1*/ 0x2014, /* EM DASH */
+ /*0xD2*/ 0x201C, /* LEFT DOUBLE QUOTATION MARK */
+ /*0xD3*/ 0x201D, /* RIGHT DOUBLE QUOTATION MARK */
+ /*0xD4*/ 0x2018, /* LEFT SINGLE QUOTATION MARK */
+ /*0xD5*/ 0x2019, /* RIGHT SINGLE QUOTATION MARK */
+ /*0xD6*/ 0x00F7, /* DIVISION SIGN */
+ /*0xD7*/ 0x25CA, /* LOZENGE */
+ /*0xD8*/ 0x00FF, /* LATIN SMALL LETTER Y WITH DIAERESIS */
+ /*0xD9*/ 0x0178, /* LATIN CAPITAL LETTER Y WITH DIAERESIS */
+ /*0xDA*/ 0x2044, /* FRACTION SLASH */
+ /*0xDB*/ 0x20AC, /* EURO SIGN */
+ /*0xDC*/ 0x2039, /* SINGLE LEFT-POINTING ANGLE QUOTATION MARK */
+ /*0xDD*/ 0x203A, /* SINGLE RIGHT-POINTING ANGLE QUOTATION MARK */
+ /*0xDE*/ 0xFB01, /* LATIN SMALL LIGATURE FI */
+ /*0xDF*/ 0xFB02, /* LATIN SMALL LIGATURE FL */
+ /*0xE0*/ 0x2021, /* DOUBLE DAGGER */
+ /*0xE1*/ 0x00B7, /* MIDDLE DOT */
+ /*0xE2*/ 0x201A, /* SINGLE LOW-9 QUOTATION MARK */
+ /*0xE3*/ 0x201E, /* DOUBLE LOW-9 QUOTATION MARK */
+ /*0xE4*/ 0x2030, /* PER MILLE SIGN */
+ /*0xE5*/ 0x00C2, /* LATIN CAPITAL LETTER A WITH CIRCUMFLEX */
+ /*0xE6*/ 0x00CA, /* LATIN CAPITAL LETTER E WITH CIRCUMFLEX */
+ /*0xE7*/ 0x00C1, /* LATIN CAPITAL LETTER A WITH ACUTE */
+ /*0xE8*/ 0x00CB, /* LATIN CAPITAL LETTER E WITH DIAERESIS */
+ /*0xE9*/ 0x00C8, /* LATIN CAPITAL LETTER E WITH GRAVE */
+ /*0xEA*/ 0x00CD, /* LATIN CAPITAL LETTER I WITH ACUTE */
+ /*0xEB*/ 0x00CE, /* LATIN CAPITAL LETTER I WITH CIRCUMFLEX */
+ /*0xEC*/ 0x00CF, /* LATIN CAPITAL LETTER I WITH DIAERESIS */
+ /*0xED*/ 0x00CC, /* LATIN CAPITAL LETTER I WITH GRAVE */
+ /*0xEE*/ 0x00D3, /* LATIN CAPITAL LETTER O WITH ACUTE */
+ /*0xEF*/ 0x00D4, /* LATIN CAPITAL LETTER O WITH CIRCUMFLEX */
+ /*0xF0*/ 0xF8FF, /* Apple logo */
+ /*0xF1*/ 0x00D2, /* LATIN CAPITAL LETTER O WITH GRAVE */
+ /*0xF2*/ 0x00DA, /* LATIN CAPITAL LETTER U WITH ACUTE */
+ /*0xF3*/ 0x00DB, /* LATIN CAPITAL LETTER U WITH CIRCUMFLEX */
+ /*0xF4*/ 0x00D9, /* LATIN CAPITAL LETTER U WITH GRAVE */
+ /*0xF5*/ 0x0131, /* LATIN SMALL LETTER DOTLESS I */
+ /*0xF6*/ 0x02C6, /* MODIFIER LETTER CIRCUMFLEX ACCENT */
+ /*0xF7*/ 0x02DC, /* SMALL TILDE */
+ /*0xF8*/ 0x00AF, /* MACRON */
+ /*0xF9*/ 0x02D8, /* BREVE */
+ /*0xFA*/ 0x02D9, /* DOT ABOVE */
+ /*0xFB*/ 0x02DA, /* RING ABOVE */
+ /*0xFC*/ 0x00B8, /* CEDILLA */
+ /*0xFD*/ 0x02DD, /* DOUBLE ACUTE ACCENT */
+ /*0xFE*/ 0x02DB, /* OGONEK */
+ /*0xFF*/ 0x02C7, /* CARON */
+};
+
#if USE_ICONV
#include <iconv.h>
#endif
*u8 = '\0';
goto done;
}
+ if (!strcmp (fromcode, FC_ENCODING_MAC_ROMAN))
+ {
+ FcChar8 *src = sname->string;
+ int src_len = sname->string_len;
+ int olen;
+ FcChar8 *u8;
+ FcChar32 ucs4;
+
+ /*
+ * Convert Latin1 to Utf8. Freed below
+ */
+ utf8 = malloc (src_len * 3 + 1);
+ if (!utf8)
+ return 0;
+
+ u8 = utf8;
+ while (src_len > 0)
+ {
+ ucs4 = *src++;
+ if (ucs4 >= 128)
+ ucs4 = fcMacRomanNonASCIIToUnicode[ucs4 - 128];
+ src_len--;
+ olen = FcUcs4ToUtf8 (ucs4, u8);
+ u8 += olen;
+ }
+ *u8 = '\0';
+ goto done;
+ }
+
#if USE_ICONV
cd = iconv_open ("UTF-8", fromcode);
if (cd && cd != (iconv_t) (-1))
/* Order is significant. For example, some B&H fonts are hinted by
URW++, and both strings appear in the notice. */
-static const char notice_foundry_data[] =
- "Bigelow\0b&h\0"
- "Adobe\0adobe\0"
- "Bitstream\0bitstream\0"
- "Monotype\0monotype\0"
- "Linotype\0linotype\0"
- "LINOTYPE-HELL\0linotype\0"
- "IBM\0ibm\0"
- "URW\0urw\0"
- "International Typeface Corporation\0itc\0"
- "Tiro Typeworks\0tiro\0"
- "XFree86\0xfree86\0"
- "Microsoft\0microsoft\0"
- "Omega\0omega\0"
- "Font21\0hwan\0"
- "HanYang System\0hanyang";
-
-struct _notice_foundry {
- /* these are the offsets into the
- * notice_foundry_data array.
- */
- unsigned char notice_offset;
- unsigned char foundry_offset;
-};
-
-static const struct _notice_foundry FcNoticeFoundries[] = {
- { 0, 8 },
- { 12, 18 },
- { 24, 34 },
- { 44, 53 },
- { 62, 71 },
- { 80, 94 },
- { 103, 107 },
- { 111, 115 },
- { 119, 154 },
- { 158, 173 },
- { 178, 186 },
- { 194, 204 },
- { 214, 220 },
- { 226, 233 },
- { 238, 253 }
+static const char *FcNoticeFoundries[][2] =
+ {
+ {"Adobe", "adobe"},
+ {"Bigelow", "b&h"},
+ {"Bitstream", "bitstream"},
+ {"Gnat", "culmus"},
+ {"Iorsh", "culmus"},
+ {"HanYang System", "hanyang"},
+ {"Font21", "hwan"},
+ {"IBM", "ibm"},
+ {"International Typeface Corporation", "itc"},
+ {"Linotype", "linotype"},
+ {"LINOTYPE-HELL", "linotype"},
+ {"Microsoft", "microsoft"},
+ {"Monotype", "monotype"},
+ {"Omega", "omega"},
+ {"Tiro Typeworks", "tiro"},
+ {"URW", "urw"},
+ {"XFree86", "xfree86"},
+ {"Xorg", "xorg"},
};
#define NUM_NOTICE_FOUNDRIES (int) (sizeof (FcNoticeFoundries) / sizeof (FcNoticeFoundries[0]))
if (notice)
for(i = 0; i < NUM_NOTICE_FOUNDRIES; i++)
{
- const struct _notice_foundry *nf = &FcNoticeFoundries[i];
- const char *n = notice_foundry_data + nf->notice_offset;
- const char *f = notice_foundry_data + nf->foundry_offset;
+ const char *n = FcNoticeFoundries[i][0];
+ const char *f = FcNoticeFoundries[i][1];
if (strstr ((const char *) notice, n))
return (const FcChar8 *) f;
{ "B&H", "b&h"},
{ "BITS", "bitstream"},
{ "CANO", "cannon"},
+ { "CLM", "culmus"},
{ "DYNA", "dynalab"},
{ "EPSN", "epson"},
{ "FJ", "fujitsu"},
{ (FC8) "thin", FC_WEIGHT_THIN },
{ (FC8) "extralight", FC_WEIGHT_EXTRALIGHT },
{ (FC8) "ultralight", FC_WEIGHT_ULTRALIGHT },
+ { (FC8) "demilight", FC_WEIGHT_DEMILIGHT },
+ { (FC8) "semilight", FC_WEIGHT_SEMILIGHT },
{ (FC8) "light", FC_WEIGHT_LIGHT },
{ (FC8) "book", FC_WEIGHT_BOOK },
{ (FC8) "regular", FC_WEIGHT_REGULAR },
FcChar8 *style = 0;
int st;
+ char psname[256];
+ const char *tmp;
+
+ FcRange *r = NULL;
+ double lower_size = 0.0L, upper_size = DBL_MAX;
+
+ FcInitDebug (); /* We might be called with no initizalization whatsoever. */
pat = FcPatternCreate ();
if (!pat)
goto bail0;
- if (!FcPatternAddBool (pat, FC_OUTLINE,
- (face->face_flags & FT_FACE_FLAG_SCALABLE) != 0))
- goto bail1;
+ {
+ int has_outline = !!(face->face_flags & FT_FACE_FLAG_SCALABLE);
+ int has_color = 0;
- if (!FcPatternAddBool (pat, FC_SCALABLE,
- (face->face_flags & FT_FACE_FLAG_SCALABLE) != 0))
- goto bail1;
+#ifdef FT_FACE_FLAG_COLOR
+ has_color = !!(face->face_flags & FT_FACE_FLAG_COLOR);
+#endif
+
+ if (!FcPatternAddBool (pat, FC_OUTLINE, has_outline))
+ goto bail1;
+
+#ifdef FT_FACE_FLAG_COLOR
+ if (!FcPatternAddBool (pat, FC_COLOR, has_color))
+ goto bail1;
+#endif
+
+ /* All color fonts are designed to be scaled, even if they only have
+ * bitmap strikes. Client is responsible to scale the bitmaps. This
+ * is in constrast to non-color strikes... */
+ if (!FcPatternAddBool (pat, FC_SCALABLE, has_outline || has_color))
+ goto bail1;
+ }
/*
case TT_NAME_ID_PREFERRED_FAMILY:
case TT_NAME_ID_FONT_FAMILY:
#if 0
- case TT_NAME_ID_PS_NAME:
case TT_NAME_ID_UNIQUE_ID:
#endif
if (FcDebug () & FC_DBG_SCANV)
free (utf8);
if (lang)
{
- /* pad lang list with 'xx' to line up with elt */
+ /* pad lang list with 'und' to line up with elt */
while (*nlangp < *np)
{
- if (!FcPatternAddString (pat, eltlang, (FcChar8 *) "xx"))
+ if (!FcPatternAddString (pat, eltlang, (FcChar8 *) "und"))
goto bail1;
++*nlangp;
}
++nstyle;
}
- if (!nfamily)
+ if (!nfamily && file && *file)
{
FcChar8 *start, *end;
FcChar8 *family;
++nfamily;
}
- if (!FcPatternAddString (pat, FC_FILE, file))
+ /* Add the PostScript name into the cache */
+ tmp = FT_Get_Postscript_Name (face);
+ if (!tmp)
+ {
+ FcChar8 *family, *familylang = NULL;
+ size_t len;
+ int n = 0;
+
+ /* Workaround when FT_Get_Postscript_Name didn't give any name.
+ * try to find out the English family name and convert.
+ */
+ while (FcPatternObjectGetString (pat, FC_FAMILYLANG_OBJECT, n, &familylang) == FcResultMatch)
+ {
+ if (FcStrCmp (familylang, (const FcChar8 *)"en") == 0)
+ break;
+ n++;
+ familylang = NULL;
+ }
+ if (!familylang)
+ n = 0;
+
+ if (FcPatternObjectGetString (pat, FC_FAMILY_OBJECT, n, &family) != FcResultMatch)
+ goto bail1;
+ len = strlen ((const char *)family);
+ /* the literal name in PostScript Language is limited to 127 characters though,
+ * It is the architectural limit. so assuming 255 characters may works enough.
+ */
+ for (i = 0; i < len && i < 255; i++)
+ {
+ /* those characters are not allowed to be the literal name in PostScript */
+ static const char exclusive_chars[] = "\x04()/<>[]{}\t\f\r\n ";
+
+ if (strchr(exclusive_chars, family[i]) != NULL)
+ psname[i] = '-';
+ else
+ psname[i] = family[i];
+ }
+ psname[i] = 0;
+ }
+ else
+ {
+ strncpy (psname, tmp, 255);
+ psname[255] = 0;
+ }
+ if (!FcPatternAddString (pat, FC_POSTSCRIPT_NAME, (const FcChar8 *)psname))
+ goto bail1;
+
+ if (file && *file && !FcPatternAddString (pat, FC_FILE, file))
goto bail1;
if (!FcPatternAddInteger (pat, FC_INDEX, id))
if (os2 && os2->version != 0xffff)
{
- if (os2->usWeightClass == 0)
- ;
- else if (os2->usWeightClass < 150)
- weight = FC_WEIGHT_THIN;
- else if (os2->usWeightClass < 250)
- weight = FC_WEIGHT_EXTRALIGHT;
- else if (os2->usWeightClass < 350)
- weight = FC_WEIGHT_LIGHT;
- else if (os2->usWeightClass < 450)
- weight = FC_WEIGHT_REGULAR;
- else if (os2->usWeightClass < 550)
- weight = FC_WEIGHT_MEDIUM;
- else if (os2->usWeightClass < 650)
- weight = FC_WEIGHT_SEMIBOLD;
- else if (os2->usWeightClass < 750)
- weight = FC_WEIGHT_BOLD;
- else if (os2->usWeightClass < 850)
- weight = FC_WEIGHT_EXTRABOLD;
- else if (os2->usWeightClass < 925)
- weight = FC_WEIGHT_BLACK;
- else if (os2->usWeightClass < 1000)
- weight = FC_WEIGHT_EXTRABLACK;
+ weight = FcWeightFromOpenType (os2->usWeightClass);
if ((FcDebug() & FC_DBG_SCANV) && weight != -1)
printf ("\tos2 weight class %d maps to weight %d\n",
os2->usWeightClass, weight);
free (complex_);
}
+#if defined (HAVE_TT_OS2_USUPPEROPTICALPOINTSIZE) && defined (HAVE_TT_OS2_USLOWEROPTICALPOINTSIZE)
+ if (os2 && os2->version >= 0x0005 && os2->version != 0xffff)
+ {
+ /* usLowerPointSize and usUpperPointSize is actually twips */
+ lower_size = os2->usLowerOpticalPointSize / 20.0L;
+ upper_size = os2->usUpperOpticalPointSize / 20.0L;
+ }
+#endif
+ if (os2)
+ {
+ r = FcRangeCreateDouble (lower_size, upper_size);
+ if (!FcPatternAddRange (pat, FC_SIZE, r))
+ {
+ FcRangeDestroy (r);
+ goto bail1;
+ }
+ FcRangeDestroy (r);
+ }
+ else
+ {
+ for (i = 0; i < face->num_fixed_sizes; i++)
+ {
+ double d = FcGetPixelSize (face, i);
+ r = FcRangeCreateDouble (d, d);
+ if (!FcPatternAddRange (pat, FC_SIZE, r))
+ {
+ FcRangeDestroy (r);
+ goto bail1;
+ }
+ FcRangeDestroy (r);
+ }
+ }
+
/*
* Type 1: Check for FontInfo dictionary information
* Code from g2@magestudios.net (Gerard Escalante)
}
if (width == -1 &&
FT_Get_BDF_Property (face, "SETWIDTH_NAME", &prop) == 0 &&
- prop.type == BDF_PROPERTY_TYPE_ATOM)
+ prop.type == BDF_PROPERTY_TYPE_ATOM && prop.u.atom != NULL)
{
width = FcIsWidth ((FcChar8 *) prop.u.atom);
if (FcDebug () & FC_DBG_SCANV)
if (!FcPatternAddBool (pat, FC_DECORATIVE, decorative))
goto bail1;
+
/*
* Compute the unicode coverage for the font
*/
/* For PCF fonts, override the computed spacing with the one from
the property */
if(FT_Get_BDF_Property(face, "SPACING", &prop) == 0 &&
- prop.type == BDF_PROPERTY_TYPE_ATOM) {
+ prop.type == BDF_PROPERTY_TYPE_ATOM && prop.u.atom != NULL) {
if(!strcmp(prop.u.atom, "c") || !strcmp(prop.u.atom, "C"))
spacing = FC_CHARCELL;
else if(!strcmp(prop.u.atom, "m") || !strcmp(prop.u.atom, "M"))
{
const char *font_format = FT_Get_X11_Font_Format (face);
if (font_format)
- FcPatternAddString (pat, FC_FONTFORMAT, (FcChar8 *) font_format);
+ if (!FcPatternAddString (pat, FC_FONTFORMAT, (FcChar8 *) font_format))
+ goto bail2;
}
#endif
#warning "No FT_Get_Next_Char: Please install freetype version 2.1.0 or newer"
#endif
-typedef struct _FcCharEnt {
- FcChar16 bmp;
- unsigned char encode;
-} FcCharEnt;
-
-struct _FcCharMap {
- const FcCharEnt *ent;
- int nent;
-};
-
-typedef struct _FcFontDecode {
- FT_Encoding encoding;
- const FcCharMap *map;
- FcChar32 max;
-} FcFontDecode;
-
-static const FcCharEnt AdobeSymbolEnt[] = {
- { 0x0020, 0x20 }, /* SPACE # space */
- { 0x0021, 0x21 }, /* EXCLAMATION MARK # exclam */
- { 0x0023, 0x23 }, /* NUMBER SIGN # numbersign */
- { 0x0025, 0x25 }, /* PERCENT SIGN # percent */
- { 0x0026, 0x26 }, /* AMPERSAND # ampersand */
- { 0x0028, 0x28 }, /* LEFT PARENTHESIS # parenleft */
- { 0x0029, 0x29 }, /* RIGHT PARENTHESIS # parenright */
- { 0x002B, 0x2B }, /* PLUS SIGN # plus */
- { 0x002C, 0x2C }, /* COMMA # comma */
- { 0x002E, 0x2E }, /* FULL STOP # period */
- { 0x002F, 0x2F }, /* SOLIDUS # slash */
- { 0x0030, 0x30 }, /* DIGIT ZERO # zero */
- { 0x0031, 0x31 }, /* DIGIT ONE # one */
- { 0x0032, 0x32 }, /* DIGIT TWO # two */
- { 0x0033, 0x33 }, /* DIGIT THREE # three */
- { 0x0034, 0x34 }, /* DIGIT FOUR # four */
- { 0x0035, 0x35 }, /* DIGIT FIVE # five */
- { 0x0036, 0x36 }, /* DIGIT SIX # six */
- { 0x0037, 0x37 }, /* DIGIT SEVEN # seven */
- { 0x0038, 0x38 }, /* DIGIT EIGHT # eight */
- { 0x0039, 0x39 }, /* DIGIT NINE # nine */
- { 0x003A, 0x3A }, /* COLON # colon */
- { 0x003B, 0x3B }, /* SEMICOLON # semicolon */
- { 0x003C, 0x3C }, /* LESS-THAN SIGN # less */
- { 0x003D, 0x3D }, /* EQUALS SIGN # equal */
- { 0x003E, 0x3E }, /* GREATER-THAN SIGN # greater */
- { 0x003F, 0x3F }, /* QUESTION MARK # question */
- { 0x005B, 0x5B }, /* LEFT SQUARE BRACKET # bracketleft */
- { 0x005D, 0x5D }, /* RIGHT SQUARE BRACKET # bracketright */
- { 0x005F, 0x5F }, /* LOW LINE # underscore */
- { 0x007B, 0x7B }, /* LEFT CURLY BRACKET # braceleft */
- { 0x007C, 0x7C }, /* VERTICAL LINE # bar */
- { 0x007D, 0x7D }, /* RIGHT CURLY BRACKET # braceright */
- { 0x00A0, 0x20 }, /* NO-BREAK SPACE # space */
- { 0x00AC, 0xD8 }, /* NOT SIGN # logicalnot */
- { 0x00B0, 0xB0 }, /* DEGREE SIGN # degree */
- { 0x00B1, 0xB1 }, /* PLUS-MINUS SIGN # plusminus */
- { 0x00B5, 0x6D }, /* MICRO SIGN # mu */
- { 0x00D7, 0xB4 }, /* MULTIPLICATION SIGN # multiply */
- { 0x00F7, 0xB8 }, /* DIVISION SIGN # divide */
- { 0x0192, 0xA6 }, /* LATIN SMALL LETTER F WITH HOOK # florin */
- { 0x0391, 0x41 }, /* GREEK CAPITAL LETTER ALPHA # Alpha */
- { 0x0392, 0x42 }, /* GREEK CAPITAL LETTER BETA # Beta */
- { 0x0393, 0x47 }, /* GREEK CAPITAL LETTER GAMMA # Gamma */
- { 0x0394, 0x44 }, /* GREEK CAPITAL LETTER DELTA # Delta */
- { 0x0395, 0x45 }, /* GREEK CAPITAL LETTER EPSILON # Epsilon */
- { 0x0396, 0x5A }, /* GREEK CAPITAL LETTER ZETA # Zeta */
- { 0x0397, 0x48 }, /* GREEK CAPITAL LETTER ETA # Eta */
- { 0x0398, 0x51 }, /* GREEK CAPITAL LETTER THETA # Theta */
- { 0x0399, 0x49 }, /* GREEK CAPITAL LETTER IOTA # Iota */
- { 0x039A, 0x4B }, /* GREEK CAPITAL LETTER KAPPA # Kappa */
- { 0x039B, 0x4C }, /* GREEK CAPITAL LETTER LAMDA # Lambda */
- { 0x039C, 0x4D }, /* GREEK CAPITAL LETTER MU # Mu */
- { 0x039D, 0x4E }, /* GREEK CAPITAL LETTER NU # Nu */
- { 0x039E, 0x58 }, /* GREEK CAPITAL LETTER XI # Xi */
- { 0x039F, 0x4F }, /* GREEK CAPITAL LETTER OMICRON # Omicron */
- { 0x03A0, 0x50 }, /* GREEK CAPITAL LETTER PI # Pi */
- { 0x03A1, 0x52 }, /* GREEK CAPITAL LETTER RHO # Rho */
- { 0x03A3, 0x53 }, /* GREEK CAPITAL LETTER SIGMA # Sigma */
- { 0x03A4, 0x54 }, /* GREEK CAPITAL LETTER TAU # Tau */
- { 0x03A5, 0x55 }, /* GREEK CAPITAL LETTER UPSILON # Upsilon */
- { 0x03A6, 0x46 }, /* GREEK CAPITAL LETTER PHI # Phi */
- { 0x03A7, 0x43 }, /* GREEK CAPITAL LETTER CHI # Chi */
- { 0x03A8, 0x59 }, /* GREEK CAPITAL LETTER PSI # Psi */
- { 0x03A9, 0x57 }, /* GREEK CAPITAL LETTER OMEGA # Omega */
- { 0x03B1, 0x61 }, /* GREEK SMALL LETTER ALPHA # alpha */
- { 0x03B2, 0x62 }, /* GREEK SMALL LETTER BETA # beta */
- { 0x03B3, 0x67 }, /* GREEK SMALL LETTER GAMMA # gamma */
- { 0x03B4, 0x64 }, /* GREEK SMALL LETTER DELTA # delta */
- { 0x03B5, 0x65 }, /* GREEK SMALL LETTER EPSILON # epsilon */
- { 0x03B6, 0x7A }, /* GREEK SMALL LETTER ZETA # zeta */
- { 0x03B7, 0x68 }, /* GREEK SMALL LETTER ETA # eta */
- { 0x03B8, 0x71 }, /* GREEK SMALL LETTER THETA # theta */
- { 0x03B9, 0x69 }, /* GREEK SMALL LETTER IOTA # iota */
- { 0x03BA, 0x6B }, /* GREEK SMALL LETTER KAPPA # kappa */
- { 0x03BB, 0x6C }, /* GREEK SMALL LETTER LAMDA # lambda */
- { 0x03BC, 0x6D }, /* GREEK SMALL LETTER MU # mu */
- { 0x03BD, 0x6E }, /* GREEK SMALL LETTER NU # nu */
- { 0x03BE, 0x78 }, /* GREEK SMALL LETTER XI # xi */
- { 0x03BF, 0x6F }, /* GREEK SMALL LETTER OMICRON # omicron */
- { 0x03C0, 0x70 }, /* GREEK SMALL LETTER PI # pi */
- { 0x03C1, 0x72 }, /* GREEK SMALL LETTER RHO # rho */
- { 0x03C2, 0x56 }, /* GREEK SMALL LETTER FINAL SIGMA # sigma1 */
- { 0x03C3, 0x73 }, /* GREEK SMALL LETTER SIGMA # sigma */
- { 0x03C4, 0x74 }, /* GREEK SMALL LETTER TAU # tau */
- { 0x03C5, 0x75 }, /* GREEK SMALL LETTER UPSILON # upsilon */
- { 0x03C6, 0x66 }, /* GREEK SMALL LETTER PHI # phi */
- { 0x03C7, 0x63 }, /* GREEK SMALL LETTER CHI # chi */
- { 0x03C8, 0x79 }, /* GREEK SMALL LETTER PSI # psi */
- { 0x03C9, 0x77 }, /* GREEK SMALL LETTER OMEGA # omega */
- { 0x03D1, 0x4A }, /* GREEK THETA SYMBOL # theta1 */
- { 0x03D2, 0xA1 }, /* GREEK UPSILON WITH HOOK SYMBOL # Upsilon1 */
- { 0x03D5, 0x6A }, /* GREEK PHI SYMBOL # phi1 */
- { 0x03D6, 0x76 }, /* GREEK PI SYMBOL # omega1 */
- { 0x2022, 0xB7 }, /* BULLET # bullet */
- { 0x2026, 0xBC }, /* HORIZONTAL ELLIPSIS # ellipsis */
- { 0x2032, 0xA2 }, /* PRIME # minute */
- { 0x2033, 0xB2 }, /* DOUBLE PRIME # second */
- { 0x2044, 0xA4 }, /* FRACTION SLASH # fraction */
- { 0x20AC, 0xA0 }, /* EURO SIGN # Euro */
- { 0x2111, 0xC1 }, /* BLACK-LETTER CAPITAL I # Ifraktur */
- { 0x2118, 0xC3 }, /* SCRIPT CAPITAL P # weierstrass */
- { 0x211C, 0xC2 }, /* BLACK-LETTER CAPITAL R # Rfraktur */
- { 0x2126, 0x57 }, /* OHM SIGN # Omega */
- { 0x2135, 0xC0 }, /* ALEF SYMBOL # aleph */
- { 0x2190, 0xAC }, /* LEFTWARDS ARROW # arrowleft */
- { 0x2191, 0xAD }, /* UPWARDS ARROW # arrowup */
- { 0x2192, 0xAE }, /* RIGHTWARDS ARROW # arrowright */
- { 0x2193, 0xAF }, /* DOWNWARDS ARROW # arrowdown */
- { 0x2194, 0xAB }, /* LEFT RIGHT ARROW # arrowboth */
- { 0x21B5, 0xBF }, /* DOWNWARDS ARROW WITH CORNER LEFTWARDS # carriagereturn */
- { 0x21D0, 0xDC }, /* LEFTWARDS DOUBLE ARROW # arrowdblleft */
- { 0x21D1, 0xDD }, /* UPWARDS DOUBLE ARROW # arrowdblup */
- { 0x21D2, 0xDE }, /* RIGHTWARDS DOUBLE ARROW # arrowdblright */
- { 0x21D3, 0xDF }, /* DOWNWARDS DOUBLE ARROW # arrowdbldown */
- { 0x21D4, 0xDB }, /* LEFT RIGHT DOUBLE ARROW # arrowdblboth */
- { 0x2200, 0x22 }, /* FOR ALL # universal */
- { 0x2202, 0xB6 }, /* PARTIAL DIFFERENTIAL # partialdiff */
- { 0x2203, 0x24 }, /* THERE EXISTS # existential */
- { 0x2205, 0xC6 }, /* EMPTY SET # emptyset */
- { 0x2206, 0x44 }, /* INCREMENT # Delta */
- { 0x2207, 0xD1 }, /* NABLA # gradient */
- { 0x2208, 0xCE }, /* ELEMENT OF # element */
- { 0x2209, 0xCF }, /* NOT AN ELEMENT OF # notelement */
- { 0x220B, 0x27 }, /* CONTAINS AS MEMBER # suchthat */
- { 0x220F, 0xD5 }, /* N-ARY PRODUCT # product */
- { 0x2211, 0xE5 }, /* N-ARY SUMMATION # summation */
- { 0x2212, 0x2D }, /* MINUS SIGN # minus */
- { 0x2215, 0xA4 }, /* DIVISION SLASH # fraction */
- { 0x2217, 0x2A }, /* ASTERISK OPERATOR # asteriskmath */
- { 0x221A, 0xD6 }, /* SQUARE ROOT # radical */
- { 0x221D, 0xB5 }, /* PROPORTIONAL TO # proportional */
- { 0x221E, 0xA5 }, /* INFINITY # infinity */
- { 0x2220, 0xD0 }, /* ANGLE # angle */
- { 0x2227, 0xD9 }, /* LOGICAL AND # logicaland */
- { 0x2228, 0xDA }, /* LOGICAL OR # logicalor */
- { 0x2229, 0xC7 }, /* INTERSECTION # intersection */
- { 0x222A, 0xC8 }, /* UNION # union */
- { 0x222B, 0xF2 }, /* INTEGRAL # integral */
- { 0x2234, 0x5C }, /* THEREFORE # therefore */
- { 0x223C, 0x7E }, /* TILDE OPERATOR # similar */
- { 0x2245, 0x40 }, /* APPROXIMATELY EQUAL TO # congruent */
- { 0x2248, 0xBB }, /* ALMOST EQUAL TO # approxequal */
- { 0x2260, 0xB9 }, /* NOT EQUAL TO # notequal */
- { 0x2261, 0xBA }, /* IDENTICAL TO # equivalence */
- { 0x2264, 0xA3 }, /* LESS-THAN OR EQUAL TO # lessequal */
- { 0x2265, 0xB3 }, /* GREATER-THAN OR EQUAL TO # greaterequal */
- { 0x2282, 0xCC }, /* SUBSET OF # propersubset */
- { 0x2283, 0xC9 }, /* SUPERSET OF # propersuperset */
- { 0x2284, 0xCB }, /* NOT A SUBSET OF # notsubset */
- { 0x2286, 0xCD }, /* SUBSET OF OR EQUAL TO # reflexsubset */
- { 0x2287, 0xCA }, /* SUPERSET OF OR EQUAL TO # reflexsuperset */
- { 0x2295, 0xC5 }, /* CIRCLED PLUS # circleplus */
- { 0x2297, 0xC4 }, /* CIRCLED TIMES # circlemultiply */
- { 0x22A5, 0x5E }, /* UP TACK # perpendicular */
- { 0x22C5, 0xD7 }, /* DOT OPERATOR # dotmath */
- { 0x2320, 0xF3 }, /* TOP HALF INTEGRAL # integraltp */
- { 0x2321, 0xF5 }, /* BOTTOM HALF INTEGRAL # integralbt */
- { 0x2329, 0xE1 }, /* LEFT-POINTING ANGLE BRACKET # angleleft */
- { 0x232A, 0xF1 }, /* RIGHT-POINTING ANGLE BRACKET # angleright */
- { 0x25CA, 0xE0 }, /* LOZENGE # lozenge */
- { 0x2660, 0xAA }, /* BLACK SPADE SUIT # spade */
- { 0x2663, 0xA7 }, /* BLACK CLUB SUIT # club */
- { 0x2665, 0xA9 }, /* BLACK HEART SUIT # heart */
- { 0x2666, 0xA8 }, /* BLACK DIAMOND SUIT # diamond */
- { 0xF6D9, 0xD3 }, /* COPYRIGHT SIGN SERIF # copyrightserif (CUS) */
- { 0xF6DA, 0xD2 }, /* REGISTERED SIGN SERIF # registerserif (CUS) */
- { 0xF6DB, 0xD4 }, /* TRADE MARK SIGN SERIF # trademarkserif (CUS) */
- { 0xF8E5, 0x60 }, /* RADICAL EXTENDER # radicalex (CUS) */
- { 0xF8E6, 0xBD }, /* VERTICAL ARROW EXTENDER # arrowvertex (CUS) */
- { 0xF8E7, 0xBE }, /* HORIZONTAL ARROW EXTENDER # arrowhorizex (CUS) */
- { 0xF8E8, 0xE2 }, /* REGISTERED SIGN SANS SERIF # registersans (CUS) */
- { 0xF8E9, 0xE3 }, /* COPYRIGHT SIGN SANS SERIF # copyrightsans (CUS) */
- { 0xF8EA, 0xE4 }, /* TRADE MARK SIGN SANS SERIF # trademarksans (CUS) */
- { 0xF8EB, 0xE6 }, /* LEFT PAREN TOP # parenlefttp (CUS) */
- { 0xF8EC, 0xE7 }, /* LEFT PAREN EXTENDER # parenleftex (CUS) */
- { 0xF8ED, 0xE8 }, /* LEFT PAREN BOTTOM # parenleftbt (CUS) */
- { 0xF8EE, 0xE9 }, /* LEFT SQUARE BRACKET TOP # bracketlefttp (CUS) */
- { 0xF8EF, 0xEA }, /* LEFT SQUARE BRACKET EXTENDER # bracketleftex (CUS) */
- { 0xF8F0, 0xEB }, /* LEFT SQUARE BRACKET BOTTOM # bracketleftbt (CUS) */
- { 0xF8F1, 0xEC }, /* LEFT CURLY BRACKET TOP # bracelefttp (CUS) */
- { 0xF8F2, 0xED }, /* LEFT CURLY BRACKET MID # braceleftmid (CUS) */
- { 0xF8F3, 0xEE }, /* LEFT CURLY BRACKET BOTTOM # braceleftbt (CUS) */
- { 0xF8F4, 0xEF }, /* CURLY BRACKET EXTENDER # braceex (CUS) */
- { 0xF8F5, 0xF4 }, /* INTEGRAL EXTENDER # integralex (CUS) */
- { 0xF8F6, 0xF6 }, /* RIGHT PAREN TOP # parenrighttp (CUS) */
- { 0xF8F7, 0xF7 }, /* RIGHT PAREN EXTENDER # parenrightex (CUS) */
- { 0xF8F8, 0xF8 }, /* RIGHT PAREN BOTTOM # parenrightbt (CUS) */
- { 0xF8F9, 0xF9 }, /* RIGHT SQUARE BRACKET TOP # bracketrighttp (CUS) */
- { 0xF8FA, 0xFA }, /* RIGHT SQUARE BRACKET EXTENDER # bracketrightex (CUS) */
- { 0xF8FB, 0xFB }, /* RIGHT SQUARE BRACKET BOTTOM # bracketrightbt (CUS) */
- { 0xF8FC, 0xFC }, /* RIGHT CURLY BRACKET TOP # bracerighttp (CUS) */
- { 0xF8FD, 0xFD }, /* RIGHT CURLY BRACKET MID # bracerightmid (CUS) */
- { 0xF8FE, 0xFE }, /* RIGHT CURLY BRACKET BOTTOM # bracerightbt (CUS) */
+static const FT_Encoding fcFontEncodings[] = {
+ FT_ENCODING_UNICODE,
+ FT_ENCODING_MS_SYMBOL
};
-static const FcCharMap AdobeSymbol = {
- AdobeSymbolEnt,
- sizeof (AdobeSymbolEnt) / sizeof (AdobeSymbolEnt[0]),
-};
-
-static const FcFontDecode fcFontDecoders[] = {
- { ft_encoding_unicode, 0, (1 << 21) - 1 },
- { ft_encoding_symbol, &AdobeSymbol, (1 << 16) - 1 },
-};
-
-#define NUM_DECODE (int) (sizeof (fcFontDecoders) / sizeof (fcFontDecoders[0]))
+#define NUM_DECODE (int) (sizeof (fcFontEncodings) / sizeof (fcFontEncodings[0]))
static const FcChar32 prefer_unicode[] = {
0x20ac, /* EURO SIGN */
};
-#define NUM_PREFER_UNICODE (int) (sizeof (prefer_unicode) / sizeof (prefer_unicode[0]))
-
-FcChar32
-FcFreeTypeUcs4ToPrivate (FcChar32 ucs4, const FcCharMap *map)
-{
- int low, high, mid;
- FcChar16 bmp;
-
- low = 0;
- high = map->nent - 1;
- if (ucs4 < map->ent[low].bmp || map->ent[high].bmp < ucs4)
- return ~0;
- while (low <= high)
- {
- mid = (high + low) >> 1;
- bmp = map->ent[mid].bmp;
- if (ucs4 == bmp)
- return (FT_ULong) map->ent[mid].encode;
- if (ucs4 < bmp)
- high = mid - 1;
- else
- low = mid + 1;
- }
- return ~0;
-}
-
-FcChar32
-FcFreeTypePrivateToUcs4 (FcChar32 private, const FcCharMap *map)
-{
- int i;
-
- for (i = 0; i < map->nent; i++)
- if (map->ent[i].encode == private)
- return (FcChar32) map->ent[i].bmp;
- return ~0;
-}
-
-const FcCharMap *
-FcFreeTypeGetPrivateMap (FT_Encoding encoding)
-{
- int i;
-
- for (i = 0; i < NUM_DECODE; i++)
- if (fcFontDecoders[i].encoding == encoding)
- return fcFontDecoders[i].map;
- return 0;
-}
-
#include "../fc-glyphname/fcglyphname.h"
static FcChar32
{
int initial, offset, decode;
FT_UInt glyphindex;
- FcChar32 charcode;
- int p;
initial = 0;
if (face->charmap)
{
for (; initial < NUM_DECODE; initial++)
- if (fcFontDecoders[initial].encoding == face->charmap->encoding)
+ if (fcFontEncodings[initial] == face->charmap->encoding)
break;
if (initial == NUM_DECODE)
initial = 0;
}
- for (p = 0; p < NUM_PREFER_UNICODE; p++)
- if (ucs4 == prefer_unicode[p])
- {
- initial = 0;
- break;
- }
/*
* Check each encoding for the glyph, starting with the current one
*/
for (offset = 0; offset < NUM_DECODE; offset++)
{
decode = (initial + offset) % NUM_DECODE;
- if (!face->charmap || face->charmap->encoding != fcFontDecoders[decode].encoding)
- if (FT_Select_Charmap (face, fcFontDecoders[decode].encoding) != 0)
- continue;
- if (fcFontDecoders[decode].map)
- {
- charcode = FcFreeTypeUcs4ToPrivate (ucs4, fcFontDecoders[decode].map);
- if (charcode == ~0U)
+ if (!face->charmap || face->charmap->encoding != fcFontEncodings[decode])
+ if (FT_Select_Charmap (face, fcFontEncodings[decode]) != 0)
continue;
- }
- else
- charcode = ucs4;
- glyphindex = FT_Get_Char_Index (face, (FT_ULong) charcode);
+ glyphindex = FT_Get_Char_Index (face, (FT_ULong) ucs4);
if (glyphindex)
return glyphindex;
}
#endif
FcCharSet *fcs;
FcCharLeaf *leaf;
- const FcCharMap *map;
int o;
- int i;
FT_UInt glyph;
FT_Pos advance, advance_one = 0, advance_two = 0;
FcBool has_advance = FcFalse, fixed_advance = FcTrue, dual_advance = FcFalse;
#endif
for (o = 0; o < NUM_DECODE; o++)
{
- if (FT_Select_Charmap (face, fcFontDecoders[o].encoding) != 0)
+ if (FT_Select_Charmap (face, fcFontEncodings[o]) != 0)
continue;
- map = fcFontDecoders[o].map;
- if (map)
- {
- /*
- * Non-Unicode tables are easy; there's a list of all possible
- * characters
- */
- for (i = 0; i < map->nent; i++)
- {
- ucs4 = map->ent[i].bmp;
- glyph = FT_Get_Char_Index (face, map->ent[i].encode);
- if (glyph &&
- FcFreeTypeCheckGlyph (face, ucs4, glyph, blanks, &advance, using_strike))
- {
- /*
- * ignore glyphs with zero advance. They’re
- * combining characters, and while their behaviour
- * isn’t well defined for monospaced applications in
- * Unicode, there are many fonts which include
- * zero-width combining characters in otherwise
- * monospaced fonts.
- */
- if (advance)
- {
- if (!has_advance)
- {
- has_advance = FcTrue;
- advance_one = advance;
- }
- else if (!APPROXIMATELY_EQUAL (advance, advance_one))
- {
- if (fixed_advance)
- {
- dual_advance = FcTrue;
- fixed_advance = FcFalse;
- advance_two = advance;
- }
- else if (!APPROXIMATELY_EQUAL (advance, advance_two))
- dual_advance = FcFalse;
- }
- }
- leaf = FcCharSetFindLeafCreate (fcs, ucs4);
- if (!leaf)
- goto bail1;
- leaf->map[(ucs4 & 0xff) >> 5] |= (1 << (ucs4 & 0x1f));
-#ifdef CHECK
- if (ucs4 > font_max)
- font_max = ucs4;
-#endif
- }
- }
- }
- else
{
page = ~0;
leaf = NULL;
* except for 'DFLT'.
*/
#define FcIsSpace(x) (040 == (x))
-#define FcIsValidScript(x) (FcIsLower(x) || FcIsUpper (x) || FcIsSpace(x))
+#define FcIsDigit(c) (('0' <= (c) && (c) <= '9'))
+#define FcIsValidScript(x) (FcIsLower(x) || FcIsUpper (x) || FcIsDigit(x) || FcIsSpace(x))
static void
addtag(FcChar8 *complex_, FT_ULong tag)
tagstring[3] = (FcChar8)(tag);
tagstring[4] = '\0';
- /* skip tags which aren't alphabetic, under the assumption that
+ /* skip tags which aren't alphanumeric, under the assumption that
* they're probably broken
*/
if (!FcIsValidScript(tagstring[0]) ||
return s_serialize;
}
+
+FcFontSet *
+FcFontSetDeserialize (const FcFontSet *set)
+{
+ int i;
+ FcFontSet *new = FcFontSetCreate ();
+
+ if (!new)
+ return NULL;
+ for (i = 0; i < set->nfont; i++)
+ {
+ if (!FcFontSetAdd (new, FcPatternDuplicate (FcFontSetFont (set, i))))
+ goto bail;
+ }
+
+ return new;
+bail:
+ FcFontSetDestroy (new);
+
+ return NULL;
+}
+
#define __fcfs__
#include "fcaliastail.h"
#undef __fcfs__
#endif
static FcConfig *
-FcInitFallbackConfig (void)
+FcInitFallbackConfig (const FcChar8 *sysroot)
{
FcConfig *config;
config = FcConfigCreate ();
if (!config)
goto bail0;
+ FcConfigSetSysRoot (config, sysroot);
if (!FcConfigAddDir (config, (FcChar8 *) FC_DEFAULT_FONTS))
goto bail1;
if (!FcConfigAddCacheDir (config, (FcChar8 *) FC_CACHEDIR))
* Load the configuration files
*/
FcConfig *
-FcInitLoadConfig (void)
+FcInitLoadOwnConfig (FcConfig *config)
{
- FcConfig *config;
+ if (!config)
+ {
+ config = FcConfigCreate ();
+ if (!config)
+ return NULL;
+ }
FcInitDebug ();
- config = FcConfigCreate ();
- if (!config)
- return NULL;
if (!FcConfigParseAndLoad (config, 0, FcTrue))
{
+ const FcChar8 *sysroot = FcConfigGetSysRoot (config);
+ FcConfig *fallback = FcInitFallbackConfig (sysroot);
+
FcConfigDestroy (config);
- return FcInitFallbackConfig ();
+
+ return fallback;
}
if (config->cacheDirs && config->cacheDirs->num == 0)
if (!FcConfigAddCacheDir (config, (FcChar8 *) FC_CACHEDIR) ||
!FcConfigAddCacheDir (config, (FcChar8 *) prefix))
{
+ FcConfig *fallback;
+ const FcChar8 *sysroot;
+
bail:
+ sysroot = FcConfigGetSysRoot (config);
fprintf (stderr,
"Fontconfig error: out of memory");
if (prefix)
FcStrFree (prefix);
+ fallback = FcInitFallbackConfig (sysroot);
FcConfigDestroy (config);
- return FcInitFallbackConfig ();
+
+ return fallback;
}
FcStrFree (prefix);
}
return config;
}
+FcConfig *
+FcInitLoadConfig (void)
+{
+ return FcInitLoadOwnConfig (NULL);
+}
+
/*
* Load the configuration files and scan for available fonts
*/
FcConfig *
-FcInitLoadConfigAndFonts (void)
+FcInitLoadOwnConfigAndFonts (FcConfig *config)
{
- FcConfig *config = FcInitLoadConfig ();
-
- FcInitDebug ();
+ config = FcInitLoadOwnConfig (config);
if (!config)
return 0;
if (!FcConfigBuildFonts (config))
return config;
}
+FcConfig *
+FcInitLoadConfigAndFonts (void)
+{
+ return FcInitLoadOwnConfigAndFonts (NULL);
+}
+
/*
* Initialize the default library configuration
*/
FcInitReinitialize (void)
{
FcConfig *config;
+ FcBool ret;
config = FcInitLoadConfigAndFonts ();
if (!config)
return FcFalse;
- return FcConfigSetCurrent (config);
+ ret = FcConfigSetCurrent (config);
+ /* FcConfigSetCurrent() increases the refcount.
+ * decrease it here to avoid the memory leak.
+ */
+ FcConfigDestroy (config);
+
+ return ret;
}
FcBool
FcConfig *config = FcConfigGetCurrent ();
time_t now;
+ if (!config)
+ return FcFalse;
/*
* rescanInterval == 0 disables automatic up to date
*/
#include <ctype.h>
#include <assert.h>
#include <errno.h>
+#include <limits.h>
+#include <float.h>
+#include <math.h>
#include <unistd.h>
#include <stddef.h>
#include <sys/types.h>
#define FC_DBG_CONFIG 1024
#define FC_DBG_LANGSET 2048
-#define _FC_ASSERT_STATIC1(_line, _cond) typedef int _static_assert_on_line_##_line##_failed[(_cond)?1:-1]
+#define _FC_ASSERT_STATIC1(_line, _cond) typedef int _static_assert_on_line_##_line##_failed[(_cond)?1:-1] FC_UNUSED
#define _FC_ASSERT_STATIC0(_line, _cond) _FC_ASSERT_STATIC1 (_line, (_cond))
#define FC_ASSERT_STATIC(_cond) _FC_ASSERT_STATIC0 (__LINE__, (_cond))
#define FC_MAX(a,b) ((a) > (b) ? (a) : (b))
#define FC_ABS(a) ((a) < 0 ? -(a) : (a))
+#define FcDoubleIsZero(a) (fabs ((a)) <= DBL_EPSILON)
+#define FcDoubleCmpEQ(a,b) (fabs ((a) - (b)) <= DBL_EPSILON)
+#define FcDoubleCmpGE(a,b) (FcDoubleCmpEQ (a, b) || (a) > (b))
+#define FcDoubleCmpLE(a,b) (FcDoubleCmpEQ (a, b) || (a) < (b))
+
/* slim_internal.h */
#if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) && defined(__ELF__) && !defined(__sun)
#define FcPrivate __attribute__((__visibility__("hidden")))
FC_ASSERT_STATIC (sizeof (FcRef) == sizeof (int));
typedef enum _FcValueBinding {
- FcValueBindingWeak, FcValueBindingStrong, FcValueBindingSame
+ FcValueBindingWeak, FcValueBindingStrong, FcValueBindingSame,
+ /* to make sure sizeof (FcValueBinding) == 4 even with -fshort-enums */
+ FcValueBindingEnd = INT_MAX
} FcValueBinding;
#define FcStrdup(s) ((FcChar8 *) strdup ((const char *) (s)))
#define FcValueString(v) FcPointerMember(v,u.s,FcChar8)
#define FcValueCharSet(v) FcPointerMember(v,u.c,const FcCharSet)
#define FcValueLangSet(v) FcPointerMember(v,u.l,const FcLangSet)
+#define FcValueRange(v) FcPointerMember(v,u.r,const FcRange)
typedef struct _FcValueList *FcValueListPtr;
typedef int FcObject;
+/* The 1024 is to leave some room for future added internal objects, such
+ * that caches from newer fontconfig can still be used with older fontconfig
+ * without getting confused. */
+#define FC_EXT_OBJ_INDEX 1024
+#define FC_OBJ_ID(_n_) ((_n_) & (~FC_EXT_OBJ_INDEX))
+
typedef struct _FcPatternElt *FcPatternEltPtr;
/*
FcOpField, FcOpConst,
FcOpAssign, FcOpAssignReplace,
FcOpPrependFirst, FcOpPrepend, FcOpAppend, FcOpAppendLast,
+ FcOpDelete, FcOpDeleteAll,
FcOpQuest,
FcOpOr, FcOpAnd, FcOpEqual, FcOpNotEqual,
FcOpContains, FcOpListing, FcOpNotContains,
FcMatchKind kind;
} FcExprName;
+typedef struct _FcRangeInt {
+ FcChar32 begin;
+ FcChar32 end;
+} FcRangeInt;
+typedef struct _FcRangeDouble {
+ double begin;
+ double end;
+} FcRangeDouble;
+struct _FcRange {
+ FcBool is_double;
+ FcBool is_inclusive;
+ union {
+ FcRangeInt i;
+ FcRangeDouble d;
+ } u;
+};
+
typedef struct _FcExpr {
FcOp op;
union {
- int ival;
- double dval;
- const FcChar8 *sval;
- FcExprMatrix *mexpr;
- FcBool bval;
- FcCharSet *cval;
- FcLangSet *lval;
-
- FcExprName name;
- const FcChar8 *constant;
+ int ival;
+ double dval;
+ const FcChar8 *sval;
+ FcExprMatrix *mexpr;
+ FcBool bval;
+ FcCharSet *cval;
+ FcLangSet *lval;
+ FcRange *rval;
+
+ FcExprName name;
+ const FcChar8 *constant;
struct {
struct _FcExpr *left, *right;
} tree;
#define FcMatchDefault ((FcMatchKind) -1)
typedef struct _FcTest {
- struct _FcTest *next;
FcMatchKind kind;
FcQual qual;
FcObject object;
} FcTest;
typedef struct _FcEdit {
- struct _FcEdit *next;
FcObject object;
FcOp op;
FcExpr *expr;
FcValueBinding binding;
} FcEdit;
+typedef enum _FcRuleType {
+ FcRuleUnknown, FcRuleTest, FcRuleEdit
+} FcRuleType;
+
+typedef struct _FcRule {
+ struct _FcRule *next;
+ FcRuleType type;
+ union {
+ FcTest *test;
+ FcEdit *edit;
+ } u;
+} FcRule;
+
typedef struct _FcSubst {
struct _FcSubst *next;
- FcTest *test;
- FcEdit *edit;
+ FcRule *rule;
} FcSubst;
typedef struct _FcCharLeaf {
#define FC_CACHE_MAGIC_MMAP 0xFC02FC04
#define FC_CACHE_MAGIC_ALLOC 0xFC02FC05
-#define FC_CACHE_CONTENT_VERSION 3
+#define FC_CACHE_CONTENT_VERSION 5
struct _FcAtomic {
FcChar8 *file; /* original file name */
FcRef ref; /* reference count */
- FcExprPage *expr_pool; /* pool of FcExpr's */
+ FcExprPage *expr_pool; /* pool of FcExpr's */
+
+ FcChar8 *sysRoot; /* override the system root directory */
};
typedef struct _FcFileTime {
typedef struct _FcCharMap FcCharMap;
-typedef struct _FcRange FcRange;
-
-struct _FcRange {
- FcChar32 begin;
- FcChar32 end;
-};
-
typedef struct _FcStatFS FcStatFS;
struct _FcStatFS {
FcPrivate FcCache *
FcDirCacheBuild (FcFontSet *set, const FcChar8 *dir, struct stat *dir_stat, FcStrSet *dirs);
+FcPrivate FcCache *
+FcDirCacheRebuild (FcCache *cache, struct stat *dir_stat, FcStrSet *dirs);
+
FcPrivate FcBool
FcDirCacheWrite (FcCache *cache, FcConfig *config);
FcConfigAddBlank (FcConfig *config,
FcChar32 blank);
-FcPrivate FcBool
-FcConfigAddEdit (FcConfig *config,
- FcTest *test,
- FcEdit *edit,
+FcBool
+FcConfigAddRule (FcConfig *config,
+ FcRule *rule,
FcMatchKind kind);
FcPrivate void
FcPrivate FcBool
FcConfigCompareValue (const FcValue *m,
- FcOp op,
+ unsigned int op_,
const FcValue *v);
FcPrivate FcBool
FcLangSetSerialize(FcSerialize *serialize, const FcLangSet *l);
/* fccharset.c */
+FcPrivate FcCharSet *
+FcCharSetPromote (FcValuePromotionBuffer *vbuf);
+
FcPrivate void
FcLangCharSetPopulate (void);
FcPrivate int
FcMakeTempfile (char *template);
+FcPrivate int32_t
+FcRandom (void);
+
+FcPrivate FcBool
+FcMakeDirectory (const FcChar8 *dir);
+
/* fcdbg.c */
FcPrivate void
FcPrivate FcChar8 *
FcGetDefaultLang (void);
+FcPrivate FcChar8 *
+FcGetPrgname (void);
+
FcPrivate void
FcDefaultFini (void);
FcFileIsLink (const FcChar8 *file);
FcPrivate FcBool
+FcFileIsFile (const FcChar8 *file);
+
+FcPrivate FcBool
FcFileScanConfig (FcFontSet *set,
FcStrSet *dirs,
FcBlanks *blanks,
FcBlanks *blanks,
const FcChar8 *dir,
FcBool force,
- FcConfig *config);
+ FcConfig *config,
+ FcBool scanOnly);
+
+FcPrivate FcBool
+FcDirScanOnly (FcStrSet *dirs,
+ const FcChar8 *dir,
+ FcConfig *config);
/* fcfont.c */
FcPrivate int
FcPrivate FcFontSet *
FcFontSetSerialize (FcSerialize *serialize, const FcFontSet * s);
+FcPrivate FcFontSet *
+FcFontSetDeserialize (const FcFontSet *set);
+
+/* fcinit.c */
+FcPrivate FcConfig *
+FcInitLoadOwnConfig (FcConfig *config);
+
+FcPrivate FcConfig *
+FcInitLoadOwnConfigAndFonts (FcConfig *config);
+
/* fcxml.c */
FcPrivate void
FcTestDestroy (FcTest *test);
FcPrivate void
FcEditDestroy (FcEdit *e);
+void
+FcRuleDestroy (FcRule *rule);
+
/* fclang.c */
FcPrivate FcLangSet *
FcFreeTypeLangSet (const FcCharSet *charset,
enum {
FC_INVALID_OBJECT = 0,
-#define FC_OBJECT(NAME, Type) FC_##NAME##_OBJECT,
+#define FC_OBJECT(NAME, Type, Cmp) FC_##NAME##_OBJECT,
#include "fcobjs.h"
#undef FC_OBJECT
FC_ONE_AFTER_MAX_BASE_OBJECT
FcPrivate FcBool
FcPatternObjectAddLangSet (FcPattern *p, FcObject object, const FcLangSet *ls);
+FcPrivate FcBool
+FcPatternObjectAddRange (FcPattern *p, FcObject object, const FcRange *r);
+
FcPrivate FcResult
FcPatternObjectGetInteger (const FcPattern *p, FcObject object, int n, int *i);
FcPrivate FcResult
FcPatternObjectGetLangSet (const FcPattern *p, FcObject object, int n, FcLangSet **ls);
+FcPrivate FcResult
+FcPatternObjectGetRange (const FcPattern *p, FcObject object, int id, FcRange **r);
+
FcPrivate FcBool
FcPatternAppend (FcPattern *p, FcPattern *s);
FcPrivate void
FcMatrixFree (FcMatrix *mat);
+/* fcrange.c */
+
+FcPrivate FcRange
+FcRangeCanonicalize (const FcRange *range);
+
+FcPrivate FcRange *
+FcRangePromote (double v, FcValuePromotionBuffer *vbuf);
+
+FcPrivate FcBool
+FcRangeIsZero (const FcRange *r);
+
+FcPrivate FcBool
+FcRangeIsInRange (const FcRange *a, const FcRange *b);
+
+FcPrivate FcBool
+FcRangeCompare (FcOp op, const FcRange *a, const FcRange *b);
+
+FcPrivate FcChar32
+FcRangeHash (const FcRange *r);
+
+FcPrivate FcBool
+FcRangeSerializeAlloc (FcSerialize *serialize, const FcRange *r);
+
+FcPrivate FcRange *
+FcRangeSerialize (FcSerialize *serialize, const FcRange *r);
+
/* fcstat.c */
FcPrivate int
FcPrivate int
FcStrCmpIgnoreBlanksAndCase (const FcChar8 *s1, const FcChar8 *s2);
-FcPrivate FcBool
-FcStrRegexCmp (const FcChar8 *s, const FcChar8 *regex);
-
-FcPrivate FcBool
-FcStrRegexCmpIgnoreCase (const FcChar8 *s, const FcChar8 *regex);
+FcPrivate int
+FcStrCmpIgnoreCaseAndDelims (const FcChar8 *s1, const FcChar8 *s2, const FcChar8 *delims);
FcPrivate const FcChar8 *
FcStrContainsIgnoreBlanksAndCase (const FcChar8 *s1, const FcChar8 *s2);
FcPrivate const FcChar8 *
FcStrContainsWord (const FcChar8 *s1, const FcChar8 *s2);
+FcPrivate int
+FcStrMatchIgnoreCaseAndDelims (const FcChar8 *s1, const FcChar8 *s2, const FcChar8 *delims);
+
+FcPrivate FcBool
+FcStrGlobMatch (const FcChar8 *glob,
+ const FcChar8 *string);
+
FcPrivate FcBool
FcStrUsesHome (const FcChar8 *s);
FcPrivate FcChar8 *
+FcStrBuildFilename (const FcChar8 *path,
+ ...);
+
+FcPrivate FcChar8 *
FcStrLastSlash (const FcChar8 *path);
FcPrivate FcChar32
memset (buf->ls.map, '\0', sizeof (buf->ls.map));
buf->ls.map_size = NUM_LANG_SET_MAP;
buf->ls.extra = 0;
- id = FcLangSetIndex (lang);
- if (id > 0)
+ if (lang)
{
- FcLangSetBitSet (&buf->ls, id);
- }
- else
- {
- buf->ls.extra = &buf->strs;
- buf->strs.num = 1;
- buf->strs.size = 1;
- buf->strs.strs = &buf->str;
- FcRefInit (&buf->strs.ref, 1);
- buf->str = (FcChar8 *) lang;
+ id = FcLangSetIndex (lang);
+ if (id > 0)
+ {
+ FcLangSetBitSet (&buf->ls, id);
+ }
+ else
+ {
+ buf->ls.extra = &buf->strs;
+ buf->strs.num = 1;
+ buf->strs.size = 1;
+ buf->strs.strs = &buf->str;
+ FcRefInit (&buf->strs.ref, 1);
+ buf->str = (FcChar8 *) lang;
+ }
}
return &buf->ls;
}
const FcChar8 *s))
{
FcLangSet *langset = FcLangSetCopy (a);
- FcStrList *sl = FcStrListCreate (FcLangSetGetLangs (b));
+ FcStrSet *set = FcLangSetGetLangs (b);
+ FcStrList *sl = FcStrListCreate (set);
FcChar8 *str;
+ FcStrSetDestroy (set);
while ((str = FcStrListNext (sl)))
{
func (langset, str);
{
int i;
+ if (!p)
+ return FcFalse;
for (i = 0; i < p->num; i++)
{
FcPatternElt *pe = &FcPatternElts(p)[i];
{
FcValue v = FcValueCanonicalize(value);
switch (v.type) {
+ case FcTypeUnknown:
case FcTypeVoid:
return 0;
case FcTypeInteger:
case FcTypeCharSet:
return FcCharSetCount (v.u.c);
case FcTypeFTFace:
- return (long) v.u.f;
+ return (intptr_t) v.u.f;
case FcTypeLangSet:
return FcLangSetHash (v.u.l);
+ case FcTypeRange:
+ return FcRangeHash (v.u.r);
}
return 0;
}
}
static double
+FcComparePostScript (FcValue *v1, FcValue *v2)
+{
+ const FcChar8 *v1_string = FcValueString (v1);
+ const FcChar8 *v2_string = FcValueString (v2);
+ int n;
+ size_t len;
+
+ if (FcToLower (*v1_string) != FcToLower (*v2_string) &&
+ *v1_string != ' ' && *v2_string != ' ')
+ return 1.0;
+
+ n = FcStrMatchIgnoreCaseAndDelims (v1_string, v2_string, (const FcChar8 *)" -");
+ len = strlen ((const char *)v1_string);
+
+ return (double)(len - n) / (double)len;
+}
+
+static double
FcCompareLang (FcValue *v1, FcValue *v2)
{
FcLangResult result;
}
static double
+FcCompareSizeRange (FcValue *v1, FcValue *v2)
+{
+ FcValue value1 = FcValueCanonicalize (v1);
+ FcValue value2 = FcValueCanonicalize (v2);
+ FcRange *r1 = NULL, *r2 = NULL;
+ double ret = -1.0;
+
+ switch ((int) value1.type) {
+ case FcTypeDouble:
+ r1 = FcRangeCreateDouble (value1.u.d, value1.u.d);
+ break;
+ case FcTypeRange:
+ r1 = FcRangeCopy (value1.u.r);
+ break;
+ default:
+ goto bail;
+ }
+ switch ((int) value2.type) {
+ case FcTypeDouble:
+ r2 = FcRangeCreateDouble (value2.u.d, value2.u.d);
+ break;
+ case FcTypeRange:
+ r2 = FcRangeCopy (value2.u.r);
+ break;
+ default:
+ goto bail;
+ }
+
+ if (FcRangeIsInRange (r1, r2))
+ ret = 0.0;
+ else
+ ret = FC_MIN (fabs (r1->u.d.end - r2->u.d.begin), fabs (r1->u.d.begin - r2->u.d.end));
+
+bail:
+ if (r1)
+ FcRangeDestroy (r1);
+ if (r2)
+ FcRangeDestroy (r2);
+
+ return ret;
+}
+
+static double
FcCompareFilename (FcValue *v1, FcValue *v2)
{
- const FcChar8 *s1 = FcValueString (v1), *s2 = FcValueString (v2);
- if (FcStrCmp (s1, s2) == 0)
- return 0.0;
- else if (FcStrCmpIgnoreCase (s1, s2) == 0)
- return 1.0;
- else if (FcStrRegexCmp (s2, s1))
- return 2.0;
- else if (FcStrRegexCmpIgnoreCase (s2, s1))
- return 3.0;
- else
- return 4.0;
+ const FcChar8 *s1 = FcValueString (v1), *s2 = FcValueString (v2);
+ if (FcStrCmp (s1, s2) == 0)
+ return 0.0;
+ else if (FcStrCmpIgnoreCase (s1, s2) == 0)
+ return 1.0;
+ else if (FcStrGlobMatch (s1, s2))
+ return 2.0;
+ else
+ return 3.0;
}
+
+/* Define priorities to -1 for objects that don't have a compare function. */
+
+#define PRI_NULL(n) \
+ PRI_ ## n ## _STRONG = -1, \
+ PRI_ ## n ## _WEAK = -1,
+#define PRI1(n)
+#define PRI_FcCompareFamily(n) PRI1(n)
+#define PRI_FcCompareString(n) PRI1(n)
+#define PRI_FcCompareNumber(n) PRI1(n)
+#define PRI_FcCompareSize(n) PRI1(n)
+#define PRI_FcCompareBool(n) PRI1(n)
+#define PRI_FcCompareFilename(n) PRI1(n)
+#define PRI_FcCompareCharSet(n) PRI1(n)
+#define PRI_FcCompareLang(n) PRI1(n)
+#define PRI_FcComparePostScript(n) PRI1(n)
+#define PRI_FcCompareSizeRange(n) PRI1(n)
+
+#define FC_OBJECT(NAME, Type, Cmp) PRI_##Cmp(NAME)
+
+typedef enum _FcMatcherPriorityDummy {
+#include "fcobjs.h"
+} FcMatcherPriorityDummy;
+
+#undef FC_OBJECT
+
+
+/* Canonical match priority order. */
+
+#undef PRI1
+#define PRI1(n) \
+ PRI_ ## n, \
+ PRI_ ## n ## _STRONG = PRI_ ## n, \
+ PRI_ ## n ## _WEAK = PRI_ ## n
+
+typedef enum _FcMatcherPriority {
+ PRI1(FILE),
+ PRI1(FONTFORMAT),
+ PRI1(SCALABLE),
+ PRI1(COLOR),
+ PRI1(FOUNDRY),
+ PRI1(CHARSET),
+ PRI_FAMILY_STRONG,
+ PRI_POSTSCRIPT_NAME_STRONG,
+ PRI1(LANG),
+ PRI_FAMILY_WEAK,
+ PRI_POSTSCRIPT_NAME_WEAK,
+ PRI1(SPACING),
+ PRI1(SIZE),
+ PRI1(PIXEL_SIZE),
+ PRI1(STYLE),
+ PRI1(SLANT),
+ PRI1(WEIGHT),
+ PRI1(WIDTH),
+ PRI1(DECORATIVE),
+ PRI1(ANTIALIAS),
+ PRI1(RASTERIZER),
+ PRI1(OUTLINE),
+ PRI1(FONTVERSION),
+ PRI_END
+} FcMatcherPriority;
+
+#undef PRI1
+
typedef struct _FcMatcher {
- FcObject object;
- double (*compare) (FcValue *value1, FcValue *value2);
- int strong, weak;
+ FcObject object;
+ double (*compare) (FcValue *value1, FcValue *value2);
+ int strong, weak;
} FcMatcher;
/*
* each value, earlier values are more significant than
* later values
*/
+#define FC_OBJECT(NAME, Type, Cmp) { FC_##NAME##_OBJECT, Cmp, PRI_##NAME##_STRONG, PRI_##NAME##_WEAK },
static const FcMatcher _FcMatchers [] = {
- { FC_FILE_OBJECT, FcCompareFilename, 0, 0 },
-#define MATCH_FILE 0
- { FC_FOUNDRY_OBJECT, FcCompareString, 1, 1 },
-#define MATCH_FOUNDRY 1
- { FC_CHARSET_OBJECT, FcCompareCharSet, 2, 2 },
-#define MATCH_CHARSET 2
- { FC_FAMILY_OBJECT, FcCompareFamily, 3, 5 },
-#define MATCH_FAMILY 3
- { FC_LANG_OBJECT, FcCompareLang, 4, 4 },
-#define MATCH_LANG 4
-#define MATCH_LANG_INDEX 4
- { FC_SPACING_OBJECT, FcCompareNumber, 6, 6 },
-#define MATCH_SPACING 5
- { FC_PIXEL_SIZE_OBJECT, FcCompareSize, 7, 7 },
-#define MATCH_PIXEL_SIZE 6
- { FC_STYLE_OBJECT, FcCompareString, 8, 8 },
-#define MATCH_STYLE 7
- { FC_SLANT_OBJECT, FcCompareNumber, 9, 9 },
-#define MATCH_SLANT 8
- { FC_WEIGHT_OBJECT, FcCompareNumber, 10, 10 },
-#define MATCH_WEIGHT 9
- { FC_WIDTH_OBJECT, FcCompareNumber, 11, 11 },
-#define MATCH_WIDTH 10
- { FC_DECORATIVE_OBJECT, FcCompareBool, 12, 12 },
-#define MATCH_DECORATIVE 11
- { FC_ANTIALIAS_OBJECT, FcCompareBool, 13, 13 },
-#define MATCH_ANTIALIAS 12
- { FC_RASTERIZER_OBJECT, FcCompareString, 14, 14 },
-#define MATCH_RASTERIZER 13
- { FC_OUTLINE_OBJECT, FcCompareBool, 15, 15 },
-#define MATCH_OUTLINE 14
- { FC_FONTVERSION_OBJECT, FcCompareNumber, 16, 16 },
-#define MATCH_FONTVERSION 15
+ { FC_INVALID_OBJECT, NULL, -1, -1 },
+#include "fcobjs.h"
};
-
-#define NUM_MATCH_VALUES 17
+#undef FC_OBJECT
static const FcMatcher*
FcObjectToMatcher (FcObject object,
FcBool include_lang)
{
- int i;
-
- i = -1;
- switch (object) {
- case FC_FILE_OBJECT:
- i = MATCH_FILE; break;
- case FC_FOUNDRY_OBJECT:
- i = MATCH_FOUNDRY; break;
- case FC_FONTVERSION_OBJECT:
- i = MATCH_FONTVERSION; break;
- case FC_FAMILY_OBJECT:
- i = MATCH_FAMILY; break;
- case FC_CHARSET_OBJECT:
- i = MATCH_CHARSET; break;
- case FC_ANTIALIAS_OBJECT:
- i = MATCH_ANTIALIAS; break;
- case FC_LANG_OBJECT:
- i = MATCH_LANG; break;
- case FC_SPACING_OBJECT:
- i = MATCH_SPACING; break;
- case FC_STYLE_OBJECT:
- i = MATCH_STYLE; break;
- case FC_SLANT_OBJECT:
- i = MATCH_SLANT; break;
- case FC_PIXEL_SIZE_OBJECT:
- i = MATCH_PIXEL_SIZE; break;
- case FC_WIDTH_OBJECT:
- i = MATCH_WIDTH; break;
- case FC_WEIGHT_OBJECT:
- i = MATCH_WEIGHT; break;
- case FC_RASTERIZER_OBJECT:
- i = MATCH_RASTERIZER; break;
- case FC_OUTLINE_OBJECT:
- i = MATCH_OUTLINE; break;
- case FC_DECORATIVE_OBJECT:
- i = MATCH_DECORATIVE; break;
- default:
- if (include_lang)
- {
- switch (object) {
- case FC_FAMILYLANG_OBJECT:
- case FC_STYLELANG_OBJECT:
- case FC_FULLNAMELANG_OBJECT:
- i = MATCH_LANG; break;
- }
+ if (include_lang)
+ {
+ switch (object) {
+ case FC_FAMILYLANG_OBJECT:
+ case FC_STYLELANG_OBJECT:
+ case FC_FULLNAMELANG_OBJECT:
+ object = FC_LANG_OBJECT;
+ break;
}
}
-
- if (i < 0)
+ if (object > FC_MAX_BASE_OBJECT ||
+ !_FcMatchers[object].compare ||
+ _FcMatchers[object].strong == -1 ||
+ _FcMatchers[object].weak == -1)
return NULL;
- return _FcMatchers+i;
+ return _FcMatchers + object;
}
static FcBool
best = 1e99;
bestStrong = 1e99;
bestWeak = 1e99;
- j = 1;
+ j = 0;
for (v1 = v1orig; v1; v1 = FcValueListNext(v1))
{
for (v2 = v2orig, k = 0; v2; v2 = FcValueListNext(v2), k++)
{
int i, i1, i2;
- for (i = 0; i < NUM_MATCH_VALUES; i++)
+ for (i = 0; i < PRI_END; i++)
value[i] = 0.0;
i1 = 0;
{
FcPattern *new;
int i;
- FcPatternElt *fe, *pe, *fel, *pel;
+ FcPatternElt *fe, *pe;
FcValue v;
FcResult result;
fe->object == FC_STYLE_OBJECT ||
fe->object == FC_FULLNAME_OBJECT)
{
+ FcPatternElt *fel, *pel;
+
FC_ASSERT_STATIC ((FC_FAMILY_OBJECT + 1) == FC_FAMILYLANG_OBJECT);
FC_ASSERT_STATIC ((FC_STYLE_OBJECT + 1) == FC_STYLELANG_OBJECT);
FC_ASSERT_STATIC ((FC_FULLNAME_OBJECT + 1) == FC_FULLNAMELANG_OBJECT);
fel = FcPatternObjectFindElt (font, fe->object + 1);
pel = FcPatternObjectFindElt (pat, fe->object + 1);
- }
- else
- {
- fel = NULL;
- pel = NULL;
- }
- pe = FcPatternObjectFindElt (pat, fe->object);
- if (pe)
- {
- const FcMatcher *match = FcObjectToMatcher (pe->object, FcFalse);
- if (!FcCompareValueList (pe->object, match,
- FcPatternEltValues(pe),
- FcPatternEltValues(fe), &v, NULL, NULL, &result))
- {
- FcPatternDestroy (new);
- return NULL;
- }
if (fel && pel)
{
+ /* The font has name languages, and pattern asks for specific language(s).
+ * Match on language and and prefer that result.
+ * Note: Currently the code only give priority to first matching language.
+ */
int n = 1, j;
FcValueListPtr l1, l2, ln = NULL, ll = NULL;
+ const FcMatcher *match = FcObjectToMatcher (pel->object, FcTrue);
- match = FcObjectToMatcher (pel->object, FcTrue);
if (!FcCompareValueList (pel->object, match,
FcPatternEltValues (pel),
FcPatternEltValues (fel), NULL, NULL, &n, &result))
}
else if (fel)
{
+ /* Pattern doesn't ask for specific language. Copy all for name and
+ * lang. */
FcValueListPtr l1, l2;
- copy_lang:
l1 = FcValueListDuplicate (FcPatternEltValues (fe));
l2 = FcValueListDuplicate (FcPatternEltValues (fel));
FcPatternObjectListAdd (new, fe->object, l1, FcFalse);
continue;
}
}
+
+ pe = FcPatternObjectFindElt (pat, fe->object);
+ if (pe)
+ {
+ const FcMatcher *match = FcObjectToMatcher (pe->object, FcFalse);
+ if (!FcCompareValueList (pe->object, match,
+ FcPatternEltValues(pe),
+ FcPatternEltValues(fe), &v, NULL, NULL, &result))
+ {
+ FcPatternDestroy (new);
+ return NULL;
+ }
+ FcPatternObjectAdd (new, fe->object, v, FcFalse);
+ }
else
{
- if (fel)
- goto copy_lang;
- v = FcValueCanonicalize(&FcPatternEltValues (fe)->value);
+ FcPatternObjectListAdd (new, fe->object,
+ FcValueListDuplicate (FcPatternEltValues (fe)),
+ FcTrue);
}
- FcPatternObjectAdd (new, fe->object, v, FcFalse);
}
for (i = 0; i < pat->num; i++)
{
pe = &FcPatternElts(pat)[i];
fe = FcPatternObjectFindElt (font, pe->object);
- if (!fe)
+ if (!fe &&
+ pe->object != FC_FAMILYLANG_OBJECT &&
+ pe->object != FC_STYLELANG_OBJECT &&
+ pe->object != FC_FULLNAMELANG_OBJECT)
{
- v = FcValueCanonicalize(&FcPatternEltValues(pe)->value);
- FcPatternObjectAdd (new, pe->object, v, FcTrue);
+ FcPatternObjectListAdd (new, pe->object,
+ FcValueListDuplicate (FcPatternEltValues(pe)),
+ FcFalse);
}
}
FcPattern *p,
FcResult *result)
{
- double score[NUM_MATCH_VALUES], bestscore[NUM_MATCH_VALUES];
+ double score[PRI_END], bestscore[PRI_END];
int f;
FcFontSet *s;
FcPattern *best;
int i;
int set;
- for (i = 0; i < NUM_MATCH_VALUES; i++)
+ for (i = 0; i < PRI_END; i++)
bestscore[i] = 0;
best = 0;
if (FcDebug () & FC_DBG_MATCH)
if (FcDebug () & FC_DBG_MATCHV)
{
printf ("Score");
- for (i = 0; i < NUM_MATCH_VALUES; i++)
+ for (i = 0; i < PRI_END; i++)
{
printf (" %g", score[i]);
}
printf ("\n");
}
- for (i = 0; i < NUM_MATCH_VALUES; i++)
+ for (i = 0; i < PRI_END; i++)
{
if (best && bestscore[i] < score[i])
break;
if (!best || score[i] < bestscore[i])
{
- for (i = 0; i < NUM_MATCH_VALUES; i++)
+ for (i = 0; i < PRI_END; i++)
bestscore[i] = score[i];
best = s->fonts[f];
break;
if (FcDebug () & FC_DBG_MATCH)
{
printf ("Best score");
- for (i = 0; i < NUM_MATCH_VALUES; i++)
+ for (i = 0; i < PRI_END; i++)
printf (" %g", bestscore[i]);
printf ("\n");
FcPatternPrint (best);
typedef struct _FcSortNode {
FcPattern *pattern;
- double score[NUM_MATCH_VALUES];
+ double score[PRI_END];
} FcSortNode;
static int
double ad = 0, bd = 0;
int i;
- i = NUM_MATCH_VALUES;
+ i = PRI_END;
while (i-- && (ad = *as++) == (bd = *bs++))
;
return ad < bd ? -1 : ad > bd ? 1 : 0;
{
FcBool ret = FcFalse;
FcCharSet *cs;
+ int i;
cs = 0;
if (trim || csp)
goto bail;
}
- while (nnode--)
+ for (i = 0; i < nnode; i++)
{
FcSortNode *node = *n++;
FcBool adds_chars = FcFalse;
* If this font isn't a subset of the previous fonts,
* add it to the list
*/
- if (!trim || adds_chars)
+ if (!i || !trim || adds_chars)
{
FcPatternReference (node->pattern);
if (FcDebug () & FC_DBG_MATCHV)
if (FcDebug () & FC_DBG_MATCHV)
{
printf ("Score");
- for (i = 0; i < NUM_MATCH_VALUES; i++)
+ for (i = 0; i < PRI_END; i++)
{
printf (" %g", new->score[i]);
}
* If this node matches any language, go check
* which ones and satisfy those entries
*/
- if (nodeps[f]->score[MATCH_LANG_INDEX] < 2000)
+ if (nodeps[f]->score[PRI_LANG] < 2000)
{
for (i = 0; i < nPatternLang; i++)
{
}
}
if (!satisfies)
- nodeps[f]->score[MATCH_LANG_INDEX] = 10000.0;
+ {
+ nodeps[f]->score[PRI_LANG] = 10000.0;
+ }
}
/*
#include <stdio.h>
static const FcObjectType FcObjects[] = {
-#define FC_OBJECT(NAME, Type) { FC_##NAME, Type },
+#define FC_OBJECT(NAME, Type, Cmp) { FC_##NAME, Type },
#include "fcobjs.h"
#undef FC_OBJECT
};
if (t) {
switch ((int) t->type) {
+ case FcTypeUnknown:
+ return FcTrue;
case FcTypeDouble:
case FcTypeInteger:
if (type == FcTypeDouble || type == FcTypeInteger)
if (type == FcTypeLangSet || type == FcTypeString)
return FcTrue;
break;
+ case FcTypeRange:
+ if (type == FcTypeRange || type == FcTypeDouble)
+ return FcTrue;
+ break;
default:
- if (t->type == (unsigned int) -1 || type == t->type)
+ if (type == t->type)
return FcTrue;
break;
}
{ (FcChar8 *) "thin", "weight", FC_WEIGHT_THIN, },
{ (FcChar8 *) "extralight", "weight", FC_WEIGHT_EXTRALIGHT, },
{ (FcChar8 *) "ultralight", "weight", FC_WEIGHT_EXTRALIGHT, },
+ { (FcChar8 *) "demilight", "weight", FC_WEIGHT_DEMILIGHT, },
+ { (FcChar8 *) "semilight", "weight", FC_WEIGHT_DEMILIGHT, },
{ (FcChar8 *) "light", "weight", FC_WEIGHT_LIGHT, },
{ (FcChar8 *) "book", "weight", FC_WEIGHT_BOOK, },
{ (FcChar8 *) "regular", "weight", FC_WEIGHT_REGULAR, },
{
FcValue v;
FcMatrix m;
+ double b, e;
+ char *p;
v.type = type;
switch ((int) v.type) {
if (!v.u.l)
v.type = FcTypeVoid;
break;
+ case FcTypeRange:
+ if (sscanf ((char *) string, "(%lg %lg)", &b, &e) != 2)
+ {
+ v.u.d = strtod ((char *) string, &p);
+ if (p != NULL && p[0] != 0)
+ {
+ v.type = FcTypeVoid;
+ break;
+ }
+ v.type = FcTypeDouble;
+ }
+ else
+ v.u.r = FcRangeCreateDouble (b, e);
+ break;
default:
break;
}
while ((c = *cur))
{
+ if (!isspace (c))
+ break;
+ ++cur;
+ }
+ while ((c = *cur))
+ {
if (c == '\\')
{
++cur;
if ((c = FcNameGetConstant (save)))
{
t = FcNameGetObjectType ((char *) c->object);
+ if (t == NULL)
+ goto bail2;
switch ((int) t->type) {
case FcTypeInteger:
case FcTypeDouble:
{
FcChar8 temp[1024];
FcValue v = FcValueCanonicalize(v0);
+ FcRange r;
switch (v.type) {
+ case FcTypeUnknown:
case FcTypeVoid:
return FcTrue;
case FcTypeInteger:
return FcNameUnparseLangSet (buf, v.u.l);
case FcTypeFTFace:
return FcTrue;
+ case FcTypeRange:
+ r = FcRangeCanonicalize (v.u.r);
+ if (!FcDoubleIsZero (r.u.d.begin) || !FcDoubleIsZero (r.u.d.end))
+ {
+ if (FcDoubleCmpEQ (r.u.d.begin, r.u.d.end))
+ sprintf ((char *) temp, "%g", r.u.d.begin);
+ else
+ sprintf ((char *) temp, "(%g %g)", r.u.d.begin, r.u.d.end);
+ return FcNameUnparseString (buf, temp, 0);
+ }
+ else
+ return FcTrue;
}
return FcFalse;
}
FcChar8 *
FcNameUnparseEscaped (FcPattern *pat, FcBool escape)
{
- FcStrBuf buf;
- FcChar8 buf_static[8192];
+ FcStrBuf buf, buf2;
+ FcChar8 buf_static[8192], buf2_static[256];
int i;
FcPatternElt *e;
FcStrBufInit (&buf, buf_static, sizeof (buf_static));
+ FcStrBufInit (&buf2, buf2_static, sizeof (buf2_static));
e = FcPatternObjectFindElt (pat, FC_FAMILY_OBJECT);
if (e)
{
e = FcPatternObjectFindElt (pat, FC_SIZE_OBJECT);
if (e)
{
- if (!FcNameUnparseString (&buf, (FcChar8 *) "-", 0))
+ FcChar8 *p;
+
+ if (!FcNameUnparseString (&buf2, (FcChar8 *) "-", 0))
goto bail0;
- if (!FcNameUnparseValueList (&buf, FcPatternEltValues(e), escape ? (FcChar8 *) FC_ESCAPE_FIXED : 0))
+ if (!FcNameUnparseValueList (&buf2, FcPatternEltValues(e), escape ? (FcChar8 *) FC_ESCAPE_FIXED : 0))
goto bail0;
+ p = FcStrBufDoneStatic (&buf2);
+ FcStrBufDestroy (&buf2);
+ if (strlen ((const char *)p) > 1)
+ if (!FcStrBufString (&buf, p))
+ goto bail0;
}
for (i = 0; i < NUM_OBJECT_TYPES; i++)
{
/* The 1000 is to leave some room for future added internal objects, such
* that caches from newer fontconfig can still be used with older fontconfig
* without getting confused. */
-static fc_atomic_int_t next_id = FC_MAX_BASE_OBJECT + 1000;
+static fc_atomic_int_t next_id = FC_MAX_BASE_OBJECT + FC_EXT_OBJ_INDEX;
struct FcObjectOtherTypeInfo {
struct FcObjectOtherTypeInfo *next;
FcObjectType object;
return NULL;
ot->object.object = (const char *) FcStrdup (str);
- ot->object.type = -1;
+ ot->object.type = FcTypeUnknown;
ot->id = fc_atomic_int_add (next_id, +1);
ot->next = ots;
+/*
+ * fontconfig/src/fcobjs.h
+ *
+ * Copyright © 2000 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 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.
+ */
/* DON'T REORDER! The order is part of the cache signature. */
-FC_OBJECT (FAMILY, FcTypeString)
-FC_OBJECT (FAMILYLANG, FcTypeString)
-FC_OBJECT (STYLE, FcTypeString)
-FC_OBJECT (STYLELANG, FcTypeString)
-FC_OBJECT (FULLNAME, FcTypeString)
-FC_OBJECT (FULLNAMELANG, FcTypeString)
-FC_OBJECT (SLANT, FcTypeInteger)
-FC_OBJECT (WEIGHT, FcTypeInteger)
-FC_OBJECT (WIDTH, FcTypeInteger)
-FC_OBJECT (SIZE, FcTypeDouble)
-FC_OBJECT (ASPECT, FcTypeDouble)
-FC_OBJECT (PIXEL_SIZE, FcTypeDouble)
-FC_OBJECT (SPACING, FcTypeInteger)
-FC_OBJECT (FOUNDRY, FcTypeString)
-FC_OBJECT (ANTIALIAS, FcTypeBool)
-FC_OBJECT (HINT_STYLE, FcTypeInteger)
-FC_OBJECT (HINTING, FcTypeBool)
-FC_OBJECT (VERTICAL_LAYOUT, FcTypeBool)
-FC_OBJECT (AUTOHINT, FcTypeBool)
-FC_OBJECT (GLOBAL_ADVANCE, FcTypeBool) /* deprecated */
-FC_OBJECT (FILE, FcTypeString)
-FC_OBJECT (INDEX, FcTypeInteger)
-FC_OBJECT (RASTERIZER, FcTypeString)
-FC_OBJECT (OUTLINE, FcTypeBool)
-FC_OBJECT (SCALABLE, FcTypeBool)
-FC_OBJECT (DPI, FcTypeDouble)
-FC_OBJECT (RGBA, FcTypeInteger)
-FC_OBJECT (SCALE, FcTypeDouble)
-FC_OBJECT (MINSPACE, FcTypeBool)
-FC_OBJECT (CHAR_WIDTH, FcTypeInteger)
-FC_OBJECT (CHAR_HEIGHT, FcTypeInteger)
-FC_OBJECT (MATRIX, FcTypeMatrix)
-FC_OBJECT (CHARSET, FcTypeCharSet)
-FC_OBJECT (LANG, FcTypeLangSet)
-FC_OBJECT (FONTVERSION, FcTypeInteger)
-FC_OBJECT (CAPABILITY, FcTypeString)
-FC_OBJECT (FONTFORMAT, FcTypeString)
-FC_OBJECT (EMBOLDEN, FcTypeBool)
-FC_OBJECT (EMBEDDED_BITMAP, FcTypeBool)
-FC_OBJECT (DECORATIVE, FcTypeBool)
-FC_OBJECT (LCD_FILTER, FcTypeInteger)
-FC_OBJECT (NAMELANG, FcTypeString)
+FC_OBJECT (FAMILY, FcTypeString, FcCompareFamily)
+FC_OBJECT (FAMILYLANG, FcTypeString, NULL)
+FC_OBJECT (STYLE, FcTypeString, FcCompareString)
+FC_OBJECT (STYLELANG, FcTypeString, NULL)
+FC_OBJECT (FULLNAME, FcTypeString, NULL)
+FC_OBJECT (FULLNAMELANG, FcTypeString, NULL)
+FC_OBJECT (SLANT, FcTypeInteger, FcCompareNumber)
+FC_OBJECT (WEIGHT, FcTypeInteger, FcCompareNumber)
+FC_OBJECT (WIDTH, FcTypeInteger, FcCompareNumber)
+FC_OBJECT (SIZE, FcTypeRange, FcCompareSizeRange)
+FC_OBJECT (ASPECT, FcTypeDouble, NULL)
+FC_OBJECT (PIXEL_SIZE, FcTypeDouble, FcCompareSize)
+FC_OBJECT (SPACING, FcTypeInteger, FcCompareNumber)
+FC_OBJECT (FOUNDRY, FcTypeString, FcCompareString)
+FC_OBJECT (ANTIALIAS, FcTypeBool, FcCompareBool)
+FC_OBJECT (HINT_STYLE, FcTypeInteger, NULL)
+FC_OBJECT (HINTING, FcTypeBool, NULL)
+FC_OBJECT (VERTICAL_LAYOUT, FcTypeBool, NULL)
+FC_OBJECT (AUTOHINT, FcTypeBool, NULL)
+FC_OBJECT (GLOBAL_ADVANCE, FcTypeBool, NULL) /* deprecated */
+FC_OBJECT (FILE, FcTypeString, FcCompareFilename)
+FC_OBJECT (INDEX, FcTypeInteger, NULL)
+FC_OBJECT (RASTERIZER, FcTypeString, FcCompareString) /* deprecated */
+FC_OBJECT (OUTLINE, FcTypeBool, FcCompareBool)
+FC_OBJECT (SCALABLE, FcTypeBool, FcCompareBool)
+FC_OBJECT (DPI, FcTypeDouble, NULL)
+FC_OBJECT (RGBA, FcTypeInteger, NULL)
+FC_OBJECT (SCALE, FcTypeDouble, NULL)
+FC_OBJECT (MINSPACE, FcTypeBool, NULL)
+FC_OBJECT (CHAR_WIDTH, FcTypeInteger, NULL)
+FC_OBJECT (CHAR_HEIGHT, FcTypeInteger, NULL)
+FC_OBJECT (MATRIX, FcTypeMatrix, NULL)
+FC_OBJECT (CHARSET, FcTypeCharSet, FcCompareCharSet)
+FC_OBJECT (LANG, FcTypeLangSet, FcCompareLang)
+FC_OBJECT (FONTVERSION, FcTypeInteger, FcCompareNumber)
+FC_OBJECT (CAPABILITY, FcTypeString, NULL)
+FC_OBJECT (FONTFORMAT, FcTypeString, FcCompareString)
+FC_OBJECT (EMBOLDEN, FcTypeBool, NULL)
+FC_OBJECT (EMBEDDED_BITMAP, FcTypeBool, NULL)
+FC_OBJECT (DECORATIVE, FcTypeBool, FcCompareBool)
+FC_OBJECT (LCD_FILTER, FcTypeInteger, NULL)
+FC_OBJECT (NAMELANG, FcTypeString, NULL)
+FC_OBJECT (FONT_FEATURES, FcTypeString, NULL)
+FC_OBJECT (PRGNAME, FcTypeString, NULL)
+FC_OBJECT (HASH, FcTypeString, NULL) /* deprecated */
+FC_OBJECT (POSTSCRIPT_NAME, FcTypeString, FcComparePostScript)
+FC_OBJECT (COLOR, FcTypeBool, FcCompareBool)
/* ^-------------- Add new objects here. */
"decorative",FC_DECORATIVE_OBJECT
"lcdfilter",FC_LCD_FILTER_OBJECT
"namelang",FC_NAMELANG_OBJECT
+"fontfeatures",FC_FONT_FEATURES_OBJECT
+"prgname",FC_PRGNAME_OBJECT
+"hash",FC_HASH_OBJECT
+"postscriptname",FC_POSTSCRIPT_NAME_OBJECT
+"color",FC_COLOR_OBJECT
+/*
+ * fontconfig/src/fcobjshash.gperf.h
+ *
+ * Copyright © 2000 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 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.
+ */
%{
CUT_OUT_BEGIN
#include <fontconfig/fontconfig.h>
};
%%
-#define FC_OBJECT(NAME, Type) FC_##NAME, FC_##NAME##_OBJECT
+#define FC_OBJECT(NAME, Type, Cmp) FC_##NAME, FC_##NAME##_OBJECT
#include "fcobjs.h"
#undef FC_OBJECT
int id;
};
#include <string.h>
-/* maximum key range = 51, duplicates = 0 */
+/* maximum key range = 52, duplicates = 0 */
#ifdef __GNUC__
__inline
{
static const unsigned char asso_values[] =
{
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 15, 24, 14,
- 16, 29, 54, 13, 8, 0, 54, 54, 0, 6,
- 7, 0, 0, 54, 0, 17, 3, 0, 54, 54,
- 0, 28, 1, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 17, 12, 1,
+ 35, 0, 56, 27, 15, 0, 56, 56, 0, 7,
+ 7, 0, 22, 56, 21, 10, 13, 0, 56, 56,
+ 1, 26, 5, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56
};
return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[1]];
}
struct FcObjectTypeNamePool_t
{
- char FcObjectTypeNamePool_str3[sizeof("dpi")];
char FcObjectTypeNamePool_str4[sizeof("file")];
- char FcObjectTypeNamePool_str5[sizeof("size")];
+ char FcObjectTypeNamePool_str5[sizeof("color")];
+ char FcObjectTypeNamePool_str6[sizeof("weight")];
char FcObjectTypeNamePool_str7[sizeof("foundry")];
char FcObjectTypeNamePool_str8[sizeof("fullname")];
- char FcObjectTypeNamePool_str9[sizeof("pixelsize")];
- char FcObjectTypeNamePool_str10[sizeof("outline")];
- char FcObjectTypeNamePool_str11[sizeof("autohint")];
+ char FcObjectTypeNamePool_str9[sizeof("size")];
+ char FcObjectTypeNamePool_str10[sizeof("pixelsize")];
+ char FcObjectTypeNamePool_str11[sizeof("decorative")];
char FcObjectTypeNamePool_str12[sizeof("fullnamelang")];
char FcObjectTypeNamePool_str13[sizeof("globaladvance")];
char FcObjectTypeNamePool_str14[sizeof("hinting")];
char FcObjectTypeNamePool_str16[sizeof("hintstyle")];
char FcObjectTypeNamePool_str17[sizeof("fontformat")];
char FcObjectTypeNamePool_str18[sizeof("fontversion")];
- char FcObjectTypeNamePool_str19[sizeof("antialias")];
- char FcObjectTypeNamePool_str20[sizeof("slant")];
- char FcObjectTypeNamePool_str21[sizeof("width")];
- char FcObjectTypeNamePool_str22[sizeof("spacing")];
- char FcObjectTypeNamePool_str23[sizeof("aspect")];
- char FcObjectTypeNamePool_str24[sizeof("matrix")];
- char FcObjectTypeNamePool_str25[sizeof("capability")];
- char FcObjectTypeNamePool_str26[sizeof("lang")];
- char FcObjectTypeNamePool_str27[sizeof("family")];
- char FcObjectTypeNamePool_str28[sizeof("index")];
- char FcObjectTypeNamePool_str29[sizeof("namelang")];
- char FcObjectTypeNamePool_str30[sizeof("charset")];
- char FcObjectTypeNamePool_str31[sizeof("familylang")];
- char FcObjectTypeNamePool_str32[sizeof("charwidth")];
- char FcObjectTypeNamePool_str33[sizeof("charheight")];
- char FcObjectTypeNamePool_str34[sizeof("scale")];
- char FcObjectTypeNamePool_str35[sizeof("weight")];
- char FcObjectTypeNamePool_str36[sizeof("style")];
- char FcObjectTypeNamePool_str37[sizeof("scalable")];
- char FcObjectTypeNamePool_str38[sizeof("embolden")];
- char FcObjectTypeNamePool_str39[sizeof("lcdfilter")];
- char FcObjectTypeNamePool_str40[sizeof("stylelang")];
- char FcObjectTypeNamePool_str41[sizeof("rgba")];
- char FcObjectTypeNamePool_str42[sizeof("rasterizer")];
- char FcObjectTypeNamePool_str43[sizeof("verticallayout")];
- char FcObjectTypeNamePool_str44[sizeof("embeddedbitmap")];
- char FcObjectTypeNamePool_str53[sizeof("decorative")];
+ char FcObjectTypeNamePool_str19[sizeof("fontfeatures")];
+ char FcObjectTypeNamePool_str20[sizeof("outline")];
+ char FcObjectTypeNamePool_str21[sizeof("autohint")];
+ char FcObjectTypeNamePool_str22[sizeof("slant")];
+ char FcObjectTypeNamePool_str23[sizeof("scale")];
+ char FcObjectTypeNamePool_str24[sizeof("postscriptname")];
+ char FcObjectTypeNamePool_str25[sizeof("dpi")];
+ char FcObjectTypeNamePool_str26[sizeof("scalable")];
+ char FcObjectTypeNamePool_str27[sizeof("embolden")];
+ char FcObjectTypeNamePool_str28[sizeof("lang")];
+ char FcObjectTypeNamePool_str29[sizeof("antialias")];
+ char FcObjectTypeNamePool_str30[sizeof("family")];
+ char FcObjectTypeNamePool_str31[sizeof("hash")];
+ char FcObjectTypeNamePool_str32[sizeof("namelang")];
+ char FcObjectTypeNamePool_str33[sizeof("embeddedbitmap")];
+ char FcObjectTypeNamePool_str34[sizeof("familylang")];
+ char FcObjectTypeNamePool_str35[sizeof("verticallayout")];
+ char FcObjectTypeNamePool_str36[sizeof("matrix")];
+ char FcObjectTypeNamePool_str37[sizeof("rasterizer")];
+ char FcObjectTypeNamePool_str38[sizeof("aspect")];
+ char FcObjectTypeNamePool_str39[sizeof("charset")];
+ char FcObjectTypeNamePool_str40[sizeof("width")];
+ char FcObjectTypeNamePool_str41[sizeof("charwidth")];
+ char FcObjectTypeNamePool_str42[sizeof("charheight")];
+ char FcObjectTypeNamePool_str43[sizeof("rgba")];
+ char FcObjectTypeNamePool_str44[sizeof("style")];
+ char FcObjectTypeNamePool_str45[sizeof("lcdfilter")];
+ char FcObjectTypeNamePool_str46[sizeof("spacing")];
+ char FcObjectTypeNamePool_str47[sizeof("index")];
+ char FcObjectTypeNamePool_str48[sizeof("stylelang")];
+ char FcObjectTypeNamePool_str49[sizeof("capability")];
+ char FcObjectTypeNamePool_str55[sizeof("prgname")];
};
static const struct FcObjectTypeNamePool_t FcObjectTypeNamePool_contents =
{
- "dpi",
"file",
- "size",
+ "color",
+ "weight",
"foundry",
"fullname",
+ "size",
"pixelsize",
- "outline",
- "autohint",
+ "decorative",
"fullnamelang",
"globaladvance",
"hinting",
"hintstyle",
"fontformat",
"fontversion",
- "antialias",
+ "fontfeatures",
+ "outline",
+ "autohint",
"slant",
- "width",
- "spacing",
- "aspect",
- "matrix",
- "capability",
+ "scale",
+ "postscriptname",
+ "dpi",
+ "scalable",
+ "embolden",
"lang",
+ "antialias",
"family",
- "index",
+ "hash",
"namelang",
- "charset",
+ "embeddedbitmap",
"familylang",
+ "verticallayout",
+ "matrix",
+ "rasterizer",
+ "aspect",
+ "charset",
+ "width",
"charwidth",
"charheight",
- "scale",
- "weight",
+ "rgba",
"style",
- "scalable",
- "embolden",
"lcdfilter",
+ "spacing",
+ "index",
"stylelang",
- "rgba",
- "rasterizer",
- "verticallayout",
- "embeddedbitmap",
- "decorative"
+ "capability",
+ "prgname"
};
#define FcObjectTypeNamePool ((const char *) &FcObjectTypeNamePool_contents)
#ifdef __GNUC__
{
enum
{
- TOTAL_KEYWORDS = 42,
+ TOTAL_KEYWORDS = 47,
MIN_WORD_LENGTH = 3,
MAX_WORD_LENGTH = 14,
- MIN_HASH_VALUE = 3,
- MAX_HASH_VALUE = 53
+ MIN_HASH_VALUE = 4,
+ MAX_HASH_VALUE = 55
};
static const struct FcObjectTypeInfo wordlist[] =
{
- {-1}, {-1}, {-1},
-#line 43 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str3,FC_DPI_OBJECT},
+ {-1}, {-1}, {-1}, {-1},
#line 38 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str4,FC_FILE_OBJECT},
-#line 27 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str5,FC_SIZE_OBJECT},
- {-1},
+#line 64 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str5,FC_COLOR_OBJECT},
+#line 25 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str6,FC_WEIGHT_OBJECT},
#line 31 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str7,FC_FOUNDRY_OBJECT},
#line 22 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str8,FC_FULLNAME_OBJECT},
+#line 27 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str9,FC_SIZE_OBJECT},
#line 29 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str9,FC_PIXEL_SIZE_OBJECT},
-#line 41 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str10,FC_OUTLINE_OBJECT},
-#line 36 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str11,FC_AUTOHINT_OBJECT},
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str10,FC_PIXEL_SIZE_OBJECT},
+#line 57 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str11,FC_DECORATIVE_OBJECT},
#line 23 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str12,FC_FULLNAMELANG_OBJECT},
#line 37 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str17,FC_FONTFORMAT_OBJECT},
#line 52 "fcobjshash.gperf"
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str18,FC_FONTVERSION_OBJECT},
-#line 32 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str19,FC_ANTIALIAS_OBJECT},
+#line 60 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str19,FC_FONT_FEATURES_OBJECT},
+#line 41 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str20,FC_OUTLINE_OBJECT},
+#line 36 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str21,FC_AUTOHINT_OBJECT},
#line 24 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str20,FC_SLANT_OBJECT},
-#line 26 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str21,FC_WIDTH_OBJECT},
-#line 30 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str22,FC_SPACING_OBJECT},
-#line 28 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str23,FC_ASPECT_OBJECT},
-#line 49 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str24,FC_MATRIX_OBJECT},
-#line 53 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str25,FC_CAPABILITY_OBJECT},
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str22,FC_SLANT_OBJECT},
+#line 45 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str23,FC_SCALE_OBJECT},
+#line 63 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str24,FC_POSTSCRIPT_NAME_OBJECT},
+#line 43 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str25,FC_DPI_OBJECT},
+#line 42 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str26,FC_SCALABLE_OBJECT},
+#line 55 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str27,FC_EMBOLDEN_OBJECT},
#line 51 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str26,FC_LANG_OBJECT},
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str28,FC_LANG_OBJECT},
+#line 32 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str29,FC_ANTIALIAS_OBJECT},
#line 18 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str27,FC_FAMILY_OBJECT},
-#line 39 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str28,FC_INDEX_OBJECT},
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str30,FC_FAMILY_OBJECT},
+#line 62 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str31,FC_HASH_OBJECT},
#line 59 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str29,FC_NAMELANG_OBJECT},
-#line 50 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str30,FC_CHARSET_OBJECT},
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str32,FC_NAMELANG_OBJECT},
+#line 56 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str33,FC_EMBEDDED_BITMAP_OBJECT},
#line 19 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str31,FC_FAMILYLANG_OBJECT},
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str34,FC_FAMILYLANG_OBJECT},
+#line 35 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str35,FC_VERTICAL_LAYOUT_OBJECT},
+#line 49 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str36,FC_MATRIX_OBJECT},
+#line 40 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str37,FC_RASTERIZER_OBJECT},
+#line 28 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str38,FC_ASPECT_OBJECT},
+#line 50 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str39,FC_CHARSET_OBJECT},
+#line 26 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str40,FC_WIDTH_OBJECT},
#line 47 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str32,FC_CHAR_WIDTH_OBJECT},
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str41,FC_CHAR_WIDTH_OBJECT},
#line 48 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str33,FC_CHAR_HEIGHT_OBJECT},
-#line 45 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str34,FC_SCALE_OBJECT},
-#line 25 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str35,FC_WEIGHT_OBJECT},
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str42,FC_CHAR_HEIGHT_OBJECT},
+#line 44 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str43,FC_RGBA_OBJECT},
#line 20 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str36,FC_STYLE_OBJECT},
-#line 42 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str37,FC_SCALABLE_OBJECT},
-#line 55 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str38,FC_EMBOLDEN_OBJECT},
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str44,FC_STYLE_OBJECT},
#line 58 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str39,FC_LCD_FILTER_OBJECT},
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str45,FC_LCD_FILTER_OBJECT},
+#line 30 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str46,FC_SPACING_OBJECT},
+#line 39 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str47,FC_INDEX_OBJECT},
#line 21 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str40,FC_STYLELANG_OBJECT},
-#line 44 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str41,FC_RGBA_OBJECT},
-#line 40 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str42,FC_RASTERIZER_OBJECT},
-#line 35 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str43,FC_VERTICAL_LAYOUT_OBJECT},
-#line 56 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str44,FC_EMBEDDED_BITMAP_OBJECT},
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
-#line 57 "fcobjshash.gperf"
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str53,FC_DECORATIVE_OBJECT}
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str48,FC_STYLELANG_OBJECT},
+#line 53 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str49,FC_CAPABILITY_OBJECT},
+ {-1}, {-1}, {-1}, {-1}, {-1},
+#line 61 "fcobjshash.gperf"
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str55,FC_PRGNAME_OBJECT}
};
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
p = (FcPattern *) malloc (sizeof (FcPattern));
if (!p)
return 0;
+ memset (p, 0, sizeof (FcPattern));
p->num = 0;
p->size = 0;
p->elts_offset = FcPtrToOffset (p, NULL);
case FcTypeLangSet:
FcLangSetDestroy ((FcLangSet *) v.u.l);
break;
+ case FcTypeRange:
+ FcRangeDestroy ((FcRange *) v.u.r);
+ break;
default:
break;
}
new.u.l = FcValueLangSet(v);
new.type = FcTypeLangSet;
break;
+ case FcTypeRange:
+ new.u.r = FcValueRange(v);
+ new.type = FcTypeRange;
+ break;
default:
new = *v;
break;
if (!v.u.l)
v.type = FcTypeVoid;
break;
+ case FcTypeRange:
+ v.u.r = FcRangeCopy (v.u.r);
+ if (!v.u.r)
+ v.type = FcTypeVoid;
+ break;
default:
break;
}
FcLangSetDestroy
((FcLangSet *) (l->value.u.l));
break;
+ case FcTypeRange:
+ FcRangeDestroy ((FcRange *) (l->value.u.r));
+ break;
default:
break;
}
return FcFalse;
}
switch (va.type) {
+ case FcTypeUnknown:
+ return FcFalse; /* don't know how to compare this object */
case FcTypeVoid:
return FcTrue;
case FcTypeInteger:
return va.u.f == vb.u.f;
case FcTypeLangSet:
return FcLangSetEqual (va.u.l, vb.u.l);
+ case FcTypeRange:
+ return FcRangeIsInRange (va.u.r, vb.u.r);
}
return FcFalse;
}
FcValueHash (const FcValue *v)
{
switch (v->type) {
+ case FcTypeUnknown:
case FcTypeVoid:
return 0;
case FcTypeInteger:
FcStringHash ((const FcChar8 *) ((FT_Face) v->u.f)->style_name);
case FcTypeLangSet:
return FcLangSetHash (FcValueLangSet(v));
+ case FcTypeRange:
+ return FcRangeHash (v->u.r);
}
- return FcFalse;
+ return 0;
}
static FcBool
return FcPatternAdd (p, object, v, FcTrue);
}
+FcBool
+FcPatternObjectAddRange (FcPattern *p, FcObject object, const FcRange *r)
+{
+ FcValue v;
+
+ v.type = FcTypeRange;
+ v.u.r = (FcRange *)r;
+ return FcPatternObjectAdd (p, object, v, FcTrue);
+}
+
+FcBool
+FcPatternAddRange (FcPattern *p, const char *object, const FcRange *r)
+{
+ return FcPatternObjectAddRange (p, FcObjectFromName (object), r);
+}
+
FcResult
FcPatternObjectGet (const FcPattern *p, FcObject object, int id, FcValue *v)
{
FcPatternElt *e;
FcValueListPtr l;
+ if (!p)
+ return FcResultNoMatch;
e = FcPatternObjectFindElt (p, object);
if (!e)
return FcResultNoMatch;
return FcResultMatch;
}
+FcResult
+FcPatternObjectGetRange (const FcPattern *p, FcObject object, int id, FcRange **r)
+{
+ FcValue v;
+ FcResult res;
+
+ res = FcPatternObjectGet (p, object, id, &v);
+ if (res != FcResultMatch)
+ return res;
+ switch ((int)v.type) {
+ case FcTypeRange:
+ *r = (FcRange *)v.u.r;
+ break;
+ default:
+ return FcResultTypeMismatch;
+ }
+ return FcResultMatch;
+}
+
+FcResult
+FcPatternGetRange (const FcPattern *p, const char *object, int id, FcRange **r)
+{
+ return FcPatternObjectGetRange (p, FcObjectFromName (object), id, r);
+}
+
FcPattern *
FcPatternDuplicate (const FcPattern *orig)
{
if (!FcLangSetSerializeAlloc (serialize, vl->value.u.l))
return FcFalse;
break;
+ case FcTypeRange:
+ if (!FcRangeSerializeAlloc (serialize, vl->value.u.r))
+ return FcFalse;
+ break;
default:
break;
}
FcChar8 *s_serialized;
FcCharSet *c_serialized;
FcLangSet *l_serialized;
+ FcRange *r_serialized;
FcValueList *head_serialized = NULL;
FcValueList *prev_serialized = NULL;
l_serialized,
FcLangSet);
break;
+ case FcTypeRange:
+ r_serialized = FcRangeSerialize (serialize, vl->value.u.r);
+ if (!r_serialized)
+ return NULL;
+ vl_serialized->value.u.r = FcPtrToEncodedOffset (&vl_serialized->value,
+ r_serialized,
+ FcRange);
+ break;
default:
break;
}
}
return head_serialized;
}
+
#define __fcpat__
#include "fcaliastail.h"
#include "fcftaliastail.h"
--- /dev/null
+/*
+ * fontconfig/src/fcrange.c
+ *
+ * Copyright © 2002 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 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 "fcint.h"
+
+
+FcRange *
+FcRangeCreateDouble (double begin, double end)
+{
+ FcRange *ret = malloc (sizeof (FcRange));
+
+ if (ret)
+ {
+ ret->is_double = FcTrue;
+ ret->is_inclusive = FcDoubleCmpEQ (begin, end);
+ ret->u.d.begin = begin;
+ ret->u.d.end = end;
+ }
+
+ return ret;
+}
+
+FcRange *
+FcRangeCreateInteger (FcChar32 begin, FcChar32 end)
+{
+ FcRange *ret = malloc (sizeof (FcRange));
+
+ if (ret)
+ {
+ ret->is_double = FcFalse;
+ ret->is_inclusive = (begin == end);
+ ret->u.i.begin = begin;
+ ret->u.i.end = end;
+ }
+
+ return ret;
+}
+
+void
+FcRangeDestroy (FcRange *range)
+{
+ free (range);
+}
+
+FcRange *
+FcRangeCopy (const FcRange *range)
+{
+ FcRange *ret;
+
+ if (range->is_double)
+ ret = FcRangeCreateDouble (range->u.d.begin, range->u.d.end);
+ else
+ ret = FcRangeCreateInteger (range->u.i.begin, range->u.i.end);
+
+ return ret;
+}
+
+FcBool
+FcRangeGetDouble(const FcRange *range, double *begin, double *end)
+{
+ if (!range)
+ return FcFalse;
+ if (range->is_double)
+ {
+ if (begin)
+ *begin = range->u.d.begin;
+ if (end)
+ *end = range->u.d.end;
+ }
+ else
+ {
+ if (begin)
+ *begin = (double)range->u.i.begin;
+ if (end)
+ *end = (double)range->u.i.end;
+ }
+
+ return FcTrue;
+}
+
+FcRange
+FcRangeCanonicalize (const FcRange *range)
+{
+ FcRange new;
+
+ if (range->is_double)
+ new = *range;
+ else
+ {
+ new.is_double = FcTrue;
+ new.is_inclusive = range->is_inclusive;
+ new.u.d.begin = (double)range->u.i.begin;
+ new.u.d.end = (double)range->u.i.end;
+ }
+ return new;
+}
+
+FcRange *
+FcRangePromote (double v, FcValuePromotionBuffer *vbuf)
+{
+ typedef struct {
+ FcRange r;
+ } FcRangePromotionBuffer;
+ FcRangePromotionBuffer *buf = (FcRangePromotionBuffer *) vbuf;
+
+ FC_ASSERT_STATIC (sizeof (FcRangePromotionBuffer) <= sizeof (FcValuePromotionBuffer));
+ buf->r.is_double = FcTrue;
+ buf->r.is_inclusive = FcTrue;
+ buf->r.u.d.begin = v;
+ buf->r.u.d.end = v;
+
+ return &buf->r;
+}
+
+FcBool
+FcRangeIsZero (const FcRange *r)
+{
+ FcRange c;
+
+ if (!r)
+ return FcFalse;
+ c = FcRangeCanonicalize (r);
+
+ return FcDoubleIsZero (c.u.d.begin) && FcDoubleIsZero (c.u.d.end);
+}
+
+FcBool
+FcRangeIsInRange (const FcRange *a, const FcRange *b)
+{
+ FcRange ca, cb;
+ FcBool f;
+
+ if (!a || !b)
+ return FcFalse;
+
+ ca = FcRangeCanonicalize (a);
+ cb = FcRangeCanonicalize (b);
+ if (ca.is_inclusive & cb.is_inclusive)
+ f = ca.u.d.end <= cb.u.d.end;
+ else
+ f = ca.u.d.end < cb.u.d.end;
+
+ return FcDoubleCmpGE (ca.u.d.begin, cb.u.d.begin) && f;
+}
+
+FcBool
+FcRangeCompare (FcOp op, const FcRange *a, const FcRange *b)
+{
+ FcRange ca, cb;
+
+ switch ((int) op) {
+ case FcOpEqual:
+ case FcOpContains:
+ case FcOpListing:
+ return FcRangeIsInRange (a, b);
+ case FcOpNotEqual:
+ case FcOpNotContains:
+ return !FcRangeIsInRange (a, b);
+ case FcOpLess:
+ ca = FcRangeCanonicalize (a);
+ cb = FcRangeCanonicalize (b);
+ return ca.u.d.begin < cb.u.d.begin;
+ case FcOpLessEqual:
+ ca = FcRangeCanonicalize (a);
+ cb = FcRangeCanonicalize (b);
+ return FcDoubleCmpLE (ca.u.d.begin, cb.u.d.begin);
+ case FcOpMore:
+ ca = FcRangeCanonicalize (a);
+ cb = FcRangeCanonicalize (b);
+ return ca.u.d.end > cb.u.d.end;
+ case FcOpMoreEqual:
+ ca = FcRangeCanonicalize (a);
+ cb = FcRangeCanonicalize (b);
+ return FcDoubleCmpGE (ca.u.d.end, cb.u.d.end);
+ default:
+ break;
+ }
+ return FcFalse;
+}
+
+FcChar32
+FcRangeHash (const FcRange *r)
+{
+ FcRange c = FcRangeCanonicalize (r);
+ int b = (int) (c.u.d.begin * 100);
+ int e = (int) (c.u.d.end * 100);
+
+ return b ^ (b << 1) ^ (e << 9);
+}
+
+FcBool
+FcRangeSerializeAlloc (FcSerialize *serialize, const FcRange *r)
+{
+ if (!FcSerializeAlloc (serialize, r, sizeof (FcRange)))
+ return FcFalse;
+ return FcTrue;
+}
+
+FcRange *
+FcRangeSerialize (FcSerialize *serialize, const FcRange *r)
+{
+ FcRange *r_serialize = FcSerializePtr (serialize, r);
+
+ if (!r_serialize)
+ return NULL;
+ memcpy (r_serialize, r, sizeof (FcRange));
+
+ return r_serialize;
+}
+
+#define __fcrange__
+#include "fcaliastail.h"
+#undef __fcrange__
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
#include "fcint.h"
#include "fcarch.h"
#include <dirent.h>
#ifdef HAVE_SYS_VFS_H
#include <sys/vfs.h>
#endif
+#ifdef HAVE_SYS_STATVFS_H
+#include <sys/statvfs.h>
+#endif
#ifdef HAVE_SYS_STATFS_H
#include <sys/statfs.h>
#endif
#ifdef HAVE_SYS_MOUNT_H
#include <sys/mount.h>
#endif
+#include <errno.h>
#ifdef _WIN32
#ifdef __GNUC__
return strcmp((*lhs)->d_name, (*rhs)->d_name);
}
+static void
+free_dirent (struct dirent **p)
+{
+ struct dirent **x;
+
+ for (x = p; *x != NULL; x++)
+ free (*x);
+
+ free (p);
+}
+
+int
+FcScandir (const char *dirp,
+ struct dirent ***namelist,
+ int (*filter) (const struct dirent *),
+ int (*compar) (const struct dirent **, const struct dirent **));
+
+int
+FcScandir (const char *dirp,
+ struct dirent ***namelist,
+ int (*filter) (const struct dirent *),
+ int (*compar) (const struct dirent **, const struct dirent **))
+{
+ DIR *d;
+ struct dirent *dent, *p, **dlist, **dlp;
+ size_t lsize = 128, n = 0;
+
+ d = opendir (dirp);
+ if (!d)
+ return -1;
+
+ dlist = (struct dirent **) malloc (sizeof (struct dirent *) * lsize);
+ if (!dlist)
+ {
+ closedir (d);
+ errno = ENOMEM;
+
+ return -1;
+ }
+ *dlist = NULL;
+ while ((dent = readdir (d)))
+ {
+ if (!filter || (filter) (dent))
+ {
+ size_t dentlen = FcPtrToOffset (dent, dent->d_name) + strlen (dent->d_name) + 1;
+ dentlen = ((dentlen + ALIGNOF_VOID_P - 1) & ~(ALIGNOF_VOID_P - 1));
+ p = (struct dirent *) malloc (dentlen);
+ memcpy (p, dent, dentlen);
+ if ((n + 1) >= lsize)
+ {
+ lsize += 128;
+ dlp = (struct dirent **) realloc (dlist, sizeof (struct dirent *) * lsize);
+ if (!dlp)
+ {
+ free_dirent (dlist);
+ closedir (d);
+ errno = ENOMEM;
+
+ return -1;
+ }
+ dlist = dlp;
+ }
+ dlist[n++] = p;
+ dlist[n] = NULL;
+ }
+ }
+ closedir (d);
+
+ qsort (dlist, n, sizeof (struct dirent *), (int (*) (const void *, const void *))compar);
+
+ *namelist = dlist;
+
+ return n;
+}
+
static int
FcDirChecksum (const FcChar8 *dir, time_t *checksum)
{
struct Adler32 ctx;
struct dirent **files;
int n;
-#ifndef HAVE_STRUCT_DIRENT_D_TYPE
int ret = 0;
size_t len = strlen ((const char *)dir);
-#endif
Adler32Init (&ctx);
- n = scandir ((const char *)dir, &files,
+ n = FcScandir ((const char *)dir, &files,
#ifdef HAVE_STRUCT_DIRENT_D_TYPE
&FcDirChecksumScandirFilter,
#else
#ifdef HAVE_STRUCT_DIRENT_D_TYPE
dtype = files[n]->d_type;
-#else
+ if (dtype == DT_UNKNOWN)
+ {
+#endif
struct stat statb;
char f[PATH_MAX + 1];
goto bail;
dtype = statb.st_mode;
+#ifdef HAVE_STRUCT_DIRENT_D_TYPE
+ }
#endif
Adler32Update (&ctx, files[n]->d_name, dlen + 1);
Adler32Update (&ctx, (char *)&dtype, sizeof (int));
-#ifndef HAVE_STRUCT_DIRENT_D_TYPE
bail:
-#endif
free (files[n]);
}
free (files);
-#ifndef HAVE_STRUCT_DIRENT_D_TYPE
if (ret == -1)
return -1;
-#endif
*checksum = Adler32Finish (&ctx);
return FcFalse;
}
+
+#define __fcstat__
+#include "fcaliastail.h"
+#undef __fcstat__
#ifndef _FONTCONFIG_SRC_FCSTDINT_H
#define _FONTCONFIG_SRC_FCSTDINT_H 1
#ifndef _GENERATED_STDINT_H
-#define _GENERATED_STDINT_H "fontconfig 2.10.91"
-/* generated using gnu compiler gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8) */
+#define _GENERATED_STDINT_H "fontconfig 2.11.93"
+/* generated using gnu compiler gcc (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6) */
#define _STDINT_HAVE_STDINT_H 1
#include <stdint.h>
#endif
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
-#ifdef HAVE_REGEX_H
-#include <regex.h>
-#endif
+
/* Objects MT-safe for readonly access. */
}
static FcChar8
-FcStrCaseWalkerNext (FcCaseWalker *w)
-{
- FcChar8 r;
-
- if (w->read)
- {
- if ((r = *w->read++))
- return r;
- w->read = 0;
- }
- r = *w->src++;
-
- if ((r & 0xc0) == 0xc0)
- return FcStrCaseWalkerLong (w, r);
- if ('A' <= r && r <= 'Z')
- r = r - 'A' + 'a';
- return r;
-}
-
-static FcChar8
-FcStrCaseWalkerNextIgnoreBlanks (FcCaseWalker *w)
+FcStrCaseWalkerNext (FcCaseWalker *w, const char *delims)
{
FcChar8 r;
do
{
r = *w->src++;
- } while (r == ' ');
+ } while (r != 0 && delims && strchr (delims, r));
if ((r & 0xc0) == 0xc0)
return FcStrCaseWalkerLong (w, r);
FcChar8 *dst, *d;
FcStrCaseWalkerInit (s, &w);
- while (FcStrCaseWalkerNext (&w))
+ while (FcStrCaseWalkerNext (&w, NULL))
len++;
d = dst = malloc (len + 1);
if (!d)
return 0;
FcStrCaseWalkerInit (s, &w);
- while ((*d++ = FcStrCaseWalkerNext (&w)));
+ while ((*d++ = FcStrCaseWalkerNext (&w, NULL)));
return dst;
}
for (;;)
{
- c1 = FcStrCaseWalkerNext (&w1);
- c2 = FcStrCaseWalkerNext (&w2);
+ c1 = FcStrCaseWalkerNext (&w1, NULL);
+ c2 = FcStrCaseWalkerNext (&w2, NULL);
if (!c1 || (c1 != c2))
break;
}
int
FcStrCmpIgnoreBlanksAndCase (const FcChar8 *s1, const FcChar8 *s2)
{
+ return FcStrCmpIgnoreCaseAndDelims (s1, s2, (const FcChar8 *)" ");
+}
+
+int
+FcStrCmpIgnoreCaseAndDelims (const FcChar8 *s1, const FcChar8 *s2, const FcChar8 *delims)
+{
FcCaseWalker w1, w2;
FcChar8 c1, c2;
for (;;)
{
- c1 = FcStrCaseWalkerNextIgnoreBlanks (&w1);
- c2 = FcStrCaseWalkerNextIgnoreBlanks (&w2);
+ c1 = FcStrCaseWalkerNext (&w1, (const char *)delims);
+ c2 = FcStrCaseWalkerNext (&w2, (const char *)delims);
if (!c1 || (c1 != c2))
break;
}
return (int) c1 - (int) c2;
}
-#ifdef USE_REGEX
-static FcBool
-_FcStrRegexCmp (const FcChar8 *s, const FcChar8 *regex, int cflags, int eflags)
-{
- int ret = -1;
- regex_t reg;
-
- if ((ret = regcomp (®, (const char *)regex, cflags)) != 0)
- {
- if (FcDebug () & FC_DBG_MATCHV)
- {
- char buf[512];
-
- regerror (ret, ®, buf, 512);
- printf("Regexp compile error: %s\n", buf);
- }
- return FcFalse;
- }
- ret = regexec (®, (const char *)s, 0, NULL, eflags);
- if (ret != 0)
- {
- if (FcDebug () & FC_DBG_MATCHV)
- {
- char buf[512];
-
- regerror (ret, ®, buf, 512);
- printf("Regexp exec error: %s\n", buf);
- }
- }
- regfree (®);
-
- return ret == 0 ? FcTrue : FcFalse;
-}
-#else
-# define _FcStrRegexCmp(_s_, _regex_, _cflags_, _eflags_) (FcFalse)
-#endif
-
-FcBool
-FcStrRegexCmp (const FcChar8 *s, const FcChar8 *regex)
-{
- return _FcStrRegexCmp (s, regex, REG_EXTENDED | REG_NOSUB, 0);
-}
-
-FcBool
-FcStrRegexCmpIgnoreCase (const FcChar8 *s, const FcChar8 *regex)
-{
- return _FcStrRegexCmp (s, regex, REG_EXTENDED | REG_NOSUB | REG_ICASE, 0);
-}
-
/*
* Return a hash value for a string
*/
FcChar8 c;
FcStrCaseWalkerInit (s, &w);
- while ((c = FcStrCaseWalkerNext (&w)))
+ while ((c = FcStrCaseWalkerNext (&w, NULL)))
h = ((h << 3) ^ (h >> 3)) ^ c;
return h;
}
for (;;)
{
- c1 = FcStrCaseWalkerNextIgnoreBlanks (&w1);
- c2 = FcStrCaseWalkerNextIgnoreBlanks (&w2);
+ c1 = FcStrCaseWalkerNext (&w1, " ");
+ c2 = FcStrCaseWalkerNext (&w2, " ");
if (!c1 || (c1 != c2))
break;
}
for (;;)
{
- c1 = FcStrCaseWalkerNext (&w1);
- c2 = FcStrCaseWalkerNext (&w2);
+ c1 = FcStrCaseWalkerNext (&w1, NULL);
+ c2 = FcStrCaseWalkerNext (&w2, NULL);
if (!c1 || (c1 != c2))
break;
}
return 0;
}
+/*
+ * returns the number of strings (ignoring delimitors and case) being matched
+ */
+
+int
+FcStrMatchIgnoreCaseAndDelims (const FcChar8 *s1, const FcChar8 *s2, const FcChar8 *delims)
+{
+ FcCaseWalker w1, w2;
+ FcChar8 c1, c2;
+
+ if (s1 == s2) return 0;
+
+ FcStrCaseWalkerInit (s1, &w1);
+ FcStrCaseWalkerInit (s2, &w2);
+
+ for (;;)
+ {
+ c1 = FcStrCaseWalkerNext (&w1, (const char *)delims);
+ c2 = FcStrCaseWalkerNext (&w2, (const char *)delims);
+ if (!c1 || (c1 != c2))
+ break;
+ }
+ return w1.src - s1 - 1;
+}
+
+FcBool
+FcStrGlobMatch (const FcChar8 *glob,
+ const FcChar8 *string)
+{
+ FcChar8 c;
+
+ while ((c = *glob++))
+ {
+ switch (c) {
+ case '*':
+ /* short circuit common case */
+ if (!*glob)
+ return FcTrue;
+ /* short circuit another common case */
+ if (strchr ((char *) glob, '*') == 0)
+ {
+ size_t l1, l2;
+
+ l1 = strlen ((char *) string);
+ l2 = strlen ((char *) glob);
+ if (l1 < l2)
+ return FcFalse;
+ string += (l1 - l2);
+ }
+ while (*string)
+ {
+ if (FcStrGlobMatch (glob, string))
+ return FcTrue;
+ string++;
+ }
+ return FcFalse;
+ case '?':
+ if (*string++ == '\0')
+ return FcFalse;
+ break;
+ default:
+ if (*string++ != c)
+ return FcFalse;
+ break;
+ }
+ }
+ return *string == '\0';
+}
+
const FcChar8 *
FcStrStrIgnoreCase (const FcChar8 *s1, const FcChar8 *s2)
{
FcStrCaseWalkerInit (s1, &w1);
FcStrCaseWalkerInit (s2, &w2);
- c2 = FcStrCaseWalkerNext (&w2);
+ c2 = FcStrCaseWalkerNext (&w2, NULL);
for (;;)
{
cur = w1.src;
- c1 = FcStrCaseWalkerNext (&w1);
+ c1 = FcStrCaseWalkerNext (&w1, NULL);
if (!c1)
break;
if (c1 == c2)
for (;;)
{
- c1t = FcStrCaseWalkerNext (&w1t);
- c2t = FcStrCaseWalkerNext (&w2t);
+ c1t = FcStrCaseWalkerNext (&w1t, NULL);
+ c2t = FcStrCaseWalkerNext (&w2t, NULL);
if (!c2t)
return cur;
}
FcChar8 *
+FcStrBuildFilename (const FcChar8 *path,
+ ...)
+{
+ va_list ap;
+ FcStrSet *sset;
+ FcStrList *list;
+ FcChar8 *s, *ret = NULL, *p;
+ size_t len = 0;
+
+ if (!path)
+ return NULL;
+
+ sset = FcStrSetCreate ();
+ if (!sset)
+ return NULL;
+
+ if (!FcStrSetAdd (sset, path))
+ goto bail0;
+
+ va_start (ap, path);
+ while (1)
+ {
+ s = (FcChar8 *)va_arg (ap, FcChar8 *);
+ if (!s)
+ break;
+ if (!FcStrSetAdd (sset, s))
+ goto bail1;
+ }
+ list = FcStrListCreate (sset);
+ while ((s = FcStrListNext (list)))
+ {
+ len += strlen ((const char *)s) + 1;
+ }
+ list->n = 0;
+ ret = malloc (sizeof (FcChar8) * (len + 1));
+ if (!ret)
+ goto bail2;
+ p = ret;
+ while ((s = FcStrListNext (list)))
+ {
+ if (p != ret)
+ {
+ p[0] = FC_DIR_SEPARATOR;
+ p++;
+ }
+ len = strlen ((const char *)s);
+ memcpy (p, s, len);
+ p += len;
+ }
+ *p = 0;
+
+bail2:
+ FcStrListDone (list);
+bail1:
+ va_end (ap);
+bail0:
+ FcStrSetDestroy (sset);
+
+ return ret;
+}
+
+FcChar8 *
FcStrCopyFilename (const FcChar8 *s)
{
FcChar8 *new;
FcChar8 cwd[FC_MAX_FILE_LEN + 2];
if (getcwd ((char *) cwd, FC_MAX_FILE_LEN) == NULL)
return NULL;
- strcat ((char *) cwd, "/");
- full = FcStrPlus (cwd, s);
+ full = FcStrBuildFilename (cwd, s, NULL);
file = FcStrCanonAbsoluteFilename (full);
FcStrFree (full);
return file;
return list;
}
+void
+FcStrListFirst (FcStrList *list)
+{
+ list->n = 0;
+}
+
FcChar8 *
FcStrListNext (FcStrList *list)
{
--- /dev/null
+/*
+ * fontconfig/src/fcweight.c
+ *
+ * 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 "fcint.h"
+
+static const struct {
+ int ot;
+ int fc;
+} map[] = {
+ { 0, FC_WEIGHT_THIN },
+ { 100, FC_WEIGHT_THIN },
+ { 200, FC_WEIGHT_EXTRALIGHT },
+ { 350, FC_WEIGHT_DEMILIGHT },
+ { 300, FC_WEIGHT_LIGHT },
+ { 380, FC_WEIGHT_BOOK },
+ { 400, FC_WEIGHT_REGULAR },
+ { 500, FC_WEIGHT_MEDIUM },
+ { 600, FC_WEIGHT_DEMIBOLD },
+ { 700, FC_WEIGHT_BOLD },
+ { 800, FC_WEIGHT_EXTRABOLD },
+ { 900, FC_WEIGHT_BLACK },
+ {1000, FC_WEIGHT_EXTRABLACK },
+};
+
+static int lerp(int x, int x1, int x2, int y1, int y2)
+{
+ int dx = x2 - x1;
+ int dy = y2 - y1;
+ assert (dx > 0 && dy >= 0 && x1 <= x && x <= x2);
+ return y1 + (dy*(x-x1) + dx/2) / dx;
+}
+
+int
+FcWeightFromOpenType (int ot_weight)
+{
+ int i;
+
+ /* Follow WPF Font Selection Model's advice. */
+ if (1 <= ot_weight && ot_weight <= 9)
+ ot_weight *= 100;
+
+ /* WPF Font Selection Model rejects 1000, we allow it
+ * because Pango uses that number. */
+ if (ot_weight < 1 || ot_weight > 1000)
+ return -1;
+
+ for (i = 1; ot_weight > map[i].ot; i++)
+ ;
+
+ if (ot_weight == map[i].ot)
+ return map[i].fc;
+
+ /* Interpolate between two items. */
+ return lerp (ot_weight, map[i-1].ot, map[i].ot, map[i-1].fc, map[i].fc);
+}
+
+int
+FcWeightToOpenType (int fc_weight)
+{
+ int i;
+ if (fc_weight < 0 || fc_weight > FC_WEIGHT_EXTRABLACK)
+ return -1;
+
+ for (i = 1; fc_weight > map[i].fc; i++)
+ ;
+
+ if (fc_weight == map[i].fc)
+ return map[i].ot;
+
+ /* Interpolate between two items. */
+ return lerp (fc_weight, map[i-1].fc, map[i].fc, map[i-1].ot, map[i].ot);
+}
+
+#define __fcweight__
+#include "fcaliastail.h"
+#undef __fcweight__
#endif
#ifdef _WIN32
+ /* Request Windows Vista for building. This is required to
+ * get MemoryBarrier on mingw32... */
+# if defined(_WIN32_WINNT) && _WIN32_WINNT < 0x0600
+# undef _WIN32_WINNT
+# endif
# ifndef _WIN32_WINNT
-# define _WIN32_WINNT 0x0500
+# define _WIN32_WINNT 0x0600
# endif
# define WIN32_LEAN_AND_MEAN
# define WIN32_EXTRA_LEAN
void
FcTestDestroy (FcTest *test)
{
- if (test->next)
- FcTestDestroy (test->next);
FcExprDestroy (test->expr);
free (test);
}
+void
+FcRuleDestroy (FcRule *rule)
+{
+ FcRule *n = rule->next;
+
+ switch (rule->type) {
+ case FcRuleTest:
+ FcTestDestroy (rule->u.test);
+ break;
+ case FcRuleEdit:
+ FcEditDestroy (rule->u.edit);
+ break;
+ default:
+ break;
+ }
+ free (rule);
+ if (n)
+ FcRuleDestroy (n);
+}
+
static FcExpr *
FcExprCreateInteger (FcConfig *config, int i)
{
}
static FcExpr *
+FcExprCreateRange (FcConfig *config, FcRange *range)
+{
+ FcExpr *e = FcConfigAllocExpr (config);
+ if (e)
+ {
+ e->op = FcOpRange;
+ e->u.rval = FcRangeCopy (range);
+ }
+ return e;
+}
+
+static FcExpr *
FcExprCreateBool (FcConfig *config, FcBool b)
{
FcExpr *e = FcConfigAllocExpr (config);
FcExprMatrixFree (e->u.mexpr);
break;
case FcOpRange:
+ FcRangeDestroy (e->u.rval);
break;
case FcOpCharSet:
FcCharSetDestroy (e->u.cval);
case FcOpPrependFirst:
case FcOpAppend:
case FcOpAppendLast:
+ case FcOpDelete:
+ case FcOpDeleteAll:
break;
case FcOpOr:
case FcOpAnd:
void
FcEditDestroy (FcEdit *e)
{
- if (e->next)
- FcEditDestroy (e->next);
if (e->expr)
FcExprDestroy (e->expr);
free (e);
int integer;
double _double;
FcExprMatrix *matrix;
- FcRange range;
+ FcRange *range;
FcBool bool_;
FcCharSet *charset;
FcLangSet *langset;
return "FT_Face";
case FcTypeLangSet:
return "langset";
+ case FcTypeRange:
+ return "range";
default:
return "unknown";
}
if (value != type)
{
if ((value == FcTypeLangSet && type == FcTypeString) ||
- (value == FcTypeString && type == FcTypeLangSet))
+ (value == FcTypeString && type == FcTypeLangSet) ||
+ (value == FcTypeInteger && type == FcTypeRange) ||
+ (value == FcTypeDouble && type == FcTypeRange))
return;
- if (type == (FcType) -1)
+ if (type == FcTypeUnknown)
return;
/* It's perfectly fine to use user-define elements in expressions,
* so don't warn in that case. */
- if (value == (FcType) -1)
+ if (value == FcTypeUnknown)
return;
FcConfigMessage (parse, FcSevereWarning, "saw %s, expected %s",
FcTypeName (value), FcTypeName (type));
case FcOpLangSet:
FcTypecheckValue (parse, FcTypeLangSet, type);
break;
+ case FcOpRange:
+ FcTypecheckValue (parse, FcTypeRange, type);
+ break;
case FcOpNil:
break;
case FcOpField:
FcMatchKind kind,
FcQual qual,
const FcChar8 *field,
- FcOp compare,
+ unsigned int compare,
FcExpr *expr)
{
FcTest *test = (FcTest *) malloc (sizeof (FcTest));
{
const FcObjectType *o;
- test->next = 0;
test->kind = kind;
test->qual = qual;
test->object = FcObjectFromName ((const char *) field);
{
const FcObjectType *o;
- e->next = 0;
e->object = object;
e->op = op;
e->expr = expr;
return e;
}
+static FcRule *
+FcRuleCreate (FcRuleType type,
+ void *p)
+{
+ FcRule *r = (FcRule *) malloc (sizeof (FcRule));
+
+ if (!r)
+ return NULL;
+
+ r->next = NULL;
+ r->type = type;
+ switch (type)
+ {
+ case FcRuleTest:
+ r->u.test = (FcTest *) p;
+ break;
+ case FcRuleEdit:
+ r->u.edit = (FcEdit *) p;
+ break;
+ default:
+ free (r);
+ r = NULL;
+ break;
+ }
+
+ return r;
+}
+
static FcVStack *
FcVStackCreateAndPush (FcConfigParse *parse)
{
static FcBool
FcVStackPushRange (FcConfigParse *parse, FcRange *range)
{
- FcVStack *vstack = FcVStackCreateAndPush (parse);
+ FcVStack *vstack = FcVStackCreateAndPush (parse);
if (!vstack)
return FcFalse;
- vstack->u.range.begin = range->begin;
- vstack->u.range.end = range->end;
+ vstack->u.range = range;
vstack->tag = FcVStackRange;
return FcTrue;
}
case FcVStackMatrix:
FcExprMatrixFreeShallow (vstack->u.matrix);
break;
- case FcVStackRange:
case FcVStackBool:
break;
+ case FcVStackRange:
+ FcRangeDestroy (vstack->u.range);
+ break;
case FcVStackCharSet:
FcCharSetDestroy (vstack->u.charset);
break;
FcParseBlank (FcConfigParse *parse)
{
int n = FcVStackElements (parse);
- FcChar32 i;
+ FcChar32 i, begin, end;
+ FcRange r;
+
while (n-- > 0)
{
FcVStack *v = FcVStackFetch (parse, n);
goto bail;
break;
case FcVStackRange:
- if (v->u.range.begin <= v->u.range.end)
+ r = FcRangeCanonicalize (v->u.range);
+ begin = (FcChar32)r.u.d.begin;
+ end = (FcChar32)r.u.d.end;
+ if (begin <= end)
{
- for (i = v->u.range.begin; i <= v->u.range.end; i++)
+ for (i = begin; i <= end; i++)
{
if (!FcBlanksAdd (parse->config->blanks, i))
goto bail;
FcParseRange (FcConfigParse *parse)
{
FcVStack *vstack;
- FcRange r = {0, 0};
- FcChar32 n;
+ FcRange *r;
+ FcChar32 n[2] = {0, 0};
int count = 1;
+ double d[2] = {0.0L, 0.0L};
+ FcBool dflag = FcFalse;
while ((vstack = FcVStackPeek (parse)))
{
}
switch ((int) vstack->tag) {
case FcVStackInteger:
- n = vstack->u.integer;
+ if (dflag)
+ d[count] = (double)vstack->u.integer;
+ else
+ n[count] = vstack->u.integer;
+ break;
+ case FcVStackDouble:
+ if (count == 0 && !dflag)
+ d[1] = (double)n[1];
+ d[count] = vstack->u._double;
+ dflag = FcTrue;
break;
default:
FcConfigMessage (parse, FcSevereError, "invalid element in range");
- n = 0;
+ if (dflag)
+ d[count] = 0.0L;
+ else
+ n[count] = 0;
break;
}
- if (count == 1)
- r.end = n;
- else
- r.begin = n;
count--;
FcVStackPopAndDestroy (parse);
}
- if (count < 0)
+ if (count >= 0)
{
- if (r.begin > r.end)
+ FcConfigMessage (parse, FcSevereError, "invalid range");
+ return;
+ }
+ if (dflag)
+ {
+ if (d[0] > d[1])
{
FcConfigMessage (parse, FcSevereError, "invalid range");
return;
}
- FcVStackPushRange (parse, &r);
+ r = FcRangeCreateDouble (d[0], d[1]);
}
else
- FcConfigMessage (parse, FcSevereError, "invalid range");
+ {
+ if (n[0] > n[1])
+ {
+ FcConfigMessage (parse, FcSevereError, "invalid range");
+ return;
+ }
+ r = FcRangeCreateInteger (n[0], n[1]);
+ }
+ FcVStackPushRange (parse, r);
}
static FcBool
{
FcVStack *vstack;
FcCharSet *charset = FcCharSetCreate ();
- FcChar32 i;
+ FcChar32 i, begin, end;
+ FcRange r;
int n = 0;
while ((vstack = FcVStackPeek (parse)))
n++;
break;
case FcVStackRange:
- if (vstack->u.range.begin <= vstack->u.range.end)
+ r = FcRangeCanonicalize (vstack->u.range);
+ begin = (FcChar32)r.u.d.begin;
+ end = (FcChar32)r.u.d.end;
+
+ if (begin <= end)
{
- for (i = vstack->u.range.begin; i <= vstack->u.range.end; i++)
+ for (i = begin; i <= end; i++)
{
if (!FcCharSetAddChar (charset, i))
{
FcParseAlias (FcConfigParse *parse)
{
FcExpr *family = 0, *accept = 0, *prefer = 0, *def = 0, *new = 0;
- FcEdit *edit = 0, *next;
+ FcEdit *edit = 0;
FcVStack *vstack;
- FcTest *test = NULL;
+ FcRule *rule = NULL, *r;
FcValueBinding binding;
if (!FcConfigLexBinding (parse, FcConfigGetAttribute (parse, "binding"), &binding))
vstack->tag = FcVStackNone;
break;
case FcVStackTest:
- vstack->u.test->next = test;
- test = vstack->u.test;
+ if (rule)
+ {
+ r = FcRuleCreate (FcRuleTest, vstack->u.test);
+ r->next = rule;
+ rule = r;
+ }
+ else
+ rule = FcRuleCreate (FcRuleTest, vstack->u.test);
vstack->tag = FcVStackNone;
break;
default:
FcExprDestroy (accept);
if (def)
FcExprDestroy (def);
+ if (rule)
+ FcRuleDestroy (rule);
+ return;
+ }
+ if (!prefer &&
+ !accept &&
+ !def)
+ {
+ FcExprDestroy (family);
return;
}
+ else
+ {
+ FcTest *t = FcTestCreate (parse, FcMatchPattern,
+ FcQualAny,
+ (FcChar8 *) FC_FAMILY,
+ FC_OP (FcOpEqual, FcOpFlagIgnoreBlanks),
+ family);
+ if (rule)
+ {
+ for (r = rule; r->next; r = r->next);
+ r->next = FcRuleCreate (FcRuleTest, t);
+ r = r->next;
+ }
+ else
+ {
+ r = rule = FcRuleCreate (FcRuleTest, t);
+ }
+ }
if (prefer)
{
edit = FcEditCreate (parse,
FcOpPrepend,
prefer,
binding);
- if (edit)
- edit->next = 0;
- else
+ if (!edit)
FcExprDestroy (prefer);
+ else
+ {
+ r->next = FcRuleCreate (FcRuleEdit, edit);
+ r = r->next;
+ }
}
if (accept)
{
- next = edit;
edit = FcEditCreate (parse,
FC_FAMILY_OBJECT,
FcOpAppend,
accept,
binding);
- if (edit)
- edit->next = next;
- else
+ if (!edit)
FcExprDestroy (accept);
+ else
+ {
+ r->next = FcRuleCreate (FcRuleEdit, edit);
+ r = r->next;
+ }
}
if (def)
{
- next = edit;
edit = FcEditCreate (parse,
FC_FAMILY_OBJECT,
FcOpAppendLast,
def,
binding);
- if (edit)
- edit->next = next;
- else
+ if (!edit)
FcExprDestroy (def);
- }
- if (edit)
- {
- FcTest *t = FcTestCreate (parse, FcMatchPattern,
- FcQualAny,
- (FcChar8 *) FC_FAMILY,
- FC_OP (FcOpEqual, FcOpFlagIgnoreBlanks),
- family);
- if (test)
+ else
{
- FcTest *p = test;
-
- while (p->next)
- p = p->next;
- p->next = t;
+ r->next = FcRuleCreate (FcRuleEdit, edit);
+ r = r->next;
}
- else
- test = t;
- if (test)
- if (!FcConfigAddEdit (parse->config, test, edit, FcMatchPattern))
- FcTestDestroy (test);
}
- else
- FcExprDestroy (family);
+ if (!FcConfigAddRule (parse->config, rule, FcMatchPattern))
+ FcRuleDestroy (rule);
}
static FcExpr *
expr = FcExprCreateMatrix (parse->config, vstack->u.matrix);
break;
case FcVStackRange:
+ expr = FcExprCreateRange (parse->config, vstack->u.range);
break;
case FcVStackBool:
expr = FcExprCreateBool (parse->config, vstack->u.bool_);
attr = FcConfigGetAttribute (parse, "prefix");
if (attr && FcStrCmp (attr, (const FcChar8 *)"xdg") == 0)
+ {
prefix = FcConfigXdgDataHome ();
+ /* home directory might be disabled.
+ * simply ignore this element.
+ */
+ if (!prefix)
+ goto bail;
+ }
data = FcStrBufDoneStatic (&parse->pstack->str);
if (!data)
{
FcParseCacheDir (FcConfigParse *parse)
{
const FcChar8 *attr;
- FcChar8 *prefix = NULL, *p, *data;
+ FcChar8 *prefix = NULL, *p, *data = NULL;
attr = FcConfigGetAttribute (parse, "prefix");
if (attr && FcStrCmp (attr, (const FcChar8 *)"xdg") == 0)
+ {
prefix = FcConfigXdgCacheHome ();
+ /* home directory might be disabled.
+ * simply ignore this element.
+ */
+ if (!prefix)
+ goto bail;
+ }
data = FcStrBufDone (&parse->pstack->str);
if (!data)
{
FcChar8 *s;
const FcChar8 *attr;
FcBool ignore_missing = FcFalse;
+#ifndef _WIN32
FcBool deprecated = FcFalse;
+#endif
FcChar8 *prefix = NULL, *p;
+ static FcChar8 *userdir = NULL;
+ static FcChar8 *userconf = NULL;
s = FcStrBufDoneStatic (&parse->pstack->str);
if (!s)
attr = FcConfigGetAttribute (parse, "ignore_missing");
if (attr && FcConfigLexBool (parse, (FcChar8 *) attr) == FcTrue)
ignore_missing = FcTrue;
+#ifndef _WIN32
attr = FcConfigGetAttribute (parse, "deprecated");
if (attr && FcConfigLexBool (parse, (FcChar8 *) attr) == FcTrue)
deprecated = FcTrue;
+#endif
attr = FcConfigGetAttribute (parse, "prefix");
if (attr && FcStrCmp (attr, (const FcChar8 *)"xdg") == 0)
+ {
prefix = FcConfigXdgConfigHome ();
+ /* home directory might be disabled.
+ * simply ignore this element.
+ */
+ if (!prefix)
+ goto bail;
+ }
if (prefix)
{
size_t plen = strlen ((const char *)prefix);
memcpy (&prefix[plen + 1], s, dlen);
prefix[plen + 1 + dlen] = 0;
s = prefix;
+ if (FcFileIsDir (s))
+ {
+ userdir:
+ if (!userdir)
+ userdir = FcStrdup (s);
+ }
+ else if (FcFileIsFile (s))
+ {
+ userconf:
+ if (!userconf)
+ userconf = FcStrdup (s);
+ }
+ else
+ {
+ /* No config dir nor file on the XDG directory spec compliant place
+ * so need to guess what it is supposed to be.
+ */
+ if (FcStrStr (s, (const FcChar8 *)"conf.d") != NULL)
+ goto userdir;
+ else
+ goto userconf;
+ }
}
if (!FcConfigParseAndLoad (parse->config, s, !ignore_missing))
parse->error = FcTrue;
+#ifndef _WIN32
else
{
FcChar8 *filename;
+ static FcBool warn_conf = FcFalse, warn_confd = FcFalse;
filename = FcConfigFilename(s);
if (deprecated == FcTrue &&
filename != NULL &&
!FcFileIsLink (filename))
{
- FcConfigMessage (parse, FcSevereWarning, "reading configurations from %s is deprecated.", s);
+ if (FcFileIsDir (filename))
+ {
+ FcChar8 *parent = FcStrDirname (userdir);
+
+ if (!FcFileIsDir (parent))
+ FcMakeDirectory (parent);
+ FcStrFree (parent);
+ if (FcFileIsDir (userdir) ||
+ rename ((const char *)filename, (const char *)userdir) != 0 ||
+ symlink ((const char *)userdir, (const char *)filename) != 0)
+ {
+ if (!warn_confd)
+ {
+ FcConfigMessage (parse, FcSevereWarning, "reading configurations from %s is deprecated. please move it to %s manually", s, userdir);
+ warn_confd = FcTrue;
+ }
+ }
+ }
+ else
+ {
+ FcChar8 *parent = FcStrDirname (userconf);
+
+ if (!FcFileIsDir (parent))
+ FcMakeDirectory (parent);
+ FcStrFree (parent);
+ if (FcFileIsFile (userconf) ||
+ rename ((const char *)filename, (const char *)userconf) != 0 ||
+ symlink ((const char *)userconf, (const char *)filename) != 0)
+ {
+ if (!warn_conf)
+ {
+ FcConfigMessage (parse, FcSevereWarning, "reading configurations from %s is deprecated. please move it to %s manually", s, userconf);
+ warn_conf = FcTrue;
+ }
+ }
+ }
}
if(filename)
FcStrFree(filename);
}
+#endif
FcStrBufDestroy (&parse->pstack->str);
bail:
{ "prepend_first", FcOpPrependFirst },
{ "append", FcOpAppend },
{ "append_last", FcOpAppendLast },
+ { "delete", FcOpDelete },
+ { "delete_all", FcOpDeleteAll },
};
#define NUM_MODE_OPS (int) (sizeof fcModeOps / sizeof fcModeOps[0])
return;
expr = FcPopBinary (parse, FcOpComma);
+ if ((mode == FcOpDelete || mode == FcOpDeleteAll) &&
+ expr != NULL)
+ {
+ FcConfigMessage (parse, FcSevereWarning, "Expression doesn't take any effects for delete and delete_all");
+ FcExprDestroy (expr);
+ expr = NULL;
+ }
edit = FcEditCreate (parse, FcObjectFromName ((char *) name),
mode, expr, binding);
if (!edit)
{
const FcChar8 *kind_name;
FcMatchKind kind;
- FcTest *test = 0;
- FcEdit *edit = 0;
FcVStack *vstack;
+ FcRule *rule = NULL, *r;
kind_name = FcConfigGetAttribute (parse, "target");
if (!kind_name)
{
switch ((int) vstack->tag) {
case FcVStackTest:
- vstack->u.test->next = test;
- test = vstack->u.test;
+ r = FcRuleCreate (FcRuleTest, vstack->u.test);
+ if (rule)
+ r->next = rule;
+ rule = r;
vstack->tag = FcVStackNone;
break;
case FcVStackEdit:
- vstack->u.edit->next = edit;
- edit = vstack->u.edit;
- vstack->tag = FcVStackNone;
- if (kind == FcMatchScan && edit->object > FC_MAX_BASE_OBJECT)
+ if (kind == FcMatchScan && vstack->u.edit->object > FC_MAX_BASE_OBJECT)
{
FcConfigMessage (parse, FcSevereError,
"<match target=\"scan\"> cannot edit user-defined object \"%s\"",
- FcObjectName(edit->object));
+ FcObjectName(vstack->u.edit->object));
+ if (rule)
+ FcRuleDestroy (rule);
+ return;
}
+ r = FcRuleCreate (FcRuleEdit, vstack->u.edit);
+ if (rule)
+ r->next = rule;
+ rule = r;
+ vstack->tag = FcVStackNone;
break;
default:
FcConfigMessage (parse, FcSevereWarning, "invalid match element");
}
FcVStackPopAndDestroy (parse);
}
- if (!FcConfigAddEdit (parse->config, test, edit, kind))
+ if (!rule)
+ {
+ FcConfigMessage (parse, FcSevereWarning, "No <test> nor <edit> elements in <match>");
+ return;
+ }
+ if (!FcConfigAddRule (parse->config, rule, kind))
FcConfigMessage (parse, FcSevereError, "out of memory");
}
if (value.u.l)
value.type = FcTypeLangSet;
break;
+ case FcVStackRange:
+ value.u.r = FcRangeCopy (vstack->u.range);
+ if (value.u.r)
+ value.type = FcTypeRange;
+ break;
default:
FcConfigMessage (parse, FcSevereWarning, "unknown pattern element %d",
vstack->tag);
{
XML_Parser p;
- FcChar8 *filename;
+ FcChar8 *filename, *f;
int fd;
int len;
FcConfigParse parse;
FcBool error = FcTrue;
+ const FcChar8 *sysroot = FcConfigGetSysRoot (config);
#ifdef ENABLE_LIBXML2
xmlSAXHandler sax;
}
#endif
- filename = FcConfigFilename (name);
- if (!filename)
+ f = FcConfigFilename (name);
+ if (!f)
goto bail0;
+ if (sysroot)
+ filename = FcStrBuildFilename (sysroot, f, NULL);
+ else
+ filename = FcStrdup (f);
+ FcStrFree (f);
if (FcStrSetMember (config->configFiles, filename))
{
--- /dev/null
+#! /bin/sh
+# test-driver - basic testsuite driver script.
+
+scriptversion=2013-07-13.22; # UTC
+
+# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+#
+# 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, 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, see <http://www.gnu.org/licenses/>.
+
+# 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.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+# Make unconditional expansion of undefined variables an error. This
+# helps a lot in preventing typo-related bugs.
+set -u
+
+usage_error ()
+{
+ echo "$0: $*" >&2
+ print_usage >&2
+ exit 2
+}
+
+print_usage ()
+{
+ cat <<END
+Usage:
+ test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
+ [--expect-failure={yes|no}] [--color-tests={yes|no}]
+ [--enable-hard-errors={yes|no}] [--]
+ TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
+The '--test-name', '--log-file' and '--trs-file' options are mandatory.
+END
+}
+
+test_name= # Used for reporting.
+log_file= # Where to save the output of the test script.
+trs_file= # Where to save the metadata of the test run.
+expect_failure=no
+color_tests=no
+enable_hard_errors=yes
+while test $# -gt 0; do
+ case $1 in
+ --help) print_usage; exit $?;;
+ --version) echo "test-driver $scriptversion"; exit $?;;
+ --test-name) test_name=$2; shift;;
+ --log-file) log_file=$2; shift;;
+ --trs-file) trs_file=$2; shift;;
+ --color-tests) color_tests=$2; shift;;
+ --expect-failure) expect_failure=$2; shift;;
+ --enable-hard-errors) enable_hard_errors=$2; shift;;
+ --) shift; break;;
+ -*) usage_error "invalid option: '$1'";;
+ *) break;;
+ esac
+ shift
+done
+
+missing_opts=
+test x"$test_name" = x && missing_opts="$missing_opts --test-name"
+test x"$log_file" = x && missing_opts="$missing_opts --log-file"
+test x"$trs_file" = x && missing_opts="$missing_opts --trs-file"
+if test x"$missing_opts" != x; then
+ usage_error "the following mandatory options are missing:$missing_opts"
+fi
+
+if test $# -eq 0; then
+ usage_error "missing argument"
+fi
+
+if test $color_tests = yes; then
+ # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
+ red='\e[0;31m' # Red.
+ grn='\e[0;32m' # Green.
+ lgn='\e[1;32m' # Light green.
+ blu='\e[1;34m' # Blue.
+ mgn='\e[0;35m' # Magenta.
+ std='\e[m' # No color.
+else
+ red= grn= lgn= blu= mgn= std=
+fi
+
+do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
+trap "st=129; $do_exit" 1
+trap "st=130; $do_exit" 2
+trap "st=141; $do_exit" 13
+trap "st=143; $do_exit" 15
+
+# Test script is run here.
+"$@" >$log_file 2>&1
+estatus=$?
+if test $enable_hard_errors = no && test $estatus -eq 99; then
+ estatus=1
+fi
+
+case $estatus:$expect_failure in
+ 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
+ 0:*) col=$grn res=PASS recheck=no gcopy=no;;
+ 77:*) col=$blu res=SKIP recheck=no gcopy=yes;;
+ 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;;
+ *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;;
+ *:*) col=$red res=FAIL recheck=yes gcopy=yes;;
+esac
+
+# Report outcome to console.
+echo "${col}${res}${std}: $test_name"
+
+# Register the test result, and other relevant metadata.
+echo ":test-result: $res" > $trs_file
+echo ":global-test-result: $res" >> $trs_file
+echo ":recheck: $recheck" >> $trs_file
+echo ":copy-in-global-log: $gcopy" >> $trs_file
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
check_SCRIPTS=run-test.sh
-TESTS_ENVIRONMENT=src=${srcdir} EXEEXT=${EXEEXT} sh
+TEST_EXTENSIONS = \
+ .sh \
+ $(NULL)
+
+AM_TESTS_ENVIRONMENT= \
+ src=${srcdir}; export src; \
+ EXEEXT=${EXEEXT}; export EXEEXT; \
+ $(NULL)
+
+SH_LOG_COMPILER = sh
+
TESTS=run-test.sh
TESTDATA=4x6.pcf 8x16.pcf out.expected fonts.conf.in
+AM_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir)
+
+check_PROGRAMS =
if HAVE_PTHREAD
-check_PROGRAMS = test-pthread
-noinst_PROGRAMS = $(check_PROGRAMS)
+check_PROGRAMS += test-pthread
test_pthread_LDADD = $(top_builddir)/src/libfontconfig.la
# We don't enable this test by default because it will require config and fonts
# to meaningfully test anything, and we are not installed yet.
#TESTS += test-pthread
endif
+noinst_PROGRAMS = $(check_PROGRAMS)
+
+if !OS_WIN32
+check_PROGRAMS += test-migration
+test_migration_LDADD = $(top_builddir)/src/libfontconfig.la
+endif
EXTRA_DIST=$(check_SCRIPTS) $(TESTDATA)
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@SET_MAKE@
VPATH = @srcdir@
-am__make_dryrun = \
- { \
- am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
- *) \
- for am__flg in $$MAKEFLAGS; do \
- case $$am__flg in \
- *=*|--*) ;; \
- *n*) am__dry=yes; break;; \
- esac; \
- done;; \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
- test $$am__dry = yes; \
- }
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-@HAVE_PTHREAD_TRUE@check_PROGRAMS = test-pthread$(EXEEXT)
+check_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2)
+@HAVE_PTHREAD_TRUE@am__append_1 = test-pthread
+@OS_WIN32_FALSE@am__append_2 = test-migration
subdir = test
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(top_srcdir)/depcomp
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+ $(top_srcdir)/depcomp $(top_srcdir)/test-driver
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_for_build.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \
+ $(top_srcdir)/m4/ax_cc_for_build.m4 \
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
$(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
+@HAVE_PTHREAD_TRUE@am__EXEEXT_1 = test-pthread$(EXEEXT)
+@OS_WIN32_FALSE@am__EXEEXT_2 = test-migration$(EXEEXT)
PROGRAMS = $(noinst_PROGRAMS)
-test_pthread_SOURCES = test-pthread.c
-test_pthread_OBJECTS = test-pthread.$(OBJEXT)
-@HAVE_PTHREAD_TRUE@test_pthread_DEPENDENCIES = \
-@HAVE_PTHREAD_TRUE@ $(top_builddir)/src/libfontconfig.la
+test_migration_SOURCES = test-migration.c
+test_migration_OBJECTS = test-migration.$(OBJEXT)
+@OS_WIN32_FALSE@test_migration_DEPENDENCIES = \
+@OS_WIN32_FALSE@ $(top_builddir)/src/libfontconfig.la
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 =
+test_pthread_SOURCES = test-pthread.c
+test_pthread_OBJECTS = test-pthread.$(OBJEXT)
+@HAVE_PTHREAD_TRUE@test_pthread_DEPENDENCIES = \
+@HAVE_PTHREAD_TRUE@ $(top_builddir)/src/libfontconfig.la
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
-SOURCES = test-pthread.c
-DIST_SOURCES = test-pthread.c
+SOURCES = test-migration.c test-pthread.c
+DIST_SOURCES = test-migration.c test-pthread.c
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
am__tty_colors_dummy = \
mgn= red= grn= lgn= blu= brg= std=; \
am__color_tests=no
-am__tty_colors = $(am__tty_colors_dummy)
+am__tty_colors = { \
+ $(am__tty_colors_dummy); \
+ if test "X$(AM_COLOR_TESTS)" = Xno; then \
+ am__color_tests=no; \
+ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+ am__color_tests=yes; \
+ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+ am__color_tests=yes; \
+ fi; \
+ if test $$am__color_tests = yes; then \
+ red='\e[0;31m'; \
+ grn='\e[0;32m'; \
+ lgn='\e[1;32m'; \
+ blu='\e[1;34m'; \
+ mgn='\e[0;35m'; \
+ brg='\e[1m'; \
+ std='\e[m'; \
+ fi; \
+}
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__recheck_rx = ^[ ]*:recheck:[ ]*
+am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
+am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+ recheck = 1; \
+ while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+ { \
+ if (rc < 0) \
+ { \
+ if ((getline line2 < ($$0 ".log")) < 0) \
+ recheck = 0; \
+ break; \
+ } \
+ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+ { \
+ recheck = 0; \
+ break; \
+ } \
+ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+ { \
+ break; \
+ } \
+ }; \
+ if (recheck) \
+ print $$0; \
+ close ($$0 ".trs"); \
+ close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+ print "fatal: making $@: " msg | "cat >&2"; \
+ exit 1; \
+} \
+function rst_section(header) \
+{ \
+ print header; \
+ len = length(header); \
+ for (i = 1; i <= len; i = i + 1) \
+ printf "="; \
+ printf "\n\n"; \
+} \
+{ \
+ copy_in_global_log = 1; \
+ global_test_result = "RUN"; \
+ while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+ { \
+ if (rc < 0) \
+ fatal("failed to read from " $$0 ".trs"); \
+ if (line ~ /$(am__global_test_result_rx)/) \
+ { \
+ sub("$(am__global_test_result_rx)", "", line); \
+ sub("[ ]*$$", "", line); \
+ global_test_result = line; \
+ } \
+ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+ copy_in_global_log = 0; \
+ }; \
+ if (copy_in_global_log) \
+ { \
+ rst_section(global_test_result ": " $$0); \
+ while ((rc = (getline line < ($$0 ".log"))) != 0) \
+ { \
+ if (rc < 0) \
+ fatal("failed to read from " $$0 ".log"); \
+ print line; \
+ }; \
+ printf "\n"; \
+ }; \
+ close ($$0 ".trs"); \
+ close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+ --color-tests "$$am__color_tests" \
+ --enable-hard-errors "$$am__enable_hard_errors" \
+ --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test. Creates the
+# directory for the log if needed. Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log. Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup); \
+$(am__vpath_adj_setup) $(am__vpath_adj) \
+$(am__tty_colors); \
+srcdir=$(srcdir); export srcdir; \
+case "$@" in \
+ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
+ *) am__odir=.;; \
+esac; \
+test "x$$am__odir" = x"." || test -d "$$am__odir" \
+ || $(MKDIR_P) "$$am__odir" || exit $$?; \
+if test -f "./$$f"; then dir=./; \
+elif test -f "$$f"; then dir=; \
+else dir="$(srcdir)/"; fi; \
+tst=$$dir$$f; log='$@'; \
+if test -n '$(DISABLE_HARD_ERRORS)'; then \
+ am__enable_hard_errors=no; \
+else \
+ am__enable_hard_errors=yes; \
+fi; \
+case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
+ am__expect_failure=yes;; \
+ *) \
+ am__expect_failure=no;; \
+esac; \
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed). The result is saved in the shell variable
+# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+ bases='$(TEST_LOGS)'; \
+ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+ bases=`echo $$bases`
+RECHECK_LOGS = $(TEST_LOGS)
+AM_RECURSIVE_TARGETS = check recheck
+TEST_SUITE_LOG = test-suite.log
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+TEST_LOGS = $(am__test_logs2:.sh.log=.log)
+SH_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
+SH_LOG_COMPILE = $(SH_LOG_COMPILER) $(AM_SH_LOG_FLAGS) $(SH_LOG_FLAGS)
+am__set_b = \
+ case '$@' in \
+ */*) \
+ case '$*' in \
+ */*) b='$*';; \
+ *) b=`echo '$@' | sed 's/\.log$$//'`; \
+ esac;; \
+ *) \
+ b='$*';; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
FGREP = @FGREP@
FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
FREETYPE_LIBS = @FREETYPE_LIBS@
+GIT = @GIT@
+GPERF = @GPERF@
GREP = @GREP@
HASDOCBOOK = @HASDOCBOOK@
HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
+PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PTHREAD_CC = @PTHREAD_CC@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
PTHREAD_LIBS = @PTHREAD_LIBS@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RM = @RM@
SED = @SED@
am__tar = @am__tar@
am__untar = @am__untar@
ax_pthread_config = @ax_pthread_config@
-baseconfigdir = @baseconfigdir@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
-configdir = @configdir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
ms_librarian = @ms_librarian@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
+pkgconfigdir = @pkgconfigdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-templatedir = @templatedir@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-xmldir = @xmldir@
check_SCRIPTS = run-test.sh
-TESTS_ENVIRONMENT = src=${srcdir} EXEEXT=${EXEEXT} sh
+TEST_EXTENSIONS = \
+ .sh \
+ $(NULL)
+
+AM_TESTS_ENVIRONMENT = \
+ src=${srcdir}; export src; \
+ EXEEXT=${EXEEXT}; export EXEEXT; \
+ $(NULL)
+
+SH_LOG_COMPILER = sh
TESTS = run-test.sh
TESTDATA = 4x6.pcf 8x16.pcf out.expected fonts.conf.in
-@HAVE_PTHREAD_TRUE@noinst_PROGRAMS = $(check_PROGRAMS)
+AM_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir)
@HAVE_PTHREAD_TRUE@test_pthread_LDADD = $(top_builddir)/src/libfontconfig.la
# We don't enable this test by default because it will require config and fonts
# to meaningfully test anything, and we are not installed yet.
#TESTS += test-pthread
+noinst_PROGRAMS = $(check_PROGRAMS)
+@OS_WIN32_FALSE@test_migration_LDADD = $(top_builddir)/src/libfontconfig.la
EXTRA_DIST = $(check_SCRIPTS) $(TESTDATA)
CLEANFILES =
all: all-am
.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
+.SUFFIXES: .c .lo .log .o .obj .sh .sh$(EXEEXT) .trs
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
+
+test-migration$(EXEEXT): $(test_migration_OBJECTS) $(test_migration_DEPENDENCIES) $(EXTRA_test_migration_DEPENDENCIES)
+ @rm -f test-migration$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_migration_OBJECTS) $(test_migration_LDADD) $(LIBS)
+
test-pthread$(EXEEXT): $(test_pthread_OBJECTS) $(test_pthread_DEPENDENCIES) $(EXTRA_test_pthread_DEPENDENCIES)
@rm -f test-pthread$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_pthread_OBJECTS) $(test_pthread_LDADD) $(LIBS)
distclean-compile:
-rm -f *.tab.c
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-migration.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-pthread.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
clean-libtool:
-rm -rf .libs _libs
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ $(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$$unique; \
fi; \
fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
-cscopelist: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-check-TESTS: $(TESTS)
- @failed=0; all=0; xfail=0; xpass=0; skip=0; \
- srcdir=$(srcdir); export srcdir; \
- list=' $(TESTS) '; \
- $(am__tty_colors); \
- if test -n "$$list"; then \
- for tst in $$list; do \
- if test -f ./$$tst; then dir=./; \
- elif test -f $$tst; then dir=; \
- else dir="$(srcdir)/"; fi; \
- if $(TESTS_ENVIRONMENT) $${dir}$$tst $(AM_TESTS_FD_REDIRECT); then \
- all=`expr $$all + 1`; \
- case " $(XFAIL_TESTS) " in \
- *[\ \ ]$$tst[\ \ ]*) \
- xpass=`expr $$xpass + 1`; \
- failed=`expr $$failed + 1`; \
- col=$$red; res=XPASS; \
- ;; \
- *) \
- col=$$grn; res=PASS; \
- ;; \
- esac; \
- elif test $$? -ne 77; then \
- all=`expr $$all + 1`; \
- case " $(XFAIL_TESTS) " in \
- *[\ \ ]$$tst[\ \ ]*) \
- xfail=`expr $$xfail + 1`; \
- col=$$lgn; res=XFAIL; \
- ;; \
- *) \
- failed=`expr $$failed + 1`; \
- col=$$red; res=FAIL; \
- ;; \
- esac; \
- else \
- skip=`expr $$skip + 1`; \
- col=$$blu; res=SKIP; \
- fi; \
- echo "$${col}$$res$${std}: $$tst"; \
- done; \
- if test "$$all" -eq 1; then \
- tests="test"; \
- All=""; \
- else \
- tests="tests"; \
- All="All "; \
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+ rm -f $< $@
+ $(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+ @:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+ @$(am__set_TESTS_bases); \
+ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+ redo_bases=`for i in $$bases; do \
+ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+ done`; \
+ if test -n "$$redo_bases"; then \
+ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+ if $(am__make_dryrun); then :; else \
+ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
fi; \
- if test "$$failed" -eq 0; then \
- if test "$$xfail" -eq 0; then \
- banner="$$All$$all $$tests passed"; \
- else \
- if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
- banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
- fi; \
- else \
- if test "$$xpass" -eq 0; then \
- banner="$$failed of $$all $$tests failed"; \
+ fi; \
+ if test -n "$$am__remaking_logs"; then \
+ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+ "recursion detected" >&2; \
+ else \
+ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+ fi; \
+ if $(am__make_dryrun); then :; else \
+ st=0; \
+ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+ for i in $$redo_bases; do \
+ test -f $$i.trs && test -r $$i.trs \
+ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+ test -f $$i.log && test -r $$i.log \
+ || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+ done; \
+ test $$st -eq 0 || exit 1; \
+ fi
+ @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+ ws='[ ]'; \
+ results=`for b in $$bases; do echo $$b.trs; done`; \
+ test -n "$$results" || results=/dev/null; \
+ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
+ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
+ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
+ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
+ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+ if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+ success=true; \
+ else \
+ success=false; \
+ fi; \
+ br='==================='; br=$$br$$br$$br$$br; \
+ result_count () \
+ { \
+ if test x"$$1" = x"--maybe-color"; then \
+ maybe_colorize=yes; \
+ elif test x"$$1" = x"--no-color"; then \
+ maybe_colorize=no; \
else \
- if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
- banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+ echo "$@: invalid 'result_count' usage" >&2; exit 4; \
fi; \
- fi; \
- dashes="$$banner"; \
- skipped=""; \
- if test "$$skip" -ne 0; then \
- if test "$$skip" -eq 1; then \
- skipped="($$skip test was not run)"; \
+ shift; \
+ desc=$$1 count=$$2; \
+ if test $$maybe_colorize = yes && test $$count -gt 0; then \
+ color_start=$$3 color_end=$$std; \
else \
- skipped="($$skip tests were not run)"; \
+ color_start= color_end=; \
fi; \
- test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
- dashes="$$skipped"; \
- fi; \
- report=""; \
- if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
- report="Please report to $(PACKAGE_BUGREPORT)"; \
- test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
- dashes="$$report"; \
- fi; \
- dashes=`echo "$$dashes" | sed s/./=/g`; \
- if test "$$failed" -eq 0; then \
- col="$$grn"; \
- else \
- col="$$red"; \
- fi; \
- echo "$${col}$$dashes$${std}"; \
- echo "$${col}$$banner$${std}"; \
- test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \
- test -z "$$report" || echo "$${col}$$report$${std}"; \
- echo "$${col}$$dashes$${std}"; \
- test "$$failed" -eq 0; \
- else :; fi
+ echo "$${color_start}# $$desc $$count$${color_end}"; \
+ }; \
+ create_testsuite_report () \
+ { \
+ result_count $$1 "TOTAL:" $$all "$$brg"; \
+ result_count $$1 "PASS: " $$pass "$$grn"; \
+ result_count $$1 "SKIP: " $$skip "$$blu"; \
+ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+ result_count $$1 "FAIL: " $$fail "$$red"; \
+ result_count $$1 "XPASS:" $$xpass "$$red"; \
+ result_count $$1 "ERROR:" $$error "$$mgn"; \
+ }; \
+ { \
+ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
+ $(am__rst_title); \
+ create_testsuite_report --no-color; \
+ echo; \
+ echo ".. contents:: :depth: 2"; \
+ echo; \
+ for b in $$bases; do echo $$b; done \
+ | $(am__create_global_log); \
+ } >$(TEST_SUITE_LOG).tmp || exit 1; \
+ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
+ if $$success; then \
+ col="$$grn"; \
+ else \
+ col="$$red"; \
+ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
+ fi; \
+ echo "$${col}$$br$${std}"; \
+ echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \
+ echo "$${col}$$br$${std}"; \
+ create_testsuite_report --maybe-color; \
+ echo "$$col$$br$$std"; \
+ if $$success; then :; else \
+ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
+ if test -n "$(PACKAGE_BUGREPORT)"; then \
+ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
+ fi; \
+ echo "$$col$$br$$std"; \
+ fi; \
+ $$success || exit 1
+
+check-TESTS:
+ @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
+ @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ @set +e; $(am__set_TESTS_bases); \
+ log_list=`for i in $$bases; do echo $$i.log; done`; \
+ trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+ exit $$?;
+recheck: all $(check_PROGRAMS) $(check_SCRIPTS)
+ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ @set +e; $(am__set_TESTS_bases); \
+ bases=`for i in $$bases; do echo $$i; done \
+ | $(am__list_recheck_tests)` || exit 1; \
+ log_list=`for i in $$bases; do echo $$i.log; done`; \
+ log_list=`echo $$log_list`; \
+ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+ am__force_recheck=am--force-recheck \
+ TEST_LOGS="$$log_list"; \
+ exit $$?
+.sh.log:
+ @p='$<'; \
+ $(am__set_b); \
+ $(am__check_pre) $(SH_LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_SH_LOG_DRIVER_FLAGS) $(SH_LOG_DRIVER_FLAGS) -- $(SH_LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.sh$(EXEEXT).log:
+@am__EXEEXT_TRUE@ @p='$<'; \
+@am__EXEEXT_TRUE@ $(am__set_b); \
+@am__EXEEXT_TRUE@ $(am__check_pre) $(SH_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_SH_LOG_DRIVER_FLAGS) $(SH_LOG_DRIVER_FLAGS) -- $(SH_LOG_COMPILE) \
+@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
+ -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+ -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+ -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
.MAKE: check-am install-am install-strip
-.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \
clean-checkPROGRAMS clean-generic clean-libtool \
- clean-noinstPROGRAMS cscopelist ctags distclean \
+ clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \
distclean-compile distclean-generic distclean-libtool \
distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-dvi \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags uninstall uninstall-am
+ pdf pdf-am ps ps-am recheck tags tags-am uninstall \
+ uninstall-am
-include $(top_srcdir)/git.mk
#!/bin/sh
+# fontconfig/test/run-test.sh
+#
+# Copyright © 2000 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 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.
TESTDIR=${srcdir-`pwd`}
FONTDIR=`pwd`/fonts
--- /dev/null
+/*
+ * fontconfig/test/test-migration.c
+ *
+ * Copyright © 2000 Keith Packard
+ * Copyright © 2013 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 <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <dirent.h>
+#ifndef HAVE_STRUCT_DIRENT_D_TYPE
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#endif
+#include <fontconfig/fontconfig.h>
+
+#ifdef HAVE_MKDTEMP
+#define fc_mkdtemp mkdtemp
+#else
+char *
+fc_mkdtemp (char *template)
+{
+ if (!mktemp (template) || mkdir (template, 0700))
+ return NULL;
+
+ return template;
+}
+#endif
+
+FcBool
+mkdir_p(const char *dir)
+{
+ char *parent;
+ FcBool ret;
+
+ if (strlen (dir) == 0)
+ return FcFalse;
+ parent = (char *) FcStrDirname ((const FcChar8 *)dir);
+ if (!parent)
+ return FcFalse;
+ if (access (parent, F_OK) == 0)
+ ret = mkdir (dir, 0755) == 0 && chmod (dir, 0755) == 0;
+ else if (access (parent, F_OK) == -1)
+ ret = mkdir_p (parent) && (mkdir (dir, 0755) == 0) && chmod (dir, 0755) == 0;
+ else
+ ret = FcFalse;
+ free (parent);
+
+ return ret;
+}
+
+FcBool
+unlink_dirs(const char *dir)
+{
+ DIR *d = opendir (dir);
+ struct dirent *e;
+ size_t len = strlen (dir);
+ char *n = NULL;
+ FcBool ret = FcTrue;
+#ifndef HAVE_STRUCT_DIRENT_D_TYPE
+ struct stat statb;
+#endif
+
+ if (!d)
+ return FcFalse;
+ while ((e = readdir(d)) != NULL)
+ {
+ size_t l;
+
+ if (strcmp (e->d_name, ".") == 0 ||
+ strcmp (e->d_name, "..") == 0)
+ continue;
+ l = strlen (e->d_name) + 1;
+ if (n)
+ free (n);
+ n = malloc (l + len + 1);
+ strcpy (n, dir);
+ n[len] = '/';
+ strcpy (&n[len + 1], e->d_name);
+#ifdef HAVE_STRUCT_DIRENT_D_TYPE
+ if (e->d_type == DT_DIR)
+#else
+ if (stat (n, &statb) == -1)
+ {
+ fprintf (stderr, "E: %s\n", n);
+ ret = FcFalse;
+ break;
+ }
+ if (S_ISDIR (statb.st_mode))
+#endif
+ {
+ if (!unlink_dirs (n))
+ {
+ fprintf (stderr, "E: %s\n", n);
+ ret = FcFalse;
+ break;
+ }
+ }
+ else
+ {
+ if (unlink (n) == -1)
+ {
+ fprintf (stderr, "E: %s\n", n);
+ ret = FcFalse;
+ break;
+ }
+ }
+ }
+ if (n)
+ free (n);
+ closedir (d);
+
+ if (rmdir (dir) == -1)
+ {
+ fprintf (stderr, "E: %s\n", dir);
+ return FcFalse;
+ }
+
+ return ret;
+}
+
+int
+main(void)
+{
+ char template[32] = "fontconfig-XXXXXXXX";
+ char *tmp = fc_mkdtemp (template);
+ size_t len = strlen (tmp), xlen, dlen;
+ char xdg[256], confd[256], fn[256], nfn[256], ud[256], nud[256];
+ int ret = -1;
+ FILE *fp;
+ char *content = "<fontconfig></fontconfig>";
+
+ strcpy (xdg, tmp);
+ strcpy (&xdg[len], "/.config");
+ setenv ("HOME", tmp, 1);
+ setenv ("XDG_CONFIG_HOME", xdg, 1);
+ xlen = strlen (xdg);
+ strcpy (confd, xdg);
+ strcpy (&confd[xlen], "/fontconfig");
+ dlen = strlen (confd);
+ /* In case there are no configuration files nor directory */
+ FcInit ();
+ if (access (confd, F_OK) == 0)
+ {
+ fprintf (stderr, "%s unexpectedly exists\n", confd);
+ goto bail;
+ }
+ FcFini ();
+ if (!unlink_dirs (tmp))
+ {
+ fprintf (stderr, "Unable to clean up\n");
+ goto bail;
+ }
+ /* In case there are the user configuration file */
+ strcpy (fn, tmp);
+ strcpy (&fn[len], "/.fonts.conf");
+ strcpy (nfn, confd);
+ strcpy (&nfn[dlen], "/fonts.conf");
+ if (!mkdir_p (confd))
+ {
+ fprintf (stderr, "Unable to create a config dir: %s\n", confd);
+ goto bail;
+ }
+ if ((fp = fopen (fn, "wb")) == NULL)
+ {
+ fprintf (stderr, "Unable to create a config file: %s\n", fn);
+ goto bail;
+ }
+ fwrite (content, sizeof (char), strlen (content), fp);
+ fclose (fp);
+ FcInit ();
+ if (access (nfn, F_OK) != 0)
+ {
+ fprintf (stderr, "migration failed for %s\n", nfn);
+ goto bail;
+ }
+ FcFini ();
+ if (!unlink_dirs (tmp))
+ {
+ fprintf (stderr, "Unable to clean up\n");
+ goto bail;
+ }
+ /* In case there are the user configuration dir */
+ strcpy (ud, tmp);
+ strcpy (&ud[len], "/.fonts.conf.d");
+ strcpy (nud, confd);
+ strcpy (&nud[dlen], "/conf.d");
+ if (!mkdir_p (ud))
+ {
+ fprintf (stderr, "Unable to create a config dir: %s\n", ud);
+ goto bail;
+ }
+ FcInit ();
+ if (access (nud, F_OK) != 0)
+ {
+ fprintf (stderr, "migration failed for %s\n", nud);
+ goto bail;
+ }
+ FcFini ();
+
+ ret = 0;
+bail:
+ unlink_dirs (tmp);
+
+ return ret;
+}
-/* Code originally from Raimund Steger. */
-
+/*
+ * fontconfig/test/test-pthread.c
+ *
+ * Copyright © 2000 Keith Packard
+ * Copyright © 2013 Raimund Steger
+ *
+ * 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 <stdlib.h>
#include <unistd.h>