From pander at users.sourceforge.net Sat Nov 7 07:00:06 2009 From: pander at users.sourceforge.net (Pander) Date: Sat, 07 Nov 2009 16:00:06 +0100 Subject: [Fontconfig] Newbe that would like to contribute improvements Message-ID: <4AF58B76.4020104@users.sourceforge.net> Hi all, I'm a complete newby at configuring fontconfig and would like some pointers on how to get started. I have a lot of information on fonts that can be made better available in fontconfig and would like to be able to add that in my fontconfig configuration and submit to this project so more open and free fonts are supported better. For example, I have a font that is made available like this: fc-list : family style file|grep -i justus Justus-Roman.ttf: Justus:style=Roman Justus-Bold.ttf: Justus:style=Bold Justus-Italic.ttf: Justus:style=Italic Justus-Versalitas.ttf: Justus:style=Versalitas Justus-Oldstyle.ttf: Justus:style=Oldstyle Justus-ItalicOldstyle.ttf: Justus:style=ItalicOldstyle What minimal configuration to I need to do add in /etc/fonts in order to get this as output, see _text between underscores_ for changes: fc-list : family style file|grep -i justus Justus-Roman.ttf: Justus:style=Roman Justus-Bold.ttf: Justus:style=Bold Justus-Italic.ttf: Justus:style=Italic Justus-Versalitas.ttf: Justus_ Versalitas_:style=_Roman_ Justus-Oldstyle.ttf: Justus_ Oldstyle_:style=_Roman_ Justus-ItalicOldstyle.ttf: Justus_ Oldstyle_:style=_Italic_ If someone would get me up to speed with this I can submit a series of fixes and new additions. Note, I'm not too lazy to read the manual. Because I'm new to this, I'm just looking on how to get started quickly in a way that the developers can work with this as best as possible and have fontconfig support more open and free fonts better. Regards, Pander From nicolas.mailhot at laposte.net Sat Nov 7 08:00:40 2009 From: nicolas.mailhot at laposte.net (Nicolas Mailhot) Date: Sat, 7 Nov 2009 17:00:40 +0100 Subject: [Fontconfig] Newbe that would like to contribute improvements In-Reply-To: <4AF58B76.4020104@users.sourceforge.net> References: <4AF58B76.4020104@users.sourceforge.net> Message-ID: <5b1a1e1547121e33b1e99a93951488d3.squirrel@arekh.dyndns.org> Hi Pander, Your problem is that this specific font does not conform to WWS conventions. Fontconfig is just displaying the info declared by the font files. You can workaround it at fontconfig level, but it is always worthwhile to get it fixed upstream as your workaround will be only available to fontconfig apps (and only the ones using your specific fontconfig version) This is what the Fedora font checker would tell you about this: Font upstream task, with packager workarounds This WWS-like test checks if font styles use the WWS ?Width (Stretch)?, ?Weight?, ?Slope (Slant/Style)? naming convention?. As noted by Adobe? the W3C CSS font family model is less than ideal, but it is a standard and applications expect it. Since *nix applications do not workaround bad font naming with dynamic renaming heuristics (unlike Microsoft WPF), achieving consistent naming requires fixing it directly in the font files. For this reason we test font style naming separately from font family naming, and do not support complex weight abbreviations and suffixes?. To pass this test make sure style names do not include any qualifier not defined in the WWS white-paper?, and that ?Width (Stretch)?, ?Weight?, ?Slope (Slant/Style)? are defined only once. Any other face qualifier belongs in the font family name. If one your font files is listed here please ask its upstream to fix its naming so it respects WWS conventions and does and does not need further reprocessing. Packager workaround: patch the file (if it is available in .sfd format), or add a fontconfig rule to your package to hide the problem?. ? http://blogs.msdn.com/text/attachment/2249036.ashx http://blogs.adobe.com/typblography/typotechnica2007/Font%20names.pdf ? http://blogs.adobe.com/typblography/atypi2006/CSS%20&%20OT%2015.pdf ? As defined in the end of the WWS renaming algorithm described in the Microsoft whitepaper. ? cf the ?fontpackages? remapping template; unfortunately this workaround won't fix problems for non-fontconfig applications, or when interoperating with other systems. See also http://git.fedorahosted.org/git/fontpackages.git?p=fontpackages.git;a=tree;f=fontconfig-templates -- Nicolas Mailhot From tdalton at hp.com Mon Nov 9 09:33:33 2009 From: tdalton at hp.com (Dalton, Tom) Date: Mon, 9 Nov 2009 17:33:33 +0000 Subject: [Fontconfig] Cache and config files Message-ID: <19B0A6276CCB4741891D9DAF0896A52E96EEC1AC4D@GVW1088EXB.americas.hpqcorp.net> Hi, I'm using the fontconfig-2.7.1 for linux. When I run ./configure --help, it says that the default cachedir is /var/cache/fontconfig and that the default confdir is /etc/fonts. However, this has misled me somewhat - I have installed a newer copy of fontconfig than the defautl on my RHEL system, and I installed it to a non-standard location by setting the --prefix=X configure flag. However, this has also changed the cache and config dirs that seem to be hardcoded into the binaries. If I want to install my new version on to a new machine, then when I run many fontconfig operations, it tries to recreate the ${prefix}/var/cache/fontconfig directory. So the default for the cache dir is not strictly /var/cache/fontconfig but actually ${prefix}/var/cache/fontconfig, and similarly for the conf dir. (But only if you change prefix, as the default for prefix is supposedly /usr/local). If I want my new version to use the 'normal' cache and conf dirs then as well as setting my prefix, I also have to set --with-cache-dir=/var/cache/fontconfig and --with-conf-dir=/etc/fonts. Is this correct? If so then I think it's a (minor) bug with the documentation... Regards, Tom Dalton From behdad at kemper.freedesktop.org Mon Nov 9 10:19:05 2009 From: behdad at kemper.freedesktop.org (Behdad Esfahbod) Date: Mon, 9 Nov 2009 10:19:05 -0800 (PST) Subject: [Fontconfig] fontconfig: Branch 'master' - 3 commits Message-ID: <20091109181908.30B3D10051@kemper.freedesktop.org> README | 14 ++++++++++++-- configure.in | 23 ++++------------------- doc/Makefile.am | 2 -- fontconfig/fontconfig.h | 2 +- 4 files changed, 17 insertions(+), 24 deletions(-) New commits: commit 36ae1d9563cff4966b293f816cf9eb25c8ebb857 Author: Behdad Esfahbod Date: Mon Nov 9 13:17:17 2009 -0500 Clarify default confdir and cachedir better. Also remove --with-docdir. It can be set by setting docdir variable. diff --git a/configure.in b/configure.in index 750a19b..2b0c182 100644 --- a/configure.in +++ b/configure.in @@ -448,7 +448,7 @@ AC_SUBST(FC_FONTPATH) # # Set default cache directory path # -AC_ARG_WITH(cache-dir, [ --with-cache-dir=DIR Use DIR to store cache files (default /var/cache/fontconfig)], fc_cachedir="$withval", fc_cachedir=yes) +AC_ARG_WITH(cache-dir, [ --with-cache-dir=DIR Use DIR to store cache files (default LOCALSTATEDIR/cache/fontconfig)], fc_cachedir="$withval", fc_cachedir=yes) case $fc_cachedir in no|yes) @@ -469,7 +469,7 @@ FC_FONTDATE=`LC_ALL=C date` AC_SUBST(FC_FONTDATE) -AC_ARG_WITH(confdir, [ --with-confdir=DIR Use DIR to store configuration files (default /etc/fonts)], confdir="$withval", confdir=yes) +AC_ARG_WITH(confdir, [ --with-confdir=DIR Use DIR to store configuration files (default SYSCONFDIR/fonts)], confdir="$withval", confdir=yes) # # Set CONFDIR and FONTCONFIG_PATH @@ -529,21 +529,6 @@ fi AC_SUBST(DOCSRC) AC_SUBST(DOCMAN3) -# -# Figure out where to install documentation -# - -AC_ARG_WITH(docdir, [ --with-docdir=DIR Use DIR to store documentation files (default ${datadir}/doc/fontconfig)], confdir="$withval") - -if test "x$with_docdir" = "x" ; then - DOCDIR='${datadir}/doc/fontconfig' -else - DOCDIR=$with_docdir -fi - -AC_SUBST(DOCDIR) - - AC_OUTPUT([ Makefile fontconfig/Makefile diff --git a/doc/Makefile.am b/doc/Makefile.am index 9ffd54f..49e00e1 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -89,8 +89,6 @@ man3_MANS=$(DOCMAN3) noinst_PROGRAMS=edit-sgml edit_sgml_SOURCES=edit-sgml.c -docdir=@DOCDIR@ - DOC_FILES=$(TXT) $(PDF) $(HTML_FILES) LOCAL_DOCS=$(man3_MANS) $(man5_MANS) $(DOC_FILES) $(HTML_DIR)/* commit b322eb4d7a90778dc9f08c73036836deba7e463e Author: Behdad Esfahbod Date: Tue Sep 8 11:45:26 2009 -0400 Bump version to 2.7.3 diff --git a/README b/README index f97b39e..4ea9147 100644 --- a/README +++ b/README @@ -1,12 +1,22 @@ Fontconfig Font configuration and customization library - Version 2.7.2 - 2009-08-31 + Version 2.7.3 + 2009-09-08 Check INSTALL for compilation and installation instructions. Report bugs to https://bugs.freedesktop.org in the fontconfig module. +2.7.3 + +Behdad Esfahbod (2): + Use default config in FcFileScan() and FcDirScan() + Bump libtool version in preparation for release + +Roozbeh Pournader (2): + Correct Ewe (ee) orthography to use U+025B (bug #20711) + Updated Arabic, Persian, and Urdu orthographies + 2.7.2 Behdad Esfahbod (6): diff --git a/configure.in b/configure.in index 928f7a7..750a19b 100644 --- a/configure.in +++ b/configure.in @@ -33,7 +33,7 @@ dnl This is the package version number, not the shared library dnl version. This same version number must appear in fontconfig/fontconfig.h dnl Yes, it is a pain to synchronize version numbers. Unfortunately, it's dnl not possible to extract the version number here from fontconfig.h -AM_INIT_AUTOMAKE(fontconfig, 2.7.2) +AM_INIT_AUTOMAKE(fontconfig, 2.7.3) AM_MAINTAINER_MODE dnl libtool versioning diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h index 24a5070..a0f8de5 100644 --- a/fontconfig/fontconfig.h +++ b/fontconfig/fontconfig.h @@ -53,7 +53,7 @@ typedef int FcBool; #define FC_MAJOR 2 #define FC_MINOR 7 -#define FC_REVISION 2 +#define FC_REVISION 3 #define FC_VERSION ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION)) commit afc845d930877ac62f6d5a5f50ea87b5182d0a4a Author: Behdad Esfahbod Date: Tue Sep 8 11:44:59 2009 -0400 Bump libtool version in preparation for release diff --git a/configure.in b/configure.in index a418516..928f7a7 100644 --- a/configure.in +++ b/configure.in @@ -42,7 +42,7 @@ 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=5 -LIBT_REVISION=2 +LIBT_REVISION=3 AC_SUBST(LIBT_CURRENT) AC_SUBST(LIBT_REVISION) LIBT_AGE=4 From behdad at behdad.org Mon Nov 9 10:19:38 2009 From: behdad at behdad.org (Behdad Esfahbod) Date: Mon, 09 Nov 2009 13:19:38 -0500 Subject: [Fontconfig] Cache and config files In-Reply-To: <19B0A6276CCB4741891D9DAF0896A52E96EEC1AC4D@GVW1088EXB.americas.hpqcorp.net> References: <19B0A6276CCB4741891D9DAF0896A52E96EEC1AC4D@GVW1088EXB.americas.hpqcorp.net> Message-ID: <4AF85D3A.2050408@behdad.org> Hi Tom, Thanks for the message. You are indeed right. I pushed a fix out. Please check: http://cgit.freedesktop.org/fontconfig/commit/ Also, I highly recommend upgrading to 2.7.3. behdad On 11/09/2009 12:33 PM, Dalton, Tom wrote: > Hi, > > I'm using the fontconfig-2.7.1 for linux. When I run ./configure --help, it says that the default cachedir is /var/cache/fontconfig and that the default confdir is /etc/fonts. However, this has misled me somewhat - I have installed a newer copy of fontconfig than the defautl on my RHEL system, and I installed it to a non-standard location by setting the --prefix=X configure flag. However, this has also changed the cache and config dirs that seem to be hardcoded into the binaries. If I want to install my new version on to a new machine, then when I run many fontconfig operations, it tries to recreate the ${prefix}/var/cache/fontconfig directory. > > So the default for the cache dir is not strictly /var/cache/fontconfig but actually ${prefix}/var/cache/fontconfig, and similarly for the conf dir. (But only if you change prefix, as the default for prefix is supposedly /usr/local). If I want my new version to use the 'normal' cache and conf dirs then as well as setting my prefix, I also have to set --with-cache-dir=/var/cache/fontconfig and --with-conf-dir=/etc/fonts. > > Is this correct? If so then I think it's a (minor) bug with the documentation... > > Regards, > > Tom Dalton > > _______________________________________________ > Fontconfig mailing list > Fontconfig at lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/fontconfig > From dan at gurovich.com Thu Nov 12 12:29:45 2009 From: dan at gurovich.com (dan at gurovich.com) Date: Thu, 12 Nov 2009 14:29:45 -0600 Subject: [Fontconfig] Macport install MD5 Sum broken? Message-ID: <881FEE5D-01E7-4BED-B104-6F9857D8FC9E@gurovich.com> I've been trying to do an install of fontconfig 2.7.3 using MacPorts. I keep getting the following errors: ---> Verifying checksum(s) for fontconfig Error: Checksum (md5) mismatch for fontconfig-2.7.3.tar.gz Error: Checksum (sha1) mismatch for fontconfig-2.7.3.tar.gz Error: Checksum (rmd160) mismatch for fontconfig-2.7.3.tar.gz Error: Target org.macports.checksum returned: Unable to verify file checksums Error: Status 1 encountered during processing. This has happened for the last couple of days. Of course I need this for a bunch of other packages. I downloaded the source and read the install -- no configure script, so I ran autoconf and it errored out. I've got nothin' at this point. Danilo Gurovich Director of Network Gaming Technologies WMS, Inc 3401 N California Chicago, IL 60618 Mobile 773-230-5728 iPhone 818-472-6394 Office 773-961-1051 dgurovic at wms.com -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.freedesktop.org/archives/fontconfig/attachments/20091112/f6292a80/attachment.html From behdad at kemper.freedesktop.org Mon Nov 16 15:34:04 2009 From: behdad at kemper.freedesktop.org (Behdad Esfahbod) Date: Mon, 16 Nov 2009 15:34:04 -0800 (PST) Subject: [Fontconfig] fontconfig: Branch 'master' - 12 commits Message-ID: <20091116233404.4166010051@kemper.freedesktop.org> configure.in | 1 fc-arch/fc-arch.c | 6 ++- fc-arch/fcarch.tmpl.h | 16 +++++----- fontconfig/fontconfig.h | 2 - src/fcfreetype.c | 3 - src/fcint.h | 28 +++++++----------- src/fclang.c | 74 ++++++++++++++++++++++++++++++++++++------------ src/fcmatch.c | 10 +++--- src/fcpat.c | 14 ++++----- src/fcserialize.c | 8 ----- src/fcxml.c | 12 ------- 11 files changed, 95 insertions(+), 79 deletions(-) New commits: commit a3b2426819836ab2454c6a7bad27c382f4a245bf Author: Behdad Esfahbod Date: Mon Nov 16 18:29:26 2009 -0500 [lang] Fix serializing LangSet from older versions diff --git a/src/fclang.c b/src/fclang.c index 61c4da6..1d62c4e 100644 --- a/src/fclang.c +++ b/src/fclang.c @@ -537,9 +537,10 @@ FcChar32 FcLangSetHash (const FcLangSet *ls) { FcChar32 h = 0; - int i; + int i, count; - for (i = 0; i < ls->map_size; i++) + count = FC_MIN (ls->map_size, NUM_LANG_SET_MAP); + for (i = 0; i < count; i++) h ^= ls->map[i]; if (ls->extra) h ^= ls->extra->num; @@ -777,7 +778,9 @@ FcLangSetSerialize(FcSerialize *serialize, const FcLangSet *l) if (!l_serialize) return NULL; - *l_serialize = *l; + memset (l_serialize->map, '\0', sizeof (l_serialize->map)); + memcpy (l_serialize->map, l->map, FC_MIN (sizeof (l_serialize->map), l->map_size * sizeof (l->map[0]))); + l_serialize->map_size = NUM_LANG_SET_MAP; l_serialize->extra = NULL; /* We don't serialize ls->extra */ return l_serialize; } commit 8480c6f86327877fce729ebb01b52bd7a40ddfc5 Author: Behdad Esfahbod Date: Mon Nov 16 17:38:40 2009 -0500 [arch] Try to ensure proper FcLangSet alignment in arch diff --git a/fc-arch/fc-arch.c b/fc-arch/fc-arch.c index d0f5192..09a9d82 100644 --- a/fc-arch/fc-arch.c +++ b/fc-arch/fc-arch.c @@ -25,7 +25,7 @@ #include #define ENDIAN_TEST 0x12345678 -#define MACHINE_SIGNATURE_SIZE (9*22 + 1) +#define MACHINE_SIGNATURE_SIZE (9*23 + 1) static char * FcCacheMachineSignature (void) @@ -36,7 +36,7 @@ FcCacheMachineSignature (void) sprintf (buf, "%2x%2x%2x%2x_" "%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_" - "%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x", + "%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x", m[0], m[1], m[2], m[3], (unsigned int)sizeof (FcAlign), (unsigned int)sizeof (char), @@ -52,6 +52,7 @@ FcCacheMachineSignature (void) (unsigned int)sizeof (FcValue), (unsigned int)sizeof (FcValueBinding), (unsigned int)sizeof (struct FcValueList *), + (unsigned int)sizeof (FcStrSet *), /* For FcLangSet */ (unsigned int)sizeof (FcCharSet), (unsigned int)sizeof (FcCharLeaf **), (unsigned int)sizeof (FcChar16 *), diff --git a/fc-arch/fcarch.tmpl.h b/fc-arch/fcarch.tmpl.h index aac3bcf..09eccdc 100644 --- a/fc-arch/fcarch.tmpl.h +++ b/fc-arch/fcarch.tmpl.h @@ -28,11 +28,11 @@ @@@ name. Architecture names are used to construct file names, so @@@ use something reasonable and don't include any spaces @@@ -@@@ name endian FcAlign char char* int intptr_t Pattern EltPtr Elt * Elt ObjPtr VLPtr Value Binding VL * CharSet Leaf** Char16 * Char16 Leaf Char32 Cache -x86 78563412_00000008_00000001_00000004_00000004_00000004_00000010_00000004_00000004_00000008_00000004_00000004_0000000c_00000004_00000004_00000010_00000004_00000004_00000002_00000020_00000004_00000020 -x86-64 78563412_00000008_00000001_00000008_00000004_00000008_00000018_00000008_00000008_00000010_00000004_00000008_00000010_00000004_00000008_00000018_00000008_00000008_00000002_00000020_00000004_00000038 -ppc 12345678_00000008_00000001_00000004_00000004_00000004_00000010_00000004_00000004_00000008_00000004_00000004_00000010_00000004_00000004_00000010_00000004_00000004_00000002_00000020_00000004_00000020 -ppc64 12345678_00000008_00000001_00000008_00000004_00000008_00000018_00000008_00000008_00000010_00000004_00000008_00000010_00000004_00000008_00000018_00000008_00000008_00000002_00000020_00000004_00000038 -m68k 12345678_00000008_00000001_00000004_00000004_00000004_00000010_00000004_00000004_00000008_00000004_00000004_0000000c_00000004_00000004_00000010_00000004_00000004_00000002_00000020_00000004_00000020 -mipsel 78563412_00000008_00000001_00000004_00000004_00000004_00000010_00000004_00000004_00000008_00000004_00000004_00000010_00000004_00000004_00000010_00000004_00000004_00000002_00000020_00000004_00000020 -sparc64 12345678_00000008_00000001_00000008_00000004_00000008_00000018_00000008_00000008_00000010_00000004_00000008_00000010_00000004_00000008_00000018_00000008_00000008_00000002_00000020_00000004_00000038 +@@@ name endian FcAlign char char* int intptr_t Pattern EltPtr Elt * Elt ObjPtr VLPtr Value Binding VL * StrSet * CharSet Leaf** Char16 * Char16 Leaf Char32 Cache +x86 78563412_00000008_00000001_00000004_00000004_00000004_00000010_00000004_00000004_00000008_00000004_00000004_0000000c_00000004_00000004_00000004_00000010_00000004_00000004_00000002_00000020_00000004_00000020 +x86-64 78563412_00000008_00000001_00000008_00000004_00000008_00000018_00000008_00000008_00000010_00000004_00000008_00000010_00000004_00000008_00000008_00000018_00000008_00000008_00000002_00000020_00000004_00000038 +ppc 12345678_00000008_00000001_00000004_00000004_00000004_00000010_00000004_00000004_00000008_00000004_00000004_00000010_00000004_00000004_00000004_00000010_00000004_00000004_00000002_00000020_00000004_00000020 +ppc64 12345678_00000008_00000001_00000008_00000004_00000008_00000018_00000008_00000008_00000010_00000004_00000008_00000010_00000004_00000008_00000008_00000018_00000008_00000008_00000002_00000020_00000004_00000038 +m68k 12345678_00000008_00000001_00000004_00000004_00000004_00000010_00000004_00000004_00000008_00000004_00000004_0000000c_00000004_00000004_00000004_00000010_00000004_00000004_00000002_00000020_00000004_00000020 +mipsel 78563412_00000008_00000001_00000004_00000004_00000004_00000010_00000004_00000004_00000008_00000004_00000004_00000010_00000004_00000004_00000004_00000010_00000004_00000004_00000002_00000020_00000004_00000020 +sparc64 12345678_00000008_00000001_00000008_00000004_00000008_00000018_00000008_00000008_00000010_00000004_00000008_00000010_00000004_00000008_00000008_00000018_00000008_00000008_00000002_00000020_00000004_00000038 diff --git a/src/fclang.c b/src/fclang.c index 0f2f963..61c4da6 100644 --- a/src/fclang.c +++ b/src/fclang.c @@ -39,7 +39,7 @@ typedef struct { struct _FcLangSet { FcStrSet *extra; - int map_size; + FcChar32 map_size; FcChar32 map[NUM_LANG_SET_MAP]; }; commit dffcb2a083bc5f959ed96dbdf0f365ebc0e710cc Author: Behdad Esfahbod Date: Mon Nov 16 17:00:50 2009 -0500 [xml] Remove unused code diff --git a/src/fcxml.c b/src/fcxml.c index 840bdca..9428468 100644 --- a/src/fcxml.c +++ b/src/fcxml.c @@ -134,18 +134,6 @@ FcExprCreateBool (FcConfig *config, FcBool b) } static FcExpr * -FcExprCreateNil (FcConfig *config) -{ - FcExpr *e = FcConfigAllocExpr (config); - if (e) - { - FcMemAlloc (FC_MEM_EXPR, sizeof (FcExpr)); - e->op = FcOpNil; - } - return e; -} - -static FcExpr * FcExprCreateField (FcConfig *config, const char *field) { FcExpr *e = FcConfigAllocExpr (config); commit b2d910123008115813a5cd623389189a2d66880b Author: Behdad Esfahbod Date: Mon Nov 16 16:57:53 2009 -0500 [int] Remove more unused macros diff --git a/src/fcint.h b/src/fcint.h index c91df8c..233b4c3 100644 --- a/src/fcint.h +++ b/src/fcint.h @@ -107,10 +107,6 @@ #define FC_MEM_NUM 30 -#define FC_BANK_DYNAMIC 0 -#define FC_BANK_FIRST 1 -#define FC_BANK_LANGS 0xfcfcfcfc - #define FC_MIN(a,b) ((a) < (b) ? (a) : (b)) #define FC_MAX(a,b) ((a) > (b) ? (a) : (b)) #define FC_ABS(a) ((a) < 0 ? -(a) : (a)) commit 247c4f3df21582260c4799bdbda2be1c13cc8901 Author: Behdad Esfahbod Date: Mon Nov 16 15:48:20 2009 -0500 Enable automake silent rules diff --git a/configure.in b/configure.in index 2b0c182..b804064 100644 --- a/configure.in +++ b/configure.in @@ -34,6 +34,7 @@ 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.7.3) +m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) AM_MAINTAINER_MODE dnl libtool versioning commit 963820fcbfdb537fd956f8863f8793cf22093c5d Author: Behdad Esfahbod Date: Mon Nov 16 15:46:46 2009 -0500 [int] Remove fc_value_* macros that did nothing other than renaming diff --git a/src/fcint.h b/src/fcint.h index 78591c1..c91df8c 100644 --- a/src/fcint.h +++ b/src/fcint.h @@ -421,12 +421,6 @@ typedef struct _FcCaseFold { #define FC_MAX_FILE_LEN 4096 -/* XXX remove these when we're ready */ - -#define fc_value_string(v) FcValueString(v) -#define fc_value_charset(v) FcValueCharSet(v) -#define fc_value_langset(v) FcValueLangSet(v) - #define FC_CACHE_MAGIC_MMAP 0xFC02FC04 #define FC_CACHE_MAGIC_ALLOC 0xFC02FC05 #define FC_CACHE_CONTENT_VERSION 3 /* also check FC_CACHE_VERSION */ diff --git a/src/fcmatch.c b/src/fcmatch.c index ecb5aa9..aa84eda 100644 --- a/src/fcmatch.c +++ b/src/fcmatch.c @@ -61,7 +61,7 @@ FcCompareNumber (FcValue *value1, FcValue *value2) static double FcCompareString (FcValue *v1, FcValue *v2) { - return (double) FcStrCmpIgnoreCase (fc_value_string(v1), fc_value_string(v2)) != 0; + return (double) FcStrCmpIgnoreCase (FcValueString(v1), FcValueString(v2)) != 0; } static double @@ -69,8 +69,8 @@ FcCompareFamily (FcValue *v1, FcValue *v2) { /* rely on the guarantee in FcPatternAddWithBinding that * families are always FcTypeString. */ - const FcChar8* v1_string = fc_value_string(v1); - const FcChar8* v2_string = fc_value_string(v2); + const FcChar8* v1_string = FcValueString(v1); + const FcChar8* v2_string = FcValueString(v2); if (FcToLower(*v1_string) != FcToLower(*v2_string) && *v1_string != ' ' && *v2_string != ' ') @@ -137,7 +137,7 @@ FcCompareBool (FcValue *v1, FcValue *v2) static double FcCompareCharSet (FcValue *v1, FcValue *v2) { - return (double) FcCharSetSubtractCount (fc_value_charset(v1), fc_value_charset(v2)); + return (double) FcCharSetSubtractCount (FcValueCharSet(v1), FcValueCharSet(v2)); } static double diff --git a/src/fcpat.c b/src/fcpat.c index 90d42ca..76263b6 100644 --- a/src/fcpat.c +++ b/src/fcpat.c @@ -75,15 +75,15 @@ FcValueCanonicalize (const FcValue *v) switch (v->type) { case FcTypeString: - new.u.s = fc_value_string(v); + new.u.s = FcValueString(v); new.type = FcTypeString; break; case FcTypeCharSet: - new.u.c = fc_value_charset(v); + new.u.c = FcValueCharSet(v); new.type = FcTypeCharSet; break; case FcTypeLangSet: - new.u.l = fc_value_langset(v); + new.u.l = FcValueLangSet(v); new.type = FcTypeLangSet; break; default: @@ -228,7 +228,7 @@ FcValueHash (const FcValue *v) case FcTypeDouble: return FcDoubleHash (v->u.d); case FcTypeString: - return FcStringHash (fc_value_string(v)); + return FcStringHash (FcValueString(v)); case FcTypeBool: return (FcChar32) v->u.b; case FcTypeMatrix: @@ -237,12 +237,12 @@ FcValueHash (const FcValue *v) FcDoubleHash (v->u.m->yx) ^ FcDoubleHash (v->u.m->yy)); case FcTypeCharSet: - return (FcChar32) fc_value_charset(v)->num; + return (FcChar32) FcValueCharSet(v)->num; case FcTypeFTFace: return FcStringHash ((const FcChar8 *) ((FT_Face) v->u.f)->family_name) ^ FcStringHash ((const FcChar8 *) ((FT_Face) v->u.f)->style_name); case FcTypeLangSet: - return FcLangSetHash (fc_value_langset(v)); + return FcLangSetHash (FcValueLangSet(v)); } return FcFalse; } commit 888f9427ae84195104855d2bb2fbb6d44067a998 Author: Behdad Esfahbod Date: Mon Nov 16 15:43:08 2009 -0500 [int] Remove fc_storage_type() in favor of direct access to v->type diff --git a/src/fcint.h b/src/fcint.h index 14008a3..78591c1 100644 --- a/src/fcint.h +++ b/src/fcint.h @@ -426,7 +426,6 @@ typedef struct _FcCaseFold { #define fc_value_string(v) FcValueString(v) #define fc_value_charset(v) FcValueCharSet(v) #define fc_value_langset(v) FcValueLangSet(v) -#define fc_storage_type(v) ((v)->type) #define FC_CACHE_MAGIC_MMAP 0xFC02FC04 #define FC_CACHE_MAGIC_ALLOC 0xFC02FC05 diff --git a/src/fcmatch.c b/src/fcmatch.c index 0d84704..ecb5aa9 100644 --- a/src/fcmatch.c +++ b/src/fcmatch.c @@ -129,7 +129,7 @@ FcCompareLang (FcValue *v1, FcValue *v2) static double FcCompareBool (FcValue *v1, FcValue *v2) { - if (fc_storage_type(v2) != FcTypeBool || fc_storage_type(v1) != FcTypeBool) + if (v2->type != FcTypeBool || v1->type != FcTypeBool) return -1.0; return (double) v2->u.b != v1->u.b; } diff --git a/src/fcpat.c b/src/fcpat.c index 792a164..90d42ca 100644 --- a/src/fcpat.c +++ b/src/fcpat.c @@ -220,7 +220,7 @@ FcStringHash (const FcChar8 *s) static FcChar32 FcValueHash (const FcValue *v) { - switch (fc_storage_type(v)) { + switch (v->type) { case FcTypeVoid: return 0; case FcTypeInteger: commit 486fa46893d070485738de6e2c0d418650662d63 Author: Behdad Esfahbod Date: Mon Nov 16 15:41:58 2009 -0500 Remove unused macros diff --git a/src/fcint.h b/src/fcint.h index 4371158..14008a3 100644 --- a/src/fcint.h +++ b/src/fcint.h @@ -428,8 +428,6 @@ typedef struct _FcCaseFold { #define fc_value_langset(v) FcValueLangSet(v) #define fc_storage_type(v) ((v)->type) -#define fc_alignof(type) offsetof (struct { char c; type member; }, member) - #define FC_CACHE_MAGIC_MMAP 0xFC02FC04 #define FC_CACHE_MAGIC_ALLOC 0xFC02FC05 #define FC_CACHE_CONTENT_VERSION 3 /* also check FC_CACHE_VERSION */ @@ -520,9 +518,6 @@ typedef struct _FcFileTime { typedef struct _FcCharMap FcCharMap; -/* watch out; assumes that v is void * -PL */ -#define ALIGN(v,type) ((void *)(((uintptr_t)(v) + fc_alignof(type) - 1) & ~(fc_alignof(type) - 1))) - /* fcblanks.c */ /* fccache.c */ commit 1f4e6fecde22fd4ce8336b01a5c32c533fcb8bac Author: Behdad Esfahbod Date: Mon Nov 16 15:39:16 2009 -0500 Bump cache version up from 2 to 3 and fix FcLangSet caching/crash Protect cache against future expansions of FcLangSet (adding new orth files). Previously, doing so could change the size of that struct. Indeed, that happened between 2.6.0 and 2.7.3, causing crashes. Unfortunately, sizeof(FcLangSet) was not checked in fcarch.c. This changes FcLangSet code to be able to cope with struct size changes. And change cache format, hence bumping from 2 to 3. diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h index a0f8de5..7b36056 100644 --- a/fontconfig/fontconfig.h +++ b/fontconfig/fontconfig.h @@ -67,7 +67,7 @@ typedef int FcBool; * it means multiple copies of the font information. */ -#define FC_CACHE_VERSION "2" +#define FC_CACHE_VERSION "3" #define FcTrue 1 #define FcFalse 0 diff --git a/src/fcint.h b/src/fcint.h index 81cde21..4371158 100644 --- a/src/fcint.h +++ b/src/fcint.h @@ -432,7 +432,7 @@ typedef struct _FcCaseFold { #define FC_CACHE_MAGIC_MMAP 0xFC02FC04 #define FC_CACHE_MAGIC_ALLOC 0xFC02FC05 -#define FC_CACHE_CONTENT_VERSION 2 +#define FC_CACHE_CONTENT_VERSION 3 /* also check FC_CACHE_VERSION */ struct _FcAtomic { FcChar8 *file; /* original file name */ diff --git a/src/fclang.c b/src/fclang.c index ab7ae53..0f2f963 100644 --- a/src/fclang.c +++ b/src/fclang.c @@ -38,12 +38,38 @@ typedef struct { #include "../fc-lang/fclang.h" struct _FcLangSet { - FcChar32 map[NUM_LANG_SET_MAP]; FcStrSet *extra; + int map_size; + FcChar32 map[NUM_LANG_SET_MAP]; }; -#define FcLangSetBitSet(ls, id) ((ls)->map[(fcLangCharSetIndices[id])>>5] |= ((FcChar32) 1 << ((fcLangCharSetIndices[id]) & 0x1f))) -#define FcLangSetBitGet(ls, id) (((ls)->map[(fcLangCharSetIndices[id])>>5] >> ((fcLangCharSetIndices[id]) & 0x1f)) & 1) +static void +FcLangSetBitSet (FcLangSet *ls, + unsigned int id) +{ + int bucket; + + id = fcLangCharSetIndices[id]; + bucket = id >> 5; + if (bucket >= ls->map_size) + return; /* shouldn't happen really */ + + ls->map[bucket] |= ((FcChar32) 1 << (id & 0x1f)); +} + +static FcBool +FcLangSetBitGet (const FcLangSet *ls, + unsigned int id) +{ + int bucket; + + id = fcLangCharSetIndices[id]; + bucket = id >> 5; + if (bucket >= ls->map_size) + return FcFalse; + + return ((ls->map[bucket] >> (id & 0x1f)) & 1) ? FcTrue : FcFalse; +} FcLangSet * FcFreeTypeLangSet (const FcCharSet *charset, @@ -210,6 +236,7 @@ FcLangGetCharSet (const FcChar8 *lang) case FcLangDifferentTerritory: if (country == -1) country = i; + case FcLangDifferentLang: default: break; } @@ -245,6 +272,7 @@ FcLangSetCreate (void) return 0; FcMemAlloc (FC_MEM_LANGSET, sizeof (FcLangSet)); memset (ls->map, '\0', sizeof (ls->map)); + ls->map_size = NUM_LANG_SET_MAP; ls->extra = 0; return ls; } @@ -266,7 +294,8 @@ FcLangSetCopy (const FcLangSet *ls) new = FcLangSetCreate (); if (!new) goto bail0; - memcpy (new->map, ls->map, sizeof (new->map)); + memset (new->map, '\0', sizeof (new->map)); + memcpy (new->map, ls->map, FC_MIN (sizeof (new->map), ls->map_size * sizeof (ls->map[0]))); if (ls->extra) { FcStrList *list; @@ -442,15 +471,17 @@ FcLangSetCompareStrSet (const FcLangSet *ls, FcStrSet *set) FcLangResult FcLangSetCompare (const FcLangSet *lsa, const FcLangSet *lsb) { - int i, j; + int i, j, count; FcLangResult best, r; - for (i = 0; i < NUM_LANG_SET_MAP; i++) + count = FC_MIN (lsa->map_size, lsb->map_size); + count = FC_MIN (NUM_LANG_SET_MAP, count); + for (i = 0; i < count; i++) if (lsa->map[i] & lsb->map[i]) return FcLangEqual; best = FcLangDifferentLang; for (j = 0; j < NUM_COUNTRY_SET; j++) - for (i = 0; i < NUM_LANG_SET_MAP; i++) + for (i = 0; i < count; i++) if ((lsa->map[i] & fcLangCountrySets[j][i]) && (lsb->map[i] & fcLangCountrySets[j][i])) { @@ -508,7 +539,7 @@ FcLangSetHash (const FcLangSet *ls) FcChar32 h = 0; int i; - for (i = 0; i < NUM_LANG_SET_MAP; i++) + for (i = 0; i < ls->map_size; i++) h ^= ls->map[i]; if (ls->extra) h ^= ls->extra->num; @@ -518,7 +549,7 @@ FcLangSetHash (const FcLangSet *ls) FcLangSet * FcNameParseLangSet (const FcChar8 *string) { - FcChar8 lang[32],c; + FcChar8 lang[32], c = 0; int i; FcLangSet *ls; @@ -551,11 +582,12 @@ bail0: FcBool FcNameUnparseLangSet (FcStrBuf *buf, const FcLangSet *ls) { - int i, bit; + int i, bit, count; FcChar32 bits; FcBool first = FcTrue; - for (i = 0; i < NUM_LANG_SET_MAP; i++) + count = FC_MIN (ls->map_size, NUM_LANG_SET_MAP); + for (i = 0; i < count; i++) { if ((bits = ls->map[i])) { @@ -602,9 +634,11 @@ FcNameUnparseLangSet (FcStrBuf *buf, const FcLangSet *ls) FcBool FcLangSetEqual (const FcLangSet *lsa, const FcLangSet *lsb) { - int i; + int i, count; - for (i = 0; i < NUM_LANG_SET_MAP; i++) + count = FC_MIN (lsa->map_size, lsb->map_size); + count = FC_MIN (NUM_LANG_SET_MAP, count); + for (i = 0; i < count; i++) { if (lsa->map[i] != lsb->map[i]) return FcFalse; @@ -672,7 +706,7 @@ FcLangSetContainsLang (const FcLangSet *ls, const FcChar8 *lang) FcBool FcLangSetContains (const FcLangSet *lsa, const FcLangSet *lsb) { - int i, j; + int i, j, count; FcChar32 missing; if (FcDebug() & FC_DBG_MATCHV) @@ -684,7 +718,9 @@ FcLangSetContains (const FcLangSet *lsa, const FcLangSet *lsb) /* * check bitmaps for missing language support */ - for (i = 0; i < NUM_LANG_SET_MAP; i++) + count = FC_MIN (lsa->map_size, lsb->map_size); + count = FC_MIN (NUM_LANG_SET_MAP, count); + for (i = 0; i < count; i++) { missing = lsb->map[i] & ~lsa->map[i]; if (missing) @@ -742,6 +778,7 @@ FcLangSetSerialize(FcSerialize *serialize, const FcLangSet *l) if (!l_serialize) return NULL; *l_serialize = *l; + l_serialize->extra = NULL; /* We don't serialize ls->extra */ return l_serialize; } commit 6b1fc678ca59df3f3f1ffac0e509cf485c9df0c0 Author: Behdad Esfahbod Date: Mon Nov 16 16:57:10 2009 -0500 [int] Define MIN/MAX/ABS macros diff --git a/src/fcfreetype.c b/src/fcfreetype.c index b678f26..c30826e 100644 --- a/src/fcfreetype.c +++ b/src/fcfreetype.c @@ -2537,9 +2537,6 @@ FcFreeTypeCheckGlyph (FT_Face face, FcChar32 ucs4, return FcFalse; } -#define FC_MIN(a,b) ((a) < (b) ? (a) : (b)) -#define FC_MAX(a,b) ((a) > (b) ? (a) : (b)) -#define FC_ABS(a) ((a) < 0 ? -(a) : (a)) #define APPROXIMATELY_EQUAL(x,y) (FC_ABS ((x) - (y)) <= FC_MAX (FC_ABS (x), FC_ABS (y)) / 33) static FcCharSet * diff --git a/src/fcint.h b/src/fcint.h index 767a742..81cde21 100644 --- a/src/fcint.h +++ b/src/fcint.h @@ -111,6 +111,10 @@ #define FC_BANK_FIRST 1 #define FC_BANK_LANGS 0xfcfcfcfc +#define FC_MIN(a,b) ((a) < (b) ? (a) : (b)) +#define FC_MAX(a,b) ((a) > (b) ? (a) : (b)) +#define FC_ABS(a) ((a) < 0 ? -(a) : (a)) + /* slim_internal.h */ #if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) && defined(__ELF__) && !defined(__sun) #define FcPrivate __attribute__((__visibility__("hidden"))) commit b393846860a390ebe35b19320b5eaf9272084042 Author: Behdad Esfahbod Date: Mon Nov 16 15:17:56 2009 -0500 [fc-arch] Add FcAlign to arch signature diff --git a/fc-arch/fc-arch.c b/fc-arch/fc-arch.c index 2fa6b18..d0f5192 100644 --- a/fc-arch/fc-arch.c +++ b/fc-arch/fc-arch.c @@ -25,7 +25,7 @@ #include #define ENDIAN_TEST 0x12345678 -#define MACHINE_SIGNATURE_SIZE (9*21 + 1) +#define MACHINE_SIGNATURE_SIZE (9*22 + 1) static char * FcCacheMachineSignature (void) @@ -36,8 +36,9 @@ FcCacheMachineSignature (void) sprintf (buf, "%2x%2x%2x%2x_" "%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_" - "%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x", + "%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x", m[0], m[1], m[2], m[3], + (unsigned int)sizeof (FcAlign), (unsigned int)sizeof (char), (unsigned int)sizeof (char *), (unsigned int)sizeof (int), diff --git a/fc-arch/fcarch.tmpl.h b/fc-arch/fcarch.tmpl.h index 20e5705..aac3bcf 100644 --- a/fc-arch/fcarch.tmpl.h +++ b/fc-arch/fcarch.tmpl.h @@ -28,11 +28,11 @@ @@@ name. Architecture names are used to construct file names, so @@@ use something reasonable and don't include any spaces @@@ -@@@ name endian char char* int intptr_t Pattern EltPtr Elt * Elt ObjPtr VLPtr Value Binding VL * CharSet Leaf** Char16 * Char16 Leaf Char32 Cache -x86 78563412_00000001_00000004_00000004_00000004_00000010_00000004_00000004_00000008_00000004_00000004_0000000c_00000004_00000004_00000010_00000004_00000004_00000002_00000020_00000004_00000020 -x86-64 78563412_00000001_00000008_00000004_00000008_00000018_00000008_00000008_00000010_00000004_00000008_00000010_00000004_00000008_00000018_00000008_00000008_00000002_00000020_00000004_00000038 -ppc 12345678_00000001_00000004_00000004_00000004_00000010_00000004_00000004_00000008_00000004_00000004_00000010_00000004_00000004_00000010_00000004_00000004_00000002_00000020_00000004_00000020 -ppc64 12345678_00000001_00000008_00000004_00000008_00000018_00000008_00000008_00000010_00000004_00000008_00000010_00000004_00000008_00000018_00000008_00000008_00000002_00000020_00000004_00000038 -m68k 12345678_00000001_00000004_00000004_00000004_00000010_00000004_00000004_00000008_00000004_00000004_0000000c_00000004_00000004_00000010_00000004_00000004_00000002_00000020_00000004_00000020 -mipsel 78563412_00000001_00000004_00000004_00000004_00000010_00000004_00000004_00000008_00000004_00000004_00000010_00000004_00000004_00000010_00000004_00000004_00000002_00000020_00000004_00000020 -sparc64 12345678_00000001_00000008_00000004_00000008_00000018_00000008_00000008_00000010_00000004_00000008_00000010_00000004_00000008_00000018_00000008_00000008_00000002_00000020_00000004_00000038 +@@@ name endian FcAlign char char* int intptr_t Pattern EltPtr Elt * Elt ObjPtr VLPtr Value Binding VL * CharSet Leaf** Char16 * Char16 Leaf Char32 Cache +x86 78563412_00000008_00000001_00000004_00000004_00000004_00000010_00000004_00000004_00000008_00000004_00000004_0000000c_00000004_00000004_00000010_00000004_00000004_00000002_00000020_00000004_00000020 +x86-64 78563412_00000008_00000001_00000008_00000004_00000008_00000018_00000008_00000008_00000010_00000004_00000008_00000010_00000004_00000008_00000018_00000008_00000008_00000002_00000020_00000004_00000038 +ppc 12345678_00000008_00000001_00000004_00000004_00000004_00000010_00000004_00000004_00000008_00000004_00000004_00000010_00000004_00000004_00000010_00000004_00000004_00000002_00000020_00000004_00000020 +ppc64 12345678_00000008_00000001_00000008_00000004_00000008_00000018_00000008_00000008_00000010_00000004_00000008_00000010_00000004_00000008_00000018_00000008_00000008_00000002_00000020_00000004_00000038 +m68k 12345678_00000008_00000001_00000004_00000004_00000004_00000010_00000004_00000004_00000008_00000004_00000004_0000000c_00000004_00000004_00000010_00000004_00000004_00000002_00000020_00000004_00000020 +mipsel 78563412_00000008_00000001_00000004_00000004_00000004_00000010_00000004_00000004_00000008_00000004_00000004_00000010_00000004_00000004_00000010_00000004_00000004_00000002_00000020_00000004_00000020 +sparc64 12345678_00000008_00000001_00000008_00000004_00000008_00000018_00000008_00000008_00000010_00000004_00000008_00000010_00000004_00000008_00000018_00000008_00000008_00000002_00000020_00000004_00000038 commit 8009229bc5cd9b540ff56a47ddc32ccada2679b0 Author: Behdad Esfahbod Date: Mon Nov 16 15:12:52 2009 -0500 Move FcAlign to fcint.h diff --git a/src/fcint.h b/src/fcint.h index 1691dda..767a742 100644 --- a/src/fcint.h +++ b/src/fcint.h @@ -351,6 +351,14 @@ struct _FcCache { #define FC_SERIALIZE_HASH_SIZE 8191 +typedef union _FcAlign { + double d; + int i; + intptr_t ip; + FcBool b; + void *p; +} FcAlign; + typedef struct _FcSerializeBucket { struct _FcSerializeBucket *next; const void *object; diff --git a/src/fcserialize.c b/src/fcserialize.c index a66d388..e5ec90b 100644 --- a/src/fcserialize.c +++ b/src/fcserialize.c @@ -22,14 +22,6 @@ #include "fcint.h" -typedef union _FcAlign { - double d; - int i; - intptr_t ip; - FcBool b; - void *p; -} FcAlign; - intptr_t FcAlignSize (intptr_t size) { From behdad at behdad.org Mon Nov 16 15:37:00 2009 From: behdad at behdad.org (Behdad Esfahbod) Date: Mon, 16 Nov 2009 18:37:00 -0500 Subject: [Fontconfig] Cache version bump plus new version Message-ID: <4B01E21C.7040906@behdad.org> Hi, Previously FcLangSet was defined as: struct _FcLangSet { FcChar32 map[NUM_LANG_SET_MAP]; FcStrSet *extra; }; Which meant that if enough new .orth files are added to change the value of NUM_LANG_SET_MAP, that struct changes layout, and the cache layout will change. This is indeed what happened between 2.6.0 and 2.7.x and was causing crashes since *extra was getting bogus values and then redirected. To fix that I've restructured the structure to: struct _FcLangSet { FcStrSet *extra; FcChar32 map_size; FcChar32 map[NUM_LANG_SET_MAP]; }; and changed the code to respect map_size. As a result I've bumped the cache version from 2 to 3. This is pushed to master. I plan to release this as 2.8.0. Will appreciate some testing in the mean while though. I may make a 2.7.90 snapshot later tonight or tomorrow. Or may release 2.8.0 straight. behdad From behdad at kemper.freedesktop.org Tue Nov 17 09:11:41 2009 From: behdad at kemper.freedesktop.org (Behdad Esfahbod) Date: Tue, 17 Nov 2009 09:11:41 -0800 (PST) Subject: [Fontconfig] fontconfig: Branch 'master' Message-ID: <20091117171141.AE52410051@kemper.freedesktop.org> src/Makefile.am | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) New commits: commit a90a3ad97a7cee10225190e13a576e55871b9441 Author: Behdad Esfahbod Date: Tue Nov 17 12:10:01 2009 -0500 Make sure fclang.h and fcarch.h are built diff --git a/src/Makefile.am b/src/Makefile.am index ab0e6b4..6560c0e 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -83,7 +83,12 @@ noinst_HEADERS=fcint.h fcftint.h fcdeprecate.h ALIAS_FILES = fcalias.h fcaliastail.h fcftalias.h fcftaliastail.h -BUILT_SOURCES = $(ALIAS_FILES) +BUILT_SOURCES = $(ALIAS_FILES) ../fc-lang/fclang.h ../fc-arch/fcarch.h + +../fc-lang/fclang.h: + cd ../fc-lang && $(MAKE) $(AM_MAKEFLAGS) fclang.h +../fc-arch/fcarch.h: + cd ../fc-arch && $(MAKE) $(AM_MAKEFLAGS) fcarch.h libfontconfig_la_SOURCES = \ fcatomic.c \ From fcrozat at mandriva.com Wed Nov 18 06:04:45 2009 From: fcrozat at mandriva.com (Frederic Crozat) Date: Wed, 18 Nov 2009 15:04:45 +0100 Subject: [Fontconfig] Cache version bump plus new version In-Reply-To: <4B01E21C.7040906@behdad.org> References: <4B01E21C.7040906@behdad.org> Message-ID: <4B03FEFD.2090306@mandriva.com> Le 17/11/2009 00:37, Behdad Esfahbod a ?crit : > I plan to release this as 2.8.0. Will appreciate some testing in the mean > while though. I may make a 2.7.90 snapshot later tonight or tomorrow. Or may > release 2.8.0 straight. I confirm it fixes our upgrade issue from fontconfig 2.6.0 -- Frederic Crozat Mandriva From behdad at kemper.freedesktop.org Wed Nov 18 06:39:42 2009 From: behdad at kemper.freedesktop.org (Behdad Esfahbod) Date: Wed, 18 Nov 2009 06:39:42 -0800 (PST) Subject: [Fontconfig] fontconfig: Branch 'master' - 6 commits Message-ID: <20091118143942.11B5D10051@kemper.freedesktop.org> fc-arch/Makefile.am | 4 fc-case/Makefile.am | 7 fc-glyphname/Makefile.am | 9 fc-glyphname/fc-glyphname.c | 6 fc-glyphname/glyphlist.txt | 4291 -------------------------------------------- fc-lang/Makefile.am | 2 src/Makefile.am | 14 src/fccharset.c | 1 src/fcfreetype.c | 13 9 files changed, 29 insertions(+), 4318 deletions(-) New commits: commit 13781ba00b0ded28319ff417a254c620231973f1 Author: Behdad Esfahbod Date: Wed Nov 18 09:36:23 2009 -0500 [fc-glyphname] Remove Adobe glyphlist It was unused. diff --git a/fc-glyphname/glyphlist.txt b/fc-glyphname/glyphlist.txt deleted file mode 100644 index a1a2270..0000000 --- a/fc-glyphname/glyphlist.txt +++ /dev/null @@ -1,4291 +0,0 @@ -# Name: Adobe Glyph List -# Table version: 2.0 -# Date: September 20, 2002 -# -# See http://partners.adobe.com/asn/developer/typeforum/unicodegn.html -# -# Format: Semicolon-delimited fields: -# (1) glyph name -# (2) Unicode scalar value -A;0041 -AE;00C6 -AEacute;01FC -AEmacron;01E2 -AEsmall;F7E6 -Aacute;00C1 -Aacutesmall;F7E1 -Abreve;0102 -Abreveacute;1EAE -Abrevecyrillic;04D0 -Abrevedotbelow;1EB6 -Abrevegrave;1EB0 -Abrevehookabove;1EB2 -Abrevetilde;1EB4 -Acaron;01CD -Acircle;24B6 -Acircumflex;00C2 -Acircumflexacute;1EA4 -Acircumflexdotbelow;1EAC -Acircumflexgrave;1EA6 -Acircumflexhookabove;1EA8 -Acircumflexsmall;F7E2 -Acircumflextilde;1EAA -Acute;F6C9 -Acutesmall;F7B4 -Acyrillic;0410 -Adblgrave;0200 -Adieresis;00C4 -Adieresiscyrillic;04D2 -Adieresismacron;01DE -Adieresissmall;F7E4 -Adotbelow;1EA0 -Adotmacron;01E0 -Agrave;00C0 -Agravesmall;F7E0 -Ahookabove;1EA2 -Aiecyrillic;04D4 -Ainvertedbreve;0202 -Alpha;0391 -Alphatonos;0386 -Amacron;0100 -Amonospace;FF21 -Aogonek;0104 -Aring;00C5 -Aringacute;01FA -Aringbelow;1E00 -Aringsmall;F7E5 -Asmall;F761 -Atilde;00C3 -Atildesmall;F7E3 -Aybarmenian;0531 -B;0042 -Bcircle;24B7 -Bdotaccent;1E02 -Bdotbelow;1E04 -Becyrillic;0411 -Benarmenian;0532 -Beta;0392 -Bhook;0181 -Blinebelow;1E06 -Bmonospace;FF22 -Brevesmall;F6F4 -Bsmall;F762 -Btopbar;0182 -C;0043 -Caarmenian;053E -Cacute;0106 -Caron;F6CA -Caronsmall;F6F5 -Ccaron;010C -Ccedilla;00C7 -Ccedillaacute;1E08 -Ccedillasmall;F7E7 -Ccircle;24B8 -Ccircumflex;0108 -Cdot;010A -Cdotaccent;010A -Cedillasmall;F7B8 -Chaarmenian;0549 -Cheabkhasiancyrillic;04BC -Checyrillic;0427 -Chedescenderabkhasiancyrillic;04BE -Chedescendercyrillic;04B6 -Chedieresiscyrillic;04F4 -Cheharmenian;0543 -Chekhakassiancyrillic;04CB -Cheverticalstrokecyrillic;04B8 -Chi;03A7 -Chook;0187 -Circumflexsmall;F6F6 -Cmonospace;FF23 -Coarmenian;0551 -Csmall;F763 -D;0044 -DZ;01F1 -DZcaron;01C4 -Daarmenian;0534 -Dafrican;0189 -Dcaron;010E -Dcedilla;1E10 -Dcircle;24B9 -Dcircumflexbelow;1E12 -Dcroat;0110 -Ddotaccent;1E0A -Ddotbelow;1E0C -Decyrillic;0414 -Deicoptic;03EE -Delta;2206 -Deltagreek;0394 -Dhook;018A -Dieresis;F6CB -DieresisAcute;F6CC -DieresisGrave;F6CD -Dieresissmall;F7A8 -Digammagreek;03DC -Djecyrillic;0402 -Dlinebelow;1E0E -Dmonospace;FF24 -Dotaccentsmall;F6F7 -Dslash;0110 -Dsmall;F764 -Dtopbar;018B -Dz;01F2 -Dzcaron;01C5 -Dzeabkhasiancyrillic;04E0 -Dzecyrillic;0405 -Dzhecyrillic;040F -E;0045 -Eacute;00C9 -Eacutesmall;F7E9 -Ebreve;0114 -Ecaron;011A -Ecedillabreve;1E1C -Echarmenian;0535 -Ecircle;24BA -Ecircumflex;00CA -Ecircumflexacute;1EBE -Ecircumflexbelow;1E18 -Ecircumflexdotbelow;1EC6 -Ecircumflexgrave;1EC0 -Ecircumflexhookabove;1EC2 -Ecircumflexsmall;F7EA -Ecircumflextilde;1EC4 -Ecyrillic;0404 -Edblgrave;0204 -Edieresis;00CB -Edieresissmall;F7EB -Edot;0116 -Edotaccent;0116 -Edotbelow;1EB8 -Efcyrillic;0424 -Egrave;00C8 -Egravesmall;F7E8 -Eharmenian;0537 -Ehookabove;1EBA -Eightroman;2167 -Einvertedbreve;0206 -Eiotifiedcyrillic;0464 -Elcyrillic;041B -Elevenroman;216A -Emacron;0112 -Emacronacute;1E16 -Emacrongrave;1E14 -Emcyrillic;041C -Emonospace;FF25 -Encyrillic;041D -Endescendercyrillic;04A2 -Eng;014A -Enghecyrillic;04A4 -Enhookcyrillic;04C7 -Eogonek;0118 -Eopen;0190 -Epsilon;0395 -Epsilontonos;0388 -Ercyrillic;0420 -Ereversed;018E -Ereversedcyrillic;042D -Escyrillic;0421 -Esdescendercyrillic;04AA -Esh;01A9 -Esmall;F765 -Eta;0397 -Etarmenian;0538 -Etatonos;0389 -Eth;00D0 -Ethsmall;F7F0 -Etilde;1EBC -Etildebelow;1E1A -Euro;20AC -Ezh;01B7 -Ezhcaron;01EE -Ezhreversed;01B8 -F;0046 -Fcircle;24BB -Fdotaccent;1E1E -Feharmenian;0556 -Feicoptic;03E4 -Fhook;0191 -Fitacyrillic;0472 -Fiveroman;2164 -Fmonospace;FF26 -Fourroman;2163 -Fsmall;F766 -G;0047 -GBsquare;3387 -Gacute;01F4 -Gamma;0393 -Gammaafrican;0194 -Gangiacoptic;03EA -Gbreve;011E -Gcaron;01E6 -Gcedilla;0122 -Gcircle;24BC -Gcircumflex;011C -Gcommaaccent;0122 -Gdot;0120 -Gdotaccent;0120 -Gecyrillic;0413 -Ghadarmenian;0542 -Ghemiddlehookcyrillic;0494 -Ghestrokecyrillic;0492 -Gheupturncyrillic;0490 -Ghook;0193 -Gimarmenian;0533 -Gjecyrillic;0403 -Gmacron;1E20 -Gmonospace;FF27 -Grave;F6CE -Gravesmall;F760 -Gsmall;F767 -Gsmallhook;029B -Gstroke;01E4 -H;0048 -H18533;25CF -H18543;25AA -H18551;25AB -H22073;25A1 -HPsquare;33CB -Haabkhasiancyrillic;04A8 -Hadescendercyrillic;04B2 -Hardsigncyrillic;042A -Hbar;0126 -Hbrevebelow;1E2A -Hcedilla;1E28 -Hcircle;24BD -Hcircumflex;0124 -Hdieresis;1E26 -Hdotaccent;1E22 -Hdotbelow;1E24 -Hmonospace;FF28 -Hoarmenian;0540 -Horicoptic;03E8 -Hsmall;F768 -Hungarumlaut;F6CF -Hungarumlautsmall;F6F8 -Hzsquare;3390 -I;0049 -IAcyrillic;042F -IJ;0132 -IUcyrillic;042E -Iacute;00CD -Iacutesmall;F7ED -Ibreve;012C -Icaron;01CF -Icircle;24BE -Icircumflex;00CE -Icircumflexsmall;F7EE -Icyrillic;0406 -Idblgrave;0208 -Idieresis;00CF -Idieresisacute;1E2E -Idieresiscyrillic;04E4 -Idieresissmall;F7EF -Idot;0130 -Idotaccent;0130 -Idotbelow;1ECA -Iebrevecyrillic;04D6 -Iecyrillic;0415 -Ifraktur;2111 -Igrave;00CC -Igravesmall;F7EC -Ihookabove;1EC8 -Iicyrillic;0418 -Iinvertedbreve;020A -Iishortcyrillic;0419 -Imacron;012A -Imacroncyrillic;04E2 -Imonospace;FF29 -Iniarmenian;053B -Iocyrillic;0401 -Iogonek;012E -Iota;0399 -Iotaafrican;0196 -Iotadieresis;03AA -Iotatonos;038A -Ismall;F769 -Istroke;0197 -Itilde;0128 -Itildebelow;1E2C -Izhitsacyrillic;0474 -Izhitsadblgravecyrillic;0476 -J;004A -Jaarmenian;0541 -Jcircle;24BF -Jcircumflex;0134 -Jecyrillic;0408 -Jheharmenian;054B -Jmonospace;FF2A -Jsmall;F76A -K;004B -KBsquare;3385 -KKsquare;33CD -Kabashkircyrillic;04A0 -Kacute;1E30 -Kacyrillic;041A -Kadescendercyrillic;049A -Kahookcyrillic;04C3 -Kappa;039A -Kastrokecyrillic;049E -Kaverticalstrokecyrillic;049C -Kcaron;01E8 -Kcedilla;0136 -Kcircle;24C0 -Kcommaaccent;0136 -Kdotbelow;1E32 -Keharmenian;0554 -Kenarmenian;053F -Khacyrillic;0425 -Kheicoptic;03E6 -Khook;0198 -Kjecyrillic;040C -Klinebelow;1E34 -Kmonospace;FF2B -Koppacyrillic;0480 -Koppagreek;03DE -Ksicyrillic;046E -Ksmall;F76B -L;004C -LJ;01C7 -LL;F6BF -Lacute;0139 -Lambda;039B -Lcaron;013D -Lcedilla;013B -Lcircle;24C1 -Lcircumflexbelow;1E3C -Lcommaaccent;013B -Ldot;013F -Ldotaccent;013F -Ldotbelow;1E36 -Ldotbelowmacron;1E38 -Liwnarmenian;053C -Lj;01C8 -Ljecyrillic;0409 -Llinebelow;1E3A -Lmonospace;FF2C -Lslash;0141 -Lslashsmall;F6F9 -Lsmall;F76C -M;004D -MBsquare;3386 -Macron;F6D0 -Macronsmall;F7AF -Macute;1E3E -Mcircle;24C2 -Mdotaccent;1E40 -Mdotbelow;1E42 -Menarmenian;0544 -Mmonospace;FF2D -Msmall;F76D -Mturned;019C -Mu;039C -N;004E -NJ;01CA -Nacute;0143 -Ncaron;0147 -Ncedilla;0145 -Ncircle;24C3 -Ncircumflexbelow;1E4A -Ncommaaccent;0145 -Ndotaccent;1E44 -Ndotbelow;1E46 -Nhookleft;019D -Nineroman;2168 -Nj;01CB -Njecyrillic;040A -Nlinebelow;1E48 -Nmonospace;FF2E -Nowarmenian;0546 -Nsmall;F76E -Ntilde;00D1 -Ntildesmall;F7F1 -Nu;039D -O;004F -OE;0152 -OEsmall;F6FA -Oacute;00D3 -Oacutesmall;F7F3 -Obarredcyrillic;04E8 -Obarreddieresiscyrillic;04EA -Obreve;014E -Ocaron;01D1 -Ocenteredtilde;019F -Ocircle;24C4 -Ocircumflex;00D4 -Ocircumflexacute;1ED0 -Ocircumflexdotbelow;1ED8 -Ocircumflexgrave;1ED2 -Ocircumflexhookabove;1ED4 -Ocircumflexsmall;F7F4 -Ocircumflextilde;1ED6 -Ocyrillic;041E -Odblacute;0150 -Odblgrave;020C -Odieresis;00D6 -Odieresiscyrillic;04E6 -Odieresissmall;F7F6 -Odotbelow;1ECC -Ogoneksmall;F6FB -Ograve;00D2 -Ogravesmall;F7F2 -Oharmenian;0555 -Ohm;2126 -Ohookabove;1ECE -Ohorn;01A0 -Ohornacute;1EDA -Ohorndotbelow;1EE2 -Ohorngrave;1EDC -Ohornhookabove;1EDE -Ohorntilde;1EE0 -Ohungarumlaut;0150 -Oi;01A2 -Oinvertedbreve;020E -Omacron;014C -Omacronacute;1E52 -Omacrongrave;1E50 -Omega;2126 -Omegacyrillic;0460 -Omegagreek;03A9 -Omegaroundcyrillic;047A -Omegatitlocyrillic;047C -Omegatonos;038F -Omicron;039F -Omicrontonos;038C -Omonospace;FF2F -Oneroman;2160 -Oogonek;01EA -Oogonekmacron;01EC -Oopen;0186 -Oslash;00D8 -Oslashacute;01FE -Oslashsmall;F7F8 -Osmall;F76F -Ostrokeacute;01FE -Otcyrillic;047E -Otilde;00D5 -Otildeacute;1E4C -Otildedieresis;1E4E -Otildesmall;F7F5 -P;0050 -Pacute;1E54 -Pcircle;24C5 -Pdotaccent;1E56 -Pecyrillic;041F -Peharmenian;054A -Pemiddlehookcyrillic;04A6 -Phi;03A6 -Phook;01A4 -Pi;03A0 -Piwrarmenian;0553 -Pmonospace;FF30 -Psi;03A8 -Psicyrillic;0470 -Psmall;F770 -Q;0051 -Qcircle;24C6 -Qmonospace;FF31 -Qsmall;F771 -R;0052 -Raarmenian;054C -Racute;0154 -Rcaron;0158 -Rcedilla;0156 -Rcircle;24C7 -Rcommaaccent;0156 -Rdblgrave;0210 -Rdotaccent;1E58 -Rdotbelow;1E5A -Rdotbelowmacron;1E5C -Reharmenian;0550 -Rfraktur;211C -Rho;03A1 -Ringsmall;F6FC -Rinvertedbreve;0212 -Rlinebelow;1E5E -Rmonospace;FF32 -Rsmall;F772 -Rsmallinverted;0281 -Rsmallinvertedsuperior;02B6 -S;0053 -SF010000;250C -SF020000;2514 -SF030000;2510 -SF040000;2518 -SF050000;253C -SF060000;252C -SF070000;2534 -SF080000;251C -SF090000;2524 -SF100000;2500 -SF110000;2502 -SF190000;2561 -SF200000;2562 -SF210000;2556 -SF220000;2555 -SF230000;2563 -SF240000;2551 -SF250000;2557 -SF260000;255D -SF270000;255C -SF280000;255B -SF360000;255E -SF370000;255F -SF380000;255A -SF390000;2554 -SF400000;2569 -SF410000;2566 -SF420000;2560 -SF430000;2550 -SF440000;256C -SF450000;2567 -SF460000;2568 -SF470000;2564 -SF480000;2565 -SF490000;2559 -SF500000;2558 -SF510000;2552 -SF520000;2553 -SF530000;256B -SF540000;256A -Sacute;015A -Sacutedotaccent;1E64 -Sampigreek;03E0 -Scaron;0160 -Scarondotaccent;1E66 -Scaronsmall;F6FD -Scedilla;015E -Schwa;018F -Schwacyrillic;04D8 -Schwadieresiscyrillic;04DA -Scircle;24C8 -Scircumflex;015C -Scommaaccent;0218 -Sdotaccent;1E60 -Sdotbelow;1E62 -Sdotbelowdotaccent;1E68 -Seharmenian;054D -Sevenroman;2166 -Shaarmenian;0547 -Shacyrillic;0428 -Shchacyrillic;0429 -Sheicoptic;03E2 -Shhacyrillic;04BA -Shimacoptic;03EC -Sigma;03A3 -Sixroman;2165 -Smonospace;FF33 -Softsigncyrillic;042C -Ssmall;F773 -Stigmagreek;03DA -T;0054 -Tau;03A4 -Tbar;0166 -Tcaron;0164 -Tcedilla;0162 -Tcircle;24C9 -Tcircumflexbelow;1E70 -Tcommaaccent;0162 -Tdotaccent;1E6A -Tdotbelow;1E6C -Tecyrillic;0422 -Tedescendercyrillic;04AC -Tenroman;2169 -Tetsecyrillic;04B4 -Theta;0398 -Thook;01AC -Thorn;00DE -Thornsmall;F7FE -Threeroman;2162 -Tildesmall;F6FE -Tiwnarmenian;054F -Tlinebelow;1E6E -Tmonospace;FF34 -Toarmenian;0539 -Tonefive;01BC -Tonesix;0184 -Tonetwo;01A7 -Tretroflexhook;01AE -Tsecyrillic;0426 -Tshecyrillic;040B -Tsmall;F774 -Twelveroman;216B -Tworoman;2161 -U;0055 -Uacute;00DA -Uacutesmall;F7FA -Ubreve;016C -Ucaron;01D3 -Ucircle;24CA -Ucircumflex;00DB -Ucircumflexbelow;1E76 -Ucircumflexsmall;F7FB -Ucyrillic;0423 -Udblacute;0170 -Udblgrave;0214 -Udieresis;00DC -Udieresisacute;01D7 -Udieresisbelow;1E72 -Udieresiscaron;01D9 -Udieresiscyrillic;04F0 -Udieresisgrave;01DB -Udieresismacron;01D5 -Udieresissmall;F7FC -Udotbelow;1EE4 -Ugrave;00D9 -Ugravesmall;F7F9 -Uhookabove;1EE6 -Uhorn;01AF -Uhornacute;1EE8 -Uhorndotbelow;1EF0 -Uhorngrave;1EEA -Uhornhookabove;1EEC -Uhorntilde;1EEE -Uhungarumlaut;0170 -Uhungarumlautcyrillic;04F2 -Uinvertedbreve;0216 -Ukcyrillic;0478 -Umacron;016A -Umacroncyrillic;04EE -Umacrondieresis;1E7A -Umonospace;FF35 -Uogonek;0172 -Upsilon;03A5 -Upsilon1;03D2 -Upsilonacutehooksymbolgreek;03D3 -Upsilonafrican;01B1 -Upsilondieresis;03AB -Upsilondieresishooksymbolgreek;03D4 -Upsilonhooksymbol;03D2 -Upsilontonos;038E -Uring;016E -Ushortcyrillic;040E -Usmall;F775 -Ustraightcyrillic;04AE -Ustraightstrokecyrillic;04B0 -Utilde;0168 -Utildeacute;1E78 -Utildebelow;1E74 -V;0056 -Vcircle;24CB -Vdotbelow;1E7E -Vecyrillic;0412 -Vewarmenian;054E -Vhook;01B2 -Vmonospace;FF36 -Voarmenian;0548 -Vsmall;F776 -Vtilde;1E7C -W;0057 -Wacute;1E82 -Wcircle;24CC -Wcircumflex;0174 -Wdieresis;1E84 -Wdotaccent;1E86 -Wdotbelow;1E88 -Wgrave;1E80 -Wmonospace;FF37 -Wsmall;F777 -X;0058 -Xcircle;24CD -Xdieresis;1E8C -Xdotaccent;1E8A -Xeharmenian;053D -Xi;039E -Xmonospace;FF38 -Xsmall;F778 -Y;0059 -Yacute;00DD -Yacutesmall;F7FD -Yatcyrillic;0462 -Ycircle;24CE -Ycircumflex;0176 -Ydieresis;0178 -Ydieresissmall;F7FF -Ydotaccent;1E8E -Ydotbelow;1EF4 -Yericyrillic;042B -Yerudieresiscyrillic;04F8 -Ygrave;1EF2 -Yhook;01B3 -Yhookabove;1EF6 -Yiarmenian;0545 -Yicyrillic;0407 -Yiwnarmenian;0552 -Ymonospace;FF39 -Ysmall;F779 -Ytilde;1EF8 -Yusbigcyrillic;046A -Yusbigiotifiedcyrillic;046C -Yuslittlecyrillic;0466 -Yuslittleiotifiedcyrillic;0468 -Z;005A -Zaarmenian;0536 -Zacute;0179 -Zcaron;017D -Zcaronsmall;F6FF -Zcircle;24CF -Zcircumflex;1E90 -Zdot;017B -Zdotaccent;017B -Zdotbelow;1E92 -Zecyrillic;0417 -Zedescendercyrillic;0498 -Zedieresiscyrillic;04DE -Zeta;0396 -Zhearmenian;053A -Zhebrevecyrillic;04C1 -Zhecyrillic;0416 -Zhedescendercyrillic;0496 -Zhedieresiscyrillic;04DC -Zlinebelow;1E94 -Zmonospace;FF3A -Zsmall;F77A -Zstroke;01B5 -a;0061 -aabengali;0986 -aacute;00E1 -aadeva;0906 -aagujarati;0A86 -aagurmukhi;0A06 -aamatragurmukhi;0A3E -aarusquare;3303 -aavowelsignbengali;09BE -aavowelsigndeva;093E -aavowelsigngujarati;0ABE -abbreviationmarkarmenian;055F -abbreviationsigndeva;0970 -abengali;0985 -abopomofo;311A -abreve;0103 -abreveacute;1EAF -abrevecyrillic;04D1 -abrevedotbelow;1EB7 -abrevegrave;1EB1 -abrevehookabove;1EB3 -abrevetilde;1EB5 -acaron;01CE -acircle;24D0 -acircumflex;00E2 -acircumflexacute;1EA5 -acircumflexdotbelow;1EAD -acircumflexgrave;1EA7 -acircumflexhookabove;1EA9 -acircumflextilde;1EAB -acute;00B4 -acutebelowcmb;0317 -acutecmb;0301 -acutecomb;0301 -acutedeva;0954 -acutelowmod;02CF -acutetonecmb;0341 -acyrillic;0430 -adblgrave;0201 -addakgurmukhi;0A71 -adeva;0905 -adieresis;00E4 -adieresiscyrillic;04D3 -adieresismacron;01DF -adotbelow;1EA1 -adotmacron;01E1 -ae;00E6 -aeacute;01FD -aekorean;3150 -aemacron;01E3 -afii00208;2015 -afii08941;20A4 -afii10017;0410 -afii10018;0411 -afii10019;0412 -afii10020;0413 -afii10021;0414 -afii10022;0415 -afii10023;0401 -afii10024;0416 -afii10025;0417 -afii10026;0418 -afii10027;0419 -afii10028;041A -afii10029;041B -afii10030;041C -afii10031;041D -afii10032;041E -afii10033;041F -afii10034;0420 -afii10035;0421 -afii10036;0422 -afii10037;0423 -afii10038;0424 -afii10039;0425 -afii10040;0426 -afii10041;0427 -afii10042;0428 -afii10043;0429 -afii10044;042A -afii10045;042B -afii10046;042C -afii10047;042D -afii10048;042E -afii10049;042F -afii10050;0490 -afii10051;0402 -afii10052;0403 -afii10053;0404 -afii10054;0405 -afii10055;0406 -afii10056;0407 -afii10057;0408 -afii10058;0409 -afii10059;040A -afii10060;040B -afii10061;040C -afii10062;040E -afii10063;F6C4 -afii10064;F6C5 -afii10065;0430 -afii10066;0431 -afii10067;0432 -afii10068;0433 -afii10069;0434 -afii10070;0435 -afii10071;0451 -afii10072;0436 -afii10073;0437 -afii10074;0438 -afii10075;0439 -afii10076;043A -afii10077;043B -afii10078;043C -afii10079;043D -afii10080;043E -afii10081;043F -afii10082;0440 -afii10083;0441 -afii10084;0442 -afii10085;0443 -afii10086;0444 -afii10087;0445 -afii10088;0446 -afii10089;0447 -afii10090;0448 -afii10091;0449 -afii10092;044A -afii10093;044B -afii10094;044C -afii10095;044D -afii10096;044E -afii10097;044F -afii10098;0491 -afii10099;0452 -afii10100;0453 -afii10101;0454 -afii10102;0455 -afii10103;0456 -afii10104;0457 -afii10105;0458 -afii10106;0459 -afii10107;045A -afii10108;045B -afii10109;045C -afii10110;045E -afii10145;040F -afii10146;0462 -afii10147;0472 -afii10148;0474 -afii10192;F6C6 -afii10193;045F -afii10194;0463 -afii10195;0473 -afii10196;0475 -afii10831;F6C7 -afii10832;F6C8 -afii10846;04D9 -afii299;200E -afii300;200F -afii301;200D -afii57381;066A -afii57388;060C -afii57392;0660 -afii57393;0661 -afii57394;0662 -afii57395;0663 -afii57396;0664 -afii57397;0665 -afii57398;0666 -afii57399;0667 -afii57400;0668 -afii57401;0669 -afii57403;061B -afii57407;061F -afii57409;0621 -afii57410;0622 -afii57411;0623 -afii57412;0624 -afii57413;0625 -afii57414;0626 -afii57415;0627 -afii57416;0628 -afii57417;0629 -afii57418;062A -afii57419;062B -afii57420;062C -afii57421;062D -afii57422;062E -afii57423;062F -afii57424;0630 -afii57425;0631 -afii57426;0632 -afii57427;0633 -afii57428;0634 -afii57429;0635 -afii57430;0636 -afii57431;0637 -afii57432;0638 -afii57433;0639 -afii57434;063A -afii57440;0640 -afii57441;0641 -afii57442;0642 -afii57443;0643 -afii57444;0644 -afii57445;0645 -afii57446;0646 -afii57448;0648 -afii57449;0649 -afii57450;064A -afii57451;064B -afii57452;064C -afii57453;064D -afii57454;064E -afii57455;064F -afii57456;0650 -afii57457;0651 -afii57458;0652 -afii57470;0647 -afii57505;06A4 -afii57506;067E -afii57507;0686 -afii57508;0698 -afii57509;06AF -afii57511;0679 -afii57512;0688 -afii57513;0691 -afii57514;06BA -afii57519;06D2 -afii57534;06D5 -afii57636;20AA -afii57645;05BE -afii57658;05C3 -afii57664;05D0 -afii57665;05D1 -afii57666;05D2 -afii57667;05D3 -afii57668;05D4 -afii57669;05D5 -afii57670;05D6 -afii57671;05D7 -afii57672;05D8 -afii57673;05D9 -afii57674;05DA -afii57675;05DB -afii57676;05DC -afii57677;05DD -afii57678;05DE -afii57679;05DF -afii57680;05E0 -afii57681;05E1 -afii57682;05E2 -afii57683;05E3 -afii57684;05E4 -afii57685;05E5 -afii57686;05E6 -afii57687;05E7 -afii57688;05E8 -afii57689;05E9 -afii57690;05EA -afii57694;FB2A -afii57695;FB2B -afii57700;FB4B -afii57705;FB1F -afii57716;05F0 -afii57717;05F1 -afii57718;05F2 -afii57723;FB35 -afii57793;05B4 -afii57794;05B5 -afii57795;05B6 -afii57796;05BB -afii57797;05B8 -afii57798;05B7 -afii57799;05B0 -afii57800;05B2 -afii57801;05B1 -afii57802;05B3 -afii57803;05C2 -afii57804;05C1 -afii57806;05B9 -afii57807;05BC -afii57839;05BD -afii57841;05BF -afii57842;05C0 -afii57929;02BC -afii61248;2105 -afii61289;2113 -afii61352;2116 -afii61573;202C -afii61574;202D -afii61575;202E -afii61664;200C -afii63167;066D -afii64937;02BD -agrave;00E0 -agujarati;0A85 -agurmukhi;0A05 -ahiragana;3042 -ahookabove;1EA3 -aibengali;0990 -aibopomofo;311E -aideva;0910 -aiecyrillic;04D5 -aigujarati;0A90 -aigurmukhi;0A10 -aimatragurmukhi;0A48 -ainarabic;0639 -ainfinalarabic;FECA -aininitialarabic;FECB -ainmedialarabic;FECC -ainvertedbreve;0203 -aivowelsignbengali;09C8 -aivowelsigndeva;0948 -aivowelsigngujarati;0AC8 -akatakana;30A2 -akatakanahalfwidth;FF71 -akorean;314F -alef;05D0 -alefarabic;0627 -alefdageshhebrew;FB30 -aleffinalarabic;FE8E -alefhamzaabovearabic;0623 -alefhamzaabovefinalarabic;FE84 -alefhamzabelowarabic;0625 -alefhamzabelowfinalarabic;FE88 -alefhebrew;05D0 -aleflamedhebrew;FB4F -alefmaddaabovearabic;0622 -alefmaddaabovefinalarabic;FE82 -alefmaksuraarabic;0649 -alefmaksurafinalarabic;FEF0 -alefmaksurainitialarabic;FEF3 -alefmaksuramedialarabic;FEF4 -alefpatahhebrew;FB2E -alefqamatshebrew;FB2F -aleph;2135 -allequal;224C -alpha;03B1 -alphatonos;03AC -amacron;0101 -amonospace;FF41 -ampersand;0026 -ampersandmonospace;FF06 -ampersandsmall;F726 -amsquare;33C2 -anbopomofo;3122 -angbopomofo;3124 -angkhankhuthai;0E5A -angle;2220 -anglebracketleft;3008 -anglebracketleftvertical;FE3F -anglebracketright;3009 -anglebracketrightvertical;FE40 -angleleft;2329 -angleright;232A -angstrom;212B -anoteleia;0387 -anudattadeva;0952 -anusvarabengali;0982 -anusvaradeva;0902 -anusvaragujarati;0A82 -aogonek;0105 -apaatosquare;3300 -aparen;249C -apostrophearmenian;055A -apostrophemod;02BC -apple;F8FF -approaches;2250 -approxequal;2248 -approxequalorimage;2252 -approximatelyequal;2245 -araeaekorean;318E -araeakorean;318D -arc;2312 -arighthalfring;1E9A -aring;00E5 -aringacute;01FB -aringbelow;1E01 -arrowboth;2194 -arrowdashdown;21E3 -arrowdashleft;21E0 -arrowdashright;21E2 -arrowdashup;21E1 -arrowdblboth;21D4 -arrowdbldown;21D3 -arrowdblleft;21D0 -arrowdblright;21D2 -arrowdblup;21D1 -arrowdown;2193 -arrowdownleft;2199 -arrowdownright;2198 -arrowdownwhite;21E9 -arrowheaddownmod;02C5 -arrowheadleftmod;02C2 -arrowheadrightmod;02C3 -arrowheadupmod;02C4 -arrowhorizex;F8E7 -arrowleft;2190 -arrowleftdbl;21D0 -arrowleftdblstroke;21CD -arrowleftoverright;21C6 -arrowleftwhite;21E6 -arrowright;2192 -arrowrightdblstroke;21CF -arrowrightheavy;279E -arrowrightoverleft;21C4 -arrowrightwhite;21E8 -arrowtableft;21E4 -arrowtabright;21E5 -arrowup;2191 -arrowupdn;2195 -arrowupdnbse;21A8 -arrowupdownbase;21A8 -arrowupleft;2196 -arrowupleftofdown;21C5 -arrowupright;2197 -arrowupwhite;21E7 -arrowvertex;F8E6 -asciicircum;005E -asciicircummonospace;FF3E -asciitilde;007E -asciitildemonospace;FF5E -ascript;0251 -ascriptturned;0252 -asmallhiragana;3041 -asmallkatakana;30A1 -asmallkatakanahalfwidth;FF67 -asterisk;002A -asteriskaltonearabic;066D -asteriskarabic;066D -asteriskmath;2217 -asteriskmonospace;FF0A -asterisksmall;FE61 -asterism;2042 -asuperior;F6E9 -asymptoticallyequal;2243 -at;0040 -atilde;00E3 -atmonospace;FF20 -atsmall;FE6B -aturned;0250 -aubengali;0994 -aubopomofo;3120 -audeva;0914 -augujarati;0A94 -augurmukhi;0A14 -aulengthmarkbengali;09D7 -aumatragurmukhi;0A4C -auvowelsignbengali;09CC -auvowelsigndeva;094C -auvowelsigngujarati;0ACC -avagrahadeva;093D -aybarmenian;0561 -ayin;05E2 -ayinaltonehebrew;FB20 -ayinhebrew;05E2 -b;0062 -babengali;09AC -backslash;005C -backslashmonospace;FF3C -badeva;092C -bagujarati;0AAC -bagurmukhi;0A2C -bahiragana;3070 -bahtthai;0E3F -bakatakana;30D0 -bar;007C -barmonospace;FF5C -bbopomofo;3105 -bcircle;24D1 -bdotaccent;1E03 -bdotbelow;1E05 -beamedsixteenthnotes;266C -because;2235 -becyrillic;0431 -beharabic;0628 -behfinalarabic;FE90 -behinitialarabic;FE91 -behiragana;3079 -behmedialarabic;FE92 -behmeeminitialarabic;FC9F -behmeemisolatedarabic;FC08 -behnoonfinalarabic;FC6D -bekatakana;30D9 -benarmenian;0562 -bet;05D1 -beta;03B2 -betasymbolgreek;03D0 -betdagesh;FB31 -betdageshhebrew;FB31 -bethebrew;05D1 -betrafehebrew;FB4C -bhabengali;09AD -bhadeva;092D -bhagujarati;0AAD -bhagurmukhi;0A2D -bhook;0253 -bihiragana;3073 -bikatakana;30D3 -bilabialclick;0298 -bindigurmukhi;0A02 -birusquare;3331 -blackcircle;25CF -blackdiamond;25C6 -blackdownpointingtriangle;25BC -blackleftpointingpointer;25C4 -blackleftpointingtriangle;25C0 -blacklenticularbracketleft;3010 -blacklenticularbracketleftvertical;FE3B -blacklenticularbracketright;3011 -blacklenticularbracketrightvertical;FE3C -blacklowerlefttriangle;25E3 -blacklowerrighttriangle;25E2 -blackrectangle;25AC -blackrightpointingpointer;25BA -blackrightpointingtriangle;25B6 -blacksmallsquare;25AA -blacksmilingface;263B -blacksquare;25A0 -blackstar;2605 -blackupperlefttriangle;25E4 -blackupperrighttriangle;25E5 -blackuppointingsmalltriangle;25B4 -blackuppointingtriangle;25B2 -blank;2423 -blinebelow;1E07 -block;2588 -bmonospace;FF42 -bobaimaithai;0E1A -bohiragana;307C -bokatakana;30DC -bparen;249D -bqsquare;33C3 -braceex;F8F4 -braceleft;007B -braceleftbt;F8F3 -braceleftmid;F8F2 -braceleftmonospace;FF5B -braceleftsmall;FE5B -bracelefttp;F8F1 -braceleftvertical;FE37 -braceright;007D -bracerightbt;F8FE -bracerightmid;F8FD -bracerightmonospace;FF5D -bracerightsmall;FE5C -bracerighttp;F8FC -bracerightvertical;FE38 -bracketleft;005B -bracketleftbt;F8F0 -bracketleftex;F8EF -bracketleftmonospace;FF3B -bracketlefttp;F8EE -bracketright;005D -bracketrightbt;F8FB -bracketrightex;F8FA -bracketrightmonospace;FF3D -bracketrighttp;F8F9 -breve;02D8 -brevebelowcmb;032E -brevecmb;0306 -breveinvertedbelowcmb;032F -breveinvertedcmb;0311 -breveinverteddoublecmb;0361 -bridgebelowcmb;032A -bridgeinvertedbelowcmb;033A -brokenbar;00A6 -bstroke;0180 -bsuperior;F6EA -btopbar;0183 -buhiragana;3076 -bukatakana;30D6 -bullet;2022 -bulletinverse;25D8 -bulletoperator;2219 -bullseye;25CE -c;0063 -caarmenian;056E -cabengali;099A -cacute;0107 -cadeva;091A -cagujarati;0A9A -cagurmukhi;0A1A -calsquare;3388 -candrabindubengali;0981 -candrabinducmb;0310 -candrabindudeva;0901 -candrabindugujarati;0A81 -capslock;21EA -careof;2105 -caron;02C7 -caronbelowcmb;032C -caroncmb;030C -carriagereturn;21B5 -cbopomofo;3118 -ccaron;010D -ccedilla;00E7 -ccedillaacute;1E09 -ccircle;24D2 -ccircumflex;0109 -ccurl;0255 -cdot;010B -cdotaccent;010B -cdsquare;33C5 -cedilla;00B8 -cedillacmb;0327 -cent;00A2 -centigrade;2103 -centinferior;F6DF -centmonospace;FFE0 -centoldstyle;F7A2 -centsuperior;F6E0 -chaarmenian;0579 -chabengali;099B -chadeva;091B -chagujarati;0A9B -chagurmukhi;0A1B -chbopomofo;3114 -cheabkhasiancyrillic;04BD -checkmark;2713 -checyrillic;0447 -chedescenderabkhasiancyrillic;04BF -chedescendercyrillic;04B7 -chedieresiscyrillic;04F5 -cheharmenian;0573 -chekhakassiancyrillic;04CC -cheverticalstrokecyrillic;04B9 -chi;03C7 -chieuchacirclekorean;3277 -chieuchaparenkorean;3217 -chieuchcirclekorean;3269 -chieuchkorean;314A -chieuchparenkorean;3209 -chochangthai;0E0A -chochanthai;0E08 -chochingthai;0E09 -chochoethai;0E0C -chook;0188 -cieucacirclekorean;3276 -cieucaparenkorean;3216 -cieuccirclekorean;3268 -cieuckorean;3148 -cieucparenkorean;3208 -cieucuparenkorean;321C -circle;25CB -circlemultiply;2297 -circleot;2299 -circleplus;2295 -circlepostalmark;3036 -circlewithlefthalfblack;25D0 -circlewithrighthalfblack;25D1 -circumflex;02C6 -circumflexbelowcmb;032D -circumflexcmb;0302 -clear;2327 -clickalveolar;01C2 -clickdental;01C0 -clicklateral;01C1 -clickretroflex;01C3 -club;2663 -clubsuitblack;2663 -clubsuitwhite;2667 -cmcubedsquare;33A4 -cmonospace;FF43 -cmsquaredsquare;33A0 -coarmenian;0581 -colon;003A -colonmonetary;20A1 -colonmonospace;FF1A -colonsign;20A1 -colonsmall;FE55 -colontriangularhalfmod;02D1 -colontriangularmod;02D0 -comma;002C -commaabovecmb;0313 -commaaboverightcmb;0315 -commaaccent;F6C3 -commaarabic;060C -commaarmenian;055D -commainferior;F6E1 -commamonospace;FF0C -commareversedabovecmb;0314 -commareversedmod;02BD -commasmall;FE50 -commasuperior;F6E2 -commaturnedabovecmb;0312 -commaturnedmod;02BB -compass;263C -congruent;2245 -contourintegral;222E -control;2303 -controlACK;0006 -controlBEL;0007 -controlBS;0008 -controlCAN;0018 -controlCR;000D -controlDC1;0011 -controlDC2;0012 -controlDC3;0013 -controlDC4;0014 -controlDEL;007F -controlDLE;0010 -controlEM;0019 -controlENQ;0005 -controlEOT;0004 -controlESC;001B -controlETB;0017 -controlETX;0003 -controlFF;000C -controlFS;001C -controlGS;001D -controlHT;0009 -controlLF;000A -controlNAK;0015 -controlRS;001E -controlSI;000F -controlSO;000E -controlSOT;0002 -controlSTX;0001 -controlSUB;001A -controlSYN;0016 -controlUS;001F -controlVT;000B -copyright;00A9 -copyrightsans;F8E9 -copyrightserif;F6D9 -cornerbracketleft;300C -cornerbracketlefthalfwidth;FF62 -cornerbracketleftvertical;FE41 -cornerbracketright;300D -cornerbracketrighthalfwidth;FF63 -cornerbracketrightvertical;FE42 -corporationsquare;337F -cosquare;33C7 -coverkgsquare;33C6 -cparen;249E -cruzeiro;20A2 -cstretched;0297 -curlyand;22CF -curlyor;22CE -currency;00A4 -cyrBreve;F6D1 -cyrFlex;F6D2 -cyrbreve;F6D4 -cyrflex;F6D5 -d;0064 -daarmenian;0564 -dabengali;09A6 -dadarabic;0636 -dadeva;0926 -dadfinalarabic;FEBE -dadinitialarabic;FEBF -dadmedialarabic;FEC0 -dagesh;05BC -dageshhebrew;05BC -dagger;2020 -daggerdbl;2021 -dagujarati;0AA6 -dagurmukhi;0A26 -dahiragana;3060 -dakatakana;30C0 -dalarabic;062F -dalet;05D3 -daletdagesh;FB33 -daletdageshhebrew;FB33 -dalethatafpatah;05D3 05B2 -dalethatafpatahhebrew;05D3 05B2 -dalethatafsegol;05D3 05B1 -dalethatafsegolhebrew;05D3 05B1 -dalethebrew;05D3 -dalethiriq;05D3 05B4 -dalethiriqhebrew;05D3 05B4 -daletholam;05D3 05B9 -daletholamhebrew;05D3 05B9 -daletpatah;05D3 05B7 -daletpatahhebrew;05D3 05B7 -daletqamats;05D3 05B8 -daletqamatshebrew;05D3 05B8 -daletqubuts;05D3 05BB -daletqubutshebrew;05D3 05BB -daletsegol;05D3 05B6 -daletsegolhebrew;05D3 05B6 -daletsheva;05D3 05B0 -daletshevahebrew;05D3 05B0 -dalettsere;05D3 05B5 -dalettserehebrew;05D3 05B5 -dalfinalarabic;FEAA -dammaarabic;064F -dammalowarabic;064F -dammatanaltonearabic;064C -dammatanarabic;064C -danda;0964 -dargahebrew;05A7 -dargalefthebrew;05A7 -dasiapneumatacyrilliccmb;0485 -dblGrave;F6D3 -dblanglebracketleft;300A -dblanglebracketleftvertical;FE3D -dblanglebracketright;300B -dblanglebracketrightvertical;FE3E -dblarchinvertedbelowcmb;032B -dblarrowleft;21D4 -dblarrowright;21D2 -dbldanda;0965 -dblgrave;F6D6 -dblgravecmb;030F -dblintegral;222C -dbllowline;2017 -dbllowlinecmb;0333 -dbloverlinecmb;033F -dblprimemod;02BA -dblverticalbar;2016 -dblverticallineabovecmb;030E -dbopomofo;3109 -dbsquare;33C8 -dcaron;010F -dcedilla;1E11 -dcircle;24D3 -dcircumflexbelow;1E13 -dcroat;0111 -ddabengali;09A1 -ddadeva;0921 -ddagujarati;0AA1 -ddagurmukhi;0A21 -ddalarabic;0688 -ddalfinalarabic;FB89 -dddhadeva;095C -ddhabengali;09A2 -ddhadeva;0922 -ddhagujarati;0AA2 -ddhagurmukhi;0A22 -ddotaccent;1E0B -ddotbelow;1E0D -decimalseparatorarabic;066B -decimalseparatorpersian;066B -decyrillic;0434 -degree;00B0 -dehihebrew;05AD -dehiragana;3067 -deicoptic;03EF -dekatakana;30C7 -deleteleft;232B -deleteright;2326 -delta;03B4 -deltaturned;018D -denominatorminusonenumeratorbengali;09F8 -dezh;02A4 -dhabengali;09A7 -dhadeva;0927 -dhagujarati;0AA7 -dhagurmukhi;0A27 -dhook;0257 -dialytikatonos;0385 -dialytikatonoscmb;0344 -diamond;2666 -diamondsuitwhite;2662 -dieresis;00A8 -dieresisacute;F6D7 -dieresisbelowcmb;0324 -dieresiscmb;0308 -dieresisgrave;F6D8 -dieresistonos;0385 -dihiragana;3062 -dikatakana;30C2 -dittomark;3003 -divide;00F7 -divides;2223 -divisionslash;2215 -djecyrillic;0452 -dkshade;2593 -dlinebelow;1E0F -dlsquare;3397 -dmacron;0111 -dmonospace;FF44 -dnblock;2584 -dochadathai;0E0E -dodekthai;0E14 -dohiragana;3069 -dokatakana;30C9 -dollar;0024 -dollarinferior;F6E3 -dollarmonospace;FF04 -dollaroldstyle;F724 -dollarsmall;FE69 -dollarsuperior;F6E4 -dong;20AB -dorusquare;3326 -dotaccent;02D9 -dotaccentcmb;0307 -dotbelowcmb;0323 -dotbelowcomb;0323 -dotkatakana;30FB -dotlessi;0131 -dotlessj;F6BE -dotlessjstrokehook;0284 -dotmath;22C5 -dottedcircle;25CC -doubleyodpatah;FB1F -doubleyodpatahhebrew;FB1F -downtackbelowcmb;031E -downtackmod;02D5 -dparen;249F -dsuperior;F6EB -dtail;0256 -dtopbar;018C -duhiragana;3065 -dukatakana;30C5 -dz;01F3 -dzaltone;02A3 -dzcaron;01C6 -dzcurl;02A5 -dzeabkhasiancyrillic;04E1 -dzecyrillic;0455 -dzhecyrillic;045F -e;0065 -eacute;00E9 -earth;2641 -ebengali;098F -ebopomofo;311C -ebreve;0115 -ecandradeva;090D -ecandragujarati;0A8D -ecandravowelsigndeva;0945 -ecandravowelsigngujarati;0AC5 -ecaron;011B -ecedillabreve;1E1D -echarmenian;0565 -echyiwnarmenian;0587 -ecircle;24D4 -ecircumflex;00EA -ecircumflexacute;1EBF -ecircumflexbelow;1E19 -ecircumflexdotbelow;1EC7 -ecircumflexgrave;1EC1 -ecircumflexhookabove;1EC3 -ecircumflextilde;1EC5 -ecyrillic;0454 -edblgrave;0205 -edeva;090F -edieresis;00EB -edot;0117 -edotaccent;0117 -edotbelow;1EB9 -eegurmukhi;0A0F -eematragurmukhi;0A47 -efcyrillic;0444 -egrave;00E8 -egujarati;0A8F -eharmenian;0567 -ehbopomofo;311D -ehiragana;3048 -ehookabove;1EBB -eibopomofo;311F -eight;0038 -eightarabic;0668 -eightbengali;09EE -eightcircle;2467 -eightcircleinversesansserif;2791 -eightdeva;096E -eighteencircle;2471 -eighteenparen;2485 -eighteenperiod;2499 -eightgujarati;0AEE -eightgurmukhi;0A6E -eighthackarabic;0668 -eighthangzhou;3028 -eighthnotebeamed;266B -eightideographicparen;3227 -eightinferior;2088 -eightmonospace;FF18 -eightoldstyle;F738 -eightparen;247B -eightperiod;248F -eightpersian;06F8 -eightroman;2177 -eightsuperior;2078 -eightthai;0E58 -einvertedbreve;0207 -eiotifiedcyrillic;0465 -ekatakana;30A8 -ekatakanahalfwidth;FF74 -ekonkargurmukhi;0A74 -ekorean;3154 -elcyrillic;043B -element;2208 -elevencircle;246A -elevenparen;247E -elevenperiod;2492 -elevenroman;217A -ellipsis;2026 -ellipsisvertical;22EE -emacron;0113 -emacronacute;1E17 -emacrongrave;1E15 -emcyrillic;043C -emdash;2014 -emdashvertical;FE31 -emonospace;FF45 -emphasismarkarmenian;055B -emptyset;2205 -enbopomofo;3123 -encyrillic;043D -endash;2013 -endashvertical;FE32 -endescendercyrillic;04A3 -eng;014B -engbopomofo;3125 -enghecyrillic;04A5 -enhookcyrillic;04C8 -enspace;2002 -eogonek;0119 -eokorean;3153 -eopen;025B -eopenclosed;029A -eopenreversed;025C -eopenreversedclosed;025E -eopenreversedhook;025D -eparen;24A0 -epsilon;03B5 -epsilontonos;03AD -equal;003D -equalmonospace;FF1D -equalsmall;FE66 -equalsuperior;207C -equivalence;2261 -erbopomofo;3126 -ercyrillic;0440 -ereversed;0258 -ereversedcyrillic;044D -escyrillic;0441 -esdescendercyrillic;04AB -esh;0283 -eshcurl;0286 -eshortdeva;090E -eshortvowelsigndeva;0946 -eshreversedloop;01AA -eshsquatreversed;0285 -esmallhiragana;3047 -esmallkatakana;30A7 -esmallkatakanahalfwidth;FF6A -estimated;212E -esuperior;F6EC -eta;03B7 -etarmenian;0568 -etatonos;03AE -eth;00F0 -etilde;1EBD -etildebelow;1E1B -etnahtafoukhhebrew;0591 -etnahtafoukhlefthebrew;0591 -etnahtahebrew;0591 -etnahtalefthebrew;0591 -eturned;01DD -eukorean;3161 -euro;20AC -evowelsignbengali;09C7 -evowelsigndeva;0947 -evowelsigngujarati;0AC7 -exclam;0021 -exclamarmenian;055C -exclamdbl;203C -exclamdown;00A1 -exclamdownsmall;F7A1 -exclammonospace;FF01 -exclamsmall;F721 -existential;2203 -ezh;0292 -ezhcaron;01EF -ezhcurl;0293 -ezhreversed;01B9 -ezhtail;01BA -f;0066 -fadeva;095E -fagurmukhi;0A5E -fahrenheit;2109 -fathaarabic;064E -fathalowarabic;064E -fathatanarabic;064B -fbopomofo;3108 -fcircle;24D5 -fdotaccent;1E1F -feharabic;0641 -feharmenian;0586 -fehfinalarabic;FED2 -fehinitialarabic;FED3 -fehmedialarabic;FED4 -feicoptic;03E5 -female;2640 -ff;FB00 -ffi;FB03 -ffl;FB04 -fi;FB01 -fifteencircle;246E -fifteenparen;2482 -fifteenperiod;2496 -figuredash;2012 -filledbox;25A0 -filledrect;25AC -finalkaf;05DA -finalkafdagesh;FB3A -finalkafdageshhebrew;FB3A -finalkafhebrew;05DA -finalkafqamats;05DA 05B8 -finalkafqamatshebrew;05DA 05B8 -finalkafsheva;05DA 05B0 -finalkafshevahebrew;05DA 05B0 -finalmem;05DD -finalmemhebrew;05DD -finalnun;05DF -finalnunhebrew;05DF -finalpe;05E3 -finalpehebrew;05E3 -finaltsadi;05E5 -finaltsadihebrew;05E5 -firsttonechinese;02C9 -fisheye;25C9 -fitacyrillic;0473 -five;0035 -fivearabic;0665 -fivebengali;09EB -fivecircle;2464 -fivecircleinversesansserif;278E -fivedeva;096B -fiveeighths;215D -fivegujarati;0AEB -fivegurmukhi;0A6B -fivehackarabic;0665 -fivehangzhou;3025 -fiveideographicparen;3224 -fiveinferior;2085 -fivemonospace;FF15 -fiveoldstyle;F735 -fiveparen;2478 -fiveperiod;248C -fivepersian;06F5 -fiveroman;2174 -fivesuperior;2075 -fivethai;0E55 -fl;FB02 -florin;0192 -fmonospace;FF46 -fmsquare;3399 -fofanthai;0E1F -fofathai;0E1D -fongmanthai;0E4F -forall;2200 -four;0034 -fourarabic;0664 -fourbengali;09EA -fourcircle;2463 -fourcircleinversesansserif;278D -fourdeva;096A -fourgujarati;0AEA -fourgurmukhi;0A6A -fourhackarabic;0664 -fourhangzhou;3024 -fourideographicparen;3223 -fourinferior;2084 -fourmonospace;FF14 -fournumeratorbengali;09F7 -fouroldstyle;F734 -fourparen;2477 -fourperiod;248B -fourpersian;06F4 -fourroman;2173 -foursuperior;2074 -fourteencircle;246D -fourteenparen;2481 -fourteenperiod;2495 -fourthai;0E54 -fourthtonechinese;02CB -fparen;24A1 -fraction;2044 -franc;20A3 -g;0067 -gabengali;0997 -gacute;01F5 -gadeva;0917 -gafarabic;06AF -gaffinalarabic;FB93 -gafinitialarabic;FB94 -gafmedialarabic;FB95 -gagujarati;0A97 -gagurmukhi;0A17 -gahiragana;304C -gakatakana;30AC -gamma;03B3 -gammalatinsmall;0263 -gammasuperior;02E0 -gangiacoptic;03EB -gbopomofo;310D -gbreve;011F -gcaron;01E7 -gcedilla;0123 -gcircle;24D6 -gcircumflex;011D -gcommaaccent;0123 -gdot;0121 -gdotaccent;0121 -gecyrillic;0433 -gehiragana;3052 -gekatakana;30B2 -geometricallyequal;2251 -gereshaccenthebrew;059C -gereshhebrew;05F3 -gereshmuqdamhebrew;059D -germandbls;00DF -gershayimaccenthebrew;059E -gershayimhebrew;05F4 -getamark;3013 -ghabengali;0998 -ghadarmenian;0572 -ghadeva;0918 -ghagujarati;0A98 -ghagurmukhi;0A18 -ghainarabic;063A -ghainfinalarabic;FECE -ghaininitialarabic;FECF -ghainmedialarabic;FED0 -ghemiddlehookcyrillic;0495 -ghestrokecyrillic;0493 -gheupturncyrillic;0491 -ghhadeva;095A -ghhagurmukhi;0A5A -ghook;0260 -ghzsquare;3393 -gihiragana;304E -gikatakana;30AE -gimarmenian;0563 -gimel;05D2 -gimeldagesh;FB32 -gimeldageshhebrew;FB32 -gimelhebrew;05D2 -gjecyrillic;0453 -glottalinvertedstroke;01BE -glottalstop;0294 -glottalstopinverted;0296 -glottalstopmod;02C0 -glottalstopreversed;0295 -glottalstopreversedmod;02C1 -glottalstopreversedsuperior;02E4 -glottalstopstroke;02A1 -glottalstopstrokereversed;02A2 -gmacron;1E21 -gmonospace;FF47 -gohiragana;3054 -gokatakana;30B4 -gparen;24A2 -gpasquare;33AC -gradient;2207 -grave;0060 -gravebelowcmb;0316 -gravecmb;0300 -gravecomb;0300 -gravedeva;0953 -gravelowmod;02CE -gravemonospace;FF40 -gravetonecmb;0340 -greater;003E -greaterequal;2265 -greaterequalorless;22DB -greatermonospace;FF1E -greaterorequivalent;2273 -greaterorless;2277 -greateroverequal;2267 -greatersmall;FE65 -gscript;0261 -gstroke;01E5 -guhiragana;3050 -guillemotleft;00AB -guillemotright;00BB -guilsinglleft;2039 -guilsinglright;203A -gukatakana;30B0 -guramusquare;3318 -gysquare;33C9 -h;0068 -haabkhasiancyrillic;04A9 -haaltonearabic;06C1 -habengali;09B9 -hadescendercyrillic;04B3 -hadeva;0939 -hagujarati;0AB9 -hagurmukhi;0A39 -haharabic;062D -hahfinalarabic;FEA2 -hahinitialarabic;FEA3 -hahiragana;306F -hahmedialarabic;FEA4 -haitusquare;332A -hakatakana;30CF -hakatakanahalfwidth;FF8A -halantgurmukhi;0A4D -hamzaarabic;0621 -hamzadammaarabic;0621 064F -hamzadammatanarabic;0621 064C -hamzafathaarabic;0621 064E -hamzafathatanarabic;0621 064B -hamzalowarabic;0621 -hamzalowkasraarabic;0621 0650 -hamzalowkasratanarabic;0621 064D -hamzasukunarabic;0621 0652 -hangulfiller;3164 -hardsigncyrillic;044A -harpoonleftbarbup;21BC -harpoonrightbarbup;21C0 -hasquare;33CA -hatafpatah;05B2 -hatafpatah16;05B2 -hatafpatah23;05B2 -hatafpatah2f;05B2 -hatafpatahhebrew;05B2 -hatafpatahnarrowhebrew;05B2 -hatafpatahquarterhebrew;05B2 -hatafpatahwidehebrew;05B2 -hatafqamats;05B3 -hatafqamats1b;05B3 -hatafqamats28;05B3 -hatafqamats34;05B3 -hatafqamatshebrew;05B3 -hatafqamatsnarrowhebrew;05B3 -hatafqamatsquarterhebrew;05B3 -hatafqamatswidehebrew;05B3 -hatafsegol;05B1 -hatafsegol17;05B1 -hatafsegol24;05B1 -hatafsegol30;05B1 -hatafsegolhebrew;05B1 -hatafsegolnarrowhebrew;05B1 -hatafsegolquarterhebrew;05B1 -hatafsegolwidehebrew;05B1 -hbar;0127 -hbopomofo;310F -hbrevebelow;1E2B -hcedilla;1E29 -hcircle;24D7 -hcircumflex;0125 -hdieresis;1E27 -hdotaccent;1E23 -hdotbelow;1E25 -he;05D4 -heart;2665 -heartsuitblack;2665 -heartsuitwhite;2661 -hedagesh;FB34 -hedageshhebrew;FB34 -hehaltonearabic;06C1 -heharabic;0647 -hehebrew;05D4 -hehfinalaltonearabic;FBA7 -hehfinalalttwoarabic;FEEA -hehfinalarabic;FEEA -hehhamzaabovefinalarabic;FBA5 -hehhamzaaboveisolatedarabic;FBA4 -hehinitialaltonearabic;FBA8 -hehinitialarabic;FEEB -hehiragana;3078 -hehmedialaltonearabic;FBA9 -hehmedialarabic;FEEC -heiseierasquare;337B -hekatakana;30D8 -hekatakanahalfwidth;FF8D -hekutaarusquare;3336 -henghook;0267 -herutusquare;3339 -het;05D7 -hethebrew;05D7 -hhook;0266 -hhooksuperior;02B1 -hieuhacirclekorean;327B -hieuhaparenkorean;321B -hieuhcirclekorean;326D -hieuhkorean;314E -hieuhparenkorean;320D -hihiragana;3072 -hikatakana;30D2 -hikatakanahalfwidth;FF8B -hiriq;05B4 -hiriq14;05B4 -hiriq21;05B4 -hiriq2d;05B4 -hiriqhebrew;05B4 -hiriqnarrowhebrew;05B4 -hiriqquarterhebrew;05B4 -hiriqwidehebrew;05B4 -hlinebelow;1E96 -hmonospace;FF48 -hoarmenian;0570 -hohipthai;0E2B -hohiragana;307B -hokatakana;30DB -hokatakanahalfwidth;FF8E -holam;05B9 -holam19;05B9 -holam26;05B9 -holam32;05B9 -holamhebrew;05B9 -holamnarrowhebrew;05B9 -holamquarterhebrew;05B9 -holamwidehebrew;05B9 -honokhukthai;0E2E -hookabovecomb;0309 -hookcmb;0309 -hookpalatalizedbelowcmb;0321 -hookretroflexbelowcmb;0322 -hoonsquare;3342 -horicoptic;03E9 -horizontalbar;2015 -horncmb;031B -hotsprings;2668 -house;2302 -hparen;24A3 -hsuperior;02B0 -hturned;0265 -huhiragana;3075 -huiitosquare;3333 -hukatakana;30D5 -hukatakanahalfwidth;FF8C -hungarumlaut;02DD -hungarumlautcmb;030B -hv;0195 -hyphen;002D -hypheninferior;F6E5 -hyphenmonospace;FF0D -hyphensmall;FE63 -hyphensuperior;F6E6 -hyphentwo;2010 -i;0069 -iacute;00ED -iacyrillic;044F -ibengali;0987 -ibopomofo;3127 -ibreve;012D -icaron;01D0 -icircle;24D8 -icircumflex;00EE -icyrillic;0456 -idblgrave;0209 -ideographearthcircle;328F -ideographfirecircle;328B -ideographicallianceparen;323F -ideographiccallparen;323A -ideographiccentrecircle;32A5 -ideographicclose;3006 -ideographiccomma;3001 -ideographiccommaleft;FF64 -ideographiccongratulationparen;3237 -ideographiccorrectcircle;32A3 -ideographicearthparen;322F -ideographicenterpriseparen;323D -ideographicexcellentcircle;329D -ideographicfestivalparen;3240 -ideographicfinancialcircle;3296 -ideographicfinancialparen;3236 -ideographicfireparen;322B -ideographichaveparen;3232 -ideographichighcircle;32A4 -ideographiciterationmark;3005 -ideographiclaborcircle;3298 -ideographiclaborparen;3238 -ideographicleftcircle;32A7 -ideographiclowcircle;32A6 -ideographicmedicinecircle;32A9 -ideographicmetalparen;322E -ideographicmoonparen;322A -ideographicnameparen;3234 -ideographicperiod;3002 -ideographicprintcircle;329E -ideographicreachparen;3243 -ideographicrepresentparen;3239 -ideographicresourceparen;323E -ideographicrightcircle;32A8 -ideographicsecretcircle;3299 -ideographicselfparen;3242 -ideographicsocietyparen;3233 -ideographicspace;3000 -ideographicspecialparen;3235 -ideographicstockparen;3231 -ideographicstudyparen;323B -ideographicsunparen;3230 -ideographicsuperviseparen;323C -ideographicwaterparen;322C -ideographicwoodparen;322D -ideographiczero;3007 -ideographmetalcircle;328E -ideographmooncircle;328A -ideographnamecircle;3294 -ideographsuncircle;3290 -ideographwatercircle;328C -ideographwoodcircle;328D -ideva;0907 -idieresis;00EF -idieresisacute;1E2F -idieresiscyrillic;04E5 -idotbelow;1ECB -iebrevecyrillic;04D7 -iecyrillic;0435 -ieungacirclekorean;3275 -ieungaparenkorean;3215 -ieungcirclekorean;3267 -ieungkorean;3147 -ieungparenkorean;3207 -igrave;00EC -igujarati;0A87 -igurmukhi;0A07 -ihiragana;3044 -ihookabove;1EC9 -iibengali;0988 -iicyrillic;0438 -iideva;0908 -iigujarati;0A88 -iigurmukhi;0A08 -iimatragurmukhi;0A40 -iinvertedbreve;020B -iishortcyrillic;0439 -iivowelsignbengali;09C0 -iivowelsigndeva;0940 -iivowelsigngujarati;0AC0 -ij;0133 -ikatakana;30A4 -ikatakanahalfwidth;FF72 -ikorean;3163 -ilde;02DC -iluyhebrew;05AC -imacron;012B -imacroncyrillic;04E3 -imageorapproximatelyequal;2253 -imatragurmukhi;0A3F -imonospace;FF49 -increment;2206 -infinity;221E -iniarmenian;056B -integral;222B -integralbottom;2321 -integralbt;2321 -integralex;F8F5 -integraltop;2320 -integraltp;2320 -intersection;2229 -intisquare;3305 -invbullet;25D8 -invcircle;25D9 -invsmileface;263B -iocyrillic;0451 -iogonek;012F -iota;03B9 -iotadieresis;03CA -iotadieresistonos;0390 -iotalatin;0269 -iotatonos;03AF -iparen;24A4 -irigurmukhi;0A72 -ismallhiragana;3043 -ismallkatakana;30A3 -ismallkatakanahalfwidth;FF68 -issharbengali;09FA -istroke;0268 -isuperior;F6ED -iterationhiragana;309D -iterationkatakana;30FD -itilde;0129 -itildebelow;1E2D -iubopomofo;3129 -iucyrillic;044E -ivowelsignbengali;09BF -ivowelsigndeva;093F -ivowelsigngujarati;0ABF -izhitsacyrillic;0475 -izhitsadblgravecyrillic;0477 -j;006A -jaarmenian;0571 -jabengali;099C -jadeva;091C -jagujarati;0A9C -jagurmukhi;0A1C -jbopomofo;3110 -jcaron;01F0 -jcircle;24D9 -jcircumflex;0135 -jcrossedtail;029D -jdotlessstroke;025F -jecyrillic;0458 -jeemarabic;062C -jeemfinalarabic;FE9E -jeeminitialarabic;FE9F -jeemmedialarabic;FEA0 -jeharabic;0698 -jehfinalarabic;FB8B -jhabengali;099D -jhadeva;091D -jhagujarati;0A9D -jhagurmukhi;0A1D -jheharmenian;057B -jis;3004 -jmonospace;FF4A -jparen;24A5 -jsuperior;02B2 -k;006B -kabashkircyrillic;04A1 -kabengali;0995 -kacute;1E31 -kacyrillic;043A -kadescendercyrillic;049B -kadeva;0915 -kaf;05DB -kafarabic;0643 -kafdagesh;FB3B -kafdageshhebrew;FB3B -kaffinalarabic;FEDA -kafhebrew;05DB -kafinitialarabic;FEDB -kafmedialarabic;FEDC -kafrafehebrew;FB4D -kagujarati;0A95 -kagurmukhi;0A15 -kahiragana;304B -kahookcyrillic;04C4 -kakatakana;30AB -kakatakanahalfwidth;FF76 -kappa;03BA -kappasymbolgreek;03F0 -kapyeounmieumkorean;3171 -kapyeounphieuphkorean;3184 -kapyeounpieupkorean;3178 -kapyeounssangpieupkorean;3179 -karoriisquare;330D -kashidaautoarabic;0640 -kashidaautonosidebearingarabic;0640 -kasmallkatakana;30F5 -kasquare;3384 -kasraarabic;0650 -kasratanarabic;064D -kastrokecyrillic;049F -katahiraprolongmarkhalfwidth;FF70 -kaverticalstrokecyrillic;049D -kbopomofo;310E -kcalsquare;3389 -kcaron;01E9 -kcedilla;0137 -kcircle;24DA -kcommaaccent;0137 -kdotbelow;1E33 -keharmenian;0584 -kehiragana;3051 -kekatakana;30B1 -kekatakanahalfwidth;FF79 -kenarmenian;056F -kesmallkatakana;30F6 -kgreenlandic;0138 -khabengali;0996 -khacyrillic;0445 -khadeva;0916 -khagujarati;0A96 -khagurmukhi;0A16 -khaharabic;062E -khahfinalarabic;FEA6 -khahinitialarabic;FEA7 -khahmedialarabic;FEA8 -kheicoptic;03E7 -khhadeva;0959 -khhagurmukhi;0A59 -khieukhacirclekorean;3278 -khieukhaparenkorean;3218 -khieukhcirclekorean;326A -khieukhkorean;314B -khieukhparenkorean;320A -khokhaithai;0E02 -khokhonthai;0E05 -khokhuatthai;0E03 -khokhwaithai;0E04 -khomutthai;0E5B -khook;0199 -khorakhangthai;0E06 -khzsquare;3391 -kihiragana;304D -kikatakana;30AD -kikatakanahalfwidth;FF77 -kiroguramusquare;3315 -kiromeetorusquare;3316 -kirosquare;3314 -kiyeokacirclekorean;326E -kiyeokaparenkorean;320E -kiyeokcirclekorean;3260 -kiyeokkorean;3131 -kiyeokparenkorean;3200 -kiyeoksioskorean;3133 -kjecyrillic;045C -klinebelow;1E35 -klsquare;3398 -kmcubedsquare;33A6 -kmonospace;FF4B -kmsquaredsquare;33A2 -kohiragana;3053 -kohmsquare;33C0 -kokaithai;0E01 -kokatakana;30B3 -kokatakanahalfwidth;FF7A -kooposquare;331E -koppacyrillic;0481 -koreanstandardsymbol;327F -koroniscmb;0343 -kparen;24A6 -kpasquare;33AA -ksicyrillic;046F -ktsquare;33CF -kturned;029E -kuhiragana;304F -kukatakana;30AF -kukatakanahalfwidth;FF78 -kvsquare;33B8 -kwsquare;33BE -l;006C -labengali;09B2 -lacute;013A -ladeva;0932 -lagujarati;0AB2 -lagurmukhi;0A32 -lakkhangyaothai;0E45 -lamaleffinalarabic;FEFC -lamalefhamzaabovefinalarabic;FEF8 -lamalefhamzaaboveisolatedarabic;FEF7 -lamalefhamzabelowfinalarabic;FEFA -lamalefhamzabelowisolatedarabic;FEF9 -lamalefisolatedarabic;FEFB -lamalefmaddaabovefinalarabic;FEF6 -lamalefmaddaaboveisolatedarabic;FEF5 -lamarabic;0644 -lambda;03BB -lambdastroke;019B -lamed;05DC -lameddagesh;FB3C -lameddageshhebrew;FB3C -lamedhebrew;05DC -lamedholam;05DC 05B9 -lamedholamdagesh;05DC 05B9 05BC -lamedholamdageshhebrew;05DC 05B9 05BC -lamedholamhebrew;05DC 05B9 -lamfinalarabic;FEDE -lamhahinitialarabic;FCCA -laminitialarabic;FEDF -lamjeeminitialarabic;FCC9 -lamkhahinitialarabic;FCCB -lamlamhehisolatedarabic;FDF2 -lammedialarabic;FEE0 -lammeemhahinitialarabic;FD88 -lammeeminitialarabic;FCCC -lammeemjeeminitialarabic;FEDF FEE4 FEA0 -lammeemkhahinitialarabic;FEDF FEE4 FEA8 -largecircle;25EF -lbar;019A -lbelt;026C -lbopomofo;310C -lcaron;013E -lcedilla;013C -lcircle;24DB -lcircumflexbelow;1E3D -lcommaaccent;013C -ldot;0140 -ldotaccent;0140 -ldotbelow;1E37 -ldotbelowmacron;1E39 -leftangleabovecmb;031A -lefttackbelowcmb;0318 -less;003C -lessequal;2264 -lessequalorgreater;22DA -lessmonospace;FF1C -lessorequivalent;2272 -lessorgreater;2276 -lessoverequal;2266 -lesssmall;FE64 -lezh;026E -lfblock;258C -lhookretroflex;026D -lira;20A4 -liwnarmenian;056C -lj;01C9 -ljecyrillic;0459 -ll;F6C0 -lladeva;0933 -llagujarati;0AB3 -llinebelow;1E3B -llladeva;0934 -llvocalicbengali;09E1 -llvocalicdeva;0961 -llvocalicvowelsignbengali;09E3 -llvocalicvowelsigndeva;0963 -lmiddletilde;026B -lmonospace;FF4C -lmsquare;33D0 -lochulathai;0E2C -logicaland;2227 -logicalnot;00AC -logicalnotreversed;2310 -logicalor;2228 -lolingthai;0E25 -longs;017F -lowlinecenterline;FE4E -lowlinecmb;0332 -lowlinedashed;FE4D -lozenge;25CA -lparen;24A7 -lslash;0142 -lsquare;2113 -lsuperior;F6EE -ltshade;2591 -luthai;0E26 -lvocalicbengali;098C -lvocalicdeva;090C -lvocalicvowelsignbengali;09E2 -lvocalicvowelsigndeva;0962 -lxsquare;33D3 -m;006D -mabengali;09AE -macron;00AF -macronbelowcmb;0331 -macroncmb;0304 -macronlowmod;02CD -macronmonospace;FFE3 -macute;1E3F -madeva;092E -magujarati;0AAE -magurmukhi;0A2E -mahapakhhebrew;05A4 -mahapakhlefthebrew;05A4 -mahiragana;307E -maichattawalowleftthai;F895 -maichattawalowrightthai;F894 -maichattawathai;0E4B -maichattawaupperleftthai;F893 -maieklowleftthai;F88C -maieklowrightthai;F88B -maiekthai;0E48 -maiekupperleftthai;F88A -maihanakatleftthai;F884 -maihanakatthai;0E31 -maitaikhuleftthai;F889 -maitaikhuthai;0E47 -maitholowleftthai;F88F -maitholowrightthai;F88E -maithothai;0E49 -maithoupperleftthai;F88D -maitrilowleftthai;F892 -maitrilowrightthai;F891 -maitrithai;0E4A -maitriupperleftthai;F890 -maiyamokthai;0E46 -makatakana;30DE -makatakanahalfwidth;FF8F -male;2642 -mansyonsquare;3347 -maqafhebrew;05BE -mars;2642 -masoracirclehebrew;05AF -masquare;3383 -mbopomofo;3107 -mbsquare;33D4 -mcircle;24DC -mcubedsquare;33A5 -mdotaccent;1E41 -mdotbelow;1E43 -meemarabic;0645 -meemfinalarabic;FEE2 -meeminitialarabic;FEE3 -meemmedialarabic;FEE4 -meemmeeminitialarabic;FCD1 -meemmeemisolatedarabic;FC48 -meetorusquare;334D -mehiragana;3081 -meizierasquare;337E -mekatakana;30E1 -mekatakanahalfwidth;FF92 -mem;05DE -memdagesh;FB3E -memdageshhebrew;FB3E -memhebrew;05DE -menarmenian;0574 -merkhahebrew;05A5 -merkhakefulahebrew;05A6 -merkhakefulalefthebrew;05A6 -merkhalefthebrew;05A5 -mhook;0271 -mhzsquare;3392 -middledotkatakanahalfwidth;FF65 -middot;00B7 -mieumacirclekorean;3272 -mieumaparenkorean;3212 -mieumcirclekorean;3264 -mieumkorean;3141 -mieumpansioskorean;3170 -mieumparenkorean;3204 -mieumpieupkorean;316E -mieumsioskorean;316F -mihiragana;307F -mikatakana;30DF -mikatakanahalfwidth;FF90 -minus;2212 -minusbelowcmb;0320 -minuscircle;2296 -minusmod;02D7 -minusplus;2213 -minute;2032 -miribaarusquare;334A -mirisquare;3349 -mlonglegturned;0270 -mlsquare;3396 -mmcubedsquare;33A3 -mmonospace;FF4D -mmsquaredsquare;339F -mohiragana;3082 -mohmsquare;33C1 -mokatakana;30E2 -mokatakanahalfwidth;FF93 -molsquare;33D6 -momathai;0E21 -moverssquare;33A7 -moverssquaredsquare;33A8 -mparen;24A8 -mpasquare;33AB -mssquare;33B3 -msuperior;F6EF -mturned;026F -mu;00B5 -mu1;00B5 -muasquare;3382 -muchgreater;226B -muchless;226A -mufsquare;338C -mugreek;03BC -mugsquare;338D -muhiragana;3080 -mukatakana;30E0 -mukatakanahalfwidth;FF91 -mulsquare;3395 -multiply;00D7 -mumsquare;339B -munahhebrew;05A3 -munahlefthebrew;05A3 -musicalnote;266A -musicalnotedbl;266B -musicflatsign;266D -musicsharpsign;266F -mussquare;33B2 -muvsquare;33B6 -muwsquare;33BC -mvmegasquare;33B9 -mvsquare;33B7 -mwmegasquare;33BF -mwsquare;33BD -n;006E -nabengali;09A8 -nabla;2207 -nacute;0144 -nadeva;0928 -nagujarati;0AA8 -nagurmukhi;0A28 -nahiragana;306A -nakatakana;30CA -nakatakanahalfwidth;FF85 -napostrophe;0149 -nasquare;3381 -nbopomofo;310B -nbspace;00A0 -ncaron;0148 -ncedilla;0146 -ncircle;24DD -ncircumflexbelow;1E4B -ncommaaccent;0146 -ndotaccent;1E45 -ndotbelow;1E47 -nehiragana;306D -nekatakana;30CD -nekatakanahalfwidth;FF88 -newsheqelsign;20AA -nfsquare;338B -ngabengali;0999 -ngadeva;0919 -ngagujarati;0A99 -ngagurmukhi;0A19 -ngonguthai;0E07 -nhiragana;3093 -nhookleft;0272 -nhookretroflex;0273 -nieunacirclekorean;326F -nieunaparenkorean;320F -nieuncieuckorean;3135 -nieuncirclekorean;3261 -nieunhieuhkorean;3136 -nieunkorean;3134 -nieunpansioskorean;3168 -nieunparenkorean;3201 -nieunsioskorean;3167 -nieuntikeutkorean;3166 -nihiragana;306B -nikatakana;30CB -nikatakanahalfwidth;FF86 -nikhahitleftthai;F899 -nikhahitthai;0E4D -nine;0039 -ninearabic;0669 -ninebengali;09EF -ninecircle;2468 -ninecircleinversesansserif;2792 -ninedeva;096F -ninegujarati;0AEF -ninegurmukhi;0A6F -ninehackarabic;0669 -ninehangzhou;3029 -nineideographicparen;3228 -nineinferior;2089 -ninemonospace;FF19 -nineoldstyle;F739 -nineparen;247C -nineperiod;2490 -ninepersian;06F9 -nineroman;2178 -ninesuperior;2079 -nineteencircle;2472 -nineteenparen;2486 -nineteenperiod;249A -ninethai;0E59 -nj;01CC -njecyrillic;045A -nkatakana;30F3 -nkatakanahalfwidth;FF9D -nlegrightlong;019E -nlinebelow;1E49 -nmonospace;FF4E -nmsquare;339A -nnabengali;09A3 -nnadeva;0923 -nnagujarati;0AA3 -nnagurmukhi;0A23 -nnnadeva;0929 -nohiragana;306E -nokatakana;30CE -nokatakanahalfwidth;FF89 -nonbreakingspace;00A0 -nonenthai;0E13 -nonuthai;0E19 -noonarabic;0646 -noonfinalarabic;FEE6 -noonghunnaarabic;06BA -noonghunnafinalarabic;FB9F -noonhehinitialarabic;FEE7 FEEC -nooninitialarabic;FEE7 -noonjeeminitialarabic;FCD2 -noonjeemisolatedarabic;FC4B -noonmedialarabic;FEE8 -noonmeeminitialarabic;FCD5 -noonmeemisolatedarabic;FC4E -noonnoonfinalarabic;FC8D -notcontains;220C -notelement;2209 -notelementof;2209 -notequal;2260 -notgreater;226F -notgreaternorequal;2271 -notgreaternorless;2279 -notidentical;2262 -notless;226E -notlessnorequal;2270 -notparallel;2226 -notprecedes;2280 -notsubset;2284 -notsucceeds;2281 -notsuperset;2285 -nowarmenian;0576 -nparen;24A9 -nssquare;33B1 -nsuperior;207F -ntilde;00F1 -nu;03BD -nuhiragana;306C -nukatakana;30CC -nukatakanahalfwidth;FF87 -nuktabengali;09BC -nuktadeva;093C -nuktagujarati;0ABC -nuktagurmukhi;0A3C -numbersign;0023 -numbersignmonospace;FF03 -numbersignsmall;FE5F -numeralsigngreek;0374 -numeralsignlowergreek;0375 -numero;2116 -nun;05E0 -nundagesh;FB40 -nundageshhebrew;FB40 -nunhebrew;05E0 -nvsquare;33B5 -nwsquare;33BB -nyabengali;099E -nyadeva;091E -nyagujarati;0A9E -nyagurmukhi;0A1E -o;006F -oacute;00F3 -oangthai;0E2D -obarred;0275 -obarredcyrillic;04E9 -obarreddieresiscyrillic;04EB -obengali;0993 -obopomofo;311B -obreve;014F -ocandradeva;0911 -ocandragujarati;0A91 -ocandravowelsigndeva;0949 -ocandravowelsigngujarati;0AC9 -ocaron;01D2 -ocircle;24DE -ocircumflex;00F4 -ocircumflexacute;1ED1 -ocircumflexdotbelow;1ED9 -ocircumflexgrave;1ED3 -ocircumflexhookabove;1ED5 -ocircumflextilde;1ED7 -ocyrillic;043E -odblacute;0151 -odblgrave;020D -odeva;0913 -odieresis;00F6 -odieresiscyrillic;04E7 -odotbelow;1ECD -oe;0153 -oekorean;315A -ogonek;02DB -ogonekcmb;0328 -ograve;00F2 -ogujarati;0A93 -oharmenian;0585 -ohiragana;304A -ohookabove;1ECF -ohorn;01A1 -ohornacute;1EDB -ohorndotbelow;1EE3 -ohorngrave;1EDD -ohornhookabove;1EDF -ohorntilde;1EE1 -ohungarumlaut;0151 -oi;01A3 -oinvertedbreve;020F -okatakana;30AA -okatakanahalfwidth;FF75 -okorean;3157 -olehebrew;05AB -omacron;014D -omacronacute;1E53 -omacrongrave;1E51 -omdeva;0950 -omega;03C9 -omega1;03D6 -omegacyrillic;0461 -omegalatinclosed;0277 -omegaroundcyrillic;047B -omegatitlocyrillic;047D -omegatonos;03CE -omgujarati;0AD0 -omicron;03BF -omicrontonos;03CC -omonospace;FF4F -one;0031 -onearabic;0661 -onebengali;09E7 -onecircle;2460 -onecircleinversesansserif;278A -onedeva;0967 -onedotenleader;2024 -oneeighth;215B -onefitted;F6DC -onegujarati;0AE7 -onegurmukhi;0A67 -onehackarabic;0661 -onehalf;00BD -onehangzhou;3021 -oneideographicparen;3220 -oneinferior;2081 -onemonospace;FF11 -onenumeratorbengali;09F4 -oneoldstyle;F731 -oneparen;2474 -oneperiod;2488 -onepersian;06F1 -onequarter;00BC -oneroman;2170 -onesuperior;00B9 -onethai;0E51 -onethird;2153 -oogonek;01EB -oogonekmacron;01ED -oogurmukhi;0A13 -oomatragurmukhi;0A4B -oopen;0254 -oparen;24AA -openbullet;25E6 -option;2325 -ordfeminine;00AA -ordmasculine;00BA -orthogonal;221F -oshortdeva;0912 -oshortvowelsigndeva;094A -oslash;00F8 -oslashacute;01FF -osmallhiragana;3049 -osmallkatakana;30A9 -osmallkatakanahalfwidth;FF6B -ostrokeacute;01FF -osuperior;F6F0 -otcyrillic;047F -otilde;00F5 -otildeacute;1E4D -otildedieresis;1E4F -oubopomofo;3121 -overline;203E -overlinecenterline;FE4A -overlinecmb;0305 -overlinedashed;FE49 -overlinedblwavy;FE4C -overlinewavy;FE4B -overscore;00AF -ovowelsignbengali;09CB -ovowelsigndeva;094B -ovowelsigngujarati;0ACB -p;0070 -paampssquare;3380 -paasentosquare;332B -pabengali;09AA -pacute;1E55 -padeva;092A -pagedown;21DF -pageup;21DE -pagujarati;0AAA -pagurmukhi;0A2A -pahiragana;3071 -paiyannoithai;0E2F -pakatakana;30D1 -palatalizationcyrilliccmb;0484 -palochkacyrillic;04C0 -pansioskorean;317F -paragraph;00B6 -parallel;2225 -parenleft;0028 -parenleftaltonearabic;FD3E -parenleftbt;F8ED -parenleftex;F8EC -parenleftinferior;208D -parenleftmonospace;FF08 -parenleftsmall;FE59 -parenleftsuperior;207D -parenlefttp;F8EB -parenleftvertical;FE35 -parenright;0029 -parenrightaltonearabic;FD3F -parenrightbt;F8F8 -parenrightex;F8F7 -parenrightinferior;208E -parenrightmonospace;FF09 -parenrightsmall;FE5A -parenrightsuperior;207E -parenrighttp;F8F6 -parenrightvertical;FE36 -partialdiff;2202 -paseqhebrew;05C0 -pashtahebrew;0599 -pasquare;33A9 -patah;05B7 -patah11;05B7 -patah1d;05B7 -patah2a;05B7 -patahhebrew;05B7 -patahnarrowhebrew;05B7 -patahquarterhebrew;05B7 -patahwidehebrew;05B7 -pazerhebrew;05A1 -pbopomofo;3106 -pcircle;24DF -pdotaccent;1E57 -pe;05E4 -pecyrillic;043F -pedagesh;FB44 -pedageshhebrew;FB44 -peezisquare;333B -pefinaldageshhebrew;FB43 -peharabic;067E -peharmenian;057A -pehebrew;05E4 -pehfinalarabic;FB57 -pehinitialarabic;FB58 -pehiragana;307A -pehmedialarabic;FB59 -pekatakana;30DA -pemiddlehookcyrillic;04A7 -perafehebrew;FB4E -percent;0025 -percentarabic;066A -percentmonospace;FF05 -percentsmall;FE6A -period;002E -periodarmenian;0589 -periodcentered;00B7 -periodhalfwidth;FF61 -periodinferior;F6E7 -periodmonospace;FF0E -periodsmall;FE52 -periodsuperior;F6E8 -perispomenigreekcmb;0342 -perpendicular;22A5 -perthousand;2030 -peseta;20A7 -pfsquare;338A -phabengali;09AB -phadeva;092B -phagujarati;0AAB -phagurmukhi;0A2B -phi;03C6 -phi1;03D5 -phieuphacirclekorean;327A -phieuphaparenkorean;321A -phieuphcirclekorean;326C -phieuphkorean;314D -phieuphparenkorean;320C -philatin;0278 -phinthuthai;0E3A -phisymbolgreek;03D5 -phook;01A5 -phophanthai;0E1E -phophungthai;0E1C -phosamphaothai;0E20 -pi;03C0 -pieupacirclekorean;3273 -pieupaparenkorean;3213 -pieupcieuckorean;3176 -pieupcirclekorean;3265 -pieupkiyeokkorean;3172 -pieupkorean;3142 -pieupparenkorean;3205 -pieupsioskiyeokkorean;3174 -pieupsioskorean;3144 -pieupsiostikeutkorean;3175 -pieupthieuthkorean;3177 -pieuptikeutkorean;3173 -pihiragana;3074 -pikatakana;30D4 -pisymbolgreek;03D6 -piwrarmenian;0583 -plus;002B -plusbelowcmb;031F -pluscircle;2295 -plusminus;00B1 -plusmod;02D6 -plusmonospace;FF0B -plussmall;FE62 -plussuperior;207A -pmonospace;FF50 -pmsquare;33D8 -pohiragana;307D -pointingindexdownwhite;261F -pointingindexleftwhite;261C -pointingindexrightwhite;261E -pointingindexupwhite;261D -pokatakana;30DD -poplathai;0E1B -postalmark;3012 -postalmarkface;3020 -pparen;24AB -precedes;227A -prescription;211E -primemod;02B9 -primereversed;2035 -product;220F -projective;2305 -prolongedkana;30FC -propellor;2318 -propersubset;2282 -propersuperset;2283 -proportion;2237 -proportional;221D -psi;03C8 -psicyrillic;0471 -psilipneumatacyrilliccmb;0486 -pssquare;33B0 -puhiragana;3077 -pukatakana;30D7 -pvsquare;33B4 -pwsquare;33BA -q;0071 -qadeva;0958 -qadmahebrew;05A8 -qafarabic;0642 -qaffinalarabic;FED6 -qafinitialarabic;FED7 -qafmedialarabic;FED8 -qamats;05B8 -qamats10;05B8 -qamats1a;05B8 -qamats1c;05B8 -qamats27;05B8 -qamats29;05B8 -qamats33;05B8 -qamatsde;05B8 -qamatshebrew;05B8 -qamatsnarrowhebrew;05B8 -qamatsqatanhebrew;05B8 -qamatsqatannarrowhebrew;05B8 -qamatsqatanquarterhebrew;05B8 -qamatsqatanwidehebrew;05B8 -qamatsquarterhebrew;05B8 -qamatswidehebrew;05B8 -qarneyparahebrew;059F -qbopomofo;3111 -qcircle;24E0 -qhook;02A0 -qmonospace;FF51 -qof;05E7 -qofdagesh;FB47 -qofdageshhebrew;FB47 -qofhatafpatah;05E7 05B2 -qofhatafpatahhebrew;05E7 05B2 -qofhatafsegol;05E7 05B1 -qofhatafsegolhebrew;05E7 05B1 -qofhebrew;05E7 -qofhiriq;05E7 05B4 -qofhiriqhebrew;05E7 05B4 -qofholam;05E7 05B9 -qofholamhebrew;05E7 05B9 -qofpatah;05E7 05B7 -qofpatahhebrew;05E7 05B7 -qofqamats;05E7 05B8 -qofqamatshebrew;05E7 05B8 -qofqubuts;05E7 05BB -qofqubutshebrew;05E7 05BB -qofsegol;05E7 05B6 -qofsegolhebrew;05E7 05B6 -qofsheva;05E7 05B0 -qofshevahebrew;05E7 05B0 -qoftsere;05E7 05B5 -qoftserehebrew;05E7 05B5 -qparen;24AC -quarternote;2669 -qubuts;05BB -qubuts18;05BB -qubuts25;05BB -qubuts31;05BB -qubutshebrew;05BB -qubutsnarrowhebrew;05BB -qubutsquarterhebrew;05BB -qubutswidehebrew;05BB -question;003F -questionarabic;061F -questionarmenian;055E -questiondown;00BF -questiondownsmall;F7BF -questiongreek;037E -questionmonospace;FF1F -questionsmall;F73F -quotedbl;0022 -quotedblbase;201E -quotedblleft;201C -quotedblmonospace;FF02 -quotedblprime;301E -quotedblprimereversed;301D -quotedblright;201D -quoteleft;2018 -quoteleftreversed;201B -quotereversed;201B -quoteright;2019 -quoterightn;0149 -quotesinglbase;201A -quotesingle;0027 -quotesinglemonospace;FF07 -r;0072 -raarmenian;057C -rabengali;09B0 -racute;0155 -radeva;0930 -radical;221A -radicalex;F8E5 -radoverssquare;33AE -radoverssquaredsquare;33AF -radsquare;33AD -rafe;05BF -rafehebrew;05BF -ragujarati;0AB0 -ragurmukhi;0A30 -rahiragana;3089 -rakatakana;30E9 -rakatakanahalfwidth;FF97 -ralowerdiagonalbengali;09F1 -ramiddlediagonalbengali;09F0 -ramshorn;0264 -ratio;2236 -rbopomofo;3116 -rcaron;0159 -rcedilla;0157 -rcircle;24E1 -rcommaaccent;0157 -rdblgrave;0211 -rdotaccent;1E59 -rdotbelow;1E5B -rdotbelowmacron;1E5D -referencemark;203B -reflexsubset;2286 -reflexsuperset;2287 -registered;00AE -registersans;F8E8 -registerserif;F6DA -reharabic;0631 -reharmenian;0580 -rehfinalarabic;FEAE -rehiragana;308C -rehyehaleflamarabic;0631 FEF3 FE8E 0644 -rekatakana;30EC -rekatakanahalfwidth;FF9A -resh;05E8 -reshdageshhebrew;FB48 -reshhatafpatah;05E8 05B2 -reshhatafpatahhebrew;05E8 05B2 -reshhatafsegol;05E8 05B1 -reshhatafsegolhebrew;05E8 05B1 -reshhebrew;05E8 -reshhiriq;05E8 05B4 -reshhiriqhebrew;05E8 05B4 -reshholam;05E8 05B9 -reshholamhebrew;05E8 05B9 -reshpatah;05E8 05B7 -reshpatahhebrew;05E8 05B7 -reshqamats;05E8 05B8 -reshqamatshebrew;05E8 05B8 -reshqubuts;05E8 05BB -reshqubutshebrew;05E8 05BB -reshsegol;05E8 05B6 -reshsegolhebrew;05E8 05B6 -reshsheva;05E8 05B0 -reshshevahebrew;05E8 05B0 -reshtsere;05E8 05B5 -reshtserehebrew;05E8 05B5 -reversedtilde;223D -reviahebrew;0597 -reviamugrashhebrew;0597 -revlogicalnot;2310 -rfishhook;027E -rfishhookreversed;027F -rhabengali;09DD -rhadeva;095D -rho;03C1 -rhook;027D -rhookturned;027B -rhookturnedsuperior;02B5 -rhosymbolgreek;03F1 -rhotichookmod;02DE -rieulacirclekorean;3271 -rieulaparenkorean;3211 -rieulcirclekorean;3263 -rieulhieuhkorean;3140 -rieulkiyeokkorean;313A -rieulkiyeoksioskorean;3169 -rieulkorean;3139 -rieulmieumkorean;313B -rieulpansioskorean;316C -rieulparenkorean;3203 -rieulphieuphkorean;313F -rieulpieupkorean;313C -rieulpieupsioskorean;316B -rieulsioskorean;313D -rieulthieuthkorean;313E -rieultikeutkorean;316A -rieulyeorinhieuhkorean;316D -rightangle;221F -righttackbelowcmb;0319 -righttriangle;22BF -rihiragana;308A -rikatakana;30EA -rikatakanahalfwidth;FF98 -ring;02DA -ringbelowcmb;0325 -ringcmb;030A -ringhalfleft;02BF -ringhalfleftarmenian;0559 -ringhalfleftbelowcmb;031C -ringhalfleftcentered;02D3 -ringhalfright;02BE -ringhalfrightbelowcmb;0339 -ringhalfrightcentered;02D2 -rinvertedbreve;0213 -rittorusquare;3351 -rlinebelow;1E5F -rlongleg;027C -rlonglegturned;027A -rmonospace;FF52 -rohiragana;308D -rokatakana;30ED -rokatakanahalfwidth;FF9B -roruathai;0E23 -rparen;24AD -rrabengali;09DC -rradeva;0931 -rragurmukhi;0A5C -rreharabic;0691 -rrehfinalarabic;FB8D -rrvocalicbengali;09E0 -rrvocalicdeva;0960 -rrvocalicgujarati;0AE0 -rrvocalicvowelsignbengali;09C4 -rrvocalicvowelsigndeva;0944 -rrvocalicvowelsigngujarati;0AC4 -rsuperior;F6F1 -rtblock;2590 -rturned;0279 -rturnedsuperior;02B4 -ruhiragana;308B -rukatakana;30EB -rukatakanahalfwidth;FF99 -rupeemarkbengali;09F2 -rupeesignbengali;09F3 -rupiah;F6DD -ruthai;0E24 -rvocalicbengali;098B -rvocalicdeva;090B -rvocalicgujarati;0A8B -rvocalicvowelsignbengali;09C3 -rvocalicvowelsigndeva;0943 -rvocalicvowelsigngujarati;0AC3 -s;0073 -sabengali;09B8 -sacute;015B -sacutedotaccent;1E65 -sadarabic;0635 -sadeva;0938 -sadfinalarabic;FEBA -sadinitialarabic;FEBB -sadmedialarabic;FEBC -sagujarati;0AB8 -sagurmukhi;0A38 -sahiragana;3055 -sakatakana;30B5 -sakatakanahalfwidth;FF7B -sallallahoualayhewasallamarabic;FDFA -samekh;05E1 -samekhdagesh;FB41 -samekhdageshhebrew;FB41 -samekhhebrew;05E1 -saraaathai;0E32 -saraaethai;0E41 -saraaimaimalaithai;0E44 -saraaimaimuanthai;0E43 -saraamthai;0E33 -saraathai;0E30 -saraethai;0E40 -saraiileftthai;F886 -saraiithai;0E35 -saraileftthai;F885 -saraithai;0E34 -saraothai;0E42 -saraueeleftthai;F888 -saraueethai;0E37 -saraueleftthai;F887 -sarauethai;0E36 -sarauthai;0E38 -sarauuthai;0E39 -sbopomofo;3119 -scaron;0161 -scarondotaccent;1E67 -scedilla;015F -schwa;0259 -schwacyrillic;04D9 -schwadieresiscyrillic;04DB -schwahook;025A -scircle;24E2 -scircumflex;015D -scommaaccent;0219 -sdotaccent;1E61 -sdotbelow;1E63 -sdotbelowdotaccent;1E69 -seagullbelowcmb;033C -second;2033 -secondtonechinese;02CA -section;00A7 -seenarabic;0633 -seenfinalarabic;FEB2 -seeninitialarabic;FEB3 -seenmedialarabic;FEB4 -segol;05B6 -segol13;05B6 -segol1f;05B6 -segol2c;05B6 -segolhebrew;05B6 -segolnarrowhebrew;05B6 -segolquarterhebrew;05B6 -segoltahebrew;0592 -segolwidehebrew;05B6 -seharmenian;057D -sehiragana;305B -sekatakana;30BB -sekatakanahalfwidth;FF7E -semicolon;003B -semicolonarabic;061B -semicolonmonospace;FF1B -semicolonsmall;FE54 -semivoicedmarkkana;309C -semivoicedmarkkanahalfwidth;FF9F -sentisquare;3322 -sentosquare;3323 -seven;0037 -sevenarabic;0667 -sevenbengali;09ED -sevencircle;2466 -sevencircleinversesansserif;2790 -sevendeva;096D -seveneighths;215E -sevengujarati;0AED -sevengurmukhi;0A6D -sevenhackarabic;0667 -sevenhangzhou;3027 -sevenideographicparen;3226 -seveninferior;2087 -sevenmonospace;FF17 -sevenoldstyle;F737 -sevenparen;247A -sevenperiod;248E -sevenpersian;06F7 -sevenroman;2176 -sevensuperior;2077 -seventeencircle;2470 -seventeenparen;2484 -seventeenperiod;2498 -seventhai;0E57 -sfthyphen;00AD -shaarmenian;0577 -shabengali;09B6 -shacyrillic;0448 -shaddaarabic;0651 -shaddadammaarabic;FC61 -shaddadammatanarabic;FC5E -shaddafathaarabic;FC60 -shaddafathatanarabic;0651 064B -shaddakasraarabic;FC62 -shaddakasratanarabic;FC5F -shade;2592 -shadedark;2593 -shadelight;2591 -shademedium;2592 -shadeva;0936 -shagujarati;0AB6 -shagurmukhi;0A36 -shalshelethebrew;0593 -shbopomofo;3115 -shchacyrillic;0449 -sheenarabic;0634 -sheenfinalarabic;FEB6 -sheeninitialarabic;FEB7 -sheenmedialarabic;FEB8 -sheicoptic;03E3 -sheqel;20AA -sheqelhebrew;20AA -sheva;05B0 -sheva115;05B0 -sheva15;05B0 -sheva22;05B0 -sheva2e;05B0 -shevahebrew;05B0 -shevanarrowhebrew;05B0 -shevaquarterhebrew;05B0 -shevawidehebrew;05B0 -shhacyrillic;04BB -shimacoptic;03ED -shin;05E9 -shindagesh;FB49 -shindageshhebrew;FB49 -shindageshshindot;FB2C -shindageshshindothebrew;FB2C -shindageshsindot;FB2D -shindageshsindothebrew;FB2D -shindothebrew;05C1 -shinhebrew;05E9 -shinshindot;FB2A -shinshindothebrew;FB2A -shinsindot;FB2B -shinsindothebrew;FB2B -shook;0282 -sigma;03C3 -sigma1;03C2 -sigmafinal;03C2 -sigmalunatesymbolgreek;03F2 -sihiragana;3057 -sikatakana;30B7 -sikatakanahalfwidth;FF7C -siluqhebrew;05BD -siluqlefthebrew;05BD -similar;223C -sindothebrew;05C2 -siosacirclekorean;3274 -siosaparenkorean;3214 -sioscieuckorean;317E -sioscirclekorean;3266 -sioskiyeokkorean;317A -sioskorean;3145 -siosnieunkorean;317B -siosparenkorean;3206 -siospieupkorean;317D -siostikeutkorean;317C -six;0036 -sixarabic;0666 -sixbengali;09EC -sixcircle;2465 -sixcircleinversesansserif;278F -sixdeva;096C -sixgujarati;0AEC -sixgurmukhi;0A6C -sixhackarabic;0666 -sixhangzhou;3026 -sixideographicparen;3225 -sixinferior;2086 -sixmonospace;FF16 -sixoldstyle;F736 -sixparen;2479 -sixperiod;248D -sixpersian;06F6 -sixroman;2175 -sixsuperior;2076 -sixteencircle;246F -sixteencurrencydenominatorbengali;09F9 -sixteenparen;2483 -sixteenperiod;2497 -sixthai;0E56 -slash;002F -slashmonospace;FF0F -slong;017F -slongdotaccent;1E9B -smileface;263A -smonospace;FF53 -sofpasuqhebrew;05C3 -softhyphen;00AD -softsigncyrillic;044C -sohiragana;305D -sokatakana;30BD -sokatakanahalfwidth;FF7F -soliduslongoverlaycmb;0338 -solidusshortoverlaycmb;0337 -sorusithai;0E29 -sosalathai;0E28 -sosothai;0E0B -sosuathai;0E2A -space;0020 -spacehackarabic;0020 -spade;2660 -spadesuitblack;2660 -spadesuitwhite;2664 -sparen;24AE -squarebelowcmb;033B -squarecc;33C4 -squarecm;339D -squarediagonalcrosshatchfill;25A9 -squarehorizontalfill;25A4 -squarekg;338F -squarekm;339E -squarekmcapital;33CE -squareln;33D1 -squarelog;33D2 -squaremg;338E -squaremil;33D5 -squaremm;339C -squaremsquared;33A1 -squareorthogonalcrosshatchfill;25A6 -squareupperlefttolowerrightfill;25A7 -squareupperrighttolowerleftfill;25A8 -squareverticalfill;25A5 -squarewhitewithsmallblack;25A3 -srsquare;33DB -ssabengali;09B7 -ssadeva;0937 -ssagujarati;0AB7 -ssangcieuckorean;3149 -ssanghieuhkorean;3185 -ssangieungkorean;3180 -ssangkiyeokkorean;3132 -ssangnieunkorean;3165 -ssangpieupkorean;3143 -ssangsioskorean;3146 -ssangtikeutkorean;3138 -ssuperior;F6F2 -sterling;00A3 -sterlingmonospace;FFE1 -strokelongoverlaycmb;0336 -strokeshortoverlaycmb;0335 -subset;2282 -subsetnotequal;228A -subsetorequal;2286 -succeeds;227B -suchthat;220B -suhiragana;3059 -sukatakana;30B9 -sukatakanahalfwidth;FF7D -sukunarabic;0652 -summation;2211 -sun;263C -superset;2283 -supersetnotequal;228B -supersetorequal;2287 -svsquare;33DC -syouwaerasquare;337C -t;0074 -tabengali;09A4 -tackdown;22A4 -tackleft;22A3 -tadeva;0924 -tagujarati;0AA4 -tagurmukhi;0A24 -taharabic;0637 -tahfinalarabic;FEC2 -tahinitialarabic;FEC3 -tahiragana;305F -tahmedialarabic;FEC4 -taisyouerasquare;337D -takatakana;30BF -takatakanahalfwidth;FF80 -tatweelarabic;0640 -tau;03C4 -tav;05EA -tavdages;FB4A -tavdagesh;FB4A -tavdageshhebrew;FB4A -tavhebrew;05EA -tbar;0167 -tbopomofo;310A -tcaron;0165 -tccurl;02A8 -tcedilla;0163 -tcheharabic;0686 -tchehfinalarabic;FB7B -tchehinitialarabic;FB7C -tchehmedialarabic;FB7D -tchehmeeminitialarabic;FB7C FEE4 -tcircle;24E3 -tcircumflexbelow;1E71 -tcommaaccent;0163 -tdieresis;1E97 -tdotaccent;1E6B -tdotbelow;1E6D -tecyrillic;0442 -tedescendercyrillic;04AD -teharabic;062A -tehfinalarabic;FE96 -tehhahinitialarabic;FCA2 -tehhahisolatedarabic;FC0C -tehinitialarabic;FE97 -tehiragana;3066 -tehjeeminitialarabic;FCA1 -tehjeemisolatedarabic;FC0B -tehmarbutaarabic;0629 -tehmarbutafinalarabic;FE94 -tehmedialarabic;FE98 -tehmeeminitialarabic;FCA4 -tehmeemisolatedarabic;FC0E -tehnoonfinalarabic;FC73 -tekatakana;30C6 -tekatakanahalfwidth;FF83 -telephone;2121 -telephoneblack;260E -telishagedolahebrew;05A0 -telishaqetanahebrew;05A9 -tencircle;2469 -tenideographicparen;3229 -tenparen;247D -tenperiod;2491 -tenroman;2179 -tesh;02A7 -tet;05D8 -tetdagesh;FB38 -tetdageshhebrew;FB38 -tethebrew;05D8 -tetsecyrillic;04B5 -tevirhebrew;059B -tevirlefthebrew;059B -thabengali;09A5 -thadeva;0925 -thagujarati;0AA5 -thagurmukhi;0A25 -thalarabic;0630 -thalfinalarabic;FEAC -thanthakhatlowleftthai;F898 -thanthakhatlowrightthai;F897 -thanthakhatthai;0E4C -thanthakhatupperleftthai;F896 -theharabic;062B -thehfinalarabic;FE9A -thehinitialarabic;FE9B -thehmedialarabic;FE9C -thereexists;2203 -therefore;2234 -theta;03B8 -theta1;03D1 -thetasymbolgreek;03D1 -thieuthacirclekorean;3279 -thieuthaparenkorean;3219 -thieuthcirclekorean;326B -thieuthkorean;314C -thieuthparenkorean;320B -thirteencircle;246C -thirteenparen;2480 -thirteenperiod;2494 -thonangmonthothai;0E11 -thook;01AD -thophuthaothai;0E12 -thorn;00FE -thothahanthai;0E17 -thothanthai;0E10 -thothongthai;0E18 -thothungthai;0E16 -thousandcyrillic;0482 -thousandsseparatorarabic;066C -thousandsseparatorpersian;066C -three;0033 -threearabic;0663 -threebengali;09E9 -threecircle;2462 -threecircleinversesansserif;278C -threedeva;0969 -threeeighths;215C -threegujarati;0AE9 -threegurmukhi;0A69 -threehackarabic;0663 -threehangzhou;3023 -threeideographicparen;3222 -threeinferior;2083 -threemonospace;FF13 -threenumeratorbengali;09F6 -threeoldstyle;F733 -threeparen;2476 -threeperiod;248A -threepersian;06F3 -threequarters;00BE -threequartersemdash;F6DE -threeroman;2172 -threesuperior;00B3 -threethai;0E53 -thzsquare;3394 -tihiragana;3061 -tikatakana;30C1 -tikatakanahalfwidth;FF81 -tikeutacirclekorean;3270 -tikeutaparenkorean;3210 -tikeutcirclekorean;3262 -tikeutkorean;3137 -tikeutparenkorean;3202 -tilde;02DC -tildebelowcmb;0330 -tildecmb;0303 -tildecomb;0303 -tildedoublecmb;0360 -tildeoperator;223C -tildeoverlaycmb;0334 -tildeverticalcmb;033E -timescircle;2297 -tipehahebrew;0596 -tipehalefthebrew;0596 -tippigurmukhi;0A70 -titlocyrilliccmb;0483 -tiwnarmenian;057F -tlinebelow;1E6F -tmonospace;FF54 -toarmenian;0569 -tohiragana;3068 -tokatakana;30C8 -tokatakanahalfwidth;FF84 -tonebarextrahighmod;02E5 -tonebarextralowmod;02E9 -tonebarhighmod;02E6 -tonebarlowmod;02E8 -tonebarmidmod;02E7 -tonefive;01BD -tonesix;0185 -tonetwo;01A8 -tonos;0384 -tonsquare;3327 -topatakthai;0E0F -tortoiseshellbracketleft;3014 -tortoiseshellbracketleftsmall;FE5D -tortoiseshellbracketleftvertical;FE39 -tortoiseshellbracketright;3015 -tortoiseshellbracketrightsmall;FE5E -tortoiseshellbracketrightvertical;FE3A -totaothai;0E15 -tpalatalhook;01AB -tparen;24AF -trademark;2122 -trademarksans;F8EA -trademarkserif;F6DB -tretroflexhook;0288 -triagdn;25BC -triaglf;25C4 -triagrt;25BA -triagup;25B2 -ts;02A6 -tsadi;05E6 -tsadidagesh;FB46 -tsadidageshhebrew;FB46 -tsadihebrew;05E6 -tsecyrillic;0446 -tsere;05B5 -tsere12;05B5 -tsere1e;05B5 -tsere2b;05B5 -tserehebrew;05B5 -tserenarrowhebrew;05B5 -tserequarterhebrew;05B5 -tserewidehebrew;05B5 -tshecyrillic;045B -tsuperior;F6F3 -ttabengali;099F -ttadeva;091F -ttagujarati;0A9F -ttagurmukhi;0A1F -tteharabic;0679 -ttehfinalarabic;FB67 -ttehinitialarabic;FB68 -ttehmedialarabic;FB69 -tthabengali;09A0 -tthadeva;0920 -tthagujarati;0AA0 -tthagurmukhi;0A20 -tturned;0287 -tuhiragana;3064 -tukatakana;30C4 -tukatakanahalfwidth;FF82 -tusmallhiragana;3063 -tusmallkatakana;30C3 -tusmallkatakanahalfwidth;FF6F -twelvecircle;246B -twelveparen;247F -twelveperiod;2493 -twelveroman;217B -twentycircle;2473 -twentyhangzhou;5344 -twentyparen;2487 -twentyperiod;249B -two;0032 -twoarabic;0662 -twobengali;09E8 -twocircle;2461 -twocircleinversesansserif;278B -twodeva;0968 -twodotenleader;2025 -twodotleader;2025 -twodotleadervertical;FE30 -twogujarati;0AE8 -twogurmukhi;0A68 -twohackarabic;0662 -twohangzhou;3022 -twoideographicparen;3221 -twoinferior;2082 -twomonospace;FF12 -twonumeratorbengali;09F5 -twooldstyle;F732 -twoparen;2475 -twoperiod;2489 -twopersian;06F2 -tworoman;2171 -twostroke;01BB -twosuperior;00B2 -twothai;0E52 -twothirds;2154 -u;0075 -uacute;00FA -ubar;0289 -ubengali;0989 -ubopomofo;3128 -ubreve;016D -ucaron;01D4 -ucircle;24E4 -ucircumflex;00FB -ucircumflexbelow;1E77 -ucyrillic;0443 -udattadeva;0951 -udblacute;0171 -udblgrave;0215 -udeva;0909 -udieresis;00FC -udieresisacute;01D8 -udieresisbelow;1E73 -udieresiscaron;01DA -udieresiscyrillic;04F1 -udieresisgrave;01DC -udieresismacron;01D6 -udotbelow;1EE5 -ugrave;00F9 -ugujarati;0A89 -ugurmukhi;0A09 -uhiragana;3046 -uhookabove;1EE7 -uhorn;01B0 -uhornacute;1EE9 -uhorndotbelow;1EF1 -uhorngrave;1EEB -uhornhookabove;1EED -uhorntilde;1EEF -uhungarumlaut;0171 -uhungarumlautcyrillic;04F3 -uinvertedbreve;0217 -ukatakana;30A6 -ukatakanahalfwidth;FF73 -ukcyrillic;0479 -ukorean;315C -umacron;016B -umacroncyrillic;04EF -umacrondieresis;1E7B -umatragurmukhi;0A41 -umonospace;FF55 -underscore;005F -underscoredbl;2017 -underscoremonospace;FF3F -underscorevertical;FE33 -underscorewavy;FE4F -union;222A -universal;2200 -uogonek;0173 -uparen;24B0 -upblock;2580 -upperdothebrew;05C4 -upsilon;03C5 -upsilondieresis;03CB -upsilondieresistonos;03B0 -upsilonlatin;028A -upsilontonos;03CD -uptackbelowcmb;031D -uptackmod;02D4 -uragurmukhi;0A73 -uring;016F -ushortcyrillic;045E -usmallhiragana;3045 -usmallkatakana;30A5 -usmallkatakanahalfwidth;FF69 -ustraightcyrillic;04AF -ustraightstrokecyrillic;04B1 -utilde;0169 -utildeacute;1E79 -utildebelow;1E75 -uubengali;098A -uudeva;090A -uugujarati;0A8A -uugurmukhi;0A0A -uumatragurmukhi;0A42 -uuvowelsignbengali;09C2 -uuvowelsigndeva;0942 -uuvowelsigngujarati;0AC2 -uvowelsignbengali;09C1 -uvowelsigndeva;0941 -uvowelsigngujarati;0AC1 -v;0076 -vadeva;0935 -vagujarati;0AB5 -vagurmukhi;0A35 -vakatakana;30F7 -vav;05D5 -vavdagesh;FB35 -vavdagesh65;FB35 -vavdageshhebrew;FB35 -vavhebrew;05D5 -vavholam;FB4B -vavholamhebrew;FB4B -vavvavhebrew;05F0 -vavyodhebrew;05F1 -vcircle;24E5 -vdotbelow;1E7F -vecyrillic;0432 -veharabic;06A4 -vehfinalarabic;FB6B -vehinitialarabic;FB6C -vehmedialarabic;FB6D -vekatakana;30F9 -venus;2640 -verticalbar;007C -verticallineabovecmb;030D -verticallinebelowcmb;0329 -verticallinelowmod;02CC -verticallinemod;02C8 -vewarmenian;057E -vhook;028B -vikatakana;30F8 -viramabengali;09CD -viramadeva;094D -viramagujarati;0ACD -visargabengali;0983 -visargadeva;0903 -visargagujarati;0A83 -vmonospace;FF56 -voarmenian;0578 -voicediterationhiragana;309E -voicediterationkatakana;30FE -voicedmarkkana;309B -voicedmarkkanahalfwidth;FF9E -vokatakana;30FA -vparen;24B1 -vtilde;1E7D -vturned;028C -vuhiragana;3094 -vukatakana;30F4 -w;0077 -wacute;1E83 -waekorean;3159 -wahiragana;308F -wakatakana;30EF -wakatakanahalfwidth;FF9C -wakorean;3158 -wasmallhiragana;308E -wasmallkatakana;30EE -wattosquare;3357 -wavedash;301C -wavyunderscorevertical;FE34 -wawarabic;0648 -wawfinalarabic;FEEE -wawhamzaabovearabic;0624 -wawhamzaabovefinalarabic;FE86 -wbsquare;33DD -wcircle;24E6 -wcircumflex;0175 -wdieresis;1E85 -wdotaccent;1E87 -wdotbelow;1E89 -wehiragana;3091 -weierstrass;2118 -wekatakana;30F1 -wekorean;315E -weokorean;315D -wgrave;1E81 -whitebullet;25E6 -whitecircle;25CB -whitecircleinverse;25D9 -whitecornerbracketleft;300E -whitecornerbracketleftvertical;FE43 -whitecornerbracketright;300F -whitecornerbracketrightvertical;FE44 -whitediamond;25C7 -whitediamondcontainingblacksmalldiamond;25C8 -whitedownpointingsmalltriangle;25BF -whitedownpointingtriangle;25BD -whiteleftpointingsmalltriangle;25C3 -whiteleftpointingtriangle;25C1 -whitelenticularbracketleft;3016 -whitelenticularbracketright;3017 -whiterightpointingsmalltriangle;25B9 -whiterightpointingtriangle;25B7 -whitesmallsquare;25AB -whitesmilingface;263A -whitesquare;25A1 -whitestar;2606 -whitetelephone;260F -whitetortoiseshellbracketleft;3018 -whitetortoiseshellbracketright;3019 -whiteuppointingsmalltriangle;25B5 -whiteuppointingtriangle;25B3 -wihiragana;3090 -wikatakana;30F0 -wikorean;315F -wmonospace;FF57 -wohiragana;3092 -wokatakana;30F2 -wokatakanahalfwidth;FF66 -won;20A9 -wonmonospace;FFE6 -wowaenthai;0E27 -wparen;24B2 -wring;1E98 -wsuperior;02B7 -wturned;028D -wynn;01BF -x;0078 -xabovecmb;033D -xbopomofo;3112 -xcircle;24E7 -xdieresis;1E8D -xdotaccent;1E8B -xeharmenian;056D -xi;03BE -xmonospace;FF58 -xparen;24B3 -xsuperior;02E3 -y;0079 -yaadosquare;334E -yabengali;09AF -yacute;00FD -yadeva;092F -yaekorean;3152 -yagujarati;0AAF -yagurmukhi;0A2F -yahiragana;3084 -yakatakana;30E4 -yakatakanahalfwidth;FF94 -yakorean;3151 -yamakkanthai;0E4E -yasmallhiragana;3083 -yasmallkatakana;30E3 -yasmallkatakanahalfwidth;FF6C -yatcyrillic;0463 -ycircle;24E8 -ycircumflex;0177 -ydieresis;00FF -ydotaccent;1E8F -ydotbelow;1EF5 -yeharabic;064A -yehbarreearabic;06D2 -yehbarreefinalarabic;FBAF -yehfinalarabic;FEF2 -yehhamzaabovearabic;0626 -yehhamzaabovefinalarabic;FE8A -yehhamzaaboveinitialarabic;FE8B -yehhamzaabovemedialarabic;FE8C -yehinitialarabic;FEF3 -yehmedialarabic;FEF4 -yehmeeminitialarabic;FCDD -yehmeemisolatedarabic;FC58 -yehnoonfinalarabic;FC94 -yehthreedotsbelowarabic;06D1 -yekorean;3156 -yen;00A5 -yenmonospace;FFE5 -yeokorean;3155 -yeorinhieuhkorean;3186 -yerahbenyomohebrew;05AA -yerahbenyomolefthebrew;05AA -yericyrillic;044B -yerudieresiscyrillic;04F9 -yesieungkorean;3181 -yesieungpansioskorean;3183 -yesieungsioskorean;3182 -yetivhebrew;059A -ygrave;1EF3 -yhook;01B4 -yhookabove;1EF7 -yiarmenian;0575 -yicyrillic;0457 -yikorean;3162 -yinyang;262F -yiwnarmenian;0582 -ymonospace;FF59 -yod;05D9 -yoddagesh;FB39 -yoddageshhebrew;FB39 -yodhebrew;05D9 -yodyodhebrew;05F2 -yodyodpatahhebrew;FB1F -yohiragana;3088 -yoikorean;3189 -yokatakana;30E8 -yokatakanahalfwidth;FF96 -yokorean;315B -yosmallhiragana;3087 -yosmallkatakana;30E7 -yosmallkatakanahalfwidth;FF6E -yotgreek;03F3 -yoyaekorean;3188 -yoyakorean;3187 -yoyakthai;0E22 -yoyingthai;0E0D -yparen;24B4 -ypogegrammeni;037A -ypogegrammenigreekcmb;0345 -yr;01A6 -yring;1E99 -ysuperior;02B8 -ytilde;1EF9 -yturned;028E -yuhiragana;3086 -yuikorean;318C -yukatakana;30E6 -yukatakanahalfwidth;FF95 -yukorean;3160 -yusbigcyrillic;046B -yusbigiotifiedcyrillic;046D -yuslittlecyrillic;0467 -yuslittleiotifiedcyrillic;0469 -yusmallhiragana;3085 -yusmallkatakana;30E5 -yusmallkatakanahalfwidth;FF6D -yuyekorean;318B -yuyeokorean;318A -yyabengali;09DF -yyadeva;095F -z;007A -zaarmenian;0566 -zacute;017A -zadeva;095B -zagurmukhi;0A5B -zaharabic;0638 -zahfinalarabic;FEC6 -zahinitialarabic;FEC7 -zahiragana;3056 -zahmedialarabic;FEC8 -zainarabic;0632 -zainfinalarabic;FEB0 -zakatakana;30B6 -zaqefgadolhebrew;0595 -zaqefqatanhebrew;0594 -zarqahebrew;0598 -zayin;05D6 -zayindagesh;FB36 -zayindageshhebrew;FB36 -zayinhebrew;05D6 -zbopomofo;3117 -zcaron;017E -zcircle;24E9 -zcircumflex;1E91 -zcurl;0291 -zdot;017C -zdotaccent;017C -zdotbelow;1E93 -zecyrillic;0437 -zedescendercyrillic;0499 -zedieresiscyrillic;04DF -zehiragana;305C -zekatakana;30BC -zero;0030 -zeroarabic;0660 -zerobengali;09E6 -zerodeva;0966 -zerogujarati;0AE6 -zerogurmukhi;0A66 -zerohackarabic;0660 -zeroinferior;2080 -zeromonospace;FF10 -zerooldstyle;F730 -zeropersian;06F0 -zerosuperior;2070 -zerothai;0E50 -zerowidthjoiner;FEFF -zerowidthnonjoiner;200C -zerowidthspace;200B -zeta;03B6 -zhbopomofo;3113 -zhearmenian;056A -zhebrevecyrillic;04C2 -zhecyrillic;0436 -zhedescendercyrillic;0497 -zhedieresiscyrillic;04DD -zihiragana;3058 -zikatakana;30B8 -zinorhebrew;05AE -zlinebelow;1E95 -zmonospace;FF5A -zohiragana;305E -zokatakana;30BE -zparen;24B5 -zretroflexhook;0290 -zstroke;01B6 -zuhiragana;305A -zukatakana;30BA -#--end commit d2fb683796f41a68edec53f26e524fd06725eef8 Author: Behdad Esfahbod Date: Wed Nov 18 09:35:40 2009 -0500 Clean up Makefile's a bit diff --git a/fc-arch/Makefile.am b/fc-arch/Makefile.am index f3b4e50..806c730 100644 --- a/fc-arch/Makefile.am +++ b/fc-arch/Makefile.am @@ -37,12 +37,10 @@ ARCHITECTURE=@ARCHITECTURE@ noinst_PROGRAMS=fc-arch -noinst_MANS=fc-arch.man - EXTRA_DIST=$(TMPL) $(TARG):fc-arch${EXEEXT} $(STMPL) ${top_srcdir}/src/fcint.h ../config.h - rm -f $(TARG) + $(AM_V_GEN) $(RM) $(TARG); \ ./fc-arch${EXEEXT} $(ARCHITECTURE) < $(STMPL) > $(TARG).tmp && \ mv $(TARG).tmp $(TARG) diff --git a/fc-case/Makefile.am b/fc-case/Makefile.am index 191758c..bf01984 100644 --- a/fc-case/Makefile.am +++ b/fc-case/Makefile.am @@ -34,8 +34,6 @@ TARG=fccase.h noinst_PROGRAMS=fc-case -noinst_MANS=fc-case.man - noinst_HEADERS=$(TARG) fc_case_SRCS= \ @@ -49,8 +47,9 @@ SCASEFOLDING=${top_srcdir}/fc-case/CaseFolding.txt EXTRA_DIST=$(TMPL) $(CASEFOLDING) $(TARG): $(STMPL) fc-case$(EXEEXT) $(SCASEFOLDING) - rm -f $(TARG) - ./fc-case$(EXEEXT) $(SCASEFOLDING) < $(STMPL) > $(TARG) + $(AM_V_GEN) $(RM) $(TARG); \ + ./fc-case$(EXEEXT) $(SCASEFOLDING) < $(STMPL) > $(TARG).tmp && \ + mv $(TARG).tmp $(TARG) ALIAS_FILES = fcalias.h fcaliastail.h diff --git a/fc-glyphname/Makefile.am b/fc-glyphname/Makefile.am index 996ef06..bcb4d07 100644 --- a/fc-glyphname/Makefile.am +++ b/fc-glyphname/Makefile.am @@ -41,7 +41,8 @@ EXTRA_DIST=$(TMPL) $(GLYPHNAME) $(TARG): $(STMPL) fc-glyphname$(EXEEXT) $(SGLYPHNAME) $(AM_V_GEN) $(RM) $(TARG); \ - ./fc-glyphname$(EXEEXT) $(SGLYPHNAME) < $(STMPL) > $(TARG).tmp && mv $(TARG).tmp $(TARG) + ./fc-glyphname$(EXEEXT) $(SGLYPHNAME) < $(STMPL) > $(TARG).tmp && \ + mv $(TARG).tmp $(TARG) ALIAS_FILES = fcalias.h fcaliastail.h diff --git a/fc-lang/Makefile.am b/fc-lang/Makefile.am index a7290f4..923a4ff 100644 --- a/fc-lang/Makefile.am +++ b/fc-lang/Makefile.am @@ -39,7 +39,7 @@ noinst_MANS=fc-lang.man EXTRA_DIST=$(TMPL) $(ORTH) $(TARG):$(ORTH) fc-lang${EXEEXT} $(STMPL) - rm -f $(TARG) + $(AM_V_GEN) $(RM) $(TARG); \ ./fc-lang${EXEEXT} -d ${srcdir} $(ORTH) < $(STMPL) > $(TARG).tmp && \ mv $(TARG).tmp $(TARG) diff --git a/src/Makefile.am b/src/Makefile.am index 2034a8b..8b6379d 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -83,14 +83,20 @@ noinst_HEADERS=fcint.h fcftint.h fcdeprecate.h ALIAS_FILES = fcalias.h fcaliastail.h fcftalias.h fcftaliastail.h -BUILT_SOURCES = $(ALIAS_FILES) ../fc-lang/fclang.h ../fc-arch/fcarch.h ../fc-glyphname/fcglyphname.h +BUILT_SOURCES = $(ALIAS_FILES) \ + ../fc-arch/fcarch.h \ + ../fc-case/fccase.h \ + ../fc-glyphname/fcglyphname.h \ + ../fc-lang/fclang.h -../fc-lang/fclang.h: - cd ../fc-lang && $(MAKE) $(AM_MAKEFLAGS) fclang.h ../fc-arch/fcarch.h: cd ../fc-arch && $(MAKE) $(AM_MAKEFLAGS) fcarch.h +../fc-case/fccase.h: + cd ../fc-case && $(MAKE) $(AM_MAKEFLAGS) fccase.h ../fc-glyphname/fcglyphname.h: cd ../fc-glyphname && $(MAKE) $(AM_MAKEFLAGS) fcglyphname.h +../fc-lang/fclang.h: + cd ../fc-lang && $(MAKE) $(AM_MAKEFLAGS) fclang.h libfontconfig_la_SOURCES = \ fcatomic.c \ commit 192927225c447a8eaba613838aff93f82dee41d0 Author: Behdad Esfahbod Date: Wed Nov 18 09:26:24 2009 -0500 [fc-glyphname] Rename internal arrays to prefix with _fc_ Although they were static, I was still surprised that gdb was seeing our variable "glyphs". Not helpful. diff --git a/fc-glyphname/fc-glyphname.c b/fc-glyphname/fc-glyphname.c index 5788460..5e1e881 100644 --- a/fc-glyphname/fc-glyphname.c +++ b/fc-glyphname/fc-glyphname.c @@ -297,7 +297,7 @@ main (int argc, char **argv) * Dump out entries */ - printf ("static const struct { const FcChar32 ucs; const FcChar8 name[%d]; } glyphs[%d] = {\n", + printf ("static const struct { const FcChar32 ucs; const FcChar8 name[%d]; } _fc_glyph_names[%d] = {\n", max_name_len + 1, nraw); for (i = 0; i < nraw; i++) @@ -310,12 +310,12 @@ main (int argc, char **argv) * Dump out name_to_ucs table */ - dump (name_to_ucs, "name_to_ucs"); + dump (name_to_ucs, "_fc_name_to_ucs"); /* * Dump out ucs_to_name table */ - dump (ucs_to_name, "ucs_to_name"); + dump (ucs_to_name, "_fc_ucs_to_name"); while (fgets (line, sizeof (line), stdin)) fputs (line, stdout); diff --git a/src/fcfreetype.c b/src/fcfreetype.c index c30826e..68596f5 100644 --- a/src/fcfreetype.c +++ b/src/fcfreetype.c @@ -2326,10 +2326,10 @@ FcUcs4ToGlyphName (FcChar32 ucs4) int r = 0; FcGlyphId gn; - while ((gn = ucs_to_name[i]) != -1) + while ((gn = _fc_ucs_to_name[i]) != -1) { - if (glyphs[gn].ucs == ucs4) - return glyphs[gn].name; + if (_fc_glyph_names[gn].ucs == ucs4) + return _fc_glyph_names[gn].name; if (!r) { r = (int) (ucs4 % FC_GLYPHNAME_REHASH); @@ -2351,10 +2351,10 @@ FcGlyphNameToUcs4 (FcChar8 *name) int r = 0; FcGlyphId gn; - while ((gn = name_to_ucs[i]) != -1) + while ((gn = _fc_name_to_ucs[i]) != -1) { - if (!strcmp ((char *) name, (char *) glyphs[gn].name)) - return glyphs[gn].ucs; + if (!strcmp ((char *) name, (char *) _fc_glyph_names[gn].name)) + return _fc_glyph_names[gn].ucs; if (!r) { r = (int) (h % FC_GLYPHNAME_REHASH); @@ -2952,7 +2952,6 @@ FcFontCapabilities(FT_Face face) FT_ULong *gsubtags=NULL, *gpostags=NULL; FT_UShort gsub_count=0, gpos_count=0; FT_ULong maxsize; - FT_Memory memory = face->stream->memory; FcChar8 *complex_ = NULL; int indx1 = 0, indx2 = 0; commit 3e5e83e12e051d6ac734f08609c6c584b0f0b807 Author: Behdad Esfahbod Date: Wed Nov 18 09:26:01 2009 -0500 [src] Create fcglyphname.h automatically diff --git a/src/Makefile.am b/src/Makefile.am index 6560c0e..2034a8b 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -83,12 +83,14 @@ noinst_HEADERS=fcint.h fcftint.h fcdeprecate.h ALIAS_FILES = fcalias.h fcaliastail.h fcftalias.h fcftaliastail.h -BUILT_SOURCES = $(ALIAS_FILES) ../fc-lang/fclang.h ../fc-arch/fcarch.h +BUILT_SOURCES = $(ALIAS_FILES) ../fc-lang/fclang.h ../fc-arch/fcarch.h ../fc-glyphname/fcglyphname.h ../fc-lang/fclang.h: cd ../fc-lang && $(MAKE) $(AM_MAKEFLAGS) fclang.h ../fc-arch/fcarch.h: cd ../fc-arch && $(MAKE) $(AM_MAKEFLAGS) fcarch.h +../fc-glyphname/fcglyphname.h: + cd ../fc-glyphname && $(MAKE) $(AM_MAKEFLAGS) fcglyphname.h libfontconfig_la_SOURCES = \ fcatomic.c \ commit 040c98bcc40617ecbc9eb7e16b1714ebd256cfdc Author: Behdad Esfahbod Date: Wed Nov 18 09:25:42 2009 -0500 [fc-glyphname] Cleanup Makefile.am diff --git a/fc-glyphname/Makefile.am b/fc-glyphname/Makefile.am index 0244a7d..996ef06 100644 --- a/fc-glyphname/Makefile.am +++ b/fc-glyphname/Makefile.am @@ -34,22 +34,20 @@ TARG=fcglyphname.h noinst_PROGRAMS=fc-glyphname -noinst_MANS=fc-glyphname.man - GLYPHNAME=zapfdingbats.txt SGLYPHNAME=${top_srcdir}/fc-glyphname/zapfdingbats.txt EXTRA_DIST=$(TMPL) $(GLYPHNAME) $(TARG): $(STMPL) fc-glyphname$(EXEEXT) $(SGLYPHNAME) - rm -f $(TARG) - ./fc-glyphname$(EXEEXT) $(SGLYPHNAME) < $(STMPL) > $(TARG) + $(AM_V_GEN) $(RM) $(TARG); \ + ./fc-glyphname$(EXEEXT) $(SGLYPHNAME) < $(STMPL) > $(TARG).tmp && mv $(TARG).tmp $(TARG) ALIAS_FILES = fcalias.h fcaliastail.h BUILT_SOURCES = $(ALIAS_FILES) $(TARG) -$(ALIAS_FILES): +$(ALIAS_FILES): touch $(ALIAS_FILES) CLEANFILES=$(TARG) $(ALIAS_FILES) commit 77f4e60a32971a815b85f187712191724a00b856 Author: Behdad Esfahbod Date: Wed Nov 18 09:10:05 2009 -0500 Remove bogus comment Last night in between my dreams I also noticed that we support Unicode values up to 0x01000000 and not 0x00100000 which I thought before. This covers the entire Unicode range. diff --git a/src/fccharset.c b/src/fccharset.c index cd9b158..d30e161 100644 --- a/src/fccharset.c +++ b/src/fccharset.c @@ -144,7 +144,6 @@ FcCharSetPutLeaf (FcCharSet *fcs, FcChar16 *numbers = FcCharSetNumbers (fcs); ucs4 >>= 8; - /* XXX We can't handle Unicode values in Plane 16 */ if (ucs4 >= 0x10000) return FcFalse; From behdad at kemper.freedesktop.org Wed Nov 18 06:41:45 2009 From: behdad at kemper.freedesktop.org (Behdad Esfahbod) Date: Wed, 18 Nov 2009 06:41:45 -0800 (PST) Subject: [Fontconfig] fontconfig: Branch 'master' Message-ID: <20091118144145.E9E3F10051@kemper.freedesktop.org> fc-case/CaseFolding.txt | 116 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 112 insertions(+), 4 deletions(-) New commits: commit d074706b507226427f5a4018e78fe120a01eb53d Author: Behdad Esfahbod Date: Wed Nov 18 09:40:11 2009 -0500 [fc-case] Update CaseFolding.txt to Unicode 5.2.0 diff --git a/fc-case/CaseFolding.txt b/fc-case/CaseFolding.txt index f33cdda..bd0e86d 100644 --- a/fc-case/CaseFolding.txt +++ b/fc-case/CaseFolding.txt @@ -1,10 +1,10 @@ -# CaseFolding-5.1.0.txt -# Date: 2007-04-26, 20:59:40 GMT [MD] +# CaseFolding-5.2.0.txt +# Date: 2009-05-28, 23:02:34 GMT [MD] # # Unicode Character Database -# Copyright (c) 1991-2007 Unicode, Inc. +# Copyright (c) 1991-2009 Unicode, Inc. # For terms of use, see http://www.unicode.org/terms_of_use.html -# For documentation, see UCD.html +# For documentation, see http://www.unicode.org/reports/tr44/ # # Case Folding Properties # @@ -287,6 +287,9 @@ 024C; C; 024D; # LATIN CAPITAL LETTER R WITH STROKE 024E; C; 024F; # LATIN CAPITAL LETTER Y WITH STROKE 0345; C; 03B9; # COMBINING GREEK YPOGEGRAMMENI +0370; C; 0371; # GREEK CAPITAL LETTER HETA +0372; C; 0373; # GREEK CAPITAL LETTER ARCHAIC SAMPI +0376; C; 0377; # GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA 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 @@ -323,6 +326,7 @@ 03AB; C; 03CB; # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA 03B0; F; 03C5 0308 0301; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS 03C2; C; 03C3; # GREEK SMALL LETTER FINAL SIGMA +03CF; C; 03D7; # GREEK CAPITAL KAI SYMBOL 03D0; C; 03B2; # GREEK BETA SYMBOL 03D1; C; 03B8; # GREEK THETA SYMBOL 03D5; C; 03C6; # GREEK PHI SYMBOL @@ -483,6 +487,15 @@ 050E; C; 050F; # CYRILLIC CAPITAL LETTER KOMI TJE 0510; C; 0511; # CYRILLIC CAPITAL LETTER REVERSED ZE 0512; C; 0513; # CYRILLIC CAPITAL LETTER EL WITH HOOK +0514; C; 0515; # CYRILLIC CAPITAL LETTER LHA +0516; C; 0517; # CYRILLIC CAPITAL LETTER RHA +0518; C; 0519; # CYRILLIC CAPITAL LETTER YAE +051A; C; 051B; # CYRILLIC CAPITAL LETTER QA +051C; C; 051D; # CYRILLIC CAPITAL LETTER WE +051E; C; 051F; # CYRILLIC CAPITAL LETTER ALEUT KA +0520; C; 0521; # CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK +0522; C; 0523; # CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK +0524; C; 0525; # CYRILLIC CAPITAL LETTER PE WITH DESCENDER 0531; C; 0561; # ARMENIAN CAPITAL LETTER AYB 0532; C; 0562; # ARMENIAN CAPITAL LETTER BEN 0533; C; 0563; # ARMENIAN CAPITAL LETTER GIM @@ -641,6 +654,8 @@ 1E99; F; 0079 030A; # LATIN SMALL LETTER Y WITH RING ABOVE 1E9A; F; 0061 02BE; # LATIN SMALL LETTER A WITH RIGHT HALF RING 1E9B; C; 1E61; # LATIN SMALL LETTER LONG S WITH DOT ABOVE +1E9E; F; 0073 0073; # LATIN CAPITAL LETTER SHARP S +1E9E; S; 00DF; # LATIN CAPITAL LETTER SHARP S 1EA0; C; 1EA1; # LATIN CAPITAL LETTER A WITH DOT BELOW 1EA2; C; 1EA3; # LATIN CAPITAL LETTER A WITH HOOK ABOVE 1EA4; C; 1EA5; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE @@ -686,6 +701,9 @@ 1EF4; C; 1EF5; # LATIN CAPITAL LETTER Y WITH DOT BELOW 1EF6; C; 1EF7; # LATIN CAPITAL LETTER Y WITH HOOK ABOVE 1EF8; C; 1EF9; # LATIN CAPITAL LETTER Y WITH TILDE +1EFA; C; 1EFB; # LATIN CAPITAL LETTER MIDDLE-WELSH LL +1EFC; C; 1EFD; # LATIN CAPITAL LETTER MIDDLE-WELSH V +1EFE; C; 1EFF; # LATIN CAPITAL LETTER Y WITH LOOP 1F08; C; 1F00; # GREEK CAPITAL LETTER ALPHA WITH PSILI 1F09; C; 1F01; # GREEK CAPITAL LETTER ALPHA WITH DASIA 1F0A; C; 1F02; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA @@ -963,7 +981,14 @@ 2C67; C; 2C68; # LATIN CAPITAL LETTER H WITH DESCENDER 2C69; C; 2C6A; # LATIN CAPITAL LETTER K WITH DESCENDER 2C6B; C; 2C6C; # LATIN CAPITAL LETTER Z WITH DESCENDER +2C6D; C; 0251; # LATIN CAPITAL LETTER ALPHA +2C6E; C; 0271; # LATIN CAPITAL LETTER M WITH HOOK +2C6F; C; 0250; # LATIN CAPITAL LETTER TURNED A +2C70; C; 0252; # LATIN CAPITAL LETTER TURNED ALPHA +2C72; C; 2C73; # LATIN CAPITAL LETTER W WITH HOOK 2C75; C; 2C76; # LATIN CAPITAL LETTER HALF H +2C7E; C; 023F; # LATIN CAPITAL LETTER S WITH SWASH TAIL +2C7F; C; 0240; # LATIN CAPITAL LETTER Z WITH SWASH TAIL 2C80; C; 2C81; # COPTIC CAPITAL LETTER ALFA 2C82; C; 2C83; # COPTIC CAPITAL LETTER VIDA 2C84; C; 2C85; # COPTIC CAPITAL LETTER GAMMA @@ -1014,6 +1039,89 @@ 2CDE; C; 2CDF; # COPTIC CAPITAL LETTER OLD NUBIAN NGI 2CE0; C; 2CE1; # COPTIC CAPITAL LETTER OLD NUBIAN NYI 2CE2; C; 2CE3; # COPTIC CAPITAL LETTER OLD NUBIAN WAU +2CEB; C; 2CEC; # COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI +2CED; C; 2CEE; # COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA +A640; C; A641; # CYRILLIC CAPITAL LETTER ZEMLYA +A642; C; A643; # CYRILLIC CAPITAL LETTER DZELO +A644; C; A645; # CYRILLIC CAPITAL LETTER REVERSED DZE +A646; C; A647; # CYRILLIC CAPITAL LETTER IOTA +A648; C; A649; # CYRILLIC CAPITAL LETTER DJERV +A64A; C; A64B; # CYRILLIC CAPITAL LETTER MONOGRAPH UK +A64C; C; A64D; # CYRILLIC CAPITAL LETTER BROAD OMEGA +A64E; C; A64F; # CYRILLIC CAPITAL LETTER NEUTRAL YER +A650; C; A651; # CYRILLIC CAPITAL LETTER YERU WITH BACK YER +A652; C; A653; # CYRILLIC CAPITAL LETTER IOTIFIED YAT +A654; C; A655; # CYRILLIC CAPITAL LETTER REVERSED YU +A656; C; A657; # CYRILLIC CAPITAL LETTER IOTIFIED A +A658; C; A659; # CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS +A65A; C; A65B; # CYRILLIC CAPITAL LETTER BLENDED YUS +A65C; C; A65D; # CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS +A65E; C; A65F; # CYRILLIC CAPITAL LETTER YN +A662; C; A663; # CYRILLIC CAPITAL LETTER SOFT DE +A664; C; A665; # CYRILLIC CAPITAL LETTER SOFT EL +A666; C; A667; # CYRILLIC CAPITAL LETTER SOFT EM +A668; C; A669; # CYRILLIC CAPITAL LETTER MONOCULAR O +A66A; C; A66B; # CYRILLIC CAPITAL LETTER BINOCULAR O +A66C; C; A66D; # CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O +A680; C; A681; # CYRILLIC CAPITAL LETTER DWE +A682; C; A683; # CYRILLIC CAPITAL LETTER DZWE +A684; C; A685; # CYRILLIC CAPITAL LETTER ZHWE +A686; C; A687; # CYRILLIC CAPITAL LETTER CCHE +A688; C; A689; # CYRILLIC CAPITAL LETTER DZZE +A68A; C; A68B; # CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK +A68C; C; A68D; # CYRILLIC CAPITAL LETTER TWE +A68E; C; A68F; # CYRILLIC CAPITAL LETTER TSWE +A690; C; A691; # CYRILLIC CAPITAL LETTER TSSE +A692; C; A693; # CYRILLIC CAPITAL LETTER TCHE +A694; C; A695; # CYRILLIC CAPITAL LETTER HWE +A696; C; A697; # CYRILLIC CAPITAL LETTER SHWE +A722; C; A723; # LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF +A724; C; A725; # LATIN CAPITAL LETTER EGYPTOLOGICAL AIN +A726; C; A727; # LATIN CAPITAL LETTER HENG +A728; C; A729; # LATIN CAPITAL LETTER TZ +A72A; C; A72B; # LATIN CAPITAL LETTER TRESILLO +A72C; C; A72D; # LATIN CAPITAL LETTER CUATRILLO +A72E; C; A72F; # LATIN CAPITAL LETTER CUATRILLO WITH COMMA +A732; C; A733; # LATIN CAPITAL LETTER AA +A734; C; A735; # LATIN CAPITAL LETTER AO +A736; C; A737; # LATIN CAPITAL LETTER AU +A738; C; A739; # LATIN CAPITAL LETTER AV +A73A; C; A73B; # LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR +A73C; C; A73D; # LATIN CAPITAL LETTER AY +A73E; C; A73F; # LATIN CAPITAL LETTER REVERSED C WITH DOT +A740; C; A741; # LATIN CAPITAL LETTER K WITH STROKE +A742; C; A743; # LATIN CAPITAL LETTER K WITH DIAGONAL STROKE +A744; C; A745; # LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE +A746; C; A747; # LATIN CAPITAL LETTER BROKEN L +A748; C; A749; # LATIN CAPITAL LETTER L WITH HIGH STROKE +A74A; C; A74B; # LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY +A74C; C; A74D; # LATIN CAPITAL LETTER O WITH LOOP +A74E; C; A74F; # LATIN CAPITAL LETTER OO +A750; C; A751; # LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER +A752; C; A753; # LATIN CAPITAL LETTER P WITH FLOURISH +A754; C; A755; # LATIN CAPITAL LETTER P WITH SQUIRREL TAIL +A756; C; A757; # LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER +A758; C; A759; # LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE +A75A; C; A75B; # LATIN CAPITAL LETTER R ROTUNDA +A75C; C; A75D; # LATIN CAPITAL LETTER RUM ROTUNDA +A75E; C; A75F; # LATIN CAPITAL LETTER V WITH DIAGONAL STROKE +A760; C; A761; # LATIN CAPITAL LETTER VY +A762; C; A763; # LATIN CAPITAL LETTER VISIGOTHIC Z +A764; C; A765; # LATIN CAPITAL LETTER THORN WITH STROKE +A766; C; A767; # LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER +A768; C; A769; # LATIN CAPITAL LETTER VEND +A76A; C; A76B; # LATIN CAPITAL LETTER ET +A76C; C; A76D; # LATIN CAPITAL LETTER IS +A76E; C; A76F; # LATIN CAPITAL LETTER CON +A779; C; A77A; # LATIN CAPITAL LETTER INSULAR D +A77B; C; A77C; # LATIN CAPITAL LETTER INSULAR F +A77D; C; 1D79; # LATIN CAPITAL LETTER INSULAR G +A77E; C; A77F; # LATIN CAPITAL LETTER TURNED INSULAR G +A780; C; A781; # LATIN CAPITAL LETTER TURNED L +A782; C; A783; # LATIN CAPITAL LETTER INSULAR R +A784; C; A785; # LATIN CAPITAL LETTER INSULAR S +A786; C; A787; # LATIN CAPITAL LETTER INSULAR T +A78B; C; A78C; # LATIN CAPITAL LETTER SALTILLO FB00; F; 0066 0066; # LATIN SMALL LIGATURE FF FB01; F; 0066 0069; # LATIN SMALL LIGATURE FI FB02; F; 0066 006C; # LATIN SMALL LIGATURE FL From behdad at behdad.org Wed Nov 18 07:01:14 2009 From: behdad at behdad.org (Behdad Esfahbod) Date: Wed, 18 Nov 2009 10:01:14 -0500 Subject: [Fontconfig] Cache version bump plus new version In-Reply-To: <4B03FEFD.2090306@mandriva.com> References: <4B01E21C.7040906@behdad.org> <4B03FEFD.2090306@mandriva.com> Message-ID: <4B040C3A.6030602@behdad.org> On 11/18/2009 09:04 AM, Frederic Crozat wrote: > Le 17/11/2009 00:37, Behdad Esfahbod a ?crit : > >> I plan to release this as 2.8.0. Will appreciate some testing in the mean >> while though. I may make a 2.7.90 snapshot later tonight or tomorrow. Or may >> release 2.8.0 straight. > > I confirm it fixes our upgrade issue from fontconfig 2.6.0 Thanks. I'm doing some minor cleaning also. When would be your latest deadline for 2.8.0 if you want to ship that? behdad From fcrozat at mandriva.com Wed Nov 18 07:09:24 2009 From: fcrozat at mandriva.com (Frederic Crozat) Date: Wed, 18 Nov 2009 16:09:24 +0100 Subject: [Fontconfig] Cache version bump plus new version In-Reply-To: <4B040C3A.6030602@behdad.org> References: <4B01E21C.7040906@behdad.org> <4B03FEFD.2090306@mandriva.com> <4B040C3A.6030602@behdad.org> Message-ID: <4B040E24.7010300@mandriva.com> Le 18/11/2009 16:01, Behdad Esfahbod a ?crit : > On 11/18/2009 09:04 AM, Frederic Crozat wrote: >> Le 17/11/2009 00:37, Behdad Esfahbod a ?crit : >> >>> I plan to release this as 2.8.0. Will appreciate some testing in the >>> mean >>> while though. I may make a 2.7.90 snapshot later tonight or tomorrow. >>> Or may >>> release 2.8.0 straight. >> >> I confirm it fixes our upgrade issue from fontconfig 2.6.0 > > Thanks. I'm doing some minor cleaning also. When would be your latest > deadline for 2.8.0 if you want to ship that? The sooner, the better :) -- Frederic Crozat Mandriva From behdad at behdad.org Wed Nov 18 08:05:46 2009 From: behdad at behdad.org (Behdad Esfahbod) Date: Wed, 18 Nov 2009 11:05:46 -0500 Subject: [Fontconfig] Problems with fc-arch Message-ID: <4B041B5A.50508@behdad.org> Hi, While doing general maintenance I ended up cleaning all the different source files we generate during build (fclang.h, fccase.h, fcglyhnames.h, fcarch.h). Of those four, the first three are static and I decide to ship in the tarball. This should make cross-compiling a tad bit easier. I figured that configure.in already tries to find CC_FOR_BUILD and EXEEXT_FOR_BUILD. And surprisingly, those are used to compile and run fc-arch.c, which means the architecture detected will be the build architecture, not the target! I'm guessing that the end result have been that all the embedded companies commpiling fontconfig for ARM have been getting cache files with an x86 extension, but since those caches were not shared, this didn't cause any problem. To fix this, I'm thinking about getting rid of fc-arch.c and move the logic into a compile-time header file. Something like: #define CHECK_ARCH(arch, sizeof_Align, sizeof_char, sizeof_int, sizeof_long) \ (sizeof (FcAlign) == sizeof_Align && \ sizeof (char) == sizeof_char && \ sizeof (int) == sizeof_int && \ sizeof (long) == sizeof_long) ? (arch) #define FC_ARCHITECTURE (\ CHECK_ARCH("x86", 4,1,4,4) : \ CHECK_ARCH("x86-64", 8,1,4,8) : \ "unknown" ) This should work fine. The only problem is, it's not very friendly to new architectures: 1) falls back to "unknown". Can't err. Maybe if I use something like: extern char *unknown_architecture; #define FC_ARCHITECTURE (\ CHECK_ARCH("x86", 4,1,4,4) : \ CHECK_ARCH("x86-64", 8,1,4,8) : \ unknown_architecture ) it may fail at link time. But may also fail if compiled without optimizations? Donno. Another option is to move all the logic to configure. AC_CHECK_SIZEOF these days can find sizeof(type) even when cross-compiling (it binary searches!). In fact, there's even AC_COMPUTE_INT() which gets the number out to a shell variable. So we can find all the sizes we use and do the arch-finding magic in configure. This has the following benefits: - It errs during configure if arch is unknown, and will print instructions and the signature to add. Good. - Arch can be overridden using a configure argument. Good. - We can use the arch name in Makefile.am. For example, I also have a plan to replace fc-cache with a shell script that will run any file executable file in '$(bindir)/fc-cache.d/'. And then install the actual binary of fc-cache as '$(bindir)/fc-cache.d/fc-cache-$(ARCH)'. This way, on multi-arch machines, fc-cache which will do the right thing, which is generating caches for both archs. - The configure checks may be a bit slow. - The downside of this scheme is that it's autotools-based. But then again, people compiling using other tools already have to define FC_ARCHITECTURE to something. They can keep doing that. Unless someone shouts, I think I'm going to implement the configure scheme, ship the other generated files, and get rid of CC_FOR_BUILD stuff. behdad From nicolas.mailhot at laposte.net Wed Nov 18 08:32:38 2009 From: nicolas.mailhot at laposte.net (Nicolas Mailhot) Date: Wed, 18 Nov 2009 17:32:38 +0100 Subject: [Fontconfig] Problems with fc-arch In-Reply-To: <4B041B5A.50508@behdad.org> References: <4B041B5A.50508@behdad.org> Message-ID: <1258561958.20497.8.camel@arekh.okg> Hi, Nice to see some movement fontconfig-side. 1. please do not create '$(bindir)/fc-cache.d/' monstruosities. Use /usr/lib???/fontconfig for that as per FHS 2. please consider making fontconfig depend on an external provider of unicode tables & adobe glyph lists. Fontconfig should really not keep a private copy of those, that makes full-distro updating hard. 3. please consider moving the built-in fontconfig files from /etc/conf.avail to /usr/share/fontconfig/conf.avail as per FHS 4. please consider installing the fontconfig DTD in /usr/share/xml as per FHS (and register it in system xml catalogs) 5. please consider adding an heuristic like the one used by MS in WPF to compute cleaned-up font & face names for non-WWS fonts (sending my rfe list since it's getting closer to christmas) -- Nicolas Mailhot -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?= Url : http://lists.freedesktop.org/archives/fontconfig/attachments/20091118/5fae430c/attachment.pgp From behdad at behdad.org Wed Nov 18 08:42:29 2009 From: behdad at behdad.org (Behdad Esfahbod) Date: Wed, 18 Nov 2009 11:42:29 -0500 Subject: [Fontconfig] Problems with fc-arch In-Reply-To: <1258561958.20497.8.camel@arekh.okg> References: <4B041B5A.50508@behdad.org> <1258561958.20497.8.camel@arekh.okg> Message-ID: <4B0423F5.4080602@behdad.org> Wow, quite a list! Ok, given the current situation (broken 2.7.3, need to get 2.8.0 out with the new cache format), lets get 2.8.0 out today with no further changes such that we can push it to stable distros as an update to 2.7 and start the 2.9 cycle, aim for 2.10 in January. Comments below: On 11/18/2009 11:32 AM, Nicolas Mailhot wrote: > 1. please do not create '$(bindir)/fc-cache.d/' monstruosities. > Use /usr/lib???/fontconfig for that as per FHS Right, libexec sounds right. > 2. please consider making fontconfig depend on an external provider of > unicode tables& We only use case mapping. Linking to glib/icu just for that is out of question right now. But is in my longterm plan when I either write my own unicode character database library or make icu's lightweight and usable. > adobe glyph lists. We don't use it. The file was in git, I removed it earlier today. We just use the zapfdingbats.txt. I assume because FreeType doesn't handle that? > Fontconfig should really not keep a > private copy of those, that makes full-distro updating hard. Tell me about it... Still have to update the stack to Unicode 5.2. > 3. please consider moving the built-in fontconfig files > from /etc/conf.avail to /usr/share/fontconfig/conf.avail as per FHS Right. Will do for 2.10. I don't see any backward compat issues. > 4. please consider installing the fontconfig DTD in /usr/share/xml as > per FHS (and register it in system xml catalogs) Sure. Can you point me to the Makefile.am magic for that? Plus, I need to make a decision re: https://bugs.freedesktop.org/show_bug.cgi?id=1281 > 5. please consider adding an heuristic like the one used by MS in WPF to > compute cleaned-up font& face names for non-WWS fonts I'll do. But it's really touchy. I need to go back and read the WWS paper again. > (sending my rfe list since it's getting closer to christmas) Good timing. behdad From behdad at behdad.org Wed Nov 18 09:35:13 2009 From: behdad at behdad.org (Behdad Esfahbod) Date: Wed, 18 Nov 2009 12:35:13 -0500 Subject: [Fontconfig] Problems with fc-arch In-Reply-To: <4B042AED.3090606@suwalski.net> References: <4B041B5A.50508@behdad.org> <4B042AED.3090606@suwalski.net> Message-ID: <4B043051.5010604@behdad.org> On 11/18/2009 12:12 PM, Pat Suwalski wrote: > Behdad Esfahbod wrote: >> #define FC_ARCHITECTURE (\ >> CHECK_ARCH("x86", 4,1,4,4) : \ >> CHECK_ARCH("x86-64", 8,1,4,8) : \ >> "unknown" ) > > On a possibly-related sidenote (yey for thread hijacking!), I wonder if > this macro is responsible for another minor issue: > > With the armel platform, I get cache files like the following: > > 089dead882dea3570ffc31a9898cfb69-mipsel.cache-2 > > While it's really cool to see a real-world hash containing 0xDEAD, the > architecture is marked as mipsel. In most situations this will not be a > problem, but there does seem to be a bad assumption made somewhere. > > This is fontconfig-2.6.0, so things may have moved along. Check fontconfig/fc-arch/fcarch.tmpl.h. It just means that armel and mipsel have the same signature (which is hardly surprising). If you have a better name for the platform, toss it NOW and I'll change it in 2.8 (since the cache version is changed). It's not a big deal. And, you were not cross-compiling, right? behdad > --Pat > From pat at suwalski.net Wed Nov 18 09:12:13 2009 From: pat at suwalski.net (Pat Suwalski) Date: Wed, 18 Nov 2009 12:12:13 -0500 Subject: [Fontconfig] Problems with fc-arch In-Reply-To: <4B041B5A.50508@behdad.org> References: <4B041B5A.50508@behdad.org> Message-ID: <4B042AED.3090606@suwalski.net> Behdad Esfahbod wrote: > #define FC_ARCHITECTURE (\ > CHECK_ARCH("x86", 4,1,4,4) : \ > CHECK_ARCH("x86-64", 8,1,4,8) : \ > "unknown" ) On a possibly-related sidenote (yey for thread hijacking!), I wonder if this macro is responsible for another minor issue: With the armel platform, I get cache files like the following: 089dead882dea3570ffc31a9898cfb69-mipsel.cache-2 While it's really cool to see a real-world hash containing 0xDEAD, the architecture is marked as mipsel. In most situations this will not be a problem, but there does seem to be a bad assumption made somewhere. This is fontconfig-2.6.0, so things may have moved along. --Pat From pat at suwalski.net Wed Nov 18 10:17:20 2009 From: pat at suwalski.net (Pat Suwalski) Date: Wed, 18 Nov 2009 13:17:20 -0500 Subject: [Fontconfig] Problems with fc-arch In-Reply-To: <4B043051.5010604@behdad.org> References: <4B041B5A.50508@behdad.org> Message-ID: <4B043A30.3010409@suwalski.net> Behdad Esfahbod wrote: > Check fontconfig/fc-arch/fcarch.tmpl.h. It just means that armel and > mipsel have the same signature (which is hardly surprising). If you > have a better name for the platform, toss it NOW and I'll change it in > 2.8 (since the cache version is changed). It's not a big deal. I've given it a few minutes of thought and can't think of a better name. I would hate to give it some combined name only to find that any number of other architectures have the same signature. But it's good to know that it's an issue of naming as opposed to being erroneously detected. > And, you were not cross-compiling, right? No, not cross-compiling. Native compilation is the way to go, IMO. --Pat From tml at iki.fi Wed Nov 18 10:24:08 2009 From: tml at iki.fi (Tor Lillqvist) Date: Wed, 18 Nov 2009 20:24:08 +0200 Subject: [Fontconfig] Problems with fc-arch In-Reply-To: <4B043051.5010604@behdad.org> References: <4B041B5A.50508@behdad.org> <4B042AED.3090606@suwalski.net> <4B043051.5010604@behdad.org> Message-ID: > Check fontconfig/fc-arch/fcarch.tmpl.h. ?It just means that armel and mipsel > have the same signature (which is hardly surprising). Even 32-bit x86 Windows has the same;) >?If you have a better name for the platform, toss it NOW Just use a hash code of the properties of the architecture? --tml From behdad at behdad.org Wed Nov 18 10:53:23 2009 From: behdad at behdad.org (Behdad Esfahbod) Date: Wed, 18 Nov 2009 13:53:23 -0500 Subject: [Fontconfig] Problems with fc-arch In-Reply-To: References: <4B041B5A.50508@behdad.org> <4B042AED.3090606@suwalski.net> <4B043051.5010604@behdad.org> Message-ID: <4B0442A3.5070909@behdad.org> On 11/18/2009 01:24 PM, Tor Lillqvist wrote: >> Check fontconfig/fc-arch/fcarch.tmpl.h. It just means that armel and mipsel >> have the same signature (which is hardly surprising). > > Even 32-bit x86 Windows has the same;) I just checked the signature and the only difference with x86 is that the mipsel one has a 8-byte alignment for double whereas x86 has 4byte alignment. That's quite unfortunate though, since this struct is public. Means that fontconfig binaries can't be shared between gcc and MSVC :(. The relevant gcc option is: -malign-double -mno-align-double Control whether GCC aligns "double", "long double", and "long long" variables on a two word boundary or a one word boundary. Aligning "double" variables on a two word boundary will produce code that runs somewhat faster on a Pentium at the expense of more memory. On x86-64, -malign-double is enabled by default. Warning: if you use the -malign-double switch, structures containing the above types will be aligned differently than the published application binary interface specifications for the 386 and will not be binary compatible with structures in code compiled without that switch. I checked all the signatures. They all boil down to three properties: - Endian-ness - Long-size (ie. 32bit vs 64bit) - For 32bit systems, the double alignment So, there's a total of 6 different architectures. In fact, ppc64 and sparc64 there are dupes right now. Lets name them this way: x86: le32n mipsel: le32w x86-64: le64 m68k: be32n ppc: be32w ppc64: le64 How does that sound? >> If you have a better name for the platform, toss it NOW > > Just use a hash code of the properties of the architecture? I thought about that. It makes the cache file names less intuitive for no particular benefit. Plus, there's a good reason to not rely on hashes: the properties we check for may change in the future and that would change the hash every time. behdad > --tml > From tml at iki.fi Wed Nov 18 11:11:44 2009 From: tml at iki.fi (Tor Lillqvist) Date: Wed, 18 Nov 2009 21:11:44 +0200 Subject: [Fontconfig] Problems with fc-arch In-Reply-To: <4B0442A3.5070909@behdad.org> References: <4B041B5A.50508@behdad.org> <4B042AED.3090606@suwalski.net> <4B043051.5010604@behdad.org> <4B0442A3.5070909@behdad.org> Message-ID: > That's quite unfortunate though, since this struct is public. >?Means that fontconfig binaries can't be shared between gcc and MSVC :(. Sure they can. gcc for Windows follows MSVC alignment rules. > They all boil down to three properties > ?- Endian-ness > ?- Long-size (ie. 32bit vs 64bit) > ?- For 32bit systems, the double alignment But not pointer size? (Which differs from "long" size on 64-bit Windows.) --tml From behdad at behdad.org Wed Nov 18 11:14:46 2009 From: behdad at behdad.org (Behdad Esfahbod) Date: Wed, 18 Nov 2009 14:14:46 -0500 Subject: [Fontconfig] Problems with fc-arch In-Reply-To: References: <4B041B5A.50508@behdad.org> <4B042AED.3090606@suwalski.net> <4B043051.5010604@behdad.org> <4B0442A3.5070909@behdad.org> Message-ID: <4B0447A6.4090703@behdad.org> On 11/18/2009 02:11 PM, Tor Lillqvist wrote: >> That's quite unfortunate though, since this struct is public. >> Means that fontconfig binaries can't be shared between gcc and MSVC :(. > > Sure they can. gcc for Windows follows MSVC alignment rules. > >> They all boil down to three properties >> - Endian-ness >> - Long-size (ie. 32bit vs 64bit) >> - For 32bit systems, the double alignment > > But not pointer size? (Which differs from "long" size on 64-bit Windows.) Then we don't have any signature for that. All the signatures I have pointer sizes equal to long size. What's the 64-bit Windows pointer size? It would be best if you give it a try and give me the signature in fact. behdad > --tml > From behdad at kemper.freedesktop.org Wed Nov 18 11:16:49 2009 From: behdad at kemper.freedesktop.org (Behdad Esfahbod) Date: Wed, 18 Nov 2009 11:16:49 -0800 (PST) Subject: [Fontconfig] fontconfig: Branch 'master' Message-ID: <20091118191652.BFCA410051@kemper.freedesktop.org> fc-arch/fc-arch.c | 10 +++++----- fc-arch/fcarch.tmpl.h | 42 ++++++++++++++++++++++++++++++++++-------- 2 files changed, 39 insertions(+), 13 deletions(-) New commits: commit d5ebf48e34e9235cf10e9f7beb49af74823c3fc6 Author: Behdad Esfahbod Date: Wed Nov 18 14:08:00 2009 -0500 [fc-arch] Beautify the arch template diff --git a/fc-arch/fc-arch.c b/fc-arch/fc-arch.c index 09a9d82..1ef0cf1 100644 --- a/fc-arch/fc-arch.c +++ b/fc-arch/fc-arch.c @@ -24,8 +24,8 @@ #include "fcint.h" #include -#define ENDIAN_TEST 0x12345678 -#define MACHINE_SIGNATURE_SIZE (9*23 + 1) +#define ENDIAN_TEST 0x01020304 +#define MACHINE_SIGNATURE_SIZE 1024 static char * FcCacheMachineSignature (void) @@ -34,9 +34,9 @@ FcCacheMachineSignature (void) int32_t magic = ENDIAN_TEST; char * m = (char *)&magic; - sprintf (buf, "%2x%2x%2x%2x_" - "%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_" - "%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x", + sprintf (buf, "%01x%01x%01x%01x_" + "%02x_%02x_%02x_%02x_%02x_%02x_%02x_%02x_%02x_%02x_%02x_%02x_" + "%02x_%02x_%02x_%02x_%02x_%02x_%02x_%02x_%02x_%02x", m[0], m[1], m[2], m[3], (unsigned int)sizeof (FcAlign), (unsigned int)sizeof (char), diff --git a/fc-arch/fcarch.tmpl.h b/fc-arch/fcarch.tmpl.h index 09eccdc..8d592e9 100644 --- a/fc-arch/fcarch.tmpl.h +++ b/fc-arch/fcarch.tmpl.h @@ -28,11 +28,37 @@ @@@ name. Architecture names are used to construct file names, so @@@ use something reasonable and don't include any spaces @@@ -@@@ name endian FcAlign char char* int intptr_t Pattern EltPtr Elt * Elt ObjPtr VLPtr Value Binding VL * StrSet * CharSet Leaf** Char16 * Char16 Leaf Char32 Cache -x86 78563412_00000008_00000001_00000004_00000004_00000004_00000010_00000004_00000004_00000008_00000004_00000004_0000000c_00000004_00000004_00000004_00000010_00000004_00000004_00000002_00000020_00000004_00000020 -x86-64 78563412_00000008_00000001_00000008_00000004_00000008_00000018_00000008_00000008_00000010_00000004_00000008_00000010_00000004_00000008_00000008_00000018_00000008_00000008_00000002_00000020_00000004_00000038 -ppc 12345678_00000008_00000001_00000004_00000004_00000004_00000010_00000004_00000004_00000008_00000004_00000004_00000010_00000004_00000004_00000004_00000010_00000004_00000004_00000002_00000020_00000004_00000020 -ppc64 12345678_00000008_00000001_00000008_00000004_00000008_00000018_00000008_00000008_00000010_00000004_00000008_00000010_00000004_00000008_00000008_00000018_00000008_00000008_00000002_00000020_00000004_00000038 -m68k 12345678_00000008_00000001_00000004_00000004_00000004_00000010_00000004_00000004_00000008_00000004_00000004_0000000c_00000004_00000004_00000004_00000010_00000004_00000004_00000002_00000020_00000004_00000020 -mipsel 78563412_00000008_00000001_00000004_00000004_00000004_00000010_00000004_00000004_00000008_00000004_00000004_00000010_00000004_00000004_00000004_00000010_00000004_00000004_00000002_00000020_00000004_00000020 -sparc64 12345678_00000008_00000001_00000008_00000004_00000008_00000018_00000008_00000008_00000010_00000004_00000008_00000010_00000004_00000008_00000008_00000018_00000008_00000008_00000002_00000020_00000004_00000038 +@@@ So far the differences boil down to: endianness, 32 vs 64 bit, and on +@@@ 32bit archs, whether double is aligned to one word or two words. +@@@ +@@@ ,name +@@@ | ,endian +@@@ | | ,FcAlign +@@@ | | | ,char +@@@ | | | | ,char* +@@@ | | | | | ,int +@@@ | | | | | | ,intptr_t +@@@ | | | | | | | ,Pattern +@@@ | | | | | | | | ,EltPtr +@@@ | | | | | | | | | ,Elt * +@@@ | | | | | | | | | | ,Elt +@@@ | | | | | | | | | | | ,ObjPtr +@@@ | | | | | | | | | | | | ,ValueListPtr +@@@ | | | | | | | | | | | | | ,Value +@@@ | | | | | | | | | | | | | | ,ValueBinding +@@@ | | | | | | | | | | | | | | | ,ValueList * +@@@ | | | | | | | | | | | | | | | | ,StrSet * +@@@ | | | | | | | | | | | | | | | | | ,CharSet +@@@ | | | | | | | | | | | | | | | | | | ,CharLeaf ** +@@@ | | | | | | | | | | | | | | | | | | | ,Char16 * +@@@ | | | | | | | | | | | | | | | | | | | | ,Char16 +@@@ | | | | | | | | | | | | | | | | | | | | | ,CharLeaf +@@@ | | | | | | | | | | | | | | | | | | | | | | ,Char32 +@@@ | | | | | | | | | | | | | | | | | | | | | | | ,Cache +@@@ | | | | | | | | | | | | | | | | | | | | | | | | +x86 4321_08_01_04_04_04_10_04_04_08_04_04_0c_04_04_04_10_04_04_02_20_04_20 +mipsel 4321_08_01_04_04_04_10_04_04_08_04_04_10_04_04_04_10_04_04_02_20_04_20 +x86-64 4321_08_01_08_04_08_18_08_08_10_04_08_10_04_08_08_18_08_08_02_20_04_38 +m68k 1234_08_01_04_04_04_10_04_04_08_04_04_0c_04_04_04_10_04_04_02_20_04_20 +ppc 1234_08_01_04_04_04_10_04_04_08_04_04_10_04_04_04_10_04_04_02_20_04_20 +ppc64 1234_08_01_08_04_08_18_08_08_10_04_08_10_04_08_08_18_08_08_02_20_04_38 From tml at iki.fi Wed Nov 18 11:26:41 2009 From: tml at iki.fi (Tor Lillqvist) Date: Wed, 18 Nov 2009 21:26:41 +0200 Subject: [Fontconfig] Problems with fc-arch In-Reply-To: <4B0447A6.4090703@behdad.org> References: <4B041B5A.50508@behdad.org> <4B042AED.3090606@suwalski.net> <4B043051.5010604@behdad.org> <4B0442A3.5070909@behdad.org> <4B0447A6.4090703@behdad.org> Message-ID: > What's the 64-bit Windows pointer size? Well, d'oh, 64 bits;) > It would be best if you give it a try and give me the signature in fact. Will do. --tml From behdad at kemper.freedesktop.org Wed Nov 18 11:43:22 2009 From: behdad at kemper.freedesktop.org (Behdad Esfahbod) Date: Wed, 18 Nov 2009 11:43:22 -0800 (PST) Subject: [Fontconfig] fontconfig: Branch 'master' Message-ID: <20091118194322.C637B10051@kemper.freedesktop.org> fc-arch/fcarch.tmpl.h | 67 +++++++++++++++++++++++++------------------------- 1 file changed, 34 insertions(+), 33 deletions(-) New commits: commit 1845f3100d15927cc536bc3d38f140c139fb5614 Author: Behdad Esfahbod Date: Wed Nov 18 14:39:34 2009 -0500 [fc-arch] Rename architecture names to better reflect what they are We only care about three properties in the arch: - endianness - pointer size - for 32-bit archs, whether double is aligned on 4 or 8 bytes This leads to the following 6 archs (old name -> new name): x86 -> le32d4 mipsel -> le32d8 x86-64 -> le64 m68k -> be32d4 ppc -> be32d8 ppc64 -> be64 diff --git a/fc-arch/fcarch.tmpl.h b/fc-arch/fcarch.tmpl.h index 8d592e9..363e11a 100644 --- a/fc-arch/fcarch.tmpl.h +++ b/fc-arch/fcarch.tmpl.h @@ -28,37 +28,38 @@ @@@ name. Architecture names are used to construct file names, so @@@ use something reasonable and don't include any spaces @@@ -@@@ So far the differences boil down to: endianness, 32 vs 64 bit, and on -@@@ 32bit archs, whether double is aligned to one word or two words. +@@@ So far the differences boil down to: endianness, 32 vs 64 bit pointers, +@@@ and on @@@ 32bit ones, whether double is aligned to one word or two words. +@@@ Those result in the 6 formats listed below. @@@ -@@@ ,name -@@@ | ,endian -@@@ | | ,FcAlign -@@@ | | | ,char -@@@ | | | | ,char* -@@@ | | | | | ,int -@@@ | | | | | | ,intptr_t -@@@ | | | | | | | ,Pattern -@@@ | | | | | | | | ,EltPtr -@@@ | | | | | | | | | ,Elt * -@@@ | | | | | | | | | | ,Elt -@@@ | | | | | | | | | | | ,ObjPtr -@@@ | | | | | | | | | | | | ,ValueListPtr -@@@ | | | | | | | | | | | | | ,Value -@@@ | | | | | | | | | | | | | | ,ValueBinding -@@@ | | | | | | | | | | | | | | | ,ValueList * -@@@ | | | | | | | | | | | | | | | | ,StrSet * -@@@ | | | | | | | | | | | | | | | | | ,CharSet -@@@ | | | | | | | | | | | | | | | | | | ,CharLeaf ** -@@@ | | | | | | | | | | | | | | | | | | | ,Char16 * -@@@ | | | | | | | | | | | | | | | | | | | | ,Char16 -@@@ | | | | | | | | | | | | | | | | | | | | | ,CharLeaf -@@@ | | | | | | | | | | | | | | | | | | | | | | ,Char32 -@@@ | | | | | | | | | | | | | | | | | | | | | | | ,Cache -@@@ | | | | | | | | | | | | | | | | | | | | | | | | -x86 4321_08_01_04_04_04_10_04_04_08_04_04_0c_04_04_04_10_04_04_02_20_04_20 -mipsel 4321_08_01_04_04_04_10_04_04_08_04_04_10_04_04_04_10_04_04_02_20_04_20 -x86-64 4321_08_01_08_04_08_18_08_08_10_04_08_10_04_08_08_18_08_08_02_20_04_38 -m68k 1234_08_01_04_04_04_10_04_04_08_04_04_0c_04_04_04_10_04_04_02_20_04_20 -ppc 1234_08_01_04_04_04_10_04_04_08_04_04_10_04_04_04_10_04_04_02_20_04_20 -ppc64 1234_08_01_08_04_08_18_08_08_10_04_08_10_04_08_08_18_08_08_02_20_04_38 +@@@ ,name (endianness,pointer-size,double-alignment) +@@@ | ,endian +@@@ | | ,FcAlign +@@@ | | | ,char +@@@ | | | | ,char* +@@@ | | | | | ,int +@@@ | | | | | | ,intptr_t +@@@ | | | | | | | ,Pattern +@@@ | | | | | | | | ,EltPtr +@@@ | | | | | | | | | ,Elt * +@@@ | | | | | | | | | | ,Elt +@@@ | | | | | | | | | | | ,ObjPtr +@@@ | | | | | | | | | | | | ,ValueListPtr +@@@ | | | | | | | | | | | | | ,Value +@@@ | | | | | | | | | | | | | | ,ValueBinding +@@@ | | | | | | | | | | | | | | | ,ValueList * +@@@ | | | | | | | | | | | | | | | | ,StrSet * +@@@ | | | | | | | | | | | | | | | | | ,CharSet +@@@ | | | | | | | | | | | | | | | | | | ,CharLeaf ** +@@@ | | | | | | | | | | | | | | | | | | | ,Char16 * +@@@ | | | | | | | | | | | | | | | | | | | | ,Char16 +@@@ | | | | | | | | | | | | | | | | | | | | | ,CharLeaf +@@@ | | | | | | | | | | | | | | | | | | | | | | ,Char32 +@@@ | | | | | | | | | | | | | | | | | | | | | | | ,Cache +@@@ | | | | | | | | | | | | | | | | | | | | | | | | +le32d4 4321_08_01_04_04_04_10_04_04_08_04_04_0c_04_04_04_10_04_04_02_20_04_20 +le32d8 4321_08_01_04_04_04_10_04_04_08_04_04_10_04_04_04_10_04_04_02_20_04_20 +le64 4321_08_01_08_04_08_18_08_08_10_04_08_10_04_08_08_18_08_08_02_20_04_38 +be32d4 1234_08_01_04_04_04_10_04_04_08_04_04_0c_04_04_04_10_04_04_02_20_04_20 +be32d8 1234_08_01_04_04_04_10_04_04_08_04_04_10_04_04_04_10_04_04_02_20_04_20 +be64 1234_08_01_08_04_08_18_08_08_10_04_08_10_04_08_08_18_08_08_02_20_04_38 From behdad at behdad.org Wed Nov 18 11:43:33 2009 From: behdad at behdad.org (Behdad Esfahbod) Date: Wed, 18 Nov 2009 14:43:33 -0500 Subject: [Fontconfig] fontconfig: Branch 'master' In-Reply-To: <20091118194322.C637B10051@kemper.freedesktop.org> References: <20091118194322.C637B10051@kemper.freedesktop.org> Message-ID: <4B044E65.6020505@behdad.org> So, after checking with Tor, I made the change. Seems like we don't care about sizeof(long), but size of pointers only. Anyway, now to making the release. Thanks all. behdad On 11/18/2009 02:43 PM, Behdad Esfahbod wrote: > [fc-arch] Rename architecture names to better reflect what they are > > We only care about three properties in the arch: > > - endianness > - pointer size > - for 32-bit archs, whether double is aligned on 4 or 8 bytes > > This leads to the following 6 archs (old name -> new name): > > x86 -> le32d4 > mipsel -> le32d8 > x86-64 -> le64 > m68k -> be32d4 > ppc -> be32d8 > ppc64 -> be64 From tml at kemper.freedesktop.org Wed Nov 18 12:04:49 2009 From: tml at kemper.freedesktop.org (Tor Lillqvist) Date: Wed, 18 Nov 2009 12:04:49 -0800 (PST) Subject: [Fontconfig] fontconfig: Branch 'master' - 2 commits Message-ID: <20091118200449.C6DDA10051@kemper.freedesktop.org> fontconfig-zip.in | 8 ++------ src/Makefile.am | 2 +- 2 files changed, 3 insertions(+), 7 deletions(-) New commits: commit 91a73751dcd4fd2d2e4e8bcb98af53098c721224 Author: Tor Lillqvist Date: Wed Nov 18 21:56:16 2009 +0200 Improve zip "distribution" Don't put entries for directories in the zip file. Fetch manpages from correct place. diff --git a/fontconfig-zip.in b/fontconfig-zip.in index ba6fd4a..1ca222c 100755 --- a/fontconfig-zip.in +++ b/fontconfig-zip.in @@ -15,7 +15,7 @@ etc/fonts/fonts.conf EOF rm -f $DEVZIP -zip -r $DEVZIP -@ < Date: Wed Nov 18 21:54:39 2009 +0200 Use correct autoconf variable Use LIBT_CURRENT_MINUS_AGE instead of the undefined lt_current_minus_age for the name of the DLL when generating the MS style import library. diff --git a/src/Makefile.am b/src/Makefile.am index 8b6379d..406e85e 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -52,7 +52,7 @@ if MS_LIB_AVAILABLE noinst_DATA = fontconfig.lib fontconfig.lib : libfontconfig.la - lib -name:libfontconfig-$(lt_current_minus_age).dll -def:fontconfig.def -out:$@ + lib -name:libfontconfig- at LIBT_CURRENT_MINUS_AGE@.dll -def:fontconfig.def -out:$@ install-ms-import-lib: $(INSTALL) fontconfig.lib $(DESTDIR)$(libdir) From behdad at kemper.freedesktop.org Wed Nov 18 15:50:59 2009 From: behdad at kemper.freedesktop.org (Behdad Esfahbod) Date: Wed, 18 Nov 2009 15:50:59 -0800 (PST) Subject: [Fontconfig] fontconfig: Branch 'master' - 2 commits Message-ID: <20091118235059.4774C10051@kemper.freedesktop.org> README | 32 ++++++++++++++++++++++++++++++-- configure.in | 4 ++-- fontconfig/fontconfig.h | 4 ++-- 3 files changed, 34 insertions(+), 6 deletions(-) New commits: commit 4a3bef8ac3b91354c6c10b5f6af10ead9d4fe49a Author: Behdad Esfahbod Date: Wed Nov 18 18:45:19 2009 -0500 Bump version to 2.8.0 diff --git a/README b/README index 4ea9147..adbaf36 100644 --- a/README +++ b/README @@ -1,12 +1,40 @@ Fontconfig Font configuration and customization library - Version 2.7.3 - 2009-09-08 + Version 2.8 + 2009-11-18 Check INSTALL for compilation and installation instructions. Report bugs to https://bugs.freedesktop.org in the fontconfig module. +2.8 + +Behdad Esfahbod (24): + Clarify default confdir and cachedir better. + Move FcAlign to fcint.h + [fc-arch] Add FcAlign to arch signature + [int] Define MIN/MAX/ABS macros + Bump cache version up from 2 to 3 and fix FcLangSet caching/crash + Remove unused macros + [int] Remove fc_storage_type() in favor of direct access to v->type + [int] Remove fc_value_* macros that did nothing other than renaming + Enable automake silent rules + [int] Remove more unused macros + [xml] Remove unused code + [arch] Try to ensure proper FcLangSet alignment in arch + [lang] Fix serializing LangSet from older versions + Make sure fclang.h and fcarch.h are built + Remove bogus comment + [fc-glyphname] Cleanup Makefile.am + [src] Create fcglyphname.h automatically + [fc-glyphname] Rename internal arrays to prefix with _fc_ + Clean up Makefile's a bit + [fc-glyphname] Remove Adobe glyphlist + [fc-case] Update CaseFolding.txt to Unicode 5.2.0 + [fc-arch] Beautify the arch template + [fc-arch] Rename architecture names to better reflect what they are + Bump libtool revision in preparation for release + 2.7.3 Behdad Esfahbod (2): diff --git a/configure.in b/configure.in index b7749bf..589b0c4 100644 --- a/configure.in +++ b/configure.in @@ -33,7 +33,7 @@ dnl This is the package version number, not the shared library dnl version. This same version number must appear in fontconfig/fontconfig.h dnl Yes, it is a pain to synchronize version numbers. Unfortunately, it's dnl not possible to extract the version number here from fontconfig.h -AM_INIT_AUTOMAKE(fontconfig, 2.7.3) +AM_INIT_AUTOMAKE(fontconfig, 2.8.0) m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) AM_MAINTAINER_MODE diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h index 7b36056..4efa450 100644 --- a/fontconfig/fontconfig.h +++ b/fontconfig/fontconfig.h @@ -52,8 +52,8 @@ typedef int FcBool; */ #define FC_MAJOR 2 -#define FC_MINOR 7 -#define FC_REVISION 3 +#define FC_MINOR 8 +#define FC_REVISION 0 #define FC_VERSION ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION)) commit 2e44cbe1b9bf466718167e9e05077743df36ab21 Author: Behdad Esfahbod Date: Wed Nov 18 18:45:06 2009 -0500 Bump libtool revision in preparation for release diff --git a/configure.in b/configure.in index b804064..b7749bf 100644 --- a/configure.in +++ b/configure.in @@ -43,7 +43,7 @@ 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=5 -LIBT_REVISION=3 +LIBT_REVISION=4 AC_SUBST(LIBT_CURRENT) AC_SUBST(LIBT_REVISION) LIBT_AGE=4 From behdad at kemper.freedesktop.org Wed Nov 18 15:51:05 2009 From: behdad at kemper.freedesktop.org (Behdad Esfahbod) Date: Wed, 18 Nov 2009 15:51:05 -0800 (PST) Subject: [Fontconfig] fontconfig: Changes to 'refs/tags/2.8.0' Message-ID: <20091118235105.E7AEE10051@kemper.freedesktop.org> Tag '2.8.0' created by Behdad Esfahbod at 2009-11-18 23:49 -0800 Version 2.8.0 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEABECAAYFAksEiAMACgkQn+4E5dNTERXTBACffE17X8UiTI/H4PIsLj2Tr0Px W2kAn2jI/Oa+5nIbHR7a4NDeHNvVKz7t =ILgh -----END PGP SIGNATURE----- Changes since 2.7.3-26: --- 0 files changed --- From behdad at behdad.org Wed Nov 18 15:56:22 2009 From: behdad at behdad.org (Behdad Esfahbod) Date: Wed, 18 Nov 2009 18:56:22 -0500 Subject: [Fontconfig] fontconfig-2.8.0 released Message-ID: <4B0489A6.7040402@behdad.org> It's out. I suggest everyone upgrade to it. It uses cache format 3, so it can't conflict with any older version :). behdad From dirtyepic at gentoo.org Thu Nov 19 18:29:40 2009 From: dirtyepic at gentoo.org (Ryan Hill) Date: Thu, 19 Nov 2009 20:29:40 -0600 Subject: [Fontconfig] fontconfig-2.8.0 released References: <4B0489A6.7040402@behdad.org> Message-ID: <20091119202940.6f49f69c@gentoo.org> On Wed, 18 Nov 2009 18:56:22 -0500 Behdad Esfahbod wrote: > It's out. I suggest everyone upgrade to it. It uses cache format 3, so it > can't conflict with any older version :). > > behdad Should fc-cache -r remove old cache files? -- fonts, Character is what you are in the dark. gcc-porting, wxwidgets @ gentoo EFFD 380E 047A 4B51 D2BD C64F 8AA8 8346 F9A4 0662 -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: not available Url : http://lists.freedesktop.org/archives/fontconfig/attachments/20091119/83c5ab39/attachment.pgp From akira at tagoh.org Fri Nov 20 00:52:00 2009 From: akira at tagoh.org (Akira TAGOH) Date: Fri, 20 Nov 2009 17:52:00 +0900 Subject: [Fontconfig] Proposal to always add FC_LANG_OBJECT to the pattern Message-ID: Hi, I'd like to propose to ensure FC_LANG_OBJECT is available in the pattern at fontconfig, for FcMatchPattern too. this would somewhat helps if applications is rendering the text without the certain language information, such as the plain text. Details: The behaviour really depends on how applications implements it. it may works as expected if they raise FcDefaultSubstitute() prior to FcConfigSubstitute(pat, FcMatchPattern), because FcDefaultSubstitute() adds FC_LANG_OBJECT and others too. I'm not talking about that case, but the case is FcConfigSubstitute(pat, FcMatchPattern) and FcDefaultSubstitute() then as fc-* tools and Pango do. In this case, fontconfig evaluates all of the matching rules that is targetting "pattern" without FC_LANG_OBJECT pattern, and applies. evaluating all of the matching rules that is targetting "font" with FC_LANG_OBJECT and applies then. this means all of the rules that contains like: lang sans-serif fontname is just skipped because no matches in the lang. this issue explains why LANG=mr_IN.UTF-8 fc-match and fc-match :lang=mr at http://bugs.freedesktop.org/show_bug.cgi?id=23419#c15 say made the different result. Why not adding FC_LANG_OBJECT anyway to the pattern for FcMatchPattern as well and ensure it in fontconfig to make all happy? Regards, -- Akira TAGOH From behdad at behdad.org Fri Nov 20 15:43:54 2009 From: behdad at behdad.org (Behdad Esfahbod) Date: Fri, 20 Nov 2009 18:43:54 -0500 Subject: [Fontconfig] fontconfig-2.8.0 released In-Reply-To: <20091119202940.6f49f69c@gentoo.org> References: <4B0489A6.7040402@behdad.org> <20091119202940.6f49f69c@gentoo.org> Message-ID: <4B0729BA.20603@behdad.org> On 11/19/2009 09:29 PM, Ryan Hill wrote: > On Wed, 18 Nov 2009 18:56:22 -0500 > Behdad Esfahbod wrote: > >> It's out. I suggest everyone upgrade to it. It uses cache format 3, so it >> can't conflict with any older version :). >> >> behdad > > Should fc-cache -r remove old cache files? Well, it's a valid usecase to access the same home directory from two machines, having different versions of fontconfig. While I agree that cleaning up on -r may make sense, I'm not sure which files to remove. Any file with 32 chars or longer? behdad From behdad at kemper.freedesktop.org Fri Nov 20 15:45:46 2009 From: behdad at kemper.freedesktop.org (Behdad Esfahbod) Date: Fri, 20 Nov 2009 15:45:46 -0800 (PST) Subject: [Fontconfig] fontconfig: Branch 'master' Message-ID: <20091120234547.1654310051@kemper.freedesktop.org> fc-cache/fc-cache.sgml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) New commits: commit 38bd85b83b2114d9a18da7b0ea73e0cdad5c7ee4 Author: Behdad Esfahbod Date: Fri Nov 20 18:44:04 2009 -0500 [fc-cache] Document -r argument in man page diff --git a/fc-cache/fc-cache.sgml b/fc-cache/fc-cache.sgml index 0b602a3..26c745d 100644 --- a/fc-cache/fc-cache.sgml +++ b/fc-cache/fc-cache.sgml @@ -63,8 +63,9 @@ manpage.1: manpage.sgml &dhpackage; - + + @@ -111,6 +112,14 @@ manpage.1: manpage.sgml + + + + + Erase all existing cache files and rescan. + + + From cloos at jhcloos.com Sat Nov 21 15:02:51 2009 From: cloos at jhcloos.com (James Cloos) Date: Sat, 21 Nov 2009 18:02:51 -0500 Subject: [Fontconfig] Problems with fc-arch In-Reply-To: <1258561958.20497.8.camel@arekh.okg> (Nicolas Mailhot's message of "Wed, 18 Nov 2009 17:32:38 +0100") References: <4B041B5A.50508@behdad.org> <1258561958.20497.8.camel@arekh.okg> Message-ID: >>>>> "N" == Nicolas Mailhot writes: Most of these suggestions are spot on, but: N> 3. please consider moving the built-in fontconfig files from N> /etc/conf.avail to /usr/share/fontconfig/conf.avail as per FHS I'm not convinced that they should move; they are end-user editable config files, symlinks from /etc to /usr are not always welcome, keeping one's /etc/fonts in a scm works better, (and I've managed to forget the other argument or two I wanted to make.) I think Keith was right to put all of the fontconfig configuration together in /etc/fonts. N> 4. please consider installing the fontconfig DTD in /usr/share/xml N> as per FHS (and register it in system xml catalogs) If so, please do this in addition to /etc/fonts/fonts.dtd, not instead of. -JimC -- James Cloos OpenPGP: 1024D/ED7DAEA6 From dirtyepic at gentoo.org Sat Nov 21 16:51:04 2009 From: dirtyepic at gentoo.org (Ryan Hill) Date: Sat, 21 Nov 2009 18:51:04 -0600 Subject: [Fontconfig] fontconfig-2.8.0 released In-Reply-To: <4B0729BA.20603@behdad.org> References: <4B0489A6.7040402@behdad.org> <20091119202940.6f49f69c@gentoo.org> <4B0729BA.20603@behdad.org> Message-ID: <20091121185104.3d7f67d0@gentoo.org> On Fri, 20 Nov 2009 18:43:54 -0500 Behdad Esfahbod wrote: > On 11/19/2009 09:29 PM, Ryan Hill wrote: > > On Wed, 18 Nov 2009 18:56:22 -0500 > > Behdad Esfahbod wrote: > > > >> It's out. I suggest everyone upgrade to it. It uses cache format 3, so it > >> can't conflict with any older version :). > >> > >> behdad > > > > Should fc-cache -r remove old cache files? > > Well, it's a valid usecase to access the same home directory from two > machines, having different versions of fontconfig. While I agree that > cleaning up on -r may make sense, I'm not sure which files to remove. Any > file with 32 chars or longer? Ah, didn't think of that. I was thinking about the global cache and expecting fc-cache -r to remove everything in the cachedir (including the version 2 cache files) and regen. -- fonts, Character is what you are in the dark. gcc-porting, wxwidgets @ gentoo EFFD 380E 047A 4B51 D2BD C64F 8AA8 8346 F9A4 0662 -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: not available Url : http://lists.freedesktop.org/archives/fontconfig/attachments/20091121/63f94137/attachment.pgp From nicolas.mailhot at laposte.net Sat Nov 21 20:09:11 2009 From: nicolas.mailhot at laposte.net (Nicolas Mailhot) Date: Sun, 22 Nov 2009 05:09:11 +0100 Subject: [Fontconfig] Problems with fc-arch In-Reply-To: References: <4B041B5A.50508@behdad.org> <1258561958.20497.8.camel@arekh.okg> Message-ID: <1258862951.28796.12.camel@arekh.okg> Le samedi 21 novembre 2009 ? 18:02 -0500, James Cloos a ?crit : > >>>>> "N" == Nicolas Mailhot writes: > > Most of these suggestions are spot on, but: > > N> 3. please consider moving the built-in fontconfig files from > N> /etc/conf.avail to /usr/share/fontconfig/conf.avail as per FHS > > I'm not convinced that they should move; they are end-user editable > config files, The files shipped with fontconfig are not user editable, if a user starts editing one without keeping a copy of the original file he is going to get into trouble (also letting users edit them directly asks for no end of ugly conflicts with package managers) Users should be encouraged to : 1. disable the config files they do not like by replacing the symlink in /etc/fonts/conf.d/ by an empty file (just removing the symlink will not prevent its re-creation at next package update) 2. create they own variant directly in conf.d under a separate name If the user wants to write a different config file, but disable it by default, he can either rename his file in /etc/fonts/conf.d/foo.conf to /etc/fonts/conf.d/foo.conf.dud or we can keep a /etc/fonts/conf.avail for this purpose (actual user-managed config files, not reference upstream template data he should never touch) > N> 4. please consider installing the fontconfig DTD in /usr/share/xml > N> as per FHS (and register it in system xml catalogs) > > If so, please do this in addition to /etc/fonts/fonts.dtd, not instead of. Isn't that a receipe for de-sync? -- Nicolas Mailhot -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?= Url : http://lists.freedesktop.org/archives/fontconfig/attachments/20091122/73c9d528/attachment.pgp From behdad at behdad.org Sun Nov 22 14:47:07 2009 From: behdad at behdad.org (Behdad Esfahbod) Date: Sun, 22 Nov 2009 17:47:07 -0500 Subject: [Fontconfig] Problems with fc-arch In-Reply-To: References: <4B041B5A.50508@behdad.org> <1258561958.20497.8.camel@arekh.okg> Message-ID: <4B09BF6B.5050508@behdad.org> On 11/21/2009 06:02 PM, James Cloos wrote: >>>>>> "N" == Nicolas Mailhot writes: > > Most of these suggestions are spot on, but: > > N> 3. please consider moving the built-in fontconfig files from > N> /etc/conf.avail to /usr/share/fontconfig/conf.avail as per FHS > > I'm not convinced that they should move; they are end-user editable > config files, symlinks from /etc to /usr are not always welcome, > keeping one's /etc/fonts in a scm works better, (and I've managed > to forget the other argument or two I wanted to make.) > > I think Keith was right to put all of the fontconfig configuration > together in /etc/fonts. Yes and no. I agree with what Nicolas said in his reply. In general the problem with the snippets in conf.avail is that it's not clear how they are supposed to be used. I suggest we take Nicolas's recommendations and write them out in conf.d/README. Nicolas, care to submit a patch? > N> 4. please consider installing the fontconfig DTD in /usr/share/xml > N> as per FHS (and register it in system xml catalogs) > > If so, please do this in addition to /etc/fonts/fonts.dtd, not instead of. I agree. On 11/21/2009 11:09 PM, Nicolas Mailhot wrote: > Isn't that a receipe for de-sync? Nah, why? Neither file is supposed to be modified. behdad From behdad at behdad.org Sun Nov 22 16:33:43 2009 From: behdad at behdad.org (Behdad Esfahbod) Date: Sun, 22 Nov 2009 19:33:43 -0500 Subject: [Fontconfig] Proposal to always add FC_LANG_OBJECT to the pattern In-Reply-To: References: Message-ID: <4B09D867.1000409@behdad.org> On 11/20/2009 03:52 AM, Akira TAGOH wrote: > is just skipped because no matches in the lang. this issue explains > why LANG=mr_IN.UTF-8 fc-match and fc-match :lang=mr at > http://bugs.freedesktop.org/show_bug.cgi?id=23419#c15 say made the > different result. Hi Akira, You're correct that this problem exists. I first found out about it in 2006 Text Layout Summit. However, it does not affect GTK+ applications since Pango always sets FC_LANG. But I want to fix this. > Why not adding FC_LANG_OBJECT anyway to the pattern for FcMatchPattern > as well and ensure it in fontconfig to make all happy? That doesn't fit in how fontconfig works. Where would that happen? In FcConfigSubstituter()? That doesn't sound like a good idea to me. Here's one way I can think of fixing this: - Expand env vars in the configuration (so you can use $LANG in your configuration file), - In the default configuration, very early, add $LANG to "lang" if there is no "lang" set. The problem with this is that $LANG needs a slight conversion (replacing _ with -) before it can be used for FC_LANG. Not sure how to fix that. While fixing this I also want to fix this bug: Add a FC_LOCALE_LANG element https://bugs.freedesktop.org/show_bug.cgi?id=17311 """ This would be quite similar to FC_LANG, except that it holds the default language of the locale, not the language we are looking for fonts for. The idea is that an application (Pango) looking for a font to render English always passes en as lang. However, in CJK locales, it may be desirable to select the same font for Latin as well as CJK. With the proposed element, a conf file can check whether FC_LOCALE_LANG is CJK and in that case, add the CJK font as the single preferred font. All this without affecting the case of not running under a CJK locale. """ That also can be fixed similarly. behdad