diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-08-08 17:47:06 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-08-09 11:07:23 +0000 |
commit | a3ee7849e3b0ad3d5f9595fa1cfd694c22dcee2a (patch) | |
tree | dab5d7f392b3b7d1198c0584ae0a1e0e8511967b /chromium/third_party/fontconfig | |
parent | 9a05d0e4db172168e429f30bc8ed62b695006490 (diff) | |
download | qtwebengine-chromium-a3ee7849e3b0ad3d5f9595fa1cfd694c22dcee2a.tar.gz |
BASELINE: Update Chromium to 60.0.3112.96
Change-Id: I8fa4120b6b8153b5be2520e57cf76c8d210bc2b5
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'chromium/third_party/fontconfig')
95 files changed, 11009 insertions, 5039 deletions
diff --git a/chromium/third_party/fontconfig/src/INSTALL b/chromium/third_party/fontconfig/src/INSTALL index aab4cddbc4f..670add1f32c 100644 --- a/chromium/third_party/fontconfig/src/INSTALL +++ b/chromium/third_party/fontconfig/src/INSTALL @@ -28,7 +28,7 @@ important steps: freedesktop.org:/srv/www.freedesktop.org/www/software/fontconfig/release 5. Update the Fontconfig Devel wiki page - https://www.freedesktop.org/wiki/Software/fontconfig/Devel/ + http://fontconfig.org/wiki/Devel 6. Update the fontconfig documentation diff --git a/chromium/third_party/fontconfig/src/Makefile.am b/chromium/third_party/fontconfig/src/Makefile.am index 2b4a5b82280..2b949e43963 100644 --- a/chromium/third_party/fontconfig/src/Makefile.am +++ b/chromium/third_party/fontconfig/src/Makefile.am @@ -21,7 +21,7 @@ # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -SUBDIRS=fontconfig fc-blanks fc-case fc-lang fc-glyphname src \ +SUBDIRS=fontconfig fc-case fc-lang fc-glyphname src \ fc-cache fc-cat fc-list fc-match fc-pattern fc-query fc-scan \ fc-validate conf.d test if ENABLE_DOCS diff --git a/chromium/third_party/fontconfig/src/README b/chromium/third_party/fontconfig/src/README index bf840a5e74e..d2288a55994 100644 --- a/chromium/third_party/fontconfig/src/README +++ b/chromium/third_party/fontconfig/src/README @@ -1,283 +1,12 @@ Fontconfig Font configuration and customization library - Version 2.12.1 - 2016-08-05 + Version 2.11 + 2013-10-11 Check INSTALL for compilation and installation instructions. Report bugs to https://bugs.freedesktop.org in the fontconfig module. -2.12.1 - -Akira TAGOH (6): - Add --with-default-hinting to configure - Update CaseFolding.txt to Unicode 9.0 - Check python installed in autogen.sh - Fix some errors related to python3 - Bug 96676 - Check range of FcWeightFromOpenType argument - Update libtool revision - -Tobias Stoeckmann (1): - Properly validate offsets in cache files. - -2.12 - -Akira TAGOH (8): - Modernize fc-blanks.py - Update URL - Bug 95477 - FcAtomicLock fails when SELinux denies link() syscall with EACCES - 45-latin.conf: Add some Windows fonts to categorize them properly - Correct one for the previous change - Bug 95481 - Build fails on Android due to broken lconv struct - Add the static raw data to generate fcblanks.h - Remove unused code - -Erik de Castro Lopo (1): - Fix a couple of minor memory leaks - -Petr Filipsky (1): - Fix memory leak in FcDirCacheLock - -2.11.95 (2.12 RC5) - -Akira TAGOH (22): - Add one more debugging option to see transformation on font-matching - Fix a crash when no objects are available after filtering - No need to be public - mark as private at this moment - Don't return FcFalse even when no fonts dirs is configured - Add a warning for blank in fonts.conf - Fix a memory leak in FcFreeTypeQueryFace - Update CaseFolding.txt to Unicode 8.0 - Bug 90867 - Memory Leak during error case in fccharset - Fix the broken cache more. - Fail on make runtime as needed instead of configure if no python installed - Use long long to see the same size between LP64 and LLP64 - Fix build issue on MinGW - Use int64_t instead of long long - Fix compiler warnings on MinGW - Fix assertion on 32bit arch - remomve unnecessary code - Bug 93075 - Possible fix for make check failure on msys/MinGW... - Avoid an error message on testing when no fonts.conf installed - Add hintstyle templates and make hintslight default - Revert "Workaround another race condition issue" - Update libtool revision - -Behdad Esfahbod (6): - Revert changes made to FcConfigAppFontAddDir() recently - Call FcFreeTypeQueryFace() from fcdir.c, instead of FcFreeTypeQuery() - [GX] Support instance weight, width, and style name - [GX] Enumerate all named-instances in TrueType GX fonts - Improve OpenType to Fontconfig weight mapping - [GX] Improve weight mapping - -Patrick Haller (1): - Optimizations in FcStrSet - -2.11.94 (2.12 RC4) - -Akira TAGOH (16): - Remove the dead code - Bug 89617 - FcConfigAppFontAddFile() returns false on any font file - Fix unknown attribute in Win32 - Fix SIGFPE - Fix a typo for the latest cache version - Fix a typo in fontconfig-user.sgml - Drop unmaintained code - Observe blanks to compute correct languages in fc-query/fc-scan - Add missing description for usage - Make FC_SCALE deprecated - Bug 90148 - Don't warn if cachedir isn't specified - Fix memory leaks after FcFini() - Fix a typo - Fix a crash - Detect the overflow for the object ID - Revert the previous change - -Behdad Esfahbod (11): - Fix bitmap scaling - Add su[pport for symbol fonts - Write ranges using a [start finish) format - Only set FC_SIZE for scalable fonts if OS/2 version 5 is present - Add bitmap-only font size as Double, not Range - Accept Integer for FC_SIZE - Don't set FC_SIZE for bitmap fonts - Fix compiler warnings - Simplify FcRange - Reduce number of places that cache version is specified to 1 - Bump cache version number to 6, because of recent FcRange changes - -Руслан Ижбулатов (1): - W32: Support cache paths relative to the root directory - -2.11.93 (2.12 RC3) - -Akira TAGOH (18): - Fix a typo in docs - Add pkg.m4 to git - Fix a build fail on some non-POSIX platforms - ifdef'd the unnecessary code for win32 - Fix pointer cast warning on win32 - filter can be null - Copy the real size of struct dirent - Rework again to copy the struct dirent - Hardcode the blanks in the library - Update the script to recognize the escaped space - Fix a build issue when $(srcdir) != $(builddir) - Don't add FC_LANG when it has "und" - Fix the array allocation - Improve the performance on searching blanks - Fix a segfault when OOM happened. - Fix a bug in the previous change forFcBlanksIsMember() - Fix an infinite loop in FcBlanksIsMember() - Fix a trivial bug for dist - -Alan Coopersmith (1): - Fix configure to work with Solaris Studio compilers - -Behdad Esfahbod (3): - Fix symbol cmap handling - Remove dead code after previous commit - Simplify some more - -Michael Haubenwallner (1): - Ensure config.h is included first, bug#89336. - -2.11.92 (2.12 RC2) - -Akira TAGOH (1): - Add missing docs - -2.11.91 (2.12 RC1) - -Akira TAGOH (28): - Bug 71287 - size specific design selection support in OS/2 table version 5 - Fix a build issue with freetype <2.5.1 - Fix missing docs - Fix a typo - Fix fc-cache fail with -r - Rebase ja.orth against Joyo kanji characters - Allow the modification on FcTypeVoid with FcTypeLangSet and FcTypeCharSet - Workaround another race condition issue - Read the config files and fonts on the sysroot when --sysroot is given to fc-cache - Fix a segfault - Update CaseFolding.txt to Unicode 7.0 - Don't read/write from/to the XDG dirs if the home directory is disabled - Rework for 5004e8e01f5de30ad01904e57ea0eda006ab3a0c - Fix a crash when no sysroot is given and failed to load the default fonts.conf - Fix a gcc warning - Don't add duplicate lang - fallback to the another method to lock when link() failed - Increase the refcount in FcConfigSetCurrent() - Fix the memory leak in fc-cat - Note FcConfigSetCurrent() increases the refcount in document - Add FcRangeGetDouble() - Revert "Bug 73291 - poppler does not show fl ligature" - Update aliases for new URW fonts - Returns False if no fonts found - fc-cache: make a fail if no fonts processed on a given path - fc-cache: Add an option to raise an error if no fonts found - Bump the cache version to 5 - Fix a typo - -Behdad Esfahbod (39): - Remove unused code - Simplify hash code - Further simplify hash code - Rewrite hashing to use FT_Stream directly - Allow passing NULL for file to FcFreeTypeQueryFace() - [ko.orth] Remove U+3164 HANGUL FILLER - Deprecate FC_HASH and don't compute it - Remove unused FcHash code now that FC_HASH is deprecated - Update list of blanks to Unicode 6.3.0 - Update blanks to Unicode 7.0 - Change charset parse/unparse format to be human readable - Minor - Fix charset unparse after recent changes - Comments - Remove HASH from matching priorities - Fixup previous commit - Update mingw32 MemoryBarrier from HarfBuzz - More mingw32 MemoryBarrier() fixup - Symlinks fix for DESTDIR - Revert "Symlinks fix for DESTDIR" - Call FcInitDebug from FcFreeTypeQueryFace - Decode MacRoman encoding in name table without iconv - Ouch, fix buffer - Use lang=und instead of lang=xx for "undetermined" - Remove unused regex code - Improve / cleanup namelang matching - Add FC_WEIGHT_DEMILIGHT - Change DemiLight from 65 to 55 - Linearly interpolate weight values - Export recently added API - Remove unneeded FcPublic - Fix assertion failure - If OS/2 table says weight is 1 to 9, multiply by 100 - Trebuchet MS is a sans-serif font, not serif - Fix previous commit - Revert "[fcmatch] When matching, reserve score 0 for when elements don't exist" - Fix buffer overflow in copying PS name - Add FC_COLOR - Treat color fonts as scalable - -Nick Alcock (1): - Generate documentation for FcWeight* functions. - -2.11.1 - -Akira TAGOH (31): - do not build test-migration for Win32 - Fix build issue on Debian/kFreeBSD 7.0 - Update ax_pthread.m4 to the latest version - Fix the dynamic loading issue on NetBSD - Use stat() if there are no d_type in struct dirent - Fix a build issue on Solaris 10 - Change the default weight on match to FC_WEIGHT_NORMAL - Warn if no <test> nor <edit> elements in <match> - Correct DTD - Re-scan font directories only when it contains subdirs - Fix typo - Bug 72086 - Check for gperf in autogen.sh - Simplify to validate the availability of posix_fadvise - Simplify to validate the availability of scandir - Fix a typo - Fix a build issue on platforms where doesn't support readlink() - Improve the performance issue on rescanning directories - Bug 73686 - confdir is not set correctly in fontconfig.pc - Update zh_hk.orth - clean up the unused files - Add missing license headers - Update the use of autotools' macro - Fix a crash issue when empty strings are set to the BDF properties - Add a doc for FcDirCacheRescan - Add missing #include <sys/statvfs.h> in fcstat.c - Fix incompatible API on AIX with random_r and initstate_r - Fallback to lstat() in case the filesystem doesn't support d_type in struct dirent - Update doc to include the version info of `since when' - Bug 73291 - poppler does not show fl ligature - Add README describes the criteria to add/modify the orthography files - Fix autoconf warning, warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS - -Alan Coopersmith (3): - Leave room for null terminators in arrays - Avoid memory leak when NULL path passed to FcStrBuildFilename - Avoid null pointer dereference in FcNameParse if malloc fails - -Behdad Esfahbod (1): - Bug 72380 - Never drop first font when trimming - -Frederic Crozat (2): - Fix inversion between Tinos and Cousine in the comment - Add metric aliases for additional Google ChromeOS fonts - -Jehan (1): - Defaulting <cachedir> to LOCAL_APPDATA_FONTCONFIG_CACHE for Win32 build - -Ross Burton (1): - fc-cache: --sysroot option takes an argument - 2.11 Akira TAGOH (15): diff --git a/chromium/third_party/fontconfig/src/autogen.sh b/chromium/third_party/fontconfig/src/autogen.sh index 07c59a4714f..1482e401c51 100755 --- a/chromium/third_party/fontconfig/src/autogen.sh +++ b/chromium/third_party/fontconfig/src/autogen.sh @@ -1,26 +1,4 @@ #!/bin/sh -# fontconfig/autogen.sh -# -# Copyright © 2000 Keith Packard -# -# Permission to use, copy, modify, distribute, and sell this software and its -# documentation for any purpose is hereby granted without fee, provided that -# the above copyright notice appear in all copies and that both that -# copyright notice and this permission notice appear in supporting -# documentation, and that the name of the author(s) not be used in -# advertising or publicity pertaining to distribution of the software without -# specific, written prior permission. The authors make no -# representations about the suitability of this software for any purpose. It -# is provided "as is" without express or implied warranty. -# -# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO -# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR -# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -# PERFORMANCE OF THIS SOFTWARE. - # Run this to generate all the initial makefiles, etc. set -e @@ -46,28 +24,10 @@ LIBTOOLIZE=${LIBTOOLIZE-libtoolize} AUTOMAKE=${AUTOMAKE-automake} AUTOHEADER=${AUTOHEADER-autoheader} AUTOCONF=${AUTOCONF-autoconf} -GPERF=${GPERF-gperf} -PYTHON=${PYTHON-python} LIBTOOLIZE_FLAGS="--copy --force" DIE=0 -($GPERF --version) < /dev/null > /dev/null 2>&1 || { - echo - echo "You must have gperf installed to compile $PROJECT." - echo "Install the appropriate package for your distribution." - echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" - DIE=1 -} - -($PYTHON --version) < /dev/null > /dev/null 2>&1 || { - echo - echo "You must have python installed to compile $PROJECT." - echo "Install the appropriate package for your distribution." - echo "or get the source tarball at https://www.python.org/downloads/source/" - DIE=1 -} - have_libtool=false if $LIBTOOLIZE --version < /dev/null > /dev/null 2>&1 ; then libtool_version=`$LIBTOOLIZE --version | sed 's/^.* \([0-9][.][0-9.]*\)[^ ]*$/\1/'` diff --git a/chromium/third_party/fontconfig/src/conf.d/10-hinting-full.conf b/chromium/third_party/fontconfig/src/conf.d/10-hinting-full.conf deleted file mode 100644 index 27d8229195c..00000000000 --- a/chromium/third_party/fontconfig/src/conf.d/10-hinting-full.conf +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0"?> -<!DOCTYPE fontconfig SYSTEM "fonts.dtd"> -<fontconfig> - <match target="pattern"> - <!-- - This configuration is available on the major desktop environments. - We shouldn't overwrite it with "assign" unconditionally. - Most clients may picks up the first value only. so using "append" - may simply works to avoid it. - --> - <edit name="hintstyle" mode="append"><const>hintfull</const></edit> - </match> -</fontconfig> diff --git a/chromium/third_party/fontconfig/src/conf.d/10-hinting-medium.conf b/chromium/third_party/fontconfig/src/conf.d/10-hinting-medium.conf deleted file mode 100644 index e34ab5b344d..00000000000 --- a/chromium/third_party/fontconfig/src/conf.d/10-hinting-medium.conf +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0"?> -<!DOCTYPE fontconfig SYSTEM "fonts.dtd"> -<fontconfig> - <match target="pattern"> - <!-- - This configuration is available on the major desktop environments. - We shouldn't overwrite it with "assign" unconditionally. - Most clients may picks up the first value only. so using "append" - may simply works to avoid it. - --> - <edit name="hintstyle" mode="append"><const>hintmedium</const></edit> - </match> -</fontconfig> diff --git a/chromium/third_party/fontconfig/src/conf.d/10-hinting-none.conf b/chromium/third_party/fontconfig/src/conf.d/10-hinting-none.conf deleted file mode 100644 index 0b3810d9485..00000000000 --- a/chromium/third_party/fontconfig/src/conf.d/10-hinting-none.conf +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0"?> -<!DOCTYPE fontconfig SYSTEM "fonts.dtd"> -<fontconfig> - <match target="pattern"> - <!-- - This configuration is available on the major desktop environments. - We shouldn't overwrite it with "assign" unconditionally. - Most clients may picks up the first value only. so using "append" - may simply works to avoid it. - --> - <edit name="hintstyle" mode="append"><const>hintnone</const></edit> - </match> -</fontconfig> diff --git a/chromium/third_party/fontconfig/src/conf.d/10-hinting-slight.conf b/chromium/third_party/fontconfig/src/conf.d/10-hinting-slight.conf deleted file mode 100644 index c244ac0b0e8..00000000000 --- a/chromium/third_party/fontconfig/src/conf.d/10-hinting-slight.conf +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0"?> -<!DOCTYPE fontconfig SYSTEM "fonts.dtd"> -<fontconfig> - <match target="pattern"> - <!-- - This configuration is available on the major desktop environments. - We shouldn't overwrite it with "assign" unconditionally. - Most clients may picks up the first value only. so using "append" - may simply works to avoid it. - --> - <edit name="hintstyle" mode="append"><const>hintslight</const></edit> - </match> -</fontconfig> diff --git a/chromium/third_party/fontconfig/src/conf.d/10-no-sub-pixel.conf b/chromium/third_party/fontconfig/src/conf.d/10-no-sub-pixel.conf index 635847c4044..cf124656176 100644 --- a/chromium/third_party/fontconfig/src/conf.d/10-no-sub-pixel.conf +++ b/chromium/third_party/fontconfig/src/conf.d/10-no-sub-pixel.conf @@ -1,7 +1,7 @@ <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> -<!-- Disable sub-pixel rendering --> +<!-- Enable sub-pixel rendering --> <match target="pattern"> <!-- This configuration is available on the major desktop environments. diff --git a/chromium/third_party/fontconfig/src/conf.d/10-scale-bitmap-fonts.conf b/chromium/third_party/fontconfig/src/conf.d/10-scale-bitmap-fonts.conf index b4e9cb4f233..e3bcd46cdc0 100644 --- a/chromium/third_party/fontconfig/src/conf.d/10-scale-bitmap-fonts.conf +++ b/chromium/third_party/fontconfig/src/conf.d/10-scale-bitmap-fonts.conf @@ -2,13 +2,8 @@ <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> -<!-- - If font is bitmap, calculate scale factor. - Note that color bitmap fonts have scalable=true, while - non-color ones have scalable=false. Both groups have outline=false. - --> <match target="font"> - <test name="outline" compare="eq"> + <test name="scalable" compare="eq"> <bool>false</bool> </test> <edit name="pixelsizefixupfactor" mode="assign"> @@ -18,20 +13,10 @@ </divide> </edit> </match> -<!-- - For non-scalable bitmap fonts (ie. non-color), skip - minor scaling if hinting is enabled. - --> <match target="font"> - <test name="outline" compare="eq"> - <bool>false</bool> - </test> <test name="scalable" compare="eq"> <bool>false</bool> </test> - <test name="hinting" compare="eq"> - <bool>true</bool> - </test> <edit name="scalingnotneeded" mode="assign"> <and> <less> @@ -45,7 +30,20 @@ </and> </edit> </match> +<!-- + So far we determined the scale factor. Now, check and if + scaling is NOT desirable, just reset the scale factor to 1.0. + --> <match target="font"> + <test name="scalable" compare="eq"> + <bool>false</bool> + </test> + <test name="pixelsize" target="pattern" compare="less"> + <double>64</double> + </test> + <test name="hinting" compare="eq"> + <bool>true</bool> + </test> <test name="scalingnotneeded" compare="eq"> <bool>true</bool> </test> @@ -57,7 +55,7 @@ If we *are* going to scale, go ahead and do it. --> <match target="font"> - <test name="outline" compare="eq"> + <test name="scalable" compare="eq"> <bool>false</bool> </test> <test name="pixelsizefixupfactor" compare="not_eq"> diff --git a/chromium/third_party/fontconfig/src/conf.d/30-metric-aliases.conf b/chromium/third_party/fontconfig/src/conf.d/30-metric-aliases.conf index 1f0778d68c4..d0d9ea2e0eb 100644 --- a/chromium/third_party/fontconfig/src/conf.d/30-metric-aliases.conf +++ b/chromium/third_party/fontconfig/src/conf.d/30-metric-aliases.conf @@ -6,27 +6,24 @@ Alias similar/metric-compatible families from various sources: -PostScript fonts: URW fonts: GUST fonts: Windows fonts: -====================== ================== ================= ================== -Helvetica Nimbus Sans TeX Gyre Heros -Helvetica Narrow Nimbus Sans Narrow TeX Gyre Heros Cn -Times Nimbus Roman TeX Gyre Termes -Courier Nimbus Mono PS TeX Gyre Cursor -ITC Avant Garde Gothic URW Gothic TeX Gyre Adventor -ITC Bookman URW Bookman TeX Gyre Bonum Bookman Old Style -ITC Zapf Chancery Z003 TeX Gyre Chorus -Palatino P052 TeX Gyre Pagella Palatino Linotype -New Century Schoolbook C059 TeX Gyre Schola Century Schoolbook +PostScript fonts: URW fonts: GUST fonts: Windows fonts: +====================== ==================== ================= ================== +Helvetica Nimbus Sans L TeX Gyre Heros +Helvetica Condensed TeX Gyre Heros Cn +Times Nimbus Roman No9 L TeX Gyre Termes +Courier Nimbus Mono L TeX Gyre Cursor +ITC Avant Garde Gothic URW Gothic L TeX Gyre Adventor +ITC Bookman URW Bookman L TeX Gyre Bonum Bookman Old Style +ITC Zapf Chancery URW Chancery L TeX Gyre Chorus +Palatino URW Palladio L TeX Gyre Pagella Palatino Linotype +New Century Schoolbook Century Schoolbook L TeX Gyre Schola Century Schoolbook Microsoft fonts: Liberation fonts: Google CrOS core fonts: StarOffice fonts: AMT fonts: ================ ====================== ======================= ================= ============== Arial Liberation Sans Arimo Albany Albany AMT Arial Narrow Liberation Sans Narrow -Times New Roman Liberation Serif Tinos Thorndale Thorndale AMT -Courier New Liberation Mono Cousine Cumberland Cumberland AMT -Cambria Caladea -Calibri Carlito -Symbol SymbolNeu +Times New Roman Liberation Serif Cousine Thorndale Thorndale AMT +Courier New Liberation Mono Tinos Cumberland Cumberland AMT Microsoft fonts: Other fonts: ================ ============ @@ -57,13 +54,6 @@ but in an order preferring similar designs first. We do this in three steps: </alias> <alias binding="same"> - <family>Nimbus Sans</family> - <default> - <family>Helvetica</family> - </default> - </alias> - - <alias binding="same"> <family>TeX Gyre Heros</family> <default> <family>Helvetica</family> @@ -71,16 +61,9 @@ but in an order preferring similar designs first. We do this in three steps: </alias> <alias binding="same"> - <family>Nimbus Sans Narrow</family> - <default> - <family>Helvetica Narrow</family> - </default> - </alias> - - <alias binding="same"> <family>TeX Gyre Heros Cn</family> <default> - <family>Helvetica Narrow</family> + <family>Helvetica Condensed</family> </default> </alias> @@ -92,13 +75,6 @@ but in an order preferring similar designs first. We do this in three steps: </alias> <alias binding="same"> - <family>Nimbus Roman</family> - <default> - <family>Times</family> - </default> - </alias> - - <alias binding="same"> <family>TeX Gyre Termes</family> <default> <family>Times</family> @@ -113,20 +89,6 @@ but in an order preferring similar designs first. We do this in three steps: </alias> <alias binding="same"> - <family>Nimbus Mono</family> - <default> - <family>Courier</family> - </default> - </alias> - - <alias binding="same"> - <family>Nimbus Mono PS</family> - <default> - <family>Courier</family> - </default> - </alias> - - <alias binding="same"> <family>TeX Gyre Cursor</family> <default> <family>Courier</family> @@ -148,13 +110,6 @@ but in an order preferring similar designs first. We do this in three steps: </alias> <alias binding="same"> - <family>URW Gothic</family> - <default> - <family>ITC Avant Garde Gothic</family> - </default> - </alias> - - <alias binding="same"> <family>TeX Gyre Adventor</family> <default> <family>ITC Avant Garde Gothic</family> @@ -176,20 +131,6 @@ but in an order preferring similar designs first. We do this in three steps: </alias> <alias binding="same"> - <family>Bookman URW</family> - <default> - <family>ITC Bookman</family> - </default> - </alias> - - <alias binding="same"> - <family>URW Bookman</family> - <default> - <family>ITC Bookman</family> - </default> - </alias> - - <alias binding="same"> <family>TeX Gyre Bonum</family> <default> <family>ITC Bookman</family> @@ -218,20 +159,6 @@ but in an order preferring similar designs first. We do this in three steps: </alias> <alias binding="same"> - <family>Chancery URW</family> - <default> - <family>ITC Zapf Chancery</family> - </default> - </alias> - - <alias binding="same"> - <family>Z003</family> - <default> - <family>ITC Zapf Chancery</family> - </default> - </alias> - - <alias binding="same"> <family>TeX Gyre Chorus</family> <default> <family>ITC Zapf Chancery</family> @@ -246,20 +173,6 @@ but in an order preferring similar designs first. We do this in three steps: </alias> <alias binding="same"> - <family>Palladio URW</family> - <default> - <family>Palatino</family> - </default> - </alias> - - <alias binding="same"> - <family>P052</family> - <default> - <family>Palatino</family> - </default> - </alias> - - <alias binding="same"> <family>TeX Gyre Pagella</family> <default> <family>Palatino</family> @@ -281,20 +194,6 @@ but in an order preferring similar designs first. We do this in three steps: </alias> <alias binding="same"> - <family>Century SchoolBook URW</family> - <default> - <family>New Century Schoolbook</family> - </default> - </alias> - - <alias binding="same"> - <family>C059</family> - <default> - <family>New Century Schoolbook</family> - </default> - </alias> - - <alias binding="same"> <family>TeX Gyre Schola</family> <default> <family>New Century Schoolbook</family> @@ -408,26 +307,7 @@ but in an order preferring similar designs first. We do this in three steps: </default> </alias> - <alias binding="same"> - <family>Caladea</family> - <default> - <family>Cambria</family> - </default> - </alias> - - <alias binding="same"> - <family>Carlito</family> - <default> - <family>Calibri</family> - </default> - </alias> - <alias binding="same"> - <family>SymbolNeu</family> - <default> - <family>Symbol</family> - </default> - </alias> <!-- Accept the other group as fallback --> @@ -440,7 +320,7 @@ but in an order preferring similar designs first. We do this in three steps: </alias> <alias> - <family>Helvetica Narrow</family> + <family>Helvetica Condensed</family> <default> <family>Arial Narrow</family> </default> @@ -472,7 +352,7 @@ but in an order preferring similar designs first. We do this in three steps: <alias> <family>Arial Narrow</family> <default> - <family>Helvetica Narrow</family> + <family>Helvetica Condensed</family> </default> </alias> @@ -499,16 +379,14 @@ but in an order preferring similar designs first. We do this in three steps: <family>Helvetica</family> <accept> <family>TeX Gyre Heros</family> - <family>Nimbus Sans</family> <family>Nimbus Sans L</family> </accept> </alias> <alias binding="same"> - <family>Helvetica Narrow</family> + <family>Helvetica Condensed</family> <accept> <family>TeX Gyre Heros Cn</family> - <family>Nimbus Sans Narrow</family> </accept> </alias> @@ -516,7 +394,6 @@ but in an order preferring similar designs first. We do this in three steps: <family>Times</family> <accept> <family>TeX Gyre Termes</family> - <family>Nimbus Roman</family> <family>Nimbus Roman No9 L</family> </accept> </alias> @@ -525,8 +402,6 @@ but in an order preferring similar designs first. We do this in three steps: <family>Courier</family> <accept> <family>TeX Gyre Cursor</family> - <family>Nimbus Mono PS</family> - <family>Nimbus Mono</family> <family>Nimbus Mono L</family> </accept> </alias> @@ -535,7 +410,6 @@ but in an order preferring similar designs first. We do this in three steps: <family>ITC Avant Garde Gothic</family> <accept> <family>TeX Gyre Adventor</family> - <family>URW Gothic</family> <family>URW Gothic L</family> </accept> </alias> @@ -545,8 +419,6 @@ but in an order preferring similar designs first. We do this in three steps: <accept> <family>Bookman Old Style</family> <family>TeX Gyre Bonum</family> - <family>URW Bookman</family> - <family>Bookman URW</family> <family>URW Bookman L</family> </accept> </alias> @@ -555,8 +427,6 @@ but in an order preferring similar designs first. We do this in three steps: <family>ITC Zapf Chancery</family> <accept> <family>TeX Gyre Chorus</family> - <family>Z003</family> - <family>Chancery URW</family> <family>URW Chancery L</family> </accept> </alias> @@ -566,8 +436,6 @@ but in an order preferring similar designs first. We do this in three steps: <accept> <family>Palatino Linotype</family> <family>TeX Gyre Pagella</family> - <family>P052</family> - <family>Palladio URW</family> <family>URW Palladio L</family> </accept> </alias> @@ -577,8 +445,6 @@ but in an order preferring similar designs first. We do this in three steps: <accept> <family>Century Schoolbook</family> <family>TeX Gyre Schola</family> - <family>C059</family> - <family>Century SchoolBook URW</family> <family>Century Schoolbook L</family> </accept> </alias> @@ -628,25 +494,4 @@ but in an order preferring similar designs first. We do this in three steps: </accept> </alias> - <alias binding="same"> - <family>Cambria</family> - <accept> - <family>Caladea</family> - </accept> - </alias> - - <alias binding="same"> - <family>Calibri</family> - <accept> - <family>Carlito</family> - </accept> - </alias> - - <alias binding="same"> - <family>Symbol</family> - <accept> - <family>SymbolNeu</family> - </accept> - </alias> - </fontconfig> diff --git a/chromium/third_party/fontconfig/src/conf.d/30-urw-aliases.conf b/chromium/third_party/fontconfig/src/conf.d/30-urw-aliases.conf index cfde071fbff..e0d45da8760 100644 --- a/chromium/third_party/fontconfig/src/conf.d/30-urw-aliases.conf +++ b/chromium/third_party/fontconfig/src/conf.d/30-urw-aliases.conf @@ -7,26 +7,17 @@ --> <alias binding="same"> <family>Zapf Dingbats</family> - <accept> - <family>D050000L</family> - <family>Dingbats</family> - </accept> + <accept><family>Dingbats</family></accept> </alias> <alias binding="same"> <family>ITC Zapf Dingbats</family> - <accept> - <family>D050000L</family> - <family>Dingbats</family> - </accept> + <accept><family>Dingbats</family></accept> </alias> <match target="pattern"> <test name="family" compare="eq" ignore-blanks="true"> <string>Symbol</string> </test> <edit name="family" mode="append" binding="same"> - <string>Standard Symbols PS</string> - </edit> - <edit name="family" mode="append" binding="same"> <string>Standard Symbols L</string> </edit> </match> diff --git a/chromium/third_party/fontconfig/src/conf.d/45-latin.conf b/chromium/third_party/fontconfig/src/conf.d/45-latin.conf index c6696f8d6f2..aa62ed42e7f 100644 --- a/chromium/third_party/fontconfig/src/conf.d/45-latin.conf +++ b/chromium/third_party/fontconfig/src/conf.d/45-latin.conf @@ -14,31 +14,23 @@ <default><family>serif</family></default> </alias> <alias> - <family>Cambria</family> - <default><family>serif</family></default> - </alias> - <alias> - <family>Constantia</family> - <default><family>serif</family></default> - </alias> - <alias> <family>DejaVu Serif</family> <default><family>serif</family></default> </alias> <alias> - <family>Elephant</family> + <family>Liberation Serif</family> <default><family>serif</family></default> </alias> <alias> - <family>Garamond</family> + <family>Times New Roman</family> <default><family>serif</family></default> </alias> <alias> - <family>Georgia</family> + <family>Times</family> <default><family>serif</family></default> </alias> <alias> - <family>Liberation Serif</family> + <family>Nimbus Roman No9 L</family> <default><family>serif</family></default> </alias> <alias> @@ -46,82 +38,46 @@ <default><family>serif</family></default> </alias> <alias> - <family>MS Serif</family> - <default><family>serif</family></default> - </alias> - <alias> - <family>Nimbus Roman No9 L</family> - <default><family>serif</family></default> - </alias> - <alias> - <family>Nimbus Roman</family> + <family>Thorndale AMT</family> <default><family>serif</family></default> </alias> <alias> - <family>Palatino Linotype</family> + <family>Thorndale</family> <default><family>serif</family></default> </alias> <alias> - <family>Thorndale AMT</family> + <family>Georgia</family> <default><family>serif</family></default> </alias> <alias> - <family>Thorndale</family> + <family>Garamond</family> <default><family>serif</family></default> </alias> <alias> - <family>Times New Roman</family> + <family>Palatino Linotype</family> <default><family>serif</family></default> </alias> <alias> - <family>Times</family> + <family>Trebuchet MS</family> <default><family>serif</family></default> </alias> <!-- Sans-serif faces --> <alias> - <family>Albany AMT</family> - <default><family>sans-serif</family></default> - </alias> - <alias> - <family>Albany</family> - <default><family>sans-serif</family></default> - </alias> - <alias> - <family>Arial Unicode MS</family> - <default><family>sans-serif</family></default> - </alias> - <alias> - <family>Arial</family> - <default><family>sans-serif</family></default> - </alias> - <alias> <family>Bitstream Vera Sans</family> <default><family>sans-serif</family></default> </alias> <alias> - <family>Britannic</family> - <default><family>sans-serif</family></default> - </alias> - <alias> - <family>Calibri</family> - <default><family>sans-serif</family></default> - </alias> - <alias> - <family>Candara</family> - <default><family>sans-serif</family></default> - </alias> - <alias> - <family>Century Gothic</family> + <family>DejaVu Sans</family> <default><family>sans-serif</family></default> </alias> <alias> - <family>Corbel</family> + <family>Liberation Sans</family> <default><family>sans-serif</family></default> </alias> <alias> - <family>DejaVu Sans</family> + <family>Arial</family> <default><family>sans-serif</family></default> </alias> <alias> @@ -129,15 +85,15 @@ <default><family>sans-serif</family></default> </alias> <alias> - <family>Haettenschweiler</family> + <family>Verdana</family> <default><family>sans-serif</family></default> </alias> <alias> - <family>Liberation Sans</family> + <family>Albany AMT</family> <default><family>sans-serif</family></default> </alias> <alias> - <family>MS Sans Serif</family> + <family>Albany</family> <default><family>sans-serif</family></default> </alias> <alias> @@ -145,74 +101,38 @@ <default><family>sans-serif</family></default> </alias> <alias> - <family>Nimbus Sans</family> - <default><family>sans-serif</family></default> - </alias> - <alias> <family>Luxi Sans</family> <default><family>sans-serif</family></default> </alias> - <alias> - <family>Tahoma</family> - <default><family>sans-serif</family></default> - </alias> - <alias> - <family>Trebuchet MS</family> - <default><family>sans-serif</family></default> - </alias> - <alias> - <family>Twentieth Century</family> - <default><family>sans-serif</family></default> - </alias> - <alias> - <family>Verdana</family> - <default><family>sans-serif</family></default> - </alias> <!-- Monospace faces --> - <alias> - <family>Andale Mono</family> - <default><family>monospace</family></default> - </alias> <alias> <family>Bitstream Vera Sans Mono</family> <default><family>monospace</family></default> </alias> <alias> - <family>Consolas</family> - <default><family>monospace</family></default> - </alias> - <alias> - <family>Courier New</family> - <default><family>monospace</family></default> - </alias> - <alias> - <family>Courier</family> - <default><family>monospace</family></default> - </alias> - <alias> - <family>Cumberland AMT</family> + <family>DejaVu Sans Mono</family> <default><family>monospace</family></default> </alias> <alias> - <family>Cumberland</family> + <family>Liberation Mono</family> <default><family>monospace</family></default> </alias> <alias> - <family>DejaVu Sans Mono</family> + <family>Inconsolata</family> <default><family>monospace</family></default> </alias> <alias> - <family>Fixedsys</family> + <family>Courier New</family> <default><family>monospace</family></default> </alias> <alias> - <family>Inconsolata</family> + <family>Courier</family> <default><family>monospace</family></default> </alias> <alias> - <family>Liberation Mono</family> + <family>Andale Mono</family> <default><family>monospace</family></default> </alias> <alias> @@ -220,53 +140,49 @@ <default><family>monospace</family></default> </alias> <alias> - <family>Nimbus Mono L</family> - <default><family>monospace</family></default> - </alias> - <alias> - <family>Nimbus Mono</family> + <family>Cumberland AMT</family> <default><family>monospace</family></default> </alias> <alias> - <family>Nimbus Mono PS</family> + <family>Cumberland</family> <default><family>monospace</family></default> </alias> <alias> - <family>Terminal</family> + <family>Nimbus Mono L</family> <default><family>monospace</family></default> </alias> <!-- Fantasy faces --> - <alias> - <family>Bauhaus Std</family> + <alias> + <family>Impact</family> <default><family>fantasy</family></default> </alias> <alias> - <family>Cooper Std</family> + <family>Copperplate Gothic Std</family> <default><family>fantasy</family></default> </alias> <alias> - <family>Copperplate Gothic Std</family> + <family>Cooper Std</family> <default><family>fantasy</family></default> </alias> <alias> - <family>Impact</family> + <family>Bauhaus Std</family> <default><family>fantasy</family></default> </alias> <!-- Cursive faces --> <alias> - <family>Comic Sans MS</family> + <family>ITC Zapf Chancery Std</family> <default><family>cursive</family></default> </alias> <alias> - <family>ITC Zapf Chancery Std</family> + <family>Zapfino</family> <default><family>cursive</family></default> </alias> <alias> - <family>Zapfino</family> + <family>Comic Sans MS</family> <default><family>cursive</family></default> </alias> diff --git a/chromium/third_party/fontconfig/src/conf.d/60-latin.conf b/chromium/third_party/fontconfig/src/conf.d/60-latin.conf index 23ee91b253f..2107e31e4b4 100644 --- a/chromium/third_party/fontconfig/src/conf.d/60-latin.conf +++ b/chromium/third_party/fontconfig/src/conf.d/60-latin.conf @@ -10,7 +10,6 @@ <family>Thorndale AMT</family> <family>Luxi Serif</family> <family>Nimbus Roman No9 L</family> - <family>Nimbus Roman</family> <family>Times</family> </prefer> </alias> @@ -24,7 +23,6 @@ <family>Albany AMT</family> <family>Luxi Sans</family> <family>Nimbus Sans L</family> - <family>Nimbus Sans</family> <family>Helvetica</family> <family>Lucida Sans Unicode</family> <family>BPG Glaho International</family> <!-- lat,cyr,arab,geor --> @@ -42,8 +40,6 @@ <family>Cumberland AMT</family> <family>Luxi Mono</family> <family>Nimbus Mono L</family> - <family>Nimbus Mono</family> - <family>Nimbus Mono PS</family> <family>Courier</family> </prefer> </alias> diff --git a/chromium/third_party/fontconfig/src/conf.d/Makefile.am b/chromium/third_party/fontconfig/src/conf.d/Makefile.am index ac68cd15dc4..d61756b816c 100644 --- a/chromium/third_party/fontconfig/src/conf.d/Makefile.am +++ b/chromium/third_party/fontconfig/src/conf.d/Makefile.am @@ -26,7 +26,6 @@ DOC_SOURCES = README.in DOC_FILES = $(DOC_SOURCES:.in=) CONF_LINKS = \ - 10-hinting-$(PREFERRED_HINTING).conf \ 10-scale-bitmap-fonts.conf \ 20-unhint-small-vera.conf \ 30-urw-aliases.conf \ @@ -52,10 +51,6 @@ config_DATA = $(DOC_FILES) templatedir = $(TEMPLATEDIR) template_DATA = \ 10-autohint.conf \ - 10-hinting-full.conf \ - 10-hinting-medium.conf \ - 10-hinting-none.conf \ - 10-hinting-slight.conf \ 10-no-sub-pixel.conf \ 10-scale-bitmap-fonts.conf \ 10-sub-pixel-bgr.conf \ diff --git a/chromium/third_party/fontconfig/src/config/Makedefs.in b/chromium/third_party/fontconfig/src/config/Makedefs.in new file mode 100644 index 00000000000..ae75aff4911 --- /dev/null +++ b/chromium/third_party/fontconfig/src/config/Makedefs.in @@ -0,0 +1,76 @@ +# +# fontconfig/config/Makedefs.in +# +# Copyright © 2002 Keith Packard +# +# Permission to use, copy, modify, distribute, and sell this software and its +# documentation for any purpose is hereby granted without fee, provided that +# the above copyright notice appear in all copies and that both that +# copyright notice and this permission notice appear in supporting +# documentation, and that the name of the author(s) not be used in +# advertising or publicity pertaining to distribution of the software without +# specific, written prior permission. The authors make no +# representations about the suitability of this software for any purpose. It +# is provided "as is" without express or implied warranty. +# +# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR +# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +# PERFORMANCE OF THIS SOFTWARE. +# + +SHELL = @SHELL@ + +srcdir=@srcdir@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +bindir=@bindir@ +datadir=@datadir@ +includedir=@includedir@ +sysconfdir=@sysconfdir@ +confdir=@confdir@ + +DSO_LDOPTS=@DSO_LDOPTS@ +DSO_CFLAGS=@DSO_CFLAGS@ +DSO_PIC_CFLAGS=@DSO_PIC_CFLAGS@ + +INSTALL=@INSTALL@ +INSTALL_PROGRAM=@INSTALL_PROGRAM@ +INSTALL_SCRIPT=@INSTALL_SCRIPT@ +INSTALL_DATA=@INSTALL_DATA@ +MKSHLIB=@MKSHLIB@ +LN_S=@LN_S@ + +# shared libraries +LIBDIR=$(libdir) +# programs +BINDIR=$(bindir) +# font configuration files +CONFDIR=@CONFDIR@ +# include files +INCLUDEDIR=$(includedir)/fontconfig + +X_FONT_DIR=@X_FONT_DIR@ +FC_DEFAULT_FONTS=@FC_DEFAULT_FONTS@ +FCPATH_DEF=-DFONTCONFIG_PATH=\"$(CONFDIR)\" + +CDEBUGFLAGS=@CFLAGS@ + +INCLUDES=-I$(TOPDIR) -I$(srcdir) @CPPFLAGS@ + +CFLAGS=$(CDEBUGFLAGS) @DEFS@ $(FCPATH_DEF) $(INCLUDES) + +LIBBASE=libfontconfig.so +LIBFILE=$(LIBBASE).@PACKAGE_MAJOR@.@PACKAGE_MINOR@ +LIBMAJOR=$(LIBBASE).@PACKAGE_MAJOR@ + +LIBFONTCONFIG=-L$(SRCDIR) -lfontconfig + +SRCDIR=$(TOPDIR)/src + +INCDIR=$(TOPDIR)/fontconfig +HEADERS=$(INCDIR)/fontconfig.h $(INCDIR)/fcfreetype.h $(INCDIR)/fcprivate.h diff --git a/chromium/third_party/fontconfig/src/config/config-subst b/chromium/third_party/fontconfig/src/config/config-subst new file mode 100644 index 00000000000..5907e03286a --- /dev/null +++ b/chromium/third_party/fontconfig/src/config/config-subst @@ -0,0 +1,10 @@ +#!/bin/sh +script=config-subst.$$ +trap "rm $script" 0 +rm -f $script +for i in ${1+"$@"}; do + var="`echo "$i" | sed 's/=.*$//'`" + val="`echo "$i" | sed 's/^[^=]*=//'`" + echo "s;@$var@;$val;" >> $script +done +sed -f $script diff --git a/chromium/third_party/fontconfig/src/config/config.guess b/chromium/third_party/fontconfig/src/config/config.guess new file mode 100644 index 00000000000..c38553dc74b --- /dev/null +++ b/chromium/third_party/fontconfig/src/config/config.guess @@ -0,0 +1,1497 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + +timestamp='2006-02-23' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Originally written by Per Bothner <per@bothner.com>. +# Please send patches to <config-patches@gnu.org>. Submit a context +# diff and a properly formatted ChangeLog entry. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# The plan is that this can be called by configure scripts if you +# don't specify an explicit build system type. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to <config-patches@gnu.org>." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep __ELF__ >/dev/null + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerppc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm:riscos:*:*|arm:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:SunOS:5.*:*) + echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include <stdio.h> /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include <sys/systemcfg.h> + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[45]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include <stdlib.h> + #include <unistd.h> + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep __LP64__ >/dev/null + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include <unistd.h> + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + case ${UNAME_MACHINE} in + pc98) + echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + i*:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + i*:MSYS_NT-*:*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + x86:Interix*:[345]*) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + EM64T:Interix*:[345]*) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + arm*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) + echo crisv32-axis-linux-gnu + exit ;; + frv:Linux:*:*) + echo frv-unknown-linux-gnu + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + mips:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips + #undef mipsel + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mipsel + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips + #else + CPU= + #endif + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips64 + #undef mips64el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mips64el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips64 + #else + CPU= + #endif + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + or32:Linux:*:*) + echo or32-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit ;; + i*86:Linux:*:*) + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. cd to the root directory to prevent + # problems with other programs or directories called `ld' in the path. + # Set LC_ALL=C to ensure ld outputs messages in English. + ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ + | sed -ne '/supported targets:/!d + s/[ ][ ]*/ /g + s/.*supported targets: *// + s/ .*// + p'` + case "$ld_supported_targets" in + elf32-i386) + TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + ;; + a.out-i386-linux) + echo "${UNAME_MACHINE}-pc-linux-gnuaout" + exit ;; + coff-i386) + echo "${UNAME_MACHINE}-pc-linux-gnucoff" + exit ;; + "") + # Either a pre-BFD a.out linker (linux-gnuoldld) or + # one that does not give us useful --help. + echo "${UNAME_MACHINE}-pc-linux-gnuoldld" + exit ;; + esac + # Determine whether the default compiler is a.out or elf + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include <features.h> + #ifdef __ELF__ + # ifdef __GLIBC__ + # if __GLIBC__ >= 2 + LIBC=gnu + # else + LIBC=gnulibc1 + # endif + # else + LIBC=gnulibc1 + # endif + #else + #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__sun) + LIBC=gnu + #else + LIBC=gnuaout + #endif + #endif + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^LIBC/{ + s: ::g + p + }'`" + test x"${LIBC}" != x && { + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit + } + test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } + ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` + echo ${UNAME_MACHINE}-pc-isc$UNAME_REL + elif /bin/uname -X 2>/dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i386. + echo i386-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says <Richard.M.Bartel@ccMail.Census.GOV> + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes <hewes@openmarket.com>. + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NSE-?:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +eval $set_cc_for_build +cat >$dummy.c <<EOF +#ifdef _SEQUENT_ +# include <sys/types.h> +# include <sys/utsname.h> +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include <sys/param.h> + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix\n"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include <sys/param.h> +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + c34*) + echo c34-convex-bsd + exit ;; + c38*) + echo c38-convex-bsd + exit ;; + c4*) + echo c4-convex-bsd + exit ;; + esac +fi + +cat >&2 <<EOF +$0: unable to guess system type + +This script, last modified $timestamp, has failed to recognize +the operating system you are using. It is advised that you +download the most up to date version of the config scripts from + + http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess +and + http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub + +If the version you run ($0) is already up to date, please +send the following data and any information you think might be +pertinent to <config-patches@gnu.org> in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/chromium/third_party/fontconfig/src/config/config.sub b/chromium/third_party/fontconfig/src/config/config.sub new file mode 100644 index 00000000000..ad9f3957118 --- /dev/null +++ b/chromium/third_party/fontconfig/src/config/config.sub @@ -0,0 +1,1608 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + +timestamp='2006-02-23' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Please send patches to <config-patches@gnu.org>. Submit a context +# diff and a properly formatted ChangeLog entry. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to <config-patches@gnu.org>." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray) + os= + basic_machine=$1 + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ + | bfin \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | m32r | m32rle | m68000 | m68k | m88k | maxq | mb | microblaze | mcore \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64vr | mips64vrel \ + | mips64orion | mips64orionel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | mt \ + | msp430 \ + | nios | nios2 \ + | ns16k | ns32k \ + | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ + | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b \ + | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | v850 | v850e \ + | we32k \ + | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ + | z8k) + basic_machine=$basic_machine-unknown + ;; + m32c) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nios-* | nios2-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ + | romp-* | rs6000-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tron-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ + | xstormy16-* | xtensa-* \ + | ymp-* \ + | z8k-*) + ;; + m32c-*) + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16c) + basic_machine=cr16c-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tic54x | c54x*) + basic_machine=tic54x-unknown + os=-coff + ;; + tic55x | c55x*) + basic_machine=tic55x-unknown + os=-coff + ;; + tic6x | c6x*) + basic_machine=tic6x-unknown + os=-coff + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -zvmoe) + os=-zvmoe + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/chromium/third_party/fontconfig/src/config/install.sh b/chromium/third_party/fontconfig/src/config/install.sh new file mode 100644 index 00000000000..ddbcef3d91d --- /dev/null +++ b/chromium/third_party/fontconfig/src/config/install.sh @@ -0,0 +1,240 @@ +#! /bin/sh +# +# fontconfig/config/install.sh +# +# install - install a program, script, or datafile +# This comes from X11R5. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. +# + + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +tranformbasename="" +transform_arg="" +instcmd="$mvprog" +chmodcmd="$chmodprog 0755" +chowncmd="" +chgrpcmd="" +stripcmd="" +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src="" +dst="" +dir_arg="" + +while [ x"$1" != x ]; do + case $1 in + -c) instcmd="$cpprog" + shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + -s) stripcmd="$stripprog" + shift + continue;; + + -t=*) transformarg=`echo $1 | sed 's/-t=//'` + shift + continue;; + + -b=*) transformbasename=`echo $1 | sed 's/-b=//'` + shift + continue;; + + *) if [ x"$src" = x ] + then + src=$1 + else + # this colon is to work around a 386BSD /bin/sh bug + : + dst=$1 + fi + shift + continue;; + esac +done + +if [ x"$src" = x ] +then + echo "install: no input file specified" + exit 1 +else + true +fi + +if [ x"$dir_arg" != x ]; then + dst=$src + src="" + + if [ -d $dst ]; then + instcmd=: + else + instcmd=mkdir + fi +else + +# Waiting for this to be detected by the "$instcmd $src $dsttmp" command +# might cause directories to be created, which would be especially bad +# if $src (and thus $dsttmp) contains '*'. + + if [ -f $src -o -d $src ] + then + true + else + echo "install: $src does not exist" + exit 1 + fi + + if [ x"$dst" = x ] + then + echo "install: no destination specified" + exit 1 + else + true + fi + +# If destination is a directory, append the input filename; if your system +# does not like double slashes in filenames, you may need to add some logic + + if [ -d $dst ] + then + dst="$dst"/`basename $src` + else + true + fi +fi + +## this sed command emulates the dirname command +dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + +# Make sure that the destination directory exists. +# this part is taken from Noah Friedman's mkinstalldirs script + +# Skip lots of stat calls in the usual case. +if [ ! -d "$dstdir" ]; then +defaultIFS=' +' +IFS="${IFS-${defaultIFS}}" + +oIFS="${IFS}" +# Some sh's can't handle IFS=/ for some reason. +IFS='%' +set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` +IFS="${oIFS}" + +pathcomp='' + +while [ $# -ne 0 ] ; do + pathcomp="${pathcomp}${1}" + shift + + if [ ! -d "${pathcomp}" ] ; + then + $mkdirprog "${pathcomp}" + else + true + fi + + pathcomp="${pathcomp}/" +done +fi + +if [ x"$dir_arg" != x ] +then + $doit $instcmd $dst && + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi +else + +# If we're going to rename the final executable, determine the name now. + + if [ x"$transformarg" = x ] + then + dstfile=`basename $dst` + else + dstfile=`basename $dst $transformbasename | + sed $transformarg`$transformbasename + fi + +# don't allow the sed command to completely eliminate the filename + + if [ x"$dstfile" = x ] + then + dstfile=`basename $dst` + else + true + fi + +# Make a temp file name in the proper directory. + + dsttmp=$dstdir/#inst.$$# + +# Move or copy the file name to the temp name + + $doit $instcmd $src $dsttmp && + + trap "rm -f ${dsttmp}" 0 && + +# and set any options; do chmod last to preserve setuid bits + +# If any of these fail, we abort the whole thing. If we want to +# ignore errors from any of these, just make sure not to ignore +# errors from the above "$doit $instcmd $src $dsttmp" command. + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && + +# Now rename the file to the real destination. + + $doit $rmcmd -f $dstdir/$dstfile && + $doit $mvcmd $dsttmp $dstdir/$dstfile + +fi && + + +exit 0 diff --git a/chromium/third_party/fontconfig/src/configure.ac b/chromium/third_party/fontconfig/src/configure.ac index 49488162ece..c3743f43589 100644 --- a/chromium/third_party/fontconfig/src/configure.ac +++ b/chromium/third_party/fontconfig/src/configure.ac @@ -33,10 +33,30 @@ dnl This is the package version number, not the shared library dnl version. This same version number must appear in fontconfig/fontconfig.h dnl Yes, it is a pain to synchronize version numbers. Unfortunately, it's dnl not possible to extract the version number here from fontconfig.h -AC_INIT([fontconfig], [2.12.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig]) +AC_INIT([fontconfig], [2.11.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig]) AM_INIT_AUTOMAKE([1.11 parallel-tests dist-bzip2]) m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) +dnl libtool versioning + +dnl bump revision when fixing bugs +dnl bump current and age, reset revision to zero when adding APIs +dnl bump current, leave age, reset revision to zero when changing/removing APIS +LIBT_CURRENT=9 +LIBT_REVISION=0 +AC_SUBST(LIBT_CURRENT) +AC_SUBST(LIBT_REVISION) +LIBT_AGE=8 + +LIBT_VERSION_INFO="$LIBT_CURRENT:$LIBT_REVISION:$LIBT_AGE" +AC_SUBST(LIBT_VERSION_INFO) + +LIBT_CURRENT_MINUS_AGE=`expr $LIBT_CURRENT - $LIBT_AGE` +AC_SUBST(LIBT_CURRENT_MINUS_AGE) + +PKGCONFIG_REQUIRES= +PKGCONFIG_REQUIRES_PRIVATELY= + dnl ========================================================================== AC_CONFIG_HEADERS(config.h) @@ -47,14 +67,14 @@ AC_USE_SYSTEM_EXTENSIONS AC_SYS_LARGEFILE AC_PROG_INSTALL AC_PROG_LN_S +AC_LIBTOOL_WIN32_DLL +AM_PROG_LIBTOOL AC_PROG_MAKE_SET PKG_PROG_PKG_CONFIG m4_ifdef([PKG_INSTALLDIR], [PKG_INSTALLDIR], AC_SUBST([pkgconfigdir], ${libdir}/pkgconfig)) AM_MISSING_PROG([GIT], [git]) AM_MISSING_PROG([GPERF], [gperf]) -AM_PATH_PYTHON(,, [:]) -AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :]) AC_MSG_CHECKING([for RM macro]) _predefined_rm=`make -p -f /dev/null 2>/dev/null|grep '^RM ='|sed -e 's/^RM = //'` @@ -65,30 +85,6 @@ else AC_MSG_RESULT($_predefined_rm) fi -dnl Initialize libtool -LT_PREREQ([2.2]) -LT_INIT([disable-static win32-dll]) - -dnl libtool versioning - -dnl bump revision when fixing bugs -dnl bump current and age, reset revision to zero when adding APIs -dnl bump current, leave age, reset revision to zero when changing/removing APIS -LIBT_CURRENT=10 -LIBT_REVISION=2 -AC_SUBST(LIBT_CURRENT) -AC_SUBST(LIBT_REVISION) -LIBT_AGE=9 - -LIBT_VERSION_INFO="$LIBT_CURRENT:$LIBT_REVISION:$LIBT_AGE" -AC_SUBST(LIBT_VERSION_INFO) - -LIBT_CURRENT_MINUS_AGE=`expr $LIBT_CURRENT - $LIBT_AGE` -AC_SUBST(LIBT_CURRENT_MINUS_AGE) - -PKGCONFIG_REQUIRES= -PKGCONFIG_REQUIRES_PRIVATELY= - dnl ========================================================================== case "$host" in @@ -105,19 +101,11 @@ if test "$os_win32" = "yes"; then fi AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes) -AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"]) WARN_CFLAGS="" -WARNING_CPP_DIRECTIVE="no" if test "x$GCC" = "xyes"; then WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \ -Wmissing-prototypes -Wmissing-declarations \ -Wnested-externs -fno-strict-aliasing" - WARNING_CPP_DIRECTIVE="yes" -elif test "x$SUNCC" = "xyes"; then - WARN_CFLAGS="-v -fd" - WARNING_CPP_DIRECTIVE="yes" -fi -if test "x$WARNING_CPP_DIRECTIVE" = "xyes"; then AC_DEFINE_UNQUOTED(HAVE_WARNING_CPP_DIRECTIVE,1, [Can use #warning in C files]) fi @@ -148,7 +136,7 @@ dnl ========================================================================== # Checks for header files. AC_HEADER_DIRENT AC_HEADER_STDC -AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h sys/statvfs.h sys/vfs.h sys/statfs.h sys/param.h sys/mount.h]) +AC_CHECK_HEADERS([fcntl.h regex.h stdlib.h string.h unistd.h sys/vfs.h sys/statfs.h sys/param.h sys/mount.h]) AX_CREATE_STDINT_H([src/fcstdint.h]) # Checks for typedefs, structures, and compiler characteristics. @@ -160,15 +148,54 @@ AC_TYPE_PID_T # Checks for library functions. AC_FUNC_VPRINTF AC_FUNC_MMAP -AC_CHECK_FUNCS([link mkstemp mkostemp _mktemp_s mkdtemp getopt getopt_long getprogname getexecname rand random lrand48 random_r rand_r readlink fstatvfs fstatfs lstat]) +AC_CHECK_FUNCS([link mkstemp mkostemp _mktemp_s getopt getopt_long getprogname getexecname rand random lrand48 random_r rand_r regcomp regerror regexec regfree fstatvfs fstatfs lstat]) dnl AC_CHECK_FUNCS doesn't check for header files. dnl posix_fadvise() may be not available in older libc. -AC_CHECK_SYMBOL([posix_fadvise], [fcntl.h], [fc_func_posix_fadvise=1], [fc_func_posix_fadvise=0]) -AC_DEFINE_UNQUOTED([HAVE_POSIX_FADVISE], [$fc_func_posix_fadvise], [Define to 1 if you have the 'posix_fadvise' function.]) - -# -AC_CHECK_MEMBERS([struct stat.st_mtim],,, [#include <sys/stat.h>]) +fc_saved_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS $WARN_CFLAGS -Werror" +AC_MSG_CHECKING([for posix_fadvise]) +AC_LINK_IFELSE([AC_LANG_SOURCE([[ + #include <fcntl.h> + int main(void) { + return posix_fadvise(0, 0, 0, 0); + } + ]])],[ + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE_POSIX_FADVISE], [1], [Define to 1 if you have the 'posix_fadvise' function.]) + ],[AC_MSG_RESULT([no])]) +if test "$os_win32" = "no"; then + AC_MSG_CHECKING([for scandir]) + AC_LINK_IFELSE([AC_LANG_SOURCE([[ + #include <dirent.h> + int comp(const struct dirent **, const struct dirent **); + int comp(const struct dirent **a, const struct dirent **b) { return 0; } + int main(void) { + struct dirent **d; + return scandir(".", &d, 0, &comp) >= 0; + } + ]])],[ + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE_SCANDIR], [1], [Define to 1 if you have the 'scandir' function.]) + ],[ + AC_LINK_IFELSE([AC_LANG_SOURCE([[ + #include <dirent.h> + int comp(const void *, const void *); + int comp(const void *a, const void *b) { return 0; } + int main(void) { + struct dirent **d; + return scandir(".", &d, 0, &comp) >= 0; + } + ]])],[ + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE_SCANDIR_VOID_P], [1], [Define to 1 if you have the 'scandir' function with int (* compar)(const void *, const void *)]) + ],[ + AC_MSG_ERROR([ +*** No scandir function available.]) + ]) + ]) +fi +CFLAGS="$fc_saved_CFLAGS" # if test "x$ac_cv_func_fstatvfs" = "xyes"; then @@ -192,6 +219,12 @@ if test "x$ac_cv_func_fstatfs" = "xyes"; then fi AC_CHECK_MEMBERS([struct dirent.d_type],,, [#include <dirent.h>]) +# +# regex +# +if test "x$ac_cv_func_regcomp" = "xyes" -a "x$ac_cv_func_regerror" = "xyes" -a "x$ac_cv_func_regexec" = "xyes" -a "x$ac_cv_func_regfree"; then + AC_DEFINE(USE_REGEX,,[Use regex]) +fi # # Checks for iconv @@ -296,10 +329,6 @@ AC_CHECK_MEMBER(FT_Bitmap_Size.y_ppem, #include FT_FREETYPE_H]) AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,$HAVE_FT_BITMAP_SIZE_Y_PPEM, [FT_Bitmap_Size structure includes y_ppem field]) -AC_CHECK_MEMBERS([TT_OS2.usLowerOpticalPointSize, TT_OS2.usUpperOpticalPointSize], [], [], [[ -#include <ft2build.h> -#include FT_FREETYPE_H -#include FT_TRUETYPE_TABLES_H]]) CFLAGS="$fontconfig_save_cflags" LIBS="$fontconfig_save_libs" @@ -406,25 +435,6 @@ if test "$enable_libxml2" = "yes"; then fi # -# Set default hinting -# - -AC_ARG_WITH(default-hinting, - [AC_HELP_STRING([--with-default-hinting=NAME], - [Enable your preferred hinting configuration (none/slight/medium/full) [default=slight]])], - preferred_hinting="$withval", preferred_hinting=slight) - -case "$preferred_hinting" in -none|slight|medium|full) - PREFERRED_HINTING="$preferred_hinting" - AC_SUBST(PREFERRED_HINTING) - ;; -*) - AC_MSG_ERROR([Invalid hinting. please choose one of none, slight, medium, or full]) - ;; -esac - -# # Set default font directory # @@ -521,7 +531,7 @@ AC_ARG_WITH(cache-dir, case $fc_cachedir in no|yes) if test "$os_win32" = "yes"; then - fc_cachedir="LOCAL_APPDATA_FONTCONFIG_CACHE" + fc_cachedir="WINDOWSTEMPDIR_FONTCONFIG_CACHE" else fc_cachedir='${localstatedir}/cache/${PACKAGE}' fi @@ -704,7 +714,6 @@ dnl Figure out what cache format suffix to use for this architecture AC_C_BIGENDIAN AC_CHECK_SIZEOF([void *]) AC_CHECK_ALIGNOF([double]) -AC_CHECK_ALIGNOF([void *]) dnl include the header file for workaround of miscalculating size on autoconf dnl particularly for fat binaries @@ -721,7 +730,6 @@ Makefile fontconfig/Makefile fc-lang/Makefile fc-glyphname/Makefile -fc-blanks/Makefile fc-case/Makefile src/Makefile conf.d/Makefile diff --git a/chromium/third_party/fontconfig/src/doc/Makefile.am b/chromium/third_party/fontconfig/src/doc/Makefile.am index 9141ab2364f..78a7cdbf1e2 100644 --- a/chromium/third_party/fontconfig/src/doc/Makefile.am +++ b/chromium/third_party/fontconfig/src/doc/Makefile.am @@ -81,11 +81,9 @@ DOC_FUNCS_FNCS = \ fcobjectset.fncs \ fcobjecttype.fncs \ fcpattern.fncs \ - fcrange.fncs \ fcstring.fncs \ fcstrset.fncs \ fcvalue.fncs \ - fcweight.fncs \ $(NULL) SGML_FILES = \ fontconfig-user.sgml \ diff --git a/chromium/third_party/fontconfig/src/doc/fccache.fncs b/chromium/third_party/fontconfig/src/doc/fccache.fncs index 34ce63f2780..ca8ffa03c0d 100644 --- a/chromium/third_party/fontconfig/src/doc/fccache.fncs +++ b/chromium/third_party/fontconfig/src/doc/fccache.fncs @@ -74,7 +74,6 @@ FcCacheCopySet. @PURPOSE@ This tries to clean up the cache directory of <parameter>cache_dir</parameter>. This returns FcTrue if the operation is successfully complete. otherwise FcFalse. -@SINCE@ 2.9.91 @@ @RET@ void @@ -84,5 +83,4 @@ This returns FcTrue if the operation is successfully complete. otherwise FcFalse @DESC@ This tries to create CACHEDIR.TAG file at the cache directory registered to <parameter>config</parameter>. -@SINCE@ 2.9.91 @@ diff --git a/chromium/third_party/fontconfig/src/doc/fccharset.fncs b/chromium/third_party/fontconfig/src/doc/fccharset.fncs index 7245a2a0ee5..efcd0ccf15d 100644 --- a/chromium/third_party/fontconfig/src/doc/fccharset.fncs +++ b/chromium/third_party/fontconfig/src/doc/fccharset.fncs @@ -60,7 +60,6 @@ running out of memory. <function>FcCharSetDelChar</function> deletes a single Unicode char from the set, returning FcFalse on failure, either as a result of a constant set or from running out of memory. -@SINCE@ 2.9.0 @@ @RET@ FcCharSet * diff --git a/chromium/third_party/fontconfig/src/doc/fcconfig.fncs b/chromium/third_party/fontconfig/src/doc/fcconfig.fncs index a2ce5c84db2..0491a566f48 100644 --- a/chromium/third_party/fontconfig/src/doc/fcconfig.fncs +++ b/chromium/third_party/fontconfig/src/doc/fcconfig.fncs @@ -59,8 +59,7 @@ cause a new configuration to be created for use as current configuration. @PURPOSE@ Set configuration as default @DESC@ Sets the current default configuration to <parameter>config</parameter>. Implicitly calls -FcConfigBuildFonts if necessary, and FcConfigReference() to inrease the reference count -in <parameter>config</parameter> since 2.12.0, returning FcFalse if that call fails. +FcConfigBuildFonts if necessary, returning FcFalse if that call fails. @@ @RET@ FcConfig * @@ -219,9 +218,8 @@ If <parameter>config</parameter> is NULL, the current configuration is used. @PURPOSE@ Add font file to font database @DESC@ Adds an application-specific font to the configuration. Returns FcFalse -if the fonts cannot be added (due to allocation failure or no fonts found). -Otherwise returns FcTrue. If <parameter>config</parameter> is NULL, -the current configuration is used. +if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue. +If <parameter>config</parameter> is NULL, the current configuration is used. @@ @RET@ FcBool @@ -232,9 +230,8 @@ the current configuration is used. @DESC@ Scans the specified directory for fonts, adding each one found to the application-specific set of fonts. Returns FcFalse -if the fonts cannot be added (due to allocation failure). -Otherwise returns FcTrue. If <parameter>config</parameter> is NULL, -the current configuration is used. +if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue. +If <parameter>config</parameter> is NULL, the current configuration is used. @@ @RET@ void @@ -381,7 +378,6 @@ parse error, semantic error or allocation failure. Otherwise returns FcTrue. @PURPOSE@ Obtain the system root directory @DESC@ Obtrains the system root directory in 'config' if available. -@SINCE@ 2.10.92 @@ @RET@ void @@ -394,6 +390,5 @@ Set 'sysroot' as the system root directory. fontconfig prepend 'sysroot' to the cache directories in order to allow people to generate caches at the build time. Note that this causes changing current config. i.e. this function calls FcConfigSetCurrent() internally. -@SINCE@ 2.10.92 @@ diff --git a/chromium/third_party/fontconfig/src/doc/fcdircache.fncs b/chromium/third_party/fontconfig/src/doc/fcdircache.fncs index faeba292802..24dea8bc56b 100644 --- a/chromium/third_party/fontconfig/src/doc/fcdircache.fncs +++ b/chromium/third_party/fontconfig/src/doc/fcdircache.fncs @@ -55,17 +55,6 @@ FcDirCacheRead. @@ @RET@ FcCache * -@FUNC@ FcDirCacheRescan -@TYPE1@ const FcChar8 * @ARG1@ dir -@TYPE2@ FcConfig * @ARG2@ config -@PURPOSE@ Re-scan a directory cache -@DESC@ -Re-scan directories only at <parameter>dir</parameter> and update the cache. -returns NULL if failed. -@SINCE@ 2.11.1 -@@ - -@RET@ FcCache * @FUNC@ FcDirCacheRead @TYPE1@ const FcChar8 * @ARG1@ dir @TYPE2@ FcBool% @ARG2@ force diff --git a/chromium/third_party/fontconfig/src/doc/fcformat.fncs b/chromium/third_party/fontconfig/src/doc/fcformat.fncs index 71b866b88a7..c136e8cf27c 100644 --- a/chromium/third_party/fontconfig/src/doc/fcformat.fncs +++ b/chromium/third_party/fontconfig/src/doc/fcformat.fncs @@ -305,5 +305,4 @@ For example, the format "%{family|downcase|delete( )}\n" will expand to the values of the family element in <parameter>pattern</parameter>, lower-cased and with spaces removed. -@SINCE@ 2.9.0 @@ diff --git a/chromium/third_party/fontconfig/src/doc/fclangset.fncs b/chromium/third_party/fontconfig/src/doc/fclangset.fncs index c7ed83b3448..c08d60c7096 100644 --- a/chromium/third_party/fontconfig/src/doc/fclangset.fncs +++ b/chromium/third_party/fontconfig/src/doc/fclangset.fncs @@ -68,7 +68,6 @@ two or three letter language from ISO 639 and Tt is a territory from ISO <parameter>lang</parameter> should be of the form Ll-Tt where Ll is a two or three letter language from ISO 639 and Tt is a territory from ISO 3166. -@SINCE@ 2.9.0 @@ @RET@ FcLangSet * @@ -78,7 +77,6 @@ two or three letter language from ISO 639 and Tt is a territory from ISO @PURPOSE@ Add langsets @DESC@ Returns a set including only those languages found in either <parameter>ls_a</parameter> or <parameter>ls_b</parameter>. -@SINCE@ 2.9.0 @@ @RET@ FcLangSet * @@ -88,7 +86,6 @@ Returns a set including only those languages found in either <parameter>ls_a</pa @PURPOSE@ Subtract langsets @DESC@ Returns a set including only those languages found in <parameter>ls_a</parameter> but not in <parameter>ls_b</parameter>. -@SINCE@ 2.9.0 @@ @RET@ FcLangResult @@ -164,8 +161,6 @@ has no matching language, this function returns FcLangDifferentLang. Returns a string set of the default languages according to the environment variables on the system. This function looks for them in order of FC_LANG, LC_ALL, LC_CTYPE and LANG then. If there are no valid values in those environment variables, "en" will be set as fallback. -@SINCE@ 2.9.91 -@@ @RET@ FcStrSet * @FUNC@ FcLangSetGetLangs @@ -189,7 +184,6 @@ Returns a string set of all known languages. @PURPOSE@ Normalize the language string @DESC@ Returns a string to make <parameter>lang</parameter> suitable on fontconfig. -@SINCE@ 2.10.91 @@ @RET@ const FcCharSet * diff --git a/chromium/third_party/fontconfig/src/doc/fcpattern.fncs b/chromium/third_party/fontconfig/src/doc/fcpattern.fncs index 1049d77af07..1df1c4f6184 100644 --- a/chromium/third_party/fontconfig/src/doc/fcpattern.fncs +++ b/chromium/third_party/fontconfig/src/doc/fcpattern.fncs @@ -181,21 +181,12 @@ values added to the list have binding <parameter>weak</parameter> instead of <pa @TYPE2+++++++@ const char * @ARG2+++++++@ object @TYPE3+++++++@ const FcLangSet * @ARG3+++++++@ l -@PROTOTYPE++++++++@ -@RET++++++++@ FcBool -@FUNC++++++++@ FcPatternAddRange -@TYPE1++++++++@ FcPattern * @ARG1++++++++@ p -@TYPE2++++++++@ const char * @ARG2++++++++@ object -@TYPE3++++++++@ const FcRange * @ARG3++++++++@ r - @PURPOSE@ Add a typed value to a pattern @DESC@ These are all convenience functions that insert objects of the specified type into the pattern. Use these in preference to FcPatternAdd as they will provide compile-time typechecking. These all append values to any existing list of values. - -<function>FcPatternAddRange</function> are available since 2.11.91. @@ @RET@ FcResult @@ -266,24 +257,16 @@ within the pattern directly. Applications must not free this value. @FUNC++++++@ FcPatternGetFTFace @TYPE1++++++@ FcPattern * @ARG1++++++@ p @TYPE2++++++@ const char * @ARG2++++++@ object -@TYPE3++++++@ int% @ARG3++++++@ n -@TYPE4++++++@ FT_Face * @ARG4++++++@ f +@TYPE3+++++@ int% @ARG3+++++@ n +@TYPE3++++++@ FT_Face * @ARG3++++++@ f @PROTOTYPE+++++++@ @RET+++++++@ FcResult @FUNC+++++++@ FcPatternGetLangSet @TYPE1+++++++@ FcPattern * @ARG1+++++++@ p @TYPE2+++++++@ const char * @ARG2+++++++@ object -@TYPE3+++++++@ int% @ARG3+++++++@ n -@TYPE4+++++++@ FcLangSet ** @ARG4+++++++@ l - -@PROTOTYPE++++++++@ -@RET++++++++@ FcResult -@FUNC++++++++@ FcPatternGetRange -@TYPE1++++++++@ FcPattern * @ARG1++++++++@ p -@TYPE2++++++++@ const char * @ARG2++++++++@ object -@TYPE3++++++++@ int% @ARG3++++++++@ n -@TYPE4++++++++@ FcRange ** @ARG4++++++++@ r +@TYPE3+++++@ int% @ARG3+++++@ n +@TYPE3+++++++@ FcLangSet ** @ARG3+++++++@ l @PURPOSE@ Return a typed value from a pattern @DESC@ @@ -292,8 +275,6 @@ returned data is of the expected type. They return FcResultTypeMismatch if this is not the case. Note that these (like FcPatternGet) do not make a copy of any data structure referenced by the return value. Use these in preference to FcPatternGet to provide compile-time typechecking. - -<function>FcPatternGetRange</function> are available since 2.11.91. @@ @RET@ FcPattern * diff --git a/chromium/third_party/fontconfig/src/doc/fcrange.fncs b/chromium/third_party/fontconfig/src/doc/fcrange.fncs deleted file mode 100644 index ba76f65b284..00000000000 --- a/chromium/third_party/fontconfig/src/doc/fcrange.fncs +++ /dev/null @@ -1,75 +0,0 @@ -/* - * fontconfig/doc/fcrange.fncs - * - * Copyright © 2003 Keith Packard - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of the author(s) not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. The authors make no - * representations about the suitability of this software for any purpose. It - * is provided "as is" without express or implied warranty. - * - * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ -@RET@ FcRange * -@FUNC@ FcRangeCopy -@TYPE1@ const FcRange * @ARG1@ range -@PURPOSE@ Copy a range object -@DESC@ -<function>FcRangeCopy</function> creates a new FcRange object and -populates it with the contents of <parameter>range</parameter>. -@SINCE@ 2.11.91 -@@ - -@RET@ FcRange * -@FUNC@ FcRangeCreateDouble -@TYPE1@ double @ARG1@ begin -@TYPE2@ double @ARG2@ end -@PURPOSE@ create a range object for double -@DESC@ -<function>FcRangeCreateDouble</function> creates a new FcRange object with -double sized value. -@SINCE@ 2.11.91 -@@ - -@RET@ FcRange * -@FUNC@ FcRangeCreateInteger -@TYPE1@ int @ARG1@ begin -@TYPE2@ int @ARG2@ end -@PURPOSE@ create a range object for integer -@DESC@ -<function>FcRangeCreateInteger</function> creates a new FcRange object with -integer sized value. -@SINCE@ 2.11.91 -@@ - -@RET@ void -@FUNC@ FcRangeDestroy -@TYPE1@ FcRange * @ARG1@ range -@PURPOSE@ destroy a range object -@DESC@ -<function>FcRangeDestroy</function> destroys a FcRange object, freeing -all memory associated with it. -@SINCE@ 2.11.91 -@@ - -@RET@ FcBool -@FUNC@ FcRangeGetDouble -@TYPE1@ const FcRange * @ARG1@ range -@TYPE2@ double * @ARG2@ begin -@TYPE3@ double * @ARG3@ end -@PURPOSE@ Get the range in double -@DESC@ -Returns in <parameter>begin</parameter> and <parameter>end</parameter> as the range. -@SINCE@ 2.11.91 -@@ diff --git a/chromium/third_party/fontconfig/src/doc/fcstrset.fncs b/chromium/third_party/fontconfig/src/doc/fcstrset.fncs index 67aa61ac021..b96489a43f6 100644 --- a/chromium/third_party/fontconfig/src/doc/fcstrset.fncs +++ b/chromium/third_party/fontconfig/src/doc/fcstrset.fncs @@ -104,7 +104,6 @@ Creates an iterator to list the strings in <parameter>set</parameter>. @PURPOSE@ get first string in iteration @DESC@ Returns the first string in <parameter>list</parameter>. -@SINCE@ 2.11.0 @@ @RET@ FcChar8 * diff --git a/chromium/third_party/fontconfig/src/doc/fcweight.fncs b/chromium/third_party/fontconfig/src/doc/fcweight.fncs deleted file mode 100644 index 2872dd66cb0..00000000000 --- a/chromium/third_party/fontconfig/src/doc/fcweight.fncs +++ /dev/null @@ -1,47 +0,0 @@ -/* - * fontconfig/doc/fcweight.fncs - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of the author(s) not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. The authors make no - * representations about the suitability of this software for any purpose. It - * is provided "as is" without express or implied warranty. - * - * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ -@RET@ int -@FUNC@ FcWeightFromOpenType -@TYPE1@ int @ARG1@ ot_weight -@PURPOSE@ Convert from OpenType weight values to fontconfig ones -@DESC@ -<function>FcWeightFromOpenType</function> returns an integer value -to use with FC_WEIGHT, from an integer in the 1..1000 range, resembling -the numbers from OpenType specification's OS/2 usWeight numbers, which -are also similar to CSS font-weight numbers. If input is negative, -zero, or greater than 1000, returns -1. This function linearly interpolates -between various FC_WEIGHT_* constants. As such, the returned value does not -necessarily match any of the predefined constants. -@SINCE@ 2.11.91 -@@ - -@RET@ int -@FUNC@ FcWeightToOpenType -@TYPE1@ int @ARG1@ ot_weight -@PURPOSE@ Convert from fontconfig weight values to OpenType ones -@DESC@ -<function>FcWeightToOpenType</function> is the inverse of -<function>FcWeightFromOpenType</function>. If the input is less than -FC_WEIGHT_THIN or greater than FC_WEIGHT_EXTRABLACK, returns -1. Otherwise -returns a number in the range 1 to 1000. -@SINCE@ 2.11.91 -@@ diff --git a/chromium/third_party/fontconfig/src/doc/fontconfig-devel.sgml b/chromium/third_party/fontconfig/src/doc/fontconfig-devel.sgml index d0ec8a579f6..7306d79247a 100644 --- a/chromium/third_party/fontconfig/src/doc/fontconfig-devel.sgml +++ b/chromium/third_party/fontconfig/src/doc/fontconfig-devel.sgml @@ -16,11 +16,9 @@ <!ENTITY fcobjectset SYSTEM "fcobjectset.sgml"> <!ENTITY fcobjecttype SYSTEM "fcobjecttype.sgml"> <!ENTITY fcpattern SYSTEM "fcpattern.sgml"> -<!ENTITY fcrange SYSTEM "fcrange.sgml"> <!ENTITY fcstring SYSTEM "fcstring.sgml"> <!ENTITY fcstrset SYSTEM "fcstrset.sgml"> <!ENTITY fcvalue SYSTEM "fcvalue.sgml"> -<!ENTITY fcweight SYSTEM "fcweight.sgml"> <!ENTITY version SYSTEM "version.sgml"> ]> <!-- @@ -176,9 +174,7 @@ convenience for the application's rendering mechanism. outline FC_OUTLINE Bool Whether the glyphs are outlines scalable FC_SCALABLE Bool Whether glyphs can be scaled scale FC_SCALE Double Scale factor for point->pixel - conversions (deprecated) - symbol FC_SYMBOL Bool Whether font uses MS symbol-font encoding - color FC_COLOR Bool Whether any glyphs have color + conversions dpi FC_DPI Double Target dots per inch rgba FC_RGBA Int unknown, rgb, bgr, vrgb, vbgr, none - subpixel geometry @@ -192,13 +188,8 @@ convenience for the application's rendering mechanism. fontversion FC_FONTVERSION Int Version number of the font capability FC_CAPABILITY String List of layout capabilities in the font - fontformat FC_FONTFORMAT String String name of the font format embolden FC_EMBOLDEN Bool Rasterizer should synthetically embolden the font - embeddedbitmap FC_EMBEDDED_BITMAP Bool Use the embedded bitmap instead - of the outline - decorative FC_DECORATIVE Bool Whether the style is a decorative - variant fontfeatures FC_FONT_FEATURES String List of extra feature tags in OpenType to be enabled namelang FC_NAMELANG String Language name to be used for the @@ -206,7 +197,7 @@ convenience for the application's rendering mechanism. stylelang and fullnamelang prgname FC_PRGNAME String Name of the running program hash FC_HASH String SHA256 hash value of the font data - with "sha256:" prefix (deprecated) + with "sha256:" prefix. postscriptname FC_POSTSCRIPT_NAME String Font name in PostScript </programlisting> </sect2> @@ -517,12 +508,6 @@ FcMatrix structures hold an affine transformation in matrix form. </para> &fcmatrix; </sect2> - <sect2><title>FcRange</title> - <para> -An FcRange holds two variables to indicate a range in between. - </para> - &fcrange; - </sect2> <sect2><title>FcConfig</title> <para> An FcConfig object holds the internal representation of a configuration. @@ -544,12 +529,6 @@ Provides for application-specified symbolic constants for font names. </para> &fcconstant; </sect2> - <sect2><title>FcWeight</title> - <para> -Maps weights to and from OpenType weights. - </para> - &fcweight; - </sect2> <sect2><title>FcBlanks</title> <para> An FcBlanks object holds a list of Unicode chars which are expected to diff --git a/chromium/third_party/fontconfig/src/doc/fontconfig-user.sgml b/chromium/third_party/fontconfig/src/doc/fontconfig-user.sgml index 30e7b871af1..775d1f725c2 100644 --- a/chromium/third_party/fontconfig/src/doc/fontconfig-user.sgml +++ b/chromium/third_party/fontconfig/src/doc/fontconfig-user.sgml @@ -119,8 +119,7 @@ convenience for the applications' rendering mechanism. rasterizer String Which rasterizer is in use (deprecated) outline Bool Whether the glyphs are outlines scalable Bool Whether glyphs can be scaled - color Bool Whether any glyphs have color - scale Double Scale factor for point->pixel conversions (deprecated) + scale Double Scale factor for point->pixel conversions dpi Double Target dots per inch rgba Int unknown, rgb, bgr, vrgb, vbgr, none - subpixel geometry @@ -131,15 +130,9 @@ convenience for the applications' rendering mechanism. font supports fontversion Int Version number of the font capability String List of layout capabilities in the font - fontformat String String name of the font format embolden Bool Rasterizer should synthetically embolden the font - embeddedbitmap Bool Use the embedded bitmap instead of the outline - decorative Bool Whether the style is a decorative variant fontfeatures String List of the feature tags in OpenType to be enabled - namelang String Language name to be used for the default value of - familylang, stylelang, and fullnamelang prgname String String Name of the running program - postscriptname String Font family name in PostScript </programlisting> </refsect2> <refsect2> @@ -258,7 +251,7 @@ debugging messages. MEMORY 512 Monitor fontconfig memory usage CONFIG 1024 Monitor which config files are loaded LANGSET 2048 Dump char sets used to construct lang values - MATCH2 4096 Display font-matching transformation in patterns + OBJTYPES 4096 Display message when value typechecks fail </programlisting> <para> Add the value of the desired debug levels together and assign that (in @@ -321,9 +314,9 @@ the configuration file, the directory that can be accessed first in the list will be used to store the cache files. If it starts with '~', it refers to a directory in the users home directory. If 'prefix' is set to "xdg", the value in the XDG_CACHE_HOME environment variable will be added as the path prefix. please see XDG Base Directory Specification for more details. The default directory is ``$XDG_CACHE_HOME/fontconfig'' and it contains the cache files -named ``<literal><hash value></literal>-<literal><architecture></literal>.cache-<literal><version></literal>'', -where <literal><version></literal> is the fontconfig cache file -version number (currently 7). +named ``<literal><hash value></literal>-<literal><architecture></literal>.cache-<literal><version</literal>'', +where <literal><version></literal> is the font configureation file +version number (currently 3). </para></refsect2> <refsect2><title><literal><include ignore_missing="no" prefix="default"></literal></title><para> This element contains the name of an additional configuration file or @@ -480,8 +473,6 @@ symbolic names for common font values: extralight weight 40 ultralight weight 40 light weight 50 - demilight weight 55 - semilight weight 55 book weight 75 regular weight 80 normal weight 80 @@ -787,10 +778,6 @@ is used to override the default configuration directory. is used to output the detailed debugging messages. see <link linkend="debug">Debugging Applications</link> section for more details. </para> <para> -<emphasis>FC_DBG_MATCH_FILTER</emphasis> -is used to filter out the patterns. this takes a comma-separated list of object names and effects only when FC_DEBUG has MATCH2. see <link linkend="debug">Debugging Applications</link> section for more details. - </para> - <para> <emphasis>FONTCONFIG_USE_MMAP</emphasis> is used to control the use of mmap(2) for the cache files if available. this take a boolean value. fontconfig will checks if the cache files are stored on the filesystem that is safe to use mmap(2). explicitly setting this environment variable will causes skipping this check and enforce to use or not use mmap(2) anyway. </para> diff --git a/chromium/third_party/fontconfig/src/doc/func.sgml b/chromium/third_party/fontconfig/src/doc/func.sgml index f076baff291..73e7761ce39 100644 --- a/chromium/third_party/fontconfig/src/doc/func.sgml +++ b/chromium/third_party/fontconfig/src/doc/func.sgml @@ -33,7 +33,6 @@ <refentrytitle>@FUNC@</refentrytitle> @;@ <manvolnum>3</manvolnum> - <refmiscinfo class="software">Fontconfig &version;</refmiscinfo> </refmeta> <refnamediv> @{PROTOTYPE@ @@ -83,9 +82,9 @@ @DESC@ </para> </refsect1> -@?SINCE@ - <refsect1><title>Since</title> - <para>version @SINCE@</para> + <refsect1><title>Version</title> + <para> +Fontconfig version &version; + </para> </refsect1> -@;@ </refentry> diff --git a/chromium/third_party/fontconfig/src/fc-blanks/Makefile.am b/chromium/third_party/fontconfig/src/fc-blanks/Makefile.am deleted file mode 100644 index 2b2075f8b1f..00000000000 --- a/chromium/third_party/fontconfig/src/fc-blanks/Makefile.am +++ /dev/null @@ -1,46 +0,0 @@ -# -*- encoding: utf-8 -*- -# -# Copyright © 2003 Keith Packard -# -# Permission to use, copy, modify, distribute, and sell this software and its -# documentation for any purpose is hereby granted without fee, provided that -# the above copyright notice appear in all copies and that both that -# copyright notice and this permission notice appear in supporting -# documentation, and that the name of the author(s) not be used in -# advertising or publicity pertaining to distribution of the software without -# specific, written prior permission. The authors make no -# representations about the suitability of this software for any purpose. It -# is provided "as is" without express or implied warranty. -# -# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO -# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR -# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -# PERFORMANCE OF THIS SOFTWARE. - -NULL = -BLANKSPY = fc-blanks.py -BLANKS_H = fcblanks.h -TMPL = fcblanks.tmpl.h -noinst_SCRIPTS = $(BLANKSPY) -noinst_HEADERS = $(BLANKS_H) - -$(BLANKS_H): $(TMPL) $(BLANKSPY) -if HAVE_PYTHON - $(AM_V_GEN) $(PYTHON) $(srcdir)/$(BLANKSPY) < $< > $(BLANKS_H).tmp && \ - mv $(BLANKS_H).tmp $(BLANKS_H) || ($(RM) $(BLANKS_H).tmp && false) -else - @echo "No python installed. please install python to build $(BLANKS_H)." - @false -endif - -EXTRA_DIST = \ - $(BLANKSPY) \ - $(BLANKS_H) \ - $(TMPL) \ - $(NULL) -DISTCLEANFILES = $(BLANKS_H) - --include $(top_srcdir)/git.mk diff --git a/chromium/third_party/fontconfig/src/fc-blanks/fc-blanks.py b/chromium/third_party/fontconfig/src/fc-blanks/fc-blanks.py deleted file mode 100755 index cc23cde2d6f..00000000000 --- a/chromium/third_party/fontconfig/src/fc-blanks/fc-blanks.py +++ /dev/null @@ -1,156 +0,0 @@ -#! /usr/bin/python - -from __future__ import absolute_import -from __future__ import print_function -try: - from urllib2 import urlopen - from urllib2 import URLError -except ImportError: - from urllib.request import urlopen - from urllib.error import URLError - -import sys -import os -from lxml import html -from six.moves import range - -datafile = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'list-unicodeset.html') -try: - fp = urlopen('http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[%3AGC%3DZs%3A][%3ADI%3A]&abb=on&ucd=on&esc=on&g') - data = fp.read() - fp.close() - fp = open(datafile, 'wb'); - fp.write(data); - fp.close(); -except URLError: - # fall back reading the static data in repo - try: - fp = open(datafile) - data = fp.read() - fp.close() - except IOError: - sys.stderr.write("Error: No static data to generate the blank data. please make sure the network connection is reachable to Unicode.org\n") - sys.exit(1) - -dom = html.fromstring(data) -x = dom.xpath('/html/body/form/p/text()') -p = x[1] -if p[0] == '[' and p[-1] == ']': - p = p.replace('[', '').replace(']', '') -else: - sys.exit(1) -fescape = False -funicode = False -frange = False -fprocess = False -v = 0 -vbegin = 0 -vend = 0 -n = 0 -l = [] - -def insert(db, begin, end): - db.append([begin, end]) - -for i in p: - if i == '\\': - if n > 0: - if frange == True and funicode == True: - vend = v - insert(l, vbegin, vend) - fprocess = True - elif funicode == True: - vbegin = v - vend = v - insert(l, vbegin, vend) - fprocess = True - funicode = False - fescape = True - elif i.lower() == 'u' and fescape == True: - funicode = True - fescape = False - elif i >= '0' and i <= '9' or i.lower() >= 'a' and i.lower() <= 'f': - if fescape == True: - raise RuntimeError("Unexpected escape code") - if funicode == True: - v <<= 4 - v += int(i, 16) - else: - raise RuntimeError("Unable to parse Unicode") - elif i == ' ': - if fescape == True: - funicode = True - fescape = False - v = 0x20 - if frange == True and funicode == True: - vend = v - insert(l, vbegin, vend) - fprocess = True - elif funicode == True: - vbegin = v - vend = v - insert(l, vbegin, vend) - fprocess = True - funicode = False - frange = False - elif i == '-': - if fescape == True: - raise RuntimeError("Unexpected escape code") - vbegin = v - v = 0 - funicode = False - frange = True - else: - raise RuntimeError("Unable to parse Unicode: %s" % i) - - if fprocess == True: - vbegin = 0 - vend = 0 - v = 0 - fprocess = False - funicode = False - frange = False - n += 1 - -if frange == True and funicode == True: - vend = v - insert(l, vbegin, vend) -elif funicode == True: - vbegin = vend = v - insert(l, vbegin, vend) - -ncode = 0 -for i in l: - ncode += (i[1] - i[0] + 1) - -a = int(x[0].split(' ')[0].replace(',', '')) -if a != ncode: - sys.stderr.write("Unexpected the amount of code points: %d (expected %d)\n" % (ncode, a)) - sys.exit(1) - -# exception; BRAILLE PATTERN BLANK -insert(l, 0x2800, 0x2800) - -while True: - s = sys.stdin.readline().rstrip() - if s == "@@@": - break - print(s) - -print("static FcChar32 _fcBlanks[%s] = {" % (ncode + 1)) -k = 0 -for i in sorted(l, key=lambda a: a[0]): - for j in range(i[0], i[1] + 1): - if k != 0: - print(",") - print(" 0x%04x" % j, end=' ') - k += 1 - -print("};") -print(''' -static FcBlanks fcBlanks = { - %s, - -1, - _fcBlanks -}; -''' % (ncode + 1)) diff --git a/chromium/third_party/fontconfig/src/fc-blanks/fcblanks.tmpl.h b/chromium/third_party/fontconfig/src/fc-blanks/fcblanks.tmpl.h deleted file mode 100644 index 2bcaa21d6c1..00000000000 --- a/chromium/third_party/fontconfig/src/fc-blanks/fcblanks.tmpl.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * fontconfig/fc-blanks/fcblanks.tmpl.h - * - * Copyright © 2003 Keith Packard - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of the author(s) not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. The authors make no - * representations about the suitability of this software for any purpose. It - * is provided "as is" without express or implied warranty. - * - * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ - -@@@ diff --git a/chromium/third_party/fontconfig/src/fc-blanks/list-unicodeset.html b/chromium/third_party/fontconfig/src/fc-blanks/list-unicodeset.html deleted file mode 100644 index 6e95efaf0e8..00000000000 --- a/chromium/third_party/fontconfig/src/fc-blanks/list-unicodeset.html +++ /dev/null @@ -1,119 +0,0 @@ -<html> -<head> -<meta http-equiv="Content-Language" content="en-us"> -<meta name="GENERATOR" content="Microsoft FrontPage 6.0"> -<meta name="ProgId" content="FrontPage.Editor.Document"> -<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<link rel="stylesheet" type="text/css" href="index.css"> - - - - - - - - - - - - - - - - - - - -<title>Unicode Utilities: UnicodeSet</title> -</head> -<body> - -<h1>Unicode Utilities: UnicodeSet </h1> -<p><a target="help" href="http://cldr.unicode.org/unicode-utilities/list-unicodeset"><b>help</b></a> | <a target="character" href="character.jsp">character</a> - | <a target="properties" href="properties.jsp">properties</a> - | <a target="confusables" href="confusables.jsp">confusables</a> - | <a target="list" href="list-unicodeset.jsp">unicode-set</a> - | <a target="compare" href="unicodeset.jsp">compare-sets</a> - | <a target="regex" href="regex.jsp">regex</a> - | <a target="bnf" href="bnf.jsp">bnf-regex</a> - | <a target="breaks" href="breaks.jsp">breaks</a> - | <a target="transform" href="transform.jsp">transform</a> - | <a target="bidi" href="bidi.jsp">bidi</a> - | <a target="idna" href="idna.jsp">idna</a> - | <a target="languageid" href="languageid.jsp">languageid</a></p> -<form name="myform"> - <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; width:100%"> - <tr> - <th style="width: 50%">Input</th> - </tr> - <tr> - <td><textarea name="a" rows="8" cols="10" style="width: 100%">[:GC=Zs:][:DI:]</textarea></td> - </tr> - <tr> - <td> - <input id='main' type="submit" value="Show Set" onClick="window.location.href='list-unicodeset.jsp?a='+document.getElementById('main').value"/> - <input type="checkbox" checked name="abb"><label for="abb">Abbreviate</label> - <input type="checkbox" name="c"><label for="c">Collate</label> - <input type="checkbox" checked name="ucd"><label for="ucd">UCD format</label> - <input type="checkbox" checked name="esc"><label for="esc">Escape</label> - <label for="g">Group by:</label> - <input type="text" checked name="g" size="25" value=""> - <label for="i">Info:</label> - <input type="text" checked name="i" size="25" value=""> - </td> - </tr> -</table> - <p>4,190 Code Points</p> - <hr> - <p>[\ \u00A0\u00AD\u034F\u061C\u115F\u1160\u1680\u17B4\u17B5\u180B-\u180E\u2000-\u200F\u202A-\u202F\u205F-\u206F\u3000\u3164\uFE00-\uFE0F\uFEFF\uFFA0\uFFF0-\uFFF8\U0001BCA0-\U0001BCA3\U0001D173-\U0001D17A\U000E0000-\U000E0FFF]</p> - <hr> - <table width='100%'><tr><td colSpan='4'><tr><td class='charCell' width='3m'> </td><td width='7m'><code><a target='c' href='character.jsp?a=0020'>0020</a></code></td><td>SPACE</td></tr> -<tr><td class='charCell' width='3m'> </td><td width='7m'><code><a target='c' href='character.jsp?a=00A0'>00A0</a></code></td><td>NO-BREAK SPACE</td></tr> -<tr><td class='charCell' width='3m'> </td><td width='7m'><code><a target='c' href='character.jsp?a=00AD'>00AD</a></code></td><td>SOFT HYPHEN</td></tr> -<tr><td class='charCell' width='3m'> </td><td width='7m'><code><a target='c' href='character.jsp?a=034F'>034F</a></code></td><td>COMBINING GRAPHEME JOINER</td></tr> -<tr><td class='charCell' width='3m'> </td><td width='7m'><code><a target='c' href='character.jsp?a=061C'>061C</a></code></td><td>ARABIC LETTER MARK</td></tr> -<tr><td class='charCell' width='3m'> </td><td width='7m'><code><a target='c' href='character.jsp?a=115F'>115F</a></code></td><td>HANGUL CHOSEONG FILLER</td></tr> -<tr><td class='charCell' width='3m'> </td><td width='7m'><code><a target='c' href='character.jsp?a=1160'>1160</a></code></td><td>HANGUL JUNGSEONG FILLER</td></tr> -<tr><td class='charCell' width='3m'> </td><td width='7m'><code><a target='c' href='character.jsp?a=1680'>1680</a></code></td><td>OGHAM SPACE MARK</td></tr> -<tr><td class='charCell' width='3m'> </td><td width='7m'><code><a target='c' href='character.jsp?a=17B4'>17B4</a></code></td><td>KHMER VOWEL INHERENT AQ</td></tr> -<tr><td class='charCell' width='3m'> </td><td width='7m'><code><a target='c' href='character.jsp?a=17B5'>17B5</a></code></td><td>KHMER VOWEL INHERENT AA</td></tr> -<code><a target='c' href='character.jsp?a=180B'>180B</a></code>..<tr><td class='charCell' width='3m'> </td><td width='7m'><code><a target='c' href='character.jsp?a=180E'>180E</a></code></td><td>MONGOLIAN VOWEL SEPARATOR</td></tr> -<code><a target='c' href='character.jsp?a=2000'>2000</a></code>..<tr><td class='charCell' width='3m'> </td><td width='7m'><code><a target='c' href='character.jsp?a=200F'>200F</a></code></td><td>RIGHT-TO-LEFT MARK</td></tr> -<code><a target='c' href='character.jsp?a=202A'>202A</a></code>..<tr><td class='charCell' width='3m'> </td><td width='7m'><code><a target='c' href='character.jsp?a=202F'>202F</a></code></td><td>NARROW NO-BREAK SPACE</td></tr> -<code><a target='c' href='character.jsp?a=205F'>205F</a></code>..<tr><td class='charCell' width='3m'> </td><td width='7m'><code><a target='c' href='character.jsp?a=206F'>206F</a></code></td><td>NOMINAL DIGIT SHAPES</td></tr> -<tr><td class='charCell' width='3m'> </td><td width='7m'><code><a target='c' href='character.jsp?a=3000'>3000</a></code></td><td>IDEOGRAPHIC SPACE</td></tr> -<tr><td class='charCell' width='3m'> </td><td width='7m'><code><a target='c' href='character.jsp?a=3164'>3164</a></code></td><td>HANGUL FILLER</td></tr> -<code><a target='c' href='character.jsp?a=FE00'>FE00</a></code>..<tr><td class='charCell' width='3m'> </td><td width='7m'><code><a target='c' href='character.jsp?a=FE0F'>FE0F</a></code></td><td>VARIATION SELECTOR-16</td></tr> -<tr><td class='charCell' width='3m'> </td><td width='7m'><code><a target='c' href='character.jsp?a=FEFF'>FEFF</a></code></td><td>ZERO WIDTH NO-BREAK SPACE</td></tr> -<tr><td class='charCell' width='3m'> </td><td width='7m'><code><a target='c' href='character.jsp?a=FFA0'>FFA0</a></code></td><td>HALFWIDTH HANGUL FILLER</td></tr> -<code><a target='c' href='character.jsp?a=FFF0'>FFF0</a></code>..<tr><td class='charCell' width='3m'> </td><td width='7m'><code><a target='c' href='character.jsp?a=FFF8'>FFF8</a></code></td><td><i><unassigned-FFF8></i></td></tr> -<code><a target='c' href='character.jsp?a=1BCA0'>1BCA0</a></code>..<tr><td class='charCell' width='3m'> </td><td width='7m'><code><a target='c' href='character.jsp?a=1BCA3'>1BCA3</a></code></td><td>SHORTHAND FORMAT UP STEP</td></tr> -<code><a target='c' href='character.jsp?a=1D173'>1D173</a></code>..<tr><td class='charCell' width='3m'> </td><td width='7m'><code><a target='c' href='character.jsp?a=1D17A'>1D17A</a></code></td><td>MUSICAL SYMBOL END PHRASE</td></tr> -<code><a target='c' href='character.jsp?a=E0000'>E0000</a></code>..<tr><td class='charCell' width='3m'> </td><td width='7m'><code><a target='c' href='character.jsp?a=E0FFF'>E0FFF</a></code></td><td><i><unassigned-E0FFF></i></td></tr> -</td></tr></table> -</form> -<hr> -<p style="font-size:80%"><b><a name="fonts">Fonts and Display.</a></b> If you don't have a good set of Unicode fonts (and modern browser), -you may not be able to read some of the characters. -Some suggested fonts that you can add for coverage are: -<a href="http://greekfonts.teilar.gr/" target="_blank">Unicode Fonts for Ancient Scripts</a>, -<a href="https://www.google.com/get/noto/" target="_blank">Noto Fonts site</a>, -<a href="http://www.alanwood.net/unicode/fonts.html" target="_blank">Large, multi-script Unicode fonts</a>. -See also: <a href="http://www.unicode.org/help/display_problems.html" target="_blank">Unicode Display Problems</a>.</p> -<p style="font-size:80%">Version 3.7; -ICU version: 57.0.1.0; -Unicode version: 8.0.0.0 -</p> -<script type="text/javascript"> -var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); -document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); -</script> -<script type="text/javascript"> -try { -var pageTracker = _gat._getTracker("UA-8314904-1"); -pageTracker._trackPageview(); -} catch(err) {} -</script> -<hr> -</body> -</html> diff --git a/chromium/third_party/fontconfig/src/fc-cache/fc-cache.c b/chromium/third_party/fontconfig/src/fc-cache/fc-cache.c index 0336073a347..af7ba6dd6a9 100644 --- a/chromium/third_party/fontconfig/src/fc-cache/fc-cache.c +++ b/chromium/third_party/fontconfig/src/fc-cache/fc-cache.c @@ -65,10 +65,9 @@ #define _GNU_SOURCE #include <getopt.h> const struct option longopts[] = { - {"error-on-no-fonts", 0, 0, 'E'}, {"force", 0, 0, 'f'}, {"really-force", 0, 0, 'r'}, - {"sysroot", required_argument, 0, 'y'}, + {"sysroot", 0, 0, 'y'}, {"system-only", 0, 0, 's'}, {"version", 0, 0, 'V'}, {"verbose", 0, 0, 'v'}, @@ -87,17 +86,16 @@ usage (char *program, int error) { FILE *file = error ? stderr : stdout; #if HAVE_GETOPT_LONG - fprintf (file, "usage: %s [-EfrsvVh] [-y SYSROOT] [--error-on-no-fonts] [--force|--really-force] [--sysroot=SYSROOT] [--system-only] [--verbose] [--version] [--help] [dirs]\n", + fprintf (file, "usage: %s [-frsvVh] [-y SYSROOT] [--force|--really-force] [--sysroot=SYSROOT] [--system-only] [--verbose] [--version] [--help] [dirs]\n", program); #else - fprintf (file, "usage: %s [-EfrsvVh] [-y SYSROOT] [dirs]\n", + fprintf (file, "usage: %s [-frsvVh] [-y SYSROOT] [dirs]\n", program); #endif fprintf (file, "Build font information caches in [dirs]\n" "(all directories in font configuration by default).\n"); fprintf (file, "\n"); #if HAVE_GETOPT_LONG - fprintf (file, " -E, --error-on-no-fonts raise an error if no fonts in a directory\n"); fprintf (file, " -f, --force scan directories with apparently valid caches\n"); fprintf (file, " -r, --really-force erase all existing caches, then rescan\n"); fprintf (file, " -s, --system-only scan system-wide directories only\n"); @@ -106,8 +104,6 @@ usage (char *program, int error) fprintf (file, " -V, --version display font config version and exit\n"); fprintf (file, " -h, --help display this help and exit\n"); #else - fprintf (file, " -E (error-on-no-fonts)\n"); - fprintf (file, " raise an error if no fonts in a directory\n"); fprintf (file, " -f (force) scan directories with apparently valid caches\n"); fprintf (file, " -r, (really force) erase all existing caches, then rescan\n"); fprintf (file, " -s (system) scan system-wide directories only\n"); @@ -122,7 +118,7 @@ usage (char *program, int error) static FcStrSet *processed_dirs; static int -scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, FcBool verbose, FcBool error_on_no_fonts, int *changed) +scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, FcBool verbose, FcBool recursive, int *changed) { int ret = 0; const FcChar8 *dir; @@ -130,10 +126,9 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, FcStrList *sublist; FcCache *cache; struct stat statb; - FcBool was_valid, was_processed = FcFalse; + FcBool was_valid; int i; - const FcChar8 *sysroot = FcConfigGetSysRoot (config); - + /* * Now scan all of the directories into separate databases * and write out the results @@ -142,13 +137,11 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, { if (verbose) { - if (sysroot) - printf ("[%s]", sysroot); printf ("%s: ", dir); fflush (stdout); } - if (FcStrSetMember (processed_dirs, dir)) + if (recursive && FcStrSetMember (processed_dirs, dir)) { if (verbose) printf ("skipping, looped directory detected\n"); @@ -177,7 +170,6 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, fprintf (stderr, "\"%s\": not a directory, skipping\n", dir); continue; } - was_processed = FcTrue; if (really_force) FcDirCacheUnlink (dir, config); @@ -222,33 +214,36 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, } } - subdirs = FcStrSetCreate (); - if (!subdirs) + if (recursive) { - fprintf (stderr, "%s: Can't create subdir set\n", dir); - ret++; + subdirs = FcStrSetCreate (); + if (!subdirs) + { + fprintf (stderr, "%s: Can't create subdir set\n", dir); + ret++; + FcDirCacheUnload (cache); + continue; + } + for (i = 0; i < FcCacheNumSubdir (cache); i++) + FcStrSetAdd (subdirs, FcCacheSubdir (cache, i)); + FcDirCacheUnload (cache); - continue; - } - for (i = 0; i < FcCacheNumSubdir (cache); i++) - FcStrSetAdd (subdirs, FcCacheSubdir (cache, i)); - FcDirCacheUnload (cache); - - sublist = FcStrListCreate (subdirs); - FcStrSetDestroy (subdirs); - if (!sublist) - { - fprintf (stderr, "%s: Can't create subdir list\n", dir); - ret++; - continue; + sublist = FcStrListCreate (subdirs); + FcStrSetDestroy (subdirs); + if (!sublist) + { + fprintf (stderr, "%s: Can't create subdir list\n", dir); + ret++; + continue; + } + FcStrSetAdd (processed_dirs, dir); + ret += scanDirs (sublist, config, force, really_force, verbose, recursive, changed); + FcStrListDone (sublist); } - FcStrSetAdd (processed_dirs, dir); - ret += scanDirs (sublist, config, force, really_force, verbose, error_on_no_fonts, changed); - FcStrListDone (sublist); + else + FcDirCacheUnload (cache); } - if (error_on_no_fonts && !was_processed) - ret++; return ret; } @@ -282,7 +277,6 @@ main (int argc, char **argv) FcBool force = FcFalse; FcBool really_force = FcFalse; FcBool systemOnly = FcFalse; - FcBool error_on_no_fonts = FcFalse; FcConfig *config; FcChar8 *sysroot = NULL; int i; @@ -292,15 +286,12 @@ main (int argc, char **argv) int c; #if HAVE_GETOPT_LONG - while ((c = getopt_long (argc, argv, "Efrsy:Vvh", longopts, NULL)) != -1) + while ((c = getopt_long (argc, argv, "frsy:Vvh", longopts, NULL)) != -1) #else - while ((c = getopt (argc, argv, "Efrsy:Vvh")) != -1) + while ((c = getopt (argc, argv, "frsy:Vvh")) != -1) #endif { switch (c) { - case 'E': - error_on_no_fonts = FcTrue; - break; case 'r': really_force = FcTrue; /* fall through */ @@ -378,9 +369,12 @@ main (int argc, char **argv) fprintf(stderr, "Cannot malloc\n"); return 1; } - + changed = 0; - ret = scanDirs (list, config, force, really_force, verbose, error_on_no_fonts, &changed); + ret = scanDirs (list, config, force, really_force, verbose, FcTrue, &changed); + /* Update the directory cache again to avoid the race condition as much as possible */ + FcStrListFirst (list); + ret += scanDirs (list, config, FcTrue, really_force, verbose, FcFalse, &changed); FcStrListDone (list); /* diff --git a/chromium/third_party/fontconfig/src/fc-cache/fc-cache.sgml b/chromium/third_party/fontconfig/src/fc-cache/fc-cache.sgml index 5ae01076582..3740be77f66 100644 --- a/chromium/third_party/fontconfig/src/fc-cache/fc-cache.sgml +++ b/chromium/third_party/fontconfig/src/fc-cache/fc-cache.sgml @@ -63,14 +63,9 @@ manpage.1: manpage.sgml <cmdsynopsis> <command>&dhpackage;</command> - <arg><option>-EfrsvVh</option></arg> - <arg><option>--error-on-no-fonts</option></arg> + <arg><option>-frsvVh</option></arg> <arg><option>--force</option></arg> <arg><option>--really-force</option></arg> - <group> - <arg><option>-y</option> <option><replaceable>dir</replaceable></option></arg> - <arg><option>--sysroot</option> <option><replaceable>dir</replaceable></option></arg> - </group> <arg><option>--system-only</option></arg> <arg><option>--verbose</option></arg> <arg><option>--version</option></arg> @@ -108,16 +103,6 @@ manpage.1: manpage.sgml <variablelist> <varlistentry> - <term><option>-E</option> - <option>--error-on-no-fonts</option> - </term> - <listitem> - <para>Raise an error if there are no fonts in - <option><replaceable>dir</replaceable></option> or directories - in the configuration if not given.</para> - </listitem> - </varlistentry> - <varlistentry> <term><option>-f</option> <option>--force</option> </term> @@ -152,15 +137,6 @@ manpage.1: manpage.sgml </listitem> </varlistentry> <varlistentry> - <term><option>-y</option> - <option>-sysroot</option> - <option><replaceable>dir</replaceable></option> - </term> - <listitem> - <para>Prepend <option><replaceable>dir</replaceable></option> to all paths for scanning.</para> - </listitem> - </varlistentry> - <varlistentry> <term><option>-h</option> <option>--help</option> </term> @@ -187,15 +163,10 @@ manpage.1: manpage.sgml </refsect1> <refsect1> - <title>RETURN CODES</title> - <para><command>fc-cache</command> returns zero if the caches successfully generated. otherwise non-zero.</para> - </refsect1> - - <refsect1> <title>FILES</title> <variablelist> <varlistentry> - <term><filename><replaceable>%cachedir%</replaceable>/*-<replaceable>%arch%</replaceable>.cache-%version%</filename></term> + <term><filename><replaceable>%cachdir%</replaceable>/*-<replaceable>%arch%</replaceable>.cache-2</filename></term> <listitem> <para>These files are generated by <command>&dhpackage;</command> and contain maps from file names to font properties. They are diff --git a/chromium/third_party/fontconfig/src/fc-case/CaseFolding.txt b/chromium/third_party/fontconfig/src/fc-case/CaseFolding.txt index 372ee68bd81..cf5779f4075 100644 --- a/chromium/third_party/fontconfig/src/fc-case/CaseFolding.txt +++ b/chromium/third_party/fontconfig/src/fc-case/CaseFolding.txt @@ -1,11 +1,10 @@ -# CaseFolding-9.0.0.txt -# Date: 2016-03-02, 18:54:54 GMT -# © 2016 Unicode®, Inc. -# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. -# For terms of use, see http://www.unicode.org/terms_of_use.html +# CaseFolding-6.3.0.txt +# Date: 2012-12-20, 22:14:35 GMT [MD] # # Unicode Character Database -# For documentation, see http://www.unicode.org/reports/tr44/ +# Copyright (c) 1991-2013 Unicode, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# For documentation, see http://www.unicode.org/reports/tr44/ # # Case Folding Properties # @@ -26,7 +25,7 @@ # # For information on case folding, including how to have case folding # preserve normalization formats, see Section 3.13 Default Case Algorithms in -# The Unicode Standard. +# The Unicode Standard, Version 5.0. # # ================================================================================ # Format @@ -59,6 +58,8 @@ # All code points not explicitly listed for Case_Folding # have the value C for the status field, and the code point itself for the mapping field. +# @missing: 0000..10FFFF; C; <code point> + # ================================================================= 0041; C; 0061; # LATIN CAPITAL LETTER A 0042; C; 0062; # LATIN CAPITAL LETTER B @@ -297,7 +298,6 @@ 0370; C; 0371; # GREEK CAPITAL LETTER HETA 0372; C; 0373; # GREEK CAPITAL LETTER ARCHAIC SAMPI 0376; C; 0377; # GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA -037F; C; 03F3; # GREEK CAPITAL LETTER YOT 0386; C; 03AC; # GREEK CAPITAL LETTER ALPHA WITH TONOS 0388; C; 03AD; # GREEK CAPITAL LETTER EPSILON WITH TONOS 0389; C; 03AE; # GREEK CAPITAL LETTER ETA WITH TONOS @@ -505,10 +505,6 @@ 0522; C; 0523; # CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK 0524; C; 0525; # CYRILLIC CAPITAL LETTER PE WITH DESCENDER 0526; C; 0527; # CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER -0528; C; 0529; # CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK -052A; C; 052B; # CYRILLIC CAPITAL LETTER DZZHE -052C; C; 052D; # CYRILLIC CAPITAL LETTER DCHE -052E; C; 052F; # CYRILLIC CAPITAL LETTER EL WITH DESCENDER 0531; C; 0561; # ARMENIAN CAPITAL LETTER AYB 0532; C; 0562; # ARMENIAN CAPITAL LETTER BEN 0533; C; 0563; # ARMENIAN CAPITAL LETTER GIM @@ -588,21 +584,6 @@ 10C5; C; 2D25; # GEORGIAN CAPITAL LETTER HOE 10C7; C; 2D27; # GEORGIAN CAPITAL LETTER YN 10CD; C; 2D2D; # GEORGIAN CAPITAL LETTER AEN -13F8; C; 13F0; # CHEROKEE SMALL LETTER YE -13F9; C; 13F1; # CHEROKEE SMALL LETTER YI -13FA; C; 13F2; # CHEROKEE SMALL LETTER YO -13FB; C; 13F3; # CHEROKEE SMALL LETTER YU -13FC; C; 13F4; # CHEROKEE SMALL LETTER YV -13FD; C; 13F5; # CHEROKEE SMALL LETTER MV -1C80; C; 0432; # CYRILLIC SMALL LETTER ROUNDED VE -1C81; C; 0434; # CYRILLIC SMALL LETTER LONG-LEGGED DE -1C82; C; 043E; # CYRILLIC SMALL LETTER NARROW O -1C83; C; 0441; # CYRILLIC SMALL LETTER WIDE ES -1C84; C; 0442; # CYRILLIC SMALL LETTER TALL TE -1C85; C; 0442; # CYRILLIC SMALL LETTER THREE-LEGGED TE -1C86; C; 044A; # CYRILLIC SMALL LETTER TALL HARD SIGN -1C87; C; 0463; # CYRILLIC SMALL LETTER TALL YAT -1C88; C; A64B; # CYRILLIC SMALL LETTER UNBLENDED UK 1E00; C; 1E01; # LATIN CAPITAL LETTER A WITH RING BELOW 1E02; C; 1E03; # LATIN CAPITAL LETTER B WITH DOT ABOVE 1E04; C; 1E05; # LATIN CAPITAL LETTER B WITH DOT BELOW @@ -1107,8 +1088,6 @@ 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 -A698; C; A699; # CYRILLIC CAPITAL LETTER DOUBLE O -A69A; C; A69B; # CYRILLIC CAPITAL LETTER CROSSED O A722; C; A723; # LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF A724; C; A725; # LATIN CAPITAL LETTER EGYPTOLOGICAL AIN A726; C; A727; # LATIN CAPITAL LETTER HENG @@ -1159,107 +1138,12 @@ A78B; C; A78C; # LATIN CAPITAL LETTER SALTILLO A78D; C; 0265; # LATIN CAPITAL LETTER TURNED H A790; C; A791; # LATIN CAPITAL LETTER N WITH DESCENDER A792; C; A793; # LATIN CAPITAL LETTER C WITH BAR -A796; C; A797; # LATIN CAPITAL LETTER B WITH FLOURISH -A798; C; A799; # LATIN CAPITAL LETTER F WITH STROKE -A79A; C; A79B; # LATIN CAPITAL LETTER VOLAPUK AE -A79C; C; A79D; # LATIN CAPITAL LETTER VOLAPUK OE -A79E; C; A79F; # LATIN CAPITAL LETTER VOLAPUK UE A7A0; C; A7A1; # LATIN CAPITAL LETTER G WITH OBLIQUE STROKE A7A2; C; A7A3; # LATIN CAPITAL LETTER K WITH OBLIQUE STROKE A7A4; C; A7A5; # LATIN CAPITAL LETTER N WITH OBLIQUE STROKE A7A6; C; A7A7; # LATIN CAPITAL LETTER R WITH OBLIQUE STROKE A7A8; C; A7A9; # LATIN CAPITAL LETTER S WITH OBLIQUE STROKE A7AA; C; 0266; # LATIN CAPITAL LETTER H WITH HOOK -A7AB; C; 025C; # LATIN CAPITAL LETTER REVERSED OPEN E -A7AC; C; 0261; # LATIN CAPITAL LETTER SCRIPT G -A7AD; C; 026C; # LATIN CAPITAL LETTER L WITH BELT -A7AE; C; 026A; # LATIN CAPITAL LETTER SMALL CAPITAL I -A7B0; C; 029E; # LATIN CAPITAL LETTER TURNED K -A7B1; C; 0287; # LATIN CAPITAL LETTER TURNED T -A7B2; C; 029D; # LATIN CAPITAL LETTER J WITH CROSSED-TAIL -A7B3; C; AB53; # LATIN CAPITAL LETTER CHI -A7B4; C; A7B5; # LATIN CAPITAL LETTER BETA -A7B6; C; A7B7; # LATIN CAPITAL LETTER OMEGA -AB70; C; 13A0; # CHEROKEE SMALL LETTER A -AB71; C; 13A1; # CHEROKEE SMALL LETTER E -AB72; C; 13A2; # CHEROKEE SMALL LETTER I -AB73; C; 13A3; # CHEROKEE SMALL LETTER O -AB74; C; 13A4; # CHEROKEE SMALL LETTER U -AB75; C; 13A5; # CHEROKEE SMALL LETTER V -AB76; C; 13A6; # CHEROKEE SMALL LETTER GA -AB77; C; 13A7; # CHEROKEE SMALL LETTER KA -AB78; C; 13A8; # CHEROKEE SMALL LETTER GE -AB79; C; 13A9; # CHEROKEE SMALL LETTER GI -AB7A; C; 13AA; # CHEROKEE SMALL LETTER GO -AB7B; C; 13AB; # CHEROKEE SMALL LETTER GU -AB7C; C; 13AC; # CHEROKEE SMALL LETTER GV -AB7D; C; 13AD; # CHEROKEE SMALL LETTER HA -AB7E; C; 13AE; # CHEROKEE SMALL LETTER HE -AB7F; C; 13AF; # CHEROKEE SMALL LETTER HI -AB80; C; 13B0; # CHEROKEE SMALL LETTER HO -AB81; C; 13B1; # CHEROKEE SMALL LETTER HU -AB82; C; 13B2; # CHEROKEE SMALL LETTER HV -AB83; C; 13B3; # CHEROKEE SMALL LETTER LA -AB84; C; 13B4; # CHEROKEE SMALL LETTER LE -AB85; C; 13B5; # CHEROKEE SMALL LETTER LI -AB86; C; 13B6; # CHEROKEE SMALL LETTER LO -AB87; C; 13B7; # CHEROKEE SMALL LETTER LU -AB88; C; 13B8; # CHEROKEE SMALL LETTER LV -AB89; C; 13B9; # CHEROKEE SMALL LETTER MA -AB8A; C; 13BA; # CHEROKEE SMALL LETTER ME -AB8B; C; 13BB; # CHEROKEE SMALL LETTER MI -AB8C; C; 13BC; # CHEROKEE SMALL LETTER MO -AB8D; C; 13BD; # CHEROKEE SMALL LETTER MU -AB8E; C; 13BE; # CHEROKEE SMALL LETTER NA -AB8F; C; 13BF; # CHEROKEE SMALL LETTER HNA -AB90; C; 13C0; # CHEROKEE SMALL LETTER NAH -AB91; C; 13C1; # CHEROKEE SMALL LETTER NE -AB92; C; 13C2; # CHEROKEE SMALL LETTER NI -AB93; C; 13C3; # CHEROKEE SMALL LETTER NO -AB94; C; 13C4; # CHEROKEE SMALL LETTER NU -AB95; C; 13C5; # CHEROKEE SMALL LETTER NV -AB96; C; 13C6; # CHEROKEE SMALL LETTER QUA -AB97; C; 13C7; # CHEROKEE SMALL LETTER QUE -AB98; C; 13C8; # CHEROKEE SMALL LETTER QUI -AB99; C; 13C9; # CHEROKEE SMALL LETTER QUO -AB9A; C; 13CA; # CHEROKEE SMALL LETTER QUU -AB9B; C; 13CB; # CHEROKEE SMALL LETTER QUV -AB9C; C; 13CC; # CHEROKEE SMALL LETTER SA -AB9D; C; 13CD; # CHEROKEE SMALL LETTER S -AB9E; C; 13CE; # CHEROKEE SMALL LETTER SE -AB9F; C; 13CF; # CHEROKEE SMALL LETTER SI -ABA0; C; 13D0; # CHEROKEE SMALL LETTER SO -ABA1; C; 13D1; # CHEROKEE SMALL LETTER SU -ABA2; C; 13D2; # CHEROKEE SMALL LETTER SV -ABA3; C; 13D3; # CHEROKEE SMALL LETTER DA -ABA4; C; 13D4; # CHEROKEE SMALL LETTER TA -ABA5; C; 13D5; # CHEROKEE SMALL LETTER DE -ABA6; C; 13D6; # CHEROKEE SMALL LETTER TE -ABA7; C; 13D7; # CHEROKEE SMALL LETTER DI -ABA8; C; 13D8; # CHEROKEE SMALL LETTER TI -ABA9; C; 13D9; # CHEROKEE SMALL LETTER DO -ABAA; C; 13DA; # CHEROKEE SMALL LETTER DU -ABAB; C; 13DB; # CHEROKEE SMALL LETTER DV -ABAC; C; 13DC; # CHEROKEE SMALL LETTER DLA -ABAD; C; 13DD; # CHEROKEE SMALL LETTER TLA -ABAE; C; 13DE; # CHEROKEE SMALL LETTER TLE -ABAF; C; 13DF; # CHEROKEE SMALL LETTER TLI -ABB0; C; 13E0; # CHEROKEE SMALL LETTER TLO -ABB1; C; 13E1; # CHEROKEE SMALL LETTER TLU -ABB2; C; 13E2; # CHEROKEE SMALL LETTER TLV -ABB3; C; 13E3; # CHEROKEE SMALL LETTER TSA -ABB4; C; 13E4; # CHEROKEE SMALL LETTER TSE -ABB5; C; 13E5; # CHEROKEE SMALL LETTER TSI -ABB6; C; 13E6; # CHEROKEE SMALL LETTER TSO -ABB7; C; 13E7; # CHEROKEE SMALL LETTER TSU -ABB8; C; 13E8; # CHEROKEE SMALL LETTER TSV -ABB9; C; 13E9; # CHEROKEE SMALL LETTER WA -ABBA; C; 13EA; # CHEROKEE SMALL LETTER WE -ABBB; C; 13EB; # CHEROKEE SMALL LETTER WI -ABBC; C; 13EC; # CHEROKEE SMALL LETTER WO -ABBD; C; 13ED; # CHEROKEE SMALL LETTER WU -ABBE; C; 13EE; # CHEROKEE SMALL LETTER WV -ABBF; C; 13EF; # CHEROKEE SMALL LETTER YA FB00; F; 0066 0066; # LATIN SMALL LIGATURE FF FB01; F; 0066 0069; # LATIN SMALL LIGATURE FI FB02; F; 0066 006C; # LATIN SMALL LIGATURE FL @@ -1338,158 +1222,5 @@ FF3A; C; FF5A; # FULLWIDTH LATIN CAPITAL LETTER Z 10425; C; 1044D; # DESERET CAPITAL LETTER ENG 10426; C; 1044E; # DESERET CAPITAL LETTER OI 10427; C; 1044F; # DESERET CAPITAL LETTER EW -104B0; C; 104D8; # OSAGE CAPITAL LETTER A -104B1; C; 104D9; # OSAGE CAPITAL LETTER AI -104B2; C; 104DA; # OSAGE CAPITAL LETTER AIN -104B3; C; 104DB; # OSAGE CAPITAL LETTER AH -104B4; C; 104DC; # OSAGE CAPITAL LETTER BRA -104B5; C; 104DD; # OSAGE CAPITAL LETTER CHA -104B6; C; 104DE; # OSAGE CAPITAL LETTER EHCHA -104B7; C; 104DF; # OSAGE CAPITAL LETTER E -104B8; C; 104E0; # OSAGE CAPITAL LETTER EIN -104B9; C; 104E1; # OSAGE CAPITAL LETTER HA -104BA; C; 104E2; # OSAGE CAPITAL LETTER HYA -104BB; C; 104E3; # OSAGE CAPITAL LETTER I -104BC; C; 104E4; # OSAGE CAPITAL LETTER KA -104BD; C; 104E5; # OSAGE CAPITAL LETTER EHKA -104BE; C; 104E6; # OSAGE CAPITAL LETTER KYA -104BF; C; 104E7; # OSAGE CAPITAL LETTER LA -104C0; C; 104E8; # OSAGE CAPITAL LETTER MA -104C1; C; 104E9; # OSAGE CAPITAL LETTER NA -104C2; C; 104EA; # OSAGE CAPITAL LETTER O -104C3; C; 104EB; # OSAGE CAPITAL LETTER OIN -104C4; C; 104EC; # OSAGE CAPITAL LETTER PA -104C5; C; 104ED; # OSAGE CAPITAL LETTER EHPA -104C6; C; 104EE; # OSAGE CAPITAL LETTER SA -104C7; C; 104EF; # OSAGE CAPITAL LETTER SHA -104C8; C; 104F0; # OSAGE CAPITAL LETTER TA -104C9; C; 104F1; # OSAGE CAPITAL LETTER EHTA -104CA; C; 104F2; # OSAGE CAPITAL LETTER TSA -104CB; C; 104F3; # OSAGE CAPITAL LETTER EHTSA -104CC; C; 104F4; # OSAGE CAPITAL LETTER TSHA -104CD; C; 104F5; # OSAGE CAPITAL LETTER DHA -104CE; C; 104F6; # OSAGE CAPITAL LETTER U -104CF; C; 104F7; # OSAGE CAPITAL LETTER WA -104D0; C; 104F8; # OSAGE CAPITAL LETTER KHA -104D1; C; 104F9; # OSAGE CAPITAL LETTER GHA -104D2; C; 104FA; # OSAGE CAPITAL LETTER ZA -104D3; C; 104FB; # OSAGE CAPITAL LETTER ZHA -10C80; C; 10CC0; # OLD HUNGARIAN CAPITAL LETTER A -10C81; C; 10CC1; # OLD HUNGARIAN CAPITAL LETTER AA -10C82; C; 10CC2; # OLD HUNGARIAN CAPITAL LETTER EB -10C83; C; 10CC3; # OLD HUNGARIAN CAPITAL LETTER AMB -10C84; C; 10CC4; # OLD HUNGARIAN CAPITAL LETTER EC -10C85; C; 10CC5; # OLD HUNGARIAN CAPITAL LETTER ENC -10C86; C; 10CC6; # OLD HUNGARIAN CAPITAL LETTER ECS -10C87; C; 10CC7; # OLD HUNGARIAN CAPITAL LETTER ED -10C88; C; 10CC8; # OLD HUNGARIAN CAPITAL LETTER AND -10C89; C; 10CC9; # OLD HUNGARIAN CAPITAL LETTER E -10C8A; C; 10CCA; # OLD HUNGARIAN CAPITAL LETTER CLOSE E -10C8B; C; 10CCB; # OLD HUNGARIAN CAPITAL LETTER EE -10C8C; C; 10CCC; # OLD HUNGARIAN CAPITAL LETTER EF -10C8D; C; 10CCD; # OLD HUNGARIAN CAPITAL LETTER EG -10C8E; C; 10CCE; # OLD HUNGARIAN CAPITAL LETTER EGY -10C8F; C; 10CCF; # OLD HUNGARIAN CAPITAL LETTER EH -10C90; C; 10CD0; # OLD HUNGARIAN CAPITAL LETTER I -10C91; C; 10CD1; # OLD HUNGARIAN CAPITAL LETTER II -10C92; C; 10CD2; # OLD HUNGARIAN CAPITAL LETTER EJ -10C93; C; 10CD3; # OLD HUNGARIAN CAPITAL LETTER EK -10C94; C; 10CD4; # OLD HUNGARIAN CAPITAL LETTER AK -10C95; C; 10CD5; # OLD HUNGARIAN CAPITAL LETTER UNK -10C96; C; 10CD6; # OLD HUNGARIAN CAPITAL LETTER EL -10C97; C; 10CD7; # OLD HUNGARIAN CAPITAL LETTER ELY -10C98; C; 10CD8; # OLD HUNGARIAN CAPITAL LETTER EM -10C99; C; 10CD9; # OLD HUNGARIAN CAPITAL LETTER EN -10C9A; C; 10CDA; # OLD HUNGARIAN CAPITAL LETTER ENY -10C9B; C; 10CDB; # OLD HUNGARIAN CAPITAL LETTER O -10C9C; C; 10CDC; # OLD HUNGARIAN CAPITAL LETTER OO -10C9D; C; 10CDD; # OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG OE -10C9E; C; 10CDE; # OLD HUNGARIAN CAPITAL LETTER RUDIMENTA OE -10C9F; C; 10CDF; # OLD HUNGARIAN CAPITAL LETTER OEE -10CA0; C; 10CE0; # OLD HUNGARIAN CAPITAL LETTER EP -10CA1; C; 10CE1; # OLD HUNGARIAN CAPITAL LETTER EMP -10CA2; C; 10CE2; # OLD HUNGARIAN CAPITAL LETTER ER -10CA3; C; 10CE3; # OLD HUNGARIAN CAPITAL LETTER SHORT ER -10CA4; C; 10CE4; # OLD HUNGARIAN CAPITAL LETTER ES -10CA5; C; 10CE5; # OLD HUNGARIAN CAPITAL LETTER ESZ -10CA6; C; 10CE6; # OLD HUNGARIAN CAPITAL LETTER ET -10CA7; C; 10CE7; # OLD HUNGARIAN CAPITAL LETTER ENT -10CA8; C; 10CE8; # OLD HUNGARIAN CAPITAL LETTER ETY -10CA9; C; 10CE9; # OLD HUNGARIAN CAPITAL LETTER ECH -10CAA; C; 10CEA; # OLD HUNGARIAN CAPITAL LETTER U -10CAB; C; 10CEB; # OLD HUNGARIAN CAPITAL LETTER UU -10CAC; C; 10CEC; # OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG UE -10CAD; C; 10CED; # OLD HUNGARIAN CAPITAL LETTER RUDIMENTA UE -10CAE; C; 10CEE; # OLD HUNGARIAN CAPITAL LETTER EV -10CAF; C; 10CEF; # OLD HUNGARIAN CAPITAL LETTER EZ -10CB0; C; 10CF0; # OLD HUNGARIAN CAPITAL LETTER EZS -10CB1; C; 10CF1; # OLD HUNGARIAN CAPITAL LETTER ENT-SHAPED SIGN -10CB2; C; 10CF2; # OLD HUNGARIAN CAPITAL LETTER US -118A0; C; 118C0; # WARANG CITI CAPITAL LETTER NGAA -118A1; C; 118C1; # WARANG CITI CAPITAL LETTER A -118A2; C; 118C2; # WARANG CITI CAPITAL LETTER WI -118A3; C; 118C3; # WARANG CITI CAPITAL LETTER YU -118A4; C; 118C4; # WARANG CITI CAPITAL LETTER YA -118A5; C; 118C5; # WARANG CITI CAPITAL LETTER YO -118A6; C; 118C6; # WARANG CITI CAPITAL LETTER II -118A7; C; 118C7; # WARANG CITI CAPITAL LETTER UU -118A8; C; 118C8; # WARANG CITI CAPITAL LETTER E -118A9; C; 118C9; # WARANG CITI CAPITAL LETTER O -118AA; C; 118CA; # WARANG CITI CAPITAL LETTER ANG -118AB; C; 118CB; # WARANG CITI CAPITAL LETTER GA -118AC; C; 118CC; # WARANG CITI CAPITAL LETTER KO -118AD; C; 118CD; # WARANG CITI CAPITAL LETTER ENY -118AE; C; 118CE; # WARANG CITI CAPITAL LETTER YUJ -118AF; C; 118CF; # WARANG CITI CAPITAL LETTER UC -118B0; C; 118D0; # WARANG CITI CAPITAL LETTER ENN -118B1; C; 118D1; # WARANG CITI CAPITAL LETTER ODD -118B2; C; 118D2; # WARANG CITI CAPITAL LETTER TTE -118B3; C; 118D3; # WARANG CITI CAPITAL LETTER NUNG -118B4; C; 118D4; # WARANG CITI CAPITAL LETTER DA -118B5; C; 118D5; # WARANG CITI CAPITAL LETTER AT -118B6; C; 118D6; # WARANG CITI CAPITAL LETTER AM -118B7; C; 118D7; # WARANG CITI CAPITAL LETTER BU -118B8; C; 118D8; # WARANG CITI CAPITAL LETTER PU -118B9; C; 118D9; # WARANG CITI CAPITAL LETTER HIYO -118BA; C; 118DA; # WARANG CITI CAPITAL LETTER HOLO -118BB; C; 118DB; # WARANG CITI CAPITAL LETTER HORR -118BC; C; 118DC; # WARANG CITI CAPITAL LETTER HAR -118BD; C; 118DD; # WARANG CITI CAPITAL LETTER SSUU -118BE; C; 118DE; # WARANG CITI CAPITAL LETTER SII -118BF; C; 118DF; # WARANG CITI CAPITAL LETTER VIYO -1E900; C; 1E922; # ADLAM CAPITAL LETTER ALIF -1E901; C; 1E923; # ADLAM CAPITAL LETTER DAALI -1E902; C; 1E924; # ADLAM CAPITAL LETTER LAAM -1E903; C; 1E925; # ADLAM CAPITAL LETTER MIIM -1E904; C; 1E926; # ADLAM CAPITAL LETTER BA -1E905; C; 1E927; # ADLAM CAPITAL LETTER SINNYIIYHE -1E906; C; 1E928; # ADLAM CAPITAL LETTER PE -1E907; C; 1E929; # ADLAM CAPITAL LETTER BHE -1E908; C; 1E92A; # ADLAM CAPITAL LETTER RA -1E909; C; 1E92B; # ADLAM CAPITAL LETTER E -1E90A; C; 1E92C; # ADLAM CAPITAL LETTER FA -1E90B; C; 1E92D; # ADLAM CAPITAL LETTER I -1E90C; C; 1E92E; # ADLAM CAPITAL LETTER O -1E90D; C; 1E92F; # ADLAM CAPITAL LETTER DHA -1E90E; C; 1E930; # ADLAM CAPITAL LETTER YHE -1E90F; C; 1E931; # ADLAM CAPITAL LETTER WAW -1E910; C; 1E932; # ADLAM CAPITAL LETTER NUN -1E911; C; 1E933; # ADLAM CAPITAL LETTER KAF -1E912; C; 1E934; # ADLAM CAPITAL LETTER YA -1E913; C; 1E935; # ADLAM CAPITAL LETTER U -1E914; C; 1E936; # ADLAM CAPITAL LETTER JIIM -1E915; C; 1E937; # ADLAM CAPITAL LETTER CHI -1E916; C; 1E938; # ADLAM CAPITAL LETTER HA -1E917; C; 1E939; # ADLAM CAPITAL LETTER QAAF -1E918; C; 1E93A; # ADLAM CAPITAL LETTER GA -1E919; C; 1E93B; # ADLAM CAPITAL LETTER NYA -1E91A; C; 1E93C; # ADLAM CAPITAL LETTER TU -1E91B; C; 1E93D; # ADLAM CAPITAL LETTER NHA -1E91C; C; 1E93E; # ADLAM CAPITAL LETTER VA -1E91D; C; 1E93F; # ADLAM CAPITAL LETTER KHA -1E91E; C; 1E940; # ADLAM CAPITAL LETTER GBE -1E91F; C; 1E941; # ADLAM CAPITAL LETTER ZAL -1E920; C; 1E942; # ADLAM CAPITAL LETTER KPO -1E921; C; 1E943; # ADLAM CAPITAL LETTER SHA # # EOF diff --git a/chromium/third_party/fontconfig/src/fc-case/Makefile.am b/chromium/third_party/fontconfig/src/fc-case/Makefile.am index 4c30a1eedc9..662f771af6d 100644 --- a/chromium/third_party/fontconfig/src/fc-case/Makefile.am +++ b/chromium/third_party/fontconfig/src/fc-case/Makefile.am @@ -28,9 +28,6 @@ DEPS = $(srcdir)/CaseFolding.txt ARGS = $(srcdir)/CaseFolding.txt DIST = $(srcdir)/CaseFolding.txt -update: - curl -s -o $(srcdir)/CaseFolding.txt http://www.unicode.org/Public/UNIDATA/CaseFolding.txt - include $(top_srcdir)/Tools.mk -include $(top_srcdir)/git.mk diff --git a/chromium/third_party/fontconfig/src/fc-cat/fc-cat.c b/chromium/third_party/fontconfig/src/fc-cat/fc-cat.c index a1dc848b8b1..9a2abb3fa31 100644 --- a/chromium/third_party/fontconfig/src/fc-cat/fc-cat.c +++ b/chromium/third_party/fontconfig/src/fc-cat/fc-cat.c @@ -298,7 +298,6 @@ main (int argc, char **argv) return 1; } FcConfigSetCurrent (config); - FcConfigDestroy (config); args = FcStrSetCreate (); if (!args) @@ -316,6 +315,12 @@ main (int argc, char **argv) return 1; } } + arglist = FcStrListCreate (args); + if (!arglist) + { + fprintf (stderr, "%s: malloc failure\n", argv[0]); + return 1; + } } else { @@ -335,26 +340,20 @@ main (int argc, char **argv) fprintf (stderr, "%s: malloc failure\n", argv[0]); return 1; } - FcStrSetDestroy (args); while ((arg = FcStrListNext (arglist))) { int j; FcChar8 *cache_file = NULL; struct stat file_stat; - - /* reset errno */ - errno = 0; + if (FcFileIsDir (arg)) cache = FcDirCacheLoad (arg, config, &cache_file); else cache = FcDirCacheLoadFile (arg, &file_stat); if (!cache) { - if (errno != 0) - perror ((char *) arg); - else - fprintf (stderr, "%s: Unable to load the cache: %s\n", argv[0], arg); + perror ((char *) arg); ret++; continue; } @@ -385,7 +384,6 @@ main (int argc, char **argv) if (cache_file) FcStrFree (cache_file); } - FcStrListDone (arglist); FcFini (); return 0; diff --git a/chromium/third_party/fontconfig/src/fc-cat/fc-cat.sgml b/chromium/third_party/fontconfig/src/fc-cat/fc-cat.sgml index a51325433cd..ce4736de5e8 100644 --- a/chromium/third_party/fontconfig/src/fc-cat/fc-cat.sgml +++ b/chromium/third_party/fontconfig/src/fc-cat/fc-cat.sgml @@ -70,7 +70,7 @@ manpage.1: manpage.sgml <arg><option>--help</option></arg> <sbr> <group rep="repeat"> - <arg><option><replaceable>fonts-cache-%version%-files</replaceable></option></arg> + <arg><option><replaceable>fonts-cache-2-files</replaceable></option></arg> <arg><option><replaceable>dirs</replaceable></option></arg> </group> diff --git a/chromium/third_party/fontconfig/src/fc-glyphname/fc-glyphname.c b/chromium/third_party/fontconfig/src/fc-glyphname/fc-glyphname.c index 078490ae442..84027816430 100644 --- a/chromium/third_party/fontconfig/src/fc-glyphname/fc-glyphname.c +++ b/chromium/third_party/fontconfig/src/fc-glyphname/fc-glyphname.c @@ -233,7 +233,7 @@ dump (FcGlyphName * const *table, const char *name) int main (int argc FC_UNUSED, char **argv) { - char *files[MAX_GLYPHFILE + 1]; + char *files[MAX_GLYPHFILE]; char line[1024]; FILE *f; int i; diff --git a/chromium/third_party/fontconfig/src/fc-lang/README b/chromium/third_party/fontconfig/src/fc-lang/README deleted file mode 100644 index 4aef7d1165f..00000000000 --- a/chromium/third_party/fontconfig/src/fc-lang/README +++ /dev/null @@ -1,28 +0,0 @@ -Requirements for adding new orth file: - -* we are following up to the locale name, 2 or 3 letter code - in ISO 639 and ISO 3166-1 alpha-2 code to determine a - filename. if it's not yet available, in advance, you - should get it fixed in glibc or so. - -* Please add a reference URL (written in English as far as - possible) into the orth file that explains the code - coverage for the certain language. this would helps to - review if it has enough coverage. - -* no need to add all of the codepoints for the certain - language. good enough if it covers most frequently used - codepoints in it. - -To update existing orth files: - -* Please make sure how the changes affects to the existing - fonts and no regressions except it is expected behavior. - -* Please add any reference URL in bugzilla or any - explanation why it needs to be added/removed and also why - current orth file doesn't work. - -* Please provide a test case what fonts are supposed to be - accepted against the change and what fonts aren't. - diff --git a/chromium/third_party/fontconfig/src/fc-lang/fc-lang.c b/chromium/third_party/fontconfig/src/fc-lang/fc-lang.c index 38fc6973558..0f4217f78f5 100644 --- a/chromium/third_party/fontconfig/src/fc-lang/fc-lang.c +++ b/chromium/third_party/fontconfig/src/fc-lang/fc-lang.c @@ -254,7 +254,7 @@ static int compare (const void *a, const void *b) int main (int argc FC_UNUSED, char **argv) { - static Entry entries[MAX_LANG + 1]; + static Entry entries[MAX_LANG]; static FcCharSet *sets[MAX_LANG]; static int duplicate[MAX_LANG]; static int country[MAX_LANG]; diff --git a/chromium/third_party/fontconfig/src/fc-lang/ja.orth b/chromium/third_party/fontconfig/src/fc-lang/ja.orth index dbc16d4d719..e87269b85d0 100644 --- a/chromium/third_party/fontconfig/src/fc-lang/ja.orth +++ b/chromium/third_party/fontconfig/src/fc-lang/ja.orth @@ -21,14 +21,13 @@ # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # -# Coverage from JIS X 0208 (1997) for non kanji characters, and -# Joyo Kanji List (2010, cabinet notification of regular-use chinese characters) +# Coverage from JIS X 0208 (1990) # 0x3000 # IDEOGRAPHIC SPACE 0x3001 # IDEOGRAPHIC COMMA 0x3002 # IDEOGRAPHIC FULL STOP 0x3005 # IDEOGRAPHIC ITERATION MARK -#0x3006 # IDEOGRAPHIC CLOSING MARK # not in Sawarabi Gothic +0x3006 # IDEOGRAPHIC CLOSING MARK 0x3007 # IDEOGRAPHIC NUMBER ZERO 0x3041 # HIRAGANA LETTER SMALL A 0x3042 # HIRAGANA LETTER A @@ -217,88 +216,171 @@ 0x4E0B # <CJK> 0x4E0D # <CJK> 0x4E0E # <CJK> +0x4E10 # <CJK> +0x4E11 # <CJK> 0x4E14 # <CJK> +0x4E15 # <CJK> 0x4E16 # <CJK> +0x4E17 # <CJK> 0x4E18 # <CJK> 0x4E19 # <CJK> +0x4E1E # <CJK> 0x4E21 # <CJK> 0x4E26 # <CJK> +0x4E2A # <CJK> 0x4E2D # <CJK> +0x4E31 # <CJK> 0x4E32 # <CJK> +0x4E36 # <CJK> 0x4E38 # <CJK> 0x4E39 # <CJK> 0x4E3B # <CJK> 0x4E3C # <CJK> +0x4E3F # <CJK> +0x4E42 # <CJK> +0x4E43 # <CJK> 0x4E45 # <CJK> +0x4E4B # <CJK> +0x4E4D # <CJK> +0x4E4E # <CJK> 0x4E4F # <CJK> +0x4E55 # <CJK> +0x4E56 # <CJK> 0x4E57 # <CJK> +0x4E58 # <CJK> 0x4E59 # <CJK> 0x4E5D # <CJK> 0x4E5E # <CJK> +0x4E5F # <CJK> +0x4E62 # <CJK> 0x4E71 # <CJK> 0x4E73 # <CJK> 0x4E7E # <CJK> 0x4E80 # <CJK> +0x4E82 # <CJK> +0x4E85 # <CJK> 0x4E86 # <CJK> 0x4E88 # <CJK> 0x4E89 # <CJK> +0x4E8A # <CJK> 0x4E8B # <CJK> 0x4E8C # <CJK> +0x4E8E # <CJK> +0x4E91 # <CJK> 0x4E92 # <CJK> 0x4E94 # <CJK> 0x4E95 # <CJK> +0x4E98 # <CJK> +0x4E99 # <CJK> +0x4E9B # <CJK> 0x4E9C # <CJK> +0x4E9E # <CJK> +0x4E9F # <CJK> +0x4EA0 # <CJK> 0x4EA1 # <CJK> +0x4EA2 # <CJK> 0x4EA4 # <CJK> +0x4EA5 # <CJK> +0x4EA6 # <CJK> +0x4EA8 # <CJK> 0x4EAB # <CJK> 0x4EAC # <CJK> 0x4EAD # <CJK> +0x4EAE # <CJK> +0x4EB0 # <CJK> +0x4EB3 # <CJK> +0x4EB6 # <CJK> 0x4EBA # <CJK> +0x4EC0 # <CJK> 0x4EC1 # <CJK> +0x4EC2 # <CJK> +0x4EC4 # <CJK> +0x4EC6 # <CJK> +0x4EC7 # <CJK> 0x4ECA # <CJK> 0x4ECB # <CJK> +0x4ECD # <CJK> +0x4ECE # <CJK> 0x4ECF # <CJK> +0x4ED4 # <CJK> 0x4ED5 # <CJK> 0x4ED6 # <CJK> +0x4ED7 # <CJK> 0x4ED8 # <CJK> 0x4ED9 # <CJK> +0x4EDD # <CJK> +0x4EDE # <CJK> +0x4EDF # <CJK> 0x4EE3 # <CJK> 0x4EE4 # <CJK> 0x4EE5 # <CJK> +0x4EED # <CJK> 0x4EEE # <CJK> 0x4EF0 # <CJK> 0x4EF2 # <CJK> 0x4EF6 # <CJK> +0x4EF7 # <CJK> 0x4EFB # <CJK> 0x4F01 # <CJK> +0x4F09 # <CJK> +0x4F0A # <CJK> +0x4F0D # <CJK> 0x4F0E # <CJK> 0x4F0F # <CJK> 0x4F10 # <CJK> 0x4F11 # <CJK> 0x4F1A # <CJK> +0x4F1C # <CJK> 0x4F1D # <CJK> 0x4F2F # <CJK> +0x4F30 # <CJK> 0x4F34 # <CJK> +0x4F36 # <CJK> 0x4F38 # <CJK> 0x4F3A # <CJK> 0x4F3C # <CJK> +0x4F3D # <CJK> +0x4F43 # <CJK> 0x4F46 # <CJK> +0x4F47 # <CJK> 0x4F4D # <CJK> 0x4F4E # <CJK> 0x4F4F # <CJK> 0x4F50 # <CJK> +0x4F51 # <CJK> 0x4F53 # <CJK> 0x4F55 # <CJK> +0x4F57 # <CJK> 0x4F59 # <CJK> +0x4F5A # <CJK> +0x4F5B # <CJK> 0x4F5C # <CJK> +0x4F5D # <CJK> +0x4F5E # <CJK> +0x4F69 # <CJK> +0x4F6F # <CJK> +0x4F70 # <CJK> 0x4F73 # <CJK> 0x4F75 # <CJK> +0x4F76 # <CJK> +0x4F7B # <CJK> +0x4F7C # <CJK> 0x4F7F # <CJK> +0x4F83 # <CJK> +0x4F86 # <CJK> +0x4F88 # <CJK> 0x4F8B # <CJK> 0x4F8D # <CJK> +0x4F8F # <CJK> +0x4F91 # <CJK> +0x4F96 # <CJK> +0x4F98 # <CJK> 0x4F9B # <CJK> 0x4F9D # <CJK> +0x4FA0 # <CJK> 0x4FA1 # <CJK> +0x4FAB # <CJK> +0x4FAD # <CJK> 0x4FAE # <CJK> 0x4FAF # <CJK> 0x4FB5 # <CJK> @@ -306,165 +388,364 @@ 0x4FBF # <CJK> 0x4FC2 # <CJK> 0x4FC3 # <CJK> +0x4FC4 # <CJK> 0x4FCA # <CJK> +0x4FCE # <CJK> +0x4FD0 # <CJK> +0x4FD1 # <CJK> +0x4FD4 # <CJK> 0x4FD7 # <CJK> +0x4FD8 # <CJK> +0x4FDA # <CJK> +0x4FDB # <CJK> 0x4FDD # <CJK> +0x4FDF # <CJK> 0x4FE1 # <CJK> +0x4FE3 # <CJK> +0x4FE4 # <CJK> +0x4FE5 # <CJK> 0x4FEE # <CJK> +0x4FEF # <CJK> 0x4FF3 # <CJK> 0x4FF5 # <CJK> +0x4FF6 # <CJK> 0x4FF8 # <CJK> 0x4FFA # <CJK> +0x4FFE # <CJK> +0x5005 # <CJK> +0x5006 # <CJK> 0x5009 # <CJK> 0x500B # <CJK> 0x500D # <CJK> +0x500F # <CJK> +0x5011 # <CJK> 0x5012 # <CJK> +0x5014 # <CJK> +0x5016 # <CJK> 0x5019 # <CJK> +0x501A # <CJK> 0x501F # <CJK> +0x5021 # <CJK> 0x5023 # <CJK> 0x5024 # <CJK> +0x5025 # <CJK> +0x5026 # <CJK> +0x5028 # <CJK> +0x5029 # <CJK> +0x502A # <CJK> 0x502B # <CJK> +0x502C # <CJK> +0x502D # <CJK> +0x5036 # <CJK> 0x5039 # <CJK> +0x5043 # <CJK> +0x5047 # <CJK> +0x5048 # <CJK> 0x5049 # <CJK> 0x504F # <CJK> +0x5050 # <CJK> +0x5055 # <CJK> +0x5056 # <CJK> +0x505A # <CJK> 0x505C # <CJK> 0x5065 # <CJK> +0x506C # <CJK> +0x5072 # <CJK> 0x5074 # <CJK> 0x5075 # <CJK> 0x5076 # <CJK> +0x5078 # <CJK> 0x507D # <CJK> +0x5080 # <CJK> +0x5085 # <CJK> 0x508D # <CJK> 0x5091 # <CJK> 0x5098 # <CJK> 0x5099 # <CJK> +0x509A # <CJK> 0x50AC # <CJK> +0x50AD # <CJK> 0x50B2 # <CJK> +0x50B3 # <CJK> +0x50B4 # <CJK> 0x50B5 # <CJK> 0x50B7 # <CJK> 0x50BE # <CJK> +0x50C2 # <CJK> 0x50C5 # <CJK> +0x50C9 # <CJK> +0x50CA # <CJK> 0x50CD # <CJK> 0x50CF # <CJK> +0x50D1 # <CJK> 0x50D5 # <CJK> +0x50D6 # <CJK> 0x50DA # <CJK> +0x50DE # <CJK> +0x50E3 # <CJK> +0x50E5 # <CJK> 0x50E7 # <CJK> +0x50ED # <CJK> +0x50EE # <CJK> +0x50F5 # <CJK> +0x50F9 # <CJK> +0x50FB # <CJK> 0x5100 # <CJK> +0x5101 # <CJK> +0x5102 # <CJK> 0x5104 # <CJK> +0x5109 # <CJK> 0x5112 # <CJK> +0x5114 # <CJK> +0x5115 # <CJK> +0x5116 # <CJK> +0x5118 # <CJK> +0x511A # <CJK> 0x511F # <CJK> +0x5121 # <CJK> 0x512A # <CJK> +0x5132 # <CJK> +0x5137 # <CJK> +0x513A # <CJK> +0x513B # <CJK> +0x513C # <CJK> +0x513F # <CJK> +0x5140 # <CJK> +0x5141 # <CJK> 0x5143 # <CJK> 0x5144 # <CJK> 0x5145 # <CJK> 0x5146 # <CJK> +0x5147 # <CJK> 0x5148 # <CJK> 0x5149 # <CJK> 0x514B # <CJK> +0x514C # <CJK> 0x514D # <CJK> +0x514E # <CJK> 0x5150 # <CJK> +0x5152 # <CJK> +0x5154 # <CJK> 0x515A # <CJK> +0x515C # <CJK> +0x5162 # <CJK> 0x5165 # <CJK> 0x5168 # <CJK> +0x5169 # <CJK> +0x516A # <CJK> 0x516B # <CJK> 0x516C # <CJK> 0x516D # <CJK> +0x516E # <CJK> 0x5171 # <CJK> 0x5175 # <CJK> +0x5176 # <CJK> 0x5177 # <CJK> 0x5178 # <CJK> 0x517C # <CJK> +0x5180 # <CJK> +0x5182 # <CJK> 0x5185 # <CJK> 0x5186 # <CJK> +0x5189 # <CJK> 0x518A # <CJK> +0x518C # <CJK> 0x518D # <CJK> +0x518F # <CJK> +0x5190 # <CJK> +0x5191 # <CJK> 0x5192 # <CJK> +0x5193 # <CJK> +0x5195 # <CJK> +0x5196 # <CJK> 0x5197 # <CJK> 0x5199 # <CJK> 0x51A0 # <CJK> +0x51A2 # <CJK> +0x51A4 # <CJK> 0x51A5 # <CJK> +0x51A6 # <CJK> +0x51A8 # <CJK> +0x51A9 # <CJK> +0x51AA # <CJK> +0x51AB # <CJK> 0x51AC # <CJK> +0x51B0 # <CJK> +0x51B1 # <CJK> +0x51B2 # <CJK> +0x51B3 # <CJK> +0x51B4 # <CJK> +0x51B5 # <CJK> 0x51B6 # <CJK> 0x51B7 # <CJK> +0x51BD # <CJK> 0x51C4 # <CJK> +0x51C5 # <CJK> 0x51C6 # <CJK> +0x51C9 # <CJK> +0x51CB # <CJK> +0x51CC # <CJK> 0x51CD # <CJK> +0x51D6 # <CJK> +0x51DB # <CJK> +#0x51DC # <CJK> # not in kochi fonts 0x51DD # <CJK> +0x51E0 # <CJK> 0x51E1 # <CJK> 0x51E6 # <CJK> +0x51E7 # <CJK> +0x51E9 # <CJK> +0x51EA # <CJK> +0x51ED # <CJK> +0x51F0 # <CJK> +0x51F1 # <CJK> +0x51F5 # <CJK> 0x51F6 # <CJK> 0x51F8 # <CJK> 0x51F9 # <CJK> 0x51FA # <CJK> +0x51FD # <CJK> +0x51FE # <CJK> 0x5200 # <CJK> 0x5203 # <CJK> +0x5204 # <CJK> 0x5206 # <CJK> 0x5207 # <CJK> 0x5208 # <CJK> 0x520A # <CJK> +0x520B # <CJK> +0x520E # <CJK> 0x5211 # <CJK> +0x5214 # <CJK> 0x5217 # <CJK> 0x521D # <CJK> 0x5224 # <CJK> 0x5225 # <CJK> +0x5227 # <CJK> 0x5229 # <CJK> +0x522A # <CJK> +0x522E # <CJK> 0x5230 # <CJK> +0x5233 # <CJK> 0x5236 # <CJK> 0x5237 # <CJK> 0x5238 # <CJK> 0x5239 # <CJK> 0x523A # <CJK> 0x523B # <CJK> +0x5243 # <CJK> +0x5244 # <CJK> 0x5247 # <CJK> 0x524A # <CJK> +0x524B # <CJK> +0x524C # <CJK> 0x524D # <CJK> +0x524F # <CJK> +0x5254 # <CJK> 0x5256 # <CJK> 0x525B # <CJK> -#0x525D # <CJK> # not in sazanami gothic/mincho, DroidSansJapanese +0x525E # <CJK> 0x5263 # <CJK> 0x5264 # <CJK> +0x5265 # <CJK> +0x5269 # <CJK> +0x526A # <CJK> 0x526F # <CJK> 0x5270 # <CJK> +0x5271 # <CJK> 0x5272 # <CJK> +0x5273 # <CJK> +0x5274 # <CJK> 0x5275 # <CJK> +0x527D # <CJK> +0x527F # <CJK> +0x5283 # <CJK> 0x5287 # <CJK> +0x5288 # <CJK> +0x5289 # <CJK> +0x528D # <CJK> +0x5291 # <CJK> +0x5292 # <CJK> +0x5294 # <CJK> 0x529B # <CJK> 0x529F # <CJK> 0x52A0 # <CJK> 0x52A3 # <CJK> 0x52A9 # <CJK> 0x52AA # <CJK> +0x52AB # <CJK> +0x52AC # <CJK> +0x52AD # <CJK> 0x52B1 # <CJK> 0x52B4 # <CJK> +0x52B5 # <CJK> 0x52B9 # <CJK> +0x52BC # <CJK> 0x52BE # <CJK> +0x52C1 # <CJK> 0x52C3 # <CJK> 0x52C5 # <CJK> 0x52C7 # <CJK> 0x52C9 # <CJK> +0x52CD # <CJK> +0x52D2 # <CJK> 0x52D5 # <CJK> +0x52D7 # <CJK> 0x52D8 # <CJK> 0x52D9 # <CJK> 0x52DD # <CJK> +0x52DE # <CJK> 0x52DF # <CJK> +0x52E0 # <CJK> 0x52E2 # <CJK> +0x52E3 # <CJK> 0x52E4 # <CJK> +0x52E6 # <CJK> 0x52E7 # <CJK> 0x52F2 # <CJK> +0x52F3 # <CJK> +0x52F5 # <CJK> +0x52F8 # <CJK> +0x52F9 # <CJK> +0x52FA # <CJK> 0x52FE # <CJK> +0x52FF # <CJK> +0x5301 # <CJK> 0x5302 # <CJK> 0x5305 # <CJK> +0x5306 # <CJK> +0x5308 # <CJK> +0x530D # <CJK> +0x530F # <CJK> +0x5310 # <CJK> +0x5315 # <CJK> 0x5316 # <CJK> 0x5317 # <CJK> +0x5319 # <CJK> +0x531A # <CJK> +0x531D # <CJK> 0x5320 # <CJK> +0x5321 # <CJK> +0x5323 # <CJK> +0x532A # <CJK> +0x532F # <CJK> +0x5331 # <CJK> +0x5333 # <CJK> +0x5338 # <CJK> 0x5339 # <CJK> 0x533A # <CJK> 0x533B # <CJK> 0x533F # <CJK> +0x5340 # <CJK> 0x5341 # <CJK> 0x5343 # <CJK> +0x5345 # <CJK> +0x5346 # <CJK> 0x5347 # <CJK> 0x5348 # <CJK> +0x5349 # <CJK> 0x534A # <CJK> +0x534D # <CJK> 0x5351 # <CJK> 0x5352 # <CJK> 0x5353 # <CJK> @@ -472,21 +753,43 @@ 0x5357 # <CJK> 0x5358 # <CJK> 0x535A # <CJK> +0x535C # <CJK> +0x535E # <CJK> 0x5360 # <CJK> +0x5366 # <CJK> +0x5369 # <CJK> +0x536E # <CJK> +0x536F # <CJK> 0x5370 # <CJK> 0x5371 # <CJK> 0x5373 # <CJK> 0x5374 # <CJK> 0x5375 # <CJK> +0x5377 # <CJK> 0x5378 # <CJK> +0x537B # <CJK> +0x537F # <CJK> +0x5382 # <CJK> 0x5384 # <CJK> +0x5396 # <CJK> 0x5398 # <CJK> 0x539A # <CJK> 0x539F # <CJK> +0x53A0 # <CJK> +0x53A5 # <CJK> +0x53A6 # <CJK> +0x53A8 # <CJK> +0x53A9 # <CJK> +0x53AD # <CJK> +0x53AE # <CJK> +0x53B0 # <CJK> 0x53B3 # <CJK> +0x53B6 # <CJK> 0x53BB # <CJK> 0x53C2 # <CJK> +0x53C3 # <CJK> 0x53C8 # <CJK> +0x53C9 # <CJK> 0x53CA # <CJK> 0x53CB # <CJK> 0x53CC # <CJK> @@ -496,20 +799,36 @@ 0x53D6 # <CJK> 0x53D7 # <CJK> 0x53D9 # <CJK> +0x53DB # <CJK> +0x53DF # <CJK> +0x53E1 # <CJK> +0x53E2 # <CJK> 0x53E3 # <CJK> 0x53E4 # <CJK> 0x53E5 # <CJK> +0x53E8 # <CJK> +0x53E9 # <CJK> +0x53EA # <CJK> 0x53EB # <CJK> 0x53EC # <CJK> +0x53ED # <CJK> +0x53EE # <CJK> 0x53EF # <CJK> 0x53F0 # <CJK> +0x53F1 # <CJK> 0x53F2 # <CJK> 0x53F3 # <CJK> +0x53F6 # <CJK> 0x53F7 # <CJK> 0x53F8 # <CJK> +0x53FA # <CJK> +0x5401 # <CJK> +0x5403 # <CJK> 0x5404 # <CJK> 0x5408 # <CJK> 0x5409 # <CJK> +0x540A # <CJK> +0x540B # <CJK> 0x540C # <CJK> 0x540D # <CJK> 0x540E # <CJK> @@ -517,82 +836,273 @@ 0x5410 # <CJK> 0x5411 # <CJK> 0x541B # <CJK> +0x541D # <CJK> 0x541F # <CJK> +0x5420 # <CJK> 0x5426 # <CJK> +0x5429 # <CJK> 0x542B # <CJK> +0x542C # <CJK> +0x542D # <CJK> +0x542E # <CJK> +0x5436 # <CJK> 0x5438 # <CJK> 0x5439 # <CJK> +0x543B # <CJK> +0x543C # <CJK> +0x543D # <CJK> +0x543E # <CJK> +0x5440 # <CJK> 0x5442 # <CJK> +0x5446 # <CJK> 0x5448 # <CJK> 0x5449 # <CJK> 0x544A # <CJK> +0x544E # <CJK> +0x5451 # <CJK> +0x545F # <CJK> 0x5468 # <CJK> 0x546A # <CJK> +0x5470 # <CJK> +0x5471 # <CJK> 0x5473 # <CJK> +0x5475 # <CJK> +0x5476 # <CJK> +0x5477 # <CJK> +0x547B # <CJK> 0x547C # <CJK> 0x547D # <CJK> +0x5480 # <CJK> +0x5484 # <CJK> +0x5486 # <CJK> +0x548B # <CJK> 0x548C # <CJK> +0x548E # <CJK> +0x548F # <CJK> +0x5490 # <CJK> +0x5492 # <CJK> +0x54A2 # <CJK> +0x54A4 # <CJK> +0x54A5 # <CJK> +0x54A8 # <CJK> +0x54AB # <CJK> +0x54AC # <CJK> +0x54AF # <CJK> 0x54B2 # <CJK> +0x54B3 # <CJK> +0x54B8 # <CJK> +0x54BC # <CJK> 0x54BD # <CJK> +0x54BE # <CJK> 0x54C0 # <CJK> 0x54C1 # <CJK> +0x54C2 # <CJK> +0x54C4 # <CJK> +0x54C7 # <CJK> +0x54C8 # <CJK> +0x54C9 # <CJK> +0x54D8 # <CJK> 0x54E1 # <CJK> +0x54E2 # <CJK> +0x54E5 # <CJK> +0x54E6 # <CJK> +0x54E8 # <CJK> +0x54E9 # <CJK> +0x54ED # <CJK> +0x54EE # <CJK> 0x54F2 # <CJK> 0x54FA # <CJK> +0x54FD # <CJK> 0x5504 # <CJK> 0x5506 # <CJK> 0x5507 # <CJK> +0x550F # <CJK> 0x5510 # <CJK> +0x5514 # <CJK> +0x5516 # <CJK> +0x552E # <CJK> 0x552F # <CJK> 0x5531 # <CJK> +0x5533 # <CJK> +0x5538 # <CJK> +0x5539 # <CJK> 0x553E # <CJK> +0x5540 # <CJK> +0x5544 # <CJK> +0x5545 # <CJK> 0x5546 # <CJK> +0x554C # <CJK> 0x554F # <CJK> 0x5553 # <CJK> +0x5556 # <CJK> +0x5557 # <CJK> +0x555C # <CJK> +0x555D # <CJK> +0x5563 # <CJK> +0x557B # <CJK> +0x557C # <CJK> +0x557E # <CJK> +0x5580 # <CJK> +0x5583 # <CJK> 0x5584 # <CJK> +0x5587 # <CJK> 0x5589 # <CJK> +0x558A # <CJK> +0x558B # <CJK> +0x5598 # <CJK> +0x5599 # <CJK> 0x559A # <CJK> 0x559C # <CJK> 0x559D # <CJK> +0x559E # <CJK> +0x559F # <CJK> +0x55A7 # <CJK> +0x55A8 # <CJK> 0x55A9 # <CJK> 0x55AA # <CJK> 0x55AB # <CJK> +0x55AC # <CJK> +0x55AE # <CJK> +0x55B0 # <CJK> 0x55B6 # <CJK> +0x55C4 # <CJK> 0x55C5 # <CJK> +0x55C7 # <CJK> +0x55D4 # <CJK> +0x55DA # <CJK> +0x55DC # <CJK> +0x55DF # <CJK> 0x55E3 # <CJK> +0x55E4 # <CJK> +0x55F7 # <CJK> +0x55F9 # <CJK> +0x55FD # <CJK> +0x55FE # <CJK> 0x5606 # <CJK> +0x5609 # <CJK> +0x5614 # <CJK> +0x5616 # <CJK> +0x5617 # <CJK> +0x5618 # <CJK> +0x561B # <CJK> +0x5629 # <CJK> +0x562F # <CJK> 0x5631 # <CJK> 0x5632 # <CJK> +0x5634 # <CJK> +0x5636 # <CJK> +0x5638 # <CJK> +0x5642 # <CJK> +0x564C # <CJK> +0x564E # <CJK> +0x5650 # <CJK> +0x565B # <CJK> +0x5664 # <CJK> 0x5668 # <CJK> +0x566A # <CJK> +0x566B # <CJK> +0x566C # <CJK> 0x5674 # <CJK> +0x5678 # <CJK> +0x567A # <CJK> +0x5680 # <CJK> +0x5686 # <CJK> 0x5687 # <CJK> +0x568A # <CJK> +0x568F # <CJK> +0x5694 # <CJK> +0x56A0 # <CJK> +0x56A2 # <CJK> +0x56A5 # <CJK> +0x56AE # <CJK> +0x56B4 # <CJK> +0x56B6 # <CJK> +0x56BC # <CJK> +0x56C0 # <CJK> +0x56C1 # <CJK> +0x56C2 # <CJK> +0x56C3 # <CJK> +0x56C8 # <CJK> +0x56CE # <CJK> +0x56D1 # <CJK> +0x56D3 # <CJK> +0x56D7 # <CJK> +0x56D8 # <CJK> 0x56DA # <CJK> 0x56DB # <CJK> 0x56DE # <CJK> 0x56E0 # <CJK> 0x56E3 # <CJK> +0x56EE # <CJK> 0x56F0 # <CJK> 0x56F2 # <CJK> 0x56F3 # <CJK> +0x56F9 # <CJK> 0x56FA # <CJK> 0x56FD # <CJK> +0x56FF # <CJK> +0x5700 # <CJK> +0x5703 # <CJK> +0x5704 # <CJK> +0x5708 # <CJK> +0x5709 # <CJK> +0x570B # <CJK> +0x570D # <CJK> 0x570F # <CJK> 0x5712 # <CJK> +0x5713 # <CJK> +0x5716 # <CJK> +0x5718 # <CJK> +0x571C # <CJK> 0x571F # <CJK> +0x5726 # <CJK> 0x5727 # <CJK> 0x5728 # <CJK> +0x572D # <CJK> 0x5730 # <CJK> +0x5737 # <CJK> +0x5738 # <CJK> +0x573B # <CJK> +0x5740 # <CJK> 0x5742 # <CJK> 0x5747 # <CJK> 0x574A # <CJK> +0x574E # <CJK> +0x574F # <CJK> +0x5750 # <CJK> 0x5751 # <CJK> +0x5761 # <CJK> +0x5764 # <CJK> +0x5766 # <CJK> +0x5769 # <CJK> 0x576A # <CJK> +0x577F # <CJK> 0x5782 # <CJK> +0x5788 # <CJK> +0x5789 # <CJK> 0x578B # <CJK> +0x5793 # <CJK> +0x57A0 # <CJK> +0x57A2 # <CJK> 0x57A3 # <CJK> +0x57A4 # <CJK> +0x57AA # <CJK> +0x57B0 # <CJK> +0x57B3 # <CJK> +0x57C0 # <CJK> +0x57C3 # <CJK> +0x57C6 # <CJK> 0x57CB # <CJK> 0x57CE # <CJK> +0x57D2 # <CJK> +0x57D3 # <CJK> +0x57D4 # <CJK> +0x57D6 # <CJK> +0x57DC # <CJK> 0x57DF # <CJK> +0x57E0 # <CJK> +0x57E3 # <CJK> +0x57F4 # <CJK> 0x57F7 # <CJK> 0x57F9 # <CJK> 0x57FA # <CJK> @@ -601,111 +1111,267 @@ 0x5802 # <CJK> 0x5805 # <CJK> 0x5806 # <CJK> +0x580A # <CJK> +0x580B # <CJK> 0x5815 # <CJK> +0x5819 # <CJK> +0x581D # <CJK> +0x5821 # <CJK> 0x5824 # <CJK> 0x582A # <CJK> +0x582F # <CJK> +0x5830 # <CJK> 0x5831 # <CJK> 0x5834 # <CJK> +0x5835 # <CJK> +0x583A # <CJK> +0x583D # <CJK> 0x5840 # <CJK> 0x5841 # <CJK> 0x584A # <CJK> +0x584B # <CJK> 0x5851 # <CJK> +0x5852 # <CJK> 0x5854 # <CJK> 0x5857 # <CJK> +0x5858 # <CJK> +0x5859 # <CJK> 0x585A # <CJK> 0x585E # <CJK> -#0x5861 # <CJK> # not in DroidSansJapanese +0x5862 # <CJK> 0x5869 # <CJK> +0x586B # <CJK> +0x5870 # <CJK> +0x5872 # <CJK> +0x5875 # <CJK> +0x5879 # <CJK> 0x587E # <CJK> 0x5883 # <CJK> +0x5885 # <CJK> 0x5893 # <CJK> 0x5897 # <CJK> 0x589C # <CJK> +0x589F # <CJK> 0x58A8 # <CJK> +0x58AB # <CJK> +0x58AE # <CJK> 0x58B3 # <CJK> +0x58B8 # <CJK> +0x58B9 # <CJK> +0x58BA # <CJK> +0x58BB # <CJK> 0x58BE # <CJK> 0x58C1 # <CJK> +0x58C5 # <CJK> 0x58C7 # <CJK> 0x58CA # <CJK> 0x58CC # <CJK> +0x58D1 # <CJK> +0x58D3 # <CJK> +0x58D5 # <CJK> +0x58D7 # <CJK> +0x58D8 # <CJK> +0x58D9 # <CJK> +0x58DC # <CJK> +0x58DE # <CJK> +0x58DF # <CJK> +0x58E4 # <CJK> +0x58E5 # <CJK> 0x58EB # <CJK> +0x58EC # <CJK> 0x58EE # <CJK> +0x58EF # <CJK> 0x58F0 # <CJK> 0x58F1 # <CJK> 0x58F2 # <CJK> +0x58F7 # <CJK> +0x58F9 # <CJK> +0x58FA # <CJK> +0x58FB # <CJK> +0x58FC # <CJK> +0x58FD # <CJK> +0x5902 # <CJK> 0x5909 # <CJK> +0x590A # <CJK> 0x590F # <CJK> +0x5910 # <CJK> 0x5915 # <CJK> 0x5916 # <CJK> +0x5918 # <CJK> +0x5919 # <CJK> 0x591A # <CJK> +0x591B # <CJK> 0x591C # <CJK> 0x5922 # <CJK> +0x5925 # <CJK> 0x5927 # <CJK> 0x5929 # <CJK> 0x592A # <CJK> 0x592B # <CJK> +0x592C # <CJK> +0x592D # <CJK> 0x592E # <CJK> 0x5931 # <CJK> +0x5932 # <CJK> +0x5937 # <CJK> +0x5938 # <CJK> +0x593E # <CJK> +0x5944 # <CJK> 0x5947 # <CJK> 0x5948 # <CJK> 0x5949 # <CJK> +0x594E # <CJK> 0x594F # <CJK> +0x5950 # <CJK> 0x5951 # <CJK> 0x5954 # <CJK> +0x5955 # <CJK> +0x5957 # <CJK> +0x5958 # <CJK> +0x595A # <CJK> +0x5960 # <CJK> +0x5962 # <CJK> 0x5965 # <CJK> +0x5967 # <CJK> 0x5968 # <CJK> +0x5969 # <CJK> 0x596A # <CJK> +0x596C # <CJK> 0x596E # <CJK> 0x5973 # <CJK> 0x5974 # <CJK> +0x5978 # <CJK> 0x597D # <CJK> +0x5981 # <CJK> 0x5982 # <CJK> 0x5983 # <CJK> 0x5984 # <CJK> 0x598A # <CJK> +0x598D # <CJK> +0x5993 # <CJK> 0x5996 # <CJK> 0x5999 # <CJK> +0x599B # <CJK> +0x599D # <CJK> +0x59A3 # <CJK> 0x59A5 # <CJK> 0x59A8 # <CJK> 0x59AC # <CJK> +0x59B2 # <CJK> 0x59B9 # <CJK> 0x59BB # <CJK> +0x59BE # <CJK> +0x59C6 # <CJK> 0x59C9 # <CJK> 0x59CB # <CJK> +0x59D0 # <CJK> +0x59D1 # <CJK> 0x59D3 # <CJK> 0x59D4 # <CJK> +0x59D9 # <CJK> +0x59DA # <CJK> +0x59DC # <CJK> +0x59E5 # <CJK> +0x59E6 # <CJK> +0x59E8 # <CJK> +0x59EA # <CJK> 0x59EB # <CJK> +0x59F6 # <CJK> 0x59FB # <CJK> 0x59FF # <CJK> 0x5A01 # <CJK> +0x5A03 # <CJK> +0x5A09 # <CJK> +0x5A11 # <CJK> 0x5A18 # <CJK> +0x5A1A # <CJK> +0x5A1C # <CJK> +0x5A1F # <CJK> 0x5A20 # <CJK> +0x5A25 # <CJK> +0x5A29 # <CJK> 0x5A2F # <CJK> +0x5A35 # <CJK> +0x5A36 # <CJK> +0x5A3C # <CJK> +0x5A40 # <CJK> +0x5A41 # <CJK> 0x5A46 # <CJK> +0x5A49 # <CJK> 0x5A5A # <CJK> +0x5A62 # <CJK> 0x5A66 # <CJK> +0x5A6A # <CJK> +0x5A6C # <CJK> 0x5A7F # <CJK> 0x5A92 # <CJK> +0x5A9A # <CJK> 0x5A9B # <CJK> +0x5ABC # <CJK> +0x5ABD # <CJK> +0x5ABE # <CJK> 0x5AC1 # <CJK> +0x5AC2 # <CJK> 0x5AC9 # <CJK> +0x5ACB # <CJK> 0x5ACC # <CJK> +0x5AD0 # <CJK> +0x5AD6 # <CJK> +0x5AD7 # <CJK> 0x5AE1 # <CJK> +0x5AE3 # <CJK> +0x5AE6 # <CJK> +0x5AE9 # <CJK> +0x5AFA # <CJK> +0x5AFB # <CJK> +0x5B09 # <CJK> +0x5B0B # <CJK> +0x5B0C # <CJK> +0x5B16 # <CJK> 0x5B22 # <CJK> +0x5B2A # <CJK> +0x5B2C # <CJK> +0x5B30 # <CJK> +0x5B32 # <CJK> +0x5B36 # <CJK> +0x5B3E # <CJK> +0x5B40 # <CJK> +0x5B43 # <CJK> +0x5B45 # <CJK> 0x5B50 # <CJK> +0x5B51 # <CJK> 0x5B54 # <CJK> +0x5B55 # <CJK> 0x5B57 # <CJK> 0x5B58 # <CJK> +0x5B5A # <CJK> +0x5B5B # <CJK> +0x5B5C # <CJK> 0x5B5D # <CJK> +0x5B5F # <CJK> 0x5B63 # <CJK> 0x5B64 # <CJK> +0x5B65 # <CJK> 0x5B66 # <CJK> +0x5B69 # <CJK> 0x5B6B # <CJK> +0x5B70 # <CJK> +0x5B71 # <CJK> +0x5B73 # <CJK> +0x5B75 # <CJK> +0x5B78 # <CJK> +0x5B7A # <CJK> +0x5B80 # <CJK> +0x5B83 # <CJK> 0x5B85 # <CJK> 0x5B87 # <CJK> 0x5B88 # <CJK> 0x5B89 # <CJK> +0x5B8B # <CJK> 0x5B8C # <CJK> +0x5B8D # <CJK> +0x5B8F # <CJK> +0x5B95 # <CJK> 0x5B97 # <CJK> 0x5B98 # <CJK> 0x5B99 # <CJK> @@ -717,26 +1383,47 @@ 0x5BA2 # <CJK> 0x5BA3 # <CJK> 0x5BA4 # <CJK> +0x5BA5 # <CJK> +0x5BA6 # <CJK> 0x5BAE # <CJK> 0x5BB0 # <CJK> 0x5BB3 # <CJK> 0x5BB4 # <CJK> 0x5BB5 # <CJK> 0x5BB6 # <CJK> +0x5BB8 # <CJK> 0x5BB9 # <CJK> 0x5BBF # <CJK> 0x5BC2 # <CJK> +0x5BC3 # <CJK> 0x5BC4 # <CJK> +0x5BC5 # <CJK> 0x5BC6 # <CJK> +0x5BC7 # <CJK> +0x5BC9 # <CJK> 0x5BCC # <CJK> +0x5BD0 # <CJK> 0x5BD2 # <CJK> +0x5BD3 # <CJK> +0x5BD4 # <CJK> 0x5BDB # <CJK> 0x5BDD # <CJK> +0x5BDE # <CJK> 0x5BDF # <CJK> 0x5BE1 # <CJK> +0x5BE2 # <CJK> +0x5BE4 # <CJK> +0x5BE5 # <CJK> +0x5BE6 # <CJK> 0x5BE7 # <CJK> +0x5BE8 # <CJK> 0x5BE9 # <CJK> +0x5BEB # <CJK> 0x5BEE # <CJK> +0x5BF0 # <CJK> +0x5BF3 # <CJK> +0x5BF5 # <CJK> +0x5BF6 # <CJK> 0x5BF8 # <CJK> 0x5BFA # <CJK> 0x5BFE # <CJK> @@ -744,15 +1431,28 @@ 0x5C01 # <CJK> 0x5C02 # <CJK> 0x5C04 # <CJK> +0x5C05 # <CJK> 0x5C06 # <CJK> +0x5C07 # <CJK> +0x5C08 # <CJK> 0x5C09 # <CJK> 0x5C0A # <CJK> 0x5C0B # <CJK> +0x5C0D # <CJK> 0x5C0E # <CJK> 0x5C0F # <CJK> 0x5C11 # <CJK> +0x5C13 # <CJK> +0x5C16 # <CJK> 0x5C1A # <CJK> +0x5C20 # <CJK> +0x5C22 # <CJK> +0x5C24 # <CJK> +0x5C28 # <CJK> +0x5C2D # <CJK> 0x5C31 # <CJK> +0x5C38 # <CJK> +0x5C39 # <CJK> 0x5C3A # <CJK> 0x5C3B # <CJK> 0x5C3C # <CJK> @@ -760,31 +1460,109 @@ 0x5C3E # <CJK> 0x5C3F # <CJK> 0x5C40 # <CJK> +0x5C41 # <CJK> 0x5C45 # <CJK> +0x5C46 # <CJK> 0x5C48 # <CJK> 0x5C4A # <CJK> 0x5C4B # <CJK> +0x5C4D # <CJK> +0x5C4E # <CJK> +0x5C4F # <CJK> +0x5C50 # <CJK> +0x5C51 # <CJK> +0x5C53 # <CJK> 0x5C55 # <CJK> 0x5C5E # <CJK> +0x5C60 # <CJK> +0x5C61 # <CJK> 0x5C64 # <CJK> 0x5C65 # <CJK> +0x5C6C # <CJK> +0x5C6E # <CJK> 0x5C6F # <CJK> 0x5C71 # <CJK> +0x5C76 # <CJK> +0x5C79 # <CJK> +0x5C8C # <CJK> 0x5C90 # <CJK> +0x5C91 # <CJK> +0x5C94 # <CJK> 0x5CA1 # <CJK> +0x5CA8 # <CJK> 0x5CA9 # <CJK> +0x5CAB # <CJK> 0x5CAC # <CJK> +0x5CB1 # <CJK> 0x5CB3 # <CJK> +0x5CB6 # <CJK> +0x5CB7 # <CJK> 0x5CB8 # <CJK> +0x5CBB # <CJK> +0x5CBC # <CJK> +0x5CBE # <CJK> +0x5CC5 # <CJK> +0x5CC7 # <CJK> +0x5CD9 # <CJK> 0x5CE0 # <CJK> 0x5CE1 # <CJK> +0x5CE8 # <CJK> +0x5CE9 # <CJK> +0x5CEA # <CJK> +0x5CED # <CJK> +0x5CEF # <CJK> 0x5CF0 # <CJK> 0x5CF6 # <CJK> +0x5CFA # <CJK> +0x5CFB # <CJK> +0x5CFD # <CJK> 0x5D07 # <CJK> +0x5D0B # <CJK> 0x5D0E # <CJK> +0x5D11 # <CJK> +0x5D14 # <CJK> +0x5D15 # <CJK> 0x5D16 # <CJK> +0x5D17 # <CJK> +0x5D18 # <CJK> +0x5D19 # <CJK> +0x5D1A # <CJK> +0x5D1B # <CJK> +0x5D1F # <CJK> +0x5D22 # <CJK> 0x5D29 # <CJK> +0x5D4B # <CJK> +0x5D4C # <CJK> +0x5D4E # <CJK> 0x5D50 # <CJK> +0x5D52 # <CJK> +0x5D5C # <CJK> +0x5D69 # <CJK> +0x5D6C # <CJK> +0x5D6F # <CJK> +0x5D73 # <CJK> +0x5D76 # <CJK> +0x5D82 # <CJK> +0x5D84 # <CJK> +0x5D87 # <CJK> +0x5D8B # <CJK> +0x5D8C # <CJK> +0x5D90 # <CJK> +0x5D9D # <CJK> +0x5DA2 # <CJK> +0x5DAC # <CJK> +0x5DAE # <CJK> +0x5DB7 # <CJK> +0x5DBA # <CJK> +0x5DBC # <CJK> +0x5DBD # <CJK> +0x5DC9 # <CJK> +0x5DCC # <CJK> +0x5DCD # <CJK> +0x5DD2 # <CJK> +0x5DD3 # <CJK> +0x5DD6 # <CJK> +0x5DDB # <CJK> 0x5DDD # <CJK> 0x5DDE # <CJK> 0x5DE1 # <CJK> @@ -793,14 +1571,27 @@ 0x5DE6 # <CJK> 0x5DE7 # <CJK> 0x5DE8 # <CJK> +0x5DEB # <CJK> 0x5DEE # <CJK> 0x5DF1 # <CJK> +0x5DF2 # <CJK> +0x5DF3 # <CJK> +0x5DF4 # <CJK> +0x5DF5 # <CJK> +0x5DF7 # <CJK> 0x5DFB # <CJK> +0x5DFD # <CJK> 0x5DFE # <CJK> 0x5E02 # <CJK> 0x5E03 # <CJK> 0x5E06 # <CJK> +0x5E0B # <CJK> 0x5E0C # <CJK> +0x5E11 # <CJK> +0x5E16 # <CJK> +0x5E19 # <CJK> +0x5E1A # <CJK> +0x5E1B # <CJK> 0x5E1D # <CJK> 0x5E25 # <CJK> 0x5E2B # <CJK> @@ -808,301 +1599,738 @@ 0x5E2F # <CJK> 0x5E30 # <CJK> 0x5E33 # <CJK> +0x5E36 # <CJK> +0x5E37 # <CJK> 0x5E38 # <CJK> 0x5E3D # <CJK> +0x5E40 # <CJK> +0x5E43 # <CJK> +0x5E44 # <CJK> 0x5E45 # <CJK> +0x5E47 # <CJK> +0x5E4C # <CJK> +0x5E4E # <CJK> +0x5E54 # <CJK> 0x5E55 # <CJK> +0x5E57 # <CJK> +0x5E5F # <CJK> +0x5E61 # <CJK> +0x5E62 # <CJK> 0x5E63 # <CJK> +0x5E64 # <CJK> 0x5E72 # <CJK> 0x5E73 # <CJK> 0x5E74 # <CJK> +0x5E75 # <CJK> +0x5E76 # <CJK> 0x5E78 # <CJK> 0x5E79 # <CJK> +0x5E7A # <CJK> 0x5E7B # <CJK> 0x5E7C # <CJK> 0x5E7D # <CJK> 0x5E7E # <CJK> +0x5E7F # <CJK> 0x5E81 # <CJK> 0x5E83 # <CJK> +0x5E84 # <CJK> +0x5E87 # <CJK> 0x5E8A # <CJK> 0x5E8F # <CJK> 0x5E95 # <CJK> +0x5E96 # <CJK> 0x5E97 # <CJK> +0x5E9A # <CJK> 0x5E9C # <CJK> +0x5EA0 # <CJK> 0x5EA6 # <CJK> 0x5EA7 # <CJK> 0x5EAB # <CJK> 0x5EAD # <CJK> +0x5EB5 # <CJK> 0x5EB6 # <CJK> 0x5EB7 # <CJK> 0x5EB8 # <CJK> +0x5EC1 # <CJK> +0x5EC2 # <CJK> 0x5EC3 # <CJK> +0x5EC8 # <CJK> 0x5EC9 # <CJK> 0x5ECA # <CJK> +0x5ECF # <CJK> +0x5ED0 # <CJK> +0x5ED3 # <CJK> +0x5ED6 # <CJK> +0x5EDA # <CJK> +0x5EDB # <CJK> +0x5EDD # <CJK> +0x5EDF # <CJK> +0x5EE0 # <CJK> +0x5EE1 # <CJK> +0x5EE2 # <CJK> +0x5EE3 # <CJK> +0x5EE8 # <CJK> +0x5EE9 # <CJK> +0x5EEC # <CJK> +0x5EF0 # <CJK> +0x5EF1 # <CJK> +0x5EF3 # <CJK> +0x5EF4 # <CJK> 0x5EF6 # <CJK> 0x5EF7 # <CJK> +0x5EF8 # <CJK> 0x5EFA # <CJK> +0x5EFB # <CJK> +0x5EFC # <CJK> +0x5EFE # <CJK> +0x5EFF # <CJK> 0x5F01 # <CJK> +0x5F03 # <CJK> 0x5F04 # <CJK> +0x5F09 # <CJK> 0x5F0A # <CJK> +0x5F0B # <CJK> +0x5F0C # <CJK> +0x5F0D # <CJK> 0x5F0F # <CJK> 0x5F10 # <CJK> +0x5F11 # <CJK> 0x5F13 # <CJK> 0x5F14 # <CJK> 0x5F15 # <CJK> +0x5F16 # <CJK> +0x5F17 # <CJK> +0x5F18 # <CJK> +0x5F1B # <CJK> 0x5F1F # <CJK> 0x5F25 # <CJK> 0x5F26 # <CJK> 0x5F27 # <CJK> +0x5F29 # <CJK> +0x5F2D # <CJK> +0x5F2F # <CJK> 0x5F31 # <CJK> 0x5F35 # <CJK> 0x5F37 # <CJK> +0x5F38 # <CJK> +0x5F3C # <CJK> 0x5F3E # <CJK> +0x5F41 # <CJK> +0x5F48 # <CJK> +0x5F4A # <CJK> +0x5F4C # <CJK> +0x5F4E # <CJK> +0x5F51 # <CJK> 0x5F53 # <CJK> +0x5F56 # <CJK> +0x5F57 # <CJK> 0x5F59 # <CJK> +0x5F5C # <CJK> +0x5F5D # <CJK> +0x5F61 # <CJK> 0x5F62 # <CJK> +0x5F66 # <CJK> 0x5F69 # <CJK> +0x5F6A # <CJK> 0x5F6B # <CJK> +0x5F6C # <CJK> +0x5F6D # <CJK> 0x5F70 # <CJK> 0x5F71 # <CJK> +0x5F73 # <CJK> +0x5F77 # <CJK> 0x5F79 # <CJK> 0x5F7C # <CJK> +0x5F7F # <CJK> 0x5F80 # <CJK> 0x5F81 # <CJK> +0x5F82 # <CJK> +0x5F83 # <CJK> 0x5F84 # <CJK> 0x5F85 # <CJK> +0x5F87 # <CJK> +0x5F88 # <CJK> +0x5F8A # <CJK> 0x5F8B # <CJK> 0x5F8C # <CJK> 0x5F90 # <CJK> +0x5F91 # <CJK> 0x5F92 # <CJK> 0x5F93 # <CJK> 0x5F97 # <CJK> +0x5F98 # <CJK> +0x5F99 # <CJK> +0x5F9E # <CJK> +0x5FA0 # <CJK> 0x5FA1 # <CJK> +0x5FA8 # <CJK> 0x5FA9 # <CJK> 0x5FAA # <CJK> +0x5FAD # <CJK> 0x5FAE # <CJK> 0x5FB3 # <CJK> 0x5FB4 # <CJK> 0x5FB9 # <CJK> +0x5FBC # <CJK> +0x5FBD # <CJK> 0x5FC3 # <CJK> 0x5FC5 # <CJK> 0x5FCC # <CJK> 0x5FCD # <CJK> +0x5FD6 # <CJK> 0x5FD7 # <CJK> 0x5FD8 # <CJK> 0x5FD9 # <CJK> 0x5FDC # <CJK> +0x5FDD # <CJK> 0x5FE0 # <CJK> +0x5FE4 # <CJK> 0x5FEB # <CJK> +0x5FF0 # <CJK> +0x5FF1 # <CJK> 0x5FF5 # <CJK> +0x5FF8 # <CJK> +0x5FFB # <CJK> +0x5FFD # <CJK> +0x5FFF # <CJK> +0x600E # <CJK> +0x600F # <CJK> +0x6010 # <CJK> 0x6012 # <CJK> +0x6015 # <CJK> 0x6016 # <CJK> +0x6019 # <CJK> +0x601B # <CJK> +0x601C # <CJK> 0x601D # <CJK> 0x6020 # <CJK> +0x6021 # <CJK> 0x6025 # <CJK> +0x6026 # <CJK> 0x6027 # <CJK> 0x6028 # <CJK> +0x6029 # <CJK> 0x602A # <CJK> +0x602B # <CJK> +0x602F # <CJK> +0x6031 # <CJK> +0x603A # <CJK> +0x6041 # <CJK> +0x6042 # <CJK> +0x6043 # <CJK> +0x6046 # <CJK> +0x604A # <CJK> 0x604B # <CJK> +0x604D # <CJK> 0x6050 # <CJK> 0x6052 # <CJK> +0x6055 # <CJK> +0x6059 # <CJK> +0x605A # <CJK> +0x605F # <CJK> +0x6060 # <CJK> +0x6062 # <CJK> 0x6063 # <CJK> +0x6064 # <CJK> 0x6065 # <CJK> 0x6068 # <CJK> 0x6069 # <CJK> +0x606A # <CJK> +0x606B # <CJK> +0x606C # <CJK> 0x606D # <CJK> 0x606F # <CJK> +0x6070 # <CJK> 0x6075 # <CJK> +0x6077 # <CJK> +0x6081 # <CJK> +0x6083 # <CJK> +0x6084 # <CJK> +0x6089 # <CJK> +0x608B # <CJK> +0x608C # <CJK> +0x608D # <CJK> +0x6092 # <CJK> 0x6094 # <CJK> +0x6096 # <CJK> +0x6097 # <CJK> +0x609A # <CJK> +0x609B # <CJK> 0x609F # <CJK> 0x60A0 # <CJK> 0x60A3 # <CJK> 0x60A6 # <CJK> +0x60A7 # <CJK> 0x60A9 # <CJK> 0x60AA # <CJK> 0x60B2 # <CJK> +0x60B3 # <CJK> +0x60B4 # <CJK> +0x60B5 # <CJK> +0x60B6 # <CJK> +0x60B8 # <CJK> 0x60BC # <CJK> +0x60BD # <CJK> 0x60C5 # <CJK> +0x60C6 # <CJK> +0x60C7 # <CJK> 0x60D1 # <CJK> +0x60D3 # <CJK> +0x60D8 # <CJK> +0x60DA # <CJK> 0x60DC # <CJK> +0x60DF # <CJK> +0x60E0 # <CJK> +0x60E1 # <CJK> +0x60E3 # <CJK> 0x60E7 # <CJK> 0x60E8 # <CJK> 0x60F0 # <CJK> +0x60F1 # <CJK> 0x60F3 # <CJK> +0x60F4 # <CJK> +0x60F6 # <CJK> +0x60F7 # <CJK> +0x60F9 # <CJK> +0x60FA # <CJK> +0x60FB # <CJK> +0x6100 # <CJK> 0x6101 # <CJK> +0x6103 # <CJK> +0x6106 # <CJK> +0x6108 # <CJK> 0x6109 # <CJK> +0x610D # <CJK> +0x610E # <CJK> 0x610F # <CJK> +0x6115 # <CJK> 0x611A # <CJK> 0x611B # <CJK> 0x611F # <CJK> +0x6121 # <CJK> +0x6127 # <CJK> +0x6128 # <CJK> +0x612C # <CJK> +0x6134 # <CJK> +0x613C # <CJK> +0x613D # <CJK> +0x613E # <CJK> +0x613F # <CJK> +0x6142 # <CJK> 0x6144 # <CJK> +0x6147 # <CJK> 0x6148 # <CJK> +0x614A # <CJK> 0x614B # <CJK> 0x614C # <CJK> +0x614D # <CJK> 0x614E # <CJK> +0x6153 # <CJK> 0x6155 # <CJK> +0x6158 # <CJK> +0x6159 # <CJK> +0x615A # <CJK> +0x615D # <CJK> +0x615F # <CJK> 0x6162 # <CJK> 0x6163 # <CJK> +0x6165 # <CJK> +0x6167 # <CJK> 0x6168 # <CJK> +0x616B # <CJK> 0x616E # <CJK> +0x616F # <CJK> 0x6170 # <CJK> +0x6171 # <CJK> +0x6173 # <CJK> +0x6174 # <CJK> +0x6175 # <CJK> 0x6176 # <CJK> +0x6177 # <CJK> +0x617E # <CJK> 0x6182 # <CJK> +0x6187 # <CJK> +0x618A # <CJK> 0x618E # <CJK> +0x6190 # <CJK> +0x6191 # <CJK> +0x6194 # <CJK> +0x6196 # <CJK> +0x6199 # <CJK> +0x619A # <CJK> 0x61A4 # <CJK> 0x61A7 # <CJK> 0x61A9 # <CJK> +0x61AB # <CJK> 0x61AC # <CJK> +0x61AE # <CJK> 0x61B2 # <CJK> 0x61B6 # <CJK> +0x61BA # <CJK> 0x61BE # <CJK> +0x61C3 # <CJK> +0x61C6 # <CJK> 0x61C7 # <CJK> +0x61C8 # <CJK> +0x61C9 # <CJK> +0x61CA # <CJK> +0x61CB # <CJK> +0x61CC # <CJK> +0x61CD # <CJK> 0x61D0 # <CJK> +0x61E3 # <CJK> +0x61E6 # <CJK> 0x61F2 # <CJK> +0x61F4 # <CJK> +0x61F6 # <CJK> +0x61F7 # <CJK> 0x61F8 # <CJK> +0x61FA # <CJK> +0x61FC # <CJK> +0x61FD # <CJK> +0x61FE # <CJK> +0x61FF # <CJK> +0x6200 # <CJK> +0x6208 # <CJK> +0x6209 # <CJK> +0x620A # <CJK> +0x620C # <CJK> +0x620D # <CJK> +0x620E # <CJK> 0x6210 # <CJK> 0x6211 # <CJK> 0x6212 # <CJK> +0x6214 # <CJK> +0x6216 # <CJK> 0x621A # <CJK> +0x621B # <CJK> +0x621D # <CJK> +0x621E # <CJK> +0x621F # <CJK> +0x6221 # <CJK> 0x6226 # <CJK> +0x622A # <CJK> +0x622E # <CJK> 0x622F # <CJK> +0x6230 # <CJK> +0x6232 # <CJK> +0x6233 # <CJK> 0x6234 # <CJK> 0x6238 # <CJK> 0x623B # <CJK> 0x623F # <CJK> 0x6240 # <CJK> +0x6241 # <CJK> 0x6247 # <CJK> +0x6248 # <CJK> 0x6249 # <CJK> 0x624B # <CJK> 0x624D # <CJK> +0x624E # <CJK> 0x6253 # <CJK> 0x6255 # <CJK> +0x6258 # <CJK> +0x625B # <CJK> +0x625E # <CJK> +0x6260 # <CJK> +0x6263 # <CJK> +0x6268 # <CJK> +0x626E # <CJK> 0x6271 # <CJK> 0x6276 # <CJK> 0x6279 # <CJK> +0x627C # <CJK> +0x627E # <CJK> 0x627F # <CJK> 0x6280 # <CJK> +0x6282 # <CJK> +0x6283 # <CJK> 0x6284 # <CJK> +0x6289 # <CJK> 0x628A # <CJK> 0x6291 # <CJK> +0x6292 # <CJK> +0x6293 # <CJK> +0x6294 # <CJK> 0x6295 # <CJK> +0x6296 # <CJK> 0x6297 # <CJK> 0x6298 # <CJK> +0x629B # <CJK> 0x629C # <CJK> 0x629E # <CJK> 0x62AB # <CJK> +0x62AC # <CJK> 0x62B1 # <CJK> 0x62B5 # <CJK> 0x62B9 # <CJK> +0x62BB # <CJK> 0x62BC # <CJK> 0x62BD # <CJK> +0x62C2 # <CJK> 0x62C5 # <CJK> +0x62C6 # <CJK> +0x62C7 # <CJK> +0x62C8 # <CJK> 0x62C9 # <CJK> +0x62CA # <CJK> +0x62CC # <CJK> 0x62CD # <CJK> +0x62CF # <CJK> 0x62D0 # <CJK> +0x62D1 # <CJK> 0x62D2 # <CJK> 0x62D3 # <CJK> +0x62D4 # <CJK> +0x62D7 # <CJK> 0x62D8 # <CJK> 0x62D9 # <CJK> 0x62DB # <CJK> +0x62DC # <CJK> 0x62DD # <CJK> 0x62E0 # <CJK> 0x62E1 # <CJK> 0x62EC # <CJK> 0x62ED # <CJK> +0x62EE # <CJK> +0x62EF # <CJK> +0x62F1 # <CJK> 0x62F3 # <CJK> +0x62F5 # <CJK> 0x62F6 # <CJK> 0x62F7 # <CJK> 0x62FE # <CJK> +0x62FF # <CJK> 0x6301 # <CJK> +0x6302 # <CJK> 0x6307 # <CJK> +0x6308 # <CJK> +0x6309 # <CJK> +0x630C # <CJK> 0x6311 # <CJK> 0x6319 # <CJK> 0x631F # <CJK> +0x6327 # <CJK> 0x6328 # <CJK> 0x632B # <CJK> 0x632F # <CJK> +0x633A # <CJK> +0x633D # <CJK> +0x633E # <CJK> 0x633F # <CJK> 0x6349 # <CJK> +0x634C # <CJK> +0x634D # <CJK> +0x634F # <CJK> +0x6350 # <CJK> 0x6355 # <CJK> 0x6357 # <CJK> 0x635C # <CJK> +0x6367 # <CJK> 0x6368 # <CJK> +0x6369 # <CJK> +0x636B # <CJK> 0x636E # <CJK> +0x6372 # <CJK> +0x6376 # <CJK> +0x6377 # <CJK> +0x637A # <CJK> 0x637B # <CJK> +0x6380 # <CJK> 0x6383 # <CJK> 0x6388 # <CJK> +0x6389 # <CJK> 0x638C # <CJK> +0x638E # <CJK> +0x638F # <CJK> 0x6392 # <CJK> +0x6396 # <CJK> 0x6398 # <CJK> 0x639B # <CJK> +0x639F # <CJK> +0x63A0 # <CJK> 0x63A1 # <CJK> 0x63A2 # <CJK> +0x63A3 # <CJK> 0x63A5 # <CJK> 0x63A7 # <CJK> 0x63A8 # <CJK> +0x63A9 # <CJK> 0x63AA # <CJK> +0x63AB # <CJK> +0x63AC # <CJK> 0x63B2 # <CJK> +0x63B4 # <CJK> +0x63B5 # <CJK> +0x63BB # <CJK> +0x63BE # <CJK> +0x63C0 # <CJK> +0x63C3 # <CJK> +0x63C4 # <CJK> +0x63C6 # <CJK> +0x63C9 # <CJK> 0x63CF # <CJK> 0x63D0 # <CJK> +0x63D2 # <CJK> +0x63D6 # <CJK> 0x63DA # <CJK> 0x63DB # <CJK> 0x63E1 # <CJK> +0x63E3 # <CJK> +0x63E9 # <CJK> 0x63EE # <CJK> 0x63F4 # <CJK> +0x63F6 # <CJK> 0x63FA # <CJK> +0x6406 # <CJK> 0x640D # <CJK> +0x640F # <CJK> +0x6413 # <CJK> +0x6416 # <CJK> +0x6417 # <CJK> +0x641C # <CJK> +0x6426 # <CJK> +0x6428 # <CJK> 0x642C # <CJK> 0x642D # <CJK> +0x6434 # <CJK> +0x6436 # <CJK> 0x643A # <CJK> 0x643E # <CJK> 0x6442 # <CJK> +0x644E # <CJK> 0x6458 # <CJK> +0x6467 # <CJK> 0x6469 # <CJK> 0x646F # <CJK> +0x6476 # <CJK> +0x6478 # <CJK> +0x647A # <CJK> 0x6483 # <CJK> +0x6488 # <CJK> +0x6492 # <CJK> +0x6493 # <CJK> +0x6495 # <CJK> +0x649A # <CJK> +0x649E # <CJK> 0x64A4 # <CJK> +0x64A5 # <CJK> +0x64A9 # <CJK> +0x64AB # <CJK> +0x64AD # <CJK> 0x64AE # <CJK> +0x64B0 # <CJK> 0x64B2 # <CJK> +0x64B9 # <CJK> +0x64BB # <CJK> +0x64BC # <CJK> 0x64C1 # <CJK> +0x64C2 # <CJK> +0x64C5 # <CJK> +0x64C7 # <CJK> 0x64CD # <CJK> +0x64D2 # <CJK> +0x64D4 # <CJK> +0x64D8 # <CJK> +0x64DA # <CJK> +0x64E0 # <CJK> +0x64E1 # <CJK> +0x64E2 # <CJK> +0x64E3 # <CJK> 0x64E6 # <CJK> +0x64E7 # <CJK> 0x64EC # <CJK> +0x64EF # <CJK> +0x64F1 # <CJK> +0x64F2 # <CJK> +0x64F4 # <CJK> +0x64F6 # <CJK> +0x64FA # <CJK> +0x64FD # <CJK> +0x64FE # <CJK> +0x6500 # <CJK> +0x6505 # <CJK> +0x6518 # <CJK> +0x651C # <CJK> +0x651D # <CJK> +0x6523 # <CJK> +0x6524 # <CJK> +0x652A # <CJK> +0x652B # <CJK> +0x652C # <CJK> 0x652F # <CJK> +0x6534 # <CJK> +0x6535 # <CJK> +0x6536 # <CJK> +0x6537 # <CJK> +0x6538 # <CJK> 0x6539 # <CJK> 0x653B # <CJK> 0x653E # <CJK> 0x653F # <CJK> 0x6545 # <CJK> +0x6548 # <CJK> +0x654D # <CJK> 0x654F # <CJK> 0x6551 # <CJK> +0x6555 # <CJK> +0x6556 # <CJK> 0x6557 # <CJK> +0x6558 # <CJK> 0x6559 # <CJK> +0x655D # <CJK> +0x655E # <CJK> 0x6562 # <CJK> 0x6563 # <CJK> +0x6566 # <CJK> 0x656C # <CJK> 0x6570 # <CJK> +0x6572 # <CJK> 0x6574 # <CJK> 0x6575 # <CJK> 0x6577 # <CJK> +0x6578 # <CJK> +0x6582 # <CJK> +0x6583 # <CJK> 0x6587 # <CJK> +0x6588 # <CJK> 0x6589 # <CJK> +0x658C # <CJK> 0x658E # <CJK> +0x6590 # <CJK> 0x6591 # <CJK> 0x6597 # <CJK> 0x6599 # <CJK> +0x659B # <CJK> 0x659C # <CJK> +0x659F # <CJK> +0x65A1 # <CJK> 0x65A4 # <CJK> 0x65A5 # <CJK> +0x65A7 # <CJK> +0x65AB # <CJK> 0x65AC # <CJK> 0x65AD # <CJK> +0x65AF # <CJK> 0x65B0 # <CJK> +0x65B7 # <CJK> 0x65B9 # <CJK> +0x65BC # <CJK> 0x65BD # <CJK> +0x65C1 # <CJK> +0x65C3 # <CJK> +0x65C4 # <CJK> 0x65C5 # <CJK> +0x65C6 # <CJK> 0x65CB # <CJK> +0x65CC # <CJK> 0x65CF # <CJK> +0x65D2 # <CJK> 0x65D7 # <CJK> +0x65D9 # <CJK> +0x65DB # <CJK> +0x65E0 # <CJK> +0x65E1 # <CJK> 0x65E2 # <CJK> 0x65E5 # <CJK> 0x65E6 # <CJK> @@ -1110,12 +2338,21 @@ 0x65E8 # <CJK> 0x65E9 # <CJK> 0x65EC # <CJK> +0x65ED # <CJK> +0x65F1 # <CJK> 0x65FA # <CJK> +0x65FB # <CJK> +0x6602 # <CJK> +0x6603 # <CJK> 0x6606 # <CJK> 0x6607 # <CJK> +0x660A # <CJK> +0x660C # <CJK> 0x660E # <CJK> +0x660F # <CJK> 0x6613 # <CJK> 0x6614 # <CJK> +0x661C # <CJK> 0x661F # <CJK> 0x6620 # <CJK> 0x6625 # <CJK> @@ -1123,59 +2360,146 @@ 0x6628 # <CJK> 0x662D # <CJK> 0x662F # <CJK> +0x6634 # <CJK> +0x6635 # <CJK> +0x6636 # <CJK> 0x663C # <CJK> +0x663F # <CJK> +0x6641 # <CJK> 0x6642 # <CJK> +0x6643 # <CJK> +0x6644 # <CJK> +0x6649 # <CJK> +0x664B # <CJK> +0x664F # <CJK> +0x6652 # <CJK> +0x665D # <CJK> +0x665E # <CJK> +0x665F # <CJK> +0x6662 # <CJK> +0x6664 # <CJK> +0x6666 # <CJK> +0x6667 # <CJK> +0x6668 # <CJK> 0x6669 # <CJK> 0x666E # <CJK> 0x666F # <CJK> +0x6670 # <CJK> 0x6674 # <CJK> 0x6676 # <CJK> +0x667A # <CJK> 0x6681 # <CJK> +0x6683 # <CJK> +0x6684 # <CJK> 0x6687 # <CJK> +0x6688 # <CJK> +0x6689 # <CJK> +0x668E # <CJK> 0x6691 # <CJK> 0x6696 # <CJK> 0x6697 # <CJK> +0x6698 # <CJK> +0x669D # <CJK> +0x66A2 # <CJK> 0x66A6 # <CJK> 0x66AB # <CJK> 0x66AE # <CJK> 0x66B4 # <CJK> +0x66B8 # <CJK> +0x66B9 # <CJK> +0x66BC # <CJK> +0x66BE # <CJK> +0x66C1 # <CJK> +0x66C4 # <CJK> 0x66C7 # <CJK> +0x66C9 # <CJK> 0x66D6 # <CJK> +0x66D9 # <CJK> +0x66DA # <CJK> 0x66DC # <CJK> +0x66DD # <CJK> +0x66E0 # <CJK> +0x66E6 # <CJK> +0x66E9 # <CJK> +0x66F0 # <CJK> 0x66F2 # <CJK> +0x66F3 # <CJK> 0x66F4 # <CJK> +0x66F5 # <CJK> +0x66F7 # <CJK> 0x66F8 # <CJK> 0x66F9 # <CJK> +0x66FC # <CJK> 0x66FD # <CJK> +0x66FE # <CJK> 0x66FF # <CJK> 0x6700 # <CJK> +0x6703 # <CJK> 0x6708 # <CJK> 0x6709 # <CJK> +0x670B # <CJK> 0x670D # <CJK> +0x670F # <CJK> +0x6714 # <CJK> 0x6715 # <CJK> +0x6716 # <CJK> 0x6717 # <CJK> 0x671B # <CJK> 0x671D # <CJK> +0x671E # <CJK> 0x671F # <CJK> +0x6726 # <CJK> +0x6727 # <CJK> 0x6728 # <CJK> 0x672A # <CJK> 0x672B # <CJK> 0x672C # <CJK> 0x672D # <CJK> +0x672E # <CJK> 0x6731 # <CJK> 0x6734 # <CJK> +0x6736 # <CJK> +0x6737 # <CJK> +0x6738 # <CJK> 0x673A # <CJK> 0x673D # <CJK> +0x673F # <CJK> +0x6741 # <CJK> +0x6746 # <CJK> 0x6749 # <CJK> +0x674E # <CJK> +0x674F # <CJK> 0x6750 # <CJK> 0x6751 # <CJK> +0x6753 # <CJK> +0x6756 # <CJK> +0x6759 # <CJK> +0x675C # <CJK> +0x675E # <CJK> 0x675F # <CJK> +0x6760 # <CJK> 0x6761 # <CJK> +0x6762 # <CJK> +0x6763 # <CJK> +0x6764 # <CJK> 0x6765 # <CJK> +0x676A # <CJK> +0x676D # <CJK> 0x676F # <CJK> +0x6770 # <CJK> 0x6771 # <CJK> +0x6772 # <CJK> +0x6773 # <CJK> +0x6775 # <CJK> +0x6777 # <CJK> +0x677C # <CJK> 0x677E # <CJK> 0x677F # <CJK> +0x6785 # <CJK> +0x6787 # <CJK> +0x6789 # <CJK> +0x678B # <CJK> +0x678C # <CJK> 0x6790 # <CJK> 0x6795 # <CJK> 0x6797 # <CJK> @@ -1183,820 +2507,2836 @@ 0x679C # <CJK> 0x679D # <CJK> 0x67A0 # <CJK> +0x67A1 # <CJK> 0x67A2 # <CJK> +0x67A6 # <CJK> +0x67A9 # <CJK> 0x67AF # <CJK> +0x67B3 # <CJK> +0x67B4 # <CJK> 0x67B6 # <CJK> +0x67B7 # <CJK> +0x67B8 # <CJK> +0x67B9 # <CJK> +0x67C1 # <CJK> 0x67C4 # <CJK> +0x67C6 # <CJK> +0x67CA # <CJK> +0x67CE # <CJK> +0x67CF # <CJK> 0x67D0 # <CJK> +0x67D1 # <CJK> 0x67D3 # <CJK> 0x67D4 # <CJK> +0x67D8 # <CJK> +0x67DA # <CJK> +0x67DD # <CJK> +0x67DE # <CJK> +0x67E2 # <CJK> +0x67E4 # <CJK> +0x67E7 # <CJK> +0x67E9 # <CJK> +0x67EC # <CJK> +0x67EE # <CJK> +0x67EF # <CJK> 0x67F1 # <CJK> 0x67F3 # <CJK> +0x67F4 # <CJK> 0x67F5 # <CJK> 0x67FB # <CJK> +0x67FE # <CJK> 0x67FF # <CJK> +0x6802 # <CJK> 0x6803 # <CJK> 0x6804 # <CJK> 0x6813 # <CJK> +0x6816 # <CJK> +0x6817 # <CJK> +0x681E # <CJK> 0x6821 # <CJK> +0x6822 # <CJK> +0x6829 # <CJK> 0x682A # <CJK> +0x682B # <CJK> +0x6832 # <CJK> +0x6834 # <CJK> 0x6838 # <CJK> 0x6839 # <CJK> 0x683C # <CJK> 0x683D # <CJK> +0x6840 # <CJK> 0x6841 # <CJK> +0x6842 # <CJK> 0x6843 # <CJK> +0x6846 # <CJK> 0x6848 # <CJK> +0x684D # <CJK> +0x684E # <CJK> +0x6850 # <CJK> 0x6851 # <CJK> +0x6853 # <CJK> +0x6854 # <CJK> +0x6859 # <CJK> 0x685C # <CJK> +0x685D # <CJK> 0x685F # <CJK> +0x6863 # <CJK> +0x6867 # <CJK> +0x6874 # <CJK> +0x6876 # <CJK> +0x6877 # <CJK> +0x687E # <CJK> +0x687F # <CJK> +0x6881 # <CJK> +0x6883 # <CJK> 0x6885 # <CJK> +0x688D # <CJK> +0x688F # <CJK> +0x6893 # <CJK> +0x6894 # <CJK> 0x6897 # <CJK> +0x689B # <CJK> +0x689D # <CJK> +0x689F # <CJK> +0x68A0 # <CJK> +0x68A2 # <CJK> +0x68A6 # <CJK> +0x68A7 # <CJK> 0x68A8 # <CJK> +0x68AD # <CJK> +0x68AF # <CJK> 0x68B0 # <CJK> +0x68B1 # <CJK> +0x68B3 # <CJK> +0x68B5 # <CJK> +0x68B6 # <CJK> +0x68B9 # <CJK> +0x68BA # <CJK> +0x68BC # <CJK> 0x68C4 # <CJK> +0x68C6 # <CJK> +0x68C9 # <CJK> +0x68CA # <CJK> 0x68CB # <CJK> +0x68CD # <CJK> 0x68D2 # <CJK> +0x68D4 # <CJK> +0x68D5 # <CJK> +0x68D7 # <CJK> +0x68D8 # <CJK> 0x68DA # <CJK> 0x68DF # <CJK> +0x68E0 # <CJK> +0x68E1 # <CJK> +0x68E3 # <CJK> +0x68E7 # <CJK> 0x68EE # <CJK> +0x68EF # <CJK> +0x68F2 # <CJK> +0x68F9 # <CJK> 0x68FA # <CJK> +0x6900 # <CJK> +0x6901 # <CJK> +0x6904 # <CJK> 0x6905 # <CJK> +0x6908 # <CJK> +0x690B # <CJK> +0x690C # <CJK> 0x690D # <CJK> 0x690E # <CJK> +0x690F # <CJK> +0x6912 # <CJK> +0x6919 # <CJK> +0x691A # <CJK> +0x691B # <CJK> 0x691C # <CJK> +0x6921 # <CJK> +0x6922 # <CJK> +0x6923 # <CJK> +0x6925 # <CJK> +0x6926 # <CJK> +0x6928 # <CJK> +0x692A # <CJK> +0x6930 # <CJK> +0x6934 # <CJK> +0x6936 # <CJK> +0x6939 # <CJK> +0x693D # <CJK> +0x693F # <CJK> +0x694A # <CJK> +0x6953 # <CJK> +0x6954 # <CJK> +0x6955 # <CJK> +0x6959 # <CJK> +0x695A # <CJK> +0x695C # <CJK> +0x695D # <CJK> +0x695E # <CJK> +0x6960 # <CJK> +0x6961 # <CJK> +0x6962 # <CJK> +0x696A # <CJK> +0x696B # <CJK> 0x696D # <CJK> +0x696E # <CJK> +0x696F # <CJK> +0x6973 # <CJK> +0x6974 # <CJK> 0x6975 # <CJK> 0x6977 # <CJK> +0x6978 # <CJK> +0x6979 # <CJK> 0x697C # <CJK> 0x697D # <CJK> +0x697E # <CJK> +0x6981 # <CJK> 0x6982 # <CJK> +0x698A # <CJK> +0x698E # <CJK> +0x6991 # <CJK> +0x6994 # <CJK> +0x6995 # <CJK> +0x699B # <CJK> +0x699C # <CJK> +0x69A0 # <CJK> +0x69A7 # <CJK> +0x69AE # <CJK> +0x69B1 # <CJK> +0x69B2 # <CJK> +0x69B4 # <CJK> +0x69BB # <CJK> +0x69BE # <CJK> +0x69BF # <CJK> +0x69C1 # <CJK> +0x69C3 # <CJK> +0x69C7 # <CJK> +0x69CA # <CJK> 0x69CB # <CJK> +0x69CC # <CJK> +0x69CD # <CJK> +0x69CE # <CJK> +0x69D0 # <CJK> +0x69D3 # <CJK> 0x69D8 # <CJK> +0x69D9 # <CJK> +0x69DD # <CJK> +0x69DE # <CJK> +0x69E7 # <CJK> +0x69E8 # <CJK> +0x69EB # <CJK> +0x69ED # <CJK> +0x69F2 # <CJK> +0x69F9 # <CJK> +0x69FB # <CJK> 0x69FD # <CJK> +0x69FF # <CJK> +0x6A02 # <CJK> +0x6A05 # <CJK> +0x6A0A # <CJK> +0x6A0B # <CJK> +0x6A0C # <CJK> +0x6A12 # <CJK> +0x6A13 # <CJK> +0x6A14 # <CJK> +0x6A17 # <CJK> 0x6A19 # <CJK> +0x6A1B # <CJK> +0x6A1E # <CJK> +0x6A1F # <CJK> 0x6A21 # <CJK> +0x6A22 # <CJK> +0x6A23 # <CJK> 0x6A29 # <CJK> 0x6A2A # <CJK> +0x6A2B # <CJK> +0x6A2E # <CJK> +0x6A35 # <CJK> +0x6A36 # <CJK> +0x6A38 # <CJK> 0x6A39 # <CJK> +0x6A3A # <CJK> +0x6A3D # <CJK> +0x6A44 # <CJK> +0x6A47 # <CJK> +0x6A48 # <CJK> 0x6A4B # <CJK> +0x6A58 # <CJK> +0x6A59 # <CJK> 0x6A5F # <CJK> +0x6A61 # <CJK> +0x6A62 # <CJK> +0x6A66 # <CJK> +0x6A72 # <CJK> +0x6A78 # <CJK> +0x6A7F # <CJK> +0x6A80 # <CJK> +0x6A84 # <CJK> +0x6A8D # <CJK> +0x6A8E # <CJK> +0x6A90 # <CJK> +0x6A97 # <CJK> +0x6A9C # <CJK> +0x6AA0 # <CJK> +0x6AA2 # <CJK> +0x6AA3 # <CJK> +0x6AAA # <CJK> +0x6AAC # <CJK> +0x6AAE # <CJK> +0x6AB3 # <CJK> +0x6AB8 # <CJK> +0x6ABB # <CJK> +0x6AC1 # <CJK> +0x6AC2 # <CJK> +0x6AC3 # <CJK> +0x6AD1 # <CJK> +0x6AD3 # <CJK> +0x6ADA # <CJK> +0x6ADB # <CJK> +0x6ADE # <CJK> +0x6ADF # <CJK> +0x6AE8 # <CJK> +0x6AEA # <CJK> +0x6AFA # <CJK> +0x6AFB # <CJK> 0x6B04 # <CJK> +0x6B05 # <CJK> +0x6B0A # <CJK> +0x6B12 # <CJK> +0x6B16 # <CJK> +0x6B1D # <CJK> +0x6B1F # <CJK> 0x6B20 # <CJK> 0x6B21 # <CJK> +0x6B23 # <CJK> 0x6B27 # <CJK> 0x6B32 # <CJK> +0x6B37 # <CJK> +0x6B38 # <CJK> +0x6B39 # <CJK> 0x6B3A # <CJK> +0x6B3D # <CJK> 0x6B3E # <CJK> +0x6B43 # <CJK> +0x6B47 # <CJK> +0x6B49 # <CJK> 0x6B4C # <CJK> +0x6B4E # <CJK> +0x6B50 # <CJK> 0x6B53 # <CJK> +0x6B54 # <CJK> +0x6B59 # <CJK> +0x6B5B # <CJK> +0x6B5F # <CJK> +0x6B61 # <CJK> 0x6B62 # <CJK> 0x6B63 # <CJK> +0x6B64 # <CJK> 0x6B66 # <CJK> 0x6B69 # <CJK> +0x6B6A # <CJK> 0x6B6F # <CJK> 0x6B73 # <CJK> 0x6B74 # <CJK> +0x6B78 # <CJK> +0x6B79 # <CJK> 0x6B7B # <CJK> +0x6B7F # <CJK> +0x6B80 # <CJK> +0x6B83 # <CJK> +0x6B84 # <CJK> +0x6B86 # <CJK> 0x6B89 # <CJK> 0x6B8A # <CJK> 0x6B8B # <CJK> +0x6B8D # <CJK> +0x6B95 # <CJK> 0x6B96 # <CJK> +0x6B98 # <CJK> +0x6B9E # <CJK> +0x6BA4 # <CJK> +0x6BAA # <CJK> +0x6BAB # <CJK> +0x6BAF # <CJK> +0x6BB1 # <CJK> +0x6BB2 # <CJK> +0x6BB3 # <CJK> 0x6BB4 # <CJK> 0x6BB5 # <CJK> +0x6BB7 # <CJK> 0x6BBA # <CJK> 0x6BBB # <CJK> +0x6BBC # <CJK> 0x6BBF # <CJK> 0x6BC0 # <CJK> +0x6BC5 # <CJK> +0x6BC6 # <CJK> +0x6BCB # <CJK> 0x6BCD # <CJK> 0x6BCE # <CJK> 0x6BD2 # <CJK> +0x6BD3 # <CJK> 0x6BD4 # <CJK> +0x6BD8 # <CJK> 0x6BDB # <CJK> +0x6BDF # <CJK> +0x6BEB # <CJK> +0x6BEC # <CJK> +0x6BEF # <CJK> +0x6BF3 # <CJK> +0x6C08 # <CJK> 0x6C0F # <CJK> 0x6C11 # <CJK> +0x6C13 # <CJK> +0x6C14 # <CJK> 0x6C17 # <CJK> +0x6C1B # <CJK> +0x6C23 # <CJK> +0x6C24 # <CJK> 0x6C34 # <CJK> 0x6C37 # <CJK> 0x6C38 # <CJK> 0x6C3E # <CJK> +0x6C40 # <CJK> 0x6C41 # <CJK> 0x6C42 # <CJK> 0x6C4E # <CJK> +0x6C50 # <CJK> +0x6C55 # <CJK> 0x6C57 # <CJK> 0x6C5A # <CJK> +0x6C5D # <CJK> +0x6C5E # <CJK> 0x6C5F # <CJK> 0x6C60 # <CJK> +0x6C62 # <CJK> +0x6C68 # <CJK> +0x6C6A # <CJK> 0x6C70 # <CJK> +0x6C72 # <CJK> +0x6C73 # <CJK> 0x6C7A # <CJK> 0x6C7D # <CJK> +0x6C7E # <CJK> +0x6C81 # <CJK> +0x6C82 # <CJK> 0x6C83 # <CJK> 0x6C88 # <CJK> +0x6C8C # <CJK> +0x6C8D # <CJK> +0x6C90 # <CJK> +0x6C92 # <CJK> +0x6C93 # <CJK> 0x6C96 # <CJK> 0x6C99 # <CJK> +0x6C9A # <CJK> +0x6C9B # <CJK> 0x6CA1 # <CJK> 0x6CA2 # <CJK> +0x6CAB # <CJK> +0x6CAE # <CJK> +0x6CB1 # <CJK> 0x6CB3 # <CJK> 0x6CB8 # <CJK> 0x6CB9 # <CJK> +0x6CBA # <CJK> 0x6CBB # <CJK> 0x6CBC # <CJK> +0x6CBD # <CJK> +0x6CBE # <CJK> 0x6CBF # <CJK> 0x6CC1 # <CJK> +0x6CC4 # <CJK> +0x6CC5 # <CJK> 0x6CC9 # <CJK> 0x6CCA # <CJK> 0x6CCC # <CJK> +0x6CD3 # <CJK> 0x6CD5 # <CJK> +0x6CD7 # <CJK> +0x6CD9 # <CJK> +0x6CDB # <CJK> +0x6CDD # <CJK> 0x6CE1 # <CJK> 0x6CE2 # <CJK> 0x6CE3 # <CJK> 0x6CE5 # <CJK> 0x6CE8 # <CJK> +0x6CEA # <CJK> +0x6CEF # <CJK> 0x6CF0 # <CJK> +0x6CF1 # <CJK> 0x6CF3 # <CJK> 0x6D0B # <CJK> +0x6D0C # <CJK> +0x6D12 # <CJK> 0x6D17 # <CJK> +0x6D19 # <CJK> +0x6D1B # <CJK> 0x6D1E # <CJK> +0x6D1F # <CJK> 0x6D25 # <CJK> +0x6D29 # <CJK> 0x6D2A # <CJK> +0x6D2B # <CJK> +0x6D32 # <CJK> +0x6D33 # <CJK> +0x6D35 # <CJK> +0x6D36 # <CJK> +0x6D38 # <CJK> 0x6D3B # <CJK> +0x6D3D # <CJK> 0x6D3E # <CJK> 0x6D41 # <CJK> 0x6D44 # <CJK> 0x6D45 # <CJK> +0x6D59 # <CJK> +0x6D5A # <CJK> 0x6D5C # <CJK> +0x6D63 # <CJK> +0x6D64 # <CJK> 0x6D66 # <CJK> +0x6D69 # <CJK> 0x6D6A # <CJK> +0x6D6C # <CJK> 0x6D6E # <CJK> 0x6D74 # <CJK> 0x6D77 # <CJK> 0x6D78 # <CJK> +0x6D79 # <CJK> +0x6D85 # <CJK> 0x6D88 # <CJK> +0x6D8C # <CJK> +0x6D8E # <CJK> +0x6D93 # <CJK> +0x6D95 # <CJK> 0x6D99 # <CJK> +0x6D9B # <CJK> +0x6D9C # <CJK> 0x6DAF # <CJK> 0x6DB2 # <CJK> +0x6DB5 # <CJK> +0x6DB8 # <CJK> 0x6DBC # <CJK> +0x6DC0 # <CJK> +0x6DC5 # <CJK> +0x6DC6 # <CJK> +0x6DC7 # <CJK> +0x6DCB # <CJK> +0x6DCC # <CJK> 0x6DD1 # <CJK> +0x6DD2 # <CJK> +0x6DD5 # <CJK> +0x6DD8 # <CJK> +0x6DD9 # <CJK> +0x6DDE # <CJK> 0x6DE1 # <CJK> +0x6DE4 # <CJK> +0x6DE6 # <CJK> +0x6DE8 # <CJK> +0x6DEA # <CJK> 0x6DEB # <CJK> +0x6DEC # <CJK> +0x6DEE # <CJK> 0x6DF1 # <CJK> +0x6DF3 # <CJK> +0x6DF5 # <CJK> 0x6DF7 # <CJK> +0x6DF9 # <CJK> +0x6DFA # <CJK> 0x6DFB # <CJK> 0x6E05 # <CJK> 0x6E07 # <CJK> 0x6E08 # <CJK> 0x6E09 # <CJK> +0x6E0A # <CJK> 0x6E0B # <CJK> 0x6E13 # <CJK> +0x6E15 # <CJK> +0x6E19 # <CJK> +0x6E1A # <CJK> 0x6E1B # <CJK> +0x6E1D # <CJK> +0x6E1F # <CJK> +0x6E20 # <CJK> 0x6E21 # <CJK> +0x6E23 # <CJK> +0x6E24 # <CJK> +0x6E25 # <CJK> 0x6E26 # <CJK> 0x6E29 # <CJK> +0x6E2B # <CJK> 0x6E2C # <CJK> +0x6E2D # <CJK> +0x6E2E # <CJK> 0x6E2F # <CJK> +0x6E38 # <CJK> +0x6E3A # <CJK> +0x6E3E # <CJK> +0x6E43 # <CJK> +0x6E4A # <CJK> +0x6E4D # <CJK> +0x6E4E # <CJK> 0x6E56 # <CJK> +0x6E58 # <CJK> +0x6E5B # <CJK> +0x6E5F # <CJK> 0x6E67 # <CJK> +0x6E6B # <CJK> +0x6E6E # <CJK> 0x6E6F # <CJK> +0x6E72 # <CJK> +0x6E76 # <CJK> 0x6E7E # <CJK> 0x6E7F # <CJK> 0x6E80 # <CJK> +0x6E82 # <CJK> +0x6E8C # <CJK> +0x6E8F # <CJK> 0x6E90 # <CJK> 0x6E96 # <CJK> +0x6E98 # <CJK> +0x6E9C # <CJK> 0x6E9D # <CJK> +0x6E9F # <CJK> +0x6EA2 # <CJK> +0x6EA5 # <CJK> +0x6EAA # <CJK> +0x6EAF # <CJK> +0x6EB2 # <CJK> 0x6EB6 # <CJK> +0x6EB7 # <CJK> 0x6EBA # <CJK> +0x6EBD # <CJK> +0x6EC2 # <CJK> +0x6EC4 # <CJK> 0x6EC5 # <CJK> +0x6EC9 # <CJK> 0x6ECB # <CJK> +0x6ECC # <CJK> 0x6ED1 # <CJK> +0x6ED3 # <CJK> +0x6ED4 # <CJK> +0x6ED5 # <CJK> 0x6EDD # <CJK> 0x6EDE # <CJK> +0x6EEC # <CJK> +0x6EEF # <CJK> +0x6EF2 # <CJK> 0x6EF4 # <CJK> +0x6EF7 # <CJK> +0x6EF8 # <CJK> +0x6EFE # <CJK> +0x6EFF # <CJK> 0x6F01 # <CJK> 0x6F02 # <CJK> 0x6F06 # <CJK> +0x6F09 # <CJK> 0x6F0F # <CJK> +0x6F11 # <CJK> +0x6F13 # <CJK> 0x6F14 # <CJK> +0x6F15 # <CJK> 0x6F20 # <CJK> 0x6F22 # <CJK> +0x6F23 # <CJK> 0x6F2B # <CJK> 0x6F2C # <CJK> +0x6F31 # <CJK> +0x6F32 # <CJK> 0x6F38 # <CJK> +0x6F3E # <CJK> +0x6F3F # <CJK> +0x6F41 # <CJK> +0x6F45 # <CJK> 0x6F54 # <CJK> +0x6F58 # <CJK> +0x6F5B # <CJK> 0x6F5C # <CJK> 0x6F5F # <CJK> 0x6F64 # <CJK> +0x6F66 # <CJK> +0x6F6D # <CJK> 0x6F6E # <CJK> +0x6F6F # <CJK> 0x6F70 # <CJK> +0x6F74 # <CJK> +0x6F78 # <CJK> +0x6F7A # <CJK> +0x6F7C # <CJK> +0x6F80 # <CJK> +0x6F81 # <CJK> +0x6F82 # <CJK> 0x6F84 # <CJK> +0x6F86 # <CJK> +0x6F8E # <CJK> +0x6F91 # <CJK> +0x6F97 # <CJK> +0x6FA1 # <CJK> +0x6FA3 # <CJK> +0x6FA4 # <CJK> +0x6FAA # <CJK> +0x6FB1 # <CJK> +0x6FB3 # <CJK> +0x6FB9 # <CJK> 0x6FC0 # <CJK> 0x6FC1 # <CJK> +0x6FC2 # <CJK> 0x6FC3 # <CJK> +0x6FC6 # <CJK> +0x6FD4 # <CJK> +0x6FD5 # <CJK> +0x6FD8 # <CJK> +0x6FDB # <CJK> +0x6FDF # <CJK> +0x6FE0 # <CJK> +0x6FE1 # <CJK> +0x6FE4 # <CJK> 0x6FEB # <CJK> +0x6FEC # <CJK> +0x6FEE # <CJK> 0x6FEF # <CJK> +0x6FF1 # <CJK> +0x6FF3 # <CJK> +0x6FF6 # <CJK> +0x6FFA # <CJK> +0x6FFE # <CJK> +0x7001 # <CJK> +0x7009 # <CJK> +0x700B # <CJK> +0x700F # <CJK> +0x7011 # <CJK> +0x7015 # <CJK> +0x7018 # <CJK> +0x701A # <CJK> +0x701B # <CJK> +0x701D # <CJK> +0x701E # <CJK> +0x701F # <CJK> +0x7026 # <CJK> +0x7027 # <CJK> 0x702C # <CJK> +0x7030 # <CJK> +0x7032 # <CJK> +0x703E # <CJK> +0x704C # <CJK> +0x7051 # <CJK> +0x7058 # <CJK> +0x7063 # <CJK> 0x706B # <CJK> 0x706F # <CJK> 0x7070 # <CJK> +0x7078 # <CJK> +0x707C # <CJK> 0x707D # <CJK> 0x7089 # <CJK> 0x708A # <CJK> 0x708E # <CJK> +0x7092 # <CJK> +0x7099 # <CJK> +0x70AC # <CJK> 0x70AD # <CJK> +0x70AE # <CJK> +0x70AF # <CJK> +0x70B3 # <CJK> +0x70B8 # <CJK> 0x70B9 # <CJK> 0x70BA # <CJK> 0x70C8 # <CJK> +0x70CB # <CJK> +0x70CF # <CJK> +0x70D9 # <CJK> +0x70DD # <CJK> +0x70DF # <CJK> +0x70F1 # <CJK> +0x70F9 # <CJK> +0x70FD # <CJK> +0x7109 # <CJK> +0x7114 # <CJK> +0x7119 # <CJK> +0x711A # <CJK> +0x711C # <CJK> 0x7121 # <CJK> 0x7126 # <CJK> 0x7136 # <CJK> 0x713C # <CJK> +0x7149 # <CJK> +0x714C # <CJK> 0x714E # <CJK> +0x7155 # <CJK> +0x7156 # <CJK> 0x7159 # <CJK> +0x7162 # <CJK> +0x7164 # <CJK> +0x7165 # <CJK> +0x7166 # <CJK> 0x7167 # <CJK> 0x7169 # <CJK> +0x716C # <CJK> 0x716E # <CJK> +0x717D # <CJK> +0x7184 # <CJK> +0x7188 # <CJK> 0x718A # <CJK> +0x718F # <CJK> +0x7194 # <CJK> +0x7195 # <CJK> +#0x7199 # <CJK> # not in kochi fonts 0x719F # <CJK> +0x71A8 # <CJK> +0x71AC # <CJK> 0x71B1 # <CJK> +0x71B9 # <CJK> +0x71BE # <CJK> 0x71C3 # <CJK> +0x71C8 # <CJK> +0x71C9 # <CJK> +0x71CE # <CJK> +0x71D0 # <CJK> +0x71D2 # <CJK> +0x71D4 # <CJK> +0x71D5 # <CJK> +0x71D7 # <CJK> +0x71DF # <CJK> +0x71E0 # <CJK> 0x71E5 # <CJK> +0x71E6 # <CJK> +0x71E7 # <CJK> +0x71EC # <CJK> +0x71ED # <CJK> +0x71EE # <CJK> +0x71F5 # <CJK> +0x71F9 # <CJK> +0x71FB # <CJK> +0x71FC # <CJK> +0x71FF # <CJK> 0x7206 # <CJK> +0x720D # <CJK> +0x7210 # <CJK> +0x721B # <CJK> +0x7228 # <CJK> 0x722A # <CJK> +0x722C # <CJK> +0x722D # <CJK> +0x7230 # <CJK> +0x7232 # <CJK> 0x7235 # <CJK> 0x7236 # <CJK> +0x723A # <CJK> +0x723B # <CJK> +0x723C # <CJK> 0x723D # <CJK> +0x723E # <CJK> +0x723F # <CJK> +0x7240 # <CJK> +0x7246 # <CJK> 0x7247 # <CJK> 0x7248 # <CJK> +0x724B # <CJK> +0x724C # <CJK> +0x7252 # <CJK> +0x7258 # <CJK> 0x7259 # <CJK> 0x725B # <CJK> +0x725D # <CJK> +0x725F # <CJK> +0x7261 # <CJK> +0x7262 # <CJK> 0x7267 # <CJK> 0x7269 # <CJK> 0x7272 # <CJK> +0x7274 # <CJK> 0x7279 # <CJK> +0x727D # <CJK> +0x727E # <CJK> +0x7280 # <CJK> +0x7281 # <CJK> +0x7282 # <CJK> +0x7287 # <CJK> +0x7292 # <CJK> +0x7296 # <CJK> 0x72A0 # <CJK> +0x72A2 # <CJK> +0x72A7 # <CJK> 0x72AC # <CJK> 0x72AF # <CJK> +0x72B2 # <CJK> 0x72B6 # <CJK> +0x72B9 # <CJK> 0x72C2 # <CJK> +0x72C3 # <CJK> +0x72C4 # <CJK> +0x72C6 # <CJK> +0x72CE # <CJK> +0x72D0 # <CJK> +0x72D2 # <CJK> +0x72D7 # <CJK> 0x72D9 # <CJK> +0x72DB # <CJK> +0x72E0 # <CJK> +0x72E1 # <CJK> +0x72E2 # <CJK> 0x72E9 # <CJK> 0x72EC # <CJK> 0x72ED # <CJK> +0x72F7 # <CJK> +0x72F8 # <CJK> +0x72F9 # <CJK> +0x72FC # <CJK> +0x72FD # <CJK> +0x730A # <CJK> +0x7316 # <CJK> +0x7317 # <CJK> 0x731B # <CJK> +0x731C # <CJK> +0x731D # <CJK> 0x731F # <CJK> +0x7325 # <CJK> +0x7329 # <CJK> +0x732A # <CJK> 0x732B # <CJK> 0x732E # <CJK> +0x732F # <CJK> +0x7334 # <CJK> 0x7336 # <CJK> +0x7337 # <CJK> +0x733E # <CJK> 0x733F # <CJK> 0x7344 # <CJK> +0x7345 # <CJK> +0x734E # <CJK> +0x734F # <CJK> +0x7357 # <CJK> 0x7363 # <CJK> +0x7368 # <CJK> +0x736A # <CJK> +0x7370 # <CJK> 0x7372 # <CJK> +0x7375 # <CJK> +0x7378 # <CJK> +0x737A # <CJK> +0x737B # <CJK> 0x7384 # <CJK> 0x7387 # <CJK> 0x7389 # <CJK> 0x738B # <CJK> +0x7396 # <CJK> 0x73A9 # <CJK> +0x73B2 # <CJK> +0x73B3 # <CJK> +0x73BB # <CJK> +0x73C0 # <CJK> +0x73C2 # <CJK> +0x73C8 # <CJK> +0x73CA # <CJK> 0x73CD # <CJK> +0x73CE # <CJK> +0x73DE # <CJK> 0x73E0 # <CJK> +0x73E5 # <CJK> +0x73EA # <CJK> 0x73ED # <CJK> +0x73EE # <CJK> +0x73F1 # <CJK> +0x73F8 # <CJK> 0x73FE # <CJK> 0x7403 # <CJK> +0x7405 # <CJK> 0x7406 # <CJK> +0x7409 # <CJK> +0x7422 # <CJK> +0x7425 # <CJK> +0x7432 # <CJK> +0x7433 # <CJK> 0x7434 # <CJK> +0x7435 # <CJK> +0x7436 # <CJK> +0x743A # <CJK> +0x743F # <CJK> +0x7441 # <CJK> +0x7455 # <CJK> +0x7459 # <CJK> +0x745A # <CJK> +0x745B # <CJK> +0x745C # <CJK> +0x745E # <CJK> +0x745F # <CJK> 0x7460 # <CJK> +0x7463 # <CJK> +0x7464 # <CJK> +0x7469 # <CJK> +0x746A # <CJK> +0x746F # <CJK> +0x7470 # <CJK> +0x7473 # <CJK> +0x7476 # <CJK> +0x747E # <CJK> 0x7483 # <CJK> +0x748B # <CJK> +0x749E # <CJK> +0x74A2 # <CJK> 0x74A7 # <CJK> 0x74B0 # <CJK> 0x74BD # <CJK> +0x74CA # <CJK> +0x74CF # <CJK> +0x74D4 # <CJK> +0x74DC # <CJK> +0x74E0 # <CJK> +0x74E2 # <CJK> +0x74E3 # <CJK> 0x74E6 # <CJK> +0x74E7 # <CJK> +0x74E9 # <CJK> +0x74EE # <CJK> +0x74F0 # <CJK> +0x74F1 # <CJK> +0x74F2 # <CJK> 0x74F6 # <CJK> +0x74F7 # <CJK> +0x74F8 # <CJK> +0x7503 # <CJK> +0x7504 # <CJK> +0x7505 # <CJK> +0x750C # <CJK> +0x750D # <CJK> +0x750E # <CJK> +0x7511 # <CJK> +0x7513 # <CJK> +0x7515 # <CJK> 0x7518 # <CJK> 0x751A # <CJK> +0x751C # <CJK> +0x751E # <CJK> 0x751F # <CJK> 0x7523 # <CJK> +0x7525 # <CJK> +0x7526 # <CJK> 0x7528 # <CJK> +0x752B # <CJK> +0x752C # <CJK> 0x7530 # <CJK> 0x7531 # <CJK> 0x7532 # <CJK> 0x7533 # <CJK> 0x7537 # <CJK> +0x7538 # <CJK> 0x753A # <CJK> 0x753B # <CJK> +0x753C # <CJK> +0x7544 # <CJK> +0x7546 # <CJK> +0x7549 # <CJK> +0x754A # <CJK> +0x754B # <CJK> 0x754C # <CJK> +0x754D # <CJK> 0x754F # <CJK> 0x7551 # <CJK> 0x7554 # <CJK> 0x7559 # <CJK> +0x755A # <CJK> +0x755B # <CJK> 0x755C # <CJK> 0x755D # <CJK> +0x7560 # <CJK> +0x7562 # <CJK> +0x7564 # <CJK> 0x7565 # <CJK> +0x7566 # <CJK> +0x7567 # <CJK> +0x7569 # <CJK> 0x756A # <CJK> +0x756B # <CJK> +0x756D # <CJK> 0x7570 # <CJK> 0x7573 # <CJK> +0x7574 # <CJK> +0x7576 # <CJK> +0x7577 # <CJK> +0x7578 # <CJK> 0x757F # <CJK> +0x7582 # <CJK> +0x7586 # <CJK> +0x7587 # <CJK> +0x7589 # <CJK> +0x758A # <CJK> +0x758B # <CJK> 0x758E # <CJK> +0x758F # <CJK> 0x7591 # <CJK> +0x7594 # <CJK> +0x759A # <CJK> +0x759D # <CJK> +0x75A3 # <CJK> +0x75A5 # <CJK> 0x75AB # <CJK> +0x75B1 # <CJK> 0x75B2 # <CJK> +0x75B3 # <CJK> +0x75B5 # <CJK> +0x75B8 # <CJK> +0x75B9 # <CJK> +0x75BC # <CJK> +0x75BD # <CJK> 0x75BE # <CJK> +0x75C2 # <CJK> +0x75C3 # <CJK> 0x75C5 # <CJK> 0x75C7 # <CJK> +0x75CA # <CJK> +0x75CD # <CJK> +0x75D2 # <CJK> +0x75D4 # <CJK> 0x75D5 # <CJK> 0x75D8 # <CJK> +0x75D9 # <CJK> 0x75DB # <CJK> +0x75DE # <CJK> 0x75E2 # <CJK> +0x75E3 # <CJK> 0x75E9 # <CJK> +0x75F0 # <CJK> +0x75F2 # <CJK> +0x75F3 # <CJK> 0x75F4 # <CJK> +0x75FA # <CJK> +0x75FC # <CJK> +0x75FE # <CJK> +0x75FF # <CJK> +0x7601 # <CJK> +0x7609 # <CJK> +0x760B # <CJK> 0x760D # <CJK> +0x761F # <CJK> +0x7620 # <CJK> +0x7621 # <CJK> +0x7622 # <CJK> +0x7624 # <CJK> +0x7627 # <CJK> +0x7630 # <CJK> +0x7634 # <CJK> +0x763B # <CJK> 0x7642 # <CJK> +0x7646 # <CJK> +0x7647 # <CJK> +0x7648 # <CJK> +0x764C # <CJK> 0x7652 # <CJK> 0x7656 # <CJK> +0x7658 # <CJK> +0x765C # <CJK> +0x7661 # <CJK> +0x7662 # <CJK> +0x7667 # <CJK> +0x7668 # <CJK> +0x7669 # <CJK> +0x766A # <CJK> +0x766C # <CJK> +0x7670 # <CJK> +0x7672 # <CJK> +0x7676 # <CJK> +0x7678 # <CJK> 0x767A # <CJK> 0x767B # <CJK> +0x767C # <CJK> 0x767D # <CJK> 0x767E # <CJK> +0x7680 # <CJK> +0x7683 # <CJK> 0x7684 # <CJK> 0x7686 # <CJK> 0x7687 # <CJK> +0x7688 # <CJK> +0x768B # <CJK> +0x768E # <CJK> +0x7690 # <CJK> +0x7693 # <CJK> +0x7696 # <CJK> +0x7699 # <CJK> +0x769A # <CJK> 0x76AE # <CJK> +0x76B0 # <CJK> +0x76B4 # <CJK> +0x76B7 # <CJK> +0x76B8 # <CJK> +0x76B9 # <CJK> +0x76BA # <CJK> 0x76BF # <CJK> +0x76C2 # <CJK> +0x76C3 # <CJK> 0x76C6 # <CJK> +0x76C8 # <CJK> 0x76CA # <CJK> +0x76CD # <CJK> +0x76D2 # <CJK> +0x76D6 # <CJK> 0x76D7 # <CJK> 0x76DB # <CJK> +0x76DC # <CJK> +0x76DE # <CJK> 0x76DF # <CJK> +0x76E1 # <CJK> 0x76E3 # <CJK> 0x76E4 # <CJK> +0x76E5 # <CJK> +0x76E7 # <CJK> +0x76EA # <CJK> 0x76EE # <CJK> 0x76F2 # <CJK> 0x76F4 # <CJK> 0x76F8 # <CJK> +0x76FB # <CJK> 0x76FE # <CJK> 0x7701 # <CJK> +0x7704 # <CJK> +0x7707 # <CJK> +0x7708 # <CJK> 0x7709 # <CJK> 0x770B # <CJK> 0x770C # <CJK> +0x771B # <CJK> +0x771E # <CJK> 0x771F # <CJK> 0x7720 # <CJK> +0x7724 # <CJK> +0x7725 # <CJK> +0x7726 # <CJK> +0x7729 # <CJK> +0x7737 # <CJK> +0x7738 # <CJK> 0x773A # <CJK> 0x773C # <CJK> 0x7740 # <CJK> +0x7747 # <CJK> +0x775A # <CJK> +0x775B # <CJK> 0x7761 # <CJK> 0x7763 # <CJK> +0x7765 # <CJK> 0x7766 # <CJK> +0x7768 # <CJK> +0x776B # <CJK> +0x7779 # <CJK> +0x777E # <CJK> +0x777F # <CJK> +0x778B # <CJK> +0x778E # <CJK> +0x7791 # <CJK> +0x779E # <CJK> +0x77A0 # <CJK> +0x77A5 # <CJK> 0x77AC # <CJK> 0x77AD # <CJK> +0x77B0 # <CJK> 0x77B3 # <CJK> +0x77B6 # <CJK> +0x77B9 # <CJK> +0x77BB # <CJK> +0x77BC # <CJK> +0x77BD # <CJK> +0x77BF # <CJK> +0x77C7 # <CJK> +0x77CD # <CJK> +0x77D7 # <CJK> +0x77DA # <CJK> 0x77DB # <CJK> +0x77DC # <CJK> 0x77E2 # <CJK> +0x77E3 # <CJK> 0x77E5 # <CJK> +0x77E7 # <CJK> +0x77E9 # <CJK> 0x77ED # <CJK> +0x77EE # <CJK> 0x77EF # <CJK> 0x77F3 # <CJK> +0x77FC # <CJK> 0x7802 # <CJK> +0x780C # <CJK> +0x7812 # <CJK> 0x7814 # <CJK> 0x7815 # <CJK> +0x7820 # <CJK> +0x7825 # <CJK> +0x7826 # <CJK> +0x7827 # <CJK> 0x7832 # <CJK> 0x7834 # <CJK> +0x783A # <CJK> +0x783F # <CJK> +0x7845 # <CJK> 0x785D # <CJK> 0x786B # <CJK> 0x786C # <CJK> +0x786F # <CJK> +0x7872 # <CJK> +0x7874 # <CJK> +0x787C # <CJK> 0x7881 # <CJK> +0x7886 # <CJK> +0x7887 # <CJK> +0x788C # <CJK> +0x788D # <CJK> +0x788E # <CJK> 0x7891 # <CJK> +0x7893 # <CJK> +0x7895 # <CJK> +0x7897 # <CJK> +0x789A # <CJK> +0x78A3 # <CJK> +0x78A7 # <CJK> +0x78A9 # <CJK> +0x78AA # <CJK> +0x78AF # <CJK> +0x78B5 # <CJK> 0x78BA # <CJK> +0x78BC # <CJK> +0x78BE # <CJK> 0x78C1 # <CJK> +0x78C5 # <CJK> +0x78C6 # <CJK> +0x78CA # <CJK> +0x78CB # <CJK> +0x78D0 # <CJK> +0x78D1 # <CJK> +0x78D4 # <CJK> +0x78DA # <CJK> +0x78E7 # <CJK> 0x78E8 # <CJK> +0x78EC # <CJK> +0x78EF # <CJK> +0x78F4 # <CJK> +0x78FD # <CJK> 0x7901 # <CJK> +0x7907 # <CJK> 0x790E # <CJK> +0x7911 # <CJK> +0x7912 # <CJK> +0x7919 # <CJK> +0x7926 # <CJK> +0x792A # <CJK> +0x792B # <CJK> +0x792C # <CJK> 0x793A # <CJK> 0x793C # <CJK> 0x793E # <CJK> +0x7940 # <CJK> +0x7941 # <CJK> +0x7947 # <CJK> 0x7948 # <CJK> 0x7949 # <CJK> +0x7950 # <CJK> +0x7953 # <CJK> +0x7955 # <CJK> 0x7956 # <CJK> +0x7957 # <CJK> +0x795A # <CJK> 0x795D # <CJK> 0x795E # <CJK> +0x795F # <CJK> +0x7960 # <CJK> +0x7962 # <CJK> 0x7965 # <CJK> 0x7968 # <CJK> 0x796D # <CJK> +0x7977 # <CJK> +0x797A # <CJK> +0x797F # <CJK> +0x7980 # <CJK> 0x7981 # <CJK> +0x7984 # <CJK> 0x7985 # <CJK> +0x798A # <CJK> 0x798D # <CJK> +0x798E # <CJK> 0x798F # <CJK> +0x799D # <CJK> +0x79A6 # <CJK> +0x79A7 # <CJK> +0x79AA # <CJK> +0x79AE # <CJK> +0x79B0 # <CJK> +0x79B3 # <CJK> +0x79B9 # <CJK> +0x79BA # <CJK> +0x79BD # <CJK> +0x79BE # <CJK> +0x79BF # <CJK> 0x79C0 # <CJK> 0x79C1 # <CJK> +0x79C9 # <CJK> 0x79CB # <CJK> 0x79D1 # <CJK> 0x79D2 # <CJK> +0x79D5 # <CJK> 0x79D8 # <CJK> 0x79DF # <CJK> +0x79E1 # <CJK> +0x79E3 # <CJK> +0x79E4 # <CJK> +0x79E6 # <CJK> +0x79E7 # <CJK> 0x79E9 # <CJK> +0x79EC # <CJK> 0x79F0 # <CJK> 0x79FB # <CJK> +0x7A00 # <CJK> +0x7A08 # <CJK> 0x7A0B # <CJK> +0x7A0D # <CJK> 0x7A0E # <CJK> +0x7A14 # <CJK> +0x7A17 # <CJK> +0x7A18 # <CJK> +0x7A19 # <CJK> 0x7A1A # <CJK> +0x7A1C # <CJK> +0x7A1F # <CJK> +0x7A20 # <CJK> 0x7A2E # <CJK> +0x7A31 # <CJK> 0x7A32 # <CJK> +0x7A37 # <CJK> +0x7A3B # <CJK> 0x7A3C # <CJK> 0x7A3D # <CJK> +0x7A3E # <CJK> 0x7A3F # <CJK> 0x7A40 # <CJK> 0x7A42 # <CJK> +0x7A43 # <CJK> +0x7A46 # <CJK> +0x7A49 # <CJK> 0x7A4D # <CJK> +0x7A4E # <CJK> 0x7A4F # <CJK> +0x7A50 # <CJK> +0x7A57 # <CJK> +0x7A61 # <CJK> +0x7A62 # <CJK> +0x7A63 # <CJK> +0x7A69 # <CJK> 0x7A6B # <CJK> +0x7A70 # <CJK> 0x7A74 # <CJK> 0x7A76 # <CJK> +0x7A79 # <CJK> 0x7A7A # <CJK> +0x7A7D # <CJK> +0x7A7F # <CJK> 0x7A81 # <CJK> 0x7A83 # <CJK> +0x7A84 # <CJK> +0x7A88 # <CJK> 0x7A92 # <CJK> 0x7A93 # <CJK> +0x7A95 # <CJK> +0x7A96 # <CJK> +0x7A97 # <CJK> +0x7A98 # <CJK> 0x7A9F # <CJK> +0x7AA9 # <CJK> +0x7AAA # <CJK> 0x7AAE # <CJK> 0x7AAF # <CJK> +0x7AB0 # <CJK> +0x7AB6 # <CJK> +0x7ABA # <CJK> +0x7ABF # <CJK> +0x7AC3 # <CJK> +0x7AC4 # <CJK> +0x7AC5 # <CJK> +0x7AC7 # <CJK> +0x7AC8 # <CJK> +0x7ACA # <CJK> 0x7ACB # <CJK> +0x7ACD # <CJK> +0x7ACF # <CJK> +0x7AD2 # <CJK> +0x7AD3 # <CJK> +0x7AD5 # <CJK> +0x7AD9 # <CJK> +0x7ADA # <CJK> 0x7ADC # <CJK> +0x7ADD # <CJK> +0x7ADF # <CJK> 0x7AE0 # <CJK> +0x7AE1 # <CJK> +0x7AE2 # <CJK> +0x7AE3 # <CJK> 0x7AE5 # <CJK> +0x7AE6 # <CJK> +0x7AEA # <CJK> +0x7AED # <CJK> 0x7AEF # <CJK> +0x7AF0 # <CJK> 0x7AF6 # <CJK> +0x7AF8 # <CJK> 0x7AF9 # <CJK> +0x7AFA # <CJK> +0x7AFF # <CJK> +0x7B02 # <CJK> +0x7B04 # <CJK> +0x7B06 # <CJK> +0x7B08 # <CJK> +0x7B0A # <CJK> +0x7B0B # <CJK> +0x7B0F # <CJK> 0x7B11 # <CJK> +0x7B18 # <CJK> +0x7B19 # <CJK> 0x7B1B # <CJK> +0x7B1E # <CJK> +0x7B20 # <CJK> +0x7B25 # <CJK> 0x7B26 # <CJK> +0x7B28 # <CJK> 0x7B2C # <CJK> +0x7B33 # <CJK> +0x7B35 # <CJK> +0x7B36 # <CJK> +0x7B39 # <CJK> +0x7B45 # <CJK> 0x7B46 # <CJK> +0x7B48 # <CJK> 0x7B49 # <CJK> 0x7B4B # <CJK> +0x7B4C # <CJK> +0x7B4D # <CJK> +0x7B4F # <CJK> +0x7B50 # <CJK> +0x7B51 # <CJK> 0x7B52 # <CJK> 0x7B54 # <CJK> 0x7B56 # <CJK> +0x7B5D # <CJK> +0x7B65 # <CJK> +0x7B67 # <CJK> +0x7B6C # <CJK> +0x7B6E # <CJK> +0x7B70 # <CJK> +0x7B71 # <CJK> +0x7B74 # <CJK> +0x7B75 # <CJK> +0x7B7A # <CJK> +0x7B86 # <CJK> 0x7B87 # <CJK> 0x7B8B # <CJK> +0x7B8D # <CJK> +0x7B8F # <CJK> +0x7B92 # <CJK> +0x7B94 # <CJK> +0x7B95 # <CJK> 0x7B97 # <CJK> +0x7B98 # <CJK> +0x7B99 # <CJK> +0x7B9A # <CJK> +0x7B9C # <CJK> +0x7B9D # <CJK> +0x7B9F # <CJK> 0x7BA1 # <CJK> +0x7BAA # <CJK> +0x7BAD # <CJK> 0x7BB1 # <CJK> +0x7BB4 # <CJK> 0x7BB8 # <CJK> 0x7BC0 # <CJK> +0x7BC1 # <CJK> 0x7BC4 # <CJK> +0x7BC6 # <CJK> +0x7BC7 # <CJK> 0x7BC9 # <CJK> +0x7BCB # <CJK> +0x7BCC # <CJK> +0x7BCF # <CJK> +0x7BDD # <CJK> +0x7BE0 # <CJK> 0x7BE4 # <CJK> +0x7BE5 # <CJK> +0x7BE6 # <CJK> +0x7BE9 # <CJK> +0x7BED # <CJK> +0x7BF3 # <CJK> +0x7BF6 # <CJK> +0x7BF7 # <CJK> +0x7C00 # <CJK> +0x7C07 # <CJK> +0x7C0D # <CJK> +0x7C11 # <CJK> +0x7C12 # <CJK> +0x7C13 # <CJK> +0x7C14 # <CJK> +0x7C17 # <CJK> +0x7C1F # <CJK> 0x7C21 # <CJK> +0x7C23 # <CJK> +0x7C27 # <CJK> +0x7C2A # <CJK> +0x7C2B # <CJK> +0x7C37 # <CJK> +0x7C38 # <CJK> +0x7C3D # <CJK> +0x7C3E # <CJK> 0x7C3F # <CJK> +0x7C40 # <CJK> +0x7C43 # <CJK> +0x7C4C # <CJK> 0x7C4D # <CJK> +0x7C4F # <CJK> +0x7C50 # <CJK> +0x7C54 # <CJK> +0x7C56 # <CJK> +0x7C58 # <CJK> +0x7C5F # <CJK> 0x7C60 # <CJK> +0x7C64 # <CJK> +0x7C65 # <CJK> +0x7C6C # <CJK> 0x7C73 # <CJK> +0x7C75 # <CJK> +0x7C7E # <CJK> +0x7C81 # <CJK> +0x7C82 # <CJK> +0x7C83 # <CJK> 0x7C89 # <CJK> 0x7C8B # <CJK> +0x7C8D # <CJK> +0x7C90 # <CJK> 0x7C92 # <CJK> +0x7C95 # <CJK> 0x7C97 # <CJK> 0x7C98 # <CJK> 0x7C9B # <CJK> +0x7C9F # <CJK> +0x7CA1 # <CJK> +0x7CA2 # <CJK> +0x7CA4 # <CJK> +0x7CA5 # <CJK> 0x7CA7 # <CJK> +0x7CA8 # <CJK> +0x7CAB # <CJK> +0x7CAD # <CJK> +0x7CAE # <CJK> +0x7CB1 # <CJK> +0x7CB2 # <CJK> +0x7CB3 # <CJK> +0x7CB9 # <CJK> +0x7CBD # <CJK> 0x7CBE # <CJK> +0x7CC0 # <CJK> +0x7CC2 # <CJK> +0x7CC5 # <CJK> +0x7CCA # <CJK> +0x7CCE # <CJK> +0x7CD2 # <CJK> 0x7CD6 # <CJK> +0x7CD8 # <CJK> +0x7CDC # <CJK> +0x7CDE # <CJK> +0x7CDF # <CJK> +0x7CE0 # <CJK> +0x7CE2 # <CJK> 0x7CE7 # <CJK> +0x7CEF # <CJK> +0x7CF2 # <CJK> +0x7CF4 # <CJK> +0x7CF6 # <CJK> 0x7CF8 # <CJK> +0x7CFA # <CJK> 0x7CFB # <CJK> 0x7CFE # <CJK> 0x7D00 # <CJK> +0x7D02 # <CJK> 0x7D04 # <CJK> 0x7D05 # <CJK> +0x7D06 # <CJK> +0x7D0A # <CJK> 0x7D0B # <CJK> 0x7D0D # <CJK> +0x7D10 # <CJK> 0x7D14 # <CJK> +0x7D15 # <CJK> +0x7D17 # <CJK> +0x7D18 # <CJK> 0x7D19 # <CJK> 0x7D1A # <CJK> 0x7D1B # <CJK> +0x7D1C # <CJK> 0x7D20 # <CJK> 0x7D21 # <CJK> 0x7D22 # <CJK> 0x7D2B # <CJK> +0x7D2C # <CJK> +0x7D2E # <CJK> 0x7D2F # <CJK> 0x7D30 # <CJK> +0x7D32 # <CJK> 0x7D33 # <CJK> +0x7D35 # <CJK> 0x7D39 # <CJK> 0x7D3A # <CJK> +0x7D3F # <CJK> 0x7D42 # <CJK> +0x7D43 # <CJK> 0x7D44 # <CJK> +0x7D45 # <CJK> +0x7D46 # <CJK> +0x7D4B # <CJK> 0x7D4C # <CJK> +0x7D4E # <CJK> +0x7D4F # <CJK> 0x7D50 # <CJK> +0x7D56 # <CJK> +0x7D5B # <CJK> 0x7D5E # <CJK> 0x7D61 # <CJK> +0x7D62 # <CJK> +0x7D63 # <CJK> 0x7D66 # <CJK> +0x7D68 # <CJK> +0x7D6E # <CJK> 0x7D71 # <CJK> +0x7D72 # <CJK> +0x7D73 # <CJK> 0x7D75 # <CJK> 0x7D76 # <CJK> 0x7D79 # <CJK> +0x7D7D # <CJK> +0x7D89 # <CJK> +0x7D8F # <CJK> +0x7D93 # <CJK> 0x7D99 # <CJK> 0x7D9A # <CJK> +0x7D9B # <CJK> +0x7D9C # <CJK> +0x7D9F # <CJK> +0x7DA2 # <CJK> +0x7DA3 # <CJK> +0x7DAB # <CJK> +0x7DAC # <CJK> 0x7DAD # <CJK> +0x7DAE # <CJK> +0x7DAF # <CJK> +0x7DB0 # <CJK> 0x7DB1 # <CJK> 0x7DB2 # <CJK> +0x7DB4 # <CJK> +0x7DB5 # <CJK> +0x7DB8 # <CJK> +0x7DBA # <CJK> 0x7DBB # <CJK> +0x7DBD # <CJK> +0x7DBE # <CJK> 0x7DBF # <CJK> +0x7DC7 # <CJK> 0x7DCA # <CJK> +0x7DCB # <CJK> 0x7DCF # <CJK> 0x7DD1 # <CJK> 0x7DD2 # <CJK> +0x7DD5 # <CJK> +0x7DD8 # <CJK> 0x7DDA # <CJK> +0x7DDC # <CJK> +0x7DDD # <CJK> +0x7DDE # <CJK> 0x7DE0 # <CJK> +0x7DE1 # <CJK> +0x7DE4 # <CJK> 0x7DE8 # <CJK> 0x7DE9 # <CJK> +0x7DEC # <CJK> 0x7DEF # <CJK> +0x7DF2 # <CJK> 0x7DF4 # <CJK> 0x7DFB # <CJK> 0x7E01 # <CJK> 0x7E04 # <CJK> +0x7E05 # <CJK> +0x7E09 # <CJK> +0x7E0A # <CJK> +0x7E0B # <CJK> +0x7E12 # <CJK> 0x7E1B # <CJK> +0x7E1E # <CJK> +0x7E1F # <CJK> +0x7E21 # <CJK> +0x7E22 # <CJK> +0x7E23 # <CJK> 0x7E26 # <CJK> 0x7E2B # <CJK> 0x7E2E # <CJK> +0x7E31 # <CJK> +0x7E32 # <CJK> +0x7E35 # <CJK> +0x7E37 # <CJK> +0x7E39 # <CJK> +0x7E3A # <CJK> +0x7E3B # <CJK> +0x7E3D # <CJK> 0x7E3E # <CJK> 0x7E41 # <CJK> +0x7E43 # <CJK> +0x7E46 # <CJK> 0x7E4A # <CJK> +0x7E4B # <CJK> +0x7E4D # <CJK> 0x7E54 # <CJK> 0x7E55 # <CJK> +0x7E56 # <CJK> +0x7E59 # <CJK> +0x7E5A # <CJK> +0x7E5D # <CJK> +0x7E5E # <CJK> +0x7E66 # <CJK> +0x7E67 # <CJK> +0x7E69 # <CJK> +0x7E6A # <CJK> 0x7E6D # <CJK> 0x7E70 # <CJK> +0x7E79 # <CJK> +0x7E7B # <CJK> +0x7E7C # <CJK> +0x7E7D # <CJK> +0x7E7F # <CJK> +0x7E82 # <CJK> +0x7E83 # <CJK> +0x7E88 # <CJK> +0x7E89 # <CJK> +0x7E8C # <CJK> +0x7E8E # <CJK> +0x7E8F # <CJK> +0x7E90 # <CJK> +0x7E92 # <CJK> +0x7E93 # <CJK> +0x7E94 # <CJK> +0x7E96 # <CJK> +0x7E9B # <CJK> +0x7E9C # <CJK> 0x7F36 # <CJK> +0x7F38 # <CJK> +0x7F3A # <CJK> +0x7F45 # <CJK> +0x7F4C # <CJK> +0x7F4D # <CJK> +0x7F4E # <CJK> +0x7F50 # <CJK> +0x7F51 # <CJK> +0x7F54 # <CJK> +0x7F55 # <CJK> +0x7F58 # <CJK> +0x7F5F # <CJK> +0x7F60 # <CJK> +0x7F67 # <CJK> +0x7F68 # <CJK> +0x7F69 # <CJK> 0x7F6A # <CJK> +0x7F6B # <CJK> 0x7F6E # <CJK> 0x7F70 # <CJK> 0x7F72 # <CJK> 0x7F75 # <CJK> 0x7F77 # <CJK> +0x7F78 # <CJK> +0x7F79 # <CJK> +0x7F82 # <CJK> +0x7F83 # <CJK> 0x7F85 # <CJK> +0x7F86 # <CJK> +0x7F87 # <CJK> +0x7F88 # <CJK> 0x7F8A # <CJK> +0x7F8C # <CJK> 0x7F8E # <CJK> +0x7F94 # <CJK> +0x7F9A # <CJK> +0x7F9D # <CJK> 0x7F9E # <CJK> +0x7FA3 # <CJK> 0x7FA4 # <CJK> 0x7FA8 # <CJK> 0x7FA9 # <CJK> +0x7FAE # <CJK> +0x7FAF # <CJK> +0x7FB2 # <CJK> +0x7FB6 # <CJK> +0x7FB8 # <CJK> +0x7FB9 # <CJK> 0x7FBD # <CJK> 0x7FC1 # <CJK> +0x7FC5 # <CJK> +0x7FC6 # <CJK> +0x7FCA # <CJK> 0x7FCC # <CJK> 0x7FD2 # <CJK> +0x7FD4 # <CJK> +0x7FD5 # <CJK> +0x7FE0 # <CJK> +0x7FE1 # <CJK> +0x7FE6 # <CJK> +0x7FE9 # <CJK> +0x7FEB # <CJK> +0x7FF0 # <CJK> +0x7FF3 # <CJK> +0x7FF9 # <CJK> 0x7FFB # <CJK> 0x7FFC # <CJK> +0x8000 # <CJK> 0x8001 # <CJK> 0x8003 # <CJK> +0x8004 # <CJK> 0x8005 # <CJK> +0x8006 # <CJK> +0x800B # <CJK> +0x800C # <CJK> 0x8010 # <CJK> +0x8012 # <CJK> 0x8015 # <CJK> 0x8017 # <CJK> +0x8018 # <CJK> +0x8019 # <CJK> +0x801C # <CJK> +0x8021 # <CJK> +0x8028 # <CJK> 0x8033 # <CJK> +0x8036 # <CJK> +0x803B # <CJK> +0x803D # <CJK> +0x803F # <CJK> +0x8046 # <CJK> +0x804A # <CJK> +0x8052 # <CJK> 0x8056 # <CJK> +0x8058 # <CJK> +0x805A # <CJK> 0x805E # <CJK> +0x805F # <CJK> +0x8061 # <CJK> +0x8062 # <CJK> +0x8068 # <CJK> +0x806F # <CJK> +0x8070 # <CJK> +0x8072 # <CJK> +0x8073 # <CJK> 0x8074 # <CJK> +0x8076 # <CJK> 0x8077 # <CJK> +0x8079 # <CJK> +0x807D # <CJK> +0x807E # <CJK> +0x807F # <CJK> +0x8084 # <CJK> +0x8085 # <CJK> +0x8086 # <CJK> +0x8087 # <CJK> 0x8089 # <CJK> +0x808B # <CJK> 0x808C # <CJK> +0x8093 # <CJK> 0x8096 # <CJK> 0x8098 # <CJK> +0x809A # <CJK> +0x809B # <CJK> 0x809D # <CJK> 0x80A1 # <CJK> 0x80A2 # <CJK> 0x80A5 # <CJK> 0x80A9 # <CJK> 0x80AA # <CJK> +0x80AC # <CJK> +0x80AD # <CJK> 0x80AF # <CJK> +0x80B1 # <CJK> 0x80B2 # <CJK> +0x80B4 # <CJK> 0x80BA # <CJK> 0x80C3 # <CJK> +0x80C4 # <CJK> 0x80C6 # <CJK> 0x80CC # <CJK> 0x80CE # <CJK> +0x80D6 # <CJK> +0x80D9 # <CJK> +0x80DA # <CJK> +0x80DB # <CJK> +0x80DD # <CJK> 0x80DE # <CJK> +0x80E1 # <CJK> +0x80E4 # <CJK> +0x80E5 # <CJK> +0x80EF # <CJK> +0x80F1 # <CJK> 0x80F4 # <CJK> 0x80F8 # <CJK> +0x80FC # <CJK> 0x80FD # <CJK> 0x8102 # <CJK> 0x8105 # <CJK> +0x8106 # <CJK> 0x8107 # <CJK> 0x8108 # <CJK> +0x8109 # <CJK> 0x810A # <CJK> 0x811A # <CJK> +0x811B # <CJK> +0x8123 # <CJK> +0x8129 # <CJK> +0x812F # <CJK> 0x8131 # <CJK> 0x8133 # <CJK> +0x8139 # <CJK> +0x813E # <CJK> +0x8146 # <CJK> +0x814B # <CJK> 0x814E # <CJK> 0x8150 # <CJK> +0x8151 # <CJK> +0x8153 # <CJK> +0x8154 # <CJK> 0x8155 # <CJK> +0x815F # <CJK> +0x8165 # <CJK> +0x8166 # <CJK> 0x816B # <CJK> +0x816E # <CJK> 0x8170 # <CJK> +0x8171 # <CJK> +0x8174 # <CJK> 0x8178 # <CJK> 0x8179 # <CJK> 0x817A # <CJK> +0x817F # <CJK> +0x8180 # <CJK> +0x8182 # <CJK> +0x8183 # <CJK> +0x8188 # <CJK> +0x818A # <CJK> +0x818F # <CJK> +0x8193 # <CJK> +0x8195 # <CJK> 0x819A # <CJK> 0x819C # <CJK> 0x819D # <CJK> +0x81A0 # <CJK> +0x81A3 # <CJK> +0x81A4 # <CJK> 0x81A8 # <CJK> +0x81A9 # <CJK> +0x81B0 # <CJK> 0x81B3 # <CJK> +0x81B5 # <CJK> +0x81B8 # <CJK> +0x81BA # <CJK> +0x81BD # <CJK> +0x81BE # <CJK> +0x81BF # <CJK> +0x81C0 # <CJK> +0x81C2 # <CJK> 0x81C6 # <CJK> +0x81C8 # <CJK> +0x81C9 # <CJK> +0x81CD # <CJK> +0x81D1 # <CJK> 0x81D3 # <CJK> +0x81D8 # <CJK> +0x81D9 # <CJK> +0x81DA # <CJK> +0x81DF # <CJK> +0x81E0 # <CJK> 0x81E3 # <CJK> +0x81E5 # <CJK> +0x81E7 # <CJK> 0x81E8 # <CJK> 0x81EA # <CJK> 0x81ED # <CJK> 0x81F3 # <CJK> 0x81F4 # <CJK> +0x81FA # <CJK> +0x81FB # <CJK> 0x81FC # <CJK> +0x81FE # <CJK> +0x8201 # <CJK> +0x8202 # <CJK> +0x8205 # <CJK> +0x8207 # <CJK> 0x8208 # <CJK> +0x8209 # <CJK> +0x820A # <CJK> 0x820C # <CJK> +0x820D # <CJK> 0x820E # <CJK> +0x8210 # <CJK> +0x8212 # <CJK> +0x8216 # <CJK> 0x8217 # <CJK> +0x8218 # <CJK> +0x821B # <CJK> +0x821C # <CJK> 0x821E # <CJK> 0x821F # <CJK> +0x8229 # <CJK> 0x822A # <CJK> +0x822B # <CJK> 0x822C # <CJK> +0x822E # <CJK> +0x8233 # <CJK> +0x8235 # <CJK> 0x8236 # <CJK> 0x8237 # <CJK> +0x8238 # <CJK> 0x8239 # <CJK> +0x8240 # <CJK> 0x8247 # <CJK> +0x8258 # <CJK> +0x8259 # <CJK> +0x825A # <CJK> +0x825D # <CJK> +0x825F # <CJK> +0x8262 # <CJK> +0x8264 # <CJK> 0x8266 # <CJK> +0x8268 # <CJK> +0x826A # <CJK> +0x826B # <CJK> +0x826E # <CJK> 0x826F # <CJK> +0x8271 # <CJK> 0x8272 # <CJK> 0x8276 # <CJK> +0x8277 # <CJK> +0x8278 # <CJK> +0x827E # <CJK> 0x828B # <CJK> +0x828D # <CJK> +0x8292 # <CJK> +0x8299 # <CJK> 0x829D # <CJK> +0x829F # <CJK> +0x82A5 # <CJK> +0x82A6 # <CJK> +0x82AB # <CJK> +0x82AC # <CJK> +0x82AD # <CJK> 0x82AF # <CJK> 0x82B1 # <CJK> 0x82B3 # <CJK> 0x82B8 # <CJK> +0x82B9 # <CJK> +0x82BB # <CJK> 0x82BD # <CJK> +0x82C5 # <CJK> +0x82D1 # <CJK> +0x82D2 # <CJK> +0x82D3 # <CJK> +0x82D4 # <CJK> 0x82D7 # <CJK> +0x82D9 # <CJK> 0x82DB # <CJK> +0x82DC # <CJK> +0x82DE # <CJK> +0x82DF # <CJK> +0x82E1 # <CJK> +0x82E3 # <CJK> 0x82E5 # <CJK> 0x82E6 # <CJK> +0x82E7 # <CJK> +0x82EB # <CJK> 0x82F1 # <CJK> +0x82F3 # <CJK> +0x82F4 # <CJK> +0x82F9 # <CJK> +0x82FA # <CJK> +0x82FB # <CJK> 0x8302 # <CJK> +0x8303 # <CJK> +0x8304 # <CJK> +0x8305 # <CJK> +0x8306 # <CJK> +0x8309 # <CJK> 0x830E # <CJK> +0x8316 # <CJK> +0x8317 # <CJK> +0x8318 # <CJK> +0x831C # <CJK> +0x8323 # <CJK> 0x8328 # <CJK> +0x832B # <CJK> +0x832F # <CJK> +0x8331 # <CJK> +0x8332 # <CJK> +0x8334 # <CJK> +0x8335 # <CJK> 0x8336 # <CJK> +0x8338 # <CJK> +0x8339 # <CJK> +0x8340 # <CJK> +0x8345 # <CJK> 0x8349 # <CJK> +0x834A # <CJK> +0x834F # <CJK> +0x8350 # <CJK> 0x8352 # <CJK> 0x8358 # <CJK> +0x8373 # <CJK> +0x8375 # <CJK> 0x8377 # <CJK> +0x837B # <CJK> +0x837C # <CJK> +0x8385 # <CJK> +0x8387 # <CJK> +0x8389 # <CJK> +0x838A # <CJK> +0x838E # <CJK> +0x8393 # <CJK> +0x8396 # <CJK> +0x839A # <CJK> +0x839E # <CJK> +0x839F # <CJK> +0x83A0 # <CJK> +0x83A2 # <CJK> +0x83A8 # <CJK> +0x83AA # <CJK> +0x83AB # <CJK> +0x83B1 # <CJK> +0x83B5 # <CJK> +0x83BD # <CJK> +0x83C1 # <CJK> +0x83C5 # <CJK> 0x83CA # <CJK> 0x83CC # <CJK> +0x83CE # <CJK> 0x83D3 # <CJK> +0x83D6 # <CJK> +0x83D8 # <CJK> 0x83DC # <CJK> +0x83DF # <CJK> +0x83E0 # <CJK> +0x83E9 # <CJK> +0x83EB # <CJK> 0x83EF # <CJK> +0x83F0 # <CJK> +0x83F1 # <CJK> +0x83F2 # <CJK> +0x83F4 # <CJK> +0x83F7 # <CJK> +0x83FB # <CJK> +0x83FD # <CJK> +0x8403 # <CJK> +0x8404 # <CJK> +0x8407 # <CJK> +0x840B # <CJK> +0x840C # <CJK> +0x840D # <CJK> 0x840E # <CJK> +0x8413 # <CJK> +0x8420 # <CJK> +0x8422 # <CJK> +0x8429 # <CJK> +0x842A # <CJK> +0x842C # <CJK> +0x8431 # <CJK> +0x8435 # <CJK> +0x8438 # <CJK> +0x843C # <CJK> 0x843D # <CJK> +0x8446 # <CJK> 0x8449 # <CJK> +0x844E # <CJK> 0x8457 # <CJK> 0x845B # <CJK> +0x8461 # <CJK> +0x8462 # <CJK> +0x8463 # <CJK> +0x8466 # <CJK> +0x8469 # <CJK> +0x846B # <CJK> 0x846C # <CJK> +0x846D # <CJK> +0x846E # <CJK> +0x846F # <CJK> +0x8471 # <CJK> +0x8475 # <CJK> +0x8477 # <CJK> +0x8479 # <CJK> +0x847A # <CJK> +0x8482 # <CJK> +0x8484 # <CJK> +0x848B # <CJK> +0x8490 # <CJK> +0x8494 # <CJK> +0x8499 # <CJK> +0x849C # <CJK> +0x849F # <CJK> +0x84A1 # <CJK> +0x84AD # <CJK> +0x84B2 # <CJK> 0x84B8 # <CJK> +0x84B9 # <CJK> +0x84BB # <CJK> +0x84BC # <CJK> +0x84BF # <CJK> +0x84C1 # <CJK> 0x84C4 # <CJK> +0x84C6 # <CJK> +0x84C9 # <CJK> +0x84CA # <CJK> 0x84CB # <CJK> +0x84CD # <CJK> +0x84D0 # <CJK> +0x84D1 # <CJK> +0x84D6 # <CJK> +0x84D9 # <CJK> +0x84DA # <CJK> +0x84EC # <CJK> +0x84EE # <CJK> +0x84F4 # <CJK> +0x84FC # <CJK> +0x84FF # <CJK> +0x8500 # <CJK> +0x8506 # <CJK> 0x8511 # <CJK> +0x8513 # <CJK> +0x8514 # <CJK> +0x8515 # <CJK> +0x8517 # <CJK> +0x8518 # <CJK> +0x851A # <CJK> +0x851F # <CJK> +0x8521 # <CJK> +0x8526 # <CJK> +0x852C # <CJK> +0x852D # <CJK> 0x8535 # <CJK> 0x853D # <CJK> +0x8540 # <CJK> +0x8541 # <CJK> +0x8543 # <CJK> +0x8548 # <CJK> +0x8549 # <CJK> +0x854A # <CJK> +0x854B # <CJK> +0x854E # <CJK> +0x8555 # <CJK> +0x8557 # <CJK> +0x8558 # <CJK> +0x855A # <CJK> +0x8563 # <CJK> +0x8568 # <CJK> +0x8569 # <CJK> +0x856A # <CJK> +0x856D # <CJK> +0x8577 # <CJK> +0x857E # <CJK> +0x8580 # <CJK> 0x8584 # <CJK> +0x8587 # <CJK> +0x8588 # <CJK> +0x858A # <CJK> +0x8590 # <CJK> +0x8591 # <CJK> +0x8594 # <CJK> +0x8597 # <CJK> +0x8599 # <CJK> +0x859B # <CJK> +0x859C # <CJK> +0x85A4 # <CJK> 0x85A6 # <CJK> +0x85A8 # <CJK> +0x85A9 # <CJK> 0x85AA # <CJK> 0x85AB # <CJK> 0x85AC # <CJK> +0x85AE # <CJK> +0x85AF # <CJK> +0x85B9 # <CJK> +0x85BA # <CJK> +0x85C1 # <CJK> +0x85C9 # <CJK> 0x85CD # <CJK> +0x85CF # <CJK> +0x85D0 # <CJK> +0x85D5 # <CJK> +0x85DC # <CJK> +0x85DD # <CJK> 0x85E4 # <CJK> +0x85E5 # <CJK> 0x85E9 # <CJK> +0x85EA # <CJK> +0x85F7 # <CJK> +0x85F9 # <CJK> +0x85FA # <CJK> 0x85FB # <CJK> +0x85FE # <CJK> +0x8602 # <CJK> +0x8606 # <CJK> +0x8607 # <CJK> +0x860A # <CJK> +0x860B # <CJK> +0x8613 # <CJK> +0x8616 # <CJK> +0x8617 # <CJK> +0x861A # <CJK> +0x8622 # <CJK> +0x862D # <CJK> +0x862F # <CJK> +0x8630 # <CJK> +0x863F # <CJK> +0x864D # <CJK> 0x864E # <CJK> 0x8650 # <CJK> +0x8654 # <CJK> +0x8655 # <CJK> 0x865A # <CJK> 0x865C # <CJK> 0x865E # <CJK> +0x865F # <CJK> +0x8667 # <CJK> 0x866B # <CJK> +0x8671 # <CJK> 0x8679 # <CJK> +0x867B # <CJK> 0x868A # <CJK> +0x868B # <CJK> +0x868C # <CJK> +0x8693 # <CJK> 0x8695 # <CJK> +0x86A3 # <CJK> +0x86A4 # <CJK> +0x86A9 # <CJK> +0x86AA # <CJK> +0x86AB # <CJK> +0x86AF # <CJK> +0x86B0 # <CJK> +0x86B6 # <CJK> +0x86C4 # <CJK> +0x86C6 # <CJK> 0x86C7 # <CJK> +0x86C9 # <CJK> +0x86CB # <CJK> 0x86CD # <CJK> +0x86CE # <CJK> +0x86D4 # <CJK> +0x86D9 # <CJK> +0x86DB # <CJK> +0x86DE # <CJK> +0x86DF # <CJK> +0x86E4 # <CJK> +0x86E9 # <CJK> +0x86EC # <CJK> +0x86ED # <CJK> 0x86EE # <CJK> +0x86EF # <CJK> +0x86F8 # <CJK> +0x86F9 # <CJK> +0x86FB # <CJK> +0x86FE # <CJK> +0x8700 # <CJK> 0x8702 # <CJK> +0x8703 # <CJK> +0x8706 # <CJK> +0x8708 # <CJK> +0x8709 # <CJK> +0x870A # <CJK> +0x870D # <CJK> +0x8711 # <CJK> +0x8712 # <CJK> +0x8718 # <CJK> +0x871A # <CJK> 0x871C # <CJK> +0x8725 # <CJK> +0x8729 # <CJK> +0x8734 # <CJK> +0x8737 # <CJK> +0x873B # <CJK> +0x873F # <CJK> +0x8749 # <CJK> +0x874B # <CJK> +0x874C # <CJK> +0x874E # <CJK> +0x8753 # <CJK> +0x8755 # <CJK> +0x8757 # <CJK> +0x8759 # <CJK> +0x875F # <CJK> +0x8760 # <CJK> +0x8763 # <CJK> +0x8766 # <CJK> +0x8768 # <CJK> +0x876A # <CJK> +0x876E # <CJK> +0x8774 # <CJK> +0x8776 # <CJK> +0x8778 # <CJK> +0x877F # <CJK> +0x8782 # <CJK> 0x878D # <CJK> +0x879F # <CJK> +0x87A2 # <CJK> +0x87AB # <CJK> +0x87AF # <CJK> +0x87B3 # <CJK> +0x87BA # <CJK> +0x87BB # <CJK> +0x87BD # <CJK> +0x87C0 # <CJK> +0x87C4 # <CJK> +0x87C6 # <CJK> +0x87C7 # <CJK> +0x87CB # <CJK> +0x87D0 # <CJK> +0x87D2 # <CJK> +0x87E0 # <CJK> +0x87EF # <CJK> +0x87F2 # <CJK> +0x87F6 # <CJK> +0x87F7 # <CJK> +0x87F9 # <CJK> +0x87FB # <CJK> +0x87FE # <CJK> +0x8805 # <CJK> +0x880D # <CJK> +0x880E # <CJK> +0x880F # <CJK> +0x8811 # <CJK> +0x8815 # <CJK> +0x8816 # <CJK> +0x8821 # <CJK> +0x8822 # <CJK> +0x8823 # <CJK> +0x8827 # <CJK> +0x8831 # <CJK> +0x8836 # <CJK> +0x8839 # <CJK> +0x883B # <CJK> 0x8840 # <CJK> +0x8842 # <CJK> +0x8844 # <CJK> 0x8846 # <CJK> 0x884C # <CJK> +0x884D # <CJK> +0x8852 # <CJK> 0x8853 # <CJK> 0x8857 # <CJK> +0x8859 # <CJK> 0x885B # <CJK> 0x885D # <CJK> +0x885E # <CJK> 0x8861 # <CJK> +0x8862 # <CJK> 0x8863 # <CJK> 0x8868 # <CJK> +0x886B # <CJK> 0x8870 # <CJK> +0x8872 # <CJK> +0x8875 # <CJK> 0x8877 # <CJK> +0x887D # <CJK> +0x887E # <CJK> +0x887F # <CJK> +0x8881 # <CJK> +0x8882 # <CJK> +0x8888 # <CJK> 0x888B # <CJK> +0x888D # <CJK> +0x8892 # <CJK> 0x8896 # <CJK> +0x8897 # <CJK> +0x8899 # <CJK> +0x889E # <CJK> +0x88A2 # <CJK> +0x88A4 # <CJK> 0x88AB # <CJK> +0x88AE # <CJK> +0x88B0 # <CJK> +0x88B1 # <CJK> +0x88B4 # <CJK> +0x88B5 # <CJK> +0x88B7 # <CJK> +0x88BF # <CJK> 0x88C1 # <CJK> 0x88C2 # <CJK> +0x88C3 # <CJK> +0x88C4 # <CJK> 0x88C5 # <CJK> 0x88CF # <CJK> +0x88D4 # <CJK> 0x88D5 # <CJK> +0x88D8 # <CJK> +0x88D9 # <CJK> 0x88DC # <CJK> +0x88DD # <CJK> +0x88DF # <CJK> +0x88E1 # <CJK> +0x88E8 # <CJK> +0x88F2 # <CJK> +0x88F3 # <CJK> +0x88F4 # <CJK> 0x88F8 # <CJK> +0x88F9 # <CJK> +0x88FC # <CJK> 0x88FD # <CJK> 0x88FE # <CJK> +0x8902 # <CJK> +0x8904 # <CJK> 0x8907 # <CJK> +0x890A # <CJK> +0x890C # <CJK> 0x8910 # <CJK> 0x8912 # <CJK> +0x8913 # <CJK> +0x891D # <CJK> +0x891E # <CJK> +0x8925 # <CJK> +0x892A # <CJK> +0x892B # <CJK> +0x8936 # <CJK> +0x8938 # <CJK> +0x893B # <CJK> +0x8941 # <CJK> +0x8943 # <CJK> +0x8944 # <CJK> +0x894C # <CJK> +0x894D # <CJK> +0x8956 # <CJK> +0x895E # <CJK> 0x895F # <CJK> +0x8960 # <CJK> +0x8964 # <CJK> +0x8966 # <CJK> +0x896A # <CJK> +0x896D # <CJK> +0x896F # <CJK> 0x8972 # <CJK> +0x8974 # <CJK> +0x8977 # <CJK> +0x897E # <CJK> 0x897F # <CJK> 0x8981 # <CJK> +0x8983 # <CJK> 0x8986 # <CJK> 0x8987 # <CJK> +0x8988 # <CJK> +0x898A # <CJK> 0x898B # <CJK> 0x898F # <CJK> +0x8993 # <CJK> 0x8996 # <CJK> +0x8997 # <CJK> +0x8998 # <CJK> 0x899A # <CJK> +0x89A1 # <CJK> +0x89A6 # <CJK> 0x89A7 # <CJK> +0x89A9 # <CJK> 0x89AA # <CJK> +0x89AC # <CJK> +0x89AF # <CJK> +0x89B2 # <CJK> 0x89B3 # <CJK> +0x89BA # <CJK> +0x89BD # <CJK> +0x89BF # <CJK> +0x89C0 # <CJK> 0x89D2 # <CJK> +0x89DA # <CJK> +0x89DC # <CJK> +0x89DD # <CJK> 0x89E3 # <CJK> 0x89E6 # <CJK> +0x89E7 # <CJK> +0x89F4 # <CJK> +0x89F8 # <CJK> 0x8A00 # <CJK> 0x8A02 # <CJK> 0x8A03 # <CJK> 0x8A08 # <CJK> +0x8A0A # <CJK> +0x8A0C # <CJK> 0x8A0E # <CJK> +0x8A10 # <CJK> 0x8A13 # <CJK> +0x8A16 # <CJK> 0x8A17 # <CJK> 0x8A18 # <CJK> +0x8A1B # <CJK> +0x8A1D # <CJK> 0x8A1F # <CJK> +0x8A23 # <CJK> +0x8A25 # <CJK> 0x8A2A # <CJK> 0x8A2D # <CJK> 0x8A31 # <CJK> 0x8A33 # <CJK> 0x8A34 # <CJK> +0x8A36 # <CJK> 0x8A3A # <CJK> +0x8A3B # <CJK> 0x8A3C # <CJK> +0x8A41 # <CJK> +0x8A46 # <CJK> +0x8A48 # <CJK> 0x8A50 # <CJK> +0x8A51 # <CJK> +0x8A52 # <CJK> 0x8A54 # <CJK> 0x8A55 # <CJK> +0x8A5B # <CJK> 0x8A5E # <CJK> 0x8A60 # <CJK> +0x8A62 # <CJK> 0x8A63 # <CJK> 0x8A66 # <CJK> 0x8A69 # <CJK> +0x8A6B # <CJK> +0x8A6C # <CJK> +0x8A6D # <CJK> 0x8A6E # <CJK> 0x8A70 # <CJK> 0x8A71 # <CJK> 0x8A72 # <CJK> 0x8A73 # <CJK> +0x8A7C # <CJK> +0x8A82 # <CJK> +0x8A84 # <CJK> +0x8A85 # <CJK> 0x8A87 # <CJK> 0x8A89 # <CJK> 0x8A8C # <CJK> 0x8A8D # <CJK> +0x8A91 # <CJK> 0x8A93 # <CJK> 0x8A95 # <CJK> 0x8A98 # <CJK> +0x8A9A # <CJK> 0x8A9E # <CJK> 0x8AA0 # <CJK> +0x8AA1 # <CJK> +0x8AA3 # <CJK> 0x8AA4 # <CJK> +0x8AA5 # <CJK> +0x8AA6 # <CJK> +0x8AA8 # <CJK> 0x8AAC # <CJK> 0x8AAD # <CJK> 0x8AB0 # <CJK> 0x8AB2 # <CJK> +0x8AB9 # <CJK> +0x8ABC # <CJK> 0x8ABF # <CJK> +0x8AC2 # <CJK> +0x8AC4 # <CJK> 0x8AC7 # <CJK> 0x8ACB # <CJK> +0x8ACC # <CJK> +0x8ACD # <CJK> +0x8ACF # <CJK> +0x8AD2 # <CJK> 0x8AD6 # <CJK> +0x8ADA # <CJK> +0x8ADB # <CJK> +0x8ADC # <CJK> +0x8ADE # <CJK> +0x8AE0 # <CJK> +0x8AE1 # <CJK> +0x8AE2 # <CJK> +0x8AE4 # <CJK> 0x8AE6 # <CJK> 0x8AE7 # <CJK> +0x8AEB # <CJK> 0x8AED # <CJK> 0x8AEE # <CJK> +0x8AF1 # <CJK> +0x8AF3 # <CJK> +0x8AF7 # <CJK> 0x8AF8 # <CJK> +0x8AFA # <CJK> 0x8AFE # <CJK> 0x8B00 # <CJK> 0x8B01 # <CJK> +0x8B02 # <CJK> 0x8B04 # <CJK> +0x8B07 # <CJK> +0x8B0C # <CJK> 0x8B0E # <CJK> +0x8B10 # <CJK> +0x8B14 # <CJK> +0x8B16 # <CJK> +0x8B17 # <CJK> 0x8B19 # <CJK> +0x8B1A # <CJK> 0x8B1B # <CJK> 0x8B1D # <CJK> +0x8B20 # <CJK> 0x8B21 # <CJK> +0x8B26 # <CJK> +0x8B28 # <CJK> +0x8B2B # <CJK> +0x8B2C # <CJK> +0x8B33 # <CJK> 0x8B39 # <CJK> +0x8B3E # <CJK> +0x8B41 # <CJK> +0x8B49 # <CJK> +0x8B4C # <CJK> +0x8B4E # <CJK> +0x8B4F # <CJK> +0x8B56 # <CJK> 0x8B58 # <CJK> +0x8B5A # <CJK> +0x8B5B # <CJK> 0x8B5C # <CJK> +0x8B5F # <CJK> 0x8B66 # <CJK> +0x8B6B # <CJK> +0x8B6C # <CJK> +0x8B6F # <CJK> 0x8B70 # <CJK> +0x8B71 # <CJK> 0x8B72 # <CJK> +0x8B74 # <CJK> 0x8B77 # <CJK> +0x8B7D # <CJK> +0x8B80 # <CJK> +0x8B83 # <CJK> +0x8B8A # <CJK> +0x8B8C # <CJK> +0x8B8E # <CJK> +0x8B90 # <CJK> +0x8B92 # <CJK> +0x8B93 # <CJK> +0x8B96 # <CJK> +0x8B99 # <CJK> +0x8B9A # <CJK> 0x8C37 # <CJK> +0x8C3A # <CJK> +0x8C3F # <CJK> +0x8C41 # <CJK> 0x8C46 # <CJK> +0x8C48 # <CJK> 0x8C4A # <CJK> +0x8C4C # <CJK> +0x8C4E # <CJK> +0x8C50 # <CJK> +0x8C55 # <CJK> 0x8C5A # <CJK> 0x8C61 # <CJK> +0x8C62 # <CJK> 0x8C6A # <CJK> +0x8C6B # <CJK> +0x8C6C # <CJK> +0x8C78 # <CJK> +0x8C79 # <CJK> +0x8C7A # <CJK> +0x8C7C # <CJK> +0x8C82 # <CJK> +0x8C85 # <CJK> +0x8C89 # <CJK> +0x8C8A # <CJK> 0x8C8C # <CJK> +0x8C8D # <CJK> +0x8C8E # <CJK> +0x8C94 # <CJK> +0x8C98 # <CJK> 0x8C9D # <CJK> 0x8C9E # <CJK> 0x8CA0 # <CJK> @@ -2008,338 +5348,1218 @@ 0x8CAA # <CJK> 0x8CAB # <CJK> 0x8CAC # <CJK> +0x8CAD # <CJK> +0x8CAE # <CJK> 0x8CAF # <CJK> +0x8CB0 # <CJK> +0x8CB2 # <CJK> +0x8CB3 # <CJK> 0x8CB4 # <CJK> +0x8CB6 # <CJK> 0x8CB7 # <CJK> 0x8CB8 # <CJK> 0x8CBB # <CJK> 0x8CBC # <CJK> +0x8CBD # <CJK> 0x8CBF # <CJK> 0x8CC0 # <CJK> +0x8CC1 # <CJK> 0x8CC2 # <CJK> 0x8CC3 # <CJK> 0x8CC4 # <CJK> 0x8CC7 # <CJK> +0x8CC8 # <CJK> 0x8CCA # <CJK> +0x8CCD # <CJK> +0x8CCE # <CJK> +0x8CD1 # <CJK> 0x8CD3 # <CJK> +0x8CDA # <CJK> 0x8CDB # <CJK> 0x8CDC # <CJK> 0x8CDE # <CJK> 0x8CE0 # <CJK> 0x8CE2 # <CJK> +0x8CE3 # <CJK> +0x8CE4 # <CJK> 0x8CE6 # <CJK> 0x8CEA # <CJK> 0x8CED # <CJK> +0x8CFA # <CJK> +0x8CFB # <CJK> 0x8CFC # <CJK> +0x8CFD # <CJK> +0x8D04 # <CJK> +0x8D05 # <CJK> +0x8D07 # <CJK> 0x8D08 # <CJK> +0x8D0A # <CJK> +0x8D0B # <CJK> +0x8D0D # <CJK> +0x8D0F # <CJK> +0x8D10 # <CJK> +0x8D13 # <CJK> +0x8D14 # <CJK> +0x8D16 # <CJK> 0x8D64 # <CJK> 0x8D66 # <CJK> +0x8D67 # <CJK> +0x8D6B # <CJK> +0x8D6D # <CJK> 0x8D70 # <CJK> +0x8D71 # <CJK> +0x8D73 # <CJK> 0x8D74 # <CJK> 0x8D77 # <CJK> +0x8D81 # <CJK> 0x8D85 # <CJK> 0x8D8A # <CJK> +0x8D99 # <CJK> 0x8DA3 # <CJK> +0x8DA8 # <CJK> 0x8DB3 # <CJK> +0x8DBA # <CJK> +0x8DBE # <CJK> +0x8DC2 # <CJK> +0x8DCB # <CJK> +0x8DCC # <CJK> +0x8DCF # <CJK> +0x8DD6 # <CJK> +0x8DDA # <CJK> +0x8DDB # <CJK> 0x8DDD # <CJK> +0x8DDF # <CJK> 0x8DE1 # <CJK> +0x8DE3 # <CJK> +0x8DE8 # <CJK> +0x8DEA # <CJK> +0x8DEB # <CJK> 0x8DEF # <CJK> 0x8DF3 # <CJK> 0x8DF5 # <CJK> +0x8DFC # <CJK> +0x8DFF # <CJK> +0x8E08 # <CJK> +0x8E09 # <CJK> 0x8E0A # <CJK> 0x8E0F # <CJK> +0x8E10 # <CJK> +0x8E1D # <CJK> +0x8E1E # <CJK> +0x8E1F # <CJK> 0x8E2A # <CJK> +0x8E30 # <CJK> +0x8E34 # <CJK> +0x8E35 # <CJK> +0x8E42 # <CJK> +0x8E44 # <CJK> +0x8E47 # <CJK> +0x8E48 # <CJK> +0x8E49 # <CJK> +0x8E4A # <CJK> +0x8E4C # <CJK> +0x8E50 # <CJK> +0x8E55 # <CJK> +0x8E59 # <CJK> +0x8E5F # <CJK> +0x8E60 # <CJK> +0x8E63 # <CJK> +0x8E64 # <CJK> +0x8E72 # <CJK> 0x8E74 # <CJK> +0x8E76 # <CJK> +0x8E7C # <CJK> +0x8E81 # <CJK> +0x8E84 # <CJK> +0x8E85 # <CJK> +0x8E87 # <CJK> +0x8E8A # <CJK> +0x8E8B # <CJK> 0x8E8D # <CJK> +0x8E91 # <CJK> +0x8E93 # <CJK> +0x8E94 # <CJK> +0x8E99 # <CJK> +0x8EA1 # <CJK> +0x8EAA # <CJK> 0x8EAB # <CJK> +0x8EAC # <CJK> +0x8EAF # <CJK> +0x8EB0 # <CJK> +0x8EB1 # <CJK> +0x8EBE # <CJK> +0x8EC5 # <CJK> +0x8EC6 # <CJK> +0x8EC8 # <CJK> 0x8ECA # <CJK> +0x8ECB # <CJK> 0x8ECC # <CJK> 0x8ECD # <CJK> 0x8ED2 # <CJK> +0x8EDB # <CJK> 0x8EDF # <CJK> 0x8EE2 # <CJK> +0x8EE3 # <CJK> +0x8EEB # <CJK> 0x8EF8 # <CJK> +0x8EFB # <CJK> +0x8EFC # <CJK> 0x8EFD # <CJK> +0x8EFE # <CJK> 0x8F03 # <CJK> +0x8F05 # <CJK> 0x8F09 # <CJK> +0x8F0A # <CJK> +0x8F0C # <CJK> +0x8F12 # <CJK> +0x8F13 # <CJK> +0x8F14 # <CJK> +0x8F15 # <CJK> +0x8F19 # <CJK> +0x8F1B # <CJK> +0x8F1C # <CJK> 0x8F1D # <CJK> +0x8F1F # <CJK> +0x8F26 # <CJK> 0x8F29 # <CJK> 0x8F2A # <CJK> +0x8F2F # <CJK> +0x8F33 # <CJK> 0x8F38 # <CJK> +0x8F39 # <CJK> +0x8F3B # <CJK> +0x8F3E # <CJK> +0x8F3F # <CJK> +0x8F42 # <CJK> 0x8F44 # <CJK> +0x8F45 # <CJK> +0x8F46 # <CJK> +0x8F49 # <CJK> +0x8F4C # <CJK> +0x8F4D # <CJK> +0x8F4E # <CJK> +0x8F57 # <CJK> +0x8F5C # <CJK> +0x8F5F # <CJK> +0x8F61 # <CJK> +0x8F62 # <CJK> +0x8F63 # <CJK> +0x8F64 # <CJK> 0x8F9B # <CJK> +0x8F9C # <CJK> 0x8F9E # <CJK> +0x8F9F # <CJK> 0x8FA3 # <CJK> +0x8FA7 # <CJK> +0x8FA8 # <CJK> +0x8FAD # <CJK> +0x8FAE # <CJK> +0x8FAF # <CJK> +0x8FB0 # <CJK> 0x8FB1 # <CJK> 0x8FB2 # <CJK> +0x8FB7 # <CJK> 0x8FBA # <CJK> +0x8FBB # <CJK> 0x8FBC # <CJK> +0x8FBF # <CJK> +0x8FC2 # <CJK> +0x8FC4 # <CJK> 0x8FC5 # <CJK> 0x8FCE # <CJK> 0x8FD1 # <CJK> 0x8FD4 # <CJK> +0x8FDA # <CJK> +0x8FE2 # <CJK> +0x8FE5 # <CJK> +0x8FE6 # <CJK> +0x8FE9 # <CJK> +0x8FEA # <CJK> 0x8FEB # <CJK> 0x8FED # <CJK> +0x8FEF # <CJK> 0x8FF0 # <CJK> +0x8FF4 # <CJK> 0x8FF7 # <CJK> +0x8FF8 # <CJK> +0x8FF9 # <CJK> +0x8FFA # <CJK> 0x8FFD # <CJK> 0x9000 # <CJK> 0x9001 # <CJK> 0x9003 # <CJK> +0x9005 # <CJK> 0x9006 # <CJK> +0x900B # <CJK> +0x900D # <CJK> +0x900E # <CJK> 0x900F # <CJK> 0x9010 # <CJK> +0x9011 # <CJK> 0x9013 # <CJK> 0x9014 # <CJK> +0x9015 # <CJK> +0x9016 # <CJK> +0x9017 # <CJK> +0x9019 # <CJK> 0x901A # <CJK> 0x901D # <CJK> +0x901E # <CJK> 0x901F # <CJK> 0x9020 # <CJK> +0x9021 # <CJK> +0x9022 # <CJK> 0x9023 # <CJK> +0x9027 # <CJK> 0x902E # <CJK> 0x9031 # <CJK> 0x9032 # <CJK> +0x9035 # <CJK> +0x9036 # <CJK> 0x9038 # <CJK> +0x9039 # <CJK> +0x903C # <CJK> +0x903E # <CJK> +0x9041 # <CJK> 0x9042 # <CJK> 0x9045 # <CJK> 0x9047 # <CJK> +0x9049 # <CJK> 0x904A # <CJK> 0x904B # <CJK> 0x904D # <CJK> 0x904E # <CJK> +0x904F # <CJK> +0x9050 # <CJK> +0x9051 # <CJK> +0x9052 # <CJK> 0x9053 # <CJK> 0x9054 # <CJK> 0x9055 # <CJK> +0x9056 # <CJK> +0x9058 # <CJK> +0x9059 # <CJK> 0x905C # <CJK> +0x905E # <CJK> 0x9060 # <CJK> 0x9061 # <CJK> 0x9063 # <CJK> +0x9065 # <CJK> +0x9068 # <CJK> 0x9069 # <CJK> 0x906D # <CJK> 0x906E # <CJK> +0x906F # <CJK> +0x9072 # <CJK> 0x9075 # <CJK> +0x9076 # <CJK> 0x9077 # <CJK> 0x9078 # <CJK> 0x907A # <CJK> +0x907C # <CJK> +0x907D # <CJK> 0x907F # <CJK> +0x9080 # <CJK> +0x9081 # <CJK> +0x9082 # <CJK> +0x9083 # <CJK> 0x9084 # <CJK> +0x9087 # <CJK> +0x9089 # <CJK> +0x908A # <CJK> +0x908F # <CJK> +0x9091 # <CJK> 0x90A3 # <CJK> 0x90A6 # <CJK> +0x90A8 # <CJK> 0x90AA # <CJK> +0x90AF # <CJK> +0x90B1 # <CJK> +0x90B5 # <CJK> 0x90B8 # <CJK> +0x90C1 # <CJK> 0x90CA # <CJK> 0x90CE # <CJK> +0x90DB # <CJK> 0x90E1 # <CJK> +0x90E2 # <CJK> +0x90E4 # <CJK> 0x90E8 # <CJK> 0x90ED # <CJK> 0x90F5 # <CJK> 0x90F7 # <CJK> 0x90FD # <CJK> +0x9102 # <CJK> +0x9112 # <CJK> +0x9119 # <CJK> +0x912D # <CJK> +0x9130 # <CJK> +0x9132 # <CJK> +0x9149 # <CJK> +0x914A # <CJK> +0x914B # <CJK> 0x914C # <CJK> 0x914D # <CJK> 0x914E # <CJK> 0x9152 # <CJK> 0x9154 # <CJK> +0x9156 # <CJK> +0x9158 # <CJK> 0x9162 # <CJK> +0x9163 # <CJK> +0x9165 # <CJK> +0x9169 # <CJK> 0x916A # <CJK> 0x916C # <CJK> +0x9172 # <CJK> +0x9173 # <CJK> 0x9175 # <CJK> 0x9177 # <CJK> 0x9178 # <CJK> +0x9182 # <CJK> +0x9187 # <CJK> +0x9189 # <CJK> +0x918B # <CJK> +0x918D # <CJK> +0x9190 # <CJK> 0x9192 # <CJK> +0x9197 # <CJK> 0x919C # <CJK> +0x91A2 # <CJK> +0x91A4 # <CJK> +0x91AA # <CJK> +0x91AB # <CJK> +0x91AF # <CJK> +0x91B4 # <CJK> +0x91B5 # <CJK> 0x91B8 # <CJK> +0x91BA # <CJK> +0x91C0 # <CJK> +0x91C1 # <CJK> +0x91C6 # <CJK> 0x91C7 # <CJK> 0x91C8 # <CJK> +0x91C9 # <CJK> +0x91CB # <CJK> 0x91CC # <CJK> 0x91CD # <CJK> 0x91CE # <CJK> 0x91CF # <CJK> +0x91D0 # <CJK> 0x91D1 # <CJK> +0x91D6 # <CJK> +0x91D8 # <CJK> +0x91DB # <CJK> 0x91DC # <CJK> 0x91DD # <CJK> +0x91DF # <CJK> +0x91E1 # <CJK> 0x91E3 # <CJK> +0x91E6 # <CJK> +0x91E7 # <CJK> +0x91F5 # <CJK> +0x91F6 # <CJK> +0x91FC # <CJK> +0x91FF # <CJK> 0x920D # <CJK> +0x920E # <CJK> +0x9211 # <CJK> +0x9214 # <CJK> +0x9215 # <CJK> +0x921E # <CJK> +0x9229 # <CJK> +0x922C # <CJK> 0x9234 # <CJK> +0x9237 # <CJK> +0x923F # <CJK> 0x9244 # <CJK> +0x9245 # <CJK> +0x9248 # <CJK> +0x9249 # <CJK> +0x924B # <CJK> +0x9250 # <CJK> +0x9257 # <CJK> +0x925A # <CJK> 0x925B # <CJK> +0x925E # <CJK> 0x9262 # <CJK> +0x9264 # <CJK> +0x9266 # <CJK> 0x9271 # <CJK> +0x927E # <CJK> 0x9280 # <CJK> 0x9283 # <CJK> 0x9285 # <CJK> +0x9291 # <CJK> +0x9293 # <CJK> +0x9295 # <CJK> +0x9296 # <CJK> 0x9298 # <CJK> +0x929A # <CJK> +0x929B # <CJK> +0x929C # <CJK> 0x92AD # <CJK> +0x92B7 # <CJK> +0x92B9 # <CJK> +0x92CF # <CJK> +0x92D2 # <CJK> +0x92E4 # <CJK> +0x92E9 # <CJK> +0x92EA # <CJK> 0x92ED # <CJK> +0x92F2 # <CJK> 0x92F3 # <CJK> +0x92F8 # <CJK> +0x92FA # <CJK> 0x92FC # <CJK> +0x9306 # <CJK> +0x930F # <CJK> +0x9310 # <CJK> +0x9318 # <CJK> +0x9319 # <CJK> +0x931A # <CJK> 0x9320 # <CJK> +0x9322 # <CJK> +0x9323 # <CJK> 0x9326 # <CJK> +0x9328 # <CJK> +0x932B # <CJK> 0x932C # <CJK> 0x932E # <CJK> 0x932F # <CJK> 0x9332 # <CJK> +0x9335 # <CJK> +0x933A # <CJK> +0x933B # <CJK> +0x9344 # <CJK> 0x934B # <CJK> +0x934D # <CJK> +0x9354 # <CJK> +0x9356 # <CJK> 0x935B # <CJK> +0x935C # <CJK> +0x9360 # <CJK> +0x936C # <CJK> +0x936E # <CJK> 0x9375 # <CJK> +0x937C # <CJK> +0x937E # <CJK> 0x938C # <CJK> +0x9394 # <CJK> 0x9396 # <CJK> +0x9397 # <CJK> +0x939A # <CJK> +0x93A7 # <CJK> +0x93AC # <CJK> +0x93AD # <CJK> 0x93AE # <CJK> +0x93B0 # <CJK> +0x93B9 # <CJK> +0x93C3 # <CJK> +0x93C8 # <CJK> +0x93D0 # <CJK> +0x93D1 # <CJK> +0x93D6 # <CJK> +0x93D7 # <CJK> +0x93D8 # <CJK> +0x93DD # <CJK> 0x93E1 # <CJK> +0x93E4 # <CJK> +0x93E5 # <CJK> +0x93E8 # <CJK> +0x9403 # <CJK> +0x9407 # <CJK> +0x9410 # <CJK> +0x9413 # <CJK> +0x9414 # <CJK> 0x9418 # <CJK> +0x9419 # <CJK> +0x941A # <CJK> +0x9421 # <CJK> +0x942B # <CJK> +0x9435 # <CJK> +0x9436 # <CJK> +0x9438 # <CJK> +0x943A # <CJK> +0x9441 # <CJK> +0x9444 # <CJK> 0x9451 # <CJK> +0x9452 # <CJK> +0x9453 # <CJK> +0x945A # <CJK> +0x945B # <CJK> +0x945E # <CJK> +0x9460 # <CJK> +0x9462 # <CJK> +0x946A # <CJK> +0x9470 # <CJK> +0x9475 # <CJK> +0x9477 # <CJK> +0x947C # <CJK> +0x947D # <CJK> +0x947E # <CJK> +0x947F # <CJK> +0x9481 # <CJK> 0x9577 # <CJK> 0x9580 # <CJK> +0x9582 # <CJK> +0x9583 # <CJK> +0x9587 # <CJK> 0x9589 # <CJK> +0x958A # <CJK> 0x958B # <CJK> +0x958F # <CJK> 0x9591 # <CJK> 0x9593 # <CJK> +0x9594 # <CJK> +0x9596 # <CJK> +0x9598 # <CJK> +0x9599 # <CJK> +0x95A0 # <CJK> 0x95A2 # <CJK> 0x95A3 # <CJK> +0x95A4 # <CJK> 0x95A5 # <CJK> +0x95A7 # <CJK> +0x95A8 # <CJK> +0x95AD # <CJK> 0x95B2 # <CJK> +0x95B9 # <CJK> +0x95BB # <CJK> +0x95BC # <CJK> +0x95BE # <CJK> +0x95C3 # <CJK> 0x95C7 # <CJK> +0x95CA # <CJK> +0x95CC # <CJK> +0x95CD # <CJK> +0x95D4 # <CJK> +0x95D5 # <CJK> +0x95D6 # <CJK> 0x95D8 # <CJK> +0x95DC # <CJK> +0x95E1 # <CJK> +0x95E2 # <CJK> +0x95E5 # <CJK> 0x961C # <CJK> +0x9621 # <CJK> +0x9628 # <CJK> 0x962A # <CJK> +0x962E # <CJK> +0x962F # <CJK> 0x9632 # <CJK> 0x963B # <CJK> +0x963F # <CJK> +0x9640 # <CJK> +0x9642 # <CJK> 0x9644 # <CJK> +0x964B # <CJK> +0x964C # <CJK> 0x964D # <CJK> +0x964F # <CJK> 0x9650 # <CJK> 0x965B # <CJK> +0x965C # <CJK> +0x965D # <CJK> +0x965E # <CJK> +0x965F # <CJK> 0x9662 # <CJK> 0x9663 # <CJK> 0x9664 # <CJK> 0x9665 # <CJK> +0x9666 # <CJK> 0x966A # <CJK> +0x966C # <CJK> 0x9670 # <CJK> +0x9672 # <CJK> 0x9673 # <CJK> 0x9675 # <CJK> 0x9676 # <CJK> +0x9677 # <CJK> 0x9678 # <CJK> 0x967A # <CJK> 0x967D # <CJK> 0x9685 # <CJK> 0x9686 # <CJK> +0x9688 # <CJK> 0x968A # <CJK> +0x968B # <CJK> +0x968D # <CJK> 0x968E # <CJK> 0x968F # <CJK> 0x9694 # <CJK> +0x9695 # <CJK> +0x9697 # <CJK> +0x9698 # <CJK> 0x9699 # <CJK> 0x969B # <CJK> 0x969C # <CJK> 0x96A0 # <CJK> 0x96A3 # <CJK> +0x96A7 # <CJK> +0x96A8 # <CJK> +0x96AA # <CJK> +0x96B0 # <CJK> +0x96B1 # <CJK> +0x96B2 # <CJK> +0x96B4 # <CJK> +0x96B6 # <CJK> 0x96B7 # <CJK> +0x96B8 # <CJK> +0x96B9 # <CJK> 0x96BB # <CJK> +0x96BC # <CJK> +0x96C0 # <CJK> +0x96C1 # <CJK> 0x96C4 # <CJK> 0x96C5 # <CJK> 0x96C6 # <CJK> 0x96C7 # <CJK> +0x96C9 # <CJK> +0x96CB # <CJK> 0x96CC # <CJK> +0x96CD # <CJK> +0x96CE # <CJK> 0x96D1 # <CJK> +0x96D5 # <CJK> +0x96D6 # <CJK> +0x96D9 # <CJK> +0x96DB # <CJK> +0x96DC # <CJK> 0x96E2 # <CJK> 0x96E3 # <CJK> 0x96E8 # <CJK> 0x96EA # <CJK> +0x96EB # <CJK> 0x96F0 # <CJK> 0x96F2 # <CJK> 0x96F6 # <CJK> 0x96F7 # <CJK> +0x96F9 # <CJK> 0x96FB # <CJK> 0x9700 # <CJK> +0x9704 # <CJK> +0x9706 # <CJK> 0x9707 # <CJK> +0x9708 # <CJK> 0x970A # <CJK> +0x970D # <CJK> +0x970E # <CJK> +0x970F # <CJK> +0x9711 # <CJK> +0x9713 # <CJK> +0x9716 # <CJK> +0x9719 # <CJK> 0x971C # <CJK> +0x971E # <CJK> +0x9724 # <CJK> 0x9727 # <CJK> +0x972A # <CJK> +0x9730 # <CJK> 0x9732 # <CJK> +0x9738 # <CJK> +0x9739 # <CJK> +0x973D # <CJK> +0x973E # <CJK> +0x9742 # <CJK> +0x9744 # <CJK> +0x9746 # <CJK> +0x9748 # <CJK> +0x9749 # <CJK> 0x9752 # <CJK> +0x9756 # <CJK> 0x9759 # <CJK> +0x975C # <CJK> 0x975E # <CJK> +0x9760 # <CJK> +0x9761 # <CJK> 0x9762 # <CJK> +0x9764 # <CJK> +0x9766 # <CJK> +0x9768 # <CJK> 0x9769 # <CJK> +0x976B # <CJK> +0x976D # <CJK> +0x9771 # <CJK> 0x9774 # <CJK> +0x9779 # <CJK> +0x977A # <CJK> +0x977C # <CJK> +0x9781 # <CJK> +0x9784 # <CJK> +0x9785 # <CJK> +0x9786 # <CJK> +0x978B # <CJK> +0x978D # <CJK> +0x978F # <CJK> +0x9790 # <CJK> +0x9798 # <CJK> +0x979C # <CJK> +0x97A0 # <CJK> +0x97A3 # <CJK> +0x97A6 # <CJK> +0x97A8 # <CJK> +0x97AB # <CJK> +0x97AD # <CJK> +0x97B3 # <CJK> +0x97B4 # <CJK> +0x97C3 # <CJK> +0x97C6 # <CJK> +0x97C8 # <CJK> +0x97CB # <CJK> 0x97D3 # <CJK> +0x97DC # <CJK> +0x97ED # <CJK> +0x97EE # <CJK> +0x97F2 # <CJK> 0x97F3 # <CJK> +0x97F5 # <CJK> +0x97F6 # <CJK> 0x97FB # <CJK> 0x97FF # <CJK> +0x9801 # <CJK> 0x9802 # <CJK> 0x9803 # <CJK> 0x9805 # <CJK> 0x9806 # <CJK> 0x9808 # <CJK> +0x980C # <CJK> +0x980F # <CJK> 0x9810 # <CJK> 0x9811 # <CJK> 0x9812 # <CJK> 0x9813 # <CJK> +0x9817 # <CJK> 0x9818 # <CJK> +0x981A # <CJK> +0x9821 # <CJK> +0x9824 # <CJK> +0x982C # <CJK> 0x982D # <CJK> -#0x9830 # <CJK> # not in DroidSansJapanese +0x9834 # <CJK> +0x9837 # <CJK> +0x9838 # <CJK> 0x983B # <CJK> 0x983C # <CJK> +0x983D # <CJK> +0x9846 # <CJK> +0x984B # <CJK> 0x984C # <CJK> 0x984D # <CJK> 0x984E # <CJK> +0x984F # <CJK> 0x9854 # <CJK> 0x9855 # <CJK> 0x9858 # <CJK> +0x985B # <CJK> 0x985E # <CJK> 0x9867 # <CJK> +0x986B # <CJK> +0x986F # <CJK> +0x9870 # <CJK> +0x9871 # <CJK> +0x9873 # <CJK> +0x9874 # <CJK> 0x98A8 # <CJK> +0x98AA # <CJK> +0x98AF # <CJK> +0x98B1 # <CJK> +0x98B6 # <CJK> +0x98C3 # <CJK> +0x98C4 # <CJK> +0x98C6 # <CJK> 0x98DB # <CJK> +0x98DC # <CJK> 0x98DF # <CJK> 0x98E2 # <CJK> +0x98E9 # <CJK> +0x98EB # <CJK> +0x98ED # <CJK> +0x98EE # <CJK> 0x98EF # <CJK> 0x98F2 # <CJK> +0x98F4 # <CJK> 0x98FC # <CJK> 0x98FD # <CJK> 0x98FE # <CJK> +0x9903 # <CJK> 0x9905 # <CJK> +0x9909 # <CJK> 0x990A # <CJK> 0x990C # <CJK> +0x9910 # <CJK> +0x9912 # <CJK> 0x9913 # <CJK> +0x9914 # <CJK> +0x9918 # <CJK> +0x991D # <CJK> +0x991E # <CJK> +0x9920 # <CJK> +0x9921 # <CJK> +0x9924 # <CJK> 0x9928 # <CJK> +0x992C # <CJK> +0x992E # <CJK> +0x993D # <CJK> +0x993E # <CJK> +0x9942 # <CJK> +0x9945 # <CJK> +0x9949 # <CJK> +0x994B # <CJK> +0x994C # <CJK> +0x9950 # <CJK> +0x9951 # <CJK> +0x9952 # <CJK> +0x9955 # <CJK> +0x9957 # <CJK> 0x9996 # <CJK> +0x9997 # <CJK> +0x9998 # <CJK> 0x9999 # <CJK> +0x99A5 # <CJK> +0x99A8 # <CJK> 0x99AC # <CJK> +0x99AD # <CJK> +0x99AE # <CJK> +0x99B3 # <CJK> +0x99B4 # <CJK> +0x99BC # <CJK> +0x99C1 # <CJK> 0x99C4 # <CJK> 0x99C5 # <CJK> 0x99C6 # <CJK> +0x99C8 # <CJK> 0x99D0 # <CJK> +0x99D1 # <CJK> 0x99D2 # <CJK> +0x99D5 # <CJK> +0x99D8 # <CJK> +0x99DB # <CJK> +0x99DD # <CJK> +0x99DF # <CJK> +0x99E2 # <CJK> +0x99ED # <CJK> +0x99EE # <CJK> +0x99F1 # <CJK> +0x99F2 # <CJK> +0x99F8 # <CJK> +0x99FB # <CJK> +0x99FF # <CJK> +0x9A01 # <CJK> +0x9A05 # <CJK> 0x9A0E # <CJK> +0x9A0F # <CJK> 0x9A12 # <CJK> 0x9A13 # <CJK> +0x9A19 # <CJK> +0x9A28 # <CJK> +0x9A2B # <CJK> 0x9A30 # <CJK> +0x9A37 # <CJK> +0x9A3E # <CJK> +0x9A40 # <CJK> +0x9A42 # <CJK> +0x9A43 # <CJK> +0x9A45 # <CJK> +0x9A4D # <CJK> +0x9A55 # <CJK> +0x9A57 # <CJK> 0x9A5A # <CJK> +0x9A5B # <CJK> +0x9A5F # <CJK> +0x9A62 # <CJK> +0x9A64 # <CJK> +0x9A65 # <CJK> +0x9A69 # <CJK> +0x9A6A # <CJK> +0x9A6B # <CJK> 0x9AA8 # <CJK> +0x9AAD # <CJK> +0x9AB0 # <CJK> 0x9AB8 # <CJK> +0x9ABC # <CJK> +0x9AC0 # <CJK> 0x9AC4 # <CJK> +0x9ACF # <CJK> +0x9AD1 # <CJK> +0x9AD3 # <CJK> +0x9AD4 # <CJK> 0x9AD8 # <CJK> +0x9ADE # <CJK> +0x9ADF # <CJK> +0x9AE2 # <CJK> +0x9AE3 # <CJK> +0x9AE6 # <CJK> 0x9AEA # <CJK> +0x9AEB # <CJK> +0x9AED # <CJK> +0x9AEE # <CJK> +0x9AEF # <CJK> +0x9AF1 # <CJK> +0x9AF4 # <CJK> +0x9AF7 # <CJK> +0x9AFB # <CJK> +0x9B06 # <CJK> +0x9B18 # <CJK> +0x9B1A # <CJK> +0x9B1F # <CJK> +0x9B22 # <CJK> +0x9B23 # <CJK> +0x9B25 # <CJK> +0x9B27 # <CJK> +0x9B28 # <CJK> +0x9B29 # <CJK> +0x9B2A # <CJK> +0x9B2E # <CJK> +0x9B2F # <CJK> 0x9B31 # <CJK> +0x9B32 # <CJK> +0x9B3B # <CJK> 0x9B3C # <CJK> +0x9B41 # <CJK> 0x9B42 # <CJK> +0x9B43 # <CJK> +0x9B44 # <CJK> 0x9B45 # <CJK> +0x9B4D # <CJK> +0x9B4E # <CJK> +0x9B4F # <CJK> +0x9B51 # <CJK> 0x9B54 # <CJK> +0x9B58 # <CJK> 0x9B5A # <CJK> +0x9B6F # <CJK> +0x9B74 # <CJK> +0x9B83 # <CJK> +0x9B8E # <CJK> +0x9B91 # <CJK> +0x9B92 # <CJK> +0x9B93 # <CJK> +0x9B96 # <CJK> +0x9B97 # <CJK> +0x9B9F # <CJK> +0x9BA0 # <CJK> +0x9BA8 # <CJK> +0x9BAA # <CJK> +0x9BAB # <CJK> +0x9BAD # <CJK> 0x9BAE # <CJK> +0x9BB4 # <CJK> +0x9BB9 # <CJK> +0x9BC0 # <CJK> +0x9BC6 # <CJK> +0x9BC9 # <CJK> +0x9BCA # <CJK> +0x9BCF # <CJK> +0x9BD1 # <CJK> +0x9BD2 # <CJK> +0x9BD4 # <CJK> +0x9BD6 # <CJK> +0x9BDB # <CJK> +0x9BE1 # <CJK> +0x9BE2 # <CJK> +0x9BE3 # <CJK> +0x9BE4 # <CJK> 0x9BE8 # <CJK> +0x9BF0 # <CJK> +0x9BF1 # <CJK> +0x9BF2 # <CJK> +0x9BF5 # <CJK> +0x9C04 # <CJK> +0x9C06 # <CJK> +0x9C08 # <CJK> +0x9C09 # <CJK> +0x9C0A # <CJK> +0x9C0C # <CJK> +0x9C0D # <CJK> +0x9C10 # <CJK> +0x9C12 # <CJK> +0x9C13 # <CJK> +0x9C14 # <CJK> +0x9C15 # <CJK> +0x9C1B # <CJK> +0x9C21 # <CJK> +0x9C24 # <CJK> +0x9C25 # <CJK> +0x9C2D # <CJK> +0x9C2E # <CJK> +0x9C2F # <CJK> +0x9C30 # <CJK> +0x9C32 # <CJK> +0x9C39 # <CJK> +0x9C3A # <CJK> +0x9C3B # <CJK> +0x9C3E # <CJK> +0x9C46 # <CJK> +0x9C47 # <CJK> +0x9C48 # <CJK> +0x9C52 # <CJK> +0x9C57 # <CJK> +0x9C5A # <CJK> +0x9C60 # <CJK> +0x9C67 # <CJK> +0x9C76 # <CJK> +0x9C78 # <CJK> 0x9CE5 # <CJK> +0x9CE7 # <CJK> +0x9CE9 # <CJK> +0x9CEB # <CJK> +0x9CEC # <CJK> +0x9CF0 # <CJK> +0x9CF3 # <CJK> 0x9CF4 # <CJK> +0x9CF6 # <CJK> +0x9D03 # <CJK> +0x9D06 # <CJK> +0x9D07 # <CJK> +0x9D08 # <CJK> +0x9D09 # <CJK> +0x9D0E # <CJK> +0x9D12 # <CJK> +0x9D15 # <CJK> +0x9D1B # <CJK> +0x9D1F # <CJK> +0x9D23 # <CJK> +0x9D26 # <CJK> +0x9D28 # <CJK> +0x9D2A # <CJK> +0x9D2B # <CJK> +0x9D2C # <CJK> +0x9D3B # <CJK> +0x9D3E # <CJK> +0x9D3F # <CJK> +0x9D41 # <CJK> +0x9D44 # <CJK> +0x9D46 # <CJK> +0x9D48 # <CJK> +0x9D50 # <CJK> +0x9D51 # <CJK> +0x9D59 # <CJK> +0x9D5C # <CJK> +0x9D5D # <CJK> +0x9D5E # <CJK> +0x9D60 # <CJK> +0x9D61 # <CJK> +0x9D64 # <CJK> +0x9D6C # <CJK> +0x9D6F # <CJK> +0x9D72 # <CJK> +0x9D7A # <CJK> +0x9D87 # <CJK> +0x9D89 # <CJK> 0x9D8F # <CJK> +0x9D9A # <CJK> +0x9DA4 # <CJK> +0x9DA9 # <CJK> +0x9DAB # <CJK> +0x9DAF # <CJK> +0x9DB2 # <CJK> 0x9DB4 # <CJK> +0x9DB8 # <CJK> +0x9DBA # <CJK> +0x9DBB # <CJK> +0x9DC1 # <CJK> +0x9DC2 # <CJK> +0x9DC4 # <CJK> +0x9DC6 # <CJK> +0x9DCF # <CJK> +0x9DD3 # <CJK> +0x9DD9 # <CJK> +0x9DE6 # <CJK> +0x9DED # <CJK> +0x9DEF # <CJK> +0x9DF2 # <CJK> +0x9DF8 # <CJK> +0x9DF9 # <CJK> +0x9DFA # <CJK> +0x9DFD # <CJK> +0x9E1A # <CJK> +0x9E1B # <CJK> +0x9E1E # <CJK> +0x9E75 # <CJK> +0x9E78 # <CJK> +0x9E79 # <CJK> +0x9E7D # <CJK> 0x9E7F # <CJK> +0x9E81 # <CJK> +0x9E88 # <CJK> +0x9E8B # <CJK> +0x9E8C # <CJK> +0x9E91 # <CJK> +0x9E92 # <CJK> 0x9E93 # <CJK> +0x9E95 # <CJK> 0x9E97 # <CJK> +0x9E9D # <CJK> +0x9E9F # <CJK> +0x9EA5 # <CJK> 0x9EA6 # <CJK> +0x9EA9 # <CJK> +0x9EAA # <CJK> +0x9EAD # <CJK> +0x9EB8 # <CJK> +0x9EB9 # <CJK> 0x9EBA # <CJK> 0x9EBB # <CJK> +0x9EBC # <CJK> +0x9EBE # <CJK> +0x9EBF # <CJK> 0x9EC4 # <CJK> +0x9ECC # <CJK> +0x9ECD # <CJK> +0x9ECE # <CJK> +0x9ECF # <CJK> +0x9ED0 # <CJK> 0x9ED2 # <CJK> +0x9ED4 # <CJK> +0x9ED8 # <CJK> 0x9ED9 # <CJK> +0x9EDB # <CJK> +0x9EDC # <CJK> +0x9EDD # <CJK> +0x9EDE # <CJK> +0x9EE0 # <CJK> +0x9EE5 # <CJK> +0x9EE8 # <CJK> +0x9EEF # <CJK> +0x9EF4 # <CJK> +0x9EF6 # <CJK> +0x9EF7 # <CJK> +0x9EF9 # <CJK> +0x9EFB # <CJK> +0x9EFC # <CJK> +0x9EFD # <CJK> +0x9F07 # <CJK> +0x9F08 # <CJK> +0x9F0E # <CJK> 0x9F13 # <CJK> +0x9F15 # <CJK> +0x9F20 # <CJK> +0x9F21 # <CJK> +0x9F2C # <CJK> 0x9F3B # <CJK> +0x9F3E # <CJK> +0x9F4A # <CJK> +0x9F4B # <CJK> +0x9F4E # <CJK> +0x9F4F # <CJK> +0x9F52 # <CJK> +0x9F54 # <CJK> +0x9F5F # <CJK> +0x9F60 # <CJK> +0x9F61 # <CJK> 0x9F62 # <CJK> -#0x20B9F # <CJK> +0x9F63 # <CJK> +0x9F66 # <CJK> +0x9F67 # <CJK> +0x9F6A # <CJK> +0x9F6C # <CJK> +0x9F72 # <CJK> +0x9F76 # <CJK> +0x9F77 # <CJK> +0x9F8D # <CJK> +0x9F95 # <CJK> +0x9F9C # <CJK> +0x9F9D # <CJK> +0x9FA0 # <CJK> +#0xFFE5 # FULLWIDTH YEN SIGN diff --git a/chromium/third_party/fontconfig/src/fc-lang/ko.orth b/chromium/third_party/fontconfig/src/fc-lang/ko.orth index 4bb52c6f487..39114a5af1f 100644 --- a/chromium/third_party/fontconfig/src/fc-lang/ko.orth +++ b/chromium/third_party/fontconfig/src/fc-lang/ko.orth @@ -86,6 +86,7 @@ 0x3161 # HANGUL LETTER EU 0x3162 # HANGUL LETTER YI 0x3163 # HANGUL LETTER I +0x3164 # HANGUL FILLER 0x3165 # HANGUL LETTER SSANGNIEUN 0x3166 # HANGUL LETTER NIEUN-TIKEUT 0x3167 # HANGUL LETTER NIEUN-SIOS diff --git a/chromium/third_party/fontconfig/src/fc-lang/zh_hk.orth b/chromium/third_party/fontconfig/src/fc-lang/zh_hk.orth index 8701cbcbc95..5d5ef052696 100644 --- a/chromium/third_party/fontconfig/src/fc-lang/zh_hk.orth +++ b/chromium/third_party/fontconfig/src/fc-lang/zh_hk.orth @@ -2,7 +2,6 @@ # fontconfig/fc-lang/zh_hk.orth # # Copyright © 2002 Keith Packard -# Copyright © 2014 Abel Cheung # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that @@ -24,610 +23,546 @@ # # Chinese Hong Kong Supplementary Character Set (ZH-HK) # -# This list is a concatenation of: -# (1) Most frequently used HKSCS characters accounting for ~99.75% usage in: -# i. Around 11000 crawled UTF-8 Hong Kong web pages in -# http://html5.org/temp/hk-data.tar.gz -# ii. Database dump of main content in Cantonese Wikipedia dated 20131228: -# http://dumps.wikimedia.org/zh_yuewiki/ -# (2) Word recommendation list from a local linguist: -# http://founder.acgvlyric.org/iu/doku.php/%E9%80%A0%E5%AD%97:%E5%B8%B8%E7%94%A8%E9%A6%99%E6%B8%AF%E5%A4%96%E5%AD%97%E8%A1%A8 -# Level 1-5 characters are taken, excluding non-HKSCS chars. -# -3007 -344C -3464 -3473 -347A -347D -347E -3493 -3496 -34A5 -34BC -34C1 -34C8 -34DF -34E4 -34FB -3506 -353E -3551 -3561 -356D -3570 -3572 -3577 -3578 -3584 -3597 -35A1 -35A5 -35AD -35BF -35C1 -35C5 -35C7 -35CA -35CE -35D2 -35D6 -35DB -35F1 -35F2 -35F3 -35FB -35FE -3609 -361A -3623 -362D -3635 -3639 -3647 -3648 -3649 -364E -365F -367A -3681 -36A5 -36AA -36AC -36B0 -36B1 -36B5 -36B9 -36BC -36C1 -36C3 -36C4 -36C5 -36D3 -36D4 -36D6 -36DD -36E5 -36E6 -36F5 -3703 -3708 -370A -370D -371C -3723 -3725 -3730 -3732 -3733 -373A -3740 -3743 -3762 -376F -3797 -37A0 -37B9 -37BE -37F2 -37F8 -37FB -380F -3819 -3820 -382D -3836 -3838 -3863 -38A0 -38C3 -38CC -38D1 -38FA -3908 -3914 -3927 -3932 -393F -394D -3963 -3980 -3989 -398A -3992 -399B -39A1 -39A4 -39B8 -39DC -39E2 -39E5 -39EC -39F8 -39FB -39FE -3A01 -3A03 -3A06 -3A17 -3A18 -3A29 -3A2A -3A34 -3A4B -3A52 -3A57 -3A5C -3A5E -3A66 -3A67 -3A97 -3AAB -3ABD -3ADE -3AF0 -3AF2 -3AFB -3B0E -3B19 -3B22 -3B2B -3B39 -3B42 -3B58 -3B60 -3B71 -3B72 -3B7B -3B7C -3B80 -3B96 -3B99 -3BA1 -3BBE -3BC2 -3BC4 -3BD7 -3BDD -3BEC -3BF2 -3BF3 -3C0D -3C11 -3C15 -3C54 -3CCB -3CCD -3CD1 -3CD6 -3CDC -3CEB -3D13 -3D1D -3D32 -3D46 -3D4C -3D4E -3D51 -3D5F -3D62 -3D69 -3D6A -3D6F -3D75 -3D7D -3D85 -3D8F -3D91 -3DA5 -3DAD -3DB4 -3DBF -3DC6 -3DC7 -3DCD -3DD3 -3DDB -3DEB -3DF3 -3DF7 -3DFC -3E40 -3E43 -3E48 -3E55 -3E74 -3EA8 -3EA9 -3EAA -3EAD -3EB1 -3EB8 -3EBF -3EC2 -3ECA -3ECC -3ED1 -3ED6 -3ED7 -3EDE -3EE1 -3EE7 -3EEB -3EF0 -3EFA -3EFF -3F04 -3F0E -3F58 -3F59 -3F63 -3F93 -3FC0 -3FD7 -3FDC -3FE5 -3FED -3FF9 -3FFA -4004 -4039 -4045 -4053 -4057 -4062 -4065 -406A -406F -40BB -40BF -40C8 -40D8 -40DF -40FA -4103 -4104 -4109 -410E -4132 -4167 -416C -416E -417F -4190 -41B2 -41CF -41DB -41EF -41F9 -4211 -4240 -4260 -426A -427A -4294 -42A2 -42B5 -42B9 -42BC -42F4 -42FB -42FC -432B -436E -4397 -43BA -43C1 -43D9 -43DF -43ED -43F2 -4401 -4402 -4413 -447A -448F -449F -44A0 -44B0 -44B7 -44DD -44DF -44E4 -44EA -44F4 -4503 -4504 -4509 -4516 -4527 -452E -4533 -453B -453F -4543 -4551 -4552 -4555 -4562 -456A -4577 -4585 -45E9 -4603 -4606 -460F -4615 -4617 -465B -467A -46CF -46D0 -46F5 -4718 -477C -47D5 -47ED -47F4 -4800 -480B -4871 -489B -48AD -48D0 -48DD -48ED -48FA -4906 -491E -492A -492D -4935 -493C -493E -4945 -4951 -4953 -4965 -496A -4972 -4989 -49A7 -49DF -49E5 -4A0F -4A1D -4A24 -4A35 -4A96 -4AB4 -4AB8 -4AD1 -4AE4 -4AFF -4B19 -4B2C -4B37 -4B6F -4B70 -4B72 -4B7B -4B7E -4B8E -4B90 -4B93 -4B96 -4B97 -4B9D -4BBD -4BBE -4BC0 -4C04 -4C07 -4C0E -4C3B -4C3E -4C5B -4C6D -4C77 -4C7B -4C7D -4C81 -4CAE -4CB0 -4CCD -4CE1 -4CED -4D09 -4D10 -4D34 -4D77 -4D91 -4D9C +# Taken from the HKSCS-2001, including only the non-PUA BMP glyphs +# as encoded in ISO/IEC 10646-1:2000 4E04 +4E1A +4E1C 4E21 +4E24 +4E28 4E2A +4E2C +4E2F +4E36 +4E37 +4E3D +4E3F +4E49 4E5A 4E5B 4E6A 4E78 4E80 +4E81 4E85 +4E87 +4E89 4E98 +4E9A +4EA0 +4EA3 +4EB7 +4EBB +4EBC +4EBF 4ECE +4EEA +4EEB 4EEE +4EF8 +4F03 +4F17 +4F1A +4F28 +4F29 +4F32 4F37 +4F39 +4F42 +4F45 +4F4B +4F72 +4F8A +4FA2 +4FA8 +4FAB +4FB0 +4FBD +4FC8 +4FCC +4FE4 4FE5 +4FF0 +4FF2 4FF9 +4FFD +5003 5008 +502E +5034 503B +5056 +5058 +5066 +506C +5081 +5088 +5090 +50A6 +50BC 50CD +50D0 +50D9 +50DF +50E1 +50F4 +50FC +5101 510D 510E +512B +5156 +5160 516A +5174 +5179 +5182 5186 +5188 +5196 519A +519C 51A7 51A8 +51AB +51AE 51B2 51B3 51B4 51B5 +51B8 +51C3 +51C7 51C9 +51CF +51D1 +51D2 +51D3 +51DB +51DF +51E2 +51E4 51ED 51F4 +51FC +51FE +5202 +5205 520B +521F +5220 5226 5227 5234 523C 5257 +5259 +5260 +5268 +5273 +5279 528F +5290 +5294 +529A +52A1 +52A4 +52A8 52B5 52B9 52C5 +52CC +52D0 52D1 +52E0 +52E1 +52F9 +5301 +5324 +5327 +532C +5332 +5333 5338 +533B +5342 +534E +535D +535F +5364 +5367 +5369 +536D 5374 537D +537E 5393 53A0 +53A2 53A6 53A8 +53A9 +53AA +53AB +53AE +53B0 +53B6 53C1 +53C2 +53C5 53CC +53D0 +53D1 +53D2 +53D8 53D9 +53DA 53E0 53F6 +53F7 53FE 5413 5414 5416 +541A 5421 -544C +5423 +542F +5432 +5434 +544B 544D +5469 546A 546D +5485 548F 5493 5494 5497 +549C +549E +54A3 54A4 54B2 +54B4 +54B9 54CB +54CC 54CD +54D0 +54DA 54E3 +54EF 5502 +550D 5513 +5518 551E +5523 5525 +5528 +552B +553F +5547 +5549 5553 555D 5569 556B 5571 5572 +5573 5579 5586 5590 55A9 55B0 +55B4 +55B9 55BA 55BC +55C1 55D7 +55D8 55DE +55EA 55EC 55F0 55F1 +55F5 55FB 5605 5611 561E +5620 +5621 5622 5623 5625 562D +5637 5643 564D 564F +5650 5652 5654 565D +5661 +567A +567B +567C 5689 +568A +568B 5692 +569E 569F 56A1 56A4 +56AF 56B1 56B9 56BF 56D6 +56E2 +56ED +56EF +56F1 56FD +5700 +5715 +571D +5732 +573D +573F 5742 +5743 +5746 +5754 +5757 +575B +575F +5767 577A +577E +577F +5788 +578A +578D +5790 +579C +57A1 +57A7 +57AA +57B4 +57BB +57BE +57C4 57C8 57D7 +57DD 57DE +57E6 +57EF +57FE 5803 +5812 +5822 5826 583A 5840 +5844 +5847 +585C +585F 5869 +586C 5872 5873 +5892 +5899 +589A +58A7 58AA +58B0 +58B5 +58B6 58BB +58CB +58D0 +58DC 58E0 +58F0 58F2 58F3 58FB +5902 +5904 +5905 +5907 590A +5911 +591F +5932 +5934 +5965 5975 +5989 +5994 +599A 599F 59AC +59B0 +59B7 +59B8 +59C4 59C9 +59D9 59EB +59EF +59F0 59F8 +59F9 +5A02 +5A0B +5A0D +5A12 +5A1A +5A21 +5A24 +5A27 +5A2A 5A2B +5A2C +5A3D +5A45 +5A54 +5A59 +5A61 +5A63 +5A68 +5A6B +5A6E +5A71 +5A79 5A7E +5A81 +5A82 +5A86 +5A88 +5A91 +5A96 +5A99 +5AA0 +5AA1 +5AAB +5AC3 +5ACE +5ACF +5AD3 +5AE4 +5AF0 5AF2 5AFA +5AFE +5B0D +5B11 +5B15 +5B1F +5B2B +5B41 +5B44 5B46 +5B4A +5B4F +5B66 +5B68 5B6D +5B74 +5B76 +5B7C +5B80 +5B82 +5B90 +5B96 5B9D +5B9E 5B9F +5BAA 5BC3 -5BDB +5BD5 +5BD7 5BF3 +5BFF 5C05 +5C13 +5C14 +5C1C +5C1E +5C20 +5C23 +5C49 5C4A +5C53 5C5E +5C85 +5C99 +5C9A +5C9C +5C9E +5CBA +5CC1 +5CC2 +5CD1 +5CE5 +5CE9 5CEF +5CF5 +5D10 +5D15 +5D18 +5D2C +5D2F +5D3E +5D46 +5D48 +5D56 +5D57 +5D5B +5D70 +5D74 +5D7B +5D85 5D8B +5D8E +5DA4 +5DAB +5DB6 +5DB9 +5DC1 +5DD7 +5DDB 5DF5 +5E09 +5E0B +5E12 +5E2E +5E42 +5E48 +5E5E 5E7A +5E7F 5E83 +5E86 +5E92 +5E99 +5EBD +5ECD 5ED0 +5EF4 5EF8 5EF9 5EFB @@ -635,485 +570,1671 @@ 5F0C 5F0D 5F0E +5F25 +5F3A +5F4D +5F50 +5F51 5F5C +5F61 +5F63 +5F72 +5F7B +5F83 +5FA4 5FA7 +5FB1 +5FBA +5FC2 +5FC4 +5FDB 5FDF +6023 6031 +603B +604A +6052 6075 +6077 +607E 609E 60A4 +60A7 +60B3 60D7 +60DE 60E3 +60E7 +60E8 +60E9 +60FD +6107 +610C +6119 +6122 +6130 +613D +6142 +6150 6159 +615C +6160 6164 +616F 617D +6181 6187 +6195 +6198 +6199 +619C +61B7 +61B9 +61C0 +61CF 61D0 +61D3 +61DA +61E2 +622C +6237 6239 +624C +6268 +6282 +6285 +6290 629D +62A4 62A6 62C3 62C5 62D5 +62DF +62E5 +6318 +632E 6331 +6335 +6337 +6364 +636C 6379 +637F +638B 63B9 +63C1 63D1 63DE +63E2 63E6 63F8 +63FB 63FC 63FE 6407 6432 +6438 643A +643B +645A +6471 647C 648D 6491 +64AF 64B4 +64B6 +64C0 +64D3 64DD 64E1 +64E5 64E7 +64EA +650A +6511 651E +651F 6530 +6534 +6535 654D +655F +656B +656D +6585 6586 +6588 6589 +658B +65B5 +65BE +65D1 +65D4 +65E0 65E3 +65FF +6618 +661E +6623 6630 6644 +6648 664B +6653 +6657 +6663 6667 666B 6673 +667D +6685 668E +6692 +669A +66A4 +66AD +66B3 +66B6 +66BF +66CD +66CE 66F1 +6702 +670C +670E +6716 +6719 +671E 6725 6736 +6744 6761 +6762 6767 +676B +678F 67A0 +67A4 +67AC 67B1 +67BF +67D6 +67D7 +67F9 +67FE +6800 +6801 +6802 6803 6804 +680D +6810 +681B 681E 6822 +6836 +6837 +683E +6847 +684A +6855 +6856 +685D +6865 +6884 +6888 6898 +68A6 68B6 +68B9 +68BD +68C3 +68C5 +68CA 6900 +6901 +6902 +6903 +6909 +6918 +6919 +691A +691B +692C 6936 +693E +6943 +6946 +6955 6961 +6964 +6967 +6972 6973 +6980 +6985 698A +6998 +699F +69A2 69B2 +69C0 +69D1 +69D5 +69D6 +69E1 +69E9 +69F9 +69FA +6A03 6A0B +6A0C +6A1A +6A1C 6A2B +6A2C +6A2D +6A33 +6A43 +6A45 +6A4C +6A52 +6A53 +6A57 +6A63 +6A65 +6A71 +6A74 +6A7A +6A82 +6A8A +6A8F +6A99 +6A9D +6AA7 +6AAB +6AB1 +6AB2 +6AB5 +6ABE 6AC8 +6AC9 +6ACA +6AD4 +6AD8 +6AF6 +6B05 +6B1D 6B35 +6B52 +6B57 6B6F 6B74 6B7A +6B81 +6BC1 +6BDC 6BE1 +6BEA +6BFA +6C1C +6C31 +6C35 6C37 6C39 +6C3A +6C3D +6C49 +6C58 6C5A +6C6E +6C75 +6C79 +6C7F +6C9F 6CA2 +6CAA +6CAF +6CB2 +6CCB +6CCE +6CDF 6CEA +6CFF +6D02 +6D05 +6D06 +6D24 +6D26 +6D4E +6D57 +6D5B 6D5C +6D71 6D72 +6D81 +6D8F 6D96 +6DA4 +6DA5 +6DB1 +6DB9 +6DFE +6E02 +6E04 +6E0A +6E0F 6E15 +6E18 6E29 +6E2A +6E4F +6E50 +6E59 +6E76 6E7C +6E86 +6E8B +6E9A +6EB5 +6EB8 +6EBB 6ED9 +6EDA 6EDB 6EDD +6EE2 +6EE8 +6EE9 +6EFA +6F04 +6F0B +6F0C 6F16 +6F17 +6F24 +6F34 +6F3D +6F44 6F56 +6F5C +6F74 +6F79 6F81 +6F8A +6F9D +6F9F +6FB5 +6FBB 6FBE +6FD3 +6FD9 +6FDA 6FF6 +6FF8 +7003 701E 702C +704B +704D +7050 +7054 +705C +7067 +706C +706F +7075 +7077 +7079 +707E +707F 7081 7089 +708B +708F +70A0 +70A3 +70A5 +70A6 +70A7 70B9 +70BB +70BC +70BD +70C0 +70C4 +70CC +70D0 +70D5 +70D6 70DF 70F1 +70F5 +70FE 7105 +711D +7129 712B +712C +7133 +7134 +7135 +713B +713E 7140 7145 714A +714F 7151 +716B 7171 +7173 +7175 +7176 +7177 +717A +717C +717E +7188 +718C +718E +7191 +7196 +7198 +71A2 +71A3 +71AD +71B4 +71B7 +71BA +71D1 +71DD +71EB +71F5 71F6 +7200 +7209 +720E +720F 7215 +7216 +7217 +7224 +722B +722E 7240 +7250 +7255 +7257 +725C +7266 7282 7287 +728F +7294 +729F +72AD +72B2 +72CD +72E2 +7302 +7304 +7310 +7328 732A +732B +732C 732E +7338 +7339 7341 +7348 +734F +7371 7374 +738C +738F +7398 +739C +739E +73A7 +73AA +73BA 73C9 +73CE 73CF +73D0 +73D5 +73E1 +73E2 +73E4 +73E6 +73EF +73F3 +73F7 +73F9 +73FB +7402 +7411 +7412 +7414 +7415 +7417 +7419 +741C +741E +741F +7437 +7438 7439 743C +7443 +7445 +7447 7448 +7449 +7453 +7456 +745D 7460 +7465 +7468 +746B +746C +7474 +7476 +747A +7482 +748C +748D +7499 +749B +74A4 +74B4 +74B9 +74C8 +74CC +74D0 +74D3 +74E7 +74F0 +74F1 +74F2 +74F8 7505 +750E +7519 +751E 7534 +7535 753B +7542 +7546 754A +754D 7551 7553 +7555 7560 7567 +756D +756E +7572 +757A +7583 758D 758E +7592 +759E 75B1 75B4 +75C3 +75C8 +75DC 7602 +7607 +762C 763B +7640 +764D 764E +764F +7651 +7654 7666 7667 +766F +7673 +7674 7676 767A +7690 +76A1 +76A5 +76B7 +76CC +76D6 +76D9 770C +770E +770F 771E +7724 +7726 +772B 7740 +7743 7758 +7772 +7777 7778 777A +777B 7793 +7798 +77AF 77B9 +77BE +77C3 +77C5 77CB +77DD +77E6 +77F4 +77FE 7808 +7818 +781C +781E +7839 +783C +783D +7842 +7844 +7847 +784B +7851 +7853 +7854 +7866 +787A 7881 +7888 788D +78AF 78B1 +78B6 78B8 +78B9 +78C7 +78D2 +78D3 78D7 +78D8 +78E4 +78EE +78F0 +78F1 +78F5 7906 792E +7932 +7933 +7934 +7936 +793B +793C 7958 +7959 7962 +7971 +797E +7980 +7983 +7986 +7987 7991 +7999 +799D +799F +79A5 +79A9 79C4 +79C6 +79CC +79D4 +79E2 +79F1 +79F4 +7A06 +7A2A +7A2D +7A3A +7A3E +7A43 +7A45 +7A49 +7A65 +7A7D +7A83 +7A91 7A93 7AB0 +7ABB +7ABC +7AC2 +7AC3 7AC8 7AC9 +7ACF +7AD3 +7ADA +7ADB 7ADC 7ADD +7AE2 +7AE7 +7AE9 7AEA +7AFE 7B0B +7B0C +7B14 +7B1F +7B27 +7B29 7B39 +7B42 +7B43 +7B55 +7B62 +7B6C 7B6F +7B7B +7B92 +7BA2 +7BA3 +7BB2 +7BCF +7BD0 +7BEC +7BFA +7BFC +7C12 7C15 +7C1B +7C35 +7C42 +7C44 +7C51 +7C56 +7C5D +7C6D +7C70 +7C74 +7C7B +7C7C +7C7E +7C83 +7C86 +7C8E +7C9C 7CA6 7CA7 +7CAC 7CAE +7CB8 +7CC2 +7CC3 +7CC7 7CC9 7CCD +7CD3 +7CDA +7CE6 7CED +7CF3 +7CF5 7CF9 7CFC 7D25 +7D4D +7D5A 7D5D 7D89 +7D8B +7D97 +7DA4 +7DA8 7DAB 7DB3 7DCD 7DCF +7DD0 +7DD3 +7DD4 7DDC +7DE4 +7DE5 +7DF5 +7DFD +7DFE +7E07 +7E27 +7E5B +7E65 +7E67 +7E6C 7E6E +7E7F +7E8E +7E92 +7E9F +7EA4 +7EAC +7EBA +7EC7 +7ECF +7EDF +7F06 +7F37 +7F40 +7F41 7F47 7F49 7F4E +7F52 +7F53 +7F71 7F78 +7F8F +7F93 7F97 7FA3 +7FAE +7FB4 +7FDD +7FE7 +7FFA +8002 +8008 +801D +8020 +8025 +802E +802F +8031 +803B +803C +8054 +805B 8061 +8062 +8063 +8066 +8080 +809F +80A7 80B6 +80B7 +80BC 80BD 80C6 +80E9 +80EC +80F6 +8103 8107 +8109 +810C +810E +8112 +8114 8117 +811A +812A +8132 +8134 8137 +8142 +8148 +8156 +8159 +815A +816D +817C +8184 +8193 81A5 +81AA 81B6 +81C1 +81C8 +81E4 81EF +81F6 8218 +821A 8226 +8229 +822D +823E +8254 +8262 +8265 8276 +8279 +827A +827B +8287 82A6 82AA +82BF +82C4 +82CA +82CF +82D0 +82D8 +82E2 +82EE 82F7 +82F8 +82FC +82FD +82FF +830B 8318 +831A +831D +833D +8357 +8362 +8363 +8366 +836F +8385 +8391 +839C +83AC +83B9 +83BE +83CD 83D3 +83ED +8405 +8414 +8416 8418 +841C 8420 +8421 +8424 +8426 +842E +843E +8448 +844A +8453 +8455 +8458 +845C +8462 +8464 8471 +8472 +847F +8480 +8488 +8492 +8493 +8496 +84A3 84AD 84BD +84BE +84DA +84DE +84E1 84E2 +84E4 +84E5 +84F8 8503 +8505 +8510 +8533 8534 +8538 +8542 +854B +854C +8552 +855A +855F +856F 8570 +8573 +8597 +85C1 +85D6 +85E0 +85EE +85FC 8602 +860D +860F +8610 +8614 +8616 +8628 862F +8642 +8645 +866C +8672 +867E +8692 +86A0 +86AD +86B2 86EF +8770 +8771 +877D 8786 +878B +878C +87A5 +87A9 +87B1 +87C1 87CE +87D6 +87DA +87EE +87F5 8804 +880F +8818 +8827 882D +8842 +8845 8846 +884F 885E +8860 +8864 +8865 +886E +8884 +8887 +888F +8890 889C +88A0 +88AE +88B4 +88B5 +88BF +88C5 88C7 88CF +88E6 +88F5 +88FF +8900 +8924 +8943 8947 +894D +8954 +8965 +8977 +8980 8987 +8989 +898A +8991 8994 89A5 89A7 +89A9 +89BC +89C1 +89C6 +89E7 +8A1C +8A29 +8A2B +8A38 +8A3D +8A49 +8A67 +8A7E +8A90 8A94 +8A9C +8AA9 +8AAF +8AB4 +8ADA +8AEA +8B0C +8B1F +8B2D +8B3F +8B43 8B4C +8B4D +8B5E +8B62 +8B69 8B81 8B83 8B90 +8B9B +8BA0 +8BBE +8BE2 +8C51 +8C9B +8C9F +8CAD 8CCD +8CD4 +8CD6 8CDB +8CE9 +8CEB +8CF2 +8CF7 8D03 8D0B +8D0C +8D11 +8D12 +8D18 +8D1C +8D1D +8D7A +8D82 +8DA6 +8DA9 +8DC0 +8DC3 +8DD4 +8E01 8E0E +8E28 8E2A 8E2D +8E3A +8E46 8E4F +8E68 +8E71 +8E75 +8E77 8E7E 8E80 +8EA7 8EAD +8EB0 +8EB6 +8EB9 +8EBC +8EC3 +8ECE 8EDA 8EE2 +8EE4 +8EED 8EF2 +8F19 8F2D +8F30 +8F41 +8F4A +8F5C +8F66 +8F67 +8F6E +8F93 +8FA0 +8FA5 +8FA7 +8FB3 8FB5 +8FB6 +8FB7 +8FB8 +8FB9 8FBA 8FBB 8FBC +8FBE +8FC1 +8FCA +8FCC +8FCF +8FD0 +8FDA 8FF9 +9008 +9012 9033 +9037 +904C 9056 9061 +9064 +906C 90A8 +90AE +90BB +90C4 +9151 +9159 +915C +915E +9167 +9170 9176 +917C +918C +918E +91A9 +91B6 +91BB +91C4 +91D6 +91DF +91E5 +91F6 +91FA +91FE 9208 920E +9213 +9221 +9228 922A +922B +9235 +923C +9241 9244 9255 +9258 925D +925F 9262 +926B 926E +9277 +9281 +9284 +9289 +928F +92AE +92B1 92B9 +92BA 92BE +92BF +92D4 +92DB +92E3 +92E5 +92EB +92EC +92F2 +92F3 +92F4 +92F6 +92FD +9303 9307 +932C +9330 +9331 9340 +9341 +9342 +9343 +9344 9345 9348 +935F +9362 +9366 +9368 9369 +936B +936E +9373 +9374 +9378 +937D +9381 9384 9385 +9386 9387 +9390 +939C +93A0 93AD +93B8 +93BB +93BD 93BF +93C6 +93CB +93D3 +93DB +93E0 93F0 +93F1 +93F3 +93F4 +9401 9404 +9408 +9417 +941B +941D +9424 +9425 9426 9427 +942D +943E +9442 +9443 +944D 9454 +9458 945B 9465 +9467 +946C +9479 +947B +9485 +949F +94A2 +94C1 +94C3 +94DC +94F6 +952D +9547 +9578 +957F +9585 +9596 +9597 9599 +95A0 95A2 +95A6 +95A7 95AA +95E8 +95F4 +961D +9633 +9638 +9641 +9645 +9656 +9669 +967B +9681 +968F 9696 96A3 +96A5 +96B6 +96BD +96F4 +9703 +971B 9721 +9731 +9736 +9740 +9741 9751 +9755 +9757 +975D +975F 976D +9771 +9787 +9789 +979B +979F +97B1 +97B2 +97B4 +97B8 +97BA +97BD +97BE +97C0 +97C2 +97C8 +97D2 +97E0 +97E6 97EE +97F2 97F5 +9814 +9815 +981F +9823 +982E +9833 9834 +9847 +984B +9866 +9868 +986C +9875 +98B4 98B7 +98B9 +98C3 +98C7 98C8 +98CA +98CE +98DC +98DE 98E0 +98E1 +98E6 +98EC +98F1 +98F5 +990E +9919 991C +9937 9938 +9939 +993B +9940 +9942 994A 994D +995D 9962 +9963 +999B +99A4 +99AA +99B8 +99BC +99C4 99C5 +99DA +99E0 99E1 +99E6 +99F5 +9A0C 9A10 +9A1F +9A21 +9A26 +9A2F +9A3B +9A3C +9A58 +9A5C +9A63 +9A6C +9A8F +9AB2 +9AB6 +9ABA +9ABD +9AD7 +9AE0 +9AE2 +9AF4 +9AFF +9B02 +9B09 +9B0F +9B14 9B2A 9B2D +9B34 +9B39 +9B40 +9B50 +9B69 +9B7F 9B81 +9B83 9B8B +9B8D 9B8E +9B8F +9B97 +9B9D +9B9F +9BB0 +9BCF +9BDD +9BE9 9BED 9BF1 +9BF4 9BFF 9C02 +9C0A 9C0C +9C10 +9C15 +9C1B +9C1F +9C20 +9C26 9C2F 9C35 9C3A 9C45 +9C4F +9C53 9C5D 9C72 +9C7B +9C7C +9D02 +9D0C +9D16 +9D21 9D34 +9D39 +9D44 +9D49 +9D4E 9D50 9D5E +9D6D +9D6E +9D7C +9D7E +9D83 9D93 +9DA5 +9DAB +9DBD 9DC0 9DC4 9DC9 9DD4 +9DFC 9E0A 9E0C +9E0E +9E18 +9E1C +9E1F +9E7B +9E81 +9E84 +9E85 9E90 9E95 9E96 +9E98 +9E9E +9EA2 +9EA6 +9EA8 9EAA 9EAB +9EAC 9EAF +9EB1 +9EBD 9EBF +9EC1 +9EC4 +9EC6 +9EC7 +9EE2 +9EF1 +9EF8 +9EFE +9F02 9F08 +9F17 9F26 +9F27 +9F39 +9F44 +9F45 +9F50 +9F53 +9F5A 9F62 +9F69 +9F7F 9F8E -200CA -201A4 -201A9 -20325 -20341 -2070E -20779 -20C41 -20C53 -20C65 -20C78 -20C96 -20CB5 -20CCF -20D31 -20D71 -20D7E -20D7F -20D9C -20DA7 -20E04 -20E09 -20E4C -20E73 -20E76 -20E7A -20E9D -20EA2 -20ED7 -20EF9 -20F2D -20F2E -20F3B -20F4C -20FB4 -20FEA -21014 -2105C -2106F -21075 -21076 -2107B -210C1 -210D3 -2113D -21145 -2114F -2197C -21A34 -21C2A -21DF9 -220C7 -221A1 -22ACF -22B43 -22BCA -22C51 -22C55 -22C62 -22CB2 -22CC2 -22D4C -22D67 -22D8D -22DEE -22F74 -23231 -23595 -236BA -23CB7 -23E89 -23F80 -244D3 -24DB8 -24DEA -24EA7 -2512B -25148 -2517E -25535 -25E49 -26258 -266DA -267CC -2688A -269F2 -269FA -27285 -27574 -27657 -27735 -2775E -2789D -2797A -279A0 -27A3E -27A59 -27D73 -28024 -280BD -2815D -28207 -282E2 -2836D -289C0 -289DC -28A0F -28B46 -28B4E -28CCA -28CCD -28CD2 -28D99 -28EE7 -294E5 -29720 -298D1 -29A4D -29D98 -2A632 -2A65B +9F99 +9F9F +9FA5 +20547 diff --git a/chromium/third_party/fontconfig/src/fc-query/fc-query.c b/chromium/third_party/fontconfig/src/fc-query/fc-query.c index 9bd398059ac..2983e0f199b 100644 --- a/chromium/third_party/fontconfig/src/fc-query/fc-query.c +++ b/chromium/third_party/fontconfig/src/fc-query/fc-query.c @@ -52,7 +52,6 @@ #define _GNU_SOURCE #include <getopt.h> static const struct option longopts[] = { - {"ignore-blanks", 0, 0, 'b'}, {"index", 1, 0, 'i'}, {"format", 1, 0, 'f'}, {"version", 0, 0, 'V'}, @@ -71,26 +70,24 @@ usage (char *program, int error) { FILE *file = error ? stderr : stdout; #if HAVE_GETOPT_LONG - fprintf (file, "usage: %s [-Vbh] [-i index] [-f FORMAT] [--ignore-blanks] [--index index] [--format FORMAT] [--version] [--help] font-file...\n", + fprintf (file, "usage: %s [-Vh] [-i index] [-f FORMAT] [--index index] [--format FORMAT] [--version] [--help] font-file...\n", program); #else - fprintf (file, "usage: %s [-Vbh] [-i index] [-f FORMAT] font-file...\n", + fprintf (file, "usage: %s [-Vh] [-i index] [-f FORMAT] font-file...\n", program); #endif fprintf (file, "Query font files and print resulting pattern(s)\n"); fprintf (file, "\n"); #if HAVE_GETOPT_LONG - fprintf (file, " -b, --ignore-blanks ignore blanks to compute langauges\n"); fprintf (file, " -i, --index INDEX display the INDEX face of each font file only\n"); fprintf (file, " -f, --format=FORMAT use the given output format\n"); fprintf (file, " -V, --version display font config version and exit\n"); fprintf (file, " -h, --help display this help and exit\n"); #else - fprintf (file, " -b (ignore-blanks) ignore blanks to compute languages\n"); - fprintf (file, " -i INDEX (index) display the INDEX face of each font file only\n"); - fprintf (file, " -f FORMAT (format) use the given output format\n"); - fprintf (file, " -V (version) display font config version and exit\n"); - fprintf (file, " -h (help) display this help and exit\n"); + fprintf (file, " -i INDEX (index) display the INDEX face of each font file only\n"); + fprintf (file, " -f FORMAT (format) use the given output format\n"); + fprintf (file, " -V (version) display font config version and exit\n"); + fprintf (file, " -h (help) display this help and exit\n"); #endif exit (error); } @@ -100,24 +97,19 @@ main (int argc, char **argv) { int index_set = 0; int set_index = 0; - int ignore_blanks = 0; FcChar8 *format = NULL; - FcBlanks *blanks = NULL; int err = 0; int i; #if HAVE_GETOPT_LONG || HAVE_GETOPT int c; #if HAVE_GETOPT_LONG - while ((c = getopt_long (argc, argv, "bi:f:Vh", longopts, NULL)) != -1) + while ((c = getopt_long (argc, argv, "i:f:Vh", longopts, NULL)) != -1) #else - while ((c = getopt (argc, argv, "bi:f:Vh")) != -1) + while ((c = getopt (argc, argv, "i:f:Vh")) != -1) #endif { switch (c) { - case 'b': - ignore_blanks = 1; - break; case 'i': index_set = 1; set_index = atoi (optarg); @@ -143,8 +135,6 @@ main (int argc, char **argv) if (i == argc) usage (argv[0], 1); - if (!ignore_blanks) - blanks = FcConfigGetBlanks (NULL); for (; i < argc; i++) { int index; @@ -155,7 +145,7 @@ main (int argc, char **argv) do { FcPattern *pat; - pat = FcFreeTypeQuery ((FcChar8 *) argv[i], index, blanks, &count); + pat = FcFreeTypeQuery ((FcChar8 *) argv[i], index, NULL, &count); if (pat) { if (format) diff --git a/chromium/third_party/fontconfig/src/fc-query/fc-query.sgml b/chromium/third_party/fontconfig/src/fc-query/fc-query.sgml index fd51d217157..5351d1e4d70 100644 --- a/chromium/third_party/fontconfig/src/fc-query/fc-query.sgml +++ b/chromium/third_party/fontconfig/src/fc-query/fc-query.sgml @@ -65,10 +65,6 @@ manpage.1: manpage.sgml <arg><option>-Vh</option></arg> <sbr> <group> - <arg><option>-b</option></arg> - <arg><option>--ignore-blanks</option></arg> - </group> - <group> <arg><option>-i</option> <option><replaceable>index</replaceable></option></arg> <arg><option>--index</option> <option><replaceable>index</replaceable></option></arg> </group> @@ -101,14 +97,6 @@ manpage.1: manpage.sgml <variablelist> <varlistentry> - <term><option>-b</option> - <option>--ignore-blanks</option> - </term> - <listitem> - <para>Ignore blanks to compute languages</para> - </listitem> - </varlistentry> - <varlistentry> <term><option>-i</option> <option>--index</option> <option><replaceable>index</replaceable></option> diff --git a/chromium/third_party/fontconfig/src/fc-scan/fc-scan.c b/chromium/third_party/fontconfig/src/fc-scan/fc-scan.c index 4d0b1db44fb..5638b51cf43 100644 --- a/chromium/third_party/fontconfig/src/fc-scan/fc-scan.c +++ b/chromium/third_party/fontconfig/src/fc-scan/fc-scan.c @@ -52,7 +52,6 @@ #define _GNU_SOURCE #include <getopt.h> static const struct option longopts[] = { - {"ignore-blanks", 0, 0, 'b'}, {"format", 1, 0, 'f'}, {"version", 0, 0, 'V'}, {"help", 0, 0, 'h'}, @@ -70,24 +69,22 @@ usage (char *program, int error) { FILE *file = error ? stderr : stdout; #if HAVE_GETOPT_LONG - fprintf (file, "usage: %s [-Vbh] [-f FORMAT] [--ignore-blanks] [--format FORMAT] [--version] [--help] font-file...\n", + fprintf (file, "usage: %s [-Vh] [-f FORMAT] [--format FORMAT] [--version] [--help] font-file...\n", program); #else - fprintf (file, "usage: %s [-Vbh] [-f FORMAT] font-file...\n", + fprintf (file, "usage: %s [-Vh] [-f FORMAT] font-file...\n", program); #endif fprintf (file, "Scan font files and directories, and print resulting pattern(s)\n"); fprintf (file, "\n"); #if HAVE_GETOPT_LONG - fprintf (file, " -b, --ignore-blanks ignore blanks to compute languages\n"); fprintf (file, " -f, --format=FORMAT use the given output format\n"); fprintf (file, " -V, --version display font config version and exit\n"); fprintf (file, " -h, --help display this help and exit\n"); #else - fprintf (file, " -b (ignore-blanks) ignore blanks to compute languages\n"); - fprintf (file, " -f FORMAT (format) use the given output format\n"); - fprintf (file, " -V (version) display font config version and exit\n"); - fprintf (file, " -h (help) display this help and exit\n"); + fprintf (file, " -f FORMAT (format) use the given output format\n"); + fprintf (file, " -V (version) display font config version and exit\n"); + fprintf (file, " -h (help) display this help and exit\n"); #endif exit (error); } @@ -97,22 +94,17 @@ main (int argc, char **argv) { FcChar8 *format = NULL; int i; - int ignore_blanks = 0; FcFontSet *fs; - FcBlanks *blanks = NULL; #if HAVE_GETOPT_LONG || HAVE_GETOPT int c; #if HAVE_GETOPT_LONG - while ((c = getopt_long (argc, argv, "bf:Vh", longopts, NULL)) != -1) + while ((c = getopt_long (argc, argv, "f:Vh", longopts, NULL)) != -1) #else - while ((c = getopt (argc, argv, "bf:Vh")) != -1) + while ((c = getopt (argc, argv, "f:Vh")) != -1) #endif { switch (c) { - case 'b': - ignore_blanks = 1; - break; case 'f': format = (FcChar8 *) strdup (optarg); break; @@ -135,22 +127,20 @@ main (int argc, char **argv) usage (argv[0], 1); fs = FcFontSetCreate (); - if (!ignore_blanks) - blanks = FcConfigGetBlanks (NULL); for (; i < argc; i++) { const FcChar8 *file = (FcChar8*) argv[i]; if (!FcFileIsDir (file)) - FcFileScan (fs, NULL, NULL, blanks, file, FcTrue); + FcFileScan (fs, NULL, NULL, NULL, file, FcTrue); else { FcStrSet *dirs = FcStrSetCreate (); FcStrList *strlist = FcStrListCreate (dirs); do { - FcDirScan (fs, dirs, NULL, blanks, file, FcTrue); + FcDirScan (fs, dirs, NULL, NULL, file, FcTrue); } while ((file = FcStrListNext (strlist))); FcStrListDone (strlist); diff --git a/chromium/third_party/fontconfig/src/fc-scan/fc-scan.sgml b/chromium/third_party/fontconfig/src/fc-scan/fc-scan.sgml index 65a66c4f364..9af403c1fde 100644 --- a/chromium/third_party/fontconfig/src/fc-scan/fc-scan.sgml +++ b/chromium/third_party/fontconfig/src/fc-scan/fc-scan.sgml @@ -62,13 +62,9 @@ manpage.1: manpage.sgml <cmdsynopsis> <command>&dhpackage;</command> - <arg><option>-Vbh</option></arg> + <arg><option>-Vh</option></arg> <sbr> <group> - <arg><option>-b</option></arg> - <arg><option>--ignore-blanks</option></arg> - </group> - <group> <arg><option>-f</option> <option><replaceable>format</replaceable></option></arg> <arg><option>--format</option> <option><replaceable>format</replaceable></option></arg> </group> @@ -95,14 +91,6 @@ manpage.1: manpage.sgml <variablelist> <varlistentry> - <term><option>-b</option> - <option>--ignore-blanks</option> - </term> - <listitem> - <para>Ignore blanks to compute languages</para> - </listitem> - </varlistentry> - <varlistentry> <term><option>-f</option> <option>--format</option> <option><replaceable>format</replaceable></option> diff --git a/chromium/third_party/fontconfig/src/fontconfig.pc.in b/chromium/third_party/fontconfig/src/fontconfig.pc.in index fa00a72d7fd..6e112bb496e 100644 --- a/chromium/third_party/fontconfig/src/fontconfig.pc.in +++ b/chromium/third_party/fontconfig/src/fontconfig.pc.in @@ -5,7 +5,7 @@ includedir=@includedir@ sysconfdir=@sysconfdir@ localstatedir=@localstatedir@ PACKAGE=@PACKAGE@ -confdir=@BASECONFIGDIR@ +confdir=@baseconfigdir@ cachedir=@fc_cachedir@ Name: Fontconfig diff --git a/chromium/third_party/fontconfig/src/fontconfig/fcprivate.h b/chromium/third_party/fontconfig/src/fontconfig/fcprivate.h index a6ee5c23499..210c1d8a371 100644 --- a/chromium/third_party/fontconfig/src/fontconfig/fcprivate.h +++ b/chromium/third_party/fontconfig/src/fontconfig/fcprivate.h @@ -77,9 +77,6 @@ case FcTypeLangSet: \ __v__.u.l = va_arg (va, const FcLangSet *); \ break; \ - case FcTypeRange: \ - __v__.u.r = va_arg (va, const FcRange *); \ - break; \ } \ if (!FcPatternAdd (__p__, __o__, __v__, FcTrue)) \ goto _FcPatternVapBuild_bail1; \ diff --git a/chromium/third_party/fontconfig/src/fontconfig/fontconfig.h b/chromium/third_party/fontconfig/src/fontconfig/fontconfig.h index 5c72b227279..dfc48f9e337 100644 --- a/chromium/third_party/fontconfig/src/fontconfig/fontconfig.h +++ b/chromium/third_party/fontconfig/src/fontconfig/fontconfig.h @@ -51,8 +51,8 @@ typedef int FcBool; */ #define FC_MAJOR 2 -#define FC_MINOR 12 -#define FC_REVISION 1 +#define FC_MINOR 11 +#define FC_REVISION 0 #define FC_VERSION ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION)) @@ -66,10 +66,7 @@ typedef int FcBool; * it means multiple copies of the font information. */ -#define FC_CACHE_VERSION_NUMBER 7 -#define _FC_STRINGIFY_(s) #s -#define _FC_STRINGIFY(s) _FC_STRINGIFY_(s) -#define FC_CACHE_VERSION _FC_STRINGIFY(FC_CACHE_VERSION_NUMBER) +#define FC_CACHE_VERSION "4" #define FcTrue 1 #define FcFalse 0 @@ -78,7 +75,7 @@ typedef int FcBool; #define FC_STYLE "style" /* String */ #define FC_SLANT "slant" /* Int */ #define FC_WEIGHT "weight" /* Int */ -#define FC_SIZE "size" /* Range (double) */ +#define FC_SIZE "size" /* Double */ #define FC_ASPECT "aspect" /* Double */ #define FC_PIXEL_SIZE "pixelsize" /* Double */ #define FC_SPACING "spacing" /* Int */ @@ -97,9 +94,7 @@ typedef int FcBool; #define FC_RASTERIZER "rasterizer" /* String (deprecated) */ #define FC_OUTLINE "outline" /* Bool */ #define FC_SCALABLE "scalable" /* Bool */ -#define FC_COLOR "color" /* Bool */ -#define FC_SCALE "scale" /* double (deprecated) */ -#define FC_SYMBOL "symbol" /* Bool */ +#define FC_SCALE "scale" /* double */ #define FC_DPI "dpi" /* double */ #define FC_RGBA "rgba" /* Int */ #define FC_MINSPACE "minspace" /* Bool use minimum line spacing */ @@ -120,7 +115,7 @@ typedef int FcBool; #define FC_FONT_FEATURES "fontfeatures" /* String */ #define FC_NAMELANG "namelang" /* String RFC 3866 langs */ #define FC_PRGNAME "prgname" /* String */ -#define FC_HASH "hash" /* String (deprecated) */ +#define FC_HASH "hash" /* String */ #define FC_POSTSCRIPT_NAME "postscriptname" /* String */ #define FC_CACHE_SUFFIX ".cache-" FC_CACHE_VERSION @@ -136,8 +131,6 @@ typedef int FcBool; #define FC_WEIGHT_EXTRALIGHT 40 #define FC_WEIGHT_ULTRALIGHT FC_WEIGHT_EXTRALIGHT #define FC_WEIGHT_LIGHT 50 -#define FC_WEIGHT_DEMILIGHT 55 -#define FC_WEIGHT_SEMILIGHT FC_WEIGHT_DEMILIGHT #define FC_WEIGHT_BOOK 75 #define FC_WEIGHT_REGULAR 80 #define FC_WEIGHT_NORMAL FC_WEIGHT_REGULAR @@ -201,8 +194,7 @@ typedef enum _FcType { FcTypeMatrix, FcTypeCharSet, FcTypeFTFace, - FcTypeLangSet, - FcTypeRange + FcTypeLangSet } FcType; typedef struct _FcMatrix { @@ -220,7 +212,7 @@ typedef struct _FcMatrix { typedef struct _FcCharSet FcCharSet; typedef struct _FcObjectType { - char *object; + const char *object; FcType type; } FcObjectType; @@ -239,8 +231,6 @@ typedef struct _FcPattern FcPattern; typedef struct _FcLangSet FcLangSet; -typedef struct _FcRange FcRange; - typedef struct _FcValue { FcType type; union { @@ -252,7 +242,6 @@ typedef struct _FcValue { const FcCharSet *c; void *f; const FcLangSet *l; - const FcRange *r; } u; } FcValue; @@ -552,9 +541,6 @@ FcDirSave (FcFontSet *set, FcStrSet *dirs, const FcChar8 *dir); FcPublic FcCache * FcDirCacheLoad (const FcChar8 *dir, FcConfig *config, FcChar8 **cache_file); - -FcPublic FcCache * -FcDirCacheRescan (const FcChar8 *dir, FcConfig *config); FcPublic FcCache * FcDirCacheRead (const FcChar8 *dir, FcBool force, FcConfig *config); @@ -864,9 +850,6 @@ FcPatternAddBool (FcPattern *p, const char *object, FcBool b); FcPublic FcBool FcPatternAddLangSet (FcPattern *p, const char *object, const FcLangSet *ls); -FcPublic FcBool -FcPatternAddRange (FcPattern *p, const char *object, const FcRange *r); - FcPublic FcResult FcPatternGetInteger (const FcPattern *p, const char *object, int n, int *i); @@ -888,9 +871,6 @@ FcPatternGetBool (const FcPattern *p, const char *object, int n, FcBool *b); FcPublic FcResult FcPatternGetLangSet (const FcPattern *p, const char *object, int n, FcLangSet **ls); -FcPublic FcResult -FcPatternGetRange (const FcPattern *p, const char *object, int id, FcRange **r); - FcPublic FcPattern * FcPatternVaBuild (FcPattern *p, va_list va); @@ -900,30 +880,6 @@ FcPatternBuild (FcPattern *p, ...) FC_ATTRIBUTE_SENTINEL(0); FcPublic FcChar8 * FcPatternFormat (FcPattern *pat, const FcChar8 *format); -/* fcrange.c */ -FcPublic FcRange * -FcRangeCreateDouble (double begin, double end); - -FcPublic FcRange * -FcRangeCreateInteger (FcChar32 begin, FcChar32 end); - -FcPublic void -FcRangeDestroy (FcRange *range); - -FcPublic FcRange * -FcRangeCopy (const FcRange *r); - -FcPublic FcBool -FcRangeGetDouble(const FcRange *range, double *begin, double *end); - -/* fcweight.c */ - -FcPublic int -FcWeightFromOpenType (int ot_weight); - -FcPublic int -FcWeightToOpenType (int fc_weight); - /* fcstr.c */ FcPublic FcChar8 * diff --git a/chromium/third_party/fontconfig/src/fonts.conf.in b/chromium/third_party/fontconfig/src/fonts.conf.in index 7c16a70747d..6a8753d01b3 100644 --- a/chromium/third_party/fontconfig/src/fonts.conf.in +++ b/chromium/third_party/fontconfig/src/fonts.conf.in @@ -79,6 +79,72 @@ <config> <!-- + These are the default Unicode chars that are expected to be blank + in fonts. All other blank chars are assumed to be broken and + won't appear in the resulting charsets + --> + <blank> + <int>0x0020</int> <!-- SPACE --> + <int>0x00A0</int> <!-- NO-BREAK SPACE --> + <int>0x00AD</int> <!-- SOFT HYPHEN --> + <int>0x034F</int> <!-- COMBINING GRAPHEME JOINER --> + <int>0x0600</int> <!-- ARABIC NUMBER SIGN --> + <int>0x0601</int> <!-- ARABIC SIGN SANAH --> + <int>0x0602</int> <!-- ARABIC FOOTNOTE MARKER --> + <int>0x0603</int> <!-- ARABIC SIGN SAFHA --> + <int>0x06DD</int> <!-- ARABIC END OF AYAH --> + <int>0x070F</int> <!-- SYRIAC ABBREVIATION MARK --> + <int>0x115F</int> <!-- HANGUL CHOSEONG FILLER --> + <int>0x1160</int> <!-- HANGUL JUNGSEONG FILLER --> + <int>0x1680</int> <!-- OGHAM SPACE MARK --> + <int>0x17B4</int> <!-- KHMER VOWEL INHERENT AQ --> + <int>0x17B5</int> <!-- KHMER VOWEL INHERENT AA --> + <int>0x180E</int> <!-- MONGOLIAN VOWEL SEPARATOR --> + <int>0x2000</int> <!-- EN QUAD --> + <int>0x2001</int> <!-- EM QUAD --> + <int>0x2002</int> <!-- EN SPACE --> + <int>0x2003</int> <!-- EM SPACE --> + <int>0x2004</int> <!-- THREE-PER-EM SPACE --> + <int>0x2005</int> <!-- FOUR-PER-EM SPACE --> + <int>0x2006</int> <!-- SIX-PER-EM SPACE --> + <int>0x2007</int> <!-- FIGURE SPACE --> + <int>0x2008</int> <!-- PUNCTUATION SPACE --> + <int>0x2009</int> <!-- THIN SPACE --> + <int>0x200A</int> <!-- HAIR SPACE --> + <int>0x200B</int> <!-- ZERO WIDTH SPACE --> + <int>0x200C</int> <!-- ZERO WIDTH NON-JOINER --> + <int>0x200D</int> <!-- ZERO WIDTH JOINER --> + <int>0x200E</int> <!-- LEFT-TO-RIGHT MARK --> + <int>0x200F</int> <!-- RIGHT-TO-LEFT MARK --> + <int>0x2028</int> <!-- LINE SEPARATOR --> + <int>0x2029</int> <!-- PARAGRAPH SEPARATOR --> + <int>0x202A</int> <!-- LEFT-TO-RIGHT EMBEDDING --> + <int>0x202B</int> <!-- RIGHT-TO-LEFT EMBEDDING --> + <int>0x202C</int> <!-- POP DIRECTIONAL FORMATTING --> + <int>0x202D</int> <!-- LEFT-TO-RIGHT OVERRIDE --> + <int>0x202E</int> <!-- RIGHT-TO-LEFT OVERRIDE --> + <int>0x202F</int> <!-- NARROW NO-BREAK SPACE --> + <int>0x205F</int> <!-- MEDIUM MATHEMATICAL SPACE --> + <int>0x2060</int> <!-- WORD JOINER --> + <int>0x2061</int> <!-- FUNCTION APPLICATION --> + <int>0x2062</int> <!-- INVISIBLE TIMES --> + <int>0x2063</int> <!-- INVISIBLE SEPARATOR --> + <int>0x206A</int> <!-- INHIBIT SYMMETRIC SWAPPING --> + <int>0x206B</int> <!-- ACTIVATE SYMMETRIC SWAPPING --> + <int>0x206C</int> <!-- INHIBIT ARABIC FORM SHAPING --> + <int>0x206D</int> <!-- ACTIVATE ARABIC FORM SHAPING --> + <int>0x206E</int> <!-- NATIONAL DIGIT SHAPES --> + <int>0x206F</int> <!-- NOMINAL DIGIT SHAPES --> + <int>0x2800</int> <!-- BRAILLE PATTERN BLANK --> + <int>0x3000</int> <!-- IDEOGRAPHIC SPACE --> + <int>0x3164</int> <!-- HANGUL FILLER --> + <int>0xFEFF</int> <!-- ZERO WIDTH NO-BREAK SPACE --> + <int>0xFFA0</int> <!-- HALFWIDTH HANGUL FILLER --> + <int>0xFFF9</int> <!-- INTERLINEAR ANNOTATION ANCHOR --> + <int>0xFFFA</int> <!-- INTERLINEAR ANNOTATION SEPARATOR --> + <int>0xFFFB</int> <!-- INTERLINEAR ANNOTATION TERMINATOR --> + </blank> +<!-- Rescan configuration every 30 seconds when FcFontSetList is called --> <rescan> diff --git a/chromium/third_party/fontconfig/src/fonts.dtd b/chromium/third_party/fontconfig/src/fonts.dtd index 479f2c0fb84..4c38e77f08f 100644 --- a/chromium/third_party/fontconfig/src/fonts.dtd +++ b/chromium/third_party/fontconfig/src/fonts.dtd @@ -140,7 +140,7 @@ if 'target' is 'font', execute the match on the result of a font selection. --> -<!ELEMENT match (test|edit)+> +<!ELEMENT match (test*, edit*)+> <!ATTLIST match target (pattern|font|scan) "pattern"> diff --git a/chromium/third_party/fontconfig/src/m4/ac_check_symbol.m4 b/chromium/third_party/fontconfig/src/m4/ac_check_symbol.m4 deleted file mode 100644 index 41c15286a6f..00000000000 --- a/chromium/third_party/fontconfig/src/m4/ac_check_symbol.m4 +++ /dev/null @@ -1,48 +0,0 @@ -dnl @synopsis AC_CHECK_SYMBOL(SYMBOL, HEADER... [,ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]]) -dnl -dnl a wrapper around AC_EGREP_HEADER the shellvar $ac_found will hold -dnl the HEADER-name that had been containing the symbol. This value is -dnl shown to the user. -dnl -dnl @category C -dnl @author Guido U. Draheim <guidod@gmx.de> -dnl @version 2006-10-13 -dnl @license GPLWithACException - -AC_DEFUN([AC_CHECK_SYMBOL], -[AC_MSG_CHECKING([for $1 in $2]) -AC_CACHE_VAL(ac_cv_func_$1, -[AC_REQUIRE_CPP()dnl -changequote(, )dnl -symbol="[^a-zA-Z_0-9]$1[^a-zA-Z_0-9]" -changequote([, ])dnl -ac_found=no -for ac_header in $2 ; do - ac_safe=`echo "$ac_header" | sed 'y%./+-%__p_%' ` - if test $ac_found != "yes" ; then - if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then - AC_EGREP_HEADER( $symbol, $ac_header, [ac_found="$ac_header"] ) - fi - fi -done -if test "$ac_found" != "no" ; then - AC_MSG_RESULT($ac_found) - ifelse([$3], , :, [$3]) -else - AC_MSG_RESULT(no) - ifelse([$4], , , [$4 -])dnl -fi -])]) - -dnl AC_CHECK_SYMBOLS( symbol..., header... [, action-if-found [, action-if-not-found]]) -AC_DEFUN([AC_CHECK_SYMBOLS], -[for ac_func in $1 -do -P4_CHECK_SYMBOL($ac_func, $2, -[changequote(, )dnl - ac_tr_func=HAVE_`echo $ac_func | sed -e 'y:abcdefghijklmnopqrstuvwxyz:ABCDEFGHIJKLMNOPQRSTUVWXYZ:' -e 's:[[^A-Z0-9]]:_:'` -changequote([, ])dnl - AC_DEFINE_UNQUOTED($ac_tr_func) $2], $3)dnl -done -]) diff --git a/chromium/third_party/fontconfig/src/m4/ax_pthread.m4 b/chromium/third_party/fontconfig/src/m4/ax_pthread.m4 index e77541cea90..d90de34d14b 100644 --- a/chromium/third_party/fontconfig/src/m4/ax_pthread.m4 +++ b/chromium/third_party/fontconfig/src/m4/ax_pthread.m4 @@ -82,7 +82,7 @@ # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. -#serial 21 +#serial 18 AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD]) AC_DEFUN([AX_PTHREAD], [ @@ -103,8 +103,8 @@ if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) - AC_TRY_LINK_FUNC([pthread_join], [ax_pthread_ok=yes]) - AC_MSG_RESULT([$ax_pthread_ok]) + AC_TRY_LINK_FUNC(pthread_join, ax_pthread_ok=yes) + AC_MSG_RESULT($ax_pthread_ok) if test x"$ax_pthread_ok" = xno; then PTHREAD_LIBS="" PTHREAD_CFLAGS="" @@ -162,27 +162,8 @@ case ${host_os} in darwin*) ax_pthread_flags="-pthread $ax_pthread_flags" ;; - netbsd*) - # use libc stubs, don't link against libpthread, to allow - # dynamic loading - ax_pthread_flags="" - ;; esac -# Clang doesn't consider unrecognized options an error unless we specify -# -Werror. We throw in some extra Clang-specific options to ensure that -# this doesn't happen for GCC, which also accepts -Werror. - -AC_MSG_CHECKING([if compiler needs -Werror to reject unknown flags]) -save_CFLAGS="$CFLAGS" -ax_pthread_extra_flags="-Werror" -CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument" -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int foo(void);],[foo()])], - [AC_MSG_RESULT([yes])], - [ax_pthread_extra_flags= - AC_MSG_RESULT([no])]) -CFLAGS="$save_CFLAGS" - if test x"$ax_pthread_ok" = xno; then for flag in $ax_pthread_flags; do @@ -197,7 +178,7 @@ for flag in $ax_pthread_flags; do ;; pthread-config) - AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no]) + AC_CHECK_PROG(ax_pthread_config, pthread-config, yes, no) if test x"$ax_pthread_config" = xno; then continue; fi PTHREAD_CFLAGS="`pthread-config --cflags`" PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" @@ -212,7 +193,7 @@ for flag in $ax_pthread_flags; do save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" LIBS="$PTHREAD_LIBS $LIBS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Check for various functions. We must include pthread.h, # since some functions may be macros. (On the Sequent, we @@ -238,7 +219,7 @@ for flag in $ax_pthread_flags; do LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" - AC_MSG_RESULT([$ax_pthread_ok]) + AC_MSG_RESULT($ax_pthread_ok) if test "x$ax_pthread_ok" = xyes; then break; fi @@ -264,9 +245,9 @@ if test "x$ax_pthread_ok" = xyes; then [attr_name=$attr; break], []) done - AC_MSG_RESULT([$attr_name]) + AC_MSG_RESULT($attr_name) if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then - AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE], [$attr_name], + AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name, [Define to necessary symbol if this constant uses a non-standard name on your system.]) fi @@ -280,54 +261,45 @@ if test "x$ax_pthread_ok" = xyes; then if test "$GCC" = "yes"; then flag="-D_REENTRANT" else - # TODO: What about Clang on Solaris? flag="-mt -D_REENTRANT" fi ;; esac - AC_MSG_RESULT([$flag]) + AC_MSG_RESULT(${flag}) if test "x$flag" != xno; then PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" fi AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT], - [ax_cv_PTHREAD_PRIO_INHERIT], [ - AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]], - [[int i = PTHREAD_PRIO_INHERIT;]])], + ax_cv_PTHREAD_PRIO_INHERIT, [ + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[#include <pthread.h>]], [[int i = PTHREAD_PRIO_INHERIT;]])], [ax_cv_PTHREAD_PRIO_INHERIT=yes], [ax_cv_PTHREAD_PRIO_INHERIT=no]) ]) AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"], - [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])]) + AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.])) LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" - # More AIX lossage: compile with *_r variant - if test "x$GCC" != xyes; then - case $host_os in - aix*) - AS_CASE(["x/$CC"], - [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6], - [#handle absolute path differently from PATH based program lookup - AS_CASE(["x$CC"], - [x/*], - [AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])], - [AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])]) - ;; - esac + # More AIX lossage: must compile with xlc_r or cc_r + if test x"$GCC" != xyes; then + AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC}) + else + PTHREAD_CC=$CC fi +else + PTHREAD_CC="$CC" fi -test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" - -AC_SUBST([PTHREAD_LIBS]) -AC_SUBST([PTHREAD_CFLAGS]) -AC_SUBST([PTHREAD_CC]) +AC_SUBST(PTHREAD_LIBS) +AC_SUBST(PTHREAD_CFLAGS) +AC_SUBST(PTHREAD_CC) # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x"$ax_pthread_ok" = xyes; then - ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1]) + ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) : else ax_pthread_ok=no diff --git a/chromium/third_party/fontconfig/src/m4/pkg.m4 b/chromium/third_party/fontconfig/src/m4/pkg.m4 deleted file mode 100644 index c5b26b52e6c..00000000000 --- a/chromium/third_party/fontconfig/src/m4/pkg.m4 +++ /dev/null @@ -1,214 +0,0 @@ -# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -# serial 1 (pkg-config-0.24) -# -# Copyright © 2004 Scott James Remnant <scott@netsplit.com>. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# PKG_PROG_PKG_CONFIG([MIN-VERSION]) -# ---------------------------------- -AC_DEFUN([PKG_PROG_PKG_CONFIG], -[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) -m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) -m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) -AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) -AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) -AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) - -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=m4_default([$1], [0.9.0]) - AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - PKG_CONFIG="" - fi -fi[]dnl -])# PKG_PROG_PKG_CONFIG - -# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -# -# Check to see whether a particular set of modules exists. Similar -# to PKG_CHECK_MODULES(), but does not set variables or print errors. -# -# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -# only at the first occurence in configure.ac, so if the first place -# it's called might be skipped (such as if it is within an "if", you -# have to call PKG_CHECK_EXISTS manually -# -------------------------------------------------------------- -AC_DEFUN([PKG_CHECK_EXISTS], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -if test -n "$PKG_CONFIG" && \ - AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then - m4_default([$2], [:]) -m4_ifvaln([$3], [else - $3])dnl -fi]) - -# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) -# --------------------------------------------- -m4_define([_PKG_CONFIG], -[if test -n "$$1"; then - pkg_cv_[]$1="$$1" - elif test -n "$PKG_CONFIG"; then - PKG_CHECK_EXISTS([$3], - [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes ], - [pkg_failed=yes]) - else - pkg_failed=untried -fi[]dnl -])# _PKG_CONFIG - -# _PKG_SHORT_ERRORS_SUPPORTED -# ----------------------------- -AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi[]dnl -])# _PKG_SHORT_ERRORS_SUPPORTED - - -# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], -# [ACTION-IF-NOT-FOUND]) -# -# -# Note that if there is a possibility the first call to -# PKG_CHECK_MODULES might not happen, you should be sure to include an -# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac -# -# -# -------------------------------------------------------------- -AC_DEFUN([PKG_CHECK_MODULES], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl -AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl - -pkg_failed=no -AC_MSG_CHECKING([for $1]) - -_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) -_PKG_CONFIG([$1][_LIBS], [libs], [$2]) - -m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS -and $1[]_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details.]) - -if test $pkg_failed = yes; then - AC_MSG_RESULT([no]) - _PKG_SHORT_ERRORS_SUPPORTED - if test $_pkg_short_errors_supported = yes; then - $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` - else - $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD - - m4_default([$4], [AC_MSG_ERROR( -[Package requirements ($2) were not met: - -$$1_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -_PKG_TEXT])[]dnl - ]) -elif test $pkg_failed = untried; then - AC_MSG_RESULT([no]) - m4_default([$4], [AC_MSG_FAILURE( -[The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -_PKG_TEXT - -To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl - ]) -else - $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS - $1[]_LIBS=$pkg_cv_[]$1[]_LIBS - AC_MSG_RESULT([yes]) - $3 -fi[]dnl -])# PKG_CHECK_MODULES - - -# PKG_INSTALLDIR(DIRECTORY) -# ------------------------- -# Substitutes the variable pkgconfigdir as the location where a module -# should install pkg-config .pc files. By default the directory is -# $libdir/pkgconfig, but the default can be changed by passing -# DIRECTORY. The user can override through the --with-pkgconfigdir -# parameter. -AC_DEFUN([PKG_INSTALLDIR], -[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) -m4_pushdef([pkg_description], - [pkg-config installation directory @<:@]pkg_default[@:>@]) -AC_ARG_WITH([pkgconfigdir], - [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, - [with_pkgconfigdir=]pkg_default) -AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) -m4_popdef([pkg_default]) -m4_popdef([pkg_description]) -]) dnl PKG_INSTALLDIR - - -# PKG_NOARCH_INSTALLDIR(DIRECTORY) -# ------------------------- -# Substitutes the variable noarch_pkgconfigdir as the location where a -# module should install arch-independent pkg-config .pc files. By -# default the directory is $datadir/pkgconfig, but the default can be -# changed by passing DIRECTORY. The user can override through the -# --with-noarch-pkgconfigdir parameter. -AC_DEFUN([PKG_NOARCH_INSTALLDIR], -[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) -m4_pushdef([pkg_description], - [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) -AC_ARG_WITH([noarch-pkgconfigdir], - [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, - [with_noarch_pkgconfigdir=]pkg_default) -AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) -m4_popdef([pkg_default]) -m4_popdef([pkg_description]) -]) dnl PKG_NOARCH_INSTALLDIR - - -# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, -# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -# ------------------------------------------- -# Retrieves the value of the pkg-config variable for the given module. -AC_DEFUN([PKG_CHECK_VAR], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl - -_PKG_CONFIG([$1], [variable="][$3]["], [$2]) -AS_VAR_COPY([$1], [pkg_cv_][$1]) - -AS_VAR_IF([$1], [""], [$5], [$4])dnl -])# PKG_CHECK_VAR diff --git a/chromium/third_party/fontconfig/src/new-version.sh b/chromium/third_party/fontconfig/src/new-version.sh index eecfd81a028..36e46f59350 100644 --- a/chromium/third_party/fontconfig/src/new-version.sh +++ b/chromium/third_party/fontconfig/src/new-version.sh @@ -1,25 +1,4 @@ #!/bin/sh -# fontconfig/new-version.sh -# -# Copyright © 2000 Keith Packard -# -# Permission to use, copy, modify, distribute, and sell this software and its -# documentation for any purpose is hereby granted without fee, provided that -# the above copyright notice appear in all copies and that both that -# copyright notice and this permission notice appear in supporting -# documentation, and that the name of the author(s) not be used in -# advertising or publicity pertaining to distribution of the software without -# specific, written prior permission. The authors make no -# representations about the suitability of this software for any purpose. It -# is provided "as is" without express or implied warranty. -# -# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO -# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR -# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -# PERFORMANCE OF THIS SOFTWARE. if [ "x`git status -s -uno`" != "x" ]; then echo 'Uncommited changes in repository' 1>&2 diff --git a/chromium/third_party/fontconfig/src/src/Makefile.am b/chromium/third_party/fontconfig/src/src/Makefile.am index 3757cf8f3e5..066cc03e718 100644 --- a/chromium/third_party/fontconfig/src/src/Makefile.am +++ b/chromium/third_party/fontconfig/src/src/Makefile.am @@ -139,6 +139,7 @@ libfontconfig_la_SOURCES = \ fcformat.c \ fcfreetype.c \ fcfs.c \ + fchash.c \ fcinit.c \ fclang.c \ fclist.c \ @@ -150,11 +151,9 @@ libfontconfig_la_SOURCES = \ fcobjs.h \ fcobjshash.h \ fcpat.c \ - fcrange.c \ fcserialize.c \ fcstat.c \ fcstr.c \ - fcweight.c \ fcwindows.h \ fcxml.c \ ftglue.h \ diff --git a/chromium/third_party/fontconfig/src/src/fcarch.c b/chromium/third_party/fontconfig/src/src/fcarch.c index 6ca15a991f7..398f4bbfcd5 100644 --- a/chromium/third_party/fontconfig/src/src/fcarch.c +++ b/chromium/third_party/fontconfig/src/src/fcarch.c @@ -21,9 +21,10 @@ * PERFORMANCE OF THIS SOFTWARE. */ +#include <stdio.h> + #include "fcint.h" #include "fcarch.h" -#include <stdio.h> FC_ASSERT_STATIC (1 == sizeof (char)); FC_ASSERT_STATIC (2 == sizeof (FcChar16)); @@ -48,7 +49,7 @@ FC_ASSERT_STATIC (0x08 + 1*FC_MAX(SIZEOF_VOID_P,ALIGNOF_DOUBLE) == sizeof (FcVal FC_ASSERT_STATIC (0x00 + 2*SIZEOF_VOID_P == sizeof (FcPatternElt)); FC_ASSERT_STATIC (0x08 + 2*SIZEOF_VOID_P == sizeof (FcPattern)); FC_ASSERT_STATIC (0x08 + 2*SIZEOF_VOID_P == sizeof (FcCharSet)); -FC_ASSERT_STATIC (0x10 + 6*SIZEOF_VOID_P == sizeof (FcCache)); +FC_ASSERT_STATIC (0x08 + 6*SIZEOF_VOID_P == sizeof (FcCache)); int diff --git a/chromium/third_party/fontconfig/src/src/fcatomic.c b/chromium/third_party/fontconfig/src/src/fcatomic.c index d12d32408d8..c1daed938e5 100644 --- a/chromium/third_party/fontconfig/src/src/fcatomic.c +++ b/chromium/third_party/fontconfig/src/src/fcatomic.c @@ -131,7 +131,7 @@ FcAtomicLock (FcAtomic *atomic) return FcFalse; } ret = link ((char *) atomic->tmp, (char *) atomic->lck); - if (ret < 0 && (errno == EPERM || errno == ENOTSUP || errno == EACCES)) + if (ret < 0 && errno == EPERM) { /* the filesystem where atomic->lck points to may not supports * the hard link. so better try to fallback diff --git a/chromium/third_party/fontconfig/src/src/fcatomic.h b/chromium/third_party/fontconfig/src/src/fcatomic.h index cc28a883c13..362e52164b7 100644 --- a/chromium/third_party/fontconfig/src/src/fcatomic.h +++ b/chromium/third_party/fontconfig/src/src/fcatomic.h @@ -48,22 +48,22 @@ #include "fcwindows.h" -/* MinGW has a convoluted history of supporting MemoryBarrier - * properly. As such, define a function to wrap the whole - * thing. */ -static inline void _FCMemoryBarrier (void) { -#if !defined(MemoryBarrier) +/* mingw32 does not have MemoryBarrier. + * MemoryBarrier may be defined as a macro or a function. + * Just make a failsafe version for ourselves. */ +#ifdef MemoryBarrier +#define HBMemoryBarrier MemoryBarrier +#else +static inline void HBMemoryBarrier (void) { long dummy = 0; InterlockedExchange (&dummy, 1); -#else - MemoryBarrier (); -#endif } +#endif typedef LONG fc_atomic_int_t; #define fc_atomic_int_add(AI, V) InterlockedExchangeAdd (&(AI), (V)) -#define fc_atomic_ptr_get(P) (_FCMemoryBarrier (), (void *) *(P)) +#define fc_atomic_ptr_get(P) (HBMemoryBarrier (), (void *) *(P)) #define fc_atomic_ptr_cmpexch(P,O,N) (InterlockedCompareExchangePointer ((void **) (P), (void *) (N), (void *) (O)) == (void *) (O)) diff --git a/chromium/third_party/fontconfig/src/src/fcblanks.c b/chromium/third_party/fontconfig/src/src/fcblanks.c index 5132a510f98..46698bcdac3 100644 --- a/chromium/third_party/fontconfig/src/src/fcblanks.c +++ b/chromium/third_party/fontconfig/src/src/fcblanks.c @@ -41,8 +41,6 @@ FcBlanksCreate (void) void FcBlanksDestroy (FcBlanks *b) { - if (b->sblank == -1) - return; if (b->blanks) free (b->blanks); free (b); @@ -58,11 +56,6 @@ FcBlanksAdd (FcBlanks *b, FcChar32 ucs4) if (b->blanks[sblank] == ucs4) return FcTrue; - if (b->sblank == -1) - { - fprintf (stderr, "Unable to update the static FcBlanks: 0x%04x\n", ucs4); - return FcTrue; - } if (b->nblank == b->sblank) { sblank = b->sblank + 32; @@ -82,25 +75,11 @@ FcBlanksAdd (FcBlanks *b, FcChar32 ucs4) FcBool FcBlanksIsMember (FcBlanks *b, FcChar32 ucs4) { - int lower = 0, higher = b->nblank, middle; + int i; - if (b->nblank == 0 || - b->blanks[0] > ucs4 || - b->blanks[b->nblank - 1] < ucs4) - return FcFalse; - while (1) - { - middle = (lower + higher) / 2; - if (b->blanks[middle] == ucs4) + for (i = 0; i < b->nblank; i++) + if (b->blanks[i] == ucs4) return FcTrue; - if (lower >= higher) - break; - if (b->blanks[middle] < ucs4) - lower = middle + 1; - else - higher = middle - 1; - } - return FcFalse; } #define __fcblanks__ diff --git a/chromium/third_party/fontconfig/src/src/fccache.c b/chromium/third_party/fontconfig/src/src/fccache.c index 6f3c68a2f16..3568595eda5 100644 --- a/chromium/third_party/fontconfig/src/src/fccache.c +++ b/chromium/third_party/fontconfig/src/src/fccache.c @@ -27,17 +27,12 @@ #include <fcntl.h> #include <dirent.h> #include <string.h> -#include <limits.h> #include <sys/types.h> -#include <sys/stat.h> #include <assert.h> #if defined(HAVE_MMAP) || defined(__CYGWIN__) # include <unistd.h> # include <sys/mman.h> #endif -#if defined(_WIN32) -#include <sys/locking.h> -#endif #ifndef O_BINARY #define O_BINARY 0 @@ -181,28 +176,19 @@ FcDirCacheOpenFile (const FcChar8 *cache_file, struct stat *file_stat) */ static FcBool FcDirCacheProcess (FcConfig *config, const FcChar8 *dir, - FcBool (*callback) (FcConfig *config, int fd, struct stat *fd_stat, + FcBool (*callback) (int fd, struct stat *fd_stat, struct stat *dir_stat, void *closure), void *closure, FcChar8 **cache_file_ret) { int fd = -1; FcChar8 cache_base[CACHEBASE_LEN]; FcStrList *list; - FcChar8 *cache_dir, *d; + FcChar8 *cache_dir; struct stat file_stat, dir_stat; FcBool ret = FcFalse; - const FcChar8 *sysroot = FcConfigGetSysRoot (config); - if (sysroot) - d = FcStrBuildFilename (sysroot, dir, NULL); - else - d = FcStrdup (dir); - if (FcStatChecksum (d, &dir_stat) < 0) - { - FcStrFree (d); + if (FcStatChecksum (dir, &dir_stat) < 0) return FcFalse; - } - FcStrFree (d); FcDirCacheBasename (dir, cache_base); @@ -212,6 +198,7 @@ FcDirCacheProcess (FcConfig *config, const FcChar8 *dir, while ((cache_dir = FcStrListNext (list))) { + const FcChar8 *sysroot = FcConfigGetSysRoot (config); FcChar8 *cache_hashed; if (sysroot) @@ -222,7 +209,7 @@ FcDirCacheProcess (FcConfig *config, const FcChar8 *dir, break; fd = FcDirCacheOpenFile (cache_hashed, &file_stat); if (fd >= 0) { - ret = (*callback) (config, fd, &file_stat, &dir_stat, closure); + ret = (*callback) (fd, &file_stat, &dir_stat, closure); close (fd); if (ret) { @@ -257,7 +244,6 @@ struct _FcCacheSkip { dev_t cache_dev; ino_t cache_ino; time_t cache_mtime; - long cache_mtime_nano; FcCacheSkip *next[1]; }; @@ -385,18 +371,12 @@ FcCacheInsert (FcCache *cache, struct stat *cache_stat) s->cache_dev = cache_stat->st_dev; s->cache_ino = cache_stat->st_ino; s->cache_mtime = cache_stat->st_mtime; -#ifdef HAVE_STRUCT_STAT_ST_MTIM - s->cache_mtime_nano = cache_stat->st_mtim.tv_nsec; -#else - s->cache_mtime_nano = 0; -#endif } else { s->cache_dev = 0; s->cache_ino = 0; s->cache_mtime = 0; - s->cache_mtime_nano = 0; } /* @@ -484,10 +464,6 @@ FcCacheFindByStat (struct stat *cache_stat) s->cache_ino == cache_stat->st_ino && s->cache_mtime == cache_stat->st_mtime) { -#ifdef HAVE_STRUCT_STAT_ST_MTIM - if (s->cache_mtime != cache_stat->st_mtim.tv_nsec) - continue; -#endif FcRefInc (&s->ref); unlock_cache (); return s->cache; @@ -552,141 +528,37 @@ FcCacheFini (void) } static FcBool -FcCacheTimeValid (FcConfig *config, FcCache *cache, struct stat *dir_stat) +FcCacheTimeValid (FcCache *cache, struct stat *dir_stat) { struct stat dir_static; - FcBool fnano = FcTrue; if (!dir_stat) { - const FcChar8 *sysroot = FcConfigGetSysRoot (config); - FcChar8 *d; - - if (sysroot) - d = FcStrBuildFilename (sysroot, FcCacheDir (cache), NULL); - else - d = FcStrdup (FcCacheDir (cache)); - if (FcStatChecksum (d, &dir_static) < 0) - { - FcStrFree (d); + if (FcStatChecksum (FcCacheDir (cache), &dir_static) < 0) return FcFalse; - } - FcStrFree (d); dir_stat = &dir_static; } -#ifdef HAVE_STRUCT_STAT_ST_MTIM - fnano = (cache->checksum_nano == dir_stat->st_mtim.tv_nsec); - if (FcDebug () & FC_DBG_CACHE) - printf ("FcCacheTimeValid dir \"%s\" cache checksum %d.%ld dir checksum %d.%ld\n", - FcCacheDir (cache), cache->checksum, (long)cache->checksum_nano, (int) dir_stat->st_mtime, dir_stat->st_mtim.tv_nsec); -#else if (FcDebug () & FC_DBG_CACHE) printf ("FcCacheTimeValid dir \"%s\" cache checksum %d dir checksum %d\n", FcCacheDir (cache), cache->checksum, (int) dir_stat->st_mtime); -#endif - - return cache->checksum == (int) dir_stat->st_mtime && fnano; -} - -static FcBool -FcCacheOffsetsValid (FcCache *cache) -{ - char *base = (char *)cache; - char *end = base + cache->size; - intptr_t *dirs; - FcFontSet *fs; - int i, j; - - if (cache->dir < 0 || cache->dir > cache->size - sizeof (intptr_t) || - memchr (base + cache->dir, '\0', cache->size - cache->dir) == NULL) - return FcFalse; - - if (cache->dirs < 0 || cache->dirs >= cache->size || - cache->dirs_count < 0 || - cache->dirs_count > (cache->size - cache->dirs) / sizeof (intptr_t)) - return FcFalse; - - dirs = FcCacheDirs (cache); - if (dirs) - { - for (i = 0; i < cache->dirs_count; i++) - { - FcChar8 *dir; - - if (dirs[i] < 0 || - dirs[i] > end - (char *) dirs - sizeof (intptr_t)) - return FcFalse; - - dir = FcOffsetToPtr (dirs, dirs[i], FcChar8); - if (memchr (dir, '\0', end - (char *) dir) == NULL) - return FcFalse; - } - } - - if (cache->set < 0 || cache->set > cache->size - sizeof (FcFontSet)) - return FcFalse; - - fs = FcCacheSet (cache); - if (fs) - { - if (fs->nfont > (end - (char *) fs) / sizeof (FcPattern)) - return FcFalse; - - if (fs->fonts != 0 && !FcIsEncodedOffset(fs->fonts)) - return FcFalse; - - for (i = 0; i < fs->nfont; i++) - { - FcPattern *font = FcFontSetFont (fs, i); - FcPatternElt *e; - FcValueListPtr l; - char *last_offset; - - if ((char *) font < base || - (char *) font > end - sizeof (FcFontSet) || - font->elts_offset < 0 || - font->elts_offset > end - (char *) font || - font->num > (end - (char *) font - font->elts_offset) / sizeof (FcPatternElt)) - return FcFalse; - - - e = FcPatternElts(font); - if (e->values != 0 && !FcIsEncodedOffset(e->values)) - return FcFalse; - - for (j = 0; j < font->num; j++) - { - last_offset = (char *) font + font->elts_offset; - for (l = FcPatternEltValues(&e[j]); l; l = FcValueListNext(l)) - { - if ((char *) l < last_offset || (char *) l > end - sizeof (*l) || - (l->next != NULL && !FcIsEncodedOffset(l->next))) - return FcFalse; - last_offset = (char *) l + 1; - } - } - } - } - - return FcTrue; + return cache->checksum == (int) dir_stat->st_mtime; } /* * Map a cache file into memory */ static FcCache * -FcDirCacheMapFd (FcConfig *config, int fd, struct stat *fd_stat, struct stat *dir_stat) +FcDirCacheMapFd (int fd, struct stat *fd_stat, struct stat *dir_stat) { FcCache *cache; FcBool allocated = FcFalse; - if (fd_stat->st_size > INTPTR_MAX || - fd_stat->st_size < (int) sizeof (FcCache)) + if (fd_stat->st_size < (int) sizeof (FcCache)) return NULL; cache = FcCacheFindByStat (fd_stat); if (cache) { - if (FcCacheTimeValid (config, cache, dir_stat)) + if (FcCacheTimeValid (cache, dir_stat)) return cache; FcDirCacheUnload (cache); cache = NULL; @@ -700,7 +572,7 @@ FcDirCacheMapFd (FcConfig *config, int fd, struct stat *fd_stat, struct stat *di { #if defined(HAVE_MMAP) || defined(__CYGWIN__) cache = mmap (0, fd_stat->st_size, PROT_READ, MAP_SHARED, fd, 0); -#if (HAVE_POSIX_FADVISE) && defined(POSIX_FADV_WILLNEED) +#ifdef HAVE_POSIX_FADVISE posix_fadvise (fd, 0, fd_stat->st_size, POSIX_FADV_WILLNEED); #endif if (cache == MAP_FAILED) @@ -735,10 +607,9 @@ FcDirCacheMapFd (FcConfig *config, int fd, struct stat *fd_stat, struct stat *di allocated = FcTrue; } if (cache->magic != FC_CACHE_MAGIC_MMAP || - cache->version < FC_CACHE_VERSION_NUMBER || + cache->version < FC_CACHE_CONTENT_VERSION || cache->size != (intptr_t) fd_stat->st_size || - !FcCacheOffsetsValid (cache) || - !FcCacheTimeValid (config, cache, dir_stat) || + !FcCacheTimeValid (cache, dir_stat) || !FcCacheInsert (cache, fd_stat)) { if (allocated) @@ -777,9 +648,9 @@ FcDirCacheUnload (FcCache *cache) } static FcBool -FcDirCacheMapHelper (FcConfig *config, int fd, struct stat *fd_stat, struct stat *dir_stat, void *closure) +FcDirCacheMapHelper (int fd, struct stat *fd_stat, struct stat *dir_stat, void *closure) { - FcCache *cache = FcDirCacheMapFd (config, fd, fd_stat, dir_stat); + FcCache *cache = FcDirCacheMapFd (fd, fd_stat, dir_stat); if (!cache) return FcFalse; @@ -796,7 +667,6 @@ FcDirCacheLoad (const FcChar8 *dir, FcConfig *config, FcChar8 **cache_file) FcDirCacheMapHelper, &cache, cache_file)) return NULL; - return cache; } @@ -812,7 +682,7 @@ FcDirCacheLoadFile (const FcChar8 *cache_file, struct stat *file_stat) fd = FcDirCacheOpenFile (cache_file, file_stat); if (fd < 0) return NULL; - cache = FcDirCacheMapFd (FcConfigGetCurrent (), fd, file_stat, NULL); + cache = FcDirCacheMapFd (fd, file_stat, NULL); close (fd); return cache; } @@ -822,7 +692,7 @@ FcDirCacheLoadFile (const FcChar8 *cache_file, struct stat *file_stat) * the magic number and the size field */ static FcBool -FcDirCacheValidateHelper (FcConfig *config, int fd, struct stat *fd_stat, struct stat *dir_stat, void *closure FC_UNUSED) +FcDirCacheValidateHelper (int fd, struct stat *fd_stat, struct stat *dir_stat, void *closure FC_UNUSED) { FcBool ret = FcTrue; FcCache c; @@ -831,16 +701,12 @@ FcDirCacheValidateHelper (FcConfig *config, int fd, struct stat *fd_stat, struct ret = FcFalse; else if (c.magic != FC_CACHE_MAGIC_MMAP) ret = FcFalse; - else if (c.version < FC_CACHE_VERSION_NUMBER) + else if (c.version < FC_CACHE_CONTENT_VERSION) ret = FcFalse; else if (fd_stat->st_size != c.size) ret = FcFalse; else if (c.checksum != (int) dir_stat->st_mtime) ret = FcFalse; -#ifdef HAVE_STRUCT_STAT_ST_MTIM - else if (c.checksum_nano != dir_stat->st_mtim.tv_nsec) - ret = FcFalse; -#endif return ret; } @@ -912,12 +778,9 @@ FcDirCacheBuild (FcFontSet *set, const FcChar8 *dir, struct stat *dir_stat, FcSt serialize->linear = cache; cache->magic = FC_CACHE_MAGIC_ALLOC; - cache->version = FC_CACHE_VERSION_NUMBER; + cache->version = FC_CACHE_CONTENT_VERSION; cache->size = serialize->size; cache->checksum = (int) dir_stat->st_mtime; -#ifdef HAVE_STRUCT_STAT_ST_MTIM - cache->checksum_nano = dir_stat->st_mtim.tv_nsec; -#endif /* * Serialize directory name @@ -964,19 +827,6 @@ bail1: return NULL; } -FcCache * -FcDirCacheRebuild (FcCache *cache, struct stat *dir_stat, FcStrSet *dirs) -{ - FcCache *new; - FcFontSet *set = FcFontSetDeserialize (FcCacheSet (cache)); - const FcChar8 *dir = FcCacheDir (cache); - - new = FcDirCacheBuild (set, dir, dir_stat, dirs); - FcFontSetDestroy (set); - - return new; -} - /* write serialized state to the cache file */ FcBool FcDirCacheWrite (FcCache *cache, FcConfig *config) @@ -1105,11 +955,6 @@ FcDirCacheWrite (FcCache *cache, FcConfig *config) skip->cache_dev = cache_stat.st_dev; skip->cache_ino = cache_stat.st_ino; skip->cache_mtime = cache_stat.st_mtime; -#ifdef HAVE_STRUCT_STAT_ST_MTIM - skip->cache_mtime_nano = cache_stat.st_mtim.tv_nsec; -#else - skip->cache_mtime_nano = 0; -#endif } unlock_cache (); } @@ -1199,22 +1044,15 @@ FcDirCacheClean (const FcChar8 *cache_dir, FcBool verbose) } else { - FcChar8 *s; - target_dir = FcCacheDir (cache); - if (sysroot) - s = FcStrBuildFilename (sysroot, target_dir, NULL); - else - s = FcStrdup (target_dir); - if (stat ((char *) s, &target_stat) < 0) + if (stat ((char *) target_dir, &target_stat) < 0) { if (verbose || FcDebug () & FC_DBG_CACHE) printf ("%s: %s: missing directory: %s \n", - dir, ent->d_name, s); + dir, ent->d_name, target_dir); remove = FcTrue; } FcDirCacheUnload (cache); - FcStrFree (s); } if (remove) { @@ -1234,82 +1072,6 @@ FcDirCacheClean (const FcChar8 *cache_dir, FcBool verbose) return ret; } -int -FcDirCacheLock (const FcChar8 *dir, - FcConfig *config) -{ - FcChar8 *cache_hashed = NULL; - FcChar8 cache_base[CACHEBASE_LEN]; - FcStrList *list; - FcChar8 *cache_dir; - const FcChar8 *sysroot = FcConfigGetSysRoot (config); - int fd = -1; - - FcDirCacheBasename (dir, cache_base); - list = FcStrListCreate (config->cacheDirs); - if (!list) - return -1; - - while ((cache_dir = FcStrListNext (list))) - { - if (sysroot) - cache_hashed = FcStrBuildFilename (sysroot, cache_dir, cache_base, NULL); - else - cache_hashed = FcStrBuildFilename (cache_dir, cache_base, NULL); - if (!cache_hashed) - break; - fd = FcOpen ((const char *)cache_hashed, O_RDWR); - FcStrFree (cache_hashed); - /* No caches in that directory. simply retry with another one */ - if (fd != -1) - { -#if defined(_WIN32) - if (_locking (fd, _LK_LOCK, 1) == -1) - goto bail; -#else - struct flock fl; - - fl.l_type = F_WRLCK; - fl.l_whence = SEEK_SET; - fl.l_start = 0; - fl.l_len = 0; - fl.l_pid = getpid (); - if (fcntl (fd, F_SETLKW, &fl) == -1) - goto bail; -#endif - break; - } - } - FcStrListDone (list); - return fd; -bail: - FcStrListDone (list); - if (fd != -1) - close (fd); - return -1; -} - -void -FcDirCacheUnlock (int fd) -{ - if (fd != -1) - { -#if defined(_WIN32) - _locking (fd, _LK_UNLCK, 1); -#else - struct flock fl; - - fl.l_type = F_UNLCK; - fl.l_whence = SEEK_SET; - fl.l_start = 0; - fl.l_len = 0; - fl.l_pid = getpid (); - fcntl (fd, F_SETLK, &fl); -#endif - close (fd); - } -} - /* * Hokey little macro trick to permit the definitions of C functions * with the same name as CPP macros diff --git a/chromium/third_party/fontconfig/src/src/fccfg.c b/chromium/third_party/fontconfig/src/src/fccfg.c index 9f8ee7c7e6f..6377fd7c6b1 100644 --- a/chromium/third_party/fontconfig/src/src/fccfg.c +++ b/chromium/third_party/fontconfig/src/src/fccfg.c @@ -27,7 +27,6 @@ #include "fcint.h" #include <dirent.h> #include <sys/types.h> -#include "../fc-blanks/fcblanks.h" #if defined (_WIN32) && !defined (R_OK) #define R_OK 4 @@ -110,7 +109,7 @@ FcConfigCreate (void) if (!config->cacheDirs) goto bail8; - config->blanks = &fcBlanks; + config->blanks = 0; config->substPattern = 0; config->substFont = 0; @@ -376,7 +375,7 @@ FcConfigAddDirList (FcConfig *config, FcSetName set, FcStrSet *dirSet) while ((dir = FcStrListNext (dirlist))) { if (FcDebug () & FC_DBG_FONTSET) - printf ("adding fonts from %s\n", dir); + printf ("adding fonts from%s\n", dir); cache = FcDirCacheRead (dir, FcFalse, config); if (!cache) continue; @@ -435,7 +434,6 @@ retry: if (!fc_atomic_ptr_cmpexch (&_fcConfig, cfg, config)) goto retry; - FcConfigReference (config); if (cfg) FcConfigDestroy (cfg); @@ -724,21 +722,6 @@ FcConfigPromote (FcValue v, FcValue u, FcValuePromotionBuffer *buf) v.u.l = FcLangSetPromote (v.u.s, buf); v.type = FcTypeLangSet; } - else if (v.type == FcTypeVoid && u.type == FcTypeLangSet) - { - v.u.l = FcLangSetPromote (NULL, buf); - v.type = FcTypeLangSet; - } - else if (v.type == FcTypeVoid && u.type == FcTypeCharSet) - { - v.u.c = FcCharSetPromote (buf); - v.type = FcTypeCharSet; - } - if (buf && v.type == FcTypeDouble && u.type == FcTypeRange) - { - v.u.r = FcRangePromote (v.u.d, buf); - v.type = FcTypeRange; - } return v; } @@ -911,9 +894,6 @@ FcConfigCompareValue (const FcValue *left_o, break; } break; - case FcTypeRange: - ret = FcRangeCompare (op, left.u.r, right.u.r); - break; } } else @@ -935,11 +915,10 @@ FcConfigCompareValue (const FcValue *left_o, static FcValue FcConfigEvaluate (FcPattern *p, FcPattern *p_pat, FcMatchKind kind, FcExpr *e) { - FcValue v, vl, vr, vle, vre; + FcValue v, vl, vr; FcMatrix *m; FcChar8 *str; FcOp op = FC_OP_GET_OP (e->op); - FcValuePromotionBuffer buf1, buf2; switch ((int) op) { case FcOpInteger: @@ -988,11 +967,6 @@ FcConfigEvaluate (FcPattern *p, FcPattern *p_pat, FcMatchKind kind, FcExpr *e) v.u.l = e->u.lval; v = FcValueSave (v); break; - case FcOpRange: - v.type = FcTypeRange; - v.u.r = e->u.rval; - v = FcValueSave (v); - break; case FcOpBool: v.type = FcTypeBool; v.u.b = e->u.bval; @@ -1059,28 +1033,28 @@ FcConfigEvaluate (FcPattern *p, FcPattern *p_pat, FcMatchKind kind, FcExpr *e) case FcOpDivide: vl = FcConfigEvaluate (p, p_pat, kind, e->u.tree.left); vr = FcConfigEvaluate (p, p_pat, kind, e->u.tree.right); - vle = FcConfigPromote (vl, vr, &buf1); - vre = FcConfigPromote (vr, vle, &buf2); - if (vle.type == vre.type) + vl = FcConfigPromote (vl, vr, NULL); + vr = FcConfigPromote (vr, vl, NULL); + if (vl.type == vr.type) { - switch ((int) vle.type) { + switch ((int) vl.type) { case FcTypeDouble: switch ((int) op) { case FcOpPlus: v.type = FcTypeDouble; - v.u.d = vle.u.d + vre.u.d; + v.u.d = vl.u.d + vr.u.d; break; case FcOpMinus: v.type = FcTypeDouble; - v.u.d = vle.u.d - vre.u.d; + v.u.d = vl.u.d - vr.u.d; break; case FcOpTimes: v.type = FcTypeDouble; - v.u.d = vle.u.d * vre.u.d; + v.u.d = vl.u.d * vr.u.d; break; case FcOpDivide: v.type = FcTypeDouble; - v.u.d = vle.u.d / vre.u.d; + v.u.d = vl.u.d / vr.u.d; break; default: v.type = FcTypeVoid; @@ -1097,11 +1071,11 @@ FcConfigEvaluate (FcPattern *p, FcPattern *p_pat, FcMatchKind kind, FcExpr *e) switch ((int) op) { case FcOpOr: v.type = FcTypeBool; - v.u.b = vle.u.b || vre.u.b; + v.u.b = vl.u.b || vr.u.b; break; case FcOpAnd: v.type = FcTypeBool; - v.u.b = vle.u.b && vre.u.b; + v.u.b = vl.u.b && vr.u.b; break; default: v.type = FcTypeVoid; @@ -1112,7 +1086,7 @@ FcConfigEvaluate (FcPattern *p, FcPattern *p_pat, FcMatchKind kind, FcExpr *e) switch ((int) op) { case FcOpPlus: v.type = FcTypeString; - str = FcStrPlus (vle.u.s, vre.u.s); + str = FcStrPlus (vl.u.s, vr.u.s); v.u.s = FcStrdup (str); FcStrFree (str); @@ -1131,7 +1105,7 @@ FcConfigEvaluate (FcPattern *p, FcPattern *p_pat, FcMatchKind kind, FcExpr *e) m = malloc (sizeof (FcMatrix)); if (m) { - FcMatrixMultiply (m, vle.u.m, vre.u.m); + FcMatrixMultiply (m, vl.u.m, vr.u.m); v.u.m = m; } else @@ -1148,13 +1122,13 @@ FcConfigEvaluate (FcPattern *p, FcPattern *p_pat, FcMatchKind kind, FcExpr *e) switch ((int) op) { case FcOpPlus: v.type = FcTypeCharSet; - v.u.c = FcCharSetUnion (vle.u.c, vre.u.c); + v.u.c = FcCharSetUnion (vl.u.c, vr.u.c); if (!v.u.c) v.type = FcTypeVoid; break; case FcOpMinus: v.type = FcTypeCharSet; - v.u.c = FcCharSetSubtract (vle.u.c, vre.u.c); + v.u.c = FcCharSetSubtract (vl.u.c, vr.u.c); if (!v.u.c) v.type = FcTypeVoid; break; @@ -1167,13 +1141,13 @@ FcConfigEvaluate (FcPattern *p, FcPattern *p_pat, FcMatchKind kind, FcExpr *e) switch ((int) op) { case FcOpPlus: v.type = FcTypeLangSet; - v.u.l = FcLangSetUnion (vle.u.l, vre.u.l); + v.u.l = FcLangSetUnion (vl.u.l, vr.u.l); if (!v.u.l) v.type = FcTypeVoid; break; case FcOpMinus: v.type = FcTypeLangSet; - v.u.l = FcLangSetSubtract (vle.u.l, vre.u.l); + v.u.l = FcLangSetSubtract (vl.u.l, vr.u.l); if (!v.u.l) v.type = FcTypeVoid; break; @@ -1544,52 +1518,15 @@ FcConfigSubstituteWithPat (FcConfig *config, FcStrList *l = FcStrListCreate (strs); FcChar8 *lang; FcValue v; - FcLangSet *lsund = FcLangSetCreate (); - FcLangSetAdd (lsund, (const FcChar8 *)"und"); FcStrSetDestroy (strs); while (l && (lang = FcStrListNext (l))) { - FcPatternElt *e = FcPatternObjectFindElt (p, FC_LANG_OBJECT); - - if (e) - { - FcValueListPtr ll; - - for (ll = FcPatternEltValues (e); ll; ll = FcValueListNext (ll)) - { - FcValue vv = FcValueCanonicalize (&ll->value); - - if (vv.type == FcTypeLangSet) - { - FcLangSet *ls = FcLangSetCreate (); - FcBool b; - - FcLangSetAdd (ls, lang); - b = FcLangSetContains (vv.u.l, ls); - FcLangSetDestroy (ls); - if (b) - goto bail_lang; - if (FcLangSetContains (vv.u.l, lsund)) - goto bail_lang; - } - else - { - if (FcStrCmpIgnoreCase (vv.u.s, lang) == 0) - goto bail_lang; - if (FcStrCmpIgnoreCase (vv.u.s, (const FcChar8 *)"und") == 0) - goto bail_lang; - } - } - } v.type = FcTypeString; v.u.s = lang; - FcPatternObjectAddWithBinding (p, FC_LANG_OBJECT, v, FcValueBindingWeak, FcTrue); } - bail_lang: FcStrListDone (l); - FcLangSetDestroy (lsund); } if (FcPatternObjectGet (p, FC_PRGNAME_OBJECT, 0, &v) == FcResultNoMatch) { @@ -1841,7 +1778,6 @@ FcConfigSubstitute (FcConfig *config, #if defined (_WIN32) static FcChar8 fontconfig_path[1000] = ""; /* MT-dontcare */ -FcChar8 fontconfig_instprefix[1000] = ""; /* MT-dontcare */ # if (defined (PIC) || defined (DLL_EXPORT)) @@ -1876,7 +1812,6 @@ DllMain (HINSTANCE hinstDLL, if (p && (FcStrCmpIgnoreCase (p + 1, (const FcChar8 *) "bin") == 0 || FcStrCmpIgnoreCase (p + 1, (const FcChar8 *) "lib") == 0)) *p = '\0'; - strcat ((char *) fontconfig_instprefix, (char *) fontconfig_path); strcat ((char *) fontconfig_path, "\\etc\\fonts"); } else @@ -2050,8 +1985,6 @@ FcConfigXdgCacheHome (void) const char *env = getenv ("XDG_CACHE_HOME"); FcChar8 *ret = NULL; - if (!_FcConfigHomeEnabled) - return NULL; if (env) ret = FcStrCopy ((const FcChar8 *)env); else @@ -2077,8 +2010,6 @@ FcConfigXdgConfigHome (void) const char *env = getenv ("XDG_CONFIG_HOME"); FcChar8 *ret = NULL; - if (!_FcConfigHomeEnabled) - return NULL; if (env) ret = FcStrCopy ((const FcChar8 *)env); else @@ -2104,8 +2035,6 @@ FcConfigXdgDataHome (void) const char *env = getenv ("XDG_DATA_HOME"); FcChar8 *ret = NULL; - if (!_FcConfigHomeEnabled) - return NULL; if (env) ret = FcStrCopy ((const FcChar8 *)env); else @@ -2205,7 +2134,7 @@ FcConfigAppFontAddFile (FcConfig *config, return FcFalse; } - subdirs = FcStrSetCreateEx (FCSS_GROW_BY_64); + subdirs = FcStrSetCreate (); if (!subdirs) return FcFalse; @@ -2252,7 +2181,7 @@ FcConfigAppFontAddDir (FcConfig *config, return FcFalse; } - dirs = FcStrSetCreateEx (FCSS_GROW_BY_64); + dirs = FcStrSetCreate (); if (!dirs) return FcFalse; @@ -2383,7 +2312,7 @@ void FcConfigSetSysRoot (FcConfig *config, const FcChar8 *sysroot) { - FcChar8 *s = NULL; + FcChar8 *s; FcBool init = FcFalse; if (!config) @@ -2403,12 +2332,9 @@ FcConfigSetSysRoot (FcConfig *config, } } - if (sysroot) - { - s = FcStrCopyFilename (sysroot); - if (!s) - return; - } + s = FcStrCopyFilename (sysroot); + if (!s) + return; if (config->sysRoot) FcStrFree (config->sysRoot); @@ -2418,10 +2344,6 @@ FcConfigSetSysRoot (FcConfig *config, { config = FcInitLoadOwnConfigAndFonts (config); FcConfigSetCurrent (config); - /* FcConfigSetCurrent() increases the refcount. - * decrease it here to avoid the memory leak. - */ - FcConfigDestroy (config); } } diff --git a/chromium/third_party/fontconfig/src/src/fccharset.c b/chromium/third_party/fontconfig/src/src/fccharset.c index 3f1789230e6..c9f928cd480 100644 --- a/chromium/third_party/fontconfig/src/src/fccharset.c +++ b/chromium/third_party/fontconfig/src/src/fccharset.c @@ -43,21 +43,6 @@ FcCharSetCreate (void) } FcCharSet * -FcCharSetPromote (FcValuePromotionBuffer *vbuf) -{ - FcCharSet *fcs = (FcCharSet *) vbuf; - - FC_ASSERT_STATIC (sizeof (FcCharSet) <= sizeof (FcValuePromotionBuffer)); - - FcRefSetConst (&fcs->ref); - fcs->num = 0; - fcs->leaves_offset = 0; - fcs->numbers_offset = 0; - - return fcs; -} - -FcCharSet * FcCharSetNew (void) { return FcCharSetCreate (); @@ -164,14 +149,6 @@ FcCharSetPutLeaf (FcCharSet *fcs, unsigned int alloced = 8; leaves = malloc (alloced * sizeof (*leaves)); numbers = malloc (alloced * sizeof (*numbers)); - if (!leaves || !numbers) - { - if (leaves) - free (leaves); - if (numbers) - free (numbers); - return FcFalse; - } } else { @@ -180,19 +157,8 @@ FcCharSetPutLeaf (FcCharSet *fcs, alloced *= 2; new_leaves = realloc (leaves, alloced * sizeof (*leaves)); - if (!new_leaves) - return FcFalse; numbers = realloc (numbers, alloced * sizeof (*numbers)); - if (!numbers) - { - /* Revert the reallocation of leaves */ - leaves = realloc (new_leaves, (alloced / 2) * sizeof (*new_leaves)); - /* unlikely to fail though */ - if (!leaves) - return FcFalse; - fcs->leaves_offset = FcPtrToOffset (fcs, leaves); - return FcFalse; - } + distance = (intptr_t) new_leaves - (intptr_t) leaves; if (new_leaves && distance) { @@ -203,6 +169,9 @@ FcCharSetPutLeaf (FcCharSet *fcs, leaves = new_leaves; } + if (!leaves || !numbers) + return FcFalse; + fcs->leaves_offset = FcPtrToOffset (fcs, leaves); fcs->numbers_offset = FcPtrToOffset (fcs, numbers); } @@ -831,123 +800,188 @@ FcCharSetCoverage (const FcCharSet *a, FcChar32 page, FcChar32 *result) return page; } -static FcBool -FcNameParseRange (FcChar8 **string, FcChar32 *pfirst, FcChar32 *plast) +/* + * ASCII representation of charsets. + * + * Each leaf is represented as 9 32-bit values, the code of the first character followed + * by 8 32 bit values for the leaf itself. Each value is encoded as 5 ASCII characters, + * only 85 different values are used to avoid control characters as well as the other + * characters used to encode font names. 85**5 > 2^32 so things work out, but + * it's not exactly human readable output. As a special case, 0 is encoded as a space + */ + +static const unsigned char charToValue[256] = { + /* "" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + /* "\b" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + /* "\020" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + /* "\030" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + /* " " */ 0xff, 0x00, 0xff, 0x01, 0x02, 0x03, 0x04, 0xff, + /* "(" */ 0x05, 0x06, 0x07, 0x08, 0xff, 0xff, 0x09, 0x0a, + /* "0" */ 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, + /* "8" */ 0x13, 0x14, 0xff, 0x15, 0x16, 0xff, 0x17, 0x18, + /* "@" */ 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, + /* "H" */ 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, + /* "P" */ 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, + /* "X" */ 0x31, 0x32, 0x33, 0x34, 0xff, 0x35, 0x36, 0xff, + /* "`" */ 0xff, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, + /* "h" */ 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, + /* "p" */ 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, + /* "x" */ 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0xff, + /* "\200" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + /* "\210" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + /* "\220" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + /* "\230" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + /* "\240" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + /* "\250" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + /* "\260" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + /* "\270" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + /* "\300" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + /* "\310" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + /* "\320" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + /* "\330" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + /* "\340" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + /* "\350" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + /* "\360" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + /* "\370" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +}; + +static const FcChar8 valueToChar[0x55] = { + /* 0x00 */ '!', '#', '$', '%', '&', '(', ')', '*', + /* 0x08 */ '+', '.', '/', '0', '1', '2', '3', '4', + /* 0x10 */ '5', '6', '7', '8', '9', ';', '<', '>', + /* 0x18 */ '?', '@', 'A', 'B', 'C', 'D', 'E', 'F', + /* 0x20 */ 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', + /* 0x28 */ 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', + /* 0x30 */ 'W', 'X', 'Y', 'Z', '[', ']', '^', 'a', + /* 0x38 */ 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', + /* 0x40 */ 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', + /* 0x48 */ 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', + /* 0x50 */ 'z', '{', '|', '}', '~', +}; + +static FcChar8 * +FcCharSetParseValue (FcChar8 *string, FcChar32 *value) { - char *s = (char *) *string; - char *t; - long first, last; - - while (isspace(*s)) - s++; - t = s; - errno = 0; - first = last = strtol (s, &s, 16); - if (errno) - return FcFalse; - while (isspace(*s)) - s++; - if (*s == '-') + int i; + FcChar32 v; + FcChar32 c; + + if (*string == ' ') + { + v = 0; + string++; + } + else + { + v = 0; + for (i = 0; i < 5; i++) { - s++; - errno = 0; - last = strtol (s, &s, 16); - if (errno) - return FcFalse; + if (!(c = (FcChar32) (unsigned char) *string++)) + return 0; + c = charToValue[c]; + if (c == 0xff) + return 0; + v = v * 85 + c; } + } + *value = v; + return string; +} - if (s == t || first < 0 || last < 0 || last < first || last > 0x10ffff) - return FcFalse; - - *string = (FcChar8 *) s; - *pfirst = first; - *plast = last; - return FcTrue; +static FcBool +FcCharSetUnparseValue (FcStrBuf *buf, FcChar32 value) +{ + int i; + if (value == 0) + { + return FcStrBufChar (buf, ' '); + } + else + { + FcChar8 string[6]; + FcChar8 *s = string + 5; + string[5] = '\0'; + for (i = 0; i < 5; i++) + { + *--s = valueToChar[value % 85]; + value /= 85; + } + for (i = 0; i < 5; i++) + if (!FcStrBufChar (buf, *s++)) + return FcFalse; + } + return FcTrue; } FcCharSet * FcNameParseCharSet (FcChar8 *string) { FcCharSet *c; - FcChar32 first, last; + FcChar32 ucs4; + FcCharLeaf *leaf; + FcCharLeaf temp; + FcChar32 bits; + int i; c = FcCharSetCreate (); if (!c) goto bail0; while (*string) { - FcChar32 u; - - if (!FcNameParseRange (&string, &first, &last)) + string = FcCharSetParseValue (string, &ucs4); + if (!string) + goto bail1; + bits = 0; + for (i = 0; i < 256/32; i++) + { + string = FcCharSetParseValue (string, &temp.map[i]); + if (!string) goto bail1; - - for (u = first; u < last + 1; u++) - FcCharSetAddChar (c, u); + bits |= temp.map[i]; + } + if (bits) + { + leaf = malloc (sizeof (FcCharLeaf)); + if (!leaf) + goto bail1; + *leaf = temp; + if (!FcCharSetInsertLeaf (c, ucs4, leaf)) + goto bail1; + } } return c; bail1: - FcCharSetDestroy (c); + if (c->num) + { + free (FcCharSetLeaves (c)); + } + if (c->num) + { + free (FcCharSetNumbers (c)); + } + free (c); bail0: return NULL; } -static void -FcNameUnparseUnicode (FcStrBuf *buf, FcChar32 u) -{ - FcChar8 buf_static[64]; - snprintf ((char *) buf_static, sizeof (buf_static), "%x", u); - FcStrBufString (buf, buf_static); -} - FcBool FcNameUnparseCharSet (FcStrBuf *buf, const FcCharSet *c) { FcCharSetIter ci; - FcChar32 first, last; int i; #ifdef CHECK int len = buf->len; #endif - first = last = 0x7FFFFFFF; - for (FcCharSetIterStart (c, &ci); ci.leaf; FcCharSetIterNext (c, &ci)) { + if (!FcCharSetUnparseValue (buf, ci.ucs4)) + return FcFalse; for (i = 0; i < 256/32; i++) - { - FcChar32 bits = ci.leaf->map[i]; - FcChar32 u = ci.ucs4 + i * 32; - - while (bits) - { - if (bits & 1) - { - if (u != last + 1) - { - if (last != first) - { - FcStrBufChar (buf, '-'); - FcNameUnparseUnicode (buf, last); - } - if (last != 0x7FFFFFFF) - FcStrBufChar (buf, ' '); - /* Start new range. */ - first = u; - FcNameUnparseUnicode (buf, u); - } - last = u; - } - bits >>= 1; - u++; - } - } - } - if (last != first) - { - FcStrBufChar (buf, '-'); - FcNameUnparseUnicode (buf, last); + if (!FcCharSetUnparseValue (buf, ci.leaf->map[i])) + return FcFalse; } #ifdef CHECK { diff --git a/chromium/third_party/fontconfig/src/src/fccompat.c b/chromium/third_party/fontconfig/src/src/fccompat.c index 31d80bef162..1c2ba8bedde 100644 --- a/chromium/third_party/fontconfig/src/src/fccompat.c +++ b/chromium/third_party/fontconfig/src/src/fccompat.c @@ -170,27 +170,14 @@ FcRandom(void) static struct random_data fcrandbuf; static char statebuf[256]; static FcBool initialized = FcFalse; -#ifdef _AIX - static char *retval; - long res; -#endif if (initialized != FcTrue) { -#ifdef _AIX - initstate_r (time (NULL), statebuf, 256, &retval, &fcrandbuf); -#else - initstate_r (time (NULL), statebuf, 256, &fcrandbuf); -#endif + initstate_r(time(NULL), statebuf, 256, &fcrandbuf); initialized = FcTrue; } -#ifdef _AIX - random_r (&res, &fcrandbuf); - result = (int32_t)res; -#else - random_r (&fcrandbuf, &result); -#endif + random_r(&fcrandbuf, &result); #elif HAVE_RANDOM static char statebuf[256]; char *state; @@ -198,30 +185,30 @@ FcRandom(void) if (initialized != FcTrue) { - state = initstate (time (NULL), statebuf, 256); + state = initstate(time(NULL), statebuf, 256); initialized = FcTrue; } else - state = setstate (statebuf); + state = setstate(statebuf); - result = random (); + result = random(); - setstate (state); + setstate(state); #elif HAVE_LRAND48 - result = lrand48 (); + result = lrand48(); #elif HAVE_RAND_R - static unsigned int seed = time (NULL); + static unsigned int seed = time(NULL); - result = rand_r (&seed); + result = rand_r(&seed); #elif HAVE_RAND static FcBool initialized = FcFalse; if (initialized != FcTrue) { - srand (time (NULL)); + srand(time(NULL)); initialized = FcTrue; } - result = rand (); + result = rand(); #else # error no random number generator function available. #endif @@ -255,7 +242,3 @@ FcMakeDirectory (const FcChar8 *dir) FcStrFree (parent); return ret; } - -#define __fccompat__ -#include "fcaliastail.h" -#undef __fccompat__ diff --git a/chromium/third_party/fontconfig/src/src/fcdbg.c b/chromium/third_party/fontconfig/src/src/fcdbg.c index c2853fff376..d74bc276940 100644 --- a/chromium/third_party/fontconfig/src/src/fcdbg.c +++ b/chromium/third_party/fontconfig/src/src/fcdbg.c @@ -61,9 +61,6 @@ _FcValuePrintFile (FILE *f, const FcValue v) case FcTypeFTFace: fprintf (f, "face"); break; - case FcTypeRange: - fprintf (f, "[%g %g)", v.u.r->begin, v.u.r->end); - break; } } @@ -211,84 +208,6 @@ FcPatternPrint (const FcPattern *p) } void -FcPatternPrint2 (FcPattern *pp1, - FcPattern *pp2, - const FcObjectSet *os) -{ - int i, j, k, pos; - FcPatternElt *e1, *e2; - FcPattern *p1, *p2; - - if (os) - { - p1 = FcPatternFilter (pp1, os); - p2 = FcPatternFilter (pp2, os); - } - else - { - p1 = pp1; - p2 = pp2; - } - printf ("Pattern has %d elts (size %d), %d elts (size %d)\n", - p1->num, p1->size, p2->num, p2->size); - for (i = 0, j = 0; i < p1->num; i++) - { - e1 = &FcPatternElts(p1)[i]; - e2 = &FcPatternElts(p2)[j]; - if (!e2 || e1->object != e2->object) - { - pos = FcPatternPosition (p2, FcObjectName (e1->object)); - if (pos >= 0) - { - for (k = j; k < pos; k++) - { - e2 = &FcPatternElts(p2)[k]; - printf ("\t%s: (None) -> ", FcObjectName (e2->object)); - FcValueListPrint (FcPatternEltValues (e2)); - printf ("\n"); - } - j = pos; - goto cont; - } - else - { - printf ("\t%s:", FcObjectName (e1->object)); - FcValueListPrint (FcPatternEltValues (e1)); - printf (" -> (None)\n"); - } - } - else - { - cont: - printf ("\t%s:", FcObjectName (e1->object)); - FcValueListPrint (FcPatternEltValues (e1)); - printf (" -> "); - e2 = &FcPatternElts(p2)[j]; - FcValueListPrint (FcPatternEltValues (e2)); - printf ("\n"); - j++; - } - } - if (j < p2->num) - { - for (k = j; k < p2->num; k++) - { - e2 = &FcPatternElts(p2)[k]; - if (FcObjectName (e2->object)) - { - printf ("\t%s: (None) -> ", FcObjectName (e2->object)); - FcValueListPrint (FcPatternEltValues (e2)); - printf ("\n"); - } - } - } - if (p1 != pp1) - FcPatternDestroy (p1); - if (p2 != pp2) - FcPatternDestroy (p2); -} - -void FcOpPrint (FcOp op_) { FcOp op = FC_OP_GET_OP (op_); @@ -358,9 +277,7 @@ FcExprPrint (const FcExpr *expr) FcExprPrint (expr->u.mexpr->yy); printf ("]"); break; - case FcOpRange: - printf ("(%g, %g)", expr->u.rval->begin, expr->u.rval->end); - break; + case FcOpRange: break; case FcOpBool: printf ("%s", expr->u.bval ? "true" : "false"); break; case FcOpCharSet: printf ("charset\n"); break; case FcOpLangSet: diff --git a/chromium/third_party/fontconfig/src/src/fcdefault.c b/chromium/third_party/fontconfig/src/src/fcdefault.c index 6647a8fe81c..d1b917fd9de 100644 --- a/chromium/third_party/fontconfig/src/src/fcdefault.c +++ b/chromium/third_party/fontconfig/src/src/fcdefault.c @@ -38,7 +38,6 @@ static const struct { { FC_GLOBAL_ADVANCE_OBJECT, FcTrue }, /* !FC_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH */ { FC_EMBEDDED_BITMAP_OBJECT, FcTrue }, /* !FC_LOAD_NO_BITMAP */ { FC_DECORATIVE_OBJECT, FcFalse }, - { FC_SYMBOL_OBJECT, FcFalse }, }; #define NUM_FC_BOOL_DEFAULTS (int) (sizeof FcBoolDefaults / sizeof FcBoolDefaults[0]) @@ -95,6 +94,7 @@ retry: { FcStrSet *langs = FcGetDefaultLangs (); lang = FcStrdup (langs->strs[0]); + FcStrSetDestroy (langs); if (!fc_atomic_ptr_cmpexch (&default_lang, NULL, lang)) { free (lang); @@ -149,7 +149,7 @@ retry: #else # if defined (HAVE_GETEXECNAME) const char *p = getexecname (); -# elif defined (HAVE_READLINK) +# else char buf[PATH_MAX + 1]; int len; char *p = NULL; @@ -160,8 +160,6 @@ retry: buf[len] = '\0'; p = buf; } -# else - char *p = NULL; # endif if (p) { @@ -219,10 +217,9 @@ FcDefaultSubstitute (FcPattern *pattern) { FcValue v, namelang, v2; int i; - double dpi, size, scale, pixelsize; if (FcPatternObjectGet (pattern, FC_WEIGHT_OBJECT, 0, &v) == FcResultNoMatch ) - FcPatternObjectAddInteger (pattern, FC_WEIGHT_OBJECT, FC_WEIGHT_NORMAL); + FcPatternObjectAddInteger (pattern, FC_WEIGHT_OBJECT, FC_WEIGHT_MEDIUM); if (FcPatternObjectGet (pattern, FC_SLANT_OBJECT, 0, &v) == FcResultNoMatch) FcPatternObjectAddInteger (pattern, FC_SLANT_OBJECT, FC_SLANT_ROMAN); @@ -234,30 +231,32 @@ FcDefaultSubstitute (FcPattern *pattern) if (FcPatternObjectGet (pattern, FcBoolDefaults[i].field, 0, &v) == FcResultNoMatch) FcPatternObjectAddBool (pattern, FcBoolDefaults[i].field, FcBoolDefaults[i].value); - if (FcPatternObjectGetDouble (pattern, FC_SIZE_OBJECT, 0, &size) != FcResultMatch) - size = 12.0L; - if (FcPatternObjectGetDouble (pattern, FC_SCALE_OBJECT, 0, &scale) != FcResultMatch) - scale = 1.0; - if (FcPatternObjectGetDouble (pattern, FC_DPI_OBJECT, 0, &dpi) != FcResultMatch) - dpi = 75.0; - - if (FcPatternObjectGet (pattern, FC_PIXEL_SIZE_OBJECT, 0, &v) != FcResultMatch) - { - (void) FcPatternObjectDel (pattern, FC_SCALE_OBJECT); - FcPatternObjectAddDouble (pattern, FC_SCALE_OBJECT, scale); - pixelsize = size * scale; - (void) FcPatternObjectDel (pattern, FC_DPI_OBJECT); - FcPatternObjectAddDouble (pattern, FC_DPI_OBJECT, dpi); - pixelsize *= dpi / 72.0; - FcPatternObjectAddDouble (pattern, FC_PIXEL_SIZE_OBJECT, pixelsize); - } - else + if (FcPatternObjectGet (pattern, FC_PIXEL_SIZE_OBJECT, 0, &v) == FcResultNoMatch) { - size = v.u.d; - size = size / dpi * 72.0 / scale; + double dpi, size, scale; + + if (FcPatternObjectGetDouble (pattern, FC_SIZE_OBJECT, 0, &size) != FcResultMatch) + { + size = 12.0; + (void) FcPatternObjectDel (pattern, FC_SIZE_OBJECT); + FcPatternObjectAddDouble (pattern, FC_SIZE_OBJECT, size); + } + if (FcPatternObjectGetDouble (pattern, FC_SCALE_OBJECT, 0, &scale) != FcResultMatch) + { + scale = 1.0; + (void) FcPatternObjectDel (pattern, FC_SCALE_OBJECT); + FcPatternObjectAddDouble (pattern, FC_SCALE_OBJECT, scale); + } + size *= scale; + if (FcPatternObjectGetDouble (pattern, FC_DPI_OBJECT, 0, &dpi) != FcResultMatch) + { + dpi = 75.0; + (void) FcPatternObjectDel (pattern, FC_DPI_OBJECT); + FcPatternObjectAddDouble (pattern, FC_DPI_OBJECT, dpi); + } + size *= dpi / 72.0; + FcPatternObjectAddDouble (pattern, FC_PIXEL_SIZE_OBJECT, size); } - (void) FcPatternObjectDel (pattern, FC_SIZE_OBJECT); - FcPatternObjectAddDouble (pattern, FC_SIZE_OBJECT, size); if (FcPatternObjectGet (pattern, FC_FONTVERSION_OBJECT, 0, &v) == FcResultNoMatch) { diff --git a/chromium/third_party/fontconfig/src/src/fcdir.c b/chromium/third_party/fontconfig/src/src/fcdir.c index fd62a342f81..b040a285ad6 100644 --- a/chromium/third_party/fontconfig/src/src/fcdir.c +++ b/chromium/third_party/fontconfig/src/src/fcdir.c @@ -23,9 +23,6 @@ */ #include "fcint.h" -#include "fcftint.h" -#include <ft2build.h> -#include FT_FREETYPE_H #include <dirent.h> FcBool @@ -68,20 +65,12 @@ FcFileScanFontConfig (FcFontSet *set, const FcChar8 *file, FcConfig *config) { - FT_Library ftLibrary; - FT_Face face; FcPattern *font; FcBool ret = FcTrue; - int num_faces = 0; - int num_instances = 0; - int face_num = 0; - int instance_num = 0; int id; - const FcChar8 *sysroot = FcConfigGetSysRoot (config); - - if (FT_Init_FreeType (&ftLibrary)) - return FcFalse; + int count = 0; + id = 0; do { font = 0; @@ -93,39 +82,9 @@ FcFileScanFontConfig (FcFontSet *set, printf ("\tScanning file %s...", file); fflush (stdout); } - - id = ((instance_num << 16) + face_num); - if (FT_New_Face (ftLibrary, (char *) file, id, &face)) - return FcFalse; - num_faces = face->num_faces; - num_instances = face->style_flags >> 16; - font = FcFreeTypeQueryFace (face, file, id, blanks); - FT_Done_Face (face); - + font = FcFreeTypeQuery (file, id, blanks, &count); if (FcDebug () & FC_DBG_SCAN) printf ("done\n"); - /* - * Get rid of sysroot here so that targeting scan rule may contains FC_FILE pattern - * and they should usually expect without sysroot. - */ - if (font && sysroot) - { - size_t len = strlen ((const char *)sysroot); - FcChar8 *f = NULL; - - if (FcPatternObjectGetString (font, FC_FILE_OBJECT, 0, &f) == FcResultMatch && - strncmp ((const char *)f, (const char *)sysroot, len) == 0) - { - FcChar8 *s = FcStrdup (f); - FcPatternObjectDel (font, FC_FILE_OBJECT); - if (s[len] != '/') - len--; - else if (s[len+1] == '/') - len++; - FcPatternObjectAddString (font, FC_FILE_OBJECT, &s[len]); - FcStrFree (s); - } - } /* * Edit pattern with user-defined rules @@ -154,20 +113,10 @@ FcFileScanFontConfig (FcFontSet *set, ret = FcFalse; } } - else - ret = FcFalse; - - if (instance_num < num_instances) - instance_num++; - else - { - face_num++; - instance_num = 0; - } - } while (font && ret && face_num < num_faces); - - FT_Done_FreeType (ftLibrary); - + else if (font) + FcPatternDestroy (font); + id++; + } while (font && ret && id < count); return ret; } @@ -179,32 +128,9 @@ FcFileScanConfig (FcFontSet *set, FcConfig *config) { if (FcFileIsDir (file)) - { - const FcChar8 *sysroot = FcConfigGetSysRoot (config); - const FcChar8 *d = file; - size_t len; - - if (sysroot) - { - len = strlen ((const char *)sysroot); - if (strncmp ((const char *)file, (const char *)sysroot, len) == 0) - { - if (file[len] != '/') - len--; - else if (file[len+1] == '/') - len++; - d = &file[len]; - } - } - return FcStrSetAdd (dirs, d); - } + return FcStrSetAdd (dirs, file); else - { - if (set) - return FcFileScanFontConfig (set, blanks, file, config); - else - return FcTrue; - } + return FcFileScanFontConfig (set, blanks, file, config); } FcBool @@ -275,7 +201,7 @@ FcDirScanConfig (FcFontSet *set, goto bail; } - files = FcStrSetCreateEx (FCSS_ALLOW_DUPLICATES | FCSS_GROW_BY_64); + files = FcStrSetCreate (); if (!files) { ret = FcFalse; @@ -339,34 +265,25 @@ FcDirCacheScan (const FcChar8 *dir, FcConfig *config) FcFontSet *set; FcCache *cache = NULL; struct stat dir_stat; - const FcChar8 *sysroot = FcConfigGetSysRoot (config); - FcChar8 *d; - int fd = -1; - - if (sysroot) - d = FcStrBuildFilename (sysroot, dir, NULL); - else - d = FcStrdup (dir); if (FcDebug () & FC_DBG_FONTSET) - printf ("cache scan dir %s\n", d); + printf ("cache scan dir %s\n", dir); - if (FcStatChecksum (d, &dir_stat) < 0) + if (FcStatChecksum (dir, &dir_stat) < 0) goto bail; set = FcFontSetCreate(); if (!set) goto bail; - dirs = FcStrSetCreateEx (FCSS_GROW_BY_64); + dirs = FcStrSetCreate (); if (!dirs) goto bail1; - fd = FcDirCacheLock (dir, config); /* * Scan the dir */ - if (!FcDirScanConfig (set, dirs, NULL, d, FcTrue, config)) + if (!FcDirScanConfig (set, dirs, NULL, dir, FcTrue, config)) goto bail2; /* @@ -382,69 +299,13 @@ FcDirCacheScan (const FcChar8 *dir, FcConfig *config) FcDirCacheWrite (cache, config); bail2: - FcDirCacheUnlock (fd); FcStrSetDestroy (dirs); bail1: FcFontSetDestroy (set); bail: - FcStrFree (d); - return cache; } -FcCache * -FcDirCacheRescan (const FcChar8 *dir, FcConfig *config) -{ - FcCache *cache; - FcCache *new = NULL; - struct stat dir_stat; - FcStrSet *dirs; - const FcChar8 *sysroot = FcConfigGetSysRoot (config); - FcChar8 *d = NULL; - int fd = -1; - - cache = FcDirCacheLoad (dir, config, NULL); - if (!cache) - goto bail; - - if (sysroot) - d = FcStrBuildFilename (sysroot, dir, NULL); - else - d = FcStrdup (dir); - if (FcStatChecksum (d, &dir_stat) < 0) - goto bail; - dirs = FcStrSetCreateEx (FCSS_GROW_BY_64); - if (!dirs) - goto bail; - - fd = FcDirCacheLock (dir, config); - /* - * Scan the dir - */ - if (!FcDirScanConfig (NULL, dirs, NULL, d, FcTrue, config)) - goto bail1; - /* - * Rebuild the cache object - */ - new = FcDirCacheRebuild (cache, &dir_stat, dirs); - if (!new) - goto bail1; - FcDirCacheUnload (cache); - /* - * Write out the cache file, ignoring any troubles - */ - FcDirCacheWrite (new, config); - -bail1: - FcDirCacheUnlock (fd); - FcStrSetDestroy (dirs); -bail: - if (d) - FcStrFree (d); - - return new; -} - /* * Read (or construct) the cache for a directory */ diff --git a/chromium/third_party/fontconfig/src/src/fcfreetype.c b/chromium/third_party/fontconfig/src/src/fcfreetype.c index b4d926d4667..e39430762c7 100644 --- a/chromium/third_party/fontconfig/src/src/fcfreetype.c +++ b/chromium/third_party/fontconfig/src/src/fcfreetype.c @@ -62,7 +62,6 @@ #include FT_BDF_H #include FT_MODULE_H #endif -#include FT_MULTIPLE_MASTERS_H #include "ftglue.h" @@ -559,139 +558,6 @@ FcFontCapabilities(FT_Face face); #define NUM_FC_MAC_ROMAN_FAKE (int) (sizeof (fcMacRomanFake) / sizeof (fcMacRomanFake[0])) - -/* From http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/ROMAN.TXT */ -static const FcChar16 fcMacRomanNonASCIIToUnicode[128] = { - /*0x80*/ 0x00C4, /* LATIN CAPITAL LETTER A WITH DIAERESIS */ - /*0x81*/ 0x00C5, /* LATIN CAPITAL LETTER A WITH RING ABOVE */ - /*0x82*/ 0x00C7, /* LATIN CAPITAL LETTER C WITH CEDILLA */ - /*0x83*/ 0x00C9, /* LATIN CAPITAL LETTER E WITH ACUTE */ - /*0x84*/ 0x00D1, /* LATIN CAPITAL LETTER N WITH TILDE */ - /*0x85*/ 0x00D6, /* LATIN CAPITAL LETTER O WITH DIAERESIS */ - /*0x86*/ 0x00DC, /* LATIN CAPITAL LETTER U WITH DIAERESIS */ - /*0x87*/ 0x00E1, /* LATIN SMALL LETTER A WITH ACUTE */ - /*0x88*/ 0x00E0, /* LATIN SMALL LETTER A WITH GRAVE */ - /*0x89*/ 0x00E2, /* LATIN SMALL LETTER A WITH CIRCUMFLEX */ - /*0x8A*/ 0x00E4, /* LATIN SMALL LETTER A WITH DIAERESIS */ - /*0x8B*/ 0x00E3, /* LATIN SMALL LETTER A WITH TILDE */ - /*0x8C*/ 0x00E5, /* LATIN SMALL LETTER A WITH RING ABOVE */ - /*0x8D*/ 0x00E7, /* LATIN SMALL LETTER C WITH CEDILLA */ - /*0x8E*/ 0x00E9, /* LATIN SMALL LETTER E WITH ACUTE */ - /*0x8F*/ 0x00E8, /* LATIN SMALL LETTER E WITH GRAVE */ - /*0x90*/ 0x00EA, /* LATIN SMALL LETTER E WITH CIRCUMFLEX */ - /*0x91*/ 0x00EB, /* LATIN SMALL LETTER E WITH DIAERESIS */ - /*0x92*/ 0x00ED, /* LATIN SMALL LETTER I WITH ACUTE */ - /*0x93*/ 0x00EC, /* LATIN SMALL LETTER I WITH GRAVE */ - /*0x94*/ 0x00EE, /* LATIN SMALL LETTER I WITH CIRCUMFLEX */ - /*0x95*/ 0x00EF, /* LATIN SMALL LETTER I WITH DIAERESIS */ - /*0x96*/ 0x00F1, /* LATIN SMALL LETTER N WITH TILDE */ - /*0x97*/ 0x00F3, /* LATIN SMALL LETTER O WITH ACUTE */ - /*0x98*/ 0x00F2, /* LATIN SMALL LETTER O WITH GRAVE */ - /*0x99*/ 0x00F4, /* LATIN SMALL LETTER O WITH CIRCUMFLEX */ - /*0x9A*/ 0x00F6, /* LATIN SMALL LETTER O WITH DIAERESIS */ - /*0x9B*/ 0x00F5, /* LATIN SMALL LETTER O WITH TILDE */ - /*0x9C*/ 0x00FA, /* LATIN SMALL LETTER U WITH ACUTE */ - /*0x9D*/ 0x00F9, /* LATIN SMALL LETTER U WITH GRAVE */ - /*0x9E*/ 0x00FB, /* LATIN SMALL LETTER U WITH CIRCUMFLEX */ - /*0x9F*/ 0x00FC, /* LATIN SMALL LETTER U WITH DIAERESIS */ - /*0xA0*/ 0x2020, /* DAGGER */ - /*0xA1*/ 0x00B0, /* DEGREE SIGN */ - /*0xA2*/ 0x00A2, /* CENT SIGN */ - /*0xA3*/ 0x00A3, /* POUND SIGN */ - /*0xA4*/ 0x00A7, /* SECTION SIGN */ - /*0xA5*/ 0x2022, /* BULLET */ - /*0xA6*/ 0x00B6, /* PILCROW SIGN */ - /*0xA7*/ 0x00DF, /* LATIN SMALL LETTER SHARP S */ - /*0xA8*/ 0x00AE, /* REGISTERED SIGN */ - /*0xA9*/ 0x00A9, /* COPYRIGHT SIGN */ - /*0xAA*/ 0x2122, /* TRADE MARK SIGN */ - /*0xAB*/ 0x00B4, /* ACUTE ACCENT */ - /*0xAC*/ 0x00A8, /* DIAERESIS */ - /*0xAD*/ 0x2260, /* NOT EQUAL TO */ - /*0xAE*/ 0x00C6, /* LATIN CAPITAL LETTER AE */ - /*0xAF*/ 0x00D8, /* LATIN CAPITAL LETTER O WITH STROKE */ - /*0xB0*/ 0x221E, /* INFINITY */ - /*0xB1*/ 0x00B1, /* PLUS-MINUS SIGN */ - /*0xB2*/ 0x2264, /* LESS-THAN OR EQUAL TO */ - /*0xB3*/ 0x2265, /* GREATER-THAN OR EQUAL TO */ - /*0xB4*/ 0x00A5, /* YEN SIGN */ - /*0xB5*/ 0x00B5, /* MICRO SIGN */ - /*0xB6*/ 0x2202, /* PARTIAL DIFFERENTIAL */ - /*0xB7*/ 0x2211, /* N-ARY SUMMATION */ - /*0xB8*/ 0x220F, /* N-ARY PRODUCT */ - /*0xB9*/ 0x03C0, /* GREEK SMALL LETTER PI */ - /*0xBA*/ 0x222B, /* INTEGRAL */ - /*0xBB*/ 0x00AA, /* FEMININE ORDINAL INDICATOR */ - /*0xBC*/ 0x00BA, /* MASCULINE ORDINAL INDICATOR */ - /*0xBD*/ 0x03A9, /* GREEK CAPITAL LETTER OMEGA */ - /*0xBE*/ 0x00E6, /* LATIN SMALL LETTER AE */ - /*0xBF*/ 0x00F8, /* LATIN SMALL LETTER O WITH STROKE */ - /*0xC0*/ 0x00BF, /* INVERTED QUESTION MARK */ - /*0xC1*/ 0x00A1, /* INVERTED EXCLAMATION MARK */ - /*0xC2*/ 0x00AC, /* NOT SIGN */ - /*0xC3*/ 0x221A, /* SQUARE ROOT */ - /*0xC4*/ 0x0192, /* LATIN SMALL LETTER F WITH HOOK */ - /*0xC5*/ 0x2248, /* ALMOST EQUAL TO */ - /*0xC6*/ 0x2206, /* INCREMENT */ - /*0xC7*/ 0x00AB, /* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ - /*0xC8*/ 0x00BB, /* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */ - /*0xC9*/ 0x2026, /* HORIZONTAL ELLIPSIS */ - /*0xCA*/ 0x00A0, /* NO-BREAK SPACE */ - /*0xCB*/ 0x00C0, /* LATIN CAPITAL LETTER A WITH GRAVE */ - /*0xCC*/ 0x00C3, /* LATIN CAPITAL LETTER A WITH TILDE */ - /*0xCD*/ 0x00D5, /* LATIN CAPITAL LETTER O WITH TILDE */ - /*0xCE*/ 0x0152, /* LATIN CAPITAL LIGATURE OE */ - /*0xCF*/ 0x0153, /* LATIN SMALL LIGATURE OE */ - /*0xD0*/ 0x2013, /* EN DASH */ - /*0xD1*/ 0x2014, /* EM DASH */ - /*0xD2*/ 0x201C, /* LEFT DOUBLE QUOTATION MARK */ - /*0xD3*/ 0x201D, /* RIGHT DOUBLE QUOTATION MARK */ - /*0xD4*/ 0x2018, /* LEFT SINGLE QUOTATION MARK */ - /*0xD5*/ 0x2019, /* RIGHT SINGLE QUOTATION MARK */ - /*0xD6*/ 0x00F7, /* DIVISION SIGN */ - /*0xD7*/ 0x25CA, /* LOZENGE */ - /*0xD8*/ 0x00FF, /* LATIN SMALL LETTER Y WITH DIAERESIS */ - /*0xD9*/ 0x0178, /* LATIN CAPITAL LETTER Y WITH DIAERESIS */ - /*0xDA*/ 0x2044, /* FRACTION SLASH */ - /*0xDB*/ 0x20AC, /* EURO SIGN */ - /*0xDC*/ 0x2039, /* SINGLE LEFT-POINTING ANGLE QUOTATION MARK */ - /*0xDD*/ 0x203A, /* SINGLE RIGHT-POINTING ANGLE QUOTATION MARK */ - /*0xDE*/ 0xFB01, /* LATIN SMALL LIGATURE FI */ - /*0xDF*/ 0xFB02, /* LATIN SMALL LIGATURE FL */ - /*0xE0*/ 0x2021, /* DOUBLE DAGGER */ - /*0xE1*/ 0x00B7, /* MIDDLE DOT */ - /*0xE2*/ 0x201A, /* SINGLE LOW-9 QUOTATION MARK */ - /*0xE3*/ 0x201E, /* DOUBLE LOW-9 QUOTATION MARK */ - /*0xE4*/ 0x2030, /* PER MILLE SIGN */ - /*0xE5*/ 0x00C2, /* LATIN CAPITAL LETTER A WITH CIRCUMFLEX */ - /*0xE6*/ 0x00CA, /* LATIN CAPITAL LETTER E WITH CIRCUMFLEX */ - /*0xE7*/ 0x00C1, /* LATIN CAPITAL LETTER A WITH ACUTE */ - /*0xE8*/ 0x00CB, /* LATIN CAPITAL LETTER E WITH DIAERESIS */ - /*0xE9*/ 0x00C8, /* LATIN CAPITAL LETTER E WITH GRAVE */ - /*0xEA*/ 0x00CD, /* LATIN CAPITAL LETTER I WITH ACUTE */ - /*0xEB*/ 0x00CE, /* LATIN CAPITAL LETTER I WITH CIRCUMFLEX */ - /*0xEC*/ 0x00CF, /* LATIN CAPITAL LETTER I WITH DIAERESIS */ - /*0xED*/ 0x00CC, /* LATIN CAPITAL LETTER I WITH GRAVE */ - /*0xEE*/ 0x00D3, /* LATIN CAPITAL LETTER O WITH ACUTE */ - /*0xEF*/ 0x00D4, /* LATIN CAPITAL LETTER O WITH CIRCUMFLEX */ - /*0xF0*/ 0xF8FF, /* Apple logo */ - /*0xF1*/ 0x00D2, /* LATIN CAPITAL LETTER O WITH GRAVE */ - /*0xF2*/ 0x00DA, /* LATIN CAPITAL LETTER U WITH ACUTE */ - /*0xF3*/ 0x00DB, /* LATIN CAPITAL LETTER U WITH CIRCUMFLEX */ - /*0xF4*/ 0x00D9, /* LATIN CAPITAL LETTER U WITH GRAVE */ - /*0xF5*/ 0x0131, /* LATIN SMALL LETTER DOTLESS I */ - /*0xF6*/ 0x02C6, /* MODIFIER LETTER CIRCUMFLEX ACCENT */ - /*0xF7*/ 0x02DC, /* SMALL TILDE */ - /*0xF8*/ 0x00AF, /* MACRON */ - /*0xF9*/ 0x02D8, /* BREVE */ - /*0xFA*/ 0x02D9, /* DOT ABOVE */ - /*0xFB*/ 0x02DA, /* RING ABOVE */ - /*0xFC*/ 0x00B8, /* CEDILLA */ - /*0xFD*/ 0x02DD, /* DOUBLE ACUTE ACCENT */ - /*0xFE*/ 0x02DB, /* OGONEK */ - /*0xFF*/ 0x02C7, /* CARON */ -}; - #if USE_ICONV #include <iconv.h> #endif @@ -830,35 +696,6 @@ FcSfntNameTranscode (FT_SfntName *sname) *u8 = '\0'; goto done; } - if (!strcmp (fromcode, FC_ENCODING_MAC_ROMAN)) - { - FcChar8 *src = sname->string; - int src_len = sname->string_len; - int olen; - FcChar8 *u8; - FcChar32 ucs4; - - /* - * Convert Latin1 to Utf8. Freed below - */ - utf8 = malloc (src_len * 3 + 1); - if (!utf8) - return 0; - - u8 = utf8; - while (src_len > 0) - { - ucs4 = *src++; - if (ucs4 >= 128) - ucs4 = fcMacRomanNonASCIIToUnicode[ucs4 - 128]; - src_len--; - olen = FcUcs4ToUtf8 (ucs4, u8); - u8 += olen; - } - *u8 = '\0'; - goto done; - } - #if USE_ICONV cd = iconv_open ("UTF-8", fromcode); if (cd && cd != (iconv_t) (-1)) @@ -979,6 +816,76 @@ FcNoticeFoundry(const FT_String *notice) return 0; } +static FcBool +FcVendorMatch(const FT_Char vendor[4], const FT_Char *vendor_string) +{ + /* vendor is not necessarily NUL-terminated. */ + int i, len; + + len = strlen((char *) vendor_string); + if (memcmp(vendor, vendor_string, len) != 0) + return FcFalse; + for (i = len; i < 4; i++) + if (vendor[i] != ' ' && vendor[i] != '\0') + return FcFalse; + return FcTrue; +} + +/* This table is partly taken from ttmkfdir by Joerg Pommnitz. */ + +/* It should not contain useless entries (such as UNKN) nor duplicate + entries for padding both with spaces and NULs. */ + +static const struct { + const FT_Char vendor[5]; + const FcChar8 foundry[13]; +} FcVendorFoundries[] = { + { "ADBE", "adobe"}, + { "AGFA", "agfa"}, + { "ALTS", "altsys"}, + { "APPL", "apple"}, + { "ARPH", "arphic"}, + { "ATEC", "alltype"}, + { "B&H", "b&h"}, + { "BITS", "bitstream"}, + { "CANO", "cannon"}, + { "CLM", "culmus"}, + { "DYNA", "dynalab"}, + { "EPSN", "epson"}, + { "FJ", "fujitsu"}, + { "IBM", "ibm"}, + { "ITC", "itc"}, + { "IMPR", "impress"}, + { "LARA", "larabiefonts"}, + { "LEAF", "interleaf"}, + { "LETR", "letraset"}, + { "LINO", "linotype"}, + { "MACR", "macromedia"}, + { "MONO", "monotype"}, + { "MS", "microsoft"}, + { "MT", "monotype"}, + { "NEC", "nec"}, + { "PARA", "paratype"}, + { "QMSI", "qms"}, + { "RICO", "ricoh"}, + { "URW", "urw"}, + { "Y&Y", "y&y"} +}; + +#define NUM_VENDOR_FOUNDRIES (int) (sizeof (FcVendorFoundries) / sizeof (FcVendorFoundries[0])) + +static const FcChar8 * +FcVendorFoundry(const FT_Char vendor[4]) +{ + int i; + + if (vendor) + for(i = 0; i < NUM_VENDOR_FOUNDRIES; i++) + if (FcVendorMatch (vendor, FcVendorFoundries[i].vendor)) + return FcVendorFoundries[i].foundry; + return 0; +} + typedef struct _FcStringConst { const FcChar8 *name; int value; @@ -1026,8 +933,6 @@ static const FcStringConst weightConsts[] = { { (FC8) "thin", FC_WEIGHT_THIN }, { (FC8) "extralight", FC_WEIGHT_EXTRALIGHT }, { (FC8) "ultralight", FC_WEIGHT_ULTRALIGHT }, - { (FC8) "demilight", FC_WEIGHT_DEMILIGHT }, - { (FC8) "semilight", FC_WEIGHT_SEMILIGHT }, { (FC8) "light", FC_WEIGHT_LIGHT }, { (FC8) "book", FC_WEIGHT_BOOK }, { (FC8) "regular", FC_WEIGHT_REGULAR }, @@ -1170,16 +1075,9 @@ FcFreeTypeQueryFace (const FT_Face face, #if 0 FcChar8 *family = 0; #endif - FcChar8 *complex_, *foundry_ = NULL; + FcChar8 *complex_; const FcChar8 *foundry = 0; int spacing; - - /* Support for glyph-variation named-instances. */ - FT_MM_Var *master = NULL; - FT_Var_Named_Style *instance = NULL; - double weight_mult = 1.0; - double width_mult = 1.0; - TT_OS2 *os2; #if HAVE_FT_GET_PS_FONT_INFO PS_FontInfoRec psfontinfo; @@ -1206,70 +1104,22 @@ FcFreeTypeQueryFace (const FT_Face face, char psname[256]; const char *tmp; - FcRange *r = NULL; - - FcBool symbol = FcFalse; - - FcInitDebug (); /* We might be called with no initizalization whatsoever. */ + FcChar8 *hashstr = NULL; + FT_Error err; + FT_ULong len = 0, alen; pat = FcPatternCreate (); if (!pat) goto bail0; - { - int has_outline = !!(face->face_flags & FT_FACE_FLAG_SCALABLE); - int has_color = 0; - -#ifdef FT_FACE_FLAG_COLOR - has_color = !!(face->face_flags & FT_FACE_FLAG_COLOR); -#endif - - if (!FcPatternAddBool (pat, FC_OUTLINE, has_outline)) - goto bail1; - -#ifdef FT_FACE_FLAG_COLOR - if (!FcPatternAddBool (pat, FC_COLOR, has_color)) - goto bail1; -#endif - - /* All color fonts are designed to be scaled, even if they only have - * bitmap strikes. Client is responsible to scale the bitmaps. This - * is in constrast to non-color strikes... */ - if (!FcPatternAddBool (pat, FC_SCALABLE, has_outline || has_color)) - goto bail1; - } - - if (id >> 16) - { - if (!FT_Get_MM_Var (face, &master)) - instance = &master->namedstyle[(id >> 16) - 1]; - - if (instance) - { - /* Pull out weight and width from named-instance. */ - unsigned int i; - - for (i = 0; i < master->num_axis; i++) - { - double value = instance->coords[i] / (double) (1 << 16); - double default_value = master->axis[i].def / (double) (1 << 16); - double mult = value / default_value; - //printf ("named-instance, axis %d tag %lx value %g\n", i, master->axis[i].tag, value); - switch (master->axis[i].tag) - { - case FT_MAKE_TAG ('w','g','h','t'): - weight_mult = mult; - break; + if (!FcPatternAddBool (pat, FC_OUTLINE, + (face->face_flags & FT_FACE_FLAG_SCALABLE) != 0)) + goto bail1; - case FT_MAKE_TAG ('w','d','t','h'): - width_mult = mult; - break; + if (!FcPatternAddBool (pat, FC_SCALABLE, + (face->face_flags & FT_FACE_FLAG_SCALABLE) != 0)) + goto bail1; - /* TODO optical size! */ - } - } - } - } /* * Get the OS/2 table @@ -1285,15 +1135,7 @@ FcFreeTypeQueryFace (const FT_Face face, */ if (os2 && os2->version >= 0x0001 && os2->version != 0xffff) - { - if (os2->achVendID && os2->achVendID[0] != 0) - { - foundry_ = (FcChar8 *) malloc (sizeof (os2->achVendID) + 1); - memcpy ((void *)foundry_, os2->achVendID, sizeof (os2->achVendID)); - foundry_[sizeof (os2->achVendID)] = 0; - foundry = foundry_; - } - } + foundry = FcVendorFoundry(os2->achVendID); if (FcDebug () & FC_DBG_SCANV) printf ("\n"); @@ -1328,19 +1170,6 @@ FcFreeTypeQueryFace (const FT_Face face, if (FT_Get_Sfnt_Name (face, snamei, &sname) != 0) continue; - - if (instance) - { - /* For named-instances, we regular style nameIDs, - * and map the instance's strid to FONT_SUBFAMILY. */ - if (sname.name_id == TT_NAME_ID_WWS_SUBFAMILY || - sname.name_id == TT_NAME_ID_PREFERRED_SUBFAMILY || - sname.name_id == TT_NAME_ID_FONT_SUBFAMILY) - continue; - if (sname.name_id == instance->strid) - sname.name_id = TT_NAME_ID_FONT_SUBFAMILY; - } - if (sname.name_id != nameid) continue; @@ -1454,10 +1283,10 @@ FcFreeTypeQueryFace (const FT_Face face, free (utf8); if (lang) { - /* pad lang list with 'und' to line up with elt */ + /* pad lang list with 'xx' to line up with elt */ while (*nlangp < *np) { - if (!FcPatternAddString (pat, eltlang, (FcChar8 *) "und")) + if (!FcPatternAddString (pat, eltlang, (FcChar8 *) "xx")) goto bail1; ++*nlangp; } @@ -1480,8 +1309,6 @@ FcFreeTypeQueryFace (const FT_Face face, printf ("using FreeType family \"%s\"\n", face->family_name); if (!FcPatternAddString (pat, FC_FAMILY, (FcChar8 *) face->family_name)) goto bail1; - if (!FcPatternAddString (pat, FC_STYLELANG, (FcChar8 *) "en")) - goto bail1; ++nfamily; } @@ -1492,12 +1319,10 @@ FcFreeTypeQueryFace (const FT_Face face, printf ("using FreeType style \"%s\"\n", face->style_name); if (!FcPatternAddString (pat, FC_STYLE, (FcChar8 *) face->style_name)) goto bail1; - if (!FcPatternAddString (pat, FC_STYLELANG, (FcChar8 *) "en")) - goto bail1; ++nstyle; } - if (!nfamily && file && *file) + if (!nfamily) { FcChar8 *start, *end; FcChar8 *family; @@ -1566,13 +1391,12 @@ FcFreeTypeQueryFace (const FT_Face face, } else { - strncpy (psname, tmp, 255); - psname[255] = 0; + strcpy (psname, tmp); } if (!FcPatternAddString (pat, FC_POSTSCRIPT_NAME, (const FcChar8 *)psname)) goto bail1; - if (file && *file && !FcPatternAddString (pat, FC_FILE, file)) + if (!FcPatternAddString (pat, FC_FILE, file)) goto bail1; if (!FcPatternAddInteger (pat, FC_INDEX, id)) @@ -1639,22 +1463,33 @@ FcFreeTypeQueryFace (const FT_Face face, if (os2 && os2->version != 0xffff) { - weight = os2->usWeightClass; - if (weight < 10 && weight_mult != 1.0) - { - /* Work around bad values by cleaning them up before - * multiplying by weight_mult. */ - weight = FcWeightToOpenType (FcWeightFromOpenType (weight)); - } - weight = FcWeightFromOpenType ((int) (weight * weight_mult + .5)); + if (os2->usWeightClass == 0) + ; + else if (os2->usWeightClass < 150) + weight = FC_WEIGHT_THIN; + else if (os2->usWeightClass < 250) + weight = FC_WEIGHT_EXTRALIGHT; + else if (os2->usWeightClass < 350) + weight = FC_WEIGHT_LIGHT; + else if (os2->usWeightClass < 450) + weight = FC_WEIGHT_REGULAR; + else if (os2->usWeightClass < 550) + weight = FC_WEIGHT_MEDIUM; + else if (os2->usWeightClass < 650) + weight = FC_WEIGHT_SEMIBOLD; + else if (os2->usWeightClass < 750) + weight = FC_WEIGHT_BOLD; + else if (os2->usWeightClass < 850) + weight = FC_WEIGHT_EXTRABOLD; + else if (os2->usWeightClass < 925) + weight = FC_WEIGHT_BLACK; + else if (os2->usWeightClass < 1000) + weight = FC_WEIGHT_EXTRABLACK; if ((FcDebug() & FC_DBG_SCANV) && weight != -1) - printf ("\tos2 weight class %d multiplier %g maps to weight %d\n", - os2->usWeightClass, weight_mult, weight); + printf ("\tos2 weight class %d maps to weight %d\n", + os2->usWeightClass, weight); - /* TODO: - * Add FcWidthFromOpenType and FcWidthToOpenType, - * and apply width_mult post-conversion? */ - switch ((int) (os2->usWidthClass * width_mult + .5)) { + switch (os2->usWidthClass) { case 1: width = FC_WIDTH_ULTRACONDENSED; break; case 2: width = FC_WIDTH_EXTRACONDENSED; break; case 3: width = FC_WIDTH_CONDENSED; break; @@ -1666,8 +1501,8 @@ FcFreeTypeQueryFace (const FT_Face face, case 9: width = FC_WIDTH_ULTRAEXPANDED; break; } if ((FcDebug() & FC_DBG_SCANV) && width != -1) - printf ("\tos2 width class %d multiplier %g maps to width %d\n", - os2->usWidthClass, width_mult, width); + printf ("\tos2 width class %d maps to width %d\n", + os2->usWidthClass, width); } if (os2 && (complex_ = FcFontCapabilities(face))) { @@ -1679,25 +1514,6 @@ FcFreeTypeQueryFace (const FT_Face face, free (complex_); } -#if defined (HAVE_TT_OS2_USUPPEROPTICALPOINTSIZE) && defined (HAVE_TT_OS2_USLOWEROPTICALPOINTSIZE) - if (os2 && os2->version >= 0x0005 && os2->version != 0xffff) - { - double lower_size, upper_size; - - /* usLowerPointSize and usUpperPointSize is actually twips */ - lower_size = os2->usLowerOpticalPointSize / 20.0L; - upper_size = os2->usUpperOpticalPointSize / 20.0L; - - r = FcRangeCreateDouble (lower_size, upper_size); - if (!FcPatternAddRange (pat, FC_SIZE, r)) - { - FcRangeDestroy (r); - goto bail1; - } - FcRangeDestroy (r); - } -#endif - /* * Type 1: Check for FontInfo dictionary information * Code from g2@magestudios.net (Gerard Escalante) @@ -1770,7 +1586,7 @@ FcFreeTypeQueryFace (const FT_Face face, } if (width == -1 && FT_Get_BDF_Property (face, "SETWIDTH_NAME", &prop) == 0 && - prop.type == BDF_PROPERTY_TYPE_ATOM && prop.u.atom != NULL) + prop.type == BDF_PROPERTY_TYPE_ATOM) { width = FcIsWidth ((FcChar8 *) prop.u.atom); if (FcDebug () & FC_DBG_SCANV) @@ -1848,6 +1664,46 @@ FcFreeTypeQueryFace (const FT_Face face, if (!FcPatternAddBool (pat, FC_DECORATIVE, decorative)) goto bail1; + err = FT_Load_Sfnt_Table (face, 0, 0, NULL, &len); + if (err == FT_Err_Ok) + { + char *fontdata; + + alen = (len + 63) & ~63; + fontdata = malloc (alen); + if (!fontdata) + goto bail3; + err = FT_Load_Sfnt_Table (face, 0, 0, (FT_Byte *)fontdata, &len); + if (err != FT_Err_Ok) + { + free (fontdata); + goto bail3; + } + memset (&fontdata[len], 0, alen - len); + hashstr = FcHashGetSHA256DigestFromMemory (fontdata, len); + free (fontdata); + } + else if (err == FT_Err_Invalid_Face_Handle) + { + /* font may not support SFNT. falling back to + * read the font data from file directly + */ + hashstr = FcHashGetSHA256DigestFromFile (file); + } + else + { + goto bail3; + } + if (hashstr) + { + if (!FcPatternAddString (pat, FC_HASH, hashstr)) + { + free (hashstr); + goto bail1; + } + free (hashstr); + } +bail3: /* * Compute the unicode coverage for the font @@ -1856,16 +1712,11 @@ FcFreeTypeQueryFace (const FT_Face face, if (!cs) goto bail1; - /* The FcFreeTypeCharSetAndSpacing() chose the encoding; test it for symbol. */ - symbol = face->charmap && face->charmap->encoding == FT_ENCODING_MS_SYMBOL; - if (!FcPatternAddBool (pat, FC_SYMBOL, symbol)) - goto bail1; - #if HAVE_FT_GET_BDF_PROPERTY /* For PCF fonts, override the computed spacing with the one from the property */ if(FT_Get_BDF_Property(face, "SPACING", &prop) == 0 && - prop.type == BDF_PROPERTY_TYPE_ATOM && prop.u.atom != NULL) { + prop.type == BDF_PROPERTY_TYPE_ATOM) { if(!strcmp(prop.u.atom, "c") || !strcmp(prop.u.atom, "C")) spacing = FC_CHARCELL; else if(!strcmp(prop.u.atom, "m") || !strcmp(prop.u.atom, "M")) @@ -1893,18 +1744,9 @@ FcFreeTypeQueryFace (const FT_Face face, if (!FcPatternAddCharSet (pat, FC_CHARSET, cs)) goto bail2; - if (!symbol) - { - ls = FcFreeTypeLangSet (cs, exclusiveLang); - if (!ls) - goto bail2; - } - else - { - /* Symbol fonts don't cover any language, even though they - * claim to support Latin1 range. */ - ls = FcLangSetCreate (); - } + ls = FcFreeTypeLangSet (cs, exclusiveLang); + if (!ls) + goto bail2; if (!FcPatternAddLangSet (pat, FC_LANG, ls)) { @@ -1944,13 +1786,6 @@ FcFreeTypeQueryFace (const FT_Face face, * Drop our reference to the charset */ FcCharSetDestroy (cs); - if (foundry_) - free (foundry_); - - if (master) - { - /* TODO: How to free master?! */ - } return pat; @@ -1958,8 +1793,6 @@ bail2: FcCharSetDestroy (cs); bail1: FcPatternDestroy (pat); - if (foundry_) - free (foundry_); bail0: return NULL; } @@ -2000,12 +1833,282 @@ bail: #warning "No FT_Get_Next_Char: Please install freetype version 2.1.0 or newer" #endif -static const FT_Encoding fcFontEncodings[] = { - FT_ENCODING_UNICODE, - FT_ENCODING_MS_SYMBOL +typedef struct _FcCharEnt { + FcChar16 bmp; + unsigned char encode; +} FcCharEnt; + +struct _FcCharMap { + const FcCharEnt *ent; + int nent; +}; + +typedef struct _FcFontDecode { + FT_Encoding encoding; + const FcCharMap *map; + FcChar32 max; +} FcFontDecode; + +static const FcCharEnt AdobeSymbolEnt[] = { + { 0x0020, 0x20 }, /* SPACE # space */ + { 0x0021, 0x21 }, /* EXCLAMATION MARK # exclam */ + { 0x0023, 0x23 }, /* NUMBER SIGN # numbersign */ + { 0x0025, 0x25 }, /* PERCENT SIGN # percent */ + { 0x0026, 0x26 }, /* AMPERSAND # ampersand */ + { 0x0028, 0x28 }, /* LEFT PARENTHESIS # parenleft */ + { 0x0029, 0x29 }, /* RIGHT PARENTHESIS # parenright */ + { 0x002B, 0x2B }, /* PLUS SIGN # plus */ + { 0x002C, 0x2C }, /* COMMA # comma */ + { 0x002E, 0x2E }, /* FULL STOP # period */ + { 0x002F, 0x2F }, /* SOLIDUS # slash */ + { 0x0030, 0x30 }, /* DIGIT ZERO # zero */ + { 0x0031, 0x31 }, /* DIGIT ONE # one */ + { 0x0032, 0x32 }, /* DIGIT TWO # two */ + { 0x0033, 0x33 }, /* DIGIT THREE # three */ + { 0x0034, 0x34 }, /* DIGIT FOUR # four */ + { 0x0035, 0x35 }, /* DIGIT FIVE # five */ + { 0x0036, 0x36 }, /* DIGIT SIX # six */ + { 0x0037, 0x37 }, /* DIGIT SEVEN # seven */ + { 0x0038, 0x38 }, /* DIGIT EIGHT # eight */ + { 0x0039, 0x39 }, /* DIGIT NINE # nine */ + { 0x003A, 0x3A }, /* COLON # colon */ + { 0x003B, 0x3B }, /* SEMICOLON # semicolon */ + { 0x003C, 0x3C }, /* LESS-THAN SIGN # less */ + { 0x003D, 0x3D }, /* EQUALS SIGN # equal */ + { 0x003E, 0x3E }, /* GREATER-THAN SIGN # greater */ + { 0x003F, 0x3F }, /* QUESTION MARK # question */ + { 0x005B, 0x5B }, /* LEFT SQUARE BRACKET # bracketleft */ + { 0x005D, 0x5D }, /* RIGHT SQUARE BRACKET # bracketright */ + { 0x005F, 0x5F }, /* LOW LINE # underscore */ + { 0x007B, 0x7B }, /* LEFT CURLY BRACKET # braceleft */ + { 0x007C, 0x7C }, /* VERTICAL LINE # bar */ + { 0x007D, 0x7D }, /* RIGHT CURLY BRACKET # braceright */ + { 0x00A0, 0x20 }, /* NO-BREAK SPACE # space */ + { 0x00AC, 0xD8 }, /* NOT SIGN # logicalnot */ + { 0x00B0, 0xB0 }, /* DEGREE SIGN # degree */ + { 0x00B1, 0xB1 }, /* PLUS-MINUS SIGN # plusminus */ + { 0x00B5, 0x6D }, /* MICRO SIGN # mu */ + { 0x00D7, 0xB4 }, /* MULTIPLICATION SIGN # multiply */ + { 0x00F7, 0xB8 }, /* DIVISION SIGN # divide */ + { 0x0192, 0xA6 }, /* LATIN SMALL LETTER F WITH HOOK # florin */ + { 0x0391, 0x41 }, /* GREEK CAPITAL LETTER ALPHA # Alpha */ + { 0x0392, 0x42 }, /* GREEK CAPITAL LETTER BETA # Beta */ + { 0x0393, 0x47 }, /* GREEK CAPITAL LETTER GAMMA # Gamma */ + { 0x0394, 0x44 }, /* GREEK CAPITAL LETTER DELTA # Delta */ + { 0x0395, 0x45 }, /* GREEK CAPITAL LETTER EPSILON # Epsilon */ + { 0x0396, 0x5A }, /* GREEK CAPITAL LETTER ZETA # Zeta */ + { 0x0397, 0x48 }, /* GREEK CAPITAL LETTER ETA # Eta */ + { 0x0398, 0x51 }, /* GREEK CAPITAL LETTER THETA # Theta */ + { 0x0399, 0x49 }, /* GREEK CAPITAL LETTER IOTA # Iota */ + { 0x039A, 0x4B }, /* GREEK CAPITAL LETTER KAPPA # Kappa */ + { 0x039B, 0x4C }, /* GREEK CAPITAL LETTER LAMDA # Lambda */ + { 0x039C, 0x4D }, /* GREEK CAPITAL LETTER MU # Mu */ + { 0x039D, 0x4E }, /* GREEK CAPITAL LETTER NU # Nu */ + { 0x039E, 0x58 }, /* GREEK CAPITAL LETTER XI # Xi */ + { 0x039F, 0x4F }, /* GREEK CAPITAL LETTER OMICRON # Omicron */ + { 0x03A0, 0x50 }, /* GREEK CAPITAL LETTER PI # Pi */ + { 0x03A1, 0x52 }, /* GREEK CAPITAL LETTER RHO # Rho */ + { 0x03A3, 0x53 }, /* GREEK CAPITAL LETTER SIGMA # Sigma */ + { 0x03A4, 0x54 }, /* GREEK CAPITAL LETTER TAU # Tau */ + { 0x03A5, 0x55 }, /* GREEK CAPITAL LETTER UPSILON # Upsilon */ + { 0x03A6, 0x46 }, /* GREEK CAPITAL LETTER PHI # Phi */ + { 0x03A7, 0x43 }, /* GREEK CAPITAL LETTER CHI # Chi */ + { 0x03A8, 0x59 }, /* GREEK CAPITAL LETTER PSI # Psi */ + { 0x03A9, 0x57 }, /* GREEK CAPITAL LETTER OMEGA # Omega */ + { 0x03B1, 0x61 }, /* GREEK SMALL LETTER ALPHA # alpha */ + { 0x03B2, 0x62 }, /* GREEK SMALL LETTER BETA # beta */ + { 0x03B3, 0x67 }, /* GREEK SMALL LETTER GAMMA # gamma */ + { 0x03B4, 0x64 }, /* GREEK SMALL LETTER DELTA # delta */ + { 0x03B5, 0x65 }, /* GREEK SMALL LETTER EPSILON # epsilon */ + { 0x03B6, 0x7A }, /* GREEK SMALL LETTER ZETA # zeta */ + { 0x03B7, 0x68 }, /* GREEK SMALL LETTER ETA # eta */ + { 0x03B8, 0x71 }, /* GREEK SMALL LETTER THETA # theta */ + { 0x03B9, 0x69 }, /* GREEK SMALL LETTER IOTA # iota */ + { 0x03BA, 0x6B }, /* GREEK SMALL LETTER KAPPA # kappa */ + { 0x03BB, 0x6C }, /* GREEK SMALL LETTER LAMDA # lambda */ + { 0x03BC, 0x6D }, /* GREEK SMALL LETTER MU # mu */ + { 0x03BD, 0x6E }, /* GREEK SMALL LETTER NU # nu */ + { 0x03BE, 0x78 }, /* GREEK SMALL LETTER XI # xi */ + { 0x03BF, 0x6F }, /* GREEK SMALL LETTER OMICRON # omicron */ + { 0x03C0, 0x70 }, /* GREEK SMALL LETTER PI # pi */ + { 0x03C1, 0x72 }, /* GREEK SMALL LETTER RHO # rho */ + { 0x03C2, 0x56 }, /* GREEK SMALL LETTER FINAL SIGMA # sigma1 */ + { 0x03C3, 0x73 }, /* GREEK SMALL LETTER SIGMA # sigma */ + { 0x03C4, 0x74 }, /* GREEK SMALL LETTER TAU # tau */ + { 0x03C5, 0x75 }, /* GREEK SMALL LETTER UPSILON # upsilon */ + { 0x03C6, 0x66 }, /* GREEK SMALL LETTER PHI # phi */ + { 0x03C7, 0x63 }, /* GREEK SMALL LETTER CHI # chi */ + { 0x03C8, 0x79 }, /* GREEK SMALL LETTER PSI # psi */ + { 0x03C9, 0x77 }, /* GREEK SMALL LETTER OMEGA # omega */ + { 0x03D1, 0x4A }, /* GREEK THETA SYMBOL # theta1 */ + { 0x03D2, 0xA1 }, /* GREEK UPSILON WITH HOOK SYMBOL # Upsilon1 */ + { 0x03D5, 0x6A }, /* GREEK PHI SYMBOL # phi1 */ + { 0x03D6, 0x76 }, /* GREEK PI SYMBOL # omega1 */ + { 0x2022, 0xB7 }, /* BULLET # bullet */ + { 0x2026, 0xBC }, /* HORIZONTAL ELLIPSIS # ellipsis */ + { 0x2032, 0xA2 }, /* PRIME # minute */ + { 0x2033, 0xB2 }, /* DOUBLE PRIME # second */ + { 0x2044, 0xA4 }, /* FRACTION SLASH # fraction */ + { 0x20AC, 0xA0 }, /* EURO SIGN # Euro */ + { 0x2111, 0xC1 }, /* BLACK-LETTER CAPITAL I # Ifraktur */ + { 0x2118, 0xC3 }, /* SCRIPT CAPITAL P # weierstrass */ + { 0x211C, 0xC2 }, /* BLACK-LETTER CAPITAL R # Rfraktur */ + { 0x2126, 0x57 }, /* OHM SIGN # Omega */ + { 0x2135, 0xC0 }, /* ALEF SYMBOL # aleph */ + { 0x2190, 0xAC }, /* LEFTWARDS ARROW # arrowleft */ + { 0x2191, 0xAD }, /* UPWARDS ARROW # arrowup */ + { 0x2192, 0xAE }, /* RIGHTWARDS ARROW # arrowright */ + { 0x2193, 0xAF }, /* DOWNWARDS ARROW # arrowdown */ + { 0x2194, 0xAB }, /* LEFT RIGHT ARROW # arrowboth */ + { 0x21B5, 0xBF }, /* DOWNWARDS ARROW WITH CORNER LEFTWARDS # carriagereturn */ + { 0x21D0, 0xDC }, /* LEFTWARDS DOUBLE ARROW # arrowdblleft */ + { 0x21D1, 0xDD }, /* UPWARDS DOUBLE ARROW # arrowdblup */ + { 0x21D2, 0xDE }, /* RIGHTWARDS DOUBLE ARROW # arrowdblright */ + { 0x21D3, 0xDF }, /* DOWNWARDS DOUBLE ARROW # arrowdbldown */ + { 0x21D4, 0xDB }, /* LEFT RIGHT DOUBLE ARROW # arrowdblboth */ + { 0x2200, 0x22 }, /* FOR ALL # universal */ + { 0x2202, 0xB6 }, /* PARTIAL DIFFERENTIAL # partialdiff */ + { 0x2203, 0x24 }, /* THERE EXISTS # existential */ + { 0x2205, 0xC6 }, /* EMPTY SET # emptyset */ + { 0x2206, 0x44 }, /* INCREMENT # Delta */ + { 0x2207, 0xD1 }, /* NABLA # gradient */ + { 0x2208, 0xCE }, /* ELEMENT OF # element */ + { 0x2209, 0xCF }, /* NOT AN ELEMENT OF # notelement */ + { 0x220B, 0x27 }, /* CONTAINS AS MEMBER # suchthat */ + { 0x220F, 0xD5 }, /* N-ARY PRODUCT # product */ + { 0x2211, 0xE5 }, /* N-ARY SUMMATION # summation */ + { 0x2212, 0x2D }, /* MINUS SIGN # minus */ + { 0x2215, 0xA4 }, /* DIVISION SLASH # fraction */ + { 0x2217, 0x2A }, /* ASTERISK OPERATOR # asteriskmath */ + { 0x221A, 0xD6 }, /* SQUARE ROOT # radical */ + { 0x221D, 0xB5 }, /* PROPORTIONAL TO # proportional */ + { 0x221E, 0xA5 }, /* INFINITY # infinity */ + { 0x2220, 0xD0 }, /* ANGLE # angle */ + { 0x2227, 0xD9 }, /* LOGICAL AND # logicaland */ + { 0x2228, 0xDA }, /* LOGICAL OR # logicalor */ + { 0x2229, 0xC7 }, /* INTERSECTION # intersection */ + { 0x222A, 0xC8 }, /* UNION # union */ + { 0x222B, 0xF2 }, /* INTEGRAL # integral */ + { 0x2234, 0x5C }, /* THEREFORE # therefore */ + { 0x223C, 0x7E }, /* TILDE OPERATOR # similar */ + { 0x2245, 0x40 }, /* APPROXIMATELY EQUAL TO # congruent */ + { 0x2248, 0xBB }, /* ALMOST EQUAL TO # approxequal */ + { 0x2260, 0xB9 }, /* NOT EQUAL TO # notequal */ + { 0x2261, 0xBA }, /* IDENTICAL TO # equivalence */ + { 0x2264, 0xA3 }, /* LESS-THAN OR EQUAL TO # lessequal */ + { 0x2265, 0xB3 }, /* GREATER-THAN OR EQUAL TO # greaterequal */ + { 0x2282, 0xCC }, /* SUBSET OF # propersubset */ + { 0x2283, 0xC9 }, /* SUPERSET OF # propersuperset */ + { 0x2284, 0xCB }, /* NOT A SUBSET OF # notsubset */ + { 0x2286, 0xCD }, /* SUBSET OF OR EQUAL TO # reflexsubset */ + { 0x2287, 0xCA }, /* SUPERSET OF OR EQUAL TO # reflexsuperset */ + { 0x2295, 0xC5 }, /* CIRCLED PLUS # circleplus */ + { 0x2297, 0xC4 }, /* CIRCLED TIMES # circlemultiply */ + { 0x22A5, 0x5E }, /* UP TACK # perpendicular */ + { 0x22C5, 0xD7 }, /* DOT OPERATOR # dotmath */ + { 0x2320, 0xF3 }, /* TOP HALF INTEGRAL # integraltp */ + { 0x2321, 0xF5 }, /* BOTTOM HALF INTEGRAL # integralbt */ + { 0x2329, 0xE1 }, /* LEFT-POINTING ANGLE BRACKET # angleleft */ + { 0x232A, 0xF1 }, /* RIGHT-POINTING ANGLE BRACKET # angleright */ + { 0x25CA, 0xE0 }, /* LOZENGE # lozenge */ + { 0x2660, 0xAA }, /* BLACK SPADE SUIT # spade */ + { 0x2663, 0xA7 }, /* BLACK CLUB SUIT # club */ + { 0x2665, 0xA9 }, /* BLACK HEART SUIT # heart */ + { 0x2666, 0xA8 }, /* BLACK DIAMOND SUIT # diamond */ + { 0xF6D9, 0xD3 }, /* COPYRIGHT SIGN SERIF # copyrightserif (CUS) */ + { 0xF6DA, 0xD2 }, /* REGISTERED SIGN SERIF # registerserif (CUS) */ + { 0xF6DB, 0xD4 }, /* TRADE MARK SIGN SERIF # trademarkserif (CUS) */ + { 0xF8E5, 0x60 }, /* RADICAL EXTENDER # radicalex (CUS) */ + { 0xF8E6, 0xBD }, /* VERTICAL ARROW EXTENDER # arrowvertex (CUS) */ + { 0xF8E7, 0xBE }, /* HORIZONTAL ARROW EXTENDER # arrowhorizex (CUS) */ + { 0xF8E8, 0xE2 }, /* REGISTERED SIGN SANS SERIF # registersans (CUS) */ + { 0xF8E9, 0xE3 }, /* COPYRIGHT SIGN SANS SERIF # copyrightsans (CUS) */ + { 0xF8EA, 0xE4 }, /* TRADE MARK SIGN SANS SERIF # trademarksans (CUS) */ + { 0xF8EB, 0xE6 }, /* LEFT PAREN TOP # parenlefttp (CUS) */ + { 0xF8EC, 0xE7 }, /* LEFT PAREN EXTENDER # parenleftex (CUS) */ + { 0xF8ED, 0xE8 }, /* LEFT PAREN BOTTOM # parenleftbt (CUS) */ + { 0xF8EE, 0xE9 }, /* LEFT SQUARE BRACKET TOP # bracketlefttp (CUS) */ + { 0xF8EF, 0xEA }, /* LEFT SQUARE BRACKET EXTENDER # bracketleftex (CUS) */ + { 0xF8F0, 0xEB }, /* LEFT SQUARE BRACKET BOTTOM # bracketleftbt (CUS) */ + { 0xF8F1, 0xEC }, /* LEFT CURLY BRACKET TOP # bracelefttp (CUS) */ + { 0xF8F2, 0xED }, /* LEFT CURLY BRACKET MID # braceleftmid (CUS) */ + { 0xF8F3, 0xEE }, /* LEFT CURLY BRACKET BOTTOM # braceleftbt (CUS) */ + { 0xF8F4, 0xEF }, /* CURLY BRACKET EXTENDER # braceex (CUS) */ + { 0xF8F5, 0xF4 }, /* INTEGRAL EXTENDER # integralex (CUS) */ + { 0xF8F6, 0xF6 }, /* RIGHT PAREN TOP # parenrighttp (CUS) */ + { 0xF8F7, 0xF7 }, /* RIGHT PAREN EXTENDER # parenrightex (CUS) */ + { 0xF8F8, 0xF8 }, /* RIGHT PAREN BOTTOM # parenrightbt (CUS) */ + { 0xF8F9, 0xF9 }, /* RIGHT SQUARE BRACKET TOP # bracketrighttp (CUS) */ + { 0xF8FA, 0xFA }, /* RIGHT SQUARE BRACKET EXTENDER # bracketrightex (CUS) */ + { 0xF8FB, 0xFB }, /* RIGHT SQUARE BRACKET BOTTOM # bracketrightbt (CUS) */ + { 0xF8FC, 0xFC }, /* RIGHT CURLY BRACKET TOP # bracerighttp (CUS) */ + { 0xF8FD, 0xFD }, /* RIGHT CURLY BRACKET MID # bracerightmid (CUS) */ + { 0xF8FE, 0xFE }, /* RIGHT CURLY BRACKET BOTTOM # bracerightbt (CUS) */ }; -#define NUM_DECODE (int) (sizeof (fcFontEncodings) / sizeof (fcFontEncodings[0])) +static const FcCharMap AdobeSymbol = { + AdobeSymbolEnt, + sizeof (AdobeSymbolEnt) / sizeof (AdobeSymbolEnt[0]), +}; + +static const FcFontDecode fcFontDecoders[] = { + { ft_encoding_unicode, 0, (1 << 21) - 1 }, + { ft_encoding_symbol, &AdobeSymbol, (1 << 16) - 1 }, +}; + +#define NUM_DECODE (int) (sizeof (fcFontDecoders) / sizeof (fcFontDecoders[0])) + +static const FcChar32 prefer_unicode[] = { + 0x20ac, /* EURO SIGN */ +}; + +#define NUM_PREFER_UNICODE (int) (sizeof (prefer_unicode) / sizeof (prefer_unicode[0])) + +FcChar32 +FcFreeTypeUcs4ToPrivate (FcChar32 ucs4, const FcCharMap *map) +{ + int low, high, mid; + FcChar16 bmp; + + low = 0; + high = map->nent - 1; + if (ucs4 < map->ent[low].bmp || map->ent[high].bmp < ucs4) + return ~0; + while (low <= high) + { + mid = (high + low) >> 1; + bmp = map->ent[mid].bmp; + if (ucs4 == bmp) + return (FT_ULong) map->ent[mid].encode; + if (ucs4 < bmp) + high = mid - 1; + else + low = mid + 1; + } + return ~0; +} + +FcChar32 +FcFreeTypePrivateToUcs4 (FcChar32 private, const FcCharMap *map) +{ + int i; + + for (i = 0; i < map->nent; i++) + if (map->ent[i].encode == private) + return (FcChar32) map->ent[i].bmp; + return ~0; +} + +const FcCharMap * +FcFreeTypeGetPrivateMap (FT_Encoding encoding) +{ + int i; + + for (i = 0; i < NUM_DECODE; i++) + if (fcFontDecoders[i].encoding == encoding) + return fcFontDecoders[i].map; + return 0; +} #include "../fc-glyphname/fcglyphname.h" @@ -2134,6 +2237,8 @@ FcFreeTypeCharIndex (FT_Face face, FcChar32 ucs4) { int initial, offset, decode; FT_UInt glyphindex; + FcChar32 charcode; + int p; initial = 0; @@ -2146,39 +2251,37 @@ FcFreeTypeCharIndex (FT_Face face, FcChar32 ucs4) if (face->charmap) { for (; initial < NUM_DECODE; initial++) - if (fcFontEncodings[initial] == face->charmap->encoding) + if (fcFontDecoders[initial].encoding == face->charmap->encoding) break; if (initial == NUM_DECODE) initial = 0; } + for (p = 0; p < NUM_PREFER_UNICODE; p++) + if (ucs4 == prefer_unicode[p]) + { + initial = 0; + break; + } /* * Check each encoding for the glyph, starting with the current one */ for (offset = 0; offset < NUM_DECODE; offset++) { decode = (initial + offset) % NUM_DECODE; - if (!face->charmap || face->charmap->encoding != fcFontEncodings[decode]) - if (FT_Select_Charmap (face, fcFontEncodings[decode]) != 0) + if (!face->charmap || face->charmap->encoding != fcFontDecoders[decode].encoding) + if (FT_Select_Charmap (face, fcFontDecoders[decode].encoding) != 0) continue; - glyphindex = FT_Get_Char_Index (face, (FT_ULong) ucs4); - if (glyphindex) - return glyphindex; - if (ucs4 < 0x100 && face->charmap && - face->charmap->encoding == FT_ENCODING_MS_SYMBOL) + if (fcFontDecoders[decode].map) { - /* For symbol-encoded OpenType fonts, we duplicate the - * U+F000..F0FF range at U+0000..U+00FF. That's what - * Windows seems to do, and that's hinted about at: - * http://www.microsoft.com/typography/otspec/recom.htm - * under "Non-Standard (Symbol) Fonts". - * - * See thread with subject "Webdings and other MS symbol - * fonts don't display" on mailing list from May 2015. - */ - glyphindex = FT_Get_Char_Index (face, (FT_ULong) ucs4 + 0xF000); - if (glyphindex) - return glyphindex; + charcode = FcFreeTypeUcs4ToPrivate (ucs4, fcFontDecoders[decode].map); + if (charcode == ~0U) + continue; } + else + charcode = ucs4; + glyphindex = FT_Get_Char_Index (face, (FT_ULong) charcode); + if (glyphindex) + return glyphindex; } #if HAVE_FT_HAS_PS_GLYPH_NAMES /* @@ -2269,7 +2372,9 @@ FcFreeTypeCharSetAndSpacingForSize (FT_Face face, FcBlanks *blanks, int *spacing #endif FcCharSet *fcs; FcCharLeaf *leaf; + const FcCharMap *map; int o; + int i; FT_UInt glyph; FT_Pos advance, advance_one = 0, advance_two = 0; FcBool has_advance = FcFalse, fixed_advance = FcTrue, dual_advance = FcFalse; @@ -2292,9 +2397,62 @@ FcFreeTypeCharSetAndSpacingForSize (FT_Face face, FcBlanks *blanks, int *spacing #endif for (o = 0; o < NUM_DECODE; o++) { - if (FT_Select_Charmap (face, fcFontEncodings[o]) != 0) + if (FT_Select_Charmap (face, fcFontDecoders[o].encoding) != 0) continue; + map = fcFontDecoders[o].map; + if (map) + { + /* + * Non-Unicode tables are easy; there's a list of all possible + * characters + */ + for (i = 0; i < map->nent; i++) + { + ucs4 = map->ent[i].bmp; + glyph = FT_Get_Char_Index (face, map->ent[i].encode); + if (glyph && + FcFreeTypeCheckGlyph (face, ucs4, glyph, blanks, &advance, using_strike)) + { + /* + * ignore glyphs with zero advance. They’re + * combining characters, and while their behaviour + * isn’t well defined for monospaced applications in + * Unicode, there are many fonts which include + * zero-width combining characters in otherwise + * monospaced fonts. + */ + if (advance) + { + if (!has_advance) + { + has_advance = FcTrue; + advance_one = advance; + } + else if (!APPROXIMATELY_EQUAL (advance, advance_one)) + { + if (fixed_advance) + { + dual_advance = FcTrue; + fixed_advance = FcFalse; + advance_two = advance; + } + else if (!APPROXIMATELY_EQUAL (advance, advance_two)) + dual_advance = FcFalse; + } + } + leaf = FcCharSetFindLeafCreate (fcs, ucs4); + if (!leaf) + goto bail1; + leaf->map[(ucs4 & 0xff) >> 5] |= (1 << (ucs4 & 0x1f)); +#ifdef CHECK + if (ucs4 > font_max) + font_max = ucs4; +#endif + } + } + } + else { page = ~0; leaf = NULL; @@ -2339,23 +2497,6 @@ FcFreeTypeCharSetAndSpacingForSize (FT_Face face, FcBlanks *blanks, int *spacing } ucs4 = FT_Get_Next_Char (face, ucs4, &glyph); } - if (fcFontEncodings[o] == FT_ENCODING_MS_SYMBOL) - { - /* For symbol-encoded OpenType fonts, we duplicate the - * U+F000..F0FF range at U+0000..U+00FF. That's what - * Windows seems to do, and that's hinted about at: - * http://www.microsoft.com/typography/otspec/recom.htm - * under "Non-Standard (Symbol) Fonts". - * - * See thread with subject "Webdings and other MS symbol - * fonts don't display" on mailing list from May 2015. - */ - for (ucs4 = 0xF000; ucs4 < 0xF100; ucs4++) - { - if (FcCharSetHasChar (fcs, ucs4)) - FcCharSetAddChar (fcs, ucs4 - 0xF000); - } - } #ifdef CHECK for (ucs4 = 0; ucs4 < 0x10000; ucs4++) { @@ -2370,8 +2511,6 @@ FcFreeTypeCharSetAndSpacingForSize (FT_Face face, FcBlanks *blanks, int *spacing } #endif } - - break; } #if HAVE_FT_HAS_PS_GLYPH_NAMES /* diff --git a/chromium/third_party/fontconfig/src/src/fcfs.c b/chromium/third_party/fontconfig/src/src/fcfs.c index 21c6c7cbb0e..941abba8f40 100644 --- a/chromium/third_party/fontconfig/src/src/fcfs.c +++ b/chromium/third_party/fontconfig/src/src/fcfs.c @@ -122,28 +122,6 @@ FcFontSetSerialize (FcSerialize *serialize, const FcFontSet * s) return s_serialize; } - -FcFontSet * -FcFontSetDeserialize (const FcFontSet *set) -{ - int i; - FcFontSet *new = FcFontSetCreate (); - - if (!new) - return NULL; - for (i = 0; i < set->nfont; i++) - { - if (!FcFontSetAdd (new, FcPatternDuplicate (FcFontSetFont (set, i)))) - goto bail; - } - - return new; -bail: - FcFontSetDestroy (new); - - return NULL; -} - #define __fcfs__ #include "fcaliastail.h" #undef __fcfs__ diff --git a/chromium/third_party/fontconfig/src/src/fchash.c b/chromium/third_party/fontconfig/src/src/fchash.c new file mode 100644 index 00000000000..38300028c8e --- /dev/null +++ b/chromium/third_party/fontconfig/src/src/fchash.c @@ -0,0 +1,317 @@ +/* + * fontconfig/src/fchash.c + * + * Copyright © 2003 Keith Packard + * Copyright © 2013 Red Hat, Inc. + * Red Hat Author(s): Akira TAGOH + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of the author(s) not be used in + * advertising or publicity pertaining to distribution of the software without + * specific, written prior permission. The authors make no + * representations about the suitability of this software for any purpose. It + * is provided "as is" without express or implied warranty. + * + * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ +#include "fcint.h" +#include <stdio.h> +#include <string.h> + +#define ROTRN(w, v, n) ((((FcChar32)v) >> n) | (((FcChar32)v) << (w - n))) +#define ROTR32(v, n) ROTRN(32, v, n) +#define SHR(v, n) (v >> n) +#define Ch(x, y, z) ((x & y) ^ (~x & z)) +#define Maj(x, y, z) ((x & y) ^ (x & z) ^ (y & z)) +#define SS0(x) (ROTR32(x, 2) ^ ROTR32(x, 13) ^ ROTR32(x, 22)) +#define SS1(x) (ROTR32(x, 6) ^ ROTR32(x, 11) ^ ROTR32(x, 25)) +#define ss0(x) (ROTR32(x, 7) ^ ROTR32(x, 18) ^ SHR(x, 3)) +#define ss1(x) (ROTR32(x, 17) ^ ROTR32(x, 19) ^ SHR(x, 10)) + + +static FcChar32 * +FcHashInitSHA256Digest (void) +{ + int i; + static const FcChar32 h[] = { + 0x6a09e667UL, 0xbb67ae85UL, 0x3c6ef372UL, 0xa54ff53aUL, + 0x510e527fUL, 0x9b05688cUL, 0x1f83d9abUL, 0x5be0cd19UL + }; + FcChar32 *ret = malloc (sizeof (FcChar32) * 8); + + if (!ret) + return NULL; + + for (i = 0; i < 8; i++) + ret[i] = h[i]; + + return ret; +} + +static void +FcHashComputeSHA256Digest (FcChar32 *hash, + const char *block) +{ + static const FcChar32 k[] = { + 0x428a2f98UL, 0x71374491UL, 0xb5c0fbcfUL, 0xe9b5dba5UL, + 0x3956c25bUL, 0x59f111f1UL, 0x923f82a4UL, 0xab1c5ed5UL, + 0xd807aa98UL, 0x12835b01UL, 0x243185beUL, 0x550c7dc3UL, + 0x72be5d74UL, 0x80deb1feUL, 0x9bdc06a7UL, 0xc19bf174UL, + 0xe49b69c1UL, 0xefbe4786UL, 0x0fc19dc6UL, 0x240ca1ccUL, + 0x2de92c6fUL, 0x4a7484aaUL, 0x5cb0a9dcUL, 0x76f988daUL, + 0x983e5152UL, 0xa831c66dUL, 0xb00327c8UL, 0xbf597fc7UL, + 0xc6e00bf3UL, 0xd5a79147UL, 0x06ca6351UL, 0x14292967UL, + 0x27b70a85UL, 0x2e1b2138UL, 0x4d2c6dfcUL, 0x53380d13UL, + 0x650a7354UL, 0x766a0abbUL, 0x81c2c92eUL, 0x92722c85UL, + 0xa2bfe8a1UL, 0xa81a664bUL, 0xc24b8b70UL, 0xc76c51a3UL, + 0xd192e819UL, 0xd6990624UL, 0xf40e3585UL, 0x106aa070UL, + 0x19a4c116UL, 0x1e376c08UL, 0x2748774cUL, 0x34b0bcb5UL, + 0x391c0cb3UL, 0x4ed8aa4aUL, 0x5b9cca4fUL, 0x682e6ff3UL, + 0x748f82eeUL, 0x78a5636fUL, 0x84c87814UL, 0x8cc70208UL, + 0x90befffaUL, 0xa4506cebUL, 0xbef9a3f7UL, 0xc67178f2UL + }; + FcChar32 w[64], i, j, t1, t2; + FcChar32 a, b, c, d, e, f, g, h; + +#define H(n) (hash[n]) + + a = H(0); + b = H(1); + c = H(2); + d = H(3); + e = H(4); + f = H(5); + g = H(6); + h = H(7); + + for (i = 0; i < 16; i++) + { + j = (block[(i * 4) + 0] & 0xff) << (8 * 3); + j |= (block[(i * 4) + 1] & 0xff) << (8 * 2); + j |= (block[(i * 4) + 2] & 0xff) << (8 * 1); + j |= (block[(i * 4) + 3] & 0xff); + w[i] = j; + } + for (i = 16; i < 64; i++) + w[i] = ss1(w[i - 2]) + w[i - 7] + ss0(w[i - 15]) + w[i - 16]; + + for (i = 0; i < 64; i++) + { + t1 = h + SS1(e) + Ch(e, f, g) + k[i] + w[i]; + t2 = SS0(a) + Maj(a, b, c); + h = g; + g = f; + f = e; + e = d + t1; + d = c; + c = b; + b = a; + a = t1 + t2; + } + + H(0) += a; + H(1) += b; + H(2) += c; + H(3) += d; + H(4) += e; + H(5) += f; + H(6) += g; + H(7) += h; + +#undef H +} + +static FcChar8 * +FcHashSHA256ToString (FcChar32 *hash) +{ + FcChar8 *ret = NULL; + static const char hex[] = "0123456789abcdef"; + int i, j; + + if (hash) + { + ret = malloc (sizeof (FcChar8) * (8 * 8 + 7 + 1)); + if (!ret) + return NULL; + memcpy (ret, "sha256:", 7); +#define H(n) hash[n] + for (i = 0; i < 8; i++) + { + FcChar32 v = H(i); + + for (j = 0; j < 8; j++) + ret[7 + (i * 8) + j] = hex[(v >> (28 - j * 4)) & 0xf]; + } + ret[7 + i * 8] = 0; +#undef H + free (hash); + } + + return ret; +} + +FcChar8 * +FcHashGetSHA256Digest (const FcChar8 *input_strings, + size_t len) +{ + size_t i, round_len = len / 64; + char block[64]; + FcChar32 *ret = FcHashInitSHA256Digest (); + + if (!ret) + return NULL; + + for (i = 0; i < round_len; i++) + { + FcHashComputeSHA256Digest (ret, (const char *)&input_strings[i * 64]); + } + /* padding */ + if ((len % 64) != 0) + memcpy (block, &input_strings[len / 64], len % 64); + memset (&block[len % 64], 0, 64 - (len % 64)); + block[len % 64] = 0x80; + if ((64 - (len % 64)) < 9) + { + /* process a block once */ + FcHashComputeSHA256Digest (ret, block); + memset (block, 0, 64); + } + /* set input size at the end */ + len *= 8; + block[63 - 0] = (uint64_t)len & 0xff; + block[63 - 1] = ((uint64_t)len >> 8) & 0xff; + block[63 - 2] = ((uint64_t)len >> 16) & 0xff; + block[63 - 3] = ((uint64_t)len >> 24) & 0xff; + block[63 - 4] = ((uint64_t)len >> 32) & 0xff; + block[63 - 5] = ((uint64_t)len >> 40) & 0xff; + block[63 - 6] = ((uint64_t)len >> 48) & 0xff; + block[63 - 7] = ((uint64_t)len >> 56) & 0xff; + FcHashComputeSHA256Digest (ret, block); + + return FcHashSHA256ToString (ret); +} + +FcChar8 * +FcHashGetSHA256DigestFromFile (const FcChar8 *filename) +{ + FILE *fp = fopen ((const char *)filename, "rb"); + char ibuf[64]; + FcChar32 *ret; + size_t len; + struct stat st; + + if (!fp) + return NULL; + + if (FcStat (filename, &st)) + goto bail0; + + ret = FcHashInitSHA256Digest (); + if (!ret) + goto bail0; + + while (!feof (fp)) + { + if ((len = fread (ibuf, sizeof (char), 64, fp)) < 64) + { + uint64_t v; + + /* add a padding */ + memset (&ibuf[len], 0, 64 - len); + ibuf[len] = 0x80; + if ((64 - len) < 9) + { + /* process a block once */ + FcHashComputeSHA256Digest (ret, ibuf); + memset (ibuf, 0, 64); + } + /* set input size at the end */ + v = (long)st.st_size * 8; + ibuf[63 - 0] = v & 0xff; + ibuf[63 - 1] = (v >> 8) & 0xff; + ibuf[63 - 2] = (v >> 16) & 0xff; + ibuf[63 - 3] = (v >> 24) & 0xff; + ibuf[63 - 4] = (v >> 32) & 0xff; + ibuf[63 - 5] = (v >> 40) & 0xff; + ibuf[63 - 6] = (v >> 48) & 0xff; + ibuf[63 - 7] = (v >> 56) & 0xff; + FcHashComputeSHA256Digest (ret, ibuf); + break; + } + else + { + FcHashComputeSHA256Digest (ret, ibuf); + } + } + fclose (fp); + + return FcHashSHA256ToString (ret); + +bail0: + fclose (fp); + + return NULL; +} + +FcChar8 * +FcHashGetSHA256DigestFromMemory (const char *fontdata, + size_t length) +{ + char ibuf[64]; + FcChar32 *ret; + size_t i = 0; + + ret = FcHashInitSHA256Digest (); + if (!ret) + return NULL; + + while (i <= length) + { + if ((length - i) < 64) + { + uint64_t v; + size_t n; + + /* add a padding */ + n = length - i; + if (n > 0) + memcpy (ibuf, &fontdata[i], n); + memset (&ibuf[n], 0, 64 - n); + ibuf[n] = 0x80; + if ((64 - n) < 9) + { + /* process a block once */ + FcHashComputeSHA256Digest (ret, ibuf); + memset (ibuf, 0, 64); + } + /* set input size at the end */ + v = length * 8; + ibuf[63 - 0] = v & 0xff; + ibuf[63 - 1] = (v >> 8) & 0xff; + ibuf[63 - 2] = (v >> 16) & 0xff; + ibuf[63 - 3] = (v >> 24) & 0xff; + ibuf[63 - 4] = (v >> 32) & 0xff; + ibuf[63 - 5] = (v >> 40) & 0xff; + ibuf[63 - 6] = (v >> 48) & 0xff; + ibuf[63 - 7] = (v >> 56) & 0xff; + FcHashComputeSHA256Digest (ret, ibuf); + break; + } + else + { + FcHashComputeSHA256Digest (ret, &fontdata[i]); + } + i += 64; + } + + return FcHashSHA256ToString (ret); +} diff --git a/chromium/third_party/fontconfig/src/src/fcinit.c b/chromium/third_party/fontconfig/src/src/fcinit.c index 5e7c2f15662..b8d5d060c71 100644 --- a/chromium/third_party/fontconfig/src/src/fcinit.c +++ b/chromium/third_party/fontconfig/src/src/fcinit.c @@ -36,14 +36,13 @@ #endif static FcConfig * -FcInitFallbackConfig (const FcChar8 *sysroot) +FcInitFallbackConfig (void) { FcConfig *config; config = FcConfigCreate (); if (!config) goto bail0; - FcConfigSetSysRoot (config, sysroot); if (!FcConfigAddDir (config, (FcChar8 *) FC_DEFAULT_FONTS)) goto bail1; if (!FcConfigAddCacheDir (config, (FcChar8 *) FC_CACHEDIR)) @@ -79,35 +78,20 @@ FcInitLoadOwnConfig (FcConfig *config) if (!FcConfigParseAndLoad (config, 0, FcTrue)) { - const FcChar8 *sysroot = FcConfigGetSysRoot (config); - FcConfig *fallback = FcInitFallbackConfig (sysroot); - FcConfigDestroy (config); - - return fallback; + return FcInitFallbackConfig (); } if (config->cacheDirs && config->cacheDirs->num == 0) { FcChar8 *prefix, *p; size_t plen; - FcBool have_own = FcFalse; - char *env_file, *env_path; - env_file = getenv ("FONTCONFIG_FILE"); - env_path = getenv ("FONTCONFIG_PATH"); - if ((env_file != NULL && env_file[0] != 0) || - (env_path != NULL && env_path[0] != 0)) - have_own = FcTrue; - - if (!have_own) - { - fprintf (stderr, - "Fontconfig warning: no <cachedir> elements found. Check configuration.\n"); - fprintf (stderr, - "Fontconfig warning: adding <cachedir>%s</cachedir>\n", - FC_CACHEDIR); - } + fprintf (stderr, + "Fontconfig warning: no <cachedir> elements found. Check configuration.\n"); + fprintf (stderr, + "Fontconfig warning: adding <cachedir>%s</cachedir>\n", + FC_CACHEDIR); prefix = FcConfigXdgCacheHome (); if (!prefix) goto bail; @@ -118,26 +102,19 @@ FcInitLoadOwnConfig (FcConfig *config) prefix = p; memcpy (&prefix[plen], FC_DIR_SEPARATOR_S "fontconfig", 11); prefix[plen + 11] = 0; - if (!have_own) - fprintf (stderr, - "Fontconfig warning: adding <cachedir prefix=\"xdg\">fontconfig</cachedir>\n"); + fprintf (stderr, + "Fontconfig warning: adding <cachedir prefix=\"xdg\">fontconfig</cachedir>\n"); if (!FcConfigAddCacheDir (config, (FcChar8 *) FC_CACHEDIR) || !FcConfigAddCacheDir (config, (FcChar8 *) prefix)) { - FcConfig *fallback; - const FcChar8 *sysroot; - bail: - sysroot = FcConfigGetSysRoot (config); fprintf (stderr, "Fontconfig error: out of memory"); if (prefix) FcStrFree (prefix); - fallback = FcInitFallbackConfig (sysroot); FcConfigDestroy (config); - - return fallback; + return FcInitFallbackConfig (); } FcStrFree (prefix); } @@ -192,8 +169,6 @@ FcFini (void) FcConfigFini (); FcCacheFini (); FcDefaultFini (); - FcObjectFini (); - FcConfigPathFini (); } /* @@ -203,18 +178,11 @@ FcBool FcInitReinitialize (void) { FcConfig *config; - FcBool ret; config = FcInitLoadConfigAndFonts (); if (!config) return FcFalse; - ret = FcConfigSetCurrent (config); - /* FcConfigSetCurrent() increases the refcount. - * decrease it here to avoid the memory leak. - */ - FcConfigDestroy (config); - - return ret; + return FcConfigSetCurrent (config); } FcBool @@ -223,8 +191,6 @@ FcInitBringUptoDate (void) FcConfig *config = FcConfigGetCurrent (); time_t now; - if (!config) - return FcFalse; /* * rescanInterval == 0 disables automatic up to date */ diff --git a/chromium/third_party/fontconfig/src/src/fcint.h b/chromium/third_party/fontconfig/src/src/fcint.h index ac911ad4076..362ea6f99ad 100644 --- a/chromium/third_party/fontconfig/src/src/fcint.h +++ b/chromium/third_party/fontconfig/src/src/fcint.h @@ -38,8 +38,6 @@ #include <assert.h> #include <errno.h> #include <limits.h> -#include <float.h> -#include <math.h> #include <unistd.h> #include <stddef.h> #include <sys/types.h> @@ -87,7 +85,6 @@ extern pfnSHGetFolderPathA pSHGetFolderPathA; #define FC_DBG_SCANV 256 #define FC_DBG_CONFIG 1024 #define FC_DBG_LANGSET 2048 -#define FC_DBG_MATCH2 4096 #define _FC_ASSERT_STATIC1(_line, _cond) typedef int _static_assert_on_line_##_line##_failed[(_cond)?1:-1] FC_UNUSED #define _FC_ASSERT_STATIC0(_line, _cond) _FC_ASSERT_STATIC1 (_line, (_cond)) @@ -164,7 +161,6 @@ typedef enum _FcValueBinding { #define FcValueString(v) FcPointerMember(v,u.s,FcChar8) #define FcValueCharSet(v) FcPointerMember(v,u.c,const FcCharSet) #define FcValueLangSet(v) FcPointerMember(v,u.l,const FcLangSet) -#define FcValueRange(v) FcPointerMember(v,u.r,const FcRange) typedef struct _FcValueList *FcValueListPtr; @@ -248,26 +244,20 @@ typedef struct _FcExprName { FcMatchKind kind; } FcExprName; -struct _FcRange { - double begin; - double end; -}; - typedef struct _FcExpr { FcOp op; union { - int ival; - double dval; - const FcChar8 *sval; - FcExprMatrix *mexpr; - FcBool bval; - FcCharSet *cval; - FcLangSet *lval; - FcRange *rval; - - FcExprName name; - const FcChar8 *constant; + int ival; + double dval; + const FcChar8 *sval; + FcExprMatrix *mexpr; + FcBool bval; + FcCharSet *cval; + FcLangSet *lval; + + FcExprName name; + const FcChar8 *constant; struct { struct _FcExpr *left, *right; } tree; @@ -339,19 +329,11 @@ struct _FcCharSet { FcCharLeaf)) #define FcCharSetNumbers(c) FcOffsetMember(c,numbers_offset,FcChar16) -#define FCSS_DEFAULT 0 /* default behavior */ -#define FCSS_ALLOW_DUPLICATES 1 /* allows for duplicate strings in the set */ -#define FCSS_GROW_BY_64 2 /* grows buffer by 64 elements instead of 1 */ - -#define FcStrSetHasControlBit(s,c) (s->control & c) -#define FcStrSetHasControlBits(s,c) ( (c) == (s->control & (c)) ) - struct _FcStrSet { FcRef ref; /* reference count */ int num; int size; FcChar8 **strs; - unsigned int control; /* control bits for set behavior */ }; struct _FcStrList { @@ -370,14 +352,13 @@ typedef struct _FcStrBuf { struct _FcCache { unsigned int magic; /* FC_CACHE_MAGIC_MMAP or FC_CACHE_ALLOC */ - int version; /* FC_CACHE_VERSION_NUMBER */ + int version; /* FC_CACHE_CONTENT_VERSION */ intptr_t size; /* size of file */ intptr_t dir; /* offset to dir name */ intptr_t dirs; /* offset to subdirs */ int dirs_count; /* number of subdir strings */ intptr_t set; /* offset to font set */ int checksum; /* checksum of directory state */ - int64_t checksum_nano; /* checksum of directory state */ }; #undef FcCacheDir @@ -463,6 +444,7 @@ typedef struct _FcCaseFold { #define FC_CACHE_MAGIC_MMAP 0xFC02FC04 #define FC_CACHE_MAGIC_ALLOC 0xFC02FC05 +#define FC_CACHE_CONTENT_VERSION 4 struct _FcAtomic { FcChar8 *file; /* original file name */ @@ -550,6 +532,13 @@ typedef struct _FcFileTime { typedef struct _FcCharMap FcCharMap; +typedef struct _FcRange FcRange; + +struct _FcRange { + FcChar32 begin; + FcChar32 end; +}; + typedef struct _FcStatFS FcStatFS; struct _FcStatFS { @@ -578,9 +567,6 @@ FcDirCacheScan (const FcChar8 *dir, FcConfig *config); FcPrivate FcCache * FcDirCacheBuild (FcFontSet *set, const FcChar8 *dir, struct stat *dir_stat, FcStrSet *dirs); -FcPrivate FcCache * -FcDirCacheRebuild (FcCache *cache, struct stat *dir_stat, FcStrSet *dirs); - FcPrivate FcBool FcDirCacheWrite (FcCache *cache, FcConfig *config); @@ -599,13 +585,6 @@ FcCacheFini (void); FcPrivate void FcDirCacheReference (FcCache *cache, int nref); -FcPrivate int -FcDirCacheLock (const FcChar8 *dir, - FcConfig *config); - -FcPrivate void -FcDirCacheUnlock (int fd); - /* fccfg.c */ FcPrivate FcBool @@ -719,9 +698,6 @@ FcPrivate FcLangSet * FcLangSetSerialize(FcSerialize *serialize, const FcLangSet *l); /* fccharset.c */ -FcPrivate FcCharSet * -FcCharSetPromote (FcValuePromotionBuffer *vbuf); - FcPrivate void FcLangCharSetPopulate (void); @@ -810,9 +786,6 @@ FcSubstPrint (const FcSubst *subst); FcPrivate void FcCharSetPrint (const FcCharSet *c); -FcPrivate void -FcPatternPrint2 (FcPattern *p1, FcPattern *p2, const FcObjectSet *os); - extern FcPrivate int FcDebugVal; #define FcDebug() (FcDebugVal) @@ -865,8 +838,17 @@ FcFontSetSerializeAlloc (FcSerialize *serialize, const FcFontSet *s); FcPrivate FcFontSet * FcFontSetSerialize (FcSerialize *serialize, const FcFontSet * s); -FcPrivate FcFontSet * -FcFontSetDeserialize (const FcFontSet *set); +/* fchash.c */ +FcPrivate FcChar8 * +FcHashGetSHA256Digest (const FcChar8 *input_strings, + size_t len); + +FcPrivate FcChar8 * +FcHashGetSHA256DigestFromFile (const FcChar8 *filename); + +FcPrivate FcChar8 * +FcHashGetSHA256DigestFromMemory (const char *fontdata, + size_t length); /* fcinit.c */ FcPrivate FcConfig * @@ -877,9 +859,6 @@ FcInitLoadOwnConfigAndFonts (FcConfig *config); /* fcxml.c */ FcPrivate void -FcConfigPathFini (void); - -FcPrivate void FcTestDestroy (FcTest *test); FcPrivate void @@ -1023,9 +1002,6 @@ FcPatternObjectAddBool (FcPattern *p, FcObject object, FcBool b); FcPrivate FcBool FcPatternObjectAddLangSet (FcPattern *p, FcObject object, const FcLangSet *ls); -FcPrivate FcBool -FcPatternObjectAddRange (FcPattern *p, FcObject object, const FcRange *r); - FcPrivate FcResult FcPatternObjectGetInteger (const FcPattern *p, FcObject object, int n, int *i); @@ -1047,15 +1023,9 @@ FcPatternObjectGetBool (const FcPattern *p, FcObject object, int n, FcBool *b); FcPrivate FcResult FcPatternObjectGetLangSet (const FcPattern *p, FcObject object, int n, FcLangSet **ls); -FcPrivate FcResult -FcPatternObjectGetRange (const FcPattern *p, FcObject object, int id, FcRange **r); - FcPrivate FcBool FcPatternAppend (FcPattern *p, FcPattern *s); -FcPrivate int -FcPatternPosition (const FcPattern *p, const char *object); - FcPrivate FcChar32 FcStringHash (const FcChar8 *s); @@ -1080,26 +1050,6 @@ extern FcPrivate const FcMatrix FcIdentityMatrix; FcPrivate void FcMatrixFree (FcMatrix *mat); -/* fcrange.c */ - -FcPrivate FcRange * -FcRangePromote (double v, FcValuePromotionBuffer *vbuf); - -FcPrivate FcBool -FcRangeIsInRange (const FcRange *a, const FcRange *b); - -FcPrivate FcBool -FcRangeCompare (FcOp op, const FcRange *a, const FcRange *b); - -FcPrivate FcChar32 -FcRangeHash (const FcRange *r); - -FcPrivate FcBool -FcRangeSerializeAlloc (FcSerialize *serialize, const FcRange *r); - -FcPrivate FcRange * -FcRangeSerialize (FcSerialize *serialize, const FcRange *r); - /* fcstat.c */ FcPrivate int @@ -1115,9 +1065,6 @@ FcPrivate FcBool FcIsFsMtimeBroken (const FcChar8 *dir); /* fcstr.c */ -FcPrivate FcStrSet * -FcStrSetCreateEx (unsigned int control); - FcPrivate FcBool FcStrSetAddLangs (FcStrSet *strs, const char *languages); @@ -1151,6 +1098,12 @@ FcStrCmpIgnoreBlanksAndCase (const FcChar8 *s1, const FcChar8 *s2); FcPrivate int FcStrCmpIgnoreCaseAndDelims (const FcChar8 *s1, const FcChar8 *s2, const FcChar8 *delims); +FcPrivate FcBool +FcStrRegexCmp (const FcChar8 *s, const FcChar8 *regex); + +FcPrivate FcBool +FcStrRegexCmpIgnoreCase (const FcChar8 *s, const FcChar8 *regex); + FcPrivate const FcChar8 * FcStrContainsIgnoreBlanksAndCase (const FcChar8 *s1, const FcChar8 *s2); @@ -1191,9 +1144,6 @@ FcStrSerialize (FcSerialize *serialize, const FcChar8 *str); /* fcobjs.c */ -FcPrivate void -FcObjectFini (void); - FcPrivate FcObject FcObjectLookupIdByName (const char *str); diff --git a/chromium/third_party/fontconfig/src/src/fclang.c b/chromium/third_party/fontconfig/src/src/fclang.c index b1fd1bcae67..9f685f6fdff 100644 --- a/chromium/third_party/fontconfig/src/src/fclang.c +++ b/chromium/third_party/fontconfig/src/src/fclang.c @@ -720,22 +720,19 @@ FcLangSetPromote (const FcChar8 *lang, FcValuePromotionBuffer *vbuf) memset (buf->ls.map, '\0', sizeof (buf->ls.map)); buf->ls.map_size = NUM_LANG_SET_MAP; buf->ls.extra = 0; - if (lang) + id = FcLangSetIndex (lang); + if (id > 0) { - id = FcLangSetIndex (lang); - if (id > 0) - { - FcLangSetBitSet (&buf->ls, id); - } - else - { - buf->ls.extra = &buf->strs; - buf->strs.num = 1; - buf->strs.size = 1; - buf->strs.strs = &buf->str; - FcRefInit (&buf->strs.ref, 1); - buf->str = (FcChar8 *) lang; - } + FcLangSetBitSet (&buf->ls, id); + } + else + { + buf->ls.extra = &buf->strs; + buf->strs.num = 1; + buf->strs.size = 1; + buf->strs.strs = &buf->str; + FcRefInit (&buf->strs.ref, 1); + buf->str = (FcChar8 *) lang; } return &buf->ls; } diff --git a/chromium/third_party/fontconfig/src/src/fclist.c b/chromium/third_party/fontconfig/src/src/fclist.c index d7e8fc09106..a365098a4d7 100644 --- a/chromium/third_party/fontconfig/src/src/fclist.c +++ b/chromium/third_party/fontconfig/src/src/fclist.c @@ -270,11 +270,9 @@ FcListValueHash (FcValue *value) case FcTypeCharSet: return FcCharSetCount (v.u.c); case FcTypeFTFace: - return (intptr_t) v.u.f; + return (long) v.u.f; case FcTypeLangSet: return FcLangSetHash (v.u.l); - case FcTypeRange: - return FcRangeHash (v.u.r); } return 0; } diff --git a/chromium/third_party/fontconfig/src/src/fcmatch.c b/chromium/third_party/fontconfig/src/src/fcmatch.c index 40efbd3f67b..627aa1a1696 100644 --- a/chromium/third_party/fontconfig/src/src/fcmatch.c +++ b/chromium/third_party/fontconfig/src/src/fcmatch.c @@ -189,49 +189,6 @@ FcCompareSize (FcValue *value1, FcValue *value2) } static double -FcCompareSizeRange (FcValue *v1, FcValue *v2) -{ - FcValue value1 = FcValueCanonicalize (v1); - FcValue value2 = FcValueCanonicalize (v2); - FcRange *r1 = NULL, *r2 = NULL; - double ret = -1.0; - - switch ((int) value1.type) { - case FcTypeDouble: - r1 = FcRangeCreateDouble (value1.u.d, value1.u.d); - break; - case FcTypeRange: - r1 = FcRangeCopy (value1.u.r); - break; - default: - goto bail; - } - switch ((int) value2.type) { - case FcTypeDouble: - r2 = FcRangeCreateDouble (value2.u.d, value2.u.d); - break; - case FcTypeRange: - r2 = FcRangeCopy (value2.u.r); - break; - default: - goto bail; - } - - if (FcRangeIsInRange (r1, r2)) - ret = 0.0; - else - ret = FC_MIN (fabs (r1->end - r2->begin), fabs (r1->begin - r2->end)); - -bail: - if (r1) - FcRangeDestroy (r1); - if (r2) - FcRangeDestroy (r2); - - return ret; -} - -static double FcCompareFilename (FcValue *v1, FcValue *v2) { const FcChar8 *s1 = FcValueString (v1), *s2 = FcValueString (v2); @@ -245,8 +202,16 @@ FcCompareFilename (FcValue *v1, FcValue *v2) return 3.0; } +static double +FcCompareHash (FcValue *v1, FcValue *v2) +{ + const FcChar8 *s1 = FcValueString (v1), *s2 = FcValueString (v2); -/* Define priorities to -1 for objects that don't have a compare function. */ + /* Do not match an empty string */ + if (!s1 || !s2 || !s1[0] || !s2[0]) + return 1.0; + return FcCompareString (v1, v2); +} #define PRI_NULL(n) \ PRI_ ## n ## _STRONG = -1, \ @@ -261,7 +226,7 @@ FcCompareFilename (FcValue *v1, FcValue *v2) #define PRI_FcCompareCharSet(n) PRI1(n) #define PRI_FcCompareLang(n) PRI1(n) #define PRI_FcComparePostScript(n) PRI1(n) -#define PRI_FcCompareSizeRange(n) PRI1(n) +#define PRI_FcCompareHash(n) PRI1(n) #define FC_OBJECT(NAME, Type, Cmp) PRI_##Cmp(NAME) @@ -271,9 +236,6 @@ typedef enum _FcMatcherPriorityDummy { #undef FC_OBJECT - -/* Canonical match priority order. */ - #undef PRI1 #define PRI1(n) \ PRI_ ## n, \ @@ -281,10 +243,10 @@ typedef enum _FcMatcherPriorityDummy { PRI_ ## n ## _WEAK = PRI_ ## n typedef enum _FcMatcherPriority { + PRI1(HASH), PRI1(FILE), PRI1(FONTFORMAT), PRI1(SCALABLE), - PRI1(COLOR), PRI1(FOUNDRY), PRI1(CHARSET), PRI_FAMILY_STRONG, @@ -292,9 +254,7 @@ typedef enum _FcMatcherPriority { PRI1(LANG), PRI_FAMILY_WEAK, PRI_POSTSCRIPT_NAME_WEAK, - PRI1(SYMBOL), PRI1(SPACING), - PRI1(SIZE), PRI1(PIXEL_SIZE), PRI1(STYLE), PRI1(SLANT), @@ -377,7 +337,7 @@ FcCompareValueList (FcObject object, best = 1e99; bestStrong = 1e99; bestWeak = 1e99; - j = 0; + j = 1; for (v1 = v1orig; v1; v1 = FcValueListNext(v1)) { for (v2 = v2orig, k = 0; v2; v2 = FcValueListNext(v2), k++) @@ -485,7 +445,7 @@ FcFontRenderPrepare (FcConfig *config, { FcPattern *new; int i; - FcPatternElt *fe, *pe; + FcPatternElt *fe, *pe, *fel, *pel; FcValue v; FcResult result; @@ -510,25 +470,36 @@ FcFontRenderPrepare (FcConfig *config, fe->object == FC_STYLE_OBJECT || fe->object == FC_FULLNAME_OBJECT) { - FcPatternElt *fel, *pel; - FC_ASSERT_STATIC ((FC_FAMILY_OBJECT + 1) == FC_FAMILYLANG_OBJECT); FC_ASSERT_STATIC ((FC_STYLE_OBJECT + 1) == FC_STYLELANG_OBJECT); FC_ASSERT_STATIC ((FC_FULLNAME_OBJECT + 1) == FC_FULLNAMELANG_OBJECT); fel = FcPatternObjectFindElt (font, fe->object + 1); pel = FcPatternObjectFindElt (pat, fe->object + 1); + } + else + { + fel = NULL; + pel = NULL; + } + pe = FcPatternObjectFindElt (pat, fe->object); + if (pe) + { + const FcMatcher *match = FcObjectToMatcher (pe->object, FcFalse); + if (!FcCompareValueList (pe->object, match, + FcPatternEltValues(pe), + FcPatternEltValues(fe), &v, NULL, NULL, &result)) + { + FcPatternDestroy (new); + return NULL; + } if (fel && pel) { - /* The font has name languages, and pattern asks for specific language(s). - * Match on language and and prefer that result. - * Note: Currently the code only give priority to first matching language. - */ int n = 1, j; FcValueListPtr l1, l2, ln = NULL, ll = NULL; - const FcMatcher *match = FcObjectToMatcher (pel->object, FcTrue); + match = FcObjectToMatcher (pel->object, FcTrue); if (!FcCompareValueList (pel->object, match, FcPatternEltValues (pel), FcPatternEltValues (fel), NULL, NULL, &n, &result)) @@ -571,10 +542,9 @@ FcFontRenderPrepare (FcConfig *config, } else if (fel) { - /* Pattern doesn't ask for specific language. Copy all for name and - * lang. */ FcValueListPtr l1, l2; + copy_lang: l1 = FcValueListDuplicate (FcPatternEltValues (fe)); l2 = FcValueListDuplicate (FcPatternEltValues (fel)); FcPatternObjectListAdd (new, fe->object, l1, FcFalse); @@ -582,23 +552,12 @@ FcFontRenderPrepare (FcConfig *config, continue; } - } - - pe = FcPatternObjectFindElt (pat, fe->object); - if (pe) - { - const FcMatcher *match = FcObjectToMatcher (pe->object, FcFalse); - if (!FcCompareValueList (pe->object, match, - FcPatternEltValues(pe), - FcPatternEltValues(fe), &v, NULL, NULL, &result)) - { - FcPatternDestroy (new); - return NULL; - } FcPatternObjectAdd (new, fe->object, v, FcFalse); } else { + if (fel) + goto copy_lang; FcPatternObjectListAdd (new, fe->object, FcValueListDuplicate (FcPatternEltValues (fe)), FcTrue); @@ -689,47 +648,6 @@ FcFontSetMatchInternal (FcFontSet **sets, printf ("\n"); FcPatternPrint (best); } - if (FcDebug () & FC_DBG_MATCH2) - { - char *env = getenv ("FC_DBG_MATCH_FILTER"); - FcObjectSet *os = NULL; - - if (env) - { - char *ss, *s; - char *p; - FcBool f = FcTrue; - - ss = s = strdup (env); - os = FcObjectSetCreate (); - while (f) - { - size_t len; - char *x; - - if (!(p = strchr (s, ','))) - { - f = FcFalse; - len = strlen (s) + 1; - } - else - { - len = (p - s) + 1; - } - x = malloc (sizeof (char) * len); - strncpy (x, s, len - 1); - x[len - 1] = 0; - if (FcObjectFromName (x) > 0) - FcObjectSetAdd (os, x); - s = p + 1; - free (x); - } - free (ss); - } - FcPatternPrint2 (p, best, os); - if (os) - FcObjectSetDestroy (os); - } /* assuming that 'result' is initialized with FcResultNoMatch * outside this function */ if (best) @@ -825,7 +743,6 @@ FcSortWalk (FcSortNode **n, int nnode, FcFontSet *fs, FcCharSet **csp, FcBool tr { FcBool ret = FcFalse; FcCharSet *cs; - int i; cs = 0; if (trim || csp) @@ -835,7 +752,7 @@ FcSortWalk (FcSortNode **n, int nnode, FcFontSet *fs, FcCharSet **csp, FcBool tr goto bail; } - for (i = 0; i < nnode; i++) + while (nnode--) { FcSortNode *node = *n++; FcBool adds_chars = FcFalse; @@ -859,7 +776,7 @@ FcSortWalk (FcSortNode **n, int nnode, FcFontSet *fs, FcCharSet **csp, FcBool tr * If this font isn't a subset of the previous fonts, * add it to the list */ - if (!i || !trim || adds_chars) + if (!trim || adds_chars) { FcPatternReference (node->pattern); if (FcDebug () & FC_DBG_MATCHV) diff --git a/chromium/third_party/fontconfig/src/src/fcname.c b/chromium/third_party/fontconfig/src/src/fcname.c index 8be36c70c1c..712b2fad36c 100644 --- a/chromium/third_party/fontconfig/src/src/fcname.c +++ b/chromium/third_party/fontconfig/src/src/fcname.c @@ -87,12 +87,6 @@ FcObjectValidType (FcObject object, FcType type) if (type == FcTypeLangSet || type == FcTypeString) return FcTrue; break; - case FcTypeRange: - if (type == FcTypeRange || - type == FcTypeDouble || - type == FcTypeInteger) - return FcTrue; - break; default: if (type == t->type) return FcTrue; @@ -138,8 +132,6 @@ static const FcConstant _FcBaseConstants[] = { { (FcChar8 *) "thin", "weight", FC_WEIGHT_THIN, }, { (FcChar8 *) "extralight", "weight", FC_WEIGHT_EXTRALIGHT, }, { (FcChar8 *) "ultralight", "weight", FC_WEIGHT_EXTRALIGHT, }, - { (FcChar8 *) "demilight", "weight", FC_WEIGHT_DEMILIGHT, }, - { (FcChar8 *) "semilight", "weight", FC_WEIGHT_DEMILIGHT, }, { (FcChar8 *) "light", "weight", FC_WEIGHT_LIGHT, }, { (FcChar8 *) "book", "weight", FC_WEIGHT_BOOK, }, { (FcChar8 *) "regular", "weight", FC_WEIGHT_REGULAR, }, @@ -281,8 +273,6 @@ FcNameConvert (FcType type, FcChar8 *string) { FcValue v; FcMatrix m; - double b, e; - char *p; v.type = type; switch ((int) v.type) { @@ -317,20 +307,6 @@ FcNameConvert (FcType type, FcChar8 *string) if (!v.u.l) v.type = FcTypeVoid; break; - case FcTypeRange: - if (sscanf ((char *) string, "[%lg %lg)", &b, &e) != 2) - { - v.u.d = strtod ((char *) string, &p); - if (p != NULL && p[0] != 0) - { - v.type = FcTypeVoid; - break; - } - v.type = FcTypeDouble; - } - else - v.u.r = FcRangeCreateDouble (b, e); - break; default: break; } @@ -444,8 +420,6 @@ FcNameParse (const FcChar8 *name) if ((c = FcNameGetConstant (save))) { t = FcNameGetObjectType ((char *) c->object); - if (t == NULL) - goto bail2; switch ((int) t->type) { case FcTypeInteger: case FcTypeDouble: @@ -525,9 +499,6 @@ FcNameUnparseValue (FcStrBuf *buf, return FcNameUnparseLangSet (buf, v.u.l); case FcTypeFTFace: return FcTrue; - case FcTypeRange: - sprintf ((char *) temp, "[%g %g)", v.u.r->begin, v.u.r->end); - return FcNameUnparseString (buf, temp, 0); } return FcFalse; } @@ -560,13 +531,12 @@ FcNameUnparse (FcPattern *pat) FcChar8 * FcNameUnparseEscaped (FcPattern *pat, FcBool escape) { - FcStrBuf buf, buf2; - FcChar8 buf_static[8192], buf2_static[256]; + FcStrBuf buf; + FcChar8 buf_static[8192]; int i; FcPatternElt *e; FcStrBufInit (&buf, buf_static, sizeof (buf_static)); - FcStrBufInit (&buf2, buf2_static, sizeof (buf2_static)); e = FcPatternObjectFindElt (pat, FC_FAMILY_OBJECT); if (e) { @@ -576,17 +546,10 @@ FcNameUnparseEscaped (FcPattern *pat, FcBool escape) e = FcPatternObjectFindElt (pat, FC_SIZE_OBJECT); if (e) { - FcChar8 *p; - - if (!FcNameUnparseString (&buf2, (FcChar8 *) "-", 0)) + if (!FcNameUnparseString (&buf, (FcChar8 *) "-", 0)) goto bail0; - if (!FcNameUnparseValueList (&buf2, FcPatternEltValues(e), escape ? (FcChar8 *) FC_ESCAPE_FIXED : 0)) + if (!FcNameUnparseValueList (&buf, FcPatternEltValues(e), escape ? (FcChar8 *) FC_ESCAPE_FIXED : 0)) goto bail0; - p = FcStrBufDoneStatic (&buf2); - FcStrBufDestroy (&buf2); - if (strlen ((const char *)p) > 1) - if (!FcStrBufString (&buf, p)) - goto bail0; } for (i = 0; i < NUM_OBJECT_TYPES; i++) { diff --git a/chromium/third_party/fontconfig/src/src/fcobjs.c b/chromium/third_party/fontconfig/src/src/fcobjs.c index 16ff31c4789..bad9824d461 100644 --- a/chromium/third_party/fontconfig/src/src/fcobjs.c +++ b/chromium/third_party/fontconfig/src/src/fcobjs.c @@ -44,28 +44,6 @@ struct FcObjectOtherTypeInfo { FcObject id; } *other_types; -void -FcObjectFini (void) -{ - struct FcObjectOtherTypeInfo *ots, *ot; - -retry: - ots = fc_atomic_ptr_get (&other_types); - if (!ots) - return; - if (!fc_atomic_ptr_cmpexch (&other_types, ots, NULL)) - goto retry; - - while (ots) - { - ot = ots->next; - if (ots->object.object) - free (ots->object.object); - free (ots); - ots = ot; - } -} - static FcObjectType * _FcObjectLookupOtherTypeByName (const char *str, FcObject *id) { @@ -84,19 +62,12 @@ retry: if (!ot) return NULL; - ot->object.object = (char *) FcStrdup (str); + ot->object.object = (const char *) FcStrdup (str); ot->object.type = FcTypeUnknown; ot->id = fc_atomic_int_add (next_id, +1); - if (ot->id < (FC_MAX_BASE_OBJECT + FC_EXT_OBJ_INDEX)) - { - fprintf (stderr, "Fontconfig error: No object ID to assign\n"); - abort (); - } ot->next = ots; if (!fc_atomic_ptr_cmpexch (&other_types, ots, ot)) { - if (ot->object.object) - free (ot->object.object); free (ot); goto retry; } diff --git a/chromium/third_party/fontconfig/src/src/fcobjs.h b/chromium/third_party/fontconfig/src/src/fcobjs.h index 1fc4f656b8e..87c7319e39a 100644 --- a/chromium/third_party/fontconfig/src/src/fcobjs.h +++ b/chromium/third_party/fontconfig/src/src/fcobjs.h @@ -1,26 +1,3 @@ -/* - * fontconfig/src/fcobjs.h - * - * Copyright © 2000 Keith Packard - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of the author(s) not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. The authors make no - * representations about the suitability of this software for any purpose. It - * is provided "as is" without express or implied warranty. - * - * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ /* DON'T REORDER! The order is part of the cache signature. */ FC_OBJECT (FAMILY, FcTypeString, FcCompareFamily) FC_OBJECT (FAMILYLANG, FcTypeString, NULL) @@ -31,7 +8,7 @@ FC_OBJECT (FULLNAMELANG, FcTypeString, NULL) FC_OBJECT (SLANT, FcTypeInteger, FcCompareNumber) FC_OBJECT (WEIGHT, FcTypeInteger, FcCompareNumber) FC_OBJECT (WIDTH, FcTypeInteger, FcCompareNumber) -FC_OBJECT (SIZE, FcTypeRange, FcCompareSizeRange) +FC_OBJECT (SIZE, FcTypeDouble, NULL) FC_OBJECT (ASPECT, FcTypeDouble, NULL) FC_OBJECT (PIXEL_SIZE, FcTypeDouble, FcCompareSize) FC_OBJECT (SPACING, FcTypeInteger, FcCompareNumber) @@ -44,7 +21,7 @@ FC_OBJECT (AUTOHINT, FcTypeBool, NULL) FC_OBJECT (GLOBAL_ADVANCE, FcTypeBool, NULL) /* deprecated */ FC_OBJECT (FILE, FcTypeString, FcCompareFilename) FC_OBJECT (INDEX, FcTypeInteger, NULL) -FC_OBJECT (RASTERIZER, FcTypeString, FcCompareString) /* deprecated */ +FC_OBJECT (RASTERIZER, FcTypeString, FcCompareString) FC_OBJECT (OUTLINE, FcTypeBool, FcCompareBool) FC_OBJECT (SCALABLE, FcTypeBool, FcCompareBool) FC_OBJECT (DPI, FcTypeDouble, NULL) @@ -66,8 +43,6 @@ FC_OBJECT (LCD_FILTER, FcTypeInteger, NULL) FC_OBJECT (NAMELANG, FcTypeString, NULL) FC_OBJECT (FONT_FEATURES, FcTypeString, NULL) FC_OBJECT (PRGNAME, FcTypeString, NULL) -FC_OBJECT (HASH, FcTypeString, NULL) /* deprecated */ +FC_OBJECT (HASH, FcTypeString, FcCompareHash) FC_OBJECT (POSTSCRIPT_NAME, FcTypeString, FcComparePostScript) -FC_OBJECT (COLOR, FcTypeBool, FcCompareBool) -FC_OBJECT (SYMBOL, FcTypeBool, FcCompareBool) /* ^-------------- Add new objects here. */ diff --git a/chromium/third_party/fontconfig/src/src/fcobjshash.gperf.h b/chromium/third_party/fontconfig/src/src/fcobjshash.gperf.h index 1765c949d9a..ca23c026116 100644 --- a/chromium/third_party/fontconfig/src/src/fcobjshash.gperf.h +++ b/chromium/third_party/fontconfig/src/src/fcobjshash.gperf.h @@ -1,26 +1,3 @@ -/* - * fontconfig/src/fcobjshash.gperf.h - * - * Copyright © 2000 Keith Packard - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of the author(s) not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. The authors make no - * representations about the suitability of this software for any purpose. It - * is provided "as is" without express or implied warranty. - * - * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ %{ CUT_OUT_BEGIN #include <fontconfig/fontconfig.h> diff --git a/chromium/third_party/fontconfig/src/src/fcpat.c b/chromium/third_party/fontconfig/src/src/fcpat.c index 3ef1ed21205..0614ac2c239 100644 --- a/chromium/third_party/fontconfig/src/src/fcpat.c +++ b/chromium/third_party/fontconfig/src/src/fcpat.c @@ -33,7 +33,6 @@ FcPatternCreate (void) p = (FcPattern *) malloc (sizeof (FcPattern)); if (!p) return 0; - memset (p, 0, sizeof (FcPattern)); p->num = 0; p->size = 0; p->elts_offset = FcPtrToOffset (p, NULL); @@ -57,9 +56,6 @@ FcValueDestroy (FcValue v) case FcTypeLangSet: FcLangSetDestroy ((FcLangSet *) v.u.l); break; - case FcTypeRange: - FcRangeDestroy ((FcRange *) v.u.r); - break; default: break; } @@ -84,10 +80,6 @@ FcValueCanonicalize (const FcValue *v) new.u.l = FcValueLangSet(v); new.type = FcTypeLangSet; break; - case FcTypeRange: - new.u.r = FcValueRange(v); - new.type = FcTypeRange; - break; default: new = *v; break; @@ -119,11 +111,6 @@ FcValueSave (FcValue v) if (!v.u.l) v.type = FcTypeVoid; break; - case FcTypeRange: - v.u.r = FcRangeCopy (v.u.r); - if (!v.u.r) - v.type = FcTypeVoid; - break; default: break; } @@ -157,9 +144,6 @@ FcValueListDestroy (FcValueListPtr l) FcLangSetDestroy ((FcLangSet *) (l->value.u.l)); break; - case FcTypeRange: - FcRangeDestroy ((FcRange *) (l->value.u.r)); - break; default: break; } @@ -282,8 +266,6 @@ FcValueEqual (FcValue va, FcValue vb) return va.u.f == vb.u.f; case FcTypeLangSet: return FcLangSetEqual (va.u.l, vb.u.l); - case FcTypeRange: - return FcRangeIsInRange (va.u.r, vb.u.r); } return FcFalse; } @@ -337,8 +319,6 @@ FcValueHash (const FcValue *v) FcStringHash ((const FcChar8 *) ((FT_Face) v->u.f)->style_name); case FcTypeLangSet: return FcLangSetHash (FcValueLangSet(v)); - case FcTypeRange: - return FcRangeHash (v->u.r); } return 0; } @@ -425,12 +405,6 @@ FcPatternObjectPosition (const FcPattern *p, FcObject object) return -(mid + 1); } -int -FcPatternPosition (const FcPattern *p, const char *object) -{ - return FcPatternObjectPosition (p, FcObjectFromName (object)); -} - FcPatternElt * FcPatternObjectFindElt (const FcPattern *p, FcObject object) { @@ -866,22 +840,6 @@ FcPatternAddLangSet (FcPattern *p, const char *object, const FcLangSet *ls) return FcPatternAdd (p, object, v, FcTrue); } -FcBool -FcPatternObjectAddRange (FcPattern *p, FcObject object, const FcRange *r) -{ - FcValue v; - - v.type = FcTypeRange; - v.u.r = (FcRange *)r; - return FcPatternObjectAdd (p, object, v, FcTrue); -} - -FcBool -FcPatternAddRange (FcPattern *p, const char *object, const FcRange *r) -{ - return FcPatternObjectAddRange (p, FcObjectFromName (object), r); -} - FcResult FcPatternObjectGet (const FcPattern *p, FcObject object, int id, FcValue *v) { @@ -1066,31 +1024,6 @@ FcPatternGetLangSet(const FcPattern *p, const char *object, int id, FcLangSet ** return FcResultMatch; } -FcResult -FcPatternObjectGetRange (const FcPattern *p, FcObject object, int id, FcRange **r) -{ - FcValue v; - FcResult res; - - res = FcPatternObjectGet (p, object, id, &v); - if (res != FcResultMatch) - return res; - switch ((int)v.type) { - case FcTypeRange: - *r = (FcRange *)v.u.r; - break; - default: - return FcResultTypeMismatch; - } - return FcResultMatch; -} - -FcResult -FcPatternGetRange (const FcPattern *p, const char *object, int id, FcRange **r) -{ - return FcPatternObjectGetRange (p, FcObjectFromName (object), id, r); -} - FcPattern * FcPatternDuplicate (const FcPattern *orig) { @@ -1296,10 +1229,6 @@ FcValueListSerializeAlloc (FcSerialize *serialize, const FcValueList *vl) if (!FcLangSetSerializeAlloc (serialize, vl->value.u.l)) return FcFalse; break; - case FcTypeRange: - if (!FcRangeSerializeAlloc (serialize, vl->value.u.r)) - return FcFalse; - break; default: break; } @@ -1315,7 +1244,6 @@ FcValueListSerialize (FcSerialize *serialize, const FcValueList *vl) FcChar8 *s_serialized; FcCharSet *c_serialized; FcLangSet *l_serialized; - FcRange *r_serialized; FcValueList *head_serialized = NULL; FcValueList *prev_serialized = NULL; @@ -1374,14 +1302,6 @@ FcValueListSerialize (FcSerialize *serialize, const FcValueList *vl) l_serialized, FcLangSet); break; - case FcTypeRange: - r_serialized = FcRangeSerialize (serialize, vl->value.u.r); - if (!r_serialized) - return NULL; - vl_serialized->value.u.r = FcPtrToEncodedOffset (&vl_serialized->value, - r_serialized, - FcRange); - break; default: break; } @@ -1390,7 +1310,6 @@ FcValueListSerialize (FcSerialize *serialize, const FcValueList *vl) } return head_serialized; } - #define __fcpat__ #include "fcaliastail.h" #include "fcftaliastail.h" diff --git a/chromium/third_party/fontconfig/src/src/fcrange.c b/chromium/third_party/fontconfig/src/src/fcrange.c deleted file mode 100644 index f70226c5521..00000000000 --- a/chromium/third_party/fontconfig/src/src/fcrange.c +++ /dev/null @@ -1,161 +0,0 @@ -/* - * fontconfig/src/fcrange.c - * - * Copyright © 2002 Keith Packard - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of the author(s) not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. The authors make no - * representations about the suitability of this software for any purpose. It - * is provided "as is" without express or implied warranty. - * - * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ - -#include "fcint.h" - - -FcRange * -FcRangeCreateDouble (double begin, double end) -{ - FcRange *ret = malloc (sizeof (FcRange)); - - if (ret) - { - ret->begin = begin; - ret->end = end; - } - - return ret; -} - -FcRange * -FcRangeCreateInteger (FcChar32 begin, FcChar32 end) -{ - FcRange *ret = malloc (sizeof (FcRange)); - - if (ret) - { - ret->begin = begin; - ret->end = end; - } - - return ret; -} - -void -FcRangeDestroy (FcRange *range) -{ - free (range); -} - -FcRange * -FcRangeCopy (const FcRange *range) -{ - return FcRangeCreateDouble (range->begin, range->end); -} - -FcBool -FcRangeGetDouble(const FcRange *range, double *begin, double *end) -{ - if (!range) - return FcFalse; - if (begin) - *begin = range->begin; - if (end) - *end = range->end; - - return FcTrue; -} - -FcRange * -FcRangePromote (double v, FcValuePromotionBuffer *vbuf) -{ - typedef struct { - FcRange r; - } FcRangePromotionBuffer; - FcRangePromotionBuffer *buf = (FcRangePromotionBuffer *) vbuf; - - FC_ASSERT_STATIC (sizeof (FcRangePromotionBuffer) <= sizeof (FcValuePromotionBuffer)); - buf->r.begin = v; - buf->r.end = v; - - return &buf->r; -} - -FcBool -FcRangeIsInRange (const FcRange *a, const FcRange *b) -{ - if (!a || !b) - return FcFalse; - - return a->begin >= b->begin && a->end <= b->end; -} - -FcBool -FcRangeCompare (FcOp op, const FcRange *a, const FcRange *b) -{ - switch ((int) op) { - case FcOpEqual: - case FcOpContains: - case FcOpListing: - return FcRangeIsInRange (a, b); - case FcOpNotEqual: - case FcOpNotContains: - return !FcRangeIsInRange (a, b); - case FcOpLess: - return a->begin < b->begin; - case FcOpLessEqual: - return a->begin <= b->begin; - case FcOpMore: - return a->end > b->end; - case FcOpMoreEqual: - return a->end >= b->end; - default: - break; - } - return FcFalse; -} - -FcChar32 -FcRangeHash (const FcRange *r) -{ - int b = (int) (r->begin * 100); - int e = (int) (r->end * 100); - - return b ^ (b << 1) ^ (e << 9); -} - -FcBool -FcRangeSerializeAlloc (FcSerialize *serialize, const FcRange *r) -{ - if (!FcSerializeAlloc (serialize, r, sizeof (FcRange))) - return FcFalse; - return FcTrue; -} - -FcRange * -FcRangeSerialize (FcSerialize *serialize, const FcRange *r) -{ - FcRange *r_serialize = FcSerializePtr (serialize, r); - - if (!r_serialize) - return NULL; - memcpy (r_serialize, r, sizeof (FcRange)); - - return r_serialize; -} - -#define __fcrange__ -#include "fcaliastail.h" -#undef __fcrange__ diff --git a/chromium/third_party/fontconfig/src/src/fcstat.c b/chromium/third_party/fontconfig/src/src/fcstat.c index 1734fa42358..ff8e88455ef 100644 --- a/chromium/third_party/fontconfig/src/src/fcstat.c +++ b/chromium/third_party/fontconfig/src/src/fcstat.c @@ -30,9 +30,6 @@ #ifdef HAVE_SYS_VFS_H #include <sys/vfs.h> #endif -#ifdef HAVE_SYS_STATVFS_H -#include <sys/statvfs.h> -#endif #ifdef HAVE_SYS_STATFS_H #include <sys/statfs.h> #endif @@ -42,7 +39,6 @@ #ifdef HAVE_SYS_MOUNT_H #include <sys/mount.h> #endif -#include <errno.h> #ifdef _WIN32 #ifdef __GNUC__ @@ -165,86 +161,21 @@ FcDirChecksumScandirFilter(const struct dirent *entry) } #endif +#ifdef HAVE_SCANDIR static int FcDirChecksumScandirSorter(const struct dirent **lhs, const struct dirent **rhs) { return strcmp((*lhs)->d_name, (*rhs)->d_name); } - -static void -free_dirent (struct dirent **p) +#elif HAVE_SCANDIR_VOID_P +static int +FcDirChecksumScandirSorter(const void *a, const void *b) { - struct dirent **x; - - for (x = p; *x != NULL; x++) - free (*x); + const struct dirent *lhs = a, *rhs = b; - free (p); -} - -int -FcScandir (const char *dirp, - struct dirent ***namelist, - int (*filter) (const struct dirent *), - int (*compar) (const struct dirent **, const struct dirent **)); - -int -FcScandir (const char *dirp, - struct dirent ***namelist, - int (*filter) (const struct dirent *), - int (*compar) (const struct dirent **, const struct dirent **)) -{ - DIR *d; - struct dirent *dent, *p, **dlist, **dlp; - size_t lsize = 128, n = 0; - - d = opendir (dirp); - if (!d) - return -1; - - dlist = (struct dirent **) malloc (sizeof (struct dirent *) * lsize); - if (!dlist) - { - closedir (d); - errno = ENOMEM; - - return -1; - } - *dlist = NULL; - while ((dent = readdir (d))) - { - if (!filter || (filter) (dent)) - { - size_t dentlen = FcPtrToOffset (dent, dent->d_name) + strlen (dent->d_name) + 1; - dentlen = ((dentlen + ALIGNOF_VOID_P - 1) & ~(ALIGNOF_VOID_P - 1)); - p = (struct dirent *) malloc (dentlen); - memcpy (p, dent, dentlen); - if ((n + 1) >= lsize) - { - lsize += 128; - dlp = (struct dirent **) realloc (dlist, sizeof (struct dirent *) * lsize); - if (!dlp) - { - free_dirent (dlist); - closedir (d); - errno = ENOMEM; - - return -1; - } - dlist = dlp; - } - dlist[n++] = p; - dlist[n] = NULL; - } - } - closedir (d); - - qsort (dlist, n, sizeof (struct dirent *), (int (*) (const void *, const void *))compar); - - *namelist = dlist; - - return n; + return strcmp(lhs->d_name, rhs->d_name); } +#endif static int FcDirChecksum (const FcChar8 *dir, time_t *checksum) @@ -252,12 +183,14 @@ FcDirChecksum (const FcChar8 *dir, time_t *checksum) struct Adler32 ctx; struct dirent **files; int n; +#ifndef HAVE_STRUCT_DIRENT_D_TYPE int ret = 0; size_t len = strlen ((const char *)dir); +#endif Adler32Init (&ctx); - n = FcScandir ((const char *)dir, &files, + n = scandir ((const char *)dir, &files, #ifdef HAVE_STRUCT_DIRENT_D_TYPE &FcDirChecksumScandirFilter, #else @@ -274,9 +207,7 @@ FcDirChecksum (const FcChar8 *dir, time_t *checksum) #ifdef HAVE_STRUCT_DIRENT_D_TYPE dtype = files[n]->d_type; - if (dtype == DT_UNKNOWN) - { -#endif +#else struct stat statb; char f[PATH_MAX + 1]; @@ -293,18 +224,20 @@ FcDirChecksum (const FcChar8 *dir, time_t *checksum) goto bail; dtype = statb.st_mode; -#ifdef HAVE_STRUCT_DIRENT_D_TYPE - } #endif Adler32Update (&ctx, files[n]->d_name, dlen + 1); Adler32Update (&ctx, (char *)&dtype, sizeof (int)); +#ifndef HAVE_STRUCT_DIRENT_D_TYPE bail: +#endif free (files[n]); } free (files); +#ifndef HAVE_STRUCT_DIRENT_D_TYPE if (ret == -1) return -1; +#endif *checksum = Adler32Finish (&ctx); @@ -426,7 +359,3 @@ FcIsFsMtimeBroken (const FcChar8 *dir) return FcFalse; } - -#define __fcstat__ -#include "fcaliastail.h" -#undef __fcstat__ diff --git a/chromium/third_party/fontconfig/src/src/fcstr.c b/chromium/third_party/fontconfig/src/src/fcstr.c index b65492d84af..57071724315 100644 --- a/chromium/third_party/fontconfig/src/src/fcstr.c +++ b/chromium/third_party/fontconfig/src/src/fcstr.c @@ -26,6 +26,9 @@ #include <stdlib.h> #include <ctype.h> #include <string.h> +#ifdef HAVE_REGEX_H +#include <regex.h> +#endif /* Objects MT-safe for readonly access. */ @@ -239,6 +242,55 @@ FcStrCmp (const FcChar8 *s1, const FcChar8 *s2) return (int) c1 - (int) c2; } +#ifdef USE_REGEX +static FcBool +_FcStrRegexCmp (const FcChar8 *s, const FcChar8 *regex, int cflags, int eflags) +{ + int ret = -1; + regex_t reg; + + if ((ret = regcomp (®, (const char *)regex, cflags)) != 0) + { + if (FcDebug () & FC_DBG_MATCHV) + { + char buf[512]; + + regerror (ret, ®, buf, 512); + printf("Regexp compile error: %s\n", buf); + } + return FcFalse; + } + ret = regexec (®, (const char *)s, 0, NULL, eflags); + if (ret != 0) + { + if (FcDebug () & FC_DBG_MATCHV) + { + char buf[512]; + + regerror (ret, ®, buf, 512); + printf("Regexp exec error: %s\n", buf); + } + } + regfree (®); + + return ret == 0 ? FcTrue : FcFalse; +} +#else +# define _FcStrRegexCmp(_s_, _regex_, _cflags_, _eflags_) (FcFalse) +#endif + +FcBool +FcStrRegexCmp (const FcChar8 *s, const FcChar8 *regex) +{ + return _FcStrRegexCmp (s, regex, REG_EXTENDED | REG_NOSUB, 0); +} + +FcBool +FcStrRegexCmpIgnoreCase (const FcChar8 *s, const FcChar8 *regex) +{ + return _FcStrRegexCmp (s, regex, REG_EXTENDED | REG_NOSUB | REG_ICASE, 0); +} + /* * Return a hash value for a string */ @@ -872,16 +924,12 @@ FcStrBuildFilename (const FcChar8 *path, ...) { va_list ap; - FcStrSet *sset; + FcStrSet *sset = FcStrSetCreate (); FcStrList *list; FcChar8 *s, *ret = NULL, *p; size_t len = 0; - if (!path) - return NULL; - - sset = FcStrSetCreateEx (FCSS_ALLOW_DUPLICATES | FCSS_GROW_BY_64); - if (!sset) + if (!sset || !path) return NULL; if (!FcStrSetAdd (sset, path)) @@ -1130,12 +1178,6 @@ FcStrCanonFilename (const FcChar8 *s) FcStrSet * FcStrSetCreate (void) { - return FcStrSetCreateEx (FCSS_DEFAULT); -} - -FcStrSet * -FcStrSetCreateEx (unsigned int control) -{ FcStrSet *set = malloc (sizeof (FcStrSet)); if (!set) return 0; @@ -1143,42 +1185,29 @@ FcStrSetCreateEx (unsigned int control) set->num = 0; set->size = 0; set->strs = 0; - set->control = control; return set; } static FcBool -_FcStrSetGrow (FcStrSet *set, int growElements) -{ - /* accommodate an additional NULL entry at the end of the array */ - FcChar8 **strs = malloc ((set->size + growElements + 1) * sizeof (FcChar8 *)); - if (!strs) - return FcFalse; - if (set->num) - memcpy (strs, set->strs, set->num * sizeof (FcChar8 *)); - if (set->strs) - free (set->strs); - set->size = set->size + growElements; - set->strs = strs; - return FcTrue; -} - -static FcBool _FcStrSetAppend (FcStrSet *set, FcChar8 *s) { - if (!FcStrSetHasControlBit (set, FCSS_ALLOW_DUPLICATES)) + if (FcStrSetMember (set, s)) { - if (FcStrSetMember (set, s)) - { - FcStrFree (s); - return FcTrue; - } + FcStrFree (s); + return FcTrue; } if (set->num == set->size) { - int growElements = FcStrSetHasControlBit (set, FCSS_GROW_BY_64) ? 64 : 1; - if (!_FcStrSetGrow(set, growElements)) - return FcFalse; + FcChar8 **strs = malloc ((set->size + 2) * sizeof (FcChar8 *)); + + if (!strs) + return FcFalse; + if (set->num) + memcpy (strs, set->strs, set->num * sizeof (FcChar8 *)); + if (set->strs) + free (set->strs); + set->size = set->size + 1; + set->strs = strs; } set->strs[set->num++] = s; set->strs[set->num] = 0; diff --git a/chromium/third_party/fontconfig/src/src/fcweight.c b/chromium/third_party/fontconfig/src/src/fcweight.c deleted file mode 100644 index 036a518e8c5..00000000000 --- a/chromium/third_party/fontconfig/src/src/fcweight.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * fontconfig/src/fcweight.c - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of the author(s) not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. The authors make no - * representations about the suitability of this software for any purpose. It - * is provided "as is" without express or implied warranty. - * - * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ - -#include "fcint.h" - -static const struct { - int ot; - int fc; -} map[] = { - { 0, FC_WEIGHT_THIN }, - { 100, FC_WEIGHT_THIN }, - { 200, FC_WEIGHT_EXTRALIGHT }, - { 350, FC_WEIGHT_DEMILIGHT }, - { 300, FC_WEIGHT_LIGHT }, - { 380, FC_WEIGHT_BOOK }, - { 400, FC_WEIGHT_REGULAR }, - { 500, FC_WEIGHT_MEDIUM }, - { 600, FC_WEIGHT_DEMIBOLD }, - { 700, FC_WEIGHT_BOLD }, - { 800, FC_WEIGHT_EXTRABOLD }, - { 900, FC_WEIGHT_BLACK }, - {1000, FC_WEIGHT_EXTRABLACK }, -}; - -static int lerp(int x, int x1, int x2, int y1, int y2) -{ - int dx = x2 - x1; - int dy = y2 - y1; - assert (dx > 0 && dy >= 0 && x1 <= x && x <= x2); - return y1 + (dy*(x-x1) + dx/2) / dx; -} - -int -FcWeightFromOpenType (int ot_weight) -{ - int i; - - /* Loosely based on WPF Font Selection Model's advice. */ - - if (ot_weight < 0) - return -1; - else if (1 <= ot_weight && ot_weight <= 9) - { - /* WPF Font Selection Model says do "ot_weight *= 100", - * but Greg Hitchcock revealed that GDI had a mapping - * reflected below: */ - switch (ot_weight) { - case 1: ot_weight = 80; break; - case 2: ot_weight = 160; break; - case 3: ot_weight = 240; break; - case 4: ot_weight = 320; break; - case 5: ot_weight = 400; break; - case 6: ot_weight = 550; break; - case 7: ot_weight = 700; break; - case 8: ot_weight = 800; break; - case 9: ot_weight = 900; break; - } - } - ot_weight = FC_MIN (ot_weight, map[(sizeof (map) / sizeof (map[0])) - 1].ot); - - for (i = 1; ot_weight > map[i].ot; i++) - ; - - if (ot_weight == map[i].ot) - return map[i].fc; - - /* Interpolate between two items. */ - return lerp (ot_weight, map[i-1].ot, map[i].ot, map[i-1].fc, map[i].fc); -} - -int -FcWeightToOpenType (int fc_weight) -{ - int i; - if (fc_weight < 0 || fc_weight > FC_WEIGHT_EXTRABLACK) - return -1; - - for (i = 1; fc_weight > map[i].fc; i++) - ; - - if (fc_weight == map[i].fc) - return map[i].ot; - - /* Interpolate between two items. */ - return lerp (fc_weight, map[i-1].fc, map[i].fc, map[i-1].ot, map[i].ot); -} - -#define __fcweight__ -#include "fcaliastail.h" -#undef __fcweight__ diff --git a/chromium/third_party/fontconfig/src/src/fcwindows.h b/chromium/third_party/fontconfig/src/src/fcwindows.h index a0eee675ee9..02489d9dc1b 100644 --- a/chromium/third_party/fontconfig/src/src/fcwindows.h +++ b/chromium/third_party/fontconfig/src/src/fcwindows.h @@ -32,13 +32,8 @@ #endif #ifdef _WIN32 - /* Request Windows Vista for building. This is required to - * get MemoryBarrier on mingw32... */ -# if defined(_WIN32_WINNT) && _WIN32_WINNT < 0x0600 -# undef _WIN32_WINNT -# endif # ifndef _WIN32_WINNT -# define _WIN32_WINNT 0x0600 +# define _WIN32_WINNT 0x0500 # endif # define WIN32_LEAN_AND_MEAN # define WIN32_EXTRA_LEAN diff --git a/chromium/third_party/fontconfig/src/src/fcxml.c b/chromium/third_party/fontconfig/src/src/fcxml.c index 031a7da1f0b..8ff10b6e63f 100644 --- a/chromium/third_party/fontconfig/src/src/fcxml.c +++ b/chromium/third_party/fontconfig/src/src/fcxml.c @@ -54,12 +54,8 @@ #ifdef _WIN32 #include <mbstring.h> -extern FcChar8 fontconfig_instprefix[]; #endif -static FcChar8 *__fc_userdir = NULL; -static FcChar8 *__fc_userconf = NULL; - static void FcExprDestroy (FcExpr *e); @@ -82,7 +78,6 @@ FcRuleDestroy (FcRule *rule) case FcRuleEdit: FcEditDestroy (rule->u.edit); break; - case FcRuleUnknown: default: break; } @@ -174,18 +169,6 @@ FcExprCreateMatrix (FcConfig *config, const FcExprMatrix *matrix) } static FcExpr * -FcExprCreateRange (FcConfig *config, FcRange *range) -{ - FcExpr *e = FcConfigAllocExpr (config); - if (e) - { - e->op = FcOpRange; - e->u.rval = FcRangeCopy (range); - } - return e; -} - -static FcExpr * FcExprCreateBool (FcConfig *config, FcBool b) { FcExpr *e = FcConfigAllocExpr (config); @@ -275,7 +258,6 @@ FcExprDestroy (FcExpr *e) FcExprMatrixFree (e->u.mexpr); break; case FcOpRange: - FcRangeDestroy (e->u.rval); break; case FcOpCharSet: FcCharSetDestroy (e->u.cval); @@ -521,7 +503,7 @@ typedef struct _FcVStack { int integer; double _double; FcExprMatrix *matrix; - FcRange *range; + FcRange range; FcBool bool_; FcCharSet *charset; FcLangSet *langset; @@ -611,9 +593,6 @@ FcTypeName (FcType type) return "FT_Face"; case FcTypeLangSet: return "langset"; - case FcTypeRange: - return "range"; - case FcTypeUnknown: default: return "unknown"; } @@ -629,15 +608,13 @@ FcTypecheckValue (FcConfigParse *parse, FcType value, FcType type) if (value != type) { if ((value == FcTypeLangSet && type == FcTypeString) || - (value == FcTypeString && type == FcTypeLangSet) || - (value == FcTypeInteger && type == FcTypeRange) || - (value == FcTypeDouble && type == FcTypeRange)) + (value == FcTypeString && type == FcTypeLangSet)) return; - if (type == FcTypeUnknown) + if (type == (FcType) -1) return; /* It's perfectly fine to use user-define elements in expressions, * so don't warn in that case. */ - if (value == FcTypeUnknown) + if (value == (FcType) -1) return; FcConfigMessage (parse, FcSevereWarning, "saw %s, expected %s", FcTypeName (value), FcTypeName (type)); @@ -674,9 +651,6 @@ FcTypecheckExpr (FcConfigParse *parse, FcExpr *expr, FcType type) case FcOpLangSet: FcTypecheckValue (parse, FcTypeLangSet, type); break; - case FcOpRange: - FcTypecheckValue (parse, FcTypeRange, type); - break; case FcOpNil: break; case FcOpField: @@ -811,7 +785,6 @@ FcRuleCreate (FcRuleType type, case FcRuleEdit: r->u.edit = (FcEdit *) p; break; - case FcRuleUnknown: default: free (r); r = NULL; @@ -892,10 +865,11 @@ FcVStackPushMatrix (FcConfigParse *parse, FcExprMatrix *matrix) static FcBool FcVStackPushRange (FcConfigParse *parse, FcRange *range) { - FcVStack *vstack = FcVStackCreateAndPush (parse); + FcVStack *vstack = FcVStackCreateAndPush (parse); if (!vstack) return FcFalse; - vstack->u.range = range; + vstack->u.range.begin = range->begin; + vstack->u.range.end = range->end; vstack->tag = FcVStackRange; return FcTrue; } @@ -1043,10 +1017,8 @@ FcVStackPopAndDestroy (FcConfigParse *parse) case FcVStackMatrix: FcExprMatrixFreeShallow (vstack->u.matrix); break; - case FcVStackBool: - break; case FcVStackRange: - FcRangeDestroy (vstack->u.range); + case FcVStackBool: break; case FcVStackCharSet: FcCharSetDestroy (vstack->u.charset); @@ -1260,11 +1232,7 @@ static void FcParseBlank (FcConfigParse *parse) { int n = FcVStackElements (parse); -#if 0 - FcChar32 i, begin, end; -#endif - - FcConfigMessage (parse, FcSevereWarning, "blank doesn't take any effect anymore. please remove it from your fonts.conf"); + FcChar32 i; while (n-- > 0) { FcVStack *v = FcVStackFetch (parse, n); @@ -1276,24 +1244,18 @@ FcParseBlank (FcConfigParse *parse) } switch ((int) v->tag) { case FcVStackInteger: -#if 0 if (!FcBlanksAdd (parse->config->blanks, v->u.integer)) goto bail; break; -#endif case FcVStackRange: -#if 0 - begin = (FcChar32) v->u.range->begin; - end = (FcChar32) v->u.range->end; - if (begin <= end) + if (v->u.range.begin <= v->u.range.end) { - for (i = begin; i <= end; i++) + for (i = v->u.range.begin; i <= v->u.range.end; i++) { if (!FcBlanksAdd (parse->config->blanks, i)) goto bail; } } -#endif break; default: FcConfigMessage (parse, FcSevereError, "invalid element in blank"); @@ -1352,11 +1314,7 @@ FcParseInt (FcConfigParse *parse) static double FcStrtod (char *s, char **end) { -#ifndef __BIONIC__ struct lconv *locale_data; -#endif - const char *decimal_point; - int dlen; char *dot; double v; @@ -1364,21 +1322,14 @@ FcStrtod (char *s, char **end) * Have to swap the decimal point to match the current locale * if that locale doesn't use 0x2e */ -#ifndef __BIONIC__ - locale_data = localeconv (); - decimal_point = locale_data->decimal_point; - dlen = strlen (decimal_point); -#else - decimal_point = "."; - dlen = 1; -#endif - if ((dot = strchr (s, 0x2e)) && - (decimal_point[0] != 0x2e || - decimal_point[1] != 0)) + (locale_data = localeconv ()) && + (locale_data->decimal_point[0] != 0x2e || + locale_data->decimal_point[1] != 0)) { char buf[128]; int slen = strlen (s); + int dlen = strlen (locale_data->decimal_point); if (slen + dlen > (int) sizeof (buf)) { @@ -1392,7 +1343,7 @@ FcStrtod (char *s, char **end) /* mantissa */ strncpy (buf, s, dot - s); /* decimal point */ - strcpy (buf + (dot - s), decimal_point); + strcpy (buf + (dot - s), locale_data->decimal_point); /* rest of number */ strcpy (buf + (dot - s) + dlen, dot + 1); buf_end = 0; @@ -1512,11 +1463,9 @@ static void FcParseRange (FcConfigParse *parse) { FcVStack *vstack; - FcRange *r; - FcChar32 n[2] = {0, 0}; + FcRange r = {0, 0}; + FcChar32 n; int count = 1; - double d[2] = {0.0L, 0.0L}; - FcBool dflag = FcFalse; while ((vstack = FcVStackPeek (parse))) { @@ -1527,52 +1476,31 @@ FcParseRange (FcConfigParse *parse) } switch ((int) vstack->tag) { case FcVStackInteger: - if (dflag) - d[count] = (double)vstack->u.integer; - else - n[count] = vstack->u.integer; - break; - case FcVStackDouble: - if (count == 0 && !dflag) - d[1] = (double)n[1]; - d[count] = vstack->u._double; - dflag = FcTrue; + n = vstack->u.integer; break; default: FcConfigMessage (parse, FcSevereError, "invalid element in range"); - if (dflag) - d[count] = 0.0L; - else - n[count] = 0; + n = 0; break; } + if (count == 1) + r.end = n; + else + r.begin = n; count--; FcVStackPopAndDestroy (parse); } - if (count >= 0) + if (count < 0) { - FcConfigMessage (parse, FcSevereError, "invalid range"); - return; - } - if (dflag) - { - if (d[0] > d[1]) + if (r.begin > r.end) { FcConfigMessage (parse, FcSevereError, "invalid range"); return; } - r = FcRangeCreateDouble (d[0], d[1]); + FcVStackPushRange (parse, &r); } else - { - if (n[0] > n[1]) - { - FcConfigMessage (parse, FcSevereError, "invalid range"); - return; - } - r = FcRangeCreateInteger (n[0], n[1]); - } - FcVStackPushRange (parse, r); + FcConfigMessage (parse, FcSevereError, "invalid range"); } static FcBool @@ -1608,7 +1536,7 @@ FcParseCharSet (FcConfigParse *parse) { FcVStack *vstack; FcCharSet *charset = FcCharSetCreate (); - FcChar32 i, begin, end; + FcChar32 i; int n = 0; while ((vstack = FcVStackPeek (parse))) @@ -1623,12 +1551,9 @@ FcParseCharSet (FcConfigParse *parse) n++; break; case FcVStackRange: - begin = (FcChar32) vstack->u.range->begin; - end = (FcChar32) vstack->u.range->end; - - if (begin <= end) + if (vstack->u.range.begin <= vstack->u.range.end) { - for (i = begin; i <= end; i++) + for (i = vstack->u.range.begin; i <= vstack->u.range.end; i++) { if (!FcCharSetAddChar (charset, i)) { @@ -1963,7 +1888,6 @@ FcPopExpr (FcConfigParse *parse) expr = FcExprCreateMatrix (parse->config, vstack->u.matrix); break; case FcVStackRange: - expr = FcExprCreateRange (parse->config, vstack->u.range); break; case FcVStackBool: expr = FcExprCreateBool (parse->config, vstack->u.bool_); @@ -2072,14 +1996,7 @@ FcParseDir (FcConfigParse *parse) attr = FcConfigGetAttribute (parse, "prefix"); if (attr && FcStrCmp (attr, (const FcChar8 *)"xdg") == 0) - { prefix = FcConfigXdgDataHome (); - /* home directory might be disabled. - * simply ignore this element. - */ - if (!prefix) - goto bail; - } data = FcStrBufDoneStatic (&parse->pstack->str); if (!data) { @@ -2170,18 +2087,11 @@ static void FcParseCacheDir (FcConfigParse *parse) { const FcChar8 *attr; - FcChar8 *prefix = NULL, *p, *data = NULL; + FcChar8 *prefix = NULL, *p, *data; attr = FcConfigGetAttribute (parse, "prefix"); if (attr && FcStrCmp (attr, (const FcChar8 *)"xdg") == 0) - { prefix = FcConfigXdgCacheHome (); - /* home directory might be disabled. - * simply ignore this element. - */ - if (!prefix) - goto bail; - } data = FcStrBufDone (&parse->pstack->str); if (!data) { @@ -2208,25 +2118,7 @@ FcParseCacheDir (FcConfigParse *parse) data = prefix; } #ifdef _WIN32 - else if (data[0] == '/' && fontconfig_instprefix[0] != '\0') - { - size_t plen = strlen ((const char *)fontconfig_instprefix); - size_t dlen = strlen ((const char *)data); - - prefix = malloc (plen + 1 + dlen + 1); - if (!prefix) - { - FcConfigMessage (parse, FcSevereError, "out of memory"); - goto bail; - } - strcpy ((char *) prefix, (char *) fontconfig_instprefix); - prefix[plen] = FC_DIR_SEPARATOR; - memcpy (&prefix[plen + 1], data, dlen); - prefix[plen + 1 + dlen] = 0; - FcStrFree (data); - data = prefix; - } - else if (strcmp ((const char *) data, "WINDOWSTEMPDIR_FONTCONFIG_CACHE") == 0) + if (strcmp ((const char *) data, "WINDOWSTEMPDIR_FONTCONFIG_CACHE") == 0) { int rc; FcStrFree (data); @@ -2282,35 +2174,16 @@ FcParseCacheDir (FcConfigParse *parse) FcStrFree (data); } -void -FcConfigPathFini (void) -{ - FcChar8 *s; - -retry_dir: - s = fc_atomic_ptr_get (&__fc_userdir); - if (!fc_atomic_ptr_cmpexch (&__fc_userdir, s, NULL)) - goto retry_dir; - free (s); - -retry_conf: - s = fc_atomic_ptr_get (&__fc_userconf); - if (!fc_atomic_ptr_cmpexch (&__fc_userconf, s, NULL)) - goto retry_conf; - free (s); -} - static void FcParseInclude (FcConfigParse *parse) { FcChar8 *s; const FcChar8 *attr; FcBool ignore_missing = FcFalse; -#ifndef _WIN32 FcBool deprecated = FcFalse; -#endif FcChar8 *prefix = NULL, *p; - FcChar8 *userdir = NULL, *userconf = NULL; + static FcChar8 *userdir = NULL; + static FcChar8 *userconf = NULL; s = FcStrBufDoneStatic (&parse->pstack->str); if (!s) @@ -2322,25 +2195,15 @@ FcParseInclude (FcConfigParse *parse) if (attr && FcConfigLexBool (parse, (FcChar8 *) attr) == FcTrue) ignore_missing = FcTrue; attr = FcConfigGetAttribute (parse, "deprecated"); -#ifndef _WIN32 if (attr && FcConfigLexBool (parse, (FcChar8 *) attr) == FcTrue) deprecated = FcTrue; -#endif attr = FcConfigGetAttribute (parse, "prefix"); if (attr && FcStrCmp (attr, (const FcChar8 *)"xdg") == 0) - { prefix = FcConfigXdgConfigHome (); - /* home directory might be disabled. - * simply ignore this element. - */ - if (!prefix) - goto bail; - } if (prefix) { size_t plen = strlen ((const char *)prefix); size_t dlen = strlen ((const char *)s); - FcChar8 *u; p = realloc (prefix, plen + 1 + dlen + 1); if (!p) @@ -2356,32 +2219,14 @@ FcParseInclude (FcConfigParse *parse) if (FcFileIsDir (s)) { userdir: - userdir = fc_atomic_ptr_get (&__fc_userdir); if (!userdir) - { - u = FcStrdup (s); - if (!fc_atomic_ptr_cmpexch (&__fc_userdir, userdir, u)) - { - free (u); - goto userdir; - } - userdir = u; - } + userdir = FcStrdup (s); } else if (FcFileIsFile (s)) { userconf: - userconf = fc_atomic_ptr_get (&__fc_userconf); if (!userconf) - { - u = FcStrdup (s); - if (!fc_atomic_ptr_cmpexch (&__fc_userconf, userconf, u)) - { - free (u); - goto userconf; - } - userconf = u; - } + userconf = FcStrdup (s); } else { @@ -2405,7 +2250,6 @@ FcParseInclude (FcConfigParse *parse) filename = FcConfigFilename(s); if (deprecated == FcTrue && filename != NULL && - userdir != NULL && !FcFileIsLink (filename)) { if (FcFileIsDir (filename)) @@ -2722,11 +2566,6 @@ FcParseMatch (FcConfigParse *parse) } FcVStackPopAndDestroy (parse); } - if (!rule) - { - FcConfigMessage (parse, FcSevereWarning, "No <test> nor <edit> elements in <match>"); - return; - } if (!FcConfigAddRule (parse->config, rule, kind)) FcConfigMessage (parse, FcSevereError, "out of memory"); } @@ -2809,11 +2648,6 @@ FcPopValue (FcConfigParse *parse) if (value.u.l) value.type = FcTypeLangSet; break; - case FcVStackRange: - value.u.r = FcRangeCopy (vstack->u.range); - if (value.u.r) - value.type = FcTypeRange; - break; default: FcConfigMessage (parse, FcSevereWarning, "unknown pattern element %d", vstack->tag); @@ -3169,7 +3003,7 @@ FcConfigParseAndLoadDir (FcConfig *config, strcat ((char *) file, "/"); base = file + strlen ((char *) file); - files = FcStrSetCreateEx (FCSS_GROW_BY_64); + files = FcStrSetCreate (); if (!files) { ret = FcFalse; @@ -3230,12 +3064,11 @@ FcConfigParseAndLoad (FcConfig *config, { XML_Parser p; - FcChar8 *filename, *f; + FcChar8 *filename; int fd; int len; FcConfigParse parse; FcBool error = FcTrue; - const FcChar8 *sysroot = FcConfigGetSysRoot (config); #ifdef ENABLE_LIBXML2 xmlSAXHandler sax; @@ -3260,14 +3093,9 @@ FcConfigParseAndLoad (FcConfig *config, } #endif - f = FcConfigFilename (name); - if (!f) + filename = FcConfigFilename (name); + if (!filename) goto bail0; - if (sysroot) - filename = FcStrBuildFilename (sysroot, f, NULL); - else - filename = FcStrdup (f); - FcStrFree (f); if (FcStrSetMember (config->configFiles, filename)) { |