fontconfig-2.11.1/0000775000076400007640000000000012313745412010745 500000000000000fontconfig-2.11.1/AUTHORS0000664000076400007640000000007611720341276011741 00000000000000Keith Packard Patrick Lam fontconfig-2.11.1/conf.d/0000775000076400007640000000000012313745412012114 500000000000000fontconfig-2.11.1/conf.d/10-sub-pixel-vrgb.conf0000664000076400007640000000075212267155333016000 00000000000000 vrgb fontconfig-2.11.1/conf.d/70-yes-bitmaps.conf0000664000076400007640000000040712267155333015372 00000000000000 false fontconfig-2.11.1/conf.d/README.in0000664000076400007640000000167712267155333013341 00000000000000conf.d/README Each file in this directory is a fontconfig configuration file. Fontconfig scans this directory, loading all files of the form [0-9][0-9]*.conf. These files are normally installed in @TEMPLATEDIR@ and then symlinked here, allowing them to be easily installed and then enabled/disabled by adjusting the symlinks. The files are loaded in numeric order, the structure of the configuration has led to the following conventions in usage: Files begining with: Contain: 00 through 09 Font directories 10 through 19 system rendering defaults (AA, etc) 20 through 29 font rendering options 30 through 39 family substitution 40 through 49 generic identification, map family->generic 50 through 59 alternate config file loading 60 through 69 generic aliases, map generic->family 70 through 79 select font (adjust which fonts are available) 80 through 89 match target="scan" (modify scanned patterns) 90 through 99 font synthesis fontconfig-2.11.1/conf.d/25-unhint-nonlatin.conf0000664000076400007640000000627012267155333016266 00000000000000 Kochi Mincho false Kochi Gothic false Sazanami Mincho false Sazanami Gothic false Baekmuk Batang false Baekmuk Dotum false Baekmuk Gulim false Baekmuk Headline false AR PL Mingti2L Big5 false AR PL ShanHeiSun Uni false AR PL KaitiM Big5 false AR PL ZenKai Uni false AR PL SungtiL GB false AR PL KaitiM GB false ZYSong18030 false fontconfig-2.11.1/conf.d/Makefile.am0000664000076400007640000000575112267155333014105 00000000000000# # fontconfig/conf.d/Makefile.am # # Copyright © 2005 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. BUILT_SOURCES = README DOC_SOURCES = README.in DOC_FILES = $(DOC_SOURCES:.in=) CONF_LINKS = \ 10-scale-bitmap-fonts.conf \ 20-unhint-small-vera.conf \ 30-urw-aliases.conf \ 30-metric-aliases.conf \ 40-nonlatin.conf \ 45-latin.conf \ 49-sansserif.conf \ 50-user.conf \ 51-local.conf \ 60-latin.conf \ 65-fonts-persian.conf \ 65-nonlatin.conf \ 69-unifont.conf \ 80-delicious.conf \ 90-synthetic.conf EXTRA_DIST = $(template_DATA) $(DOC_SOURCES) CLEANFILES = $(DOC_FILES) configdir = $(CONFIGDIR) config_DATA = $(DOC_FILES) templatedir = $(TEMPLATEDIR) template_DATA = \ 10-autohint.conf \ 10-no-sub-pixel.conf \ 10-scale-bitmap-fonts.conf \ 10-sub-pixel-bgr.conf \ 10-sub-pixel-rgb.conf \ 10-sub-pixel-vbgr.conf \ 10-sub-pixel-vrgb.conf \ 10-unhinted.conf \ 11-lcdfilter-default.conf \ 11-lcdfilter-legacy.conf \ 11-lcdfilter-light.conf \ 20-unhint-small-vera.conf \ 25-unhint-nonlatin.conf \ 30-urw-aliases.conf \ 30-metric-aliases.conf \ 40-nonlatin.conf \ 45-latin.conf \ 49-sansserif.conf \ 50-user.conf \ 51-local.conf \ 60-latin.conf \ 65-fonts-persian.conf \ 65-khmer.conf \ 65-nonlatin.conf \ 69-unifont.conf \ 70-no-bitmaps.conf \ 70-yes-bitmaps.conf \ 80-delicious.conf \ 90-synthetic.conf README: $(srcdir)/README.in sed "s|\@TEMPLATEDIR\@|$(templatedir)|" $< > $@ install-data-hook: mkdir -p $(DESTDIR)$(configdir) @(echo cd $(DESTDIR)$(configdir); \ cd $(DESTDIR)$(configdir); \ for i in $(CONF_LINKS); do \ echo $(RM) $$i";" ln -s $(templatedir)/$$i .; \ $(RM) $$i; \ ln -s $(templatedir)/$$i .; \ done) uninstall-local: @(echo cd $(DESTDIR)$(configdir); \ cd $(DESTDIR)$(configdir); \ for i in $(CONF_LINKS); do \ echo $(RM) $$i; \ $(RM) $$i; \ done) -include $(top_srcdir)/git.mk fontconfig-2.11.1/conf.d/80-delicious.conf0000664000076400007640000000064612267155333015123 00000000000000 Delicious Heavy heavy fontconfig-2.11.1/conf.d/30-metric-aliases.conf0000664000076400007640000002632712311730632016033 00000000000000 Nimbus Sans L Helvetica TeX Gyre Heros Helvetica TeX Gyre Heros Cn Helvetica Condensed Nimbus Roman No9 L Times Nimbus Mono L Courier TeX Gyre Cursor Courier Avant Garde ITC Avant Garde Gothic URW Gothic L ITC Avant Garde Gothic TeX Gyre Adventor ITC Avant Garde Gothic Bookman ITC Bookman URW Bookman L ITC Bookman TeX Gyre Bonum ITC Bookman Bookman Old Style ITC Bookman Zapf Chancery ITC Zapf Chancery URW Chancery L ITC Zapf Chancery TeX Gyre Chorus ITC Zapf Chancery URW Palladio L Palatino TeX Gyre Pagella Palatino Palatino Linotype Palatino Century Schoolbook L New Century Schoolbook TeX Gyre Schola New Century Schoolbook Century Schoolbook New Century Schoolbook Arimo Arial Liberation Sans Arial Liberation Sans Narrow Arial Narrow Albany Arial Albany AMT Arial Tinos Times New Roman Liberation Serif Times New Roman Thorndale Times New Roman Thorndale AMT Times New Roman Cousine Courier New Liberation Mono Courier New Cumberland Courier New Cumberland AMT Courier New Gelasio Georgia Caladea Cambria Carlito Calibri SymbolNeu Symbol Helvetica Arial Helvetica Condensed Arial Narrow Times Times New Roman Courier Courier New Arial Helvetica Arial Narrow Helvetica Condensed Times New Roman Times Courier New Courier Helvetica TeX Gyre Heros Nimbus Sans L Helvetica Condensed TeX Gyre Heros Cn Times Nimbus Roman No9 L Courier TeX Gyre Cursor Nimbus Mono L ITC Avant Garde Gothic TeX Gyre Adventor URW Gothic L ITC Bookman Bookman Old Style TeX Gyre Bonum URW Bookman L ITC Zapf Chancery TeX Gyre Chorus URW Chancery L Palatino Palatino Linotype TeX Gyre Pagella URW Palladio L New Century Schoolbook Century Schoolbook TeX Gyre Schola Century Schoolbook L Arial Arimo Liberation Sans Albany Albany AMT Arial Narrow Liberation Sans Narrow Times New Roman Tinos Liberation Serif Thorndale Thorndale AMT Courier New Cousine Liberation Mono Cumberland Cumberland AMT Georgia Gelasio Cambria Caladea Calibri Carlito Symbol SymbolNeu fontconfig-2.11.1/conf.d/49-sansserif.conf0000664000076400007640000000104111720341276015127 00000000000000 sans-serif serif monospace sans-serif fontconfig-2.11.1/conf.d/10-sub-pixel-bgr.conf0000664000076400007640000000075112267155333015611 00000000000000 bgr fontconfig-2.11.1/conf.d/11-lcdfilter-legacy.conf0000664000076400007640000000101412267155333016335 00000000000000 lcdlegacy fontconfig-2.11.1/conf.d/10-scale-bitmap-fonts.conf0000664000076400007640000000364012267155333016621 00000000000000 false pixelsize pixelsize false pixelsizefixupfactor 1.2 pixelsizefixupfactor 0.8 false 64 true true 1.0 false 1.0 matrix pixelsizefixupfactor 0 0 pixelsizefixupfactor size pixelsizefixupfactor fontconfig-2.11.1/conf.d/65-fonts-persian.conf0000664000076400007640000002360612267155333015737 00000000000000 Nesf Nesf2 Nesf2 Persian_sansserif_default Nazanin Nazli Lotus Lotoos Yaqut Yaghoot Yaghut Yaghoot Traffic Terafik Ferdowsi Ferdosi Fantezy Fantezi Jadid Persian_title Titr Persian_title Kamran Persian_fantasy Homa Homa Persian_fantasy Kamran Fantezi Persian_fantasy Tabassom Persian_fantasy Arshia Persian_square Nasim Persian_square Elham Persian_square Farnaz Farnaz Persian_square Elham Sina Persian_square Persian_title Titr Jadid Persian_serif Persian_fantasy Homa Kamran Fantezi Tabassom Persian_square Persian_square Arshia Elham Farnaz Nasim Sina Persian_serif Elham farsiweb Homa farsiweb Koodak farsiweb Nazli farsiweb Roya farsiweb Terafik farsiweb Titr farsiweb TURNED-OFF farsiweb roman roman matrix 1-0.2 01 oblique farsiweb false false false serif Nazli Lotoos Mitra Ferdosi Badr Zar sans-serif Roya Koodak Terafik monospace Terafik fantasy Homa Kamran Fantezi Tabassom cursive IranNastaliq Nafees Nastaleeq serif 200 24 Titr sans-serif 200 24 Titr Persian_sansserif_default 200 24 Titr Persian_sansserif_default Roya fontconfig-2.11.1/conf.d/10-sub-pixel-vbgr.conf0000664000076400007640000000075212267155333016000 00000000000000 vbgr fontconfig-2.11.1/conf.d/10-unhinted.conf0000664000076400007640000000074112267155333014746 00000000000000 false fontconfig-2.11.1/conf.d/11-lcdfilter-light.conf0000664000076400007640000000101212267155333016176 00000000000000 lcdlight fontconfig-2.11.1/conf.d/40-nonlatin.conf0000664000076400007640000001207612267155333014761 00000000000000 Nazli serif Lotoos serif Mitra serif Ferdosi serif Badr serif Zar serif Titr serif Jadid serif Kochi Mincho serif AR PL SungtiL GB serif AR PL Mingti2L Big5 serif MS 明朝 serif NanumMyeongjo serif UnBatang serif Baekmuk Batang serif MgOpen Canonica serif Sazanami Mincho serif AR PL ZenKai Uni serif ZYSong18030 serif FreeSerif serif SimSun serif Arshia sans-serif Elham sans-serif Farnaz sans-serif Nasim sans-serif Sina sans-serif Roya sans-serif Koodak sans-serif Terafik sans-serif Kochi Gothic sans-serif AR PL KaitiM GB sans-serif AR PL KaitiM Big5 sans-serif MS ゴシック sans-serif NanumGothic sans-serif UnDotum sans-serif Baekmuk Dotum sans-serif MgOpen Modata sans-serif Sazanami Gothic sans-serif AR PL ShanHeiSun Uni sans-serif ZYSong18030 sans-serif FreeSans sans-serif NSimSun monospace ZYSong18030 monospace NanumGothicCoding monospace FreeMono monospace Homa fantasy Kamran fantasy Fantezi fantasy Tabassom fantasy IranNastaliq cursive Nafees Nastaleeq cursive fontconfig-2.11.1/conf.d/20-unhint-small-vera.conf0000664000076400007640000000235312267155333016500 00000000000000 Bitstream Vera Sans 7.5 false Bitstream Vera Serif 7.5 false Bitstream Vera Sans Mono 7.5 false fontconfig-2.11.1/conf.d/60-latin.conf0000664000076400007640000000324512267155333014246 00000000000000 serif Bitstream Vera Serif DejaVu Serif Times New Roman Thorndale AMT Luxi Serif Nimbus Roman No9 L Times sans-serif Bitstream Vera Sans DejaVu Sans Verdana Arial Albany AMT Luxi Sans Nimbus Sans L Helvetica Lucida Sans Unicode BPG Glaho International Tahoma monospace Bitstream Vera Sans Mono DejaVu Sans Mono Inconsolata Andale Mono Courier New Cumberland AMT Luxi Mono Nimbus Mono L Courier fantasy Impact Copperplate Gothic Std Cooper Std Bauhaus Std cursive ITC Zapf Chancery Std Zapfino Comic Sans MS fontconfig-2.11.1/conf.d/11-lcdfilter-default.conf0000664000076400007640000000101612267155333016517 00000000000000 lcddefault fontconfig-2.11.1/conf.d/10-sub-pixel-rgb.conf0000664000076400007640000000075112267155333015611 00000000000000 rgb fontconfig-2.11.1/conf.d/30-urw-aliases.conf0000664000076400007640000000127512267155333015371 00000000000000 Zapf Dingbats Dingbats ITC Zapf Dingbats Dingbats Symbol Standard Symbols L fontconfig-2.11.1/conf.d/README0000664000076400007640000000172212306310021012700 00000000000000conf.d/README Each file in this directory is a fontconfig configuration file. Fontconfig scans this directory, loading all files of the form [0-9][0-9]*.conf. These files are normally installed in /usr/share/fontconfig/conf.avail and then symlinked here, allowing them to be easily installed and then enabled/disabled by adjusting the symlinks. The files are loaded in numeric order, the structure of the configuration has led to the following conventions in usage: Files begining with: Contain: 00 through 09 Font directories 10 through 19 system rendering defaults (AA, etc) 20 through 29 font rendering options 30 through 39 family substitution 40 through 49 generic identification, map family->generic 50 through 59 alternate config file loading 60 through 69 generic aliases, map generic->family 70 through 79 select font (adjust which fonts are available) 80 through 89 match target="scan" (modify scanned patterns) 90 through 99 font synthesis fontconfig-2.11.1/conf.d/65-khmer.conf0000664000076400007640000000044112267155333014245 00000000000000 serif Khmer OS" sans-serif Khmer OS" fontconfig-2.11.1/conf.d/10-no-sub-pixel.conf0000664000076400007640000000075312267155333015455 00000000000000 none fontconfig-2.11.1/conf.d/50-user.conf0000664000076400007640000000124112267155333014106 00000000000000 fontconfig/conf.d fontconfig/fonts.conf ~/.fonts.conf.d ~/.fonts.conf fontconfig-2.11.1/conf.d/90-synthetic.conf0000664000076400007640000000323312267155333015151 00000000000000 roman roman matrix 10.2 01 oblique false medium medium true bold fontconfig-2.11.1/conf.d/Makefile.in0000664000076400007640000004640012313745337014113 00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # fontconfig/conf.d/Makefile.am # # Copyright © 2005 Keith Packard # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The authors make no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = conf.d DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(configdir)" "$(DESTDIR)$(templatedir)" DATA = $(config_DATA) $(template_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASECONFIGDIR = @BASECONFIGDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CONFIGDIR = @CONFIGDIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DOCMAN3 = @DOCMAN3@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@ EXPAT_CFLAGS = @EXPAT_CFLAGS@ EXPAT_LIBS = @EXPAT_LIBS@ FC_ADD_FONTS = @FC_ADD_FONTS@ FC_CACHEDIR = @FC_CACHEDIR@ FC_DEFAULT_FONTS = @FC_DEFAULT_FONTS@ FC_FONTDATE = @FC_FONTDATE@ FC_FONTPATH = @FC_FONTPATH@ FGREP = @FGREP@ FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ FREETYPE_LIBS = @FREETYPE_LIBS@ GIT = @GIT@ GPERF = @GPERF@ GREP = @GREP@ HASDOCBOOK = @HASDOCBOOK@ HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@ ICONV_CFLAGS = @ICONV_CFLAGS@ ICONV_LIBS = @ICONV_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBT_CURRENT = @LIBT_CURRENT@ LIBT_CURRENT_MINUS_AGE = @LIBT_CURRENT_MINUS_AGE@ LIBT_REVISION = @LIBT_REVISION@ LIBT_VERSION_INFO = @LIBT_VERSION_INFO@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ RM = @RM@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TEMPLATEDIR = @TEMPLATEDIR@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XMLDIR = @XMLDIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ ax_pthread_config = @ax_pthread_config@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fc_cachedir = @fc_cachedir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ ms_librarian = @ms_librarian@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfigdir = @pkgconfigdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ BUILT_SOURCES = README DOC_SOURCES = README.in DOC_FILES = $(DOC_SOURCES:.in=) CONF_LINKS = \ 10-scale-bitmap-fonts.conf \ 20-unhint-small-vera.conf \ 30-urw-aliases.conf \ 30-metric-aliases.conf \ 40-nonlatin.conf \ 45-latin.conf \ 49-sansserif.conf \ 50-user.conf \ 51-local.conf \ 60-latin.conf \ 65-fonts-persian.conf \ 65-nonlatin.conf \ 69-unifont.conf \ 80-delicious.conf \ 90-synthetic.conf EXTRA_DIST = $(template_DATA) $(DOC_SOURCES) CLEANFILES = $(DOC_FILES) configdir = $(CONFIGDIR) config_DATA = $(DOC_FILES) templatedir = $(TEMPLATEDIR) template_DATA = \ 10-autohint.conf \ 10-no-sub-pixel.conf \ 10-scale-bitmap-fonts.conf \ 10-sub-pixel-bgr.conf \ 10-sub-pixel-rgb.conf \ 10-sub-pixel-vbgr.conf \ 10-sub-pixel-vrgb.conf \ 10-unhinted.conf \ 11-lcdfilter-default.conf \ 11-lcdfilter-legacy.conf \ 11-lcdfilter-light.conf \ 20-unhint-small-vera.conf \ 25-unhint-nonlatin.conf \ 30-urw-aliases.conf \ 30-metric-aliases.conf \ 40-nonlatin.conf \ 45-latin.conf \ 49-sansserif.conf \ 50-user.conf \ 51-local.conf \ 60-latin.conf \ 65-fonts-persian.conf \ 65-khmer.conf \ 65-nonlatin.conf \ 69-unifont.conf \ 70-no-bitmaps.conf \ 70-yes-bitmaps.conf \ 80-delicious.conf \ 90-synthetic.conf all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu conf.d/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu conf.d/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-configDATA: $(config_DATA) @$(NORMAL_INSTALL) @list='$(config_DATA)'; test -n "$(configdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(configdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(configdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(configdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(configdir)" || exit $$?; \ done uninstall-configDATA: @$(NORMAL_UNINSTALL) @list='$(config_DATA)'; test -n "$(configdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(configdir)'; $(am__uninstall_files_from_dir) install-templateDATA: $(template_DATA) @$(NORMAL_INSTALL) @list='$(template_DATA)'; test -n "$(templatedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(templatedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(templatedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(templatedir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(templatedir)" || exit $$?; \ done uninstall-templateDATA: @$(NORMAL_UNINSTALL) @list='$(template_DATA)'; test -n "$(templatedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(templatedir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(configdir)" "$(DESTDIR)$(templatedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-configDATA install-templateDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-configDATA uninstall-local \ uninstall-templateDATA .MAKE: all check install install-am install-data-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-configDATA install-data \ install-data-am install-data-hook install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ install-templateDATA installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am uninstall-configDATA \ uninstall-local uninstall-templateDATA README: $(srcdir)/README.in sed "s|\@TEMPLATEDIR\@|$(templatedir)|" $< > $@ install-data-hook: mkdir -p $(DESTDIR)$(configdir) @(echo cd $(DESTDIR)$(configdir); \ cd $(DESTDIR)$(configdir); \ for i in $(CONF_LINKS); do \ echo $(RM) $$i";" ln -s $(templatedir)/$$i .; \ $(RM) $$i; \ ln -s $(templatedir)/$$i .; \ done) uninstall-local: @(echo cd $(DESTDIR)$(configdir); \ cd $(DESTDIR)$(configdir); \ for i in $(CONF_LINKS); do \ echo $(RM) $$i; \ $(RM) $$i; \ done) -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fontconfig-2.11.1/conf.d/51-local.conf0000664000076400007640000000027512267155333014231 00000000000000 local.conf fontconfig-2.11.1/conf.d/10-autohint.conf0000664000076400007640000000074412267155333014766 00000000000000 true fontconfig-2.11.1/conf.d/69-unifont.conf0000664000076400007640000000124012267155333014623 00000000000000 serif FreeSerif Code2000 Code2001 sans-serif FreeSans Arial Unicode MS Arial Unicode Code2000 Code2001 monospace FreeMono fontconfig-2.11.1/conf.d/70-no-bitmaps.conf0000664000076400007640000000040712267155333015206 00000000000000 false fontconfig-2.11.1/conf.d/45-latin.conf0000664000076400007640000001034412267155333014247 00000000000000 Bitstream Vera Serif serif DejaVu Serif serif Liberation Serif serif Times New Roman serif Times serif Nimbus Roman No9 L serif Luxi Serif serif Thorndale AMT serif Thorndale serif Georgia serif Garamond serif Palatino Linotype serif Trebuchet MS serif Bitstream Vera Sans sans-serif DejaVu Sans sans-serif Liberation Sans sans-serif Arial sans-serif Helvetica sans-serif Verdana sans-serif Albany AMT sans-serif Albany sans-serif Nimbus Sans L sans-serif Luxi Sans sans-serif Bitstream Vera Sans Mono monospace DejaVu Sans Mono monospace Liberation Mono monospace Inconsolata monospace Courier New monospace Courier monospace Andale Mono monospace Luxi Mono monospace Cumberland AMT monospace Cumberland monospace Nimbus Mono L monospace Impact fantasy Copperplate Gothic Std fantasy Cooper Std fantasy Bauhaus Std fantasy ITC Zapf Chancery Std cursive Zapfino cursive Comic Sans MS cursive fontconfig-2.11.1/conf.d/65-nonlatin.conf0000664000076400007640000001742712267155333014775 00000000000000 serif Artsounk BPG UTF8 M Kinnari Norasi Frank Ruehl Dror JG LaoTimes Saysettha Unicode Pigiarniq B Davat B Compset Kacst-Qr Urdu Nastaliq Unicode Raghindi Mukti Narrow malayalam Sampige padmaa Hapax Berbère MS Mincho SimSun PMingLiu WenQuanYi Zen Hei WenQuanYi Bitmap Song AR PL ShanHeiSun Uni AR PL New Sung ZYSong18030 HanyiSong MgOpen Canonica Sazanami Mincho IPAMonaMincho IPAMincho Kochi Mincho AR PL SungtiL GB AR PL Mingti2L Big5 AR PL Zenkai Uni MS 明朝 ZYSong18030 NanumMyeongjo UnBatang Baekmuk Batang KacstQura Frank Ruehl CLM Lohit Bengali Lohit Gujarati Lohit Hindi Lohit Marathi Lohit Maithili Lohit Kashmiri Lohit Konkani Lohit Nepali Lohit Sindhi Lohit Punjabi Lohit Tamil Meera Lohit Malayalam Lohit Kannada Lohit Telugu Lohit Oriya LKLUG sans-serif Nachlieli Lucida Sans Unicode Yudit Unicode Kerkis ArmNet Helvetica Artsounk BPG UTF8 M Waree Loma Garuda Umpush Saysettha Unicode JG Lao Old Arial GF Zemen Unicode Pigiarniq B Davat B Compset Kacst-Qr Urdu Nastaliq Unicode Raghindi Mukti Narrow malayalam Sampige padmaa Hapax Berbère MS Gothic UmePlus P Gothic SimSun PMingLiu WenQuanYi Zen Hei WenQuanYi Bitmap Song AR PL ShanHeiSun Uni AR PL New Sung MgOpen Modata VL Gothic IPAMonaGothic IPAGothic Sazanami Gothic Kochi Gothic AR PL KaitiM GB AR PL KaitiM Big5 AR PL ShanHeiSun Uni AR PL SungtiL GB AR PL Mingti2L Big5 MS ゴシック ZYSong18030 TSCu_Paranar NanumGothic UnDotum Baekmuk Dotum Baekmuk Gulim KacstQura Lohit Bengali Lohit Gujarati Lohit Hindi Lohit Marathi Lohit Maithili Lohit Kashmiri Lohit Konkani Lohit Nepali Lohit Sindhi Lohit Punjabi Lohit Tamil Meera Lohit Malayalam Lohit Kannada Lohit Telugu Lohit Oriya LKLUG monospace Miriam Mono VL Gothic IPAMonaGothic IPAGothic Sazanami Gothic Kochi Gothic AR PL KaitiM GB MS Gothic UmePlus Gothic NSimSun MingLiu AR PL ShanHeiSun Uni AR PL New Sung Mono HanyiSong AR PL SungtiL GB AR PL Mingti2L Big5 ZYSong18030 NanumGothicCoding NanumGothic UnDotum Baekmuk Dotum Baekmuk Gulim TlwgTypo TlwgTypist TlwgTypewriter TlwgMono Hasida Mitra Mono GF Zemen Unicode Hapax Berbère Lohit Bengali Lohit Gujarati Lohit Hindi Lohit Marathi Lohit Maithili Lohit Kashmiri Lohit Konkani Lohit Nepali Lohit Sindhi Lohit Punjabi Lohit Tamil Meera Lohit Malayalam Lohit Kannada Lohit Telugu Lohit Oriya LKLUG fontconfig-2.11.1/fonts.conf.in0000664000076400007640000001254412267155334013306 00000000000000 @FC_DEFAULT_FONTS@ @FC_FONTPATH@ fonts ~/.fonts mono monospace sans serif sans-serif sans sans-serif @CONFIGDIR@ @FC_CACHEDIR@ fontconfig ~/.fontconfig 0x0020 0x00A0 0x00AD 0x034F 0x0600 0x0601 0x0602 0x0603 0x06DD 0x070F 0x115F 0x1160 0x1680 0x17B4 0x17B5 0x180E 0x2000 0x2001 0x2002 0x2003 0x2004 0x2005 0x2006 0x2007 0x2008 0x2009 0x200A 0x200B 0x200C 0x200D 0x200E 0x200F 0x2028 0x2029 0x202A 0x202B 0x202C 0x202D 0x202E 0x202F 0x205F 0x2060 0x2061 0x2062 0x2063 0x206A 0x206B 0x206C 0x206D 0x206E 0x206F 0x2800 0x3000 0x3164 0xFEFF 0xFFA0 0xFFF9 0xFFFA 0xFFFB 30 fontconfig-2.11.1/configure0000775000076400007640000206143512313745340012607 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for fontconfig 2.11.1. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig $0: about your system, including any error possibly output $0: before this message. Then install a modern shell, or $0: manually run the script under such a shell if you do $0: have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" SHELL=${CONFIG_SHELL-/bin/sh} test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='fontconfig' PACKAGE_TARNAME='fontconfig' PACKAGE_VERSION='2.11.1' PACKAGE_STRING='fontconfig 2.11.1' PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig' PACKAGE_URL='' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_header_list= ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS PKGCONFIG_REQUIRES_PRIVATELY PKGCONFIG_REQUIRES DOCMAN3 ENABLE_DOCS_FALSE ENABLE_DOCS_TRUE USEDOCBOOK_FALSE USEDOCBOOK_TRUE HASDOCBOOK HAVE_PTHREAD_FALSE HAVE_PTHREAD_TRUE PTHREAD_CFLAGS PTHREAD_LIBS PTHREAD_CC ax_pthread_config XMLDIR CONFIGDIR BASECONFIGDIR TEMPLATEDIR FC_FONTDATE FC_CACHEDIR fc_cachedir FC_FONTPATH FC_ADD_FONTS FC_DEFAULT_FONTS LIBXML2_LIBS LIBXML2_CFLAGS HAVE_XMLPARSE_H EXPAT_LIBS EXPAT_CFLAGS FREETYPE_LIBS FREETYPE_CFLAGS ICONV_LIBS ICONV_CFLAGS ENABLE_SHARED_FALSE ENABLE_SHARED_TRUE CROSS_COMPILING_FALSE CROSS_COMPILING_TRUE EXEEXT_FOR_BUILD CC_FOR_BUILD WARN_CFLAGS MS_LIB_AVAILABLE_FALSE MS_LIB_AVAILABLE_TRUE ms_librarian OS_WIN32_FALSE OS_WIN32_TRUE LIBT_CURRENT_MINUS_AGE LIBT_VERSION_INFO LIBT_REVISION LIBT_CURRENT OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL RANLIB ac_ct_AR AR NM ac_ct_DUMPBIN DUMPBIN LD FGREP SED host_os host_vendor host_cpu host build_os build_vendor build_cpu build LIBTOOL OBJDUMP DLLTOOL AS RM GPERF GIT pkgconfigdir PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG LN_S EGREP GREP CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_dependency_tracking enable_largefile with_pkgconfigdir enable_static enable_shared with_pic enable_fast_install with_gnu_ld with_sysroot enable_libtool_lock with_arch enable_iconv with_libiconv with_libiconv_includes with_libiconv_lib with_expat with_expat_includes with_expat_lib enable_libxml2 with_default_fonts with_add_fonts with_cache_dir with_templatedir with_baseconfigdir with_configdir with_xmldir enable_docs ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR CC_FOR_BUILD FREETYPE_CFLAGS FREETYPE_LIBS EXPAT_CFLAGS EXPAT_LIBS LIBXML2_CFLAGS LIBXML2_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures fontconfig 2.11.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/fontconfig] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of fontconfig 2.11.1:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --disable-largefile omit support for large files --enable-static[=PKGS] build static libraries [default=no] --enable-shared[=PKGS] build shared libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --enable-iconv Use iconv to support non-Unicode SFNT name --enable-libxml2 Use libxml2 instead of Expat --disable-docs Don't build and install documentation Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pkgconfigdir pkg-config installation directory ['${libdir}/pkgconfig'] --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot=DIR Search for dependent libraries within DIR (or the compiler's sysroot if not specified). --with-arch=ARCH Force architecture to ARCH --with-libiconv=DIR Use libiconv in DIR --with-libiconv-includes=DIR Use libiconv includes in DIR --with-libiconv-lib=DIR Use libiconv library in DIR --with-expat=DIR Use Expat in DIR --with-expat-includes=DIR Use Expat includes in DIR --with-expat-lib=DIR --with-default-fonts=DIR Use fonts from DIR when config is busted --with-add-fonts=DIR1,DIR2,... Find additional fonts in DIR1,DIR2,... --with-cache-dir=DIR Use DIR to store cache files [default=LOCALSTATEDIR/cache/fontconfig] --with-templatedir=DIR Use DIR to store the configuration template files [default=DATADIR/fontconfig/conf.avail] --with-baseconfigdir=DIR Use DIR to store the base configuration files [default=SYSCONFDIR/fonts] --with-configdir=DIR Use DIR to store active configuration files [default=BASECONFIGDIR/conf.d] --with-xmldir=DIR Use DIR to store XML schema files [default=DATADIR/xml/fontconfig] Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path CC_FOR_BUILD build system C compiler FREETYPE_CFLAGS C compiler flags for FREETYPE, overriding pkg-config FREETYPE_LIBS linker flags for FREETYPE, overriding pkg-config EXPAT_CFLAGS C compiler flags for EXPAT, overriding pkg-config EXPAT_LIBS linker flags for EXPAT, overriding pkg-config LIBXML2_CFLAGS C compiler flags for LIBXML2, overriding pkg-config LIBXML2_LIBS linker flags for LIBXML2, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF fontconfig configure 2.11.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## ---------------------------------------------------------------------------- ## ## Report this to https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig ## ## ---------------------------------------------------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES # -------------------------------------------- # Tries to find the compile-time value of EXPR in a program that includes # INCLUDES, setting VAR accordingly. Returns whether the value could be # computed ac_fn_c_compute_int () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=0 ac_mid=0 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid; break else as_fn_arith $ac_mid + 1 && ac_lo=$as_val if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) < 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=-1 ac_mid=-1 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=$ac_mid; break else as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid else as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in #(( ?*) eval "$3=\$ac_lo"; ac_retval=0 ;; '') ac_retval=1 ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 static long int longval () { return $2; } static unsigned long int ulongval () { return $2; } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (($2) < 0) { long int i = longval (); if (i != ($2)) return 1; fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != ($2)) return 1; fprintf (f, "%lu", i); } /* Do not output a trailing newline, as this causes \r\n confusion on some platforms. */ return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : echo >>conftest.val; read $3 &5 $as_echo_n "checking for $2.$3... " >&6; } if eval \${$4+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int main () { static $2 ac_aggr; if (ac_aggr.$3) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$4=yes" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int main () { static $2 ac_aggr; if (sizeof ac_aggr.$3) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$4=yes" else eval "$4=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$4 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_member cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by fontconfig $as_me 2.11.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` 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 || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi as_fn_append ac_header_list " stdlib.h" as_fn_append ac_header_list " unistd.h" as_fn_append ac_header_list " sys/param.h" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am__api_version='1.13' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='fontconfig' VERSION='2.11.1' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=0;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' ac_config_headers="$ac_config_headers config.h" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" if test "x$ac_cv_header_minix_config_h" = xyes; then : MINIX=yes else MINIX= fi if test "$MINIX" = yes; then $as_echo "#define _POSIX_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h $as_echo "#define _MINIX 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } if ${ac_cv_safe_to_define___extensions__+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # define __EXTENSIONS__ 1 $ac_includes_default int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_safe_to_define___extensions__=yes else ac_cv_safe_to_define___extensions__=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 $as_echo "$ac_cv_safe_to_define___extensions__" >&6; } test $ac_cv_safe_to_define___extensions__ = yes && $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h $as_echo "#define _ALL_SOURCE 1" >>confdefs.h $as_echo "#define _GNU_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h # Check whether --enable-largefile was given. if test "${enable_largefile+set}" = set; then : enableval=$enable_largefile; fi if test "$enable_largefile" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 $as_echo_n "checking for special C compiler options needed for large files... " >&6; } if ${ac_cv_sys_largefile_CC+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_sys_largefile_CC=no if test "$GCC" != yes; then ac_save_CC=$CC while :; do # IRIX 6.2 and later do not support large files by default, # so use the C compiler's -n32 option if that helps. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : break fi rm -f core conftest.err conftest.$ac_objext CC="$CC -n32" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_largefile_CC=' -n32'; break fi rm -f core conftest.err conftest.$ac_objext break done CC=$ac_save_CC rm -f conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 $as_echo "$ac_cv_sys_largefile_CC" >&6; } if test "$ac_cv_sys_largefile_CC" != no; then CC=$CC$ac_cv_sys_largefile_CC fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } if ${ac_cv_sys_file_offset_bits+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_file_offset_bits=no; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _FILE_OFFSET_BITS 64 #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_file_offset_bits=64; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_sys_file_offset_bits=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 $as_echo "$ac_cv_sys_file_offset_bits" >&6; } case $ac_cv_sys_file_offset_bits in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits _ACEOF ;; esac rm -rf conftest* if test $ac_cv_sys_file_offset_bits = unknown; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } if ${ac_cv_sys_large_files+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_large_files=no; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _LARGE_FILES 1 #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_large_files=1; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_sys_large_files=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 $as_echo "$ac_cv_sys_large_files" >&6; } case $ac_cv_sys_large_files in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _LARGE_FILES $ac_cv_sys_large_files _ACEOF ;; esac rm -rf conftest* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi # Check whether --with-pkgconfigdir was given. if test "${with_pkgconfigdir+set}" = set; then : withval=$with_pkgconfigdir; else with_pkgconfigdir='${libdir}/pkgconfig' fi pkgconfigdir=$with_pkgconfigdir GIT=${GIT-"${am_missing_run}git"} GPERF=${GPERF-"${am_missing_run}gperf"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for RM macro" >&5 $as_echo_n "checking for RM macro... " >&6; } _predefined_rm=`make -p -f /dev/null 2>/dev/null|grep '^RM ='|sed -e 's/^RM = //'` if test "x$_predefined_rm" = "x"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no predefined RM" >&5 $as_echo "no predefined RM" >&6; } # Extract the first word of "rm", so it can be a program name with args. set dummy rm; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RM"; then ac_cv_prog_RM="$RM" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RM="rm -f" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RM=$ac_cv_prog_RM if test -n "$RM"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RM" >&5 $as_echo "$RM" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_predefined_rm" >&5 $as_echo "$_predefined_rm" >&6; } fi case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.4.2' macro_revision='1.3337' ltmain="$ac_aux_dir/ltmain.sh" # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac # Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case "$ECHO" in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_FGREP" || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if ${lt_cv_path_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if ${lt_cv_nm_interface+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if ${lt_cv_sys_max_cmd_len+:} false; then : $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 $as_echo_n "checking how to convert $build file names to $host format... " >&6; } if ${lt_cv_to_host_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 $as_echo "$lt_cv_to_host_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } if ${lt_cv_to_tool_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 $as_echo "$lt_cv_to_tool_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if ${lt_cv_ld_reload_flag+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in cygwin* | mingw* | pw32* | cegcc*) if test "$GCC" != yes; then reload_cmds=false fi ;; darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then for ac_prog in ar do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} : ${AR_FLAGS=cru} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 $as_echo_n "checking for archiver @FILE support... " >&6; } if ${lt_cv_ar_at_file+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if ${lt_cv_sys_global_symbol_pipe+:} false; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. if test "${with_sysroot+set}" = set; then : withval=$with_sysroot; else with_sysroot=no fi lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 $as_echo "${with_sysroot}" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 $as_echo "${lt_sysroot:-no}" >&6; } # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if ${lt_cv_cc_needs_belf+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; *-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD="${LD-ld}_sol2" fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 $as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if ${lt_cv_path_mainfest_tool+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if ${lt_cv_apple_cc_single_mod+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&5 # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if ${lt_cv_ld_exported_symbols_list+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cru libconftest.a conftest.o" >&5 $AR cru libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&5 elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done # Set options # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=no fi enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AS"; then ac_cv_prog_AS="$AS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AS="${ac_tool_prefix}as" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AS=$ac_cv_prog_AS if test -n "$AS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 $as_echo "$AS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AS"; then ac_ct_AS=$AS # Extract the first word of "as", so it can be a program name with args. set dummy as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AS"; then ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AS="as" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AS=$ac_cv_prog_ac_ct_AS if test -n "$ac_ct_AS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 $as_echo "$ac_ct_AS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AS" = x; then AS="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AS=$ac_ct_AS fi else AS="$ac_cv_prog_AS" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi ;; esac test -z "$AS" && AS=as test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$OBJDUMP" && OBJDUMP=objdump enable_dlopen=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for lt_pkg in $withval; do IFS="$lt_save_ifs" if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS="$lt_save_ifs" ;; esac else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' if test -n "$lt_prog_compiler_pic"; then lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; *Portland\ Group*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic=$lt_prog_compiler_pic fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 $as_echo "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if ${lt_cv_prog_compiler_pic_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' export_dynamic_flag_spec='${wl}--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' link_all_deplibs=yes ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test x"$lt_cv_prog_compiler__b" = xyes; then archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (void) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_irix_exported_symbol=yes else lt_cv_irix_exported_symbol=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test "$lt_cv_irix_exported_symbol" = yes; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([A-Za-z]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ac_config_commands="$ac_config_commands libtool" # Only expand once: LIBT_CURRENT=9 LIBT_REVISION=0 LIBT_AGE=8 LIBT_VERSION_INFO="$LIBT_CURRENT:$LIBT_REVISION:$LIBT_AGE" LIBT_CURRENT_MINUS_AGE=`expr $LIBT_CURRENT - $LIBT_AGE` PKGCONFIG_REQUIRES= PKGCONFIG_REQUIRES_PRIVATELY= case "$host" in *-*-mingw*) os_win32=yes ;; *) os_win32=no esac if test "$os_win32" = "yes"; then OS_WIN32_TRUE= OS_WIN32_FALSE='#' else OS_WIN32_TRUE='#' OS_WIN32_FALSE= fi if test "$os_win32" = "yes"; then # Extract the first word of "lib.exe", so it can be a program name with args. set dummy lib.exe; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ms_librarian+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ms_librarian"; then ac_cv_prog_ms_librarian="$ms_librarian" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ms_librarian="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_ms_librarian" && ac_cv_prog_ms_librarian="no" fi fi ms_librarian=$ac_cv_prog_ms_librarian if test -n "$ms_librarian"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ms_librarian" >&5 $as_echo "$ms_librarian" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test x$ms_librarian = xyes; then MS_LIB_AVAILABLE_TRUE= MS_LIB_AVAILABLE_FALSE='#' else MS_LIB_AVAILABLE_TRUE='#' MS_LIB_AVAILABLE_FALSE= fi WARN_CFLAGS="" if test "x$GCC" = "xyes"; then WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \ -Wmissing-prototypes -Wmissing-declarations \ -Wnested-externs -fno-strict-aliasing" cat >>confdefs.h <<_ACEOF #define HAVE_WARNING_CPP_DIRECTIVE 1 _ACEOF fi # Put a plausible default for CC_FOR_BUILD in Makefile. if test -z "$CC_FOR_BUILD"; then if test "x$cross_compiling" = "xno"; then CC_FOR_BUILD='$(CC)' else CC_FOR_BUILD=gcc fi fi # Also set EXEEXT_FOR_BUILD. if test "x$cross_compiling" = "xno"; then EXEEXT_FOR_BUILD='$(EXEEXT)' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for build system executable suffix" >&5 $as_echo_n "checking for build system executable suffix... " >&6; } if ${bfd_cv_build_exeext+:} false; then : $as_echo_n "(cached) " >&6 else rm -f conftest* echo 'int main () { return 0; }' > conftest.c bfd_cv_build_exeext= ${CC_FOR_BUILD} -o conftest conftest.c 1>&5 2>&5 for file in conftest.*; do case $file in *.c | *.o | *.obj | *.ilk | *.pdb) ;; *) bfd_cv_build_exeext=`echo $file | sed -e s/conftest//` ;; esac done rm -f conftest* test x"${bfd_cv_build_exeext}" = x && bfd_cv_build_exeext=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_build_exeext" >&5 $as_echo "$bfd_cv_build_exeext" >&6; } EXEEXT_FOR_BUILD="" test x"${bfd_cv_build_exeext}" != xno && EXEEXT_FOR_BUILD=${bfd_cv_build_exeext} fi if test $cross_compiling = yes; then CROSS_COMPILING_TRUE= CROSS_COMPILING_FALSE='#' else CROSS_COMPILING_TRUE='#' CROSS_COMPILING_FALSE= fi if test "$enable_shared" = "yes"; then ENABLE_SHARED_TRUE= ENABLE_SHARED_FALSE='#' else ENABLE_SHARED_TRUE='#' ENABLE_SHARED_FALSE= fi # Check whether --with-arch was given. if test "${with_arch+set}" = set; then : withval=$with_arch; arch="$withval" else arch=auto fi if test "x$arch" != xauto; then cat >>confdefs.h <<_ACEOF #define FC_ARCHITECTURE "$arch" _ACEOF fi # Checks for header files. ac_header_dirent=no for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 $as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } if eval \${$as_ac_Header+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include <$ac_hdr> int main () { if ((DIR *) 0) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_ac_Header=yes" else eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_ac_Header { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 _ACEOF ac_header_dirent=$ac_hdr; break fi done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 $as_echo_n "checking for library containing opendir... " >&6; } if ${ac_cv_search_opendir+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char opendir (); int main () { return opendir (); ; return 0; } _ACEOF for ac_lib in '' dir; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_opendir=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_opendir+:} false; then : break fi done if ${ac_cv_search_opendir+:} false; then : else ac_cv_search_opendir=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 $as_echo "$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 $as_echo_n "checking for library containing opendir... " >&6; } if ${ac_cv_search_opendir+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char opendir (); int main () { return opendir (); ; return 0; } _ACEOF for ac_lib in '' x; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_opendir=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_opendir+:} false; then : break fi done if ${ac_cv_search_opendir+:} false; then : else ac_cv_search_opendir=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 $as_echo "$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi for ac_header in fcntl.h regex.h stdlib.h string.h unistd.h sys/statvfs.h sys/vfs.h sys/statfs.h sys/param.h sys/mount.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # ------ AX CREATE STDINT H ------------------------------------- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint types" >&5 $as_echo_n "checking for stdint types... " >&6; } ac_stdint_h=`echo src/fcstdint.h` # try to shortcircuit - if the default include path of the compiler # can find a "stdint.h" header then we assume that all compilers can. if ${ac_cv_header_stdint_t+:} false; then : $as_echo_n "(cached) " >&6 else old_CXXFLAGS="$CXXFLAGS" ; CXXFLAGS="" old_CPPFLAGS="$CPPFLAGS" ; CPPFLAGS="" old_CFLAGS="$CFLAGS" ; CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int_least32_t v = 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_stdint_result="(assuming C99 compatible system)" ac_cv_header_stdint_t="stdint.h"; else ac_cv_header_stdint_t="" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test "$GCC" = "yes" && test ".$ac_cv_header_stdint_t" = "."; then CFLAGS="-std=c99" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int_least32_t v = 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: your GCC compiler has a defunct stdint.h for its default-mode" >&5 $as_echo "$as_me: WARNING: your GCC compiler has a defunct stdint.h for its default-mode" >&2;} fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi CXXFLAGS="$old_CXXFLAGS" CPPFLAGS="$old_CPPFLAGS" CFLAGS="$old_CFLAGS" fi v="... $ac_cv_header_stdint_h" if test "$ac_stdint_h" = "stdint.h" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: (are you sure you want them in ./stdint.h?)" >&5 $as_echo "(are you sure you want them in ./stdint.h?)" >&6; } elif test "$ac_stdint_h" = "inttypes.h" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: (are you sure you want them in ./inttypes.h?)" >&5 $as_echo "(are you sure you want them in ./inttypes.h?)" >&6; } elif test "_$ac_cv_header_stdint_t" = "_" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: (putting them into $ac_stdint_h)$v" >&5 $as_echo "(putting them into $ac_stdint_h)$v" >&6; } else ac_cv_header_stdint="$ac_cv_header_stdint_t" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdint (shortcircuit)" >&5 $as_echo "$ac_cv_header_stdint (shortcircuit)" >&6; } fi if test "_$ac_cv_header_stdint_t" = "_" ; then # can not shortcircuit.. inttype_headers=`echo | sed -e 's/,/ /g'` ac_cv_stdint_result="(no helpful system typedefs seen)" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint uintptr_t" >&5 $as_echo_n "checking for stdint uintptr_t... " >&6; } if ${ac_cv_header_stdint_x+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_header_stdint_x="" # the 1997 typedefs (inttypes.h) { $as_echo "$as_me:${as_lineno-$LINENO}: result: (..)" >&5 $as_echo "(..)" >&6; } for i in stdint.h inttypes.h sys/inttypes.h $inttype_headers do unset ac_cv_type_uintptr_t unset ac_cv_type_uint64_t ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "#include <$i> " if test "x$ac_cv_type_uintptr_t" = xyes; then : ac_cv_header_stdint_x=$i else continue fi ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "#include<$i> " if test "x$ac_cv_type_uint64_t" = xyes; then : and64="/uint64_t" else and64="" fi ac_cv_stdint_result="(seen uintptr_t$and64 in $i)" break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint uintptr_t" >&5 $as_echo_n "checking for stdint uintptr_t... " >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdint_x" >&5 $as_echo "$ac_cv_header_stdint_x" >&6; } if test "_$ac_cv_header_stdint_x" = "_" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint uint32_t" >&5 $as_echo_n "checking for stdint uint32_t... " >&6; } if ${ac_cv_header_stdint_o+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_header_stdint_o="" # the 1995 typedefs (sys/inttypes.h) { $as_echo "$as_me:${as_lineno-$LINENO}: result: (..)" >&5 $as_echo "(..)" >&6; } for i in inttypes.h sys/inttypes.h stdint.h $inttype_headers do unset ac_cv_type_uint32_t unset ac_cv_type_uint64_t ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "#include <$i> " if test "x$ac_cv_type_uint32_t" = xyes; then : ac_cv_header_stdint_o=$i else continue fi ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "#include<$i> " if test "x$ac_cv_type_uint64_t" = xyes; then : and64="/uint64_t" else and64="" fi ac_cv_stdint_result="(seen uint32_t$and64 in $i)" break break; done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint uint32_t" >&5 $as_echo_n "checking for stdint uint32_t... " >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdint_o" >&5 $as_echo "$ac_cv_header_stdint_o" >&6; } fi if test "_$ac_cv_header_stdint_x" = "_" ; then if test "_$ac_cv_header_stdint_o" = "_" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint u_int32_t" >&5 $as_echo_n "checking for stdint u_int32_t... " >&6; } if ${ac_cv_header_stdint_u+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_header_stdint_u="" # the BSD typedefs (sys/types.h) { $as_echo "$as_me:${as_lineno-$LINENO}: result: (..)" >&5 $as_echo "(..)" >&6; } for i in sys/types.h inttypes.h sys/inttypes.h $inttype_headers ; do unset ac_cv_type_u_int32_t unset ac_cv_type_u_int64_t ac_fn_c_check_type "$LINENO" "u_int32_t" "ac_cv_type_u_int32_t" "#include <$i> " if test "x$ac_cv_type_u_int32_t" = xyes; then : ac_cv_header_stdint_u=$i else continue fi ac_fn_c_check_type "$LINENO" "u_int64_t" "ac_cv_type_u_int64_t" "#include<$i> " if test "x$ac_cv_type_u_int64_t" = xyes; then : and64="/u_int64_t" else and64="" fi ac_cv_stdint_result="(seen u_int32_t$and64 in $i)" break break; done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint u_int32_t" >&5 $as_echo_n "checking for stdint u_int32_t... " >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdint_u" >&5 $as_echo "$ac_cv_header_stdint_u" >&6; } fi fi if test "_$ac_cv_header_stdint_x" = "_" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint datatype model" >&5 $as_echo_n "checking for stdint datatype model... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: (..)" >&5 $as_echo "(..)" >&6; } # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char" >&5 $as_echo_n "checking size of char... " >&6; } if ${ac_cv_sizeof_char+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char))" "ac_cv_sizeof_char" "$ac_includes_default"; then : else if test "$ac_cv_type_char" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (char) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_char=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char" >&5 $as_echo "$ac_cv_sizeof_char" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_CHAR $ac_cv_sizeof_char _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 $as_echo_n "checking size of short... " >&6; } if ${ac_cv_sizeof_short+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then : else if test "$ac_cv_type_short" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (short) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_short=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 $as_echo "$ac_cv_sizeof_short" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_SHORT $ac_cv_sizeof_short _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 $as_echo_n "checking size of int... " >&6; } if ${ac_cv_sizeof_int+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : else if test "$ac_cv_type_int" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (int) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_int=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 $as_echo "$ac_cv_sizeof_int" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_INT $ac_cv_sizeof_int _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 $as_echo_n "checking size of long... " >&6; } if ${ac_cv_sizeof_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : else if test "$ac_cv_type_long" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 $as_echo "$ac_cv_sizeof_long" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_LONG $ac_cv_sizeof_long _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void*" >&5 $as_echo_n "checking size of void*... " >&6; } if ${ac_cv_sizeof_voidp+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void*))" "ac_cv_sizeof_voidp" "$ac_includes_default"; then : else if test "$ac_cv_type_voidp" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (void*) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_voidp=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_voidp" >&5 $as_echo "$ac_cv_sizeof_voidp" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_VOIDP $ac_cv_sizeof_voidp _ACEOF ac_cv_char_data_model="" ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_char" ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_short" ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_int" ac_cv_long_data_model="" ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_int" ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_long" ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_voidp" { $as_echo "$as_me:${as_lineno-$LINENO}: checking data model" >&5 $as_echo_n "checking data model... " >&6; } case "$ac_cv_char_data_model/$ac_cv_long_data_model" in 122/242) ac_cv_data_model="IP16" ; n="standard 16bit machine" ;; 122/244) ac_cv_data_model="LP32" ; n="standard 32bit machine" ;; 122/*) ac_cv_data_model="i16" ; n="unusual int16 model" ;; 124/444) ac_cv_data_model="ILP32" ; n="standard 32bit unixish" ;; 124/488) ac_cv_data_model="LP64" ; n="standard 64bit unixish" ;; 124/448) ac_cv_data_model="LLP64" ; n="unusual 64bit unixish" ;; 124/*) ac_cv_data_model="i32" ; n="unusual int32 model" ;; 128/888) ac_cv_data_model="ILP64" ; n="unusual 64bit numeric" ;; 128/*) ac_cv_data_model="i64" ; n="unusual int64 model" ;; 222/*2) ac_cv_data_model="DSP16" ; n="strict 16bit dsptype" ;; 333/*3) ac_cv_data_model="DSP24" ; n="strict 24bit dsptype" ;; 444/*4) ac_cv_data_model="DSP32" ; n="strict 32bit dsptype" ;; 666/*6) ac_cv_data_model="DSP48" ; n="strict 48bit dsptype" ;; 888/*8) ac_cv_data_model="DSP64" ; n="strict 64bit dsptype" ;; 222/*|333/*|444/*|666/*|888/*) : ac_cv_data_model="iDSP" ; n="unusual dsptype" ;; *) ac_cv_data_model="none" ; n="very unusual model" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_data_model ($ac_cv_long_data_model, $n)" >&5 $as_echo "$ac_cv_data_model ($ac_cv_long_data_model, $n)" >&6; } fi if test "_$ac_cv_header_stdint_x" != "_" ; then ac_cv_header_stdint="$ac_cv_header_stdint_x" elif test "_$ac_cv_header_stdint_o" != "_" ; then ac_cv_header_stdint="$ac_cv_header_stdint_o" elif test "_$ac_cv_header_stdint_u" != "_" ; then ac_cv_header_stdint="$ac_cv_header_stdint_u" else ac_cv_header_stdint="stddef.h" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for extra inttypes in chosen header" >&5 $as_echo_n "checking for extra inttypes in chosen header... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ($ac_cv_header_stdint)" >&5 $as_echo "($ac_cv_header_stdint)" >&6; } unset ac_cv_type_int_least32_t unset ac_cv_type_int_fast32_t ac_fn_c_check_type "$LINENO" "int_least32_t" "ac_cv_type_int_least32_t" "#include <$ac_cv_header_stdint> " if test "x$ac_cv_type_int_least32_t" = xyes; then : fi ac_fn_c_check_type "$LINENO" "int_fast32_t" "ac_cv_type_int_fast32_t" "#include<$ac_cv_header_stdint> " if test "x$ac_cv_type_int_fast32_t" = xyes; then : fi ac_fn_c_check_type "$LINENO" "intmax_t" "ac_cv_type_intmax_t" "#include <$ac_cv_header_stdint> " if test "x$ac_cv_type_intmax_t" = xyes; then : fi fi # shortcircut to system "stdint.h" # ------------------ PREPARE VARIABLES ------------------------------ if test "$GCC" = "yes" ; then ac_cv_stdint_message="using gnu compiler "`$CC --version | head -1` else ac_cv_stdint_message="using $CC" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: make use of $ac_cv_header_stdint in $ac_stdint_h $ac_cv_stdint_result" >&5 $as_echo "make use of $ac_cv_header_stdint in $ac_stdint_h $ac_cv_stdint_result" >&6; } # ----------------- DONE inttypes.h checks START header ------------- ac_config_commands="$ac_config_commands $ac_stdint_h" # Checks for typedefs, structures, and compiler characteristics. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if ${ac_cv_c_const+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __cplusplus /* Ultrix mips cc rejects this sort of thing. */ typedef int charset[2]; const charset cs = { 0, 0 }; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this sort of thing. */ char tx; char *t = &tx; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; } bx; struct s *b = &bx; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if ${ac_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 $as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for flexible array members" >&5 $as_echo_n "checking for flexible array members... " >&6; } if ${ac_cv_c_flexmember+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include struct s { int n; double d[]; }; int main () { int m = getchar (); struct s *p = malloc (offsetof (struct s, d) + m * sizeof (double)); p->d[0] = 0.0; return p->d != (double *) NULL; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_flexmember=yes else ac_cv_c_flexmember=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_flexmember" >&5 $as_echo "$ac_cv_c_flexmember" >&6; } if test $ac_cv_c_flexmember = yes; then $as_echo "#define FLEXIBLE_ARRAY_MEMBER /**/" >>confdefs.h else $as_echo "#define FLEXIBLE_ARRAY_MEMBER 1" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" if test "x$ac_cv_type_pid_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define pid_t int _ACEOF fi # Checks for library functions. for ac_func in vprintf do : ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf" if test "x$ac_cv_func_vprintf" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_VPRINTF 1 _ACEOF ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt" if test "x$ac_cv_func__doprnt" = xyes; then : $as_echo "#define HAVE_DOPRNT 1" >>confdefs.h fi fi done for ac_header in $ac_header_list do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in getpagesize do : ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" if test "x$ac_cv_func_getpagesize" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETPAGESIZE 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5 $as_echo_n "checking for working mmap... " >&6; } if ${ac_cv_func_mmap_fixed_mapped+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_mmap_fixed_mapped=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default /* malloc might have been renamed as rpl_malloc. */ #undef malloc /* Thanks to Mike Haertel and Jim Avera for this test. Here is a matrix of mmap possibilities: mmap private not fixed mmap private fixed at somewhere currently unmapped mmap private fixed at somewhere already mapped mmap shared not fixed mmap shared fixed at somewhere currently unmapped mmap shared fixed at somewhere already mapped For private mappings, we should verify that changes cannot be read() back from the file, nor mmap's back from the file at a different address. (There have been systems where private was not correctly implemented like the infamous i386 svr4.0, and systems where the VM page cache was not coherent with the file system buffer cache like early versions of FreeBSD and possibly contemporary NetBSD.) For shared mappings, we should conversely verify that changes get propagated back to all the places they're supposed to be. Grep wants private fixed already mapped. The main things grep needs to know about mmap are: * does it exist and is it safe to write into the mmap'd area * how to use it (BSD variants) */ #include #include #if !defined STDC_HEADERS && !defined HAVE_STDLIB_H char *malloc (); #endif /* This mess was copied from the GNU getpagesize.h. */ #ifndef HAVE_GETPAGESIZE # ifdef _SC_PAGESIZE # define getpagesize() sysconf(_SC_PAGESIZE) # else /* no _SC_PAGESIZE */ # ifdef HAVE_SYS_PARAM_H # include # ifdef EXEC_PAGESIZE # define getpagesize() EXEC_PAGESIZE # else /* no EXEC_PAGESIZE */ # ifdef NBPG # define getpagesize() NBPG * CLSIZE # ifndef CLSIZE # define CLSIZE 1 # endif /* no CLSIZE */ # else /* no NBPG */ # ifdef NBPC # define getpagesize() NBPC # else /* no NBPC */ # ifdef PAGESIZE # define getpagesize() PAGESIZE # endif /* PAGESIZE */ # endif /* no NBPC */ # endif /* no NBPG */ # endif /* no EXEC_PAGESIZE */ # else /* no HAVE_SYS_PARAM_H */ # define getpagesize() 8192 /* punt totally */ # endif /* no HAVE_SYS_PARAM_H */ # endif /* no _SC_PAGESIZE */ #endif /* no HAVE_GETPAGESIZE */ int main () { char *data, *data2, *data3; const char *cdata2; int i, pagesize; int fd, fd2; pagesize = getpagesize (); /* First, make a file with some known garbage in it. */ data = (char *) malloc (pagesize); if (!data) return 1; for (i = 0; i < pagesize; ++i) *(data + i) = rand (); umask (0); fd = creat ("conftest.mmap", 0600); if (fd < 0) return 2; if (write (fd, data, pagesize) != pagesize) return 3; close (fd); /* Next, check that the tail of a page is zero-filled. File must have non-zero length, otherwise we risk SIGBUS for entire page. */ fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600); if (fd2 < 0) return 4; cdata2 = ""; if (write (fd2, cdata2, 1) != 1) return 5; data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); if (data2 == MAP_FAILED) return 6; for (i = 0; i < pagesize; ++i) if (*(data2 + i)) return 7; close (fd2); if (munmap (data2, pagesize)) return 8; /* Next, try to mmap the file at a fixed address which already has something else allocated at it. If we can, also make sure that we see the same garbage. */ fd = open ("conftest.mmap", O_RDWR); if (fd < 0) return 9; if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FIXED, fd, 0L)) return 10; for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data2 + i)) return 11; /* Finally, make sure that changes to the mapped area do not percolate back to the file as seen by read(). (This is a bug on some variants of i386 svr4.0.) */ for (i = 0; i < pagesize; ++i) *(data2 + i) = *(data2 + i) + 1; data3 = (char *) malloc (pagesize); if (!data3) return 12; if (read (fd, data3, pagesize) != pagesize) return 13; for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data3 + i)) return 14; close (fd); return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_mmap_fixed_mapped=yes else ac_cv_func_mmap_fixed_mapped=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5 $as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; } if test $ac_cv_func_mmap_fixed_mapped = yes; then $as_echo "#define HAVE_MMAP 1" >>confdefs.h fi rm -f conftest.mmap conftest.txt for ac_func in link mkstemp mkostemp _mktemp_s mkdtemp getopt getopt_long getprogname getexecname rand random lrand48 random_r rand_r readlink regcomp regerror regexec regfree fstatvfs fstatfs lstat do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for posix_fadvise in fcntl.h" >&5 $as_echo_n "checking for posix_fadvise in fcntl.h... " >&6; } if ${ac_cv_func_posix_fadvise+:} false; then : $as_echo_n "(cached) " >&6 else symbol="[^a-zA-Z_0-9]posix_fadvise[^a-zA-Z_0-9]" ac_found=no for ac_header in fcntl.h ; do ac_safe=`echo "$ac_header" | sed 'y%./+-%__p_%' ` if test $ac_found != "yes" ; then if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$ac_header> _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "$symbol" >/dev/null 2>&1; then : ac_found="$ac_header" fi rm -f conftest* fi fi done if test "$ac_found" != "no" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_found" >&5 $as_echo "$ac_found" >&6; } fc_func_posix_fadvise=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fc_func_posix_fadvise=0 fi fi cat >>confdefs.h <<_ACEOF #define HAVE_POSIX_FADVISE $fc_func_posix_fadvise _ACEOF if test "$os_win32" = "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for scandir" >&5 $as_echo_n "checking for scandir... " >&6; } fc_saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $WARN_CFLAGS -Werror" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main(void); int main () { int (* comp) (const struct dirent **, const struct dirent **) = 0; struct dirent **d; return scandir(".", &d, 0, comp) >= 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_SCANDIR 1" >>confdefs.h else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main(void); int main () { int (* comp) (const void *, const void *) = 0; struct dirent **d; return scandir(".", &d, 0, comp) >= 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_SCANDIR_VOID_P 1" >>confdefs.h else as_fn_error $? " *** No scandir function available." "$LINENO" 5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi CFLAGS="$fc_saved_CFLAGS" # if test "x$ac_cv_func_fstatvfs" = "xyes"; then ac_fn_c_check_member "$LINENO" "struct statvfs" "f_basetype" "ac_cv_member_struct_statvfs_f_basetype" "#include " if test "x$ac_cv_member_struct_statvfs_f_basetype" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STATVFS_F_BASETYPE 1 _ACEOF fi ac_fn_c_check_member "$LINENO" "struct statvfs" "f_fstypename" "ac_cv_member_struct_statvfs_f_fstypename" "#include " if test "x$ac_cv_member_struct_statvfs_f_fstypename" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STATVFS_F_FSTYPENAME 1 _ACEOF fi fi if test "x$ac_cv_func_fstatfs" = "xyes"; then ac_fn_c_check_member "$LINENO" "struct statfs" "f_flags" "ac_cv_member_struct_statfs_f_flags" " #ifdef HAVE_SYS_VFS_H #include #endif #ifdef HAVE_SYS_STATFS_H #include #endif #ifdef HAVE_SYS_PARAM_H #include #endif #ifdef HAVE_SYS_MOUNT_H #include #endif " if test "x$ac_cv_member_struct_statfs_f_flags" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STATFS_F_FLAGS 1 _ACEOF fi ac_fn_c_check_member "$LINENO" "struct statfs" "f_fstypename" "ac_cv_member_struct_statfs_f_fstypename" " #ifdef HAVE_SYS_VFS_H #include #endif #ifdef HAVE_SYS_STATFS_H #include #endif #ifdef HAVE_SYS_PARAM_H #include #endif #ifdef HAVE_SYS_MOUNT_H #include #endif " if test "x$ac_cv_member_struct_statfs_f_fstypename" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STATFS_F_FSTYPENAME 1 _ACEOF fi fi ac_fn_c_check_member "$LINENO" "struct dirent" "d_type" "ac_cv_member_struct_dirent_d_type" "#include " if test "x$ac_cv_member_struct_dirent_d_type" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_DIRENT_D_TYPE 1 _ACEOF fi # # regex # if test "x$ac_cv_func_regcomp" = "xyes" -a "x$ac_cv_func_regerror" = "xyes" -a "x$ac_cv_func_regexec" = "xyes" -a "x$ac_cv_func_regfree"; then $as_echo "#define USE_REGEX /**/" >>confdefs.h fi # # Checks for iconv # # Check whether --enable-iconv was given. if test "${enable_iconv+set}" = set; then : enableval=$enable_iconv; else enable_iconv=no fi # Check whether --with-libiconv was given. if test "${with_libiconv+set}" = set; then : withval=$with_libiconv; if test "x$withval" = "xyes"; then libiconv_prefix=$prefix else libiconv_prefix=$withval fi else libiconv_prefix=auto fi # Check whether --with-libiconv-includes was given. if test "${with_libiconv_includes+set}" = set; then : withval=$with_libiconv_includes; libiconv_includes=$withval else libiconv_includes=auto fi # Check whether --with-libiconv-lib was given. if test "${with_libiconv_lib+set}" = set; then : withval=$with_libiconv_lib; libiconv_lib=$withval else libiconv_lib=auto fi # if no libiconv,libiconv-includes,libiconv-lib are specified, # libc's iconv has a priority. if test "$libiconv_includes" != "auto" -a -r ${libiconv_includes}/iconv.h; then libiconv_cflags="-I${libiconv_includes}" elif test "$libiconv_prefix" != "auto" -a -r ${libiconv_prefix}/include/iconv.h; then libiconv_cflags="-I${libiconv_prefix}/include" else libiconv_cflags="" fi libiconv_libs="" if test "x$libiconv_cflags" != "x"; then if test "$libiconv_lib" != "auto" -a -d ${libiconv_lib}; then libiconv_libs="-L${libiconv_lib} -liconv" elif test "$libiconv_prefix" != "auto" -a -d ${libiconv_prefix}/lib; then libiconv_libs="-L${libiconv_prefix}/lib -liconv" else libiconv_libs="-liconv" fi fi use_iconv=0 if test "x$enable_iconv" != "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a usable iconv" >&5 $as_echo_n "checking for a usable iconv... " >&6; } if test "x$libiconv_cflags" != "x" -o "x$libiconv_libs" != "x"; then iconvsaved_CFLAGS="$CFLAGS" iconvsaved_LIBS="$LIBS" CFLAGS="$CFLAGS $libiconv_cflags" LIBS="$LIBS $libiconv_libs" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { iconv_open ("from", "to"); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : iconv_type="libiconv" use_iconv=1 ICONV_CFLAGS="$libiconv_cflags" ICONV_LIBS="$libiconv_libs" else use_iconv=0 fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$iconvsaved_CFLAGS" LIBS="$iconvsaved_LIBS" fi if test "x$use_iconv" = "x0"; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { iconv_open ("from", "to"); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : iconv_type="libc" use_iconv=1 else iconv_type="not found" use_iconv=0 fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $iconv_type" >&5 $as_echo "$iconv_type" >&6; } fi cat >>confdefs.h <<_ACEOF #define USE_ICONV $use_iconv _ACEOF # # Checks for FreeType # pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FREETYPE" >&5 $as_echo_n "checking for FREETYPE... " >&6; } if test -n "$FREETYPE_CFLAGS"; then pkg_cv_FREETYPE_CFLAGS="$FREETYPE_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2\""; } >&5 ($PKG_CONFIG --exists --print-errors "freetype2") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_FREETYPE_CFLAGS=`$PKG_CONFIG --cflags "freetype2" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$FREETYPE_LIBS"; then pkg_cv_FREETYPE_LIBS="$FREETYPE_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2\""; } >&5 ($PKG_CONFIG --exists --print-errors "freetype2") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_FREETYPE_LIBS=`$PKG_CONFIG --libs "freetype2" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then FREETYPE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "freetype2" 2>&1` else FREETYPE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "freetype2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$FREETYPE_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (freetype2) were not met: $FREETYPE_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables FREETYPE_CFLAGS and FREETYPE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "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. Alternatively, you may set the environment variables FREETYPE_CFLAGS and FREETYPE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else FREETYPE_CFLAGS=$pkg_cv_FREETYPE_CFLAGS FREETYPE_LIBS=$pkg_cv_FREETYPE_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi PKGCONFIG_REQUIRES="$PKGCONFIG_REQUIRES freetype2" fontconfig_save_libs="$LIBS" fontconfig_save_cflags="$CFLAGS" LIBS="$LIBS $FREETYPE_LIBS" CFLAGS="$CFLAGS $FREETYPE_CFLAGS" for ac_func in FT_Get_Next_Char FT_Get_BDF_Property FT_Get_PS_Font_Info FT_Has_PS_Glyph_Names FT_Get_X11_Font_Format FT_Select_Size do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_member "$LINENO" "FT_Bitmap_Size" "y_ppem" "ac_cv_member_FT_Bitmap_Size_y_ppem" "#include #include FT_FREETYPE_H " if test "x$ac_cv_member_FT_Bitmap_Size_y_ppem" = xyes; then : HAVE_FT_BITMAP_SIZE_Y_PPEM=1 else HAVE_FT_BITMAP_SIZE_Y_PPEM=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_FT_BITMAP_SIZE_Y_PPEM $HAVE_FT_BITMAP_SIZE_Y_PPEM _ACEOF CFLAGS="$fontconfig_save_cflags" LIBS="$fontconfig_save_libs" # # Check expat configuration # # Check whether --with-expat was given. if test "${with_expat+set}" = set; then : withval=$with_expat; expat_prefix=$withval else expat_prefix=auto fi # Check whether --with-expat-includes was given. if test "${with_expat_includes+set}" = set; then : withval=$with_expat_includes; expat_includes=$withval else expat_includes=auto fi # Check whether --with-expat-lib was given. if test "${with_expat_lib+set}" = set; then : withval=$with_expat_lib; expat_lib=$withval else expat_lib=auto fi if test "$enable_libxml2" != "yes"; then use_pkgconfig_for_expat=yes if test "$expat_prefix" = "auto" -a "$expat_includes" = "auto" -a "$expat_lib" = "auto"; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EXPAT" >&5 $as_echo_n "checking for EXPAT... " >&6; } if test -n "$EXPAT_CFLAGS"; then pkg_cv_EXPAT_CFLAGS="$EXPAT_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"expat\""; } >&5 ($PKG_CONFIG --exists --print-errors "expat") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_EXPAT_CFLAGS=`$PKG_CONFIG --cflags "expat" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$EXPAT_LIBS"; then pkg_cv_EXPAT_LIBS="$EXPAT_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"expat\""; } >&5 ($PKG_CONFIG --exists --print-errors "expat") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_EXPAT_LIBS=`$PKG_CONFIG --libs "expat" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then EXPAT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "expat" 2>&1` else EXPAT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "expat" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$EXPAT_PKG_ERRORS" >&5 use_pkgconfig_for_expat=no elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } use_pkgconfig_for_expat=no else EXPAT_CFLAGS=$pkg_cv_EXPAT_CFLAGS EXPAT_LIBS=$pkg_cv_EXPAT_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi else use_pkgconfig_for_expat=no fi if test "x$use_pkgconfig_for_expat" = "xno"; then if test "$expat_includes" != "auto" -a -r ${expat_includes}/expat.h; then EXPAT_CFLAGS="-I${expat_includes}" elif test "$expat_prefix" != "auto" -a -r ${expat_prefix}/include/expat.h; then EXPAT_CFLAGS="-I${expat_prefix}/include" else EXPAT_CFLAGS="" fi if test "$expat_lib" != "auto"; then EXPAT_LIBS="-L${expat_lib} -lexpat" elif test "$expat_prefix" != "auto"; then EXPAT_LIBS="-L${expat_prefix}/lib -lexpat" else EXPAT_LIBS="-lexpat" fi else PKGCONFIG_REQUIRES_PRIVATELY="$PKGCONFIG_REQUIRES_PRIVATELY expat" fi expatsaved_CPPFLAGS="$CPPFLAGS" expatsaved_LIBS="$LIBS" CPPFLAGS="$CPPFLAGS $EXPAT_CFLAGS" LIBS="$LIBS $EXPAT_LIBS" ac_fn_c_check_header_mongrel "$LINENO" "expat.h" "ac_cv_header_expat_h" "$ac_includes_default" if test "x$ac_cv_header_expat_h" = xyes; then : fi if test "$ac_cv_header_expat_h" = "no"; then ac_fn_c_check_header_mongrel "$LINENO" "xmlparse.h" "ac_cv_header_xmlparse_h" "$ac_includes_default" if test "x$ac_cv_header_xmlparse_h" = xyes; then : fi if test "$ac_cv_header_xmlparse_h" = "yes"; then HAVE_XMLPARSE_H=1 cat >>confdefs.h <<_ACEOF #define HAVE_XMLPARSE_H $HAVE_XMLPARSE_H _ACEOF else as_fn_error $? " *** expat is required. or try to use --enable-libxml2" "$LINENO" 5 fi fi for ac_func in XML_SetDoctypeDeclHandler do : ac_fn_c_check_func "$LINENO" "XML_SetDoctypeDeclHandler" "ac_cv_func_XML_SetDoctypeDeclHandler" if test "x$ac_cv_func_XML_SetDoctypeDeclHandler" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_XML_SETDOCTYPEDECLHANDLER 1 _ACEOF fi done if test "$ac_cv_func_XML_SetDoctypeDeclHandler" = "no"; then as_fn_error $? " *** expat is required. or try to use --enable-libxml2" "$LINENO" 5 fi CPPFLAGS="$expatsaved_CPPFLAGS" LIBS="$expatsaved_LIBS" fi # # Check libxml2 configuration # # Check whether --enable-libxml2 was given. if test "${enable_libxml2+set}" = set; then : enableval=$enable_libxml2; fi if test "$enable_libxml2" = "yes"; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBXML2" >&5 $as_echo_n "checking for LIBXML2... " >&6; } if test -n "$LIBXML2_CFLAGS"; then pkg_cv_LIBXML2_CFLAGS="$LIBXML2_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.6\""; } >&5 ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.6") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBXML2_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 >= 2.6" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$LIBXML2_LIBS"; then pkg_cv_LIBXML2_LIBS="$LIBXML2_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.6\""; } >&5 ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.6") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBXML2_LIBS=`$PKG_CONFIG --libs "libxml-2.0 >= 2.6" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then LIBXML2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libxml-2.0 >= 2.6" 2>&1` else LIBXML2_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libxml-2.0 >= 2.6" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LIBXML2_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (libxml-2.0 >= 2.6) were not met: $LIBXML2_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables LIBXML2_CFLAGS and LIBXML2_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "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. Alternatively, you may set the environment variables LIBXML2_CFLAGS and LIBXML2_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else LIBXML2_CFLAGS=$pkg_cv_LIBXML2_CFLAGS LIBXML2_LIBS=$pkg_cv_LIBXML2_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi PKGCONFIG_REQUIRES_PRIVATELY="$PKGCONFIG_REQUIRES_PRIVATELY libxml-2.0" cat >>confdefs.h <<_ACEOF #define ENABLE_LIBXML2 1 _ACEOF fc_saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $LIBXML2_CFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking SAX1 support in libxml2" >&5 $as_echo_n "checking SAX1 support in libxml2... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if !defined(LIBXML_SAX1_ENABLED) # include "error: No SAX1 support in libxml2" #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 $as_echo "found" >&6; } else as_fn_error $? " *** SAX1 support in libxml2 is required. enable it or use expat instead." "$LINENO" 5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$fc_saved_CFLAGS" fi # # Set default font directory # # Check whether --with-default-fonts was given. if test "${with_default_fonts+set}" = set; then : withval=$with_default_fonts; default_fonts="$withval" else default_fonts=yes fi case "$default_fonts" in yes) if test "$os_win32" = "yes"; then FC_DEFAULT_FONTS="WINDOWSFONTDIR" cat >>confdefs.h <<_ACEOF #define FC_DEFAULT_FONTS "WINDOWSFONTDIR" _ACEOF else FC_DEFAULT_FONTS="/usr/share/fonts" cat >>confdefs.h <<_ACEOF #define FC_DEFAULT_FONTS "/usr/share/fonts" _ACEOF fi ;; *) FC_DEFAULT_FONTS="$default_fonts" cat >>confdefs.h <<_ACEOF #define FC_DEFAULT_FONTS "$default_fonts" _ACEOF ;; esac # # Add more fonts if available. By default, add only the directories # with outline fonts; those with bitmaps can be added as desired in # local.conf or ~/.fonts.conf # # Check whether --with-add-fonts was given. if test "${with_add_fonts+set}" = set; then : withval=$with_add_fonts; add_fonts="$withval" else add_fonts=yes fi case "$add_fonts" in yes) FC_ADD_FONTS="" for dir in /usr/X11R6/lib/X11 /usr/X11/lib/X11 /usr/lib/X11; do case x"$FC_ADD_FONTS" in x) sub="$dir/fonts" if test -d "$sub"; then case x$FC_ADD_FONTS in x) FC_ADD_FONTS="$sub" ;; *) FC_ADD_FONTS="$FC_ADD_FONTS,$sub" ;; esac fi ;; esac done cat >>confdefs.h <<_ACEOF #define FC_ADD_FONTS "$add_fonts" _ACEOF ;; no) FC_ADD_FONTS="" ;; *) FC_ADD_FONTS="$add_fonts" cat >>confdefs.h <<_ACEOF #define FC_ADD_FONTS "$add_fonts" _ACEOF ;; esac FC_FONTPATH="" case "$FC_ADD_FONTS" in "") ;; *) FC_FONTPATH=`echo $FC_ADD_FONTS | sed -e 's/^//' -e 's/$/<\/dir>/' -e 's/,/<\/dir> /g'` ;; esac # # Set default cache directory path # # Check whether --with-cache-dir was given. if test "${with_cache_dir+set}" = set; then : withval=$with_cache_dir; fc_cachedir="$withval" else fc_cachedir=yes fi case $fc_cachedir in no|yes) if test "$os_win32" = "yes"; then fc_cachedir="LOCAL_APPDATA_FONTCONFIG_CACHE" else fc_cachedir='${localstatedir}/cache/${PACKAGE}' fi ;; *) ;; esac FC_CACHEDIR=${fc_cachedir} FC_FONTDATE=`LC_ALL=C date` # # Set configuration paths # # Check whether --with-templatedir was given. if test "${with_templatedir+set}" = set; then : withval=$with_templatedir; templatedir="$withval" else templatedir=yes fi # Check whether --with-baseconfigdir was given. if test "${with_baseconfigdir+set}" = set; then : withval=$with_baseconfigdir; baseconfigdir="$withval" else baseconfigdir=yes fi # Check whether --with-configdir was given. if test "${with_configdir+set}" = set; then : withval=$with_configdir; configdir="$withval" else configdir=yes fi # Check whether --with-xmldir was given. if test "${with_xmldir+set}" = set; then : withval=$with_xmldir; xmldir="$withval" else xmldir=yes fi case "$templatedir" in no|yes) templatedir='${datadir}'/fontconfig/conf.avail ;; *) ;; esac case "$baseconfigdir" in no|yes) baseconfigdir='${sysconfdir}'/fonts ;; *) ;; esac case "$configdir" in no|yes) configdir='${BASECONFIGDIR}'/conf.d ;; *) ;; esac case "$xmldir" in no|yes) xmldir='${datadir}'/xml/fontconfig ;; *) ;; esac TEMPLATEDIR=${templatedir} BASECONFIGDIR=${baseconfigdir} CONFIGDIR=${configdir} XMLDIR=${xmldir} # # Thread-safety primitives # { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Intel atomic primitives" >&5 $as_echo_n "checking for Intel atomic primitives... " >&6; } if ${fc_cv_have_intel_atomic_primitives+:} false; then : $as_echo_n "(cached) " >&6 else fc_cv_have_intel_atomic_primitives=false cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ void memory_barrier (void) { __sync_synchronize (); } int atomic_add (int *i) { return __sync_fetch_and_add (i, 1); } int mutex_trylock (int *m) { return __sync_lock_test_and_set (m, 1); } void mutex_unlock (int *m) { __sync_lock_release (m); } int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : fc_cv_have_intel_atomic_primitives=true fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fc_cv_have_intel_atomic_primitives" >&5 $as_echo "$fc_cv_have_intel_atomic_primitives" >&6; } if $fc_cv_have_intel_atomic_primitives; then $as_echo "#define HAVE_INTEL_ATOMIC_PRIMITIVES 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Solaris atomic operations" >&5 $as_echo_n "checking for Solaris atomic operations... " >&6; } if ${fc_cv_have_solaris_atomic_ops+:} false; then : $as_echo_n "(cached) " >&6 else fc_cv_have_solaris_atomic_ops=false cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* This requires Solaris Studio 12.2 or newer: */ #include void memory_barrier (void) { __machine_rw_barrier (); } int atomic_add (volatile unsigned *i) { return atomic_add_int_nv (i, 1); } void *atomic_ptr_cmpxchg (volatile void **target, void *cmp, void *newval) { return atomic_cas_ptr (target, cmp, newval); } int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : fc_cv_have_solaris_atomic_ops=true fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fc_cv_have_solaris_atomic_ops" >&5 $as_echo "$fc_cv_have_solaris_atomic_ops" >&6; } if $fc_cv_have_solaris_atomic_ops; then $as_echo "#define HAVE_SOLARIS_ATOMIC_OPS 1" >>confdefs.h fi if test "$os_win32" = no && ! $have_pthread; then for ac_header in sched.h do : ac_fn_c_check_header_mongrel "$LINENO" "sched.h" "ac_cv_header_sched_h" "$ac_includes_default" if test "x$ac_cv_header_sched_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SCHED_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing sched_yield" >&5 $as_echo_n "checking for library containing sched_yield... " >&6; } if ${ac_cv_search_sched_yield+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char sched_yield (); int main () { return sched_yield (); ; return 0; } _ACEOF for ac_lib in '' rt; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_sched_yield=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_sched_yield+:} false; then : break fi done if ${ac_cv_search_sched_yield+:} false; then : else ac_cv_search_sched_yield=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sched_yield" >&5 $as_echo "$ac_cv_search_sched_yield" >&6; } ac_res=$ac_cv_search_sched_yield if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" $as_echo "#define HAVE_SCHED_YIELD 1" >>confdefs.h fi fi have_pthread=false if test "$os_win32" = no; then ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ax_pthread_ok=no # We used to check for pthread.h first, but this fails if pthread.h # requires special compiler flags (e.g. on True64 or Sequent). # It gets checked for in the link test anyway. # First of all, check if the user has set any of the PTHREAD_LIBS, # etcetera environment variables, and if threads linking works using # them: if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5 $as_echo_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_join (); int main () { return pthread_join (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ax_pthread_ok=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 $as_echo "$ax_pthread_ok" >&6; } if test x"$ax_pthread_ok" = xno; then PTHREAD_LIBS="" PTHREAD_CFLAGS="" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" fi # We must check for the threads library under a number of different # names; the ordering is very important because some systems # (e.g. DEC) have both -lpthread and -lpthreads, where one of the # libraries is broken (non-POSIX). # Create a list of thread flags to try. Items starting with a "-" are # C compiler flags, and other items are library names, except for "none" # which indicates that we try without any flags at all, and "pthread-config" # which is a program returning the flags for the Pth emulation library. ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" # The ordering *is* (sometimes) important. Some notes on the # individual items follow: # pthreads: AIX (must check this before -lpthread) # none: in case threads are in libc; should be tried before -Kthread and # other compiler flags to prevent continual compiler warnings # -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) # -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) # -pthreads: Solaris/gcc # -mthreads: Mingw32/gcc, Lynx/gcc # -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it # doesn't hurt to check since this sometimes defines pthreads too; # also defines -D_REENTRANT) # ... -mt is also the pthreads flag for HP/aCC # pthread: Linux, etcetera # --thread-safe: KAI C++ # pthread-config: use pthread-config program (for GNU Pth library) case ${host_os} in solaris*) # On Solaris (at least, for some versions), libc contains stubbed # (non-functional) versions of the pthreads routines, so link-based # tests will erroneously succeed. (We need to link with -pthreads/-mt/ # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather # a function called by this macro, so we could check for that, but # who knows whether they'll stub that too in a future libc.) So, # we'll just look for -pthreads and -lpthread first: ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags" ;; darwin*) ax_pthread_flags="-pthread $ax_pthread_flags" ;; netbsd*) # use libc stubs, don't link against libpthread, to allow # dynamic loading ax_pthread_flags="" ;; esac # Clang doesn't consider unrecognized options an error unless we specify # -Werror. We throw in some extra Clang-specific options to ensure that # this doesn't happen for GCC, which also accepts -Werror. { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler needs -Werror to reject unknown flags" >&5 $as_echo_n "checking if compiler needs -Werror to reject unknown flags... " >&6; } save_CFLAGS="$CFLAGS" ax_pthread_extra_flags="-Werror" CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo(void); int main () { foo() ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else ax_pthread_extra_flags= { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$save_CFLAGS" if test x"$ax_pthread_ok" = xno; then for flag in $ax_pthread_flags; do case $flag in none) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 $as_echo_n "checking whether pthreads work without any flags... " >&6; } ;; -*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $flag" >&5 $as_echo_n "checking whether pthreads work with $flag... " >&6; } PTHREAD_CFLAGS="$flag" ;; pthread-config) # Extract the first word of "pthread-config", so it can be a program name with args. set dummy pthread-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ax_pthread_config+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ax_pthread_config"; then ac_cv_prog_ax_pthread_config="$ax_pthread_config" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ax_pthread_config="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_ax_pthread_config" && ac_cv_prog_ax_pthread_config="no" fi fi ax_pthread_config=$ac_cv_prog_ax_pthread_config if test -n "$ax_pthread_config"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_config" >&5 $as_echo "$ax_pthread_config" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x"$ax_pthread_config" = xno; then continue; fi PTHREAD_CFLAGS="`pthread-config --cflags`" PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$flag" >&5 $as_echo_n "checking for the pthreads library -l$flag... " >&6; } PTHREAD_LIBS="-l$flag" ;; esac save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags" # Check for various functions. We must include pthread.h, # since some functions may be macros. (On the Sequent, we # need a special flag -Kthread to make this header compile.) # We check for pthread_join because it is in -lpthread on IRIX # while pthread_create is in libc. We check for pthread_attr_init # due to DEC craziness with -lpthreads. We check for # pthread_cleanup_push because it is one of the few pthread # functions on Solaris that doesn't have a non-functional libc stub. # We try pthread_create on general principles. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include static void routine(void *a) { a = 0; } static void *start_routine(void *a) { return a; } int main () { pthread_t th; pthread_attr_t attr; pthread_create(&th, 0, start_routine, 0); pthread_join(th, 0); pthread_attr_init(&attr); pthread_cleanup_push(routine, 0); pthread_cleanup_pop(0) /* ; */ ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ax_pthread_ok=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 $as_echo "$ax_pthread_ok" >&6; } if test "x$ax_pthread_ok" = xyes; then break; fi PTHREAD_LIBS="" PTHREAD_CFLAGS="" done fi # Various other checks: if test "x$ax_pthread_ok" = xyes; then save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 $as_echo_n "checking for joinable pthread attribute... " >&6; } attr_name=unknown for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int attr = $attr; return attr /* ; */ ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : attr_name=$attr; break fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done { $as_echo "$as_me:${as_lineno-$LINENO}: result: $attr_name" >&5 $as_echo "$attr_name" >&6; } if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then cat >>confdefs.h <<_ACEOF #define PTHREAD_CREATE_JOINABLE $attr_name _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if more special flags are required for pthreads" >&5 $as_echo_n "checking if more special flags are required for pthreads... " >&6; } flag=no case ${host_os} in aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";; osf* | hpux*) flag="-D_REENTRANT";; solaris*) if test "$GCC" = "yes"; then flag="-D_REENTRANT" else # TODO: What about Clang on Solaris? flag="-mt -D_REENTRANT" fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag" >&5 $as_echo "$flag" >&6; } if test "x$flag" != xno; then PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5 $as_echo_n "checking for PTHREAD_PRIO_INHERIT... " >&6; } if ${ax_cv_PTHREAD_PRIO_INHERIT+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int i = PTHREAD_PRIO_INHERIT; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ax_cv_PTHREAD_PRIO_INHERIT=yes else ax_cv_PTHREAD_PRIO_INHERIT=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5 $as_echo "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; } if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"; then : $as_echo "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" # More AIX lossage: compile with *_r variant if test "x$GCC" != xyes; then case $host_os in aix*) case "x/$CC" in #( x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6) : #handle absolute path differently from PATH based program lookup case "x$CC" in #( x/*) : if as_fn_executable_p ${CC}_r; then : PTHREAD_CC="${CC}_r" fi ;; #( *) : for ac_prog in ${CC}_r do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_PTHREAD_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$PTHREAD_CC"; then ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_PTHREAD_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi PTHREAD_CC=$ac_cv_prog_PTHREAD_CC if test -n "$PTHREAD_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5 $as_echo "$PTHREAD_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$PTHREAD_CC" && break done test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" ;; esac ;; #( *) : ;; esac ;; esac fi fi test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x"$ax_pthread_ok" = xyes; then have_pthread=true : else ax_pthread_ok=no fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi if $have_pthread; then LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" CC="$PTHREAD_CC" $as_echo "#define HAVE_PTHREAD 1" >>confdefs.h fi if $have_pthread; then HAVE_PTHREAD_TRUE= HAVE_PTHREAD_FALSE='#' else HAVE_PTHREAD_TRUE='#' HAVE_PTHREAD_FALSE= fi # # Let people not build/install docs if they don't have docbook # # Extract the first word of "docbook2html", so it can be a program name with args. set dummy docbook2html; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_HASDOCBOOK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$HASDOCBOOK"; then ac_cv_prog_HASDOCBOOK="$HASDOCBOOK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_HASDOCBOOK="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_HASDOCBOOK" && ac_cv_prog_HASDOCBOOK="no" fi fi HASDOCBOOK=$ac_cv_prog_HASDOCBOOK if test -n "$HASDOCBOOK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HASDOCBOOK" >&5 $as_echo "$HASDOCBOOK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$HASDOCBOOK" = xyes; then USEDOCBOOK_TRUE= USEDOCBOOK_FALSE='#' else USEDOCBOOK_TRUE='#' USEDOCBOOK_FALSE= fi default_docs="yes" # # Check if docs exist or can be created # if test x$HASDOCBOOK = xno; then if test -f $srcdir/doc/fonts-conf.5; then : else default_docs="no" fi fi # Check whether --enable-docs was given. if test "${enable_docs+set}" = set; then : enableval=$enable_docs; else enable_docs=$default_docs fi if test "x$enable_docs" = xyes; then ENABLE_DOCS_TRUE= ENABLE_DOCS_FALSE='#' else ENABLE_DOCS_TRUE='#' ENABLE_DOCS_FALSE= fi if test "x$enable_docs" = xyes; then tmp=funcs.$$ cat $srcdir/doc/*.fncs | awk ' /^@TITLE@/ { if (!done) { printf ("%s\n", $2); done = 1; } } /^@FUNC@/ { if (!done) { printf ("%s\n", $2); done = 1; } } /^@@/ { done = 0; }' > $tmp DOCMAN3=`cat $tmp | awk '{ printf ("%s.3 ", $1); }'` echo DOCMAN3 $DOCMAN3 rm -f $tmp else DOCMAN3="" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } if ${ac_cv_c_bigendian+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown # See if we're dealing with a universal compiler. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __APPLE_CC__ not a universal capable compiler #endif typedef int dummy; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # Check for potential -arch flags. It is not universal unless # there are at least two -arch flags with different values. ac_arch= ac_prev= for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do if test -n "$ac_prev"; then case $ac_word in i?86 | x86_64 | ppc | ppc64) if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then ac_arch=$ac_word else ac_cv_c_bigendian=universal break fi ;; esac ac_prev= elif test "x$ac_word" = "x-arch"; then ac_prev=arch fi done fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_c_bigendian = unknown; then # See if sys/param.h defines the BYTE_ORDER macro. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ && LITTLE_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if BYTE_ORDER != BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to _BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #ifndef _BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # Compile a test program. if test "$cross_compiling" = yes; then : # Try to guess by grepping values from an object file. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; int use_ascii (int i) { return ascii_mm[i] + ascii_ii[i]; } short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; int use_ebcdic (int i) { return ebcdic_mm[i] + ebcdic_ii[i]; } extern int foo; int main () { return use_ascii (foo) == use_ebcdic (foo); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then ac_cv_c_bigendian=yes fi if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then if test "$ac_cv_c_bigendian" = unknown; then ac_cv_c_bigendian=no else # finding both strings is unlikely to happen, but who knows? ac_cv_c_bigendian=unknown fi fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* Are we little or big endian? From Harbison&Steele. */ union { long int l; char c[sizeof (long int)]; } u; u.l = 1; return u.c[sizeof (long int) - 1] == 1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_bigendian=no else ac_cv_c_bigendian=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 $as_echo "$ac_cv_c_bigendian" >&6; } case $ac_cv_c_bigendian in #( yes) $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h ;; #( no) ;; #( universal) $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h ;; #( *) as_fn_error $? "unknown endianness presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; esac # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 $as_echo_n "checking size of void *... " >&6; } if ${ac_cv_sizeof_void_p+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then : else if test "$ac_cv_type_void_p" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (void *) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_void_p=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5 $as_echo "$ac_cv_sizeof_void_p" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_VOID_P $ac_cv_sizeof_void_p _ACEOF # The cast to long int works around a bug in the HP C Compiler, # see AC_CHECK_SIZEOF for more information. { $as_echo "$as_me:${as_lineno-$LINENO}: checking alignment of double" >&5 $as_echo_n "checking alignment of double... " >&6; } if ${ac_cv_alignof_double+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) offsetof (ac__type_alignof_, y)" "ac_cv_alignof_double" "$ac_includes_default #ifndef offsetof # define offsetof(type, member) ((char *) &((type *) 0)->member - (char *) 0) #endif typedef struct { char x; double y; } ac__type_alignof_;"; then : else if test "$ac_cv_type_double" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute alignment of double See \`config.log' for more details" "$LINENO" 5; } else ac_cv_alignof_double=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_alignof_double" >&5 $as_echo "$ac_cv_alignof_double" >&6; } cat >>confdefs.h <<_ACEOF #define ALIGNOF_DOUBLE $ac_cv_alignof_double _ACEOF ac_config_files="$ac_config_files Makefile fontconfig/Makefile fc-lang/Makefile fc-glyphname/Makefile fc-case/Makefile src/Makefile conf.d/Makefile fc-cache/Makefile fc-cat/Makefile fc-list/Makefile fc-match/Makefile fc-pattern/Makefile fc-query/Makefile fc-scan/Makefile fc-validate/Makefile doc/Makefile doc/version.sgml test/Makefile fontconfig.spec fontconfig.pc fontconfig-zip" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${OS_WIN32_TRUE}" && test -z "${OS_WIN32_FALSE}"; then as_fn_error $? "conditional \"OS_WIN32\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${MS_LIB_AVAILABLE_TRUE}" && test -z "${MS_LIB_AVAILABLE_FALSE}"; then as_fn_error $? "conditional \"MS_LIB_AVAILABLE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${CROSS_COMPILING_TRUE}" && test -z "${CROSS_COMPILING_FALSE}"; then as_fn_error $? "conditional \"CROSS_COMPILING\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_SHARED_TRUE}" && test -z "${ENABLE_SHARED_FALSE}"; then as_fn_error $? "conditional \"ENABLE_SHARED\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_PTHREAD_TRUE}" && test -z "${HAVE_PTHREAD_FALSE}"; then as_fn_error $? "conditional \"HAVE_PTHREAD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${USEDOCBOOK_TRUE}" && test -z "${USEDOCBOOK_FALSE}"; then as_fn_error $? "conditional \"USEDOCBOOK\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_DOCS_TRUE}" && test -z "${ENABLE_DOCS_FALSE}"; then as_fn_error $? "conditional \"ENABLE_DOCS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by fontconfig $as_me 2.11.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ fontconfig config.status 2.11.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in AS \ DLLTOOL \ OBJDUMP \ SHELL \ ECHO \ PATH_SEPARATOR \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ nm_file_list_spec \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_separator \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' # variables for create stdint.h replacement PACKAGE="$PACKAGE" VERSION="$VERSION" ac_stdint_h="$ac_stdint_h" _ac_stdint_h=`$as_echo "_$PACKAGE-$ac_stdint_h" | $as_tr_cpp` ac_cv_stdint_message="$ac_cv_stdint_message" ac_cv_header_stdint_t="$ac_cv_header_stdint_t" ac_cv_header_stdint_x="$ac_cv_header_stdint_x" ac_cv_header_stdint_o="$ac_cv_header_stdint_o" ac_cv_header_stdint_u="$ac_cv_header_stdint_u" ac_cv_type_uint64_t="$ac_cv_type_uint64_t" ac_cv_type_u_int64_t="$ac_cv_type_u_int64_t" ac_cv_char_data_model="$ac_cv_char_data_model" ac_cv_long_data_model="$ac_cv_long_data_model" ac_cv_type_int_least32_t="$ac_cv_type_int_least32_t" ac_cv_type_int_fast32_t="$ac_cv_type_int_fast32_t" ac_cv_type_intmax_t="$ac_cv_type_intmax_t" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "$ac_stdint_h") CONFIG_COMMANDS="$CONFIG_COMMANDS $ac_stdint_h" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "fontconfig/Makefile") CONFIG_FILES="$CONFIG_FILES fontconfig/Makefile" ;; "fc-lang/Makefile") CONFIG_FILES="$CONFIG_FILES fc-lang/Makefile" ;; "fc-glyphname/Makefile") CONFIG_FILES="$CONFIG_FILES fc-glyphname/Makefile" ;; "fc-case/Makefile") CONFIG_FILES="$CONFIG_FILES fc-case/Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "conf.d/Makefile") CONFIG_FILES="$CONFIG_FILES conf.d/Makefile" ;; "fc-cache/Makefile") CONFIG_FILES="$CONFIG_FILES fc-cache/Makefile" ;; "fc-cat/Makefile") CONFIG_FILES="$CONFIG_FILES fc-cat/Makefile" ;; "fc-list/Makefile") CONFIG_FILES="$CONFIG_FILES fc-list/Makefile" ;; "fc-match/Makefile") CONFIG_FILES="$CONFIG_FILES fc-match/Makefile" ;; "fc-pattern/Makefile") CONFIG_FILES="$CONFIG_FILES fc-pattern/Makefile" ;; "fc-query/Makefile") CONFIG_FILES="$CONFIG_FILES fc-query/Makefile" ;; "fc-scan/Makefile") CONFIG_FILES="$CONFIG_FILES fc-scan/Makefile" ;; "fc-validate/Makefile") CONFIG_FILES="$CONFIG_FILES fc-validate/Makefile" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "doc/version.sgml") CONFIG_FILES="$CONFIG_FILES doc/version.sgml" ;; "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; "fontconfig.spec") CONFIG_FILES="$CONFIG_FILES fontconfig.spec" ;; "fontconfig.pc") CONFIG_FILES="$CONFIG_FILES fontconfig.pc" ;; "fontconfig-zip") CONFIG_FILES="$CONFIG_FILES fontconfig-zip" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":C) # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool 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. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="" # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build static libraries. build_old_libs=$enable_static # Assembler program. AS=$lt_AS # DLL creation program. DLLTOOL=$lt_DLLTOOL # Object dumper program. OBJDUMP=$lt_OBJDUMP # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The PATH separator for the build system. PATH_SEPARATOR=$lt_PATH_SEPARATOR # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method = "file_magic". file_magic_cmd=$lt_file_magic_cmd # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and in which our libraries should be installed. lt_sysroot=$lt_sysroot # The name of the directory that contains temporary libtool files. objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) if test x"$xsi_shell" = xyes; then sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ func_dirname ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ } # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_basename ()$/,/^} # func_basename /c\ func_basename ()\ {\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ func_dirname_and_basename ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ func_stripname ()\ {\ \ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ \ # positional parameters, so assign one to ordinary parameter first.\ \ func_stripname_result=${3}\ \ func_stripname_result=${func_stripname_result#"${1}"}\ \ func_stripname_result=${func_stripname_result%"${2}"}\ } # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ func_split_long_opt ()\ {\ \ func_split_long_opt_name=${1%%=*}\ \ func_split_long_opt_arg=${1#*=}\ } # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ func_split_short_opt ()\ {\ \ func_split_short_opt_arg=${1#??}\ \ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ } # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ func_lo2o ()\ {\ \ case ${1} in\ \ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ \ *) func_lo2o_result=${1} ;;\ \ esac\ } # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_xform ()$/,/^} # func_xform /c\ func_xform ()\ {\ func_xform_result=${1%.*}.lo\ } # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_arith ()$/,/^} # func_arith /c\ func_arith ()\ {\ func_arith_result=$(( $* ))\ } # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_len ()$/,/^} # func_len /c\ func_len ()\ {\ func_len_result=${#1}\ } # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$lt_shell_append" = xyes; then sed -e '/^func_append ()$/,/^} # func_append /c\ func_append ()\ {\ eval "${1}+=\\${2}"\ } # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ func_append_quoted ()\ {\ \ func_quote_for_eval "${2}"\ \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ } # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 $as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} fi mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ;; "$ac_stdint_h":C) { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_stdint_h : $_ac_stdint_h" >&5 $as_echo "$as_me: creating $ac_stdint_h : $_ac_stdint_h" >&6;} ac_stdint=$tmp/_stdint.h echo "#ifndef" $_ac_stdint_h >$ac_stdint echo "#define" $_ac_stdint_h "1" >>$ac_stdint echo "#ifndef" _GENERATED_STDINT_H >>$ac_stdint echo "#define" _GENERATED_STDINT_H '"'$PACKAGE $VERSION'"' >>$ac_stdint echo "/* generated $ac_cv_stdint_message */" >>$ac_stdint if test "_$ac_cv_header_stdint_t" != "_" ; then echo "#define _STDINT_HAVE_STDINT_H" "1" >>$ac_stdint echo "#include " >>$ac_stdint echo "#endif" >>$ac_stdint echo "#endif" >>$ac_stdint else cat >>$ac_stdint < #else #include /* .................... configured part ............................ */ STDINT_EOF echo "/* whether we have a C99 compatible stdint header file */" >>$ac_stdint if test "_$ac_cv_header_stdint_x" != "_" ; then ac_header="$ac_cv_header_stdint_x" echo "#define _STDINT_HEADER_INTPTR" '"'"$ac_header"'"' >>$ac_stdint else echo "/* #undef _STDINT_HEADER_INTPTR */" >>$ac_stdint fi echo "/* whether we have a C96 compatible inttypes header file */" >>$ac_stdint if test "_$ac_cv_header_stdint_o" != "_" ; then ac_header="$ac_cv_header_stdint_o" echo "#define _STDINT_HEADER_UINT32" '"'"$ac_header"'"' >>$ac_stdint else echo "/* #undef _STDINT_HEADER_UINT32 */" >>$ac_stdint fi echo "/* whether we have a BSD compatible inet types header */" >>$ac_stdint if test "_$ac_cv_header_stdint_u" != "_" ; then ac_header="$ac_cv_header_stdint_u" echo "#define _STDINT_HEADER_U_INT32" '"'"$ac_header"'"' >>$ac_stdint else echo "/* #undef _STDINT_HEADER_U_INT32 */" >>$ac_stdint fi echo "" >>$ac_stdint if test "_$ac_header" != "_" ; then if test "$ac_header" != "stddef.h" ; then echo "#include <$ac_header>" >>$ac_stdint echo "" >>$ac_stdint fi fi echo "/* which 64bit typedef has been found */" >>$ac_stdint if test "$ac_cv_type_uint64_t" = "yes" ; then echo "#define _STDINT_HAVE_UINT64_T" "1" >>$ac_stdint else echo "/* #undef _STDINT_HAVE_UINT64_T */" >>$ac_stdint fi if test "$ac_cv_type_u_int64_t" = "yes" ; then echo "#define _STDINT_HAVE_U_INT64_T" "1" >>$ac_stdint else echo "/* #undef _STDINT_HAVE_U_INT64_T */" >>$ac_stdint fi echo "" >>$ac_stdint echo "/* which type model has been detected */" >>$ac_stdint if test "_$ac_cv_char_data_model" != "_" ; then echo "#define _STDINT_CHAR_MODEL" "$ac_cv_char_data_model" >>$ac_stdint echo "#define _STDINT_LONG_MODEL" "$ac_cv_long_data_model" >>$ac_stdint else echo "/* #undef _STDINT_CHAR_MODEL // skipped */" >>$ac_stdint echo "/* #undef _STDINT_LONG_MODEL // skipped */" >>$ac_stdint fi echo "" >>$ac_stdint echo "/* whether int_least types were detected */" >>$ac_stdint if test "$ac_cv_type_int_least32_t" = "yes"; then echo "#define _STDINT_HAVE_INT_LEAST32_T" "1" >>$ac_stdint else echo "/* #undef _STDINT_HAVE_INT_LEAST32_T */" >>$ac_stdint fi echo "/* whether int_fast types were detected */" >>$ac_stdint if test "$ac_cv_type_int_fast32_t" = "yes"; then echo "#define _STDINT_HAVE_INT_FAST32_T" "1" >>$ac_stdint else echo "/* #undef _STDINT_HAVE_INT_FAST32_T */" >>$ac_stdint fi echo "/* whether intmax_t type was detected */" >>$ac_stdint if test "$ac_cv_type_intmax_t" = "yes"; then echo "#define _STDINT_HAVE_INTMAX_T" "1" >>$ac_stdint else echo "/* #undef _STDINT_HAVE_INTMAX_T */" >>$ac_stdint fi echo "" >>$ac_stdint cat >>$ac_stdint <= 199901L #define _HAVE_UINT64_T #define _HAVE_LONGLONG_UINT64_T typedef long long int64_t; typedef unsigned long long uint64_t; #elif !defined __STRICT_ANSI__ #if defined _MSC_VER || defined __WATCOMC__ || defined __BORLANDC__ #define _HAVE_UINT64_T typedef __int64 int64_t; typedef unsigned __int64 uint64_t; #elif defined __GNUC__ || defined __MWERKS__ || defined __ELF__ /* note: all ELF-systems seem to have loff-support which needs 64-bit */ #if !defined _NO_LONGLONG #define _HAVE_UINT64_T #define _HAVE_LONGLONG_UINT64_T typedef long long int64_t; typedef unsigned long long uint64_t; #endif #elif defined __alpha || (defined __mips && defined _ABIN32) #if !defined _NO_LONGLONG typedef long int64_t; typedef unsigned long uint64_t; #endif /* compiler/cpu type to define int64_t */ #endif #endif #endif #if defined _STDINT_HAVE_U_INT_TYPES /* int8_t int16_t int32_t defined by inet code, redeclare the u_intXX types */ typedef u_int8_t uint8_t; typedef u_int16_t uint16_t; typedef u_int32_t uint32_t; /* glibc compatibility */ #ifndef __int8_t_defined #define __int8_t_defined #endif #endif #ifdef _STDINT_NEED_INT_MODEL_T /* we must guess all the basic types. Apart from byte-adressable system, */ /* there a few 32-bit-only dsp-systems that we guard with BYTE_MODEL 8-} */ /* (btw, those nibble-addressable systems are way off, or so we assume) */ #if defined _STDINT_BYTE_MODEL #if _STDINT_LONG_MODEL+0 == 242 /* 2:4:2 = IP16 = a normal 16-bit system */ typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned long uint32_t; #ifndef __int8_t_defined #define __int8_t_defined typedef char int8_t; typedef short int16_t; typedef long int32_t; #endif #elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL == 444 /* 2:4:4 = LP32 = a 32-bit system derived from a 16-bit */ /* 4:4:4 = ILP32 = a normal 32-bit system */ typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; #ifndef __int8_t_defined #define __int8_t_defined typedef char int8_t; typedef short int16_t; typedef int int32_t; #endif #elif _STDINT_LONG_MODEL+0 == 484 || _STDINT_LONG_MODEL+0 == 488 /* 4:8:4 = IP32 = a 32-bit system prepared for 64-bit */ /* 4:8:8 = LP64 = a normal 64-bit system */ typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; #ifndef __int8_t_defined #define __int8_t_defined typedef char int8_t; typedef short int16_t; typedef int int32_t; #endif /* this system has a "long" of 64bit */ #ifndef _HAVE_UINT64_T #define _HAVE_UINT64_T typedef unsigned long uint64_t; typedef long int64_t; #endif #elif _STDINT_LONG_MODEL+0 == 448 /* LLP64 a 64-bit system derived from a 32-bit system */ typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; #ifndef __int8_t_defined #define __int8_t_defined typedef char int8_t; typedef short int16_t; typedef int int32_t; #endif /* assuming the system has a "long long" */ #ifndef _HAVE_UINT64_T #define _HAVE_UINT64_T #define _HAVE_LONGLONG_UINT64_T typedef unsigned long long uint64_t; typedef long long int64_t; #endif #else #define _STDINT_NO_INT32_T #endif #else #define _STDINT_NO_INT8_T #define _STDINT_NO_INT32_T #endif #endif /* * quote from SunOS-5.8 sys/inttypes.h: * Use at your own risk. As of February 1996, the committee is squarely * behind the fixed sized types; the "least" and "fast" types are still being * discussed. The probability that the "fast" types may be removed before * the standard is finalized is high enough that they are not currently * implemented. */ #if defined _STDINT_NEED_INT_LEAST_T typedef int8_t int_least8_t; typedef int16_t int_least16_t; typedef int32_t int_least32_t; #ifdef _HAVE_UINT64_T typedef int64_t int_least64_t; #endif typedef uint8_t uint_least8_t; typedef uint16_t uint_least16_t; typedef uint32_t uint_least32_t; #ifdef _HAVE_UINT64_T typedef uint64_t uint_least64_t; #endif /* least types */ #endif #if defined _STDINT_NEED_INT_FAST_T typedef int8_t int_fast8_t; typedef int int_fast16_t; typedef int32_t int_fast32_t; #ifdef _HAVE_UINT64_T typedef int64_t int_fast64_t; #endif typedef uint8_t uint_fast8_t; typedef unsigned uint_fast16_t; typedef uint32_t uint_fast32_t; #ifdef _HAVE_UINT64_T typedef uint64_t uint_fast64_t; #endif /* fast types */ #endif #ifdef _STDINT_NEED_INTMAX_T #ifdef _HAVE_UINT64_T typedef int64_t intmax_t; typedef uint64_t uintmax_t; #else typedef long intmax_t; typedef unsigned long uintmax_t; #endif #endif #ifdef _STDINT_NEED_INTPTR_T #ifndef __intptr_t_defined #define __intptr_t_defined /* we encourage using "long" to store pointer values, never use "int" ! */ #if _STDINT_LONG_MODEL+0 == 242 || _STDINT_LONG_MODEL+0 == 484 typedef unsigned int uintptr_t; typedef int intptr_t; #elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL+0 == 444 typedef unsigned long uintptr_t; typedef long intptr_t; #elif _STDINT_LONG_MODEL+0 == 448 && defined _HAVE_UINT64_T typedef uint64_t uintptr_t; typedef int64_t intptr_t; #else /* matches typical system types ILP32 and LP64 - but not IP16 or LLP64 */ typedef unsigned long uintptr_t; typedef long intptr_t; #endif #endif #endif /* The ISO C99 standard specifies that in C++ implementations these should only be defined if explicitly requested. */ #if !defined __cplusplus || defined __STDC_CONSTANT_MACROS #ifndef UINT32_C /* Signed. */ # define INT8_C(c) c # define INT16_C(c) c # define INT32_C(c) c # ifdef _HAVE_LONGLONG_UINT64_T # define INT64_C(c) c ## L # else # define INT64_C(c) c ## LL # endif /* Unsigned. */ # define UINT8_C(c) c ## U # define UINT16_C(c) c ## U # define UINT32_C(c) c ## U # ifdef _HAVE_LONGLONG_UINT64_T # define UINT64_C(c) c ## UL # else # define UINT64_C(c) c ## ULL # endif /* Maximal type. */ # ifdef _HAVE_LONGLONG_UINT64_T # define INTMAX_C(c) c ## L # define UINTMAX_C(c) c ## UL # else # define INTMAX_C(c) c ## LL # define UINTMAX_C(c) c ## ULL # endif /* literalnumbers */ #endif #endif /* These limits are merily those of a two complement byte-oriented system */ /* Minimum of signed integral types. */ # define INT8_MIN (-128) # define INT16_MIN (-32767-1) # define INT32_MIN (-2147483647-1) # define INT64_MIN (-__INT64_C(9223372036854775807)-1) /* Maximum of signed integral types. */ # define INT8_MAX (127) # define INT16_MAX (32767) # define INT32_MAX (2147483647) # define INT64_MAX (__INT64_C(9223372036854775807)) /* Maximum of unsigned integral types. */ # define UINT8_MAX (255) # define UINT16_MAX (65535) # define UINT32_MAX (4294967295U) # define UINT64_MAX (__UINT64_C(18446744073709551615)) /* Minimum of signed integral types having a minimum size. */ # define INT_LEAST8_MIN INT8_MIN # define INT_LEAST16_MIN INT16_MIN # define INT_LEAST32_MIN INT32_MIN # define INT_LEAST64_MIN INT64_MIN /* Maximum of signed integral types having a minimum size. */ # define INT_LEAST8_MAX INT8_MAX # define INT_LEAST16_MAX INT16_MAX # define INT_LEAST32_MAX INT32_MAX # define INT_LEAST64_MAX INT64_MAX /* Maximum of unsigned integral types having a minimum size. */ # define UINT_LEAST8_MAX UINT8_MAX # define UINT_LEAST16_MAX UINT16_MAX # define UINT_LEAST32_MAX UINT32_MAX # define UINT_LEAST64_MAX UINT64_MAX /* shortcircuit*/ #endif /* once */ #endif #endif STDINT_EOF fi if cmp -s $ac_stdint_h $ac_stdint 2>/dev/null; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_stdint_h is unchanged" >&5 $as_echo "$as_me: $ac_stdint_h is unchanged" >&6;} else ac_dir=`$as_dirname -- "$ac_stdint_h" || $as_expr X"$ac_stdint_h" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_stdint_h" : 'X\(//\)[^/]' \| \ X"$ac_stdint_h" : 'X\(//\)$' \| \ X"$ac_stdint_h" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_stdint_h" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p rm -f $ac_stdint_h mv $ac_stdint $ac_stdint_h fi ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi fontconfig-2.11.1/test-driver0000755000076400007640000000761112177675036013102 00000000000000#! /bin/sh # test-driver - basic testsuite driver script. scriptversion=2012-06-27.10; # UTC # Copyright (C) 2011-2013 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . # Make unconditional expansion of undefined variables an error. This # helps a lot in preventing typo-related bugs. set -u usage_error () { echo "$0: $*" >&2 print_usage >&2 exit 2 } print_usage () { cat <$log_file 2>&1 estatus=$? if test $enable_hard_errors = no && test $estatus -eq 99; then estatus=1 fi case $estatus:$expect_failure in 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; 0:*) col=$grn res=PASS recheck=no gcopy=no;; 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; *:*) col=$red res=FAIL recheck=yes gcopy=yes;; esac # Report outcome to console. echo "${col}${res}${std}: $test_name" # Register the test result, and other relevant metadata. echo ":test-result: $res" > $trs_file echo ":global-test-result: $res" >> $trs_file echo ":recheck: $recheck" >> $trs_file echo ":copy-in-global-log: $gcopy" >> $trs_file # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: fontconfig-2.11.1/Makefile.am0000664000076400007640000001222312267155333012726 00000000000000# # fontconfig/Makefile.am # # 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. 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 SUBDIRS += doc endif ACLOCAL_AMFLAGS = -I m4 EXTRA_DIST = \ fontconfig.pc.in \ fonts.conf.in \ fonts.dtd \ fontconfig.spec.in \ fontconfig.spec \ fontconfig-zip.in \ config-fixups.h CLEANFILES = fonts.conf DISTCLEANFILES = config.cache doltcompile MAINTAINERCLEANFILES = \ $(srcdir)/aclocal.m4 \ $(srcdir)/autoscan.log \ $(srcdir)/compile \ $(srcdir)/config.guess \ $(srcdir)/config.h.in \ $(srcdir)/config.sub \ $(srcdir)/configure.scan \ $(srcdir)/depcomp \ $(srcdir)/install-sh \ $(srcdir)/ltmain.sh \ $(srcdir)/missing \ $(srcdir)/mkinstalldirs \ $(srcdir)/test-driver \ `find "$(srcdir)" -type f -name Makefile.in -print` pkgconfig_DATA = fontconfig.pc baseconfigdir = $(BASECONFIGDIR) configdir = $(CONFIGDIR) xmldir = $(XMLDIR) xml_DATA = fonts.dtd if CROSS_COMPILING RUN_FC_CACHE_TEST=false else RUN_FC_CACHE_TEST=test -z "$(DESTDIR)" endif # Creating ChangeLog from git log: MAINTAINERCLEANFILES += $(srcdir)/ChangeLog EXTRA_DIST += ChangeLog ChangeLog: $(srcdir)/ChangeLog $(srcdir)/ChangeLog: if test -d "$(srcdir)/.git"; then \ (GIT_DIR=$(top_srcdir)/.git $(GIT) log --stat) | fmt --split-only > $@.tmp \ && mv -f $@.tmp $@ \ || ($(RM) $@.tmp; \ echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \ (test -f $@ || echo git-log is required to generate this file >> $@)); \ else \ test -f $@ || \ (echo A git checkout and git-log is required to generate ChangeLog >&2 && \ echo A git checkout and git-log is required to generate this file >> $@); \ fi .PHONY: ChangeLog FC_CONFIGDIR = $(subst $(BASECONFIGDIR)/,,$(CONFIGDIR)) fonts.conf: fonts.conf.in Makefile sed \ -e 's,@FC_CACHEDIR\@,$(FC_CACHEDIR),g' \ -e 's,@FC_DEFAULT_FONTS\@,$(FC_DEFAULT_FONTS),g' \ -e 's,@FC_FONTPATH\@,$(FC_FONTPATH),g' \ -e 's,@CONFIGDIR\@,$(FC_CONFIGDIR),g' \ -e 's,@PACKAGE\@,$(PACKAGE),g' \ -e 's,@VERSION\@,$(VERSION),g' \ $(srcdir)/$@.in > $@.tmp && \ mv $@.tmp $@ install-data-local: fonts.conf $(mkinstalldirs) $(DESTDIR)$(baseconfigdir) $(DESTDIR)$(fc_cachedir) if [ -f $(DESTDIR)$(baseconfigdir)/fonts.conf ]; then \ echo "backing up existing $(DESTDIR)$(baseconfigdir)/fonts.conf"; \ mv $(DESTDIR)$(baseconfigdir)/fonts.conf $(DESTDIR)$(baseconfigdir)/fonts.conf.bak; \ fi if [ -f $(srcdir)/fonts.conf ]; then \ echo " $(INSTALL_DATA) $(srcdir)/fonts.conf $(DESTDIR)$(baseconfigdir)/fonts.conf"; \ $(INSTALL_DATA) $(srcdir)/fonts.conf $(DESTDIR)$(baseconfigdir)/fonts.conf; \ else if [ -f fonts.conf ]; then \ echo " $(INSTALL_DATA) fonts.conf $(DESTDIR)$(baseconfigdir)/fonts.conf"; \ $(INSTALL_DATA) fonts.conf $(DESTDIR)$(baseconfigdir)/fonts.conf; \ fi; fi @(if $(RUN_FC_CACHE_TEST); then \ echo "fc-cache$(EXEEXT) -s -f -v"; \ fc-cache/fc-cache$(EXEEXT) -s -f -v; \ else \ echo "***"; \ echo "*** Warning: fonts.cache not built"; \ echo "***"; \ echo "*** Generate this file manually on host system using fc-cache"; \ echo "***"; \ fi) uninstall-local: if [ -f $(srcdir)/fonts.conf ]; then \ if cmp -s $(srcdir)/fonts.conf $(DESTDIR)$(baseconfigdir)/fonts.conf; then \ echo " uninstall standard $(DESTDIR)$(baseconfigdir)/fonts.conf"; \ $(RM) $(DESTDIR)$(baseconfigdir)/fonts.conf; \ fi; \ else if [ -f fonts.conf ]; then \ if cmp -s fonts.conf $(DESTDIR)$(baseconfigdir)/fonts.conf; then \ echo " uninstall standard $(DESTDIR)$(baseconfigdir)/fonts.conf"; \ $(RM) $(DESTDIR)$(baseconfigdir)/fonts.conf; \ fi; \ fi; fi debuild debuild-signed: debuild-dirs (cd $(distdir)/debian && debuild) debuild-unsigned: debuild-dirs (cd $(distdir)/debian && debuild -us -uc) debuild-dirs: distdir $(RM) $(PACKAGE)_$(VERSION).orig.tar.gz $(RM) -r $(distdir).orig cp -a $(distdir) $(distdir).orig $(RM) -r $(distdir).orig/debian DISTCHECK_CONFIGURE_FLAGS = -include $(top_srcdir)/git.mk fontconfig-2.11.1/config.sub0000755000076400007640000010550312177675036012666 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012, 2013 Free Software Foundation, Inc. timestamp='2012-12-29' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # Please send patches with a ChangeLog entry to config-patches@gnu.org. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # 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. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # 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 ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 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-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) 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 | -microblaze*) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -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*178) os=-lynxos178 ;; -lynx*5) os=-lynxos5 ;; -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 \ | aarch64 | aarch64_be \ | 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[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ | be32 | be64 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 \ | ns16k | ns32k \ | open8 \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-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-* \ | aarch64-* | aarch64_be-* \ | 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-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | 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-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # 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 ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; 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 ;; cr16 | cr16-*) basic_machine=cr16-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 ;; dicos) basic_machine=i686-pc os=-dicos ;; 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*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 ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze*) basic_machine=microblaze-xilinx ;; mingw64) basic_machine=x86_64-pc os=-mingw64 ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; 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-/'` ;; msys) basic_machine=i386-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; 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 ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; 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 ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; 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 | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) 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-* | ppc64p7-*) 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 | rdos64) basic_machine=x86_64-pc os=-rdos ;; rdos32) 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 ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; 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 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; 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 ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; 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 ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-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[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) 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. -auroraux) os=-auroraux ;; -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* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -bitrig* | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -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* | -toppers* | -drops* | -es*) # 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 ;; -dicos*) os=-dicos ;; -nacl*) ;; -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 score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; hexagon-*) os=-elf ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) 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 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; 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 ;; -cnk*|-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: fontconfig-2.11.1/missing0000755000076400007640000001533112177675036012301 00000000000000#! /bin/sh # Common wrapper for a few potentially missing GNU programs. scriptversion=2012-06-26.16; # UTC # Copyright (C) 1996-2013 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # 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. if test $# -eq 0; then echo 1>&2 "Try '$0 --help' for more information" exit 1 fi case $1 in --is-lightweight) # Used by our autoconf macros to check whether the available missing # script is modern enough. exit 0 ;; --run) # Back-compat with the calling convention used by older automake. shift ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due to PROGRAM being missing or too old. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal autoconf autoheader autom4te automake makeinfo bison yacc flex lex help2man Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 'g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: unknown '$1' option" echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; esac # Run the given program, remember its exit status. "$@"; st=$? # If it succeeded, we are done. test $st -eq 0 && exit 0 # Also exit now if we it failed (or wasn't found), and '--version' was # passed; such an option is passed most likely to detect whether the # program is present and works. case $2 in --version|--help) exit $st;; esac # Exit code 63 means version mismatch. This often happens when the user # tries to use an ancient version of a tool on a file that requires a # minimum version. if test $st -eq 63; then msg="probably too old" elif test $st -eq 127; then # Program was missing. msg="missing on your system" else # Program was found and executed, but failed. Give up. exit $st fi perl_URL=http://www.perl.org/ flex_URL=http://flex.sourceforge.net/ gnu_software_URL=http://www.gnu.org/software program_details () { case $1 in aclocal|automake) echo "The '$1' program is part of the GNU Automake package:" echo "<$gnu_software_URL/automake>" echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/autoconf>" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; autoconf|autom4te|autoheader) echo "The '$1' program is part of the GNU Autoconf package:" echo "<$gnu_software_URL/autoconf/>" echo "It also requires GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; esac } give_advice () { # Normalize program name to check for. normalized_program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` printf '%s\n' "'$1' is $msg." configure_deps="'configure.ac' or m4 files included by 'configure.ac'" case $normalized_program in autoconf*) echo "You should only need it if you modified 'configure.ac'," echo "or m4 files included by it." program_details 'autoconf' ;; autoheader*) echo "You should only need it if you modified 'acconfig.h' or" echo "$configure_deps." program_details 'autoheader' ;; automake*) echo "You should only need it if you modified 'Makefile.am' or" echo "$configure_deps." program_details 'automake' ;; aclocal*) echo "You should only need it if you modified 'acinclude.m4' or" echo "$configure_deps." program_details 'aclocal' ;; autom4te*) echo "You might have modified some maintainer files that require" echo "the 'automa4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) echo "You should only need it if you modified a '.y' file." echo "You may want to install the GNU Bison package:" echo "<$gnu_software_URL/bison/>" ;; lex*|flex*) echo "You should only need it if you modified a '.l' file." echo "You may want to install the Fast Lexical Analyzer package:" echo "<$flex_URL>" ;; help2man*) echo "You should only need it if you modified a dependency" \ "of a man page." echo "You may want to install the GNU Help2man package:" echo "<$gnu_software_URL/help2man/>" ;; makeinfo*) echo "You should only need it if you modified a '.texi' file, or" echo "any other file indirectly affecting the aspect of the manual." echo "You might want to install the Texinfo package:" echo "<$gnu_software_URL/texinfo/>" echo "The spurious makeinfo call might also be the consequence of" echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" echo "want to install GNU make:" echo "<$gnu_software_URL/make/>" ;; *) echo "You might have modified some files without having the proper" echo "tools for further handling them. Check the 'README' file, it" echo "often tells you about the needed prerequisites for installing" echo "this package. You may also peek at any GNU archive site, in" echo "case some other package contains this missing '$1' program." ;; esac } give_advice "$1" | sed -e '1s/^/WARNING: /' \ -e '2,$s/^/ /' >&2 # Propagate the correct exit status (expected to be 127 for a program # not found, 63 for a program that failed due to version mismatch). exit $st # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: fontconfig-2.11.1/fc-query/0000775000076400007640000000000012313745412012500 500000000000000fontconfig-2.11.1/fc-query/Makefile.am0000664000076400007640000000333212267155334014463 00000000000000# # fontconfig/fc-query/Makefile.am # # 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. bin_PROGRAMS=fc-query DOC2MAN = docbook2man FC_QUERY_SRC=${top_srcdir}/fc-query SGML = ${FC_QUERY_SRC}/fc-query.sgml AM_CPPFLAGS=-I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) BUILT_MANS=fc-query.1 if ENABLE_DOCS man_MANS=${BUILT_MANS} endif EXTRA_DIST=fc-query.sgml $(BUILT_MANS) CLEANFILES = fc_query_LDADD = ${top_builddir}/src/libfontconfig.la if USEDOCBOOK ${man_MANS}: ${SGML} $(AM_V_GEN) $(RM) $@; \ $(DOC2MAN) ${SGML}; \ $(RM) manpage.* all-local: $(man_MANS) CLEANFILES += ${man_MANS} else all-local: endif -include $(top_srcdir)/git.mk fontconfig-2.11.1/fc-query/fc-query.c0000664000076400007640000001100412267155334014321 00000000000000/* * fontconfig/fc-query/fc-query.c * * Copyright © 2003 Keith Packard * Copyright © 2008 Red Hat, Inc. * Red Hat Author(s): Behdad Esfahbod * * 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. */ #ifdef HAVE_CONFIG_H #include #else #ifdef linux #define HAVE_GETOPT_LONG 1 #endif #define HAVE_GETOPT 1 #endif #include #include #include #include #include #include #ifndef HAVE_GETOPT #define HAVE_GETOPT 0 #endif #ifndef HAVE_GETOPT_LONG #define HAVE_GETOPT_LONG 0 #endif #if HAVE_GETOPT_LONG #undef _GNU_SOURCE #define _GNU_SOURCE #include static const struct option longopts[] = { {"index", 1, 0, 'i'}, {"format", 1, 0, 'f'}, {"version", 0, 0, 'V'}, {"help", 0, 0, 'h'}, {NULL,0,0,0}, }; #else #if HAVE_GETOPT extern char *optarg; extern int optind, opterr, optopt; #endif #endif static void usage (char *program, int error) { FILE *file = error ? stderr : stdout; #if HAVE_GETOPT_LONG fprintf (file, "usage: %s [-Vh] [-i index] [-f FORMAT] [--index index] [--format FORMAT] [--version] [--help] font-file...\n", program); #else 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, " -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, " -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); } int main (int argc, char **argv) { int index_set = 0; int set_index = 0; FcChar8 *format = NULL; int err = 0; int i; #if HAVE_GETOPT_LONG || HAVE_GETOPT int c; #if HAVE_GETOPT_LONG while ((c = getopt_long (argc, argv, "i:f:Vh", longopts, NULL)) != -1) #else while ((c = getopt (argc, argv, "i:f:Vh")) != -1) #endif { switch (c) { case 'i': index_set = 1; set_index = atoi (optarg); break; case 'f': format = (FcChar8 *) strdup (optarg); break; case 'V': fprintf (stderr, "fontconfig version %d.%d.%d\n", FC_MAJOR, FC_MINOR, FC_REVISION); exit (0); case 'h': usage (argv[0], 0); default: usage (argv[0], 1); } } i = optind; #else i = 1; #endif if (i == argc) usage (argv[0], 1); for (; i < argc; i++) { int index; int count = 0; index = set_index; do { FcPattern *pat; pat = FcFreeTypeQuery ((FcChar8 *) argv[i], index, NULL, &count); if (pat) { if (format) { FcChar8 *s; s = FcPatternFormat (pat, format); if (s) { printf ("%s", s); FcStrFree (s); } } else { FcPatternPrint (pat); } FcPatternDestroy (pat); } else { fprintf (stderr, "Can't query face %d of font file %s\n", index, argv[i]); err = 1; } index++; } while (!index_set && index < count); } FcFini (); return err; } fontconfig-2.11.1/fc-query/fc-query.10000664000076400007640000000311312306310020014214 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FC-QUERY" "1" "Aug 13, 2008" "" "" .SH NAME fc-query \- query font files .SH SYNOPSIS .sp \fBfc-query\fR [ \fB-Vh\fR ] [ \fB [ -i \fIindex\fB ] [ --index \fIindex\fB ] \fR ] [ \fB [ -f \fIformat\fB ] [ --format \fIformat\fB ] \fR ] [ \fB--version\fR ] [ \fB--help\fR ] \fB\fIfont-file\fB\fR\fI...\fR .SH "DESCRIPTION" .PP \fBfc-query\fR queries \fIfont-file\fR(s) using the normal fontconfig rules and prints out font pattern for each face found. If \fB--index\fR is given, only one face of each file is queried, otherwise all faces are queried. .SH "OPTIONS" .PP This program follows the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. .TP \fB-i\fR Only query face indexed \fIindex\fR of each file. .TP \fB-f\fR Format output according to the format specifier \fIformat\fR\&. .TP \fB-V\fR Show version of the program and exit. .TP \fB-h\fR Show summary of options. .TP \fB\fIfont-file\fB\fR Query \fIfont-file\fR for font faces. .SH "RETURN CODES" .PP \fBfc-query\fR returns error code 0 for successful parsing, or 1 if any errors occured or if at least one font face could not be opened. .SH "SEE ALSO" .PP \fBfc-scan\fR(1) \fBFcFreeTypeQuery\fR(3) \fBFcPatternFormat\fR(3) \fBfc-cat\fR(1) \fBfc-cache\fR(1) \fBfc-list\fR(1) \fBfc-match\fR(1) \fBfc-pattern\fR(1) .PP The fontconfig user's guide, in HTML format: \fI/usr/share/doc/fontconfig/fontconfig-user.html\fR\&. .SH "AUTHOR" .PP This manual page was updated by Behdad Esfahbod \&. fontconfig-2.11.1/fc-query/Makefile.in0000664000076400007640000006133012313745337014476 00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # fontconfig/fc-query/Makefile.am # # Copyright © 2003 Keith Packard # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The authors make no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = fc-query$(EXEEXT) @USEDOCBOOK_TRUE@am__append_1 = ${man_MANS} subdir = fc-query DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" PROGRAMS = $(bin_PROGRAMS) fc_query_SOURCES = fc-query.c fc_query_OBJECTS = fc-query.$(OBJEXT) fc_query_DEPENDENCIES = ${top_builddir}/src/libfontconfig.la AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = fc-query.c DIST_SOURCES = fc-query.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 NROFF = nroff MANS = $(man_MANS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASECONFIGDIR = @BASECONFIGDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CONFIGDIR = @CONFIGDIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DOCMAN3 = @DOCMAN3@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@ EXPAT_CFLAGS = @EXPAT_CFLAGS@ EXPAT_LIBS = @EXPAT_LIBS@ FC_ADD_FONTS = @FC_ADD_FONTS@ FC_CACHEDIR = @FC_CACHEDIR@ FC_DEFAULT_FONTS = @FC_DEFAULT_FONTS@ FC_FONTDATE = @FC_FONTDATE@ FC_FONTPATH = @FC_FONTPATH@ FGREP = @FGREP@ FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ FREETYPE_LIBS = @FREETYPE_LIBS@ GIT = @GIT@ GPERF = @GPERF@ GREP = @GREP@ HASDOCBOOK = @HASDOCBOOK@ HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@ ICONV_CFLAGS = @ICONV_CFLAGS@ ICONV_LIBS = @ICONV_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBT_CURRENT = @LIBT_CURRENT@ LIBT_CURRENT_MINUS_AGE = @LIBT_CURRENT_MINUS_AGE@ LIBT_REVISION = @LIBT_REVISION@ LIBT_VERSION_INFO = @LIBT_VERSION_INFO@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ RM = @RM@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TEMPLATEDIR = @TEMPLATEDIR@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XMLDIR = @XMLDIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ ax_pthread_config = @ax_pthread_config@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fc_cachedir = @fc_cachedir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ ms_librarian = @ms_librarian@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfigdir = @pkgconfigdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ DOC2MAN = docbook2man FC_QUERY_SRC = ${top_srcdir}/fc-query SGML = ${FC_QUERY_SRC}/fc-query.sgml AM_CPPFLAGS = -I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) BUILT_MANS = fc-query.1 @ENABLE_DOCS_TRUE@man_MANS = ${BUILT_MANS} EXTRA_DIST = fc-query.sgml $(BUILT_MANS) CLEANFILES = $(am__append_1) fc_query_LDADD = ${top_builddir}/src/libfontconfig.la all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fc-query/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fc-query/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ || test -f $$p1 \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list fc-query$(EXEEXT): $(fc_query_OBJECTS) $(fc_query_DEPENDENCIES) $(EXTRA_fc_query_DEPENDENCIES) @rm -f fc-query$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fc_query_OBJECTS) $(fc_query_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fc-query.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man1: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) $(MANS) all-local installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-man uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-man1 \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-man uninstall-man1 @USEDOCBOOK_TRUE@${man_MANS}: ${SGML} @USEDOCBOOK_TRUE@ $(AM_V_GEN) $(RM) $@; \ @USEDOCBOOK_TRUE@ $(DOC2MAN) ${SGML}; \ @USEDOCBOOK_TRUE@ $(RM) manpage.* @USEDOCBOOK_TRUE@all-local: $(man_MANS) @USEDOCBOOK_FALSE@all-local: -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fontconfig-2.11.1/fc-query/fc-query.sgml0000664000076400007640000001330712267155334015051 00000000000000 manpage.1'. You may view the manual page with: `docbook-to-man manpage.sgml | nroff -man | less'. A typical entry in a Makefile or Makefile.am is: manpage.1: manpage.sgml docbook-to-man $< > $@ The docbook-to-man binary is found in the docbook-to-man package. Please remember that if you create the nroff version in one of the debian/rules file targets (such as build), you will need to include docbook-to-man in your Build-Depends control field. --> Behdad"> Esfahbod"> Aug 13, 2008"> 1"> behdad@behdad.org"> fc-query"> GNU"> GPL"> ]>
&dhemail;
&dhfirstname; &dhsurname; 2008 &dhusername; &dhdate;
&dhucpackage; &dhsection; &dhpackage; query font files &dhpackage; DESCRIPTION &dhpackage; queries font-file(s) using the normal fontconfig rules and prints out font pattern for each face found. If is given, only one face of each file is queried, otherwise all faces are queried. OPTIONS This program follows the usual &gnu; command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. Only query face indexed index of each file. Format output according to the format specifier format. Show version of the program and exit. Show summary of options. Query font-file for font faces. RETURN CODES fc-query returns error code 0 for successful parsing, or 1 if any errors occured or if at least one font face could not be opened. SEE ALSO fc-scan(1) FcFreeTypeQuery(3) FcPatternFormat(3) fc-cat(1) fc-cache(1) fc-list(1) fc-match(1) fc-pattern(1) The fontconfig user's guide, in HTML format: /usr/share/doc/fontconfig/fontconfig-user.html. AUTHOR This manual page was updated by &dhusername; &dhemail;.
fontconfig-2.11.1/fc-validate/0000775000076400007640000000000012313745412013124 500000000000000fontconfig-2.11.1/fc-validate/Makefile.am0000664000076400007640000000340312267155334015106 00000000000000# # fontconfig/fc-query/Makefile.am # # 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. bin_PROGRAMS=fc-validate DOC2MAN = docbook2man FC_VALIDATE_SRC=${top_srcdir}/fc-validate SGML = ${FC_VALIDATE_SRC}/fc-validate.sgml AM_CPPFLAGS=-I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) BUILT_MANS=fc-validate.1 if ENABLE_DOCS man_MANS=${BUILT_MANS} endif EXTRA_DIST=fc-validate.sgml $(BUILT_MANS) CLEANFILES = fc_validate_LDADD = ${top_builddir}/src/libfontconfig.la $(FREETYPE_LIBS) if USEDOCBOOK ${man_MANS}: ${SGML} $(AM_V_GEN) $(RM) $@; \ $(DOC2MAN) ${SGML}; \ $(RM) manpage.* all-local: $(man_MANS) CLEANFILES += $(man_MANS) else all-local: endif -include $(top_srcdir)/git.mk fontconfig-2.11.1/fc-validate/fc-validate.10000664000076400007640000000264412306310021015275 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FC-VALIDATE" "1" "Sep 10, 2012" "" "" .SH NAME fc-validate \- validate font files .SH SYNOPSIS .sp \fBfc-validate\fR [ \fB-Vhv\fR ] [ \fB [ -i \fIindex\fB ] [ --index \fIindex\fB ] \fR ] [ \fB [ -l \fIlang\fB ] [ --lang \fIlang\fB ] \fR ] [ \fB--verbose\fR ] [ \fB--version\fR ] [ \fB--help\fR ] \fB\fIfont-file\fB\fR\fI...\fR .SH "DESCRIPTION" .PP \fBfc-validate\fR validates \fIfont-file\fR(s) if each fonts satisfies the language coverage according to the orthography files in fontconfig. If \fB--index\fR is given, only one face of each file is validated, otherwise all faces are validated. .SH "OPTIONS" .PP This program follows the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. .TP \fB-i\fR Only query face indexed \fIindex\fR of each file. .TP \fB-l\fR Set \fIlang\fR as a language instead of current locale. this is used for \fB-m\fR\&. .TP \fB-v\fR Show more detailed information. .TP \fB-V\fR Show version of the program and exit. .TP \fB-h\fR Show summary of options. .TP \fB\fIfont-file\fB\fR Query \fIfont-file\fR for font faces. .SH "RETURN CODES" .PP \fBfc-validate\fR returns error code 0 for successful parsing, or 1 if any errors occured or if at least one font face could not be opened. .SH "AUTHOR" .PP This manual page was updated by Akira TAGOH \&. fontconfig-2.11.1/fc-validate/fc-validate.sgml0000664000076400007640000001261112267155334016116 00000000000000 manpage.1'. You may view the manual page with: `docbook-to-man manpage.sgml | nroff -man | less'. A typical entry in a Makefile or Makefile.am is: manpage.1: manpage.sgml docbook-to-man $< > $@ The docbook-to-man binary is found in the docbook-to-man package. Please remember that if you create the nroff version in one of the debian/rules file targets (such as build), you will need to include docbook-to-man in your Build-Depends control field. --> Akira"> TAGOH"> Sep 10, 2012"> 1"> akira@tagoh.org"> fc-validate"> GNU"> GPL"> ]>
&dhemail;
&dhfirstname; &dhsurname; 2012 &dhusername; &dhdate;
&dhucpackage; &dhsection; &dhpackage; validate font files &dhpackage; DESCRIPTION &dhpackage; validates font-file(s) if each fonts satisfies the language coverage according to the orthography files in fontconfig. If is given, only one face of each file is validated, otherwise all faces are validated. OPTIONS This program follows the usual &gnu; command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. Only query face indexed index of each file. Set lang as a language instead of current locale. this is used for . Show more detailed information. Show version of the program and exit. Show summary of options. Query font-file for font faces. RETURN CODES fc-validate returns error code 0 for successful parsing, or 1 if any errors occured or if at least one font face could not be opened. AUTHOR This manual page was updated by &dhusername; &dhemail;.
fontconfig-2.11.1/fc-validate/Makefile.in0000664000076400007640000006154512313745337015132 00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # fontconfig/fc-query/Makefile.am # # Copyright © 2003 Keith Packard # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The authors make no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = fc-validate$(EXEEXT) @USEDOCBOOK_TRUE@am__append_1 = $(man_MANS) subdir = fc-validate DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" PROGRAMS = $(bin_PROGRAMS) fc_validate_SOURCES = fc-validate.c fc_validate_OBJECTS = fc-validate.$(OBJEXT) am__DEPENDENCIES_1 = fc_validate_DEPENDENCIES = ${top_builddir}/src/libfontconfig.la \ $(am__DEPENDENCIES_1) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = fc-validate.c DIST_SOURCES = fc-validate.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 NROFF = nroff MANS = $(man_MANS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASECONFIGDIR = @BASECONFIGDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CONFIGDIR = @CONFIGDIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DOCMAN3 = @DOCMAN3@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@ EXPAT_CFLAGS = @EXPAT_CFLAGS@ EXPAT_LIBS = @EXPAT_LIBS@ FC_ADD_FONTS = @FC_ADD_FONTS@ FC_CACHEDIR = @FC_CACHEDIR@ FC_DEFAULT_FONTS = @FC_DEFAULT_FONTS@ FC_FONTDATE = @FC_FONTDATE@ FC_FONTPATH = @FC_FONTPATH@ FGREP = @FGREP@ FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ FREETYPE_LIBS = @FREETYPE_LIBS@ GIT = @GIT@ GPERF = @GPERF@ GREP = @GREP@ HASDOCBOOK = @HASDOCBOOK@ HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@ ICONV_CFLAGS = @ICONV_CFLAGS@ ICONV_LIBS = @ICONV_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBT_CURRENT = @LIBT_CURRENT@ LIBT_CURRENT_MINUS_AGE = @LIBT_CURRENT_MINUS_AGE@ LIBT_REVISION = @LIBT_REVISION@ LIBT_VERSION_INFO = @LIBT_VERSION_INFO@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ RM = @RM@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TEMPLATEDIR = @TEMPLATEDIR@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XMLDIR = @XMLDIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ ax_pthread_config = @ax_pthread_config@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fc_cachedir = @fc_cachedir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ ms_librarian = @ms_librarian@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfigdir = @pkgconfigdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ DOC2MAN = docbook2man FC_VALIDATE_SRC = ${top_srcdir}/fc-validate SGML = ${FC_VALIDATE_SRC}/fc-validate.sgml AM_CPPFLAGS = -I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) BUILT_MANS = fc-validate.1 @ENABLE_DOCS_TRUE@man_MANS = ${BUILT_MANS} EXTRA_DIST = fc-validate.sgml $(BUILT_MANS) CLEANFILES = $(am__append_1) fc_validate_LDADD = ${top_builddir}/src/libfontconfig.la $(FREETYPE_LIBS) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fc-validate/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fc-validate/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ || test -f $$p1 \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list fc-validate$(EXEEXT): $(fc_validate_OBJECTS) $(fc_validate_DEPENDENCIES) $(EXTRA_fc_validate_DEPENDENCIES) @rm -f fc-validate$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fc_validate_OBJECTS) $(fc_validate_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fc-validate.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man1: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) $(MANS) all-local installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-man uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-man1 \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-man uninstall-man1 @USEDOCBOOK_TRUE@${man_MANS}: ${SGML} @USEDOCBOOK_TRUE@ $(AM_V_GEN) $(RM) $@; \ @USEDOCBOOK_TRUE@ $(DOC2MAN) ${SGML}; \ @USEDOCBOOK_TRUE@ $(RM) manpage.* @USEDOCBOOK_TRUE@all-local: $(man_MANS) @USEDOCBOOK_FALSE@all-local: -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fontconfig-2.11.1/fc-validate/fc-validate.c0000664000076400007640000001401112267155334015372 00000000000000/* * fontconfig/fc-validate/fc-validate.c * * Copyright © 2003 Keith Packard * Copyright © 2012 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. */ #ifdef HAVE_CONFIG_H #include #else #ifdef linux #define HAVE_GETOPT_LONG 1 #endif #define HAVE_GETOPT 1 #endif #include #include #include #include #include #include #include #ifndef HAVE_GETOPT #define HAVE_GETOPT 0 #endif #ifndef HAVE_GETOPT_LONG #define HAVE_GETOPT_LONG 0 #endif #if HAVE_GETOPT_LONG #undef _GNU_SOURCE #define _GNU_SOURCE #include static const struct option longopts[] = { {"index", 1, 0, 'i'}, {"lang", 1, 0, 'l'}, {"verbose", 0, 0, 'v'}, {"version", 0, 0, 'V'}, {"help", 0, 0, 'h'}, {NULL,0,0,0}, }; #else #if HAVE_GETOPT extern char *optarg; extern int optind, opterr, optopt; #endif #endif static void usage (char *program, int error) { FILE *file = error ? stderr : stdout; #if HAVE_GETOPT_LONG fprintf (file, "usage: %s [-Vhv] [-i index] [-l LANG] [--index index] [--lang LANG] [--verbose] [--version] [--help] font-file...\n", program); #else fprintf (file, "usage: %s [-Vhv] [-i index] [-l LANG] font-file...\n", program); #endif fprintf (file, "Validate font files and print result\n"); fprintf (file, "\n"); #if HAVE_GETOPT_LONG fprintf (file, " -i, --index INDEX display the INDEX face of each font file only\n"); fprintf (file, " -l, --lang=LANG set LANG instead of current locale\n"); fprintf (file, " -v, --verbose show more detailed information\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, " -i INDEX (index) display the INDEX face of each font file only\n"); fprintf (file, " -l LANG (lang) set LANG instead of current locale\n"); fprintf (file, " -v (verbose) show more detailed information\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); } int main (int argc, char **argv) { int index_set = 0; int set_index = 0; FcChar8 *lang = NULL; const FcCharSet *fcs_lang = NULL; int err = 0; int i; FT_Library ftlib; FcBool verbose = FcFalse; #if HAVE_GETOPT_LONG || HAVE_GETOPT int c; setlocale (LC_ALL, ""); #if HAVE_GETOPT_LONG while ((c = getopt_long (argc, argv, "i:l:mVhv", longopts, NULL)) != -1) #else while ((c = getopt (argc, argv, "i:l:mVhv")) != -1) #endif { switch (c) { case 'i': index_set = 1; set_index = atoi (optarg); break; case 'l': lang = (FcChar8 *) FcLangNormalize ((const FcChar8 *) optarg); break; case 'v': verbose = FcTrue; break; case 'V': fprintf (stderr, "fontconfig version %d.%d.%d\n", FC_MAJOR, FC_MINOR, FC_REVISION); exit (0); case 'h': usage (argv[0], 0); default: usage (argv[0], 1); } } i = optind; #else i = 1; verbose = FcTrue; #endif if (i == argc) usage (argv[0], 1); if (!lang) lang = FcLangNormalize ((const FcChar8 *) setlocale (LC_CTYPE, NULL)); if (lang) fcs_lang = FcLangGetCharSet (lang); if (FT_Init_FreeType (&ftlib)) { fprintf (stderr, "Can't initalize FreeType library\n"); return 1; } for (; i < argc; i++) { int index; index = set_index; do { FT_Face face; FcCharSet *fcs, *fcs_sub; if (FT_New_Face (ftlib, argv[i], index, &face)) { if (!index_set && index > 0) break; fprintf (stderr, "Unable to open %s\n", argv[i]); err = 1; } else { FcChar32 count; fcs = FcFreeTypeCharSet (face, NULL); fcs_sub = FcCharSetSubtract (fcs_lang, fcs); count = FcCharSetCount (fcs_sub); if (count > 0) { FcChar32 ucs4, pos, map[FC_CHARSET_MAP_SIZE]; printf ("%s:%d Missing %d glyph(s) to satisfy the coverage for %s language\n", argv[i], index, count, lang); if (verbose) { for (ucs4 = FcCharSetFirstPage (fcs_sub, map, &pos); ucs4 != FC_CHARSET_DONE; ucs4 = FcCharSetNextPage (fcs_sub, map, &pos)) { int j; for (j = 0; j < FC_CHARSET_MAP_SIZE; j++) { FcChar32 bits = map[j]; FcChar32 base = ucs4 + j * 32; int b = 0; while (bits) { if (bits & 1) printf (" 0x%04x\n", base + b); bits >>= 1; b++; } } } } } else { printf ("%s:%d Satisfy the coverage for %s language\n", argv[i], index, lang); } FcCharSetDestroy (fcs); FcCharSetDestroy (fcs_sub); FT_Done_Face (face); } index++; } while (index_set == 0); } FT_Done_FreeType (ftlib); if (lang) FcStrFree (lang); FcFini (); return err; } fontconfig-2.11.1/fontconfig.spec0000664000076400007640000001073612313745344013710 00000000000000# Some distributions name their Freetype 2 package "freetype", while others # name it "freetype2". You can define the name your distribution uses here. %define freetype2 freetype Summary: Font configuration and customization library Name: fontconfig Version: 2.11.1 Release: 1 License: MIT Group: System Environment/Libraries Source: http://fontconfig.org/release/fontconfig-%{version}.tar.gz URL: http://fontconfig.org BuildRoot: %{_tmppath}/%{name}-%{version}-root BuildRequires: %{_bindir}/docbook2html BuildRequires: %{_bindir}/docbook2txt BuildRequires: %{freetype2}-devel BuildRequires: expat-devel BuildRequires: perl PreReq: %{freetype2} %description Fontconfig is designed to locate fonts within the system and select them according to requirements specified by applications. %package devel Summary: Font configuration and customization library Group: Development/Libraries Requires: %{name} = %{version} Requires: %{freetype2}-devel %description devel The fontconfig-devel package includes the static libraries, header files, and developer docs for the fontconfig package. Install fontconfig-devel if you want to develop programs which will use fontconfig. # Some rpm specific directories. Prefix 'my' hopefully does not collide with anything. %define my_docdir %{_datadir}/doc/%{name}-%{version} %define my_develdocdir %{_datadir}/doc/%{name}-devel-%{version} %define my_tmpdocdir $RPM_BUILD_ROOT%{my_docdir} %define my_tmpdeveldocdir $RPM_BUILD_ROOT%{my_develdocdir} %prep %setup -q %build %configure --with-x-fonts=/usr/X11R6/lib/X11/fonts --disable-gtk-doc \ --with-docdir=%{my_docdir} make %{_smp_mflags} %install [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT { %makeinstall docdir=%{my_tmpdocdir} # The make does not distinguish the base and devel packages mkdir -p %{my_tmpdeveldocdir} mv -f %{my_tmpdocdir}/*devel* %{my_tmpdeveldocdir} # Use a more informative directory name: mv -f %{my_tmpdeveldocdir}/fontconfig-devel %{my_tmpdeveldocdir}/html } %clean [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT %post { /sbin/ldconfig # Force regeneration of all fontconfig cache files. %{_bindir}/fc-cache -f --system-only } %postun -p /sbin/ldconfig %files %defattr(-, root, root) %doc README AUTHORS COPYING ChangeLog doc/fontconfig-user.{html,txt} %{my_docdir}/* %dir %{_sysconfdir}/fonts %{_sysconfdir}/fonts/fonts.conf %{_sysconfdir}/fonts/fonts.dtd %config %{_sysconfdir}/fonts/local.conf %{_bindir}/fc-* %{_libdir}/libfontconfig*.so.* %{_mandir}/man1/* %{_mandir}/man5/* %files devel %defattr(-, root, root) #%doc doc/fontconfig-devel.txt doc/fontconfig-devel/* %{my_develdocdir} %dir %{_includedir}/fontconfig %{_includedir}/fontconfig/* %{_libdir}/*.a %{_libdir}/*.la %{_libdir}/libfontconfig.so %{_libdir}/pkgconfig %{_mandir}/man3/* %changelog * Wed Mar 20 2004 Enrique Perez-Terron - Added mandir /man1/* to main file list - Added missing '/*' after includedir/fontconfig to avoid "listed twice" error. - Removed configure option --disable-docs since its problem is solved, see below. - Added option to makeinstall to have it install docs in the proper directory. Notice though that the %doc macro deletes and recreates the docs directory. - Cleaner separation of devel docs. - Renamed doc/fontconfig-devel-*/fontconfig-devel subdirectory to 'html'. - Removed %doc macro from devel filelist, since it deletes installed files. * Fri Mar 7 2003 Mike A. Harris 2.1.92-1 - Removed man1/* and added man5/* to main package and man3/* to devel package - Added missing defattr(-, root, root) to main package - Added HTML and text development documentation to -devel subpackage * Wed Mar 5 2003 Mike A. Harris - Added back the configure macro options --disable-docs because otherwise fontconfig installs docs into /usr/share/doc/fontconfig (with no version number) unconditionally, causing RPM to fail the build due to unpackaged files terminate build * Wed Mar 5 2003 Mike A. Harris - Removed commented out rpm macro define at top of spec file, replacing it with a simple explanation, since rpm macros are expanded by rpm even in comments - Changed /usr/bin to _bindir in BuildRequires lines - Cleaned up rpm postinstall script, and made fc-cache use _bindir - Reorganized file manifest lists * Sun Mar 2 2003 Owen Taylor - Various improvements from Red Hat spec file * Sun Mar 2 2003 Mike A. Harris - Initial changelog entry fontconfig-2.11.1/fc-glyphname/0000775000076400007640000000000012313745412013317 500000000000000fontconfig-2.11.1/fc-glyphname/fc-glyphname.c0000664000076400007640000001530412267155333015765 00000000000000/* * fontconfig/fc-glyphname/fc-glyphname.c * * 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. */ #include "fcint.h" static int rawindex (const FcGlyphName *gn); static void scan (FILE *f, char *filename); static int isprime (int i); static void find_hash (void); static FcChar32 FcHashGlyphName (const FcChar8 *name); static void insert (FcGlyphName *gn, FcGlyphName **table, FcChar32 h); static void dump (FcGlyphName * const *table, const char *name); static FcGlyphName * FcAllocGlyphName (FcChar32 ucs, FcChar8 *name) { FcGlyphName *gn; gn = malloc (sizeof (FcGlyphName) + strlen ((char *) name)); if (!gn) return 0; gn->ucs = ucs; strcpy ((char *) gn->name, (char *) name); return gn; } static void fatal (const char *file, int lineno, const char *msg) { if (lineno) fprintf (stderr, "%s:%d: %s\n", file, lineno, msg); else fprintf (stderr, "%s: %s\n", file, msg); exit (1); } #define MAX_GLYPHFILE 256 #define MAX_GLYPHNAME 10240 #define MAX_NAMELEN 1024 static FcGlyphName *raw[MAX_GLYPHNAME]; static int nraw; static int max_name_len; static FcGlyphName *name_to_ucs[MAX_GLYPHNAME*2]; static FcGlyphName *ucs_to_name[MAX_GLYPHNAME*2]; static unsigned int hash, rehash; static int rawindex (const FcGlyphName *gn) { int i; for (i = 0; i < nraw; i++) if (raw[i] == gn) return i; return -1; } static void scan (FILE *f, char *filename) { char buf[MAX_NAMELEN]; char name[MAX_NAMELEN]; unsigned long ucs; FcGlyphName *gn; int lineno = 0; int len; while (fgets (buf, sizeof (buf), f)) { lineno++; if (sscanf (buf, "%[^;];%lx\n", name, &ucs) != 2) continue; gn = FcAllocGlyphName ((FcChar32) ucs, (FcChar8 *) name); if (!gn) fatal (filename, lineno, "out of memory"); len = strlen (name); if (len > max_name_len) max_name_len = len; raw[nraw++] = gn; } } static int compare_string (const void *a, const void *b) { const char *const *as = a, *const *bs = b; return strcmp (*as, *bs); } static int compare_glyphname (const void *a, const void *b) { const FcGlyphName *const *ag = a, *const *bg = b; return strcmp ((char *) (*ag)->name, (char *) (*bg)->name); } static int isqrt (int a) { int l, h, m; l = 2; h = a/2; while ((h-l) > 1) { m = (h+l) >> 1; if (m * m < a) l = m; else h = m; } return h; } static int isprime (int i) { int l, t; if (i < 2) return FcFalse; if ((i & 1) == 0) { if (i == 2) return FcTrue; return FcFalse; } l = isqrt (i) + 1; for (t = 3; t <= l; t += 2) if (i % t == 0) return 0; return 1; } /* * Find a prime pair that leaves at least 25% of the hash table empty */ static void find_hash (void) { int h; h = nraw + nraw / 4; if ((h & 1) == 0) h++; while (!isprime(h-2) || !isprime(h)) h += 2; hash = h; rehash = h-2; } static FcChar32 FcHashGlyphName (const FcChar8 *name) { FcChar32 h = 0; FcChar8 c; while ((c = *name++)) { h = ((h << 1) | (h >> 31)) ^ c; } return h; } static void insert (FcGlyphName *gn, FcGlyphName **table, FcChar32 h) { unsigned int i, r = 0; i = (int) (h % hash); while (table[i]) { if (!r) r = (h % rehash + 1); i += r; if (i >= hash) i -= hash; } table[i] = gn; } static void dump (FcGlyphName * const *table, const char *name) { unsigned int i; printf ("static const FcGlyphId %s[%d] = {\n", name, hash); for (i = 0; i < hash; i++) if (table[i]) printf (" %d,\n", rawindex(table[i])); else printf (" -1,\n"); printf ("};\n"); } int main (int argc FC_UNUSED, char **argv) { char *files[MAX_GLYPHFILE + 1]; char line[1024]; FILE *f; int i; const char *type; i = 0; while (argv[i+1]) { if (i == MAX_GLYPHFILE) fatal (*argv, 0, "Too many glyphname files"); files[i] = argv[i+1]; i++; } files[i] = 0; qsort (files, i, sizeof (char *), compare_string); for (i = 0; files[i]; i++) { f = fopen (files[i], "r"); if (!f) fatal (files[i], 0, strerror (errno)); scan (f, files[i]); fclose (f); } qsort (raw, nraw, sizeof (FcGlyphName *), compare_glyphname); find_hash (); for (i = 0; i < nraw; i++) { insert (raw[i], name_to_ucs, FcHashGlyphName (raw[i]->name)); insert (raw[i], ucs_to_name, raw[i]->ucs); } /* * Scan the input until the marker is found */ while (fgets (line, sizeof (line), stdin)) { if (!strncmp (line, "@@@", 3)) break; fputs (line, stdout); } printf ("/* %d glyphnames in %d entries, %d%% occupancy */\n\n", nraw, hash, nraw * 100 / hash); printf ("#define FC_GLYPHNAME_HASH %u\n", hash); printf ("#define FC_GLYPHNAME_REHASH %u\n", rehash); printf ("#define FC_GLYPHNAME_MAXLEN %d\n\n", max_name_len); if (nraw < 128) type = "int8_t"; else if (nraw < 32768) type = "int16_t"; else type = "int32_t"; printf ("typedef %s FcGlyphId;\n\n", type); /* * Dump out entries */ printf ("static const struct { const FcChar32 ucs; const FcChar8 name[%d]; } _fc_glyph_names[%d] = {\n", max_name_len + 1, nraw); for (i = 0; i < nraw; i++) printf (" { 0x%lx, \"%s\" },\n", (unsigned long) raw[i]->ucs, raw[i]->name); printf ("};\n"); /* * Dump out name_to_ucs table */ dump (name_to_ucs, "_fc_name_to_ucs"); /* * Dump out ucs_to_name table */ dump (ucs_to_name, "_fc_ucs_to_name"); while (fgets (line, sizeof (line), stdin)) fputs (line, stdout); fflush (stdout); exit (ferror (stdout)); } fontconfig-2.11.1/fc-glyphname/Makefile.am0000664000076400007640000000260612267155333015304 00000000000000# -*- encoding: utf-8 -*- # # Copyright © 2003 Keith Packard # Copyright © 2013 Google, Inc. # # 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. # # Google Author(s): Behdad Esfahbod TAG = glyphname DEPS = $(srcdir)/zapfdingbats.txt ARGS = $(srcdir)/zapfdingbats.txt DIST = $(srcdir)/zapfdingbats.txt include $(top_srcdir)/Tools.mk -include $(top_srcdir)/git.mk fontconfig-2.11.1/fc-glyphname/fcglyphname.h0000664000076400007640000002507412267711645015726 00000000000000/* * fontconfig/fc-glyphname/fcglyphname.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. */ /* 201 glyphnames in 271 entries, 74% occupancy */ #define FC_GLYPHNAME_HASH 271 #define FC_GLYPHNAME_REHASH 269 #define FC_GLYPHNAME_MAXLEN 4 typedef int16_t FcGlyphId; static const struct { const FcChar32 ucs; const FcChar8 name[5]; } _fc_glyph_names[201] = { { 0x2701, "a1" }, { 0x2721, "a10" }, { 0x275e, "a100" }, { 0x2761, "a101" }, { 0x2762, "a102" }, { 0x2763, "a103" }, { 0x2764, "a104" }, { 0x2710, "a105" }, { 0x2765, "a106" }, { 0x2766, "a107" }, { 0x2767, "a108" }, { 0x2660, "a109" }, { 0x261b, "a11" }, { 0x2665, "a110" }, { 0x2666, "a111" }, { 0x2663, "a112" }, { 0x2709, "a117" }, { 0x2708, "a118" }, { 0x2707, "a119" }, { 0x261e, "a12" }, { 0x2460, "a120" }, { 0x2461, "a121" }, { 0x2462, "a122" }, { 0x2463, "a123" }, { 0x2464, "a124" }, { 0x2465, "a125" }, { 0x2466, "a126" }, { 0x2467, "a127" }, { 0x2468, "a128" }, { 0x2469, "a129" }, { 0x270c, "a13" }, { 0x2776, "a130" }, { 0x2777, "a131" }, { 0x2778, "a132" }, { 0x2779, "a133" }, { 0x277a, "a134" }, { 0x277b, "a135" }, { 0x277c, "a136" }, { 0x277d, "a137" }, { 0x277e, "a138" }, { 0x277f, "a139" }, { 0x270d, "a14" }, { 0x2780, "a140" }, { 0x2781, "a141" }, { 0x2782, "a142" }, { 0x2783, "a143" }, { 0x2784, "a144" }, { 0x2785, "a145" }, { 0x2786, "a146" }, { 0x2787, "a147" }, { 0x2788, "a148" }, { 0x2789, "a149" }, { 0x270e, "a15" }, { 0x278a, "a150" }, { 0x278b, "a151" }, { 0x278c, "a152" }, { 0x278d, "a153" }, { 0x278e, "a154" }, { 0x278f, "a155" }, { 0x2790, "a156" }, { 0x2791, "a157" }, { 0x2792, "a158" }, { 0x2793, "a159" }, { 0x270f, "a16" }, { 0x2794, "a160" }, { 0x2192, "a161" }, { 0x27a3, "a162" }, { 0x2194, "a163" }, { 0x2195, "a164" }, { 0x2799, "a165" }, { 0x279b, "a166" }, { 0x279c, "a167" }, { 0x279d, "a168" }, { 0x279e, "a169" }, { 0x2711, "a17" }, { 0x279f, "a170" }, { 0x27a0, "a171" }, { 0x27a1, "a172" }, { 0x27a2, "a173" }, { 0x27a4, "a174" }, { 0x27a5, "a175" }, { 0x27a6, "a176" }, { 0x27a7, "a177" }, { 0x27a8, "a178" }, { 0x27a9, "a179" }, { 0x2712, "a18" }, { 0x27ab, "a180" }, { 0x27ad, "a181" }, { 0x27af, "a182" }, { 0x27b2, "a183" }, { 0x27b3, "a184" }, { 0x27b5, "a185" }, { 0x27b8, "a186" }, { 0x27ba, "a187" }, { 0x27bb, "a188" }, { 0x27bc, "a189" }, { 0x2713, "a19" }, { 0x27bd, "a190" }, { 0x27be, "a191" }, { 0x279a, "a192" }, { 0x27aa, "a193" }, { 0x27b6, "a194" }, { 0x27b9, "a195" }, { 0x2798, "a196" }, { 0x27b4, "a197" }, { 0x27b7, "a198" }, { 0x27ac, "a199" }, { 0x2702, "a2" }, { 0x2714, "a20" }, { 0x27ae, "a200" }, { 0x27b1, "a201" }, { 0x2703, "a202" }, { 0x2750, "a203" }, { 0x2752, "a204" }, { 0x276e, "a205" }, { 0x2770, "a206" }, { 0x2715, "a21" }, { 0x2716, "a22" }, { 0x2717, "a23" }, { 0x2718, "a24" }, { 0x2719, "a25" }, { 0x271a, "a26" }, { 0x271b, "a27" }, { 0x271c, "a28" }, { 0x2722, "a29" }, { 0x2704, "a3" }, { 0x2723, "a30" }, { 0x2724, "a31" }, { 0x2725, "a32" }, { 0x2726, "a33" }, { 0x2727, "a34" }, { 0x2605, "a35" }, { 0x2729, "a36" }, { 0x272a, "a37" }, { 0x272b, "a38" }, { 0x272c, "a39" }, { 0x260e, "a4" }, { 0x272d, "a40" }, { 0x272e, "a41" }, { 0x272f, "a42" }, { 0x2730, "a43" }, { 0x2731, "a44" }, { 0x2732, "a45" }, { 0x2733, "a46" }, { 0x2734, "a47" }, { 0x2735, "a48" }, { 0x2736, "a49" }, { 0x2706, "a5" }, { 0x2737, "a50" }, { 0x2738, "a51" }, { 0x2739, "a52" }, { 0x273a, "a53" }, { 0x273b, "a54" }, { 0x273c, "a55" }, { 0x273d, "a56" }, { 0x273e, "a57" }, { 0x273f, "a58" }, { 0x2740, "a59" }, { 0x271d, "a6" }, { 0x2741, "a60" }, { 0x2742, "a61" }, { 0x2743, "a62" }, { 0x2744, "a63" }, { 0x2745, "a64" }, { 0x2746, "a65" }, { 0x2747, "a66" }, { 0x2748, "a67" }, { 0x2749, "a68" }, { 0x274a, "a69" }, { 0x271e, "a7" }, { 0x274b, "a70" }, { 0x25cf, "a71" }, { 0x274d, "a72" }, { 0x25a0, "a73" }, { 0x274f, "a74" }, { 0x2751, "a75" }, { 0x25b2, "a76" }, { 0x25bc, "a77" }, { 0x25c6, "a78" }, { 0x2756, "a79" }, { 0x271f, "a8" }, { 0x25d7, "a81" }, { 0x2758, "a82" }, { 0x2759, "a83" }, { 0x275a, "a84" }, { 0x276f, "a85" }, { 0x2771, "a86" }, { 0x2772, "a87" }, { 0x2773, "a88" }, { 0x2768, "a89" }, { 0x2720, "a9" }, { 0x2769, "a90" }, { 0x276c, "a91" }, { 0x276d, "a92" }, { 0x276a, "a93" }, { 0x276b, "a94" }, { 0x2774, "a95" }, { 0x2775, "a96" }, { 0x275b, "a97" }, { 0x275c, "a98" }, { 0x275d, "a99" }, }; static const FcGlyphId _fc_name_to_ucs[271] = { 123, 81, 198, 154, 142, 186, 82, -1, 143, 172, 181, 79, 153, 191, -1, -1, 80, 195, 179, 170, 151, 129, 101, 194, 85, 102, 73, 171, 99, -1, -1, 100, 196, -1, 189, 163, 110, 199, -1, -1, 59, 50, -1, 60, 75, -1, 51, -1, -1, 58, -1, 61, 55, -1, 192, 56, 62, -1, 53, 166, 113, 54, -1, 157, 33, 188, 177, 21, -1, -1, 31, -1, -1, 32, -1, -1, 24, 160, -1, 38, -1, -1, 26, -1, 161, 27, 197, 94, 95, 105, 106, 90, 91, 92, 93, 86, 87, 88, 89, 28, 29, 39, 40, 10, 11, 17, 18, 6, 7, 8, 9, 2, 3, 4, 5, -1, -1, 114, 108, 146, 74, -1, 117, 115, 118, 156, 119, -1, 120, -1, 121, 131, 122, -1, 109, -1, 124, 141, 134, 174, 144, -1, 137, 155, 138, -1, 64, -1, 140, 152, 65, -1, 111, -1, 57, 162, -1, -1, 67, -1, -1, 150, 68, -1, 167, -1, 69, 164, -1, 116, 70, -1, -1, 148, 71, -1, -1, 184, 72, 149, 176, 193, 34, 182, 145, -1, 83, 187, -1, 103, 84, 104, 200, 63, 37, 41, 52, 19, 30, 1, 12, 97, 35, 98, 135, 46, 36, 47, 96, 48, 159, 49, -1, 42, 112, 43, 173, 44, 168, 45, -1, 20, 183, 16, 147, 22, 178, 23, -1, 15, -1, 25, 190, 13, 139, 14, -1, -1, -1, 128, 107, 125, -1, 0, 158, 169, 136, 126, -1, -1, 180, 127, 77, -1, -1, 132, -1, 78, -1, 133, -1, 165, 66, 130, -1, -1, -1, 76, -1, 185, 175, }; static const FcGlyphId _fc_ucs_to_name[271] = { 56, 135, 19, 138, 58, 140, 59, 142, 60, 144, 61, 146, 62, 149, 64, 151, 152, 153, 154, 155, 156, 157, 159, 160, 161, 162, 163, 131, 165, 166, 167, 168, 170, -1, 172, -1, 174, 112, 175, 113, -1, 173, -1, 179, -1, 182, 183, 158, 198, 199, 200, 2, -1, -1, 3, 4, 5, 6, 8, 9, 10, 189, 164, 194, 195, 192, 193, 114, 11, 115, 186, 15, 188, 13, 14, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 53, 54, 55, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 103, 69, 99, 70, 71, 72, 73, 75, 76, 77, 78, 66, 79, 80, 81, 82, 83, 84, 100, 86, 106, 87, 109, 88, -1, 110, 89, 90, 104, 91, 101, 105, 92, 102, 93, 94, 95, 97, 98, 196, -1, 134, -1, -1, -1, -1, -1, 137, -1, -1, -1, -1, -1, 139, -1, -1, 176, -1, -1, 141, 184, -1, -1, -1, -1, 143, 177, 57, -1, -1, -1, 145, -1, -1, -1, -1, 178, 148, -1, -1, -1, -1, -1, 150, 65, 171, 67, 68, -1, -1, 191, -1, -1, 181, -1, -1, -1, -1, -1, -1, -1, -1, 185, -1, -1, -1, -1, -1, 187, -1, -1, -1, 133, -1, 197, -1, -1, -1, -1, -1, 0, 107, 111, 125, -1, 147, 18, 17, 16, -1, -1, 30, 41, 52, 63, 7, 74, 85, 96, 108, 116, 117, 118, 119, 120, 121, 122, 123, 136, 169, 180, 190, 1, 124, 126, 127, 128, 129, 130, -1, 132, 12, }; fontconfig-2.11.1/fc-glyphname/Makefile.in0000664000076400007640000004517312313745337015324 00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- encoding: utf-8 -*- # # Copyright © 2003 Keith Packard # Copyright © 2013 Google, Inc. # # 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. # # Google Author(s): Behdad Esfahbod # -*- encoding: utf-8 -*- # # Copyright © 2003 Keith Packard # Copyright © 2013 Google, Inc. # # 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. # # Google Author(s): Behdad Esfahbod VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(top_srcdir)/Tools.mk $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am $(noinst_HEADERS) subdir = fc-glyphname ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASECONFIGDIR = @BASECONFIGDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CONFIGDIR = @CONFIGDIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DOCMAN3 = @DOCMAN3@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@ EXPAT_CFLAGS = @EXPAT_CFLAGS@ EXPAT_LIBS = @EXPAT_LIBS@ FC_ADD_FONTS = @FC_ADD_FONTS@ FC_CACHEDIR = @FC_CACHEDIR@ FC_DEFAULT_FONTS = @FC_DEFAULT_FONTS@ FC_FONTDATE = @FC_FONTDATE@ FC_FONTPATH = @FC_FONTPATH@ FGREP = @FGREP@ FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ FREETYPE_LIBS = @FREETYPE_LIBS@ GIT = @GIT@ GPERF = @GPERF@ GREP = @GREP@ HASDOCBOOK = @HASDOCBOOK@ HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@ ICONV_CFLAGS = @ICONV_CFLAGS@ ICONV_LIBS = @ICONV_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBT_CURRENT = @LIBT_CURRENT@ LIBT_CURRENT_MINUS_AGE = @LIBT_CURRENT_MINUS_AGE@ LIBT_REVISION = @LIBT_REVISION@ LIBT_VERSION_INFO = @LIBT_VERSION_INFO@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ RM = @RM@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TEMPLATEDIR = @TEMPLATEDIR@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XMLDIR = @XMLDIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ ax_pthread_config = @ax_pthread_config@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fc_cachedir = @fc_cachedir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ ms_librarian = @ms_librarian@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfigdir = @pkgconfigdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ TAG = glyphname DEPS = $(srcdir)/zapfdingbats.txt ARGS = $(srcdir)/zapfdingbats.txt DIST = $(srcdir)/zapfdingbats.txt DIR = fc-$(TAG) OUT = fc$(TAG) TMPL = $(OUT).tmpl.h TARG = $(OUT).h TSRC = $(DIR).c TOOL = ./$(DIR)$(EXEEXT_FOR_BUILD) EXTRA_DIST = $(TARG) $(TMPL) $(TSRC) $(DIST) AM_CPPFLAGS = \ -I$(builddir) \ -I$(srcdir) \ -I$(top_builddir)/src \ -I$(top_srcdir)/src \ -I$(top_builddir) \ -I$(top_srcdir) \ -DHAVE_CONFIG_H \ $(WARN_CFLAGS) noinst_HEADERS = $(TARG) ALIAS_FILES = fcalias.h fcaliastail.h BUILT_SOURCES = $(ALIAS_FILES) CLEANFILES = $(ALIAS_FILES) $(TOOL) MAINTAINERCLEANFILES = $(TARG) all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/Tools.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fc-glyphname/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fc-glyphname/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/Tools.mk: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(HEADERS) installdirs: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: all check install install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool cscopelist-am ctags ctags-am distclean \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am $(TOOL): $(TSRC) $(ALIAS_FILES) $(AM_V_GEN) $(CC_FOR_BUILD) -o $(TOOL) $< $(AM_CPPFLAGS) $(TARG): $(TMPL) $(TSRC) $(DEPS) $(AM_V_GEN) $(MAKE) $(TOOL) && \ $(RM) $(TARG) && \ $(TOOL) $(ARGS) < $< > $(TARG).tmp && \ mv $(TARG).tmp $(TARG) || ( $(RM) $(TARG).tmp && false ) $(ALIAS_FILES): $(AM_V_GEN) touch $@ -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fontconfig-2.11.1/fc-glyphname/fcglyphname.tmpl.h0000664000076400007640000000227312267155333016671 00000000000000/* * fontconfig/fc-glyphname/fcglyphname.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. */ @@@ fontconfig-2.11.1/fc-glyphname/zapfdingbats.txt0000664000076400007640000000422311720341276016456 00000000000000# Name: ITC Zapf Dingbats Glyph List # Table version: 2.0 # Date: September 20, 2002 # # See http://partners.adobe.com/asn/developer/typeforum/unicodegn.html # # Format: Semicolon-delimited fields: # (1) glyph name # (2) Unicode scalar value # a100;275E a101;2761 a102;2762 a103;2763 a104;2764 a105;2710 a106;2765 a107;2766 a108;2767 a109;2660 a10;2721 a110;2665 a111;2666 a112;2663 a117;2709 a118;2708 a119;2707 a11;261B a120;2460 a121;2461 a122;2462 a123;2463 a124;2464 a125;2465 a126;2466 a127;2467 a128;2468 a129;2469 a12;261E a130;2776 a131;2777 a132;2778 a133;2779 a134;277A a135;277B a136;277C a137;277D a138;277E a139;277F a13;270C a140;2780 a141;2781 a142;2782 a143;2783 a144;2784 a145;2785 a146;2786 a147;2787 a148;2788 a149;2789 a14;270D a150;278A a151;278B a152;278C a153;278D a154;278E a155;278F a156;2790 a157;2791 a158;2792 a159;2793 a15;270E a160;2794 a161;2192 a162;27A3 a163;2194 a164;2195 a165;2799 a166;279B a167;279C a168;279D a169;279E a16;270F a170;279F a171;27A0 a172;27A1 a173;27A2 a174;27A4 a175;27A5 a176;27A6 a177;27A7 a178;27A8 a179;27A9 a17;2711 a180;27AB a181;27AD a182;27AF a183;27B2 a184;27B3 a185;27B5 a186;27B8 a187;27BA a188;27BB a189;27BC a18;2712 a190;27BD a191;27BE a192;279A a193;27AA a194;27B6 a195;27B9 a196;2798 a197;27B4 a198;27B7 a199;27AC a19;2713 a1;2701 a200;27AE a201;27B1 a202;2703 a203;2750 a204;2752 a205;276E a206;2770 a20;2714 a21;2715 a22;2716 a23;2717 a24;2718 a25;2719 a26;271A a27;271B a28;271C a29;2722 a2;2702 a30;2723 a31;2724 a32;2725 a33;2726 a34;2727 a35;2605 a36;2729 a37;272A a38;272B a39;272C a3;2704 a40;272D a41;272E a42;272F a43;2730 a44;2731 a45;2732 a46;2733 a47;2734 a48;2735 a49;2736 a4;260E a50;2737 a51;2738 a52;2739 a53;273A a54;273B a55;273C a56;273D a57;273E a58;273F a59;2740 a5;2706 a60;2741 a61;2742 a62;2743 a63;2744 a64;2745 a65;2746 a66;2747 a67;2748 a68;2749 a69;274A a6;271D a70;274B a71;25CF a72;274D a73;25A0 a74;274F a75;2751 a76;25B2 a77;25BC a78;25C6 a79;2756 a7;271E a81;25D7 a82;2758 a83;2759 a84;275A a85;276F a86;2771 a87;2772 a88;2773 a89;2768 a8;271F a90;2769 a91;276C a92;276D a93;276A a94;276B a95;2774 a96;2775 a97;275B a98;275C a99;275D a9;2720 #-- end fontconfig-2.11.1/fc-pattern/0000775000076400007640000000000012313745412013010 500000000000000fontconfig-2.11.1/fc-pattern/Makefile.am0000664000076400007640000000333512267155334014776 00000000000000# # fontconfig/fc-pattern/Makefile.am # # 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. bin_PROGRAMS=fc-pattern DOC2MAN = docbook2man FC_PATTERN_SRC=${top_srcdir}/fc-pattern SGML = ${FC_PATTERN_SRC}/fc-pattern.sgml AM_CPPFLAGS=-I${top_srcdir} $(WARN_CFLAGS) BUILT_MANS=fc-pattern.1 if ENABLE_DOCS man_MANS=${BUILT_MANS} endif EXTRA_DIST=fc-pattern.sgml $(BUILT_MANS) CLEANFILES = fc_pattern_LDADD = ${top_builddir}/src/libfontconfig.la if USEDOCBOOK ${man_MANS}: ${SGML} $(AM_V_GEN) $(RM) $@; \ $(DOC2MAN) ${SGML}; \ $(RM) manpage.* all-local: $(man_MANS) CLEANFILES += ${man_MANS} else all-local: endif -include $(top_srcdir)/git.mk fontconfig-2.11.1/fc-pattern/fc-pattern.10000664000076400007640000000346212306310020015043 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FC-PATTERN" "1" "Apr 20, 2010" "" "" .SH NAME fc-pattern \- parse and show pattern .SH SYNOPSIS .sp \fBfc-pattern\fR [ \fB-cdVh\fR ] [ \fB--config\fR ] [ \fB--default\fR ] [ \fB [ -f \fIformat\fB ] [ --format \fIformat\fB ] \fR ] [ \fB--version\fR ] [ \fB--help\fR ] [ \fB\fIpattern\fB [ \fIelement\fB\fI...\fB ] \fR ] .SH "DESCRIPTION" .PP \fBfc-pattern\fR parses \fIpattern\fR (empty pattern by default) and shows the parsed result. If \fB--config\fR is given, config substitution is performed on the pattern before being displayed. If \fB--default\fR is given, default substitution is performed on the pattern before being displayed. .PP If any elements are specified, only those are printed. .SH "OPTIONS" .PP This program follows the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. .TP \fB-c\fR Perform config substitution on pattern. .TP \fB-d\fR Perform default substitution on pattern. .TP \fB-f\fR Format output according to the format specifier \fIformat\fR\&. .TP \fB-V\fR Show version of the program and exit. .TP \fB-h\fR Show summary of options. .TP \fB\fIpattern\fB\fR Parses and displays \fIpattern\fR (uses empty pattern by default). .TP \fB\fIelement\fB\fR If set, the \fIelement\fR property is displayed for parsed pattern. .SH "SEE ALSO" .PP \fBFcNameParse\fR(3) \fBFcConfigSubstitute\fR(3) \fBFcDefaultSubstitute\fR(3) \fBFcPatternPrint\fR(3) \fBFcPatternFormat\fR(3) \fBfc-cat\fR(1) \fBfc-cache\fR(1) \fBfc-list\fR(1) \fBfc-match\fR(1) \fBfc-query\fR(1) \fBfc-scan\fR(1) .PP The fontconfig user's guide, in HTML format: \fI/usr/share/doc/fontconfig/fontconfig-user.html\fR\&. .SH "AUTHOR" .PP This manual page was updated by Behdad Esfahbod \&. fontconfig-2.11.1/fc-pattern/fc-pattern.sgml0000664000076400007640000001431212267155334015666 00000000000000 manpage.1'. You may view the manual page with: `docbook-to-man manpage.sgml | nroff -man | less'. A typical entry in a Makefile or Makefile.am is: manpage.1: manpage.sgml docbook-to-man $< > $@ The docbook-to-man binary is found in the docbook-to-man package. Please remember that if you create the nroff version in one of the debian/rules file targets (such as build), you will need to include docbook-to-man in your Build-Depends control field. --> Behdad"> Esfahbod"> Apr 20, 2010"> 1"> behdad@behdad.org"> fc-pattern"> Debian"> GNU"> GPL"> ]>
&dhemail;
&dhfirstname; &dhsurname; 2010 &dhusername; &dhdate;
&dhucpackage; &dhsection; &dhpackage; parse and show pattern &dhpackage; DESCRIPTION &dhpackage; parses pattern (empty pattern by default) and shows the parsed result. If is given, config substitution is performed on the pattern before being displayed. If is given, default substitution is performed on the pattern before being displayed. If any elements are specified, only those are printed. OPTIONS This program follows the usual &gnu; command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. Perform config substitution on pattern. Perform default substitution on pattern. Format output according to the format specifier format. Show version of the program and exit. Show summary of options. Parses and displays pattern (uses empty pattern by default). If set, the element property is displayed for parsed pattern. SEE ALSO FcNameParse(3) FcConfigSubstitute(3) FcDefaultSubstitute(3) FcPatternPrint(3) FcPatternFormat(3) fc-cat(1) fc-cache(1) fc-list(1) fc-match(1) fc-query(1) fc-scan(1) The fontconfig user's guide, in HTML format: /usr/share/doc/fontconfig/fontconfig-user.html. AUTHOR This manual page was updated by &dhusername; &dhemail;.
fontconfig-2.11.1/fc-pattern/Makefile.in0000664000076400007640000006137712313745337015021 00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # fontconfig/fc-pattern/Makefile.am # # Copyright © 2003 Keith Packard # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The authors make no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = fc-pattern$(EXEEXT) @USEDOCBOOK_TRUE@am__append_1 = ${man_MANS} subdir = fc-pattern DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" PROGRAMS = $(bin_PROGRAMS) fc_pattern_SOURCES = fc-pattern.c fc_pattern_OBJECTS = fc-pattern.$(OBJEXT) fc_pattern_DEPENDENCIES = ${top_builddir}/src/libfontconfig.la AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = fc-pattern.c DIST_SOURCES = fc-pattern.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 NROFF = nroff MANS = $(man_MANS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASECONFIGDIR = @BASECONFIGDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CONFIGDIR = @CONFIGDIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DOCMAN3 = @DOCMAN3@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@ EXPAT_CFLAGS = @EXPAT_CFLAGS@ EXPAT_LIBS = @EXPAT_LIBS@ FC_ADD_FONTS = @FC_ADD_FONTS@ FC_CACHEDIR = @FC_CACHEDIR@ FC_DEFAULT_FONTS = @FC_DEFAULT_FONTS@ FC_FONTDATE = @FC_FONTDATE@ FC_FONTPATH = @FC_FONTPATH@ FGREP = @FGREP@ FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ FREETYPE_LIBS = @FREETYPE_LIBS@ GIT = @GIT@ GPERF = @GPERF@ GREP = @GREP@ HASDOCBOOK = @HASDOCBOOK@ HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@ ICONV_CFLAGS = @ICONV_CFLAGS@ ICONV_LIBS = @ICONV_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBT_CURRENT = @LIBT_CURRENT@ LIBT_CURRENT_MINUS_AGE = @LIBT_CURRENT_MINUS_AGE@ LIBT_REVISION = @LIBT_REVISION@ LIBT_VERSION_INFO = @LIBT_VERSION_INFO@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ RM = @RM@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TEMPLATEDIR = @TEMPLATEDIR@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XMLDIR = @XMLDIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ ax_pthread_config = @ax_pthread_config@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fc_cachedir = @fc_cachedir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ ms_librarian = @ms_librarian@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfigdir = @pkgconfigdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ DOC2MAN = docbook2man FC_PATTERN_SRC = ${top_srcdir}/fc-pattern SGML = ${FC_PATTERN_SRC}/fc-pattern.sgml AM_CPPFLAGS = -I${top_srcdir} $(WARN_CFLAGS) BUILT_MANS = fc-pattern.1 @ENABLE_DOCS_TRUE@man_MANS = ${BUILT_MANS} EXTRA_DIST = fc-pattern.sgml $(BUILT_MANS) CLEANFILES = $(am__append_1) fc_pattern_LDADD = ${top_builddir}/src/libfontconfig.la all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fc-pattern/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fc-pattern/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ || test -f $$p1 \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list fc-pattern$(EXEEXT): $(fc_pattern_OBJECTS) $(fc_pattern_DEPENDENCIES) $(EXTRA_fc_pattern_DEPENDENCIES) @rm -f fc-pattern$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fc_pattern_OBJECTS) $(fc_pattern_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fc-pattern.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man1: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) $(MANS) all-local installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-man uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-man1 \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-man uninstall-man1 @USEDOCBOOK_TRUE@${man_MANS}: ${SGML} @USEDOCBOOK_TRUE@ $(AM_V_GEN) $(RM) $@; \ @USEDOCBOOK_TRUE@ $(DOC2MAN) ${SGML}; \ @USEDOCBOOK_TRUE@ $(RM) manpage.* @USEDOCBOOK_TRUE@all-local: $(man_MANS) @USEDOCBOOK_FALSE@all-local: -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fontconfig-2.11.1/fc-pattern/fc-pattern.c0000664000076400007640000001146712267155334015156 00000000000000/* * fontconfig/fc-pattern/fc-pattern.c * * 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. */ #ifdef HAVE_CONFIG_H #include #else #ifdef linux #define HAVE_GETOPT_LONG 1 #endif #define HAVE_GETOPT 1 #endif #include #include #include #include #include #ifndef HAVE_GETOPT #define HAVE_GETOPT 0 #endif #ifndef HAVE_GETOPT_LONG #define HAVE_GETOPT_LONG 0 #endif #if HAVE_GETOPT_LONG #undef _GNU_SOURCE #define _GNU_SOURCE #include static const struct option longopts[] = { {"config", 0, 0, 'c'}, {"default", 0, 0, 'd'}, {"format", 1, 0, 'f'}, {"version", 0, 0, 'V'}, {"help", 0, 0, 'h'}, {NULL,0,0,0}, }; #else #if HAVE_GETOPT extern char *optarg; extern int optind, opterr, optopt; #endif #endif static void usage (char *program, int error) { FILE *file = error ? stderr : stdout; #if HAVE_GETOPT_LONG fprintf (file, "usage: %s [-cdVh] [-f FORMAT] [--config] [--default] [--verbose] [--format=FORMAT] [--version] [--help] [pattern] {element...}\n", program); #else fprintf (file, "usage: %s [-cdVh] [-f FORMAT] [pattern] {element...}\n", program); #endif fprintf (file, "List best font matching [pattern]\n"); fprintf (file, "\n"); #if HAVE_GETOPT_LONG fprintf (file, " -c, --config perform config substitution on pattern\n"); fprintf (file, " -d, -default perform default substitution on pattern\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, " -c, (config) perform config substitution on pattern\n"); fprintf (file, " -d, (default) perform default substitution on pattern\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); } int main (int argc, char **argv) { int do_config = 0, do_default = 0; FcChar8 *format = NULL; int i; FcObjectSet *os = 0; FcPattern *pat; #if HAVE_GETOPT_LONG || HAVE_GETOPT int c; #if HAVE_GETOPT_LONG while ((c = getopt_long (argc, argv, "cdf:Vh", longopts, NULL)) != -1) #else while ((c = getopt (argc, argv, "cdf:Vh")) != -1) #endif { switch (c) { case 'c': do_config = 1; break; case 'd': do_default = 1; break; case 'f': format = (FcChar8 *) strdup (optarg); break; case 'V': fprintf (stderr, "fontconfig version %d.%d.%d\n", FC_MAJOR, FC_MINOR, FC_REVISION); exit (0); case 'h': usage (argv[0], 0); default: usage (argv[0], 1); } } i = optind; #else i = 1; #endif if (argv[i]) { pat = FcNameParse ((FcChar8 *) argv[i]); if (!pat) { fputs ("Unable to parse the pattern\n", stderr); return 1; } while (argv[++i]) { if (!os) os = FcObjectSetCreate (); FcObjectSetAdd (os, argv[i]); } } else pat = FcPatternCreate (); if (!pat) return 1; if (do_config) FcConfigSubstitute (0, pat, FcMatchPattern); if (do_default) FcDefaultSubstitute (pat); if (os) { FcPattern *new; new = FcPatternFilter (pat, os); FcPatternDestroy (pat); pat = new; } if (format) { FcChar8 *s; s = FcPatternFormat (pat, format); if (s) { printf ("%s", s); FcStrFree (s); } } else { FcPatternPrint (pat); } FcPatternDestroy (pat); if (os) FcObjectSetDestroy (os); FcFini (); return 0; } fontconfig-2.11.1/COPYING0000664000076400007640000000244112267155333011726 00000000000000fontconfig/COPYING Copyright © 2000,2001,2002,2003,2004,2006,2007 Keith Packard Copyright © 2005 Patrick Lam Copyright © 2009 Roozbeh Pournader Copyright © 2008,2009 Red Hat, Inc. Copyright © 2008 Danilo Šegan Copyright © 2012 Google, Inc. 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. fontconfig-2.11.1/ChangeLog0000664000076400007640000247500512144054276012457 00000000000000commit f6244d2cf231e1dc756f3e941e61b9bf124879bb Author: Akira TAGOH Date: Wed May 8 11:57:49 2013 +0900 Use the glob matching for filename Regex is expensive to compare filenames. we already have the glob matching and it works enough in this case. Prior to this change, renaming FcConfigGlobMatch() to FcStrGlobMatch() and moving to fcstr.c src/fccfg.c | 46 +--------------------------------------------- src/fcint.h | 4 ++++ src/fcmatch.c | 6 ++---- src/fcstr.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 51 insertions(+), 49 deletions(-) commit 03216ccf4ca0808f9c7b9513efcaeb7f4058b575 Author: Akira TAGOH Date: Wed Apr 10 18:41:22 2013 +0900 Bug 63329 - make check fails: .. contents:: :depth: 2 Add back FcHashGetSHA256DigestFromFile() and fall back to it when font isn't SFNT-based font because FT_Load_Sfnt_Table fails with FT_Err_Invalid_Face_Handle. src/fcfreetype.c | 32 ++++++++++++++++++++--------- src/fchash.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/fcint.h | 4 ++++ 3 files changed, 88 insertions(+), 10 deletions(-) commit 77419a4dfdf41ed34dd03e74d0e4e6f89dbc65e1 Author: Akira TAGOH Date: Wed Apr 10 11:14:39 2013 +0900 documented FC_HASH and FC_POSTSCRIPT_NAME doc/fontconfig-devel.sgml | 3 +++ 1 file changed, 3 insertions(+) commit fc5a589abad0e8285f7d95007ebda76536e8fa7d Author: Akira TAGOH Date: Tue Apr 9 17:18:43 2013 +0900 Revert the previous change and rework to not export freetype API outside fcfreetype.c src/fcfreetype.c | 23 ++++++++++++++++++++--- src/fchash.c | 47 ++++++++++++----------------------------------- src/fcint.h | 5 ++--- 3 files changed, 34 insertions(+), 41 deletions(-) commit c93a8b8b54afe33e5ecf9870723543cb4058fa94 Author: Akira TAGOH Date: Tue Apr 9 12:46:30 2013 +0900 Obtain fonts data via FT_Face instead of opening a file directly src/fcfreetype.c | 2 +- src/fchash.c | 50 +++++++++++++++++++++++++++++++++----------------- src/fcint.h | 4 +++- 3 files changed, 37 insertions(+), 19 deletions(-) commit 9299155b5247255d6b6687448173056c3ca8d09b Author: Akira TAGOH Date: Tue Apr 9 11:34:35 2013 +0900 Ensure closing fp on error src/fchash.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 18bf57c70aafcad031c0b43756b754dcaf6a756a Author: Sebastian Freundt Date: Sun Apr 7 00:02:58 2013 +0000 build-chain, replace INCLUDES directive by AM_CPPFLAGS As of automake-13.1 the INCLUDES directive is no longer supported. An automake run will return with an error. This changeset simply follows automake's advice to replace INCLUDES by AM_CPPFLAGS. Tools.mk | 4 ++-- fc-cache/Makefile.am | 2 +- fc-cat/Makefile.am | 2 +- fc-list/Makefile.am | 2 +- fc-match/Makefile.am | 2 +- fc-pattern/Makefile.am | 2 +- fc-query/Makefile.am | 2 +- fc-scan/Makefile.am | 2 +- fc-validate/Makefile.am | 2 +- src/Makefile.am | 2 +- 10 files changed, 11 insertions(+), 11 deletions(-) commit 8fd0ed60a62cb7f36b2ade1bd16a66671eaf79da Author: Akira TAGOH Date: Mon Apr 1 18:16:28 2013 +0900 Bug 62980 - matching native fonts with even :lang=en Fix the matcher modified by 4eab908c8679a797ac7016b77a93ee41bb11b0fc to deal with both strong and weak of FC_LANG as the same location in the score src/fcmatch.c | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) commit 73fa326d1e791b587da93b795f962c3405b7a96d Author: Akira TAGOH Date: Fri Mar 29 16:10:15 2013 +0900 Bump version to 2.10.92 README | 65 +++++++++++++++++++++++++++++++++++++++++++++++-- configure.ac | 2 +- fontconfig/fontconfig.h | 2 +- 3 files changed, 65 insertions(+), 4 deletions(-) commit c842412c079e781d53f023616d9758223fb68323 Author: Akira TAGOH Date: Fri Mar 29 16:07:30 2013 +0900 Minor fix new-version.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b3b435b87f1aec1b2779fd7edbbff5571c3c61a2 Author: Akira TAGOH Date: Fri Mar 29 16:02:34 2013 +0900 Bump libtool revision configure.ac | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 3fc22cfe756fcb2d6c5a64aa305957c417c6cecd Author: Akira TAGOH Date: Fri Mar 29 12:46:04 2013 +0900 Minor cleanup Makefile.am | 1 + 1 file changed, 1 insertion(+) commit b561ff2016ce84eef3c81f16dfb0481be6a13f9b Author: Akira TAGOH Date: Fri Jan 18 11:30:10 2013 +0900 Bug 38737 - Wishlist: support FC_POSTSCRIPT_NAME Add the PostScript name into the cache and the matcher. Scoring the better font against the PostScript name by the forward-matching. fontconfig/fontconfig.h | 1 + src/fcfreetype.c | 49 +++++++++++++++++++++++++++- src/fcint.h | 6 ++++ src/fcmatch.c | 21 ++++++++++++ src/fcobjs.h | 1 + src/fcstr.c | 85 ++++++++++++++++++++++++++++--------------------- 6 files changed, 125 insertions(+), 38 deletions(-) commit c758206e8c0e5b572bd34183b184ef4361745333 Author: Akira TAGOH Date: Thu Mar 21 11:58:06 2013 +0900 Fix a SIGSEGV on FcPatternGet* with NULL pattern src/fcpat.c | 2 ++ 1 file changed, 2 insertions(+) commit bdf1581e3de5528f397f19bfd4ca9caaf9e7fe4a Author: Behdad Esfahbod Date: Fri Mar 8 05:53:27 2013 -0500 Fix crash with FcConfigSetCurrent(NULL) src/fccfg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aad4d6f6c68d06415333f5d0d3e4b4870114f11d Author: Akira TAGOH Date: Thu Mar 7 13:19:50 2013 +0900 Do not copy FC_*LANG_OBJECT even if it's not available on the pattern those objects are linked to the corresponding string objects. this may causes inconsistency that those objects has more values than them. src/fcmatch.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit e96d7760886a3781a46b3271c76af99e15cb0146 Author: Akira TAGOH Date: Wed Feb 6 19:35:30 2013 +0900 Bug 59456 - Adding a --sysroot like option to fc-cache Add an ability to set the system root to generate the caches. In order to do this, new APIs, FcConfigGetSysRoot() and FcConfigSetSysRoot() is available. doc/fcconfig.fncs | 21 +++++++++++ fc-cache/fc-cache.c | 38 +++++++++++++------ fontconfig/fontconfig.h | 7 ++++ src/fccache.c | 99 +++++++++++++++++++++++++++++++++---------------- src/fccfg.c | 57 ++++++++++++++++++++++++++++ src/fcinit.c | 30 ++++++++++----- src/fcint.h | 15 +++++++- src/fcstr.c | 62 ++++++++++++++++++++++++++++++- 8 files changed, 275 insertions(+), 54 deletions(-) commit 569657a24ca11aedfd3b588984344d7ab97fe09f Author: Akira TAGOH Date: Tue Mar 5 12:46:01 2013 +0900 Fix a memory leak src/fclang.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 612ee2a5c91b8929b2cc5abce4af84d8d7e66bd0 Author: Akira TAGOH Date: Fri Mar 1 22:21:25 2013 +0900 Fix broken sort order with FcFontSort() which was introduced by 4eab908c8679a797ac7016b77a93ee41bb11b0fc src/fcmatch.c | 7 +++++++ 1 file changed, 7 insertions(+) commit ea4ebd59377d3dff3616bd20381f308a92781ae6 Author: Akira TAGOH Date: Fri Mar 1 19:38:21 2013 +0900 Fix a crash when the object is non-builtin object src/fcmatch.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 10230497675fa4fcbb427efe8dd2883839ddaec0 Author: Akira TAGOH Date: Fri Mar 1 18:41:27 2013 +0900 Fix a typo conf.d/30-metric-aliases.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit db69bf6ecd0da4d23bdfe38652bb53d2daa655a2 Author: Akira TAGOH Date: Fri Mar 1 18:31:01 2013 +0900 Bug 60783 - Add Liberation Sans Narrow to 30-metric-aliases.conf Add Liberation Sans Narrow as an alias for Arial Narrow conf.d/30-metric-aliases.conf | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 2c696255749683e9a084f797eb033d222510a275 Author: Akira TAGOH Date: Mon Feb 18 13:17:53 2013 +0900 Bug 60748 - broken conf.d/10-autohint.conf and conf.d/10-unhinted.conf Move the target of recipes to the "pattern" from the "font". This is to ensure the targeted objects is updated by them prior to FcDefaultSubstitute() so that it can adds the default values properly. conf.d/10-autohint.conf | 2 +- conf.d/10-no-sub-pixel.conf | 2 +- conf.d/10-sub-pixel-bgr.conf | 2 +- conf.d/10-sub-pixel-rgb.conf | 2 +- conf.d/10-sub-pixel-vbgr.conf | 2 +- conf.d/10-sub-pixel-vrgb.conf | 2 +- conf.d/10-unhinted.conf | 2 +- conf.d/11-lcdfilter-default.conf | 2 +- conf.d/11-lcdfilter-legacy.conf | 2 +- conf.d/11-lcdfilter-light.conf | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) commit 83f679ce558de736ef1a095a362397da0ac3417f Author: Behdad Esfahbod Date: Fri Feb 15 09:48:38 2013 -0500 Accept digits as part of OpenType script tags They've been used since 2005. src/fcfreetype.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 72b0480a21958f0f8c115d8e0a5bfbd8d358b5c3 Author: Akira TAGOH Date: Thu Feb 7 17:56:17 2013 +0900 Add Culmus foundry to the vendor list Maps fonts produced by the Culmus project to the XLFD foundry name culmus. For TrueType fonts, maps the vendor code CLM from the TrueType vendor id field. For Type1 fonts, which use heuristics to guess mappings to XLFD foundries from words in the copyright notice, add the names of the main contributors to the Culmus product to recognize the fonts under their copyright. Patch from Maxim Iorsh src/fcfreetype.c | 67 +++++++++++++++++++------------------------------------- 1 file changed, 23 insertions(+), 44 deletions(-) commit 96220a5ed9d1d761b14a7ac516ac6786c132f280 Author: Quentin Glidic Date: Sat Feb 2 17:01:07 2013 +0100 Use LOG_COMPILER and AM_TESTS_ENVIRONMENT TESTS_ENVIRONMENT is deprecated and should be reserved to the user to override the test environment _LOG_COMPILER is meant to contain the program that runs the test with extension LOG_COMPILER is for extensionless tests AM_TESTS_ENVIRONMENT is meant to set the environment for the tests https://bugs.freedesktop.org/show_bug.cgi?id=60192 Signed-off-by: Quentin Glidic Makefile.am | 1 - configure.ac | 2 +- doc/Makefile.am | 5 ++++- test/Makefile.am | 12 +++++++++++- 4 files changed, 16 insertions(+), 4 deletions(-) commit 62b7d764ce994bb32e7614337fdfa0854445c380 Author: Akira TAGOH Date: Wed Feb 6 19:14:51 2013 +0900 Bump the cache version to 4 fontconfig/fontconfig.h | 2 +- src/fcint.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 4eab908c8679a797ac7016b77a93ee41bb11b0fc Author: Akira TAGOH Date: Wed Feb 6 19:02:07 2013 +0900 Update _FcMatchers definition logic to make it easier to maintain. also added FC_HASH_OBJECT to be matched in the pattern, prior to FC_FILE_OBJECT. src/fcint.h | 2 +- src/fcmatch.c | 184 +++++++++++++++++++++++-------------------------- src/fcname.c | 2 +- src/fcobjs.h | 90 ++++++++++++------------ src/fcobjshash.gperf.h | 2 +- 5 files changed, 134 insertions(+), 146 deletions(-) commit 52b2b5c99268d5ad28dc0972c5f136720d55f21b Author: Akira TAGOH Date: Tue Feb 5 20:44:18 2013 +0900 Bug 60312 - DIST_SUBDIRS should never appear in a conditional As it is documented like this: If SUBDIRS is defined conditionally using Automake conditionals, Automake will define DIST_SUBDIRS automatically from the possible values of SUBDIRS in all conditions. So we don't need to re-define DIST_SUBDIRS in Makefile.am unless we use AC_SUBST to define SUBDIRS. Patch from Quentin Glidic Makefile.am | 3 --- 1 file changed, 3 deletions(-) commit 95af7447dba7c54ed162b667c0bb2ea6500e8f32 Author: Akira TAGOH Date: Mon Feb 4 16:03:29 2013 +0900 Bug 50733 - Add font-file hash? Add "hash" object which contains SHA256 hash value (so far) computed from the font file. fontconfig/fontconfig.h | 1 + src/Makefile.am | 1 + src/fcfreetype.c | 9 ++ src/fchash.c | 265 ++++++++++++++++++++++++++++++++++++++++++++++++ src/fcint.h | 7 ++ src/fcobjs.h | 1 + 6 files changed, 284 insertions(+) commit d34643894f2dff7eec35345e8e9b32a9a32fa113 Author: Akira TAGOH Date: Tue Feb 5 14:17:16 2013 +0900 Use AM_MISSING_PROG instead of hardcoding missing Makefile.am | 2 +- configure.ac | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit 241cd53ff62599ecf557c6a4f975fc427dad9700 Author: Akira TAGOH Date: Tue Feb 5 11:33:47 2013 +0900 Revert "test: Use SH_LOG_COMPILER and AM_TESTS_ENVIRONMENT" This reverts commit 2146b0307a3476892723104481f27f8484451c52. That change introduces incompatibility and seems not working with older releases of automake, including automake 1.12.2. test/Makefile.am | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) commit 2146b0307a3476892723104481f27f8484451c52 Author: Quentin Glidic Date: Sat Feb 2 17:01:07 2013 +0100 test: Use SH_LOG_COMPILER and AM_TESTS_ENVIRONMENT TESTS_ENVIRONMENT is deprecated and should be reserved to the user to override the test environment _LOG_COMPILER is meant to contain the program that runs the test with extension AM_TESTS_ENVIRONMENT is meant to set the environment for the tests https://bugs.freedesktop.org/show_bug.cgi?id=60192 Signed-off-by: Quentin Glidic test/Makefile.am | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit da0946721af3ab2dff3cd903065336b93592d067 Author: Akira TAGOH Date: Mon Feb 4 17:57:00 2013 +0900 Use AM_MISSING_PROG instead of hardcoding missing configure.ac | 2 ++ src/Makefile.am | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) commit 786ead52015573e7b60a53d79abc26d611f1fe93 Author: Akira TAGOH Date: Mon Feb 4 17:20:03 2013 +0900 Modernize configure.ac configure.ac | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 20191810d1fea7c2f49b65ffee3e4d5e2bc0bac3 Author: Akira TAGOH Date: Tue Jan 29 20:19:36 2013 +0900 Bug 23757 - Add mode="delete" to Add two edit mode, "delete" and "delete_all". what values are being deleted depends on as documented. if the target object is same to what is tested, matching value there will be deleted. otherwise all of values in the object will be deleted. so this would means both edit mode will not take any expressions. e.g. Given that the testing is always true here, the following rules: bar will removes "bar" string from "foo" object. and: foo will removes all of values in "bar" object. doc/fontconfig-user.sgml | 2 ++ fonts.dtd | 2 +- src/fccfg.c | 10 ++++++++++ src/fcdbg.c | 6 ++++-- src/fcint.h | 1 + src/fcxml.c | 11 +++++++++++ 6 files changed, 29 insertions(+), 3 deletions(-) commit c1d9588890798e389d0f0ba633b704dee1ea8bf5 Author: Colin Walters Date: Thu Jan 31 21:32:46 2013 -0500 build: Only use PKG_INSTALLDIR if available It's only in pkg-config 0.27 or newer, but 0.25 at least is still fairly widespread. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e11f15628cff04c4a742f88abee22f440edcce52 Author: Christoph J. Thompson Date: Fri Feb 1 02:27:32 2013 +0100 Use the PKG_INSTALLDIR macro. modified: Makefile.am modified: configure.ac Makefile.am | 1 - configure.ac | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) commit d26fb23c41abd87422778bb38eea39f25ba3dc4a Author: Akira TAGOH Date: Fri Jan 25 20:01:24 2013 +0900 Bug 59385 - Do the right thing for intermixed edit and test elements This changes allows to have multiple mathcing rules in one block in the same order. After this changes, the following thing will works as two matching rules: foo foo foo bar fonts.dtd | 2 +- src/fcxml.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) commit fb3b410998aba8835999e2ca7003a180431cfaf4 Author: Akira TAGOH Date: Wed Jan 23 12:37:51 2013 +0900 remove the unnecessary code src/fccompat.c | 6 ------ 1 file changed, 6 deletions(-) commit 5400bb4fb43dc811b813f11d5b0c023db727f543 Author: Akira TAGOH Date: Wed Jan 23 12:32:37 2013 +0900 Add another approach to FC_PRGNAME for Solaris 10 or before Patch from Raimund Steger configure.ac | 2 +- src/fcdefault.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) commit 000ca9ccb03013a5b151f0d21148ab0ca4c2f2de Author: Akira TAGOH Date: Tue Jan 22 12:11:56 2013 +0900 Fix installation on MinGW32 Patch from LRN src/Makefile.am | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 6363193a0575cf6f58baf7f0a772ad8f92b7b904 Author: Akira TAGOH Date: Tue Jan 22 12:03:28 2013 +0900 Fix mkstemp absence for some platform Patch from LRN and modified to make more generic. src/fccache.c | 57 ---------------------------- src/fccompat.c | 116 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/fcint.h | 3 ++ 3 files changed, 119 insertions(+), 57 deletions(-) commit 9dbc282796e9a4d5a2a8cc7d1c8e29b9154e91c0 Author: Akira TAGOH Date: Tue Jan 22 10:26:41 2013 +0900 Add missing file descriptor to F_DUPFD_CLOEXEC Patch from Matthieu Herrb src/fccompat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6118781f7f5dba672d19a841cc231661bf5fb59d Author: Behdad Esfahbod Date: Thu Jan 17 19:27:20 2013 -0600 Fix readlink failure As reported by Raimund Steger. src/fcdefault.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 671bcb34e23ed03b1f564af35560db81f8b12b96 Author: Akira TAGOH Date: Thu Jan 17 12:49:16 2013 +0900 Better fix for 2fe5ddfd Drop realpath() and fix breakage on Win32 configure.ac | 2 +- src/fcdefault.c | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) commit 2fe5ddfdae6be80db5b7e622ab6c1ab985377542 Author: Behdad Esfahbod Date: Wed Jan 16 21:01:28 2013 -0600 Fix FC_PRGNAME default As reported by Raimund Steger. src/fcdefault.c | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) commit 55d39bcad0737e92e1207fabbd8c65fa9e5e0482 Author: Behdad Esfahbod Date: Wed Jan 16 07:30:44 2013 -0600 Fix fc-cache crash caused by looking up NULL object incorrectly We were returning a skiplist node when looking up NULL! src/fccache.c | 7 +++++-- src/fccfg.c | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) commit 106c4f73119e00a7804ef79ee556f1111d680e32 Author: Behdad Esfahbod Date: Wed Jan 16 07:05:07 2013 -0600 Minor src/fcfreetype.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 1a5d0daea0173e2cc47d76d2022467f0dbd423f0 Author: Behdad Esfahbod Date: Wed Jan 16 04:52:06 2013 -0600 Remove unused checks for common functions The check results of these were never actually used. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f9ac4c84c90cbb57afbf1fa3a5c9ff3bfc4f537e Author: Akira TAGOH Date: Wed Jan 16 16:35:28 2013 +0900 Improve FcGetPrgname() to work on BSD configure.ac | 2 +- src/fcdefault.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) commit ec5ca08c807585a9230f83c95f7cca6b7065b142 Author: Behdad Esfahbod Date: Tue Jan 15 20:41:26 2013 -0600 Bug 59379 - FC_PRGNAME Can be used for per-application configuration. configure.ac | 2 +- doc/fontconfig-devel.sgml | 3 +- doc/fontconfig-user.sgml | 1 + fontconfig/fontconfig.h | 1 + src/fccfg.c | 7 ++++ src/fcdefault.c | 85 +++++++++++++++++++++++++++++++++++++++++++++-- src/fcint.h | 3 ++ src/fcobjs.h | 1 + 8 files changed, 99 insertions(+), 4 deletions(-) commit 3f84695104b169fe25742ba3b91d04467f5debc4 Author: Akira TAGOH Date: Tue Sep 4 12:39:48 2012 +0900 Bug 50497 - RFE: Add OpenType feature tags support Add FC_FONT_FEATURES to store the feature tags to be enabled. doc/fontconfig-devel.sgml | 2 ++ doc/fontconfig-user.sgml | 1 + fontconfig/fontconfig.h | 1 + src/fcobjs.h | 1 + 4 files changed, 5 insertions(+) commit dffb69ed8c7cf2e707bc692f94b51108b772d9d8 Author: Akira TAGOH Date: Tue Jan 15 17:26:27 2013 +0900 Fix the build fail on MinGW Reported at http://lists.freedesktop.org/archives/fontconfig/2013-January/004601.html just warn at the runtime instead of the compile time. it somewhat works on even MinGW since FcMakeTempfile() isn't used on Win32 so far. src/fccompat.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 8b8f0d21534aa9b82276815c84429ffca8941d2a Author: Behdad Esfahbod Date: Mon Jan 14 14:39:12 2013 -0600 Minor src/fcmatch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8828fffd93c6b19bcfd7626ddc472aa8f055d034 Author: Behdad Esfahbod Date: Mon Jan 14 14:36:38 2013 -0600 Copy all values from pattern to font if the font doesn't have the element Bug 59376 - FcFontRenderPrepare enhancement src/fcmatch.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 0831c1770e4bac7269a190936bbb0529d747e233 Author: Behdad Esfahbod Date: Thu Jan 10 09:01:52 2013 -0600 Ensure we find the uninstalled fontconfig header Patch from Colin Walters. test/Makefile.am | 2 ++ 1 file changed, 2 insertions(+) commit 1527c395cbe0bbab9e66a42213ef3ac5ce1c0383 Author: Behdad Esfahbod Date: Thu Jan 10 09:00:18 2013 -0600 Resepct $NOCONFIGURE Patch from Colin Walters. autogen.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fcc3567847949ec422157d331c9640cd0453e169 Author: Akira TAGOH Date: Thu Jan 10 17:57:12 2013 +0900 Bump version to 2.10.91 README | 105 +++++++++++++++++++++++++++++++++++++++++++++++- configure.ac | 2 +- fontconfig/fontconfig.h | 2 +- 3 files changed, 105 insertions(+), 4 deletions(-) commit 98352247f2ab01046c330485f73fd26eb15a08a4 Author: Akira TAGOH Date: Thu Jan 10 17:56:51 2013 +0900 Update the date in README properly new-version.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9066fbe7855674ff51053b78f1d0d179486e22ea Author: Behdad Esfahbod Date: Thu Jan 10 01:23:07 2013 -0600 Make linker happy fc-validate/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 98efed3bcafc92b573b193b5b38039aa717617d3 Author: Behdad Esfahbod Date: Thu Jan 10 01:17:02 2013 -0600 Add atomic ops for Solaris Patch from Raimund Steger. configure.ac | 22 ++++++++++++++++++++-- src/fcatomic.h | 12 ++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) commit 8e8a99ae8a1c2e56c42093bee577d6de66248366 Author: Akira TAGOH Date: Mon Sep 10 16:09:04 2012 +0900 Bug 29312 - RFE: feature to indicate which characters are missing to satisfy the language support Add fc-validate to check the language coverage in a font. Makefile.am | 2 +- configure.ac | 1 + doc/fclangset.fncs | 8 ++ fc-validate/Makefile.am | 60 +++++++++++ fc-validate/fc-validate.c | 242 +++++++++++++++++++++++++++++++++++++++++++ fc-validate/fc-validate.sgml | 182 ++++++++++++++++++++++++++++++++ fontconfig/fontconfig.h | 3 + src/fcint.h | 3 - 8 files changed, 497 insertions(+), 4 deletions(-) commit 16fd965171808c10f87d097f678ee9e10771be72 Author: Akira TAGOH Date: Wed Jan 9 11:26:56 2013 +0900 Fix a typo in the manpages template doc/func.sgml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7680e9ee891a74f0e428e30604a5d0ff0e2e9383 Author: Behdad Esfahbod Date: Tue Jan 8 14:51:00 2013 -0600 Add pthread test Not enabled by default since it requires config and fonts. test/Makefile.am | 9 ++++++ test/test-pthread.c | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+) commit dc21ed28d69df279c6068d9cae862e02af72815f Author: Behdad Esfahbod Date: Tue Jan 8 13:01:48 2013 -0600 Fix memory corruption! In FcStrListCreate() we were increasing reference count of set, however, if set had a const reference (which is the case for list of languages), and with multiple threads, the const ref (-1) was getting up to 1 and then a decrease was destroying the set. Ouch. Here's the valgrind error, which took me quite a few hours of running to catch: ==4464== Invalid read of size 4 ==4464== at 0x4E58FF3: FcStrListNext (fcstr.c:1256) ==4464== by 0x4E3F11D: FcConfigSubstituteWithPat (fccfg.c:1508) ==4464== by 0x4E3F8F4: FcConfigSubstitute (fccfg.c:1729) ==4464== by 0x4009FA: test_match (simple-pthread-test.c:53) ==4464== by 0x400A6E: run_test_in_thread (simple-pthread-test.c:68) ==4464== by 0x507EE99: start_thread (pthread_create.c:308) ==4464== Address 0x6bc0b44 is 4 bytes inside a block of size 24 free'd ==4464== at 0x4C2A82E: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==4464== by 0x4E58F84: FcStrSetDestroy (fcstr.c:1236) ==4464== by 0x4E3F0C6: FcConfigSubstituteWithPat (fccfg.c:1507) ==4464== by 0x4E3F8F4: FcConfigSubstitute (fccfg.c:1729) ==4464== by 0x4009FA: test_match (simple-pthread-test.c:53) ==4464== by 0x400A6E: run_test_in_thread (simple-pthread-test.c:68) ==4464== by 0x507EE99: start_thread (pthread_create.c:308) Thread test is running happily now. Will add the test in a moment. src/fcstr.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit 4e6c7d0827c5b3b20205521bf9bd2e94e704b36d Author: Akira TAGOH Date: Tue Jan 8 16:20:28 2013 +0900 Fix a build fail on mingw Regarding the change of 596931c8b4a7a35cbff9c33437d3cd44395d9c3f configure.ac | 2 +- src/fccompat.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) commit d837a7a584bc1e908bc4370d337cd10ecc781fad Author: Akira TAGOH Date: Tue Jan 8 16:18:32 2013 +0900 missing header file to declare _mkdir src/fccache.c | 1 + 1 file changed, 1 insertion(+) commit 596931c8b4a7a35cbff9c33437d3cd44395d9c3f Author: Akira TAGOH Date: Thu Dec 6 20:01:52 2012 +0900 Bug 47705 - Using O_CLOEXEC configure.ac | 4 ++- src/Makefile.am | 1 + src/fcatomic.c | 3 +- src/fccache.c | 6 ++-- src/fccompat.c | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/fcint.h | 7 ++++ src/fcstat.c | 2 +- src/fcxml.c | 2 +- 8 files changed, 120 insertions(+), 8 deletions(-) commit d7de1b5c6d4b8800825913ac40a9cea00824f2f8 Author: Behdad Esfahbod Date: Mon Jan 7 20:10:14 2013 -0600 Fix pthreads setup As reported by Raimund Steger. configure.ac | 3 +++ 1 file changed, 3 insertions(+) commit 1c4c4978adb0fa59767ac7d8c7f98a86928b2fdc Author: Behdad Esfahbod Date: Mon Jan 7 17:59:17 2013 -0600 Oops, add the actual file conf.d/10-scale-bitmap-fonts.conf | 81 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) commit dc11dd581f228623f0f14b3a6a1e4beaa659266b Author: Behdad Esfahbod Date: Mon Jan 7 16:41:29 2013 -0600 Add 10-scale-bitmap-fonts.conf and enable by default conf.d/Makefile.am | 2 ++ 1 file changed, 2 insertions(+) commit ea3a35306617eec068ed961439cf76cdbcb10c28 Author: Akira TAGOH Date: Mon Jan 7 17:55:04 2013 +0900 Clean up the unused variable fc-query/fc-query.c | 1 - 1 file changed, 1 deletion(-) commit 17eda89ed2e24a3fc5f68538dd7fd9ada8efb087 Author: Behdad Esfahbod Date: Thu Jan 3 20:33:34 2013 -0600 Remove FcInit() calls from tools Library is supposed to automatically initialize itself. If it doesn't, it's a bug. fc-list/fc-list.c | 5 ----- fc-match/fc-match.c | 5 ----- fc-pattern/fc-pattern.c | 5 ----- fc-query/fc-query.c | 6 ------ fc-scan/fc-scan.c | 6 ------ 5 files changed, 27 deletions(-) commit 102a4344dd7f668cf03b9665c718505050e0ae78 Author: Behdad Esfahbod Date: Thu Jan 3 20:31:22 2013 -0600 Don't use blanks for fc-query fc-query is supposed to be config-independent. fc-query/fc-query.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit b6b678e71eb0ba2b53335b7df0804058f6bd006d Author: Akira TAGOH Date: Fri Jan 4 11:29:50 2013 +0900 Missing header file for _mkdir declaration src/fcatomic.c | 1 + 1 file changed, 1 insertion(+) commit 8e143b4ec447a7ee6c501e7488a3c94db7e6a035 Author: Behdad Esfahbod Date: Thu Jan 3 04:19:12 2013 -0600 Minor src/fcobjs.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 16ddb9ff31a7d45ae477f5274c704523b2ec7330 Author: Behdad Esfahbod Date: Wed Jan 2 22:37:33 2013 -0600 Ugh, add Tools.mk Tools.mk | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) commit 86e3255118e943bcc5c16cf1628ca381470ca34d Author: Behdad Esfahbod Date: Wed Jan 2 20:16:55 2013 -0600 Second try to make Sun CPP happy src/Makefile.am | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) commit bc62c40597c3d95edfdc6a93b39d0bb3837d1d34 Author: Behdad Esfahbod Date: Wed Jan 2 20:08:40 2013 -0600 Really fix cross-compiling and building of tools this time configure.ac | 1 + fc-case/Makefile.am | 47 +++++---------------------- fc-glyphname/Makefile.am | 47 +++++---------------------- fc-glyphname/fc-glyphname.c | 2 +- fc-lang/Makefile.am | 44 +++++--------------------- fc-lang/fc-lang.c | 8 ++--- m4/ax_cc_for_build.m4 | 77 +++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 107 insertions(+), 119 deletions(-) commit 32c1d32cbd54686804481fedaa1881d4f3043f1b Author: Behdad Esfahbod Date: Wed Jan 2 19:04:17 2013 -0600 Work around Sun CPP According to Raimund Steger: > [...] > diff --git a/src/Makefile.am b/src/Makefile.am > index dc082b7..57c34a2 100644 > [...] > +fcobjshash.gperf: fcobjshash.gperf.h fcobjs.h > + $(AM_V_GEN) $(CPP) -I$(top_srcdir) $< | $(GREP) '^[^#]' | awk ' \ > + /CUT_OUT_BEGIN/ { no_write=1; next; }; \ > + /CUT_OUT_END/ { no_write=0; next; }; \ > + { if (!no_write) print; next; }; \ > + ' - > $@.tmp && \ > + mv -f $@.tmp $@ Sun Studio CPP seems to insert whitespace in a different way than GCC's CPP. GCC generates in src/fcobjshash.gperf: [...] "family", FC_FAMILY_OBJECT "familylang", FC_FAMILYLANG_OBJECT [...] Sun Studio generates: [...] "family" , FC_FAMILY_OBJECT "familylang" , FC_FAMILYLANG_OBJECT [...] leading to: [...] Making all in src gmake[2]: Entering directory `/home/rs/src/fontconfig-git/fontconfig/src' GEN fcobjshash.gperf GEN fcobjshash.h Key link: " " = " ", with key set "". 1 input keys have identical hash values, use option -D. gmake[2]: *** [fcobjshash.h] Error 1 gmake[2]: Leaving directory `/home/rs/src/fontconfig-git/fontconfig/src' gmake[1]: *** [all-recursive] Error 1 gmake[1]: Leaving directory `/home/rs/src/fontconfig-git/fontconfig' gmake: *** [all] Error 2 ...maybe we could tuck in an additional sed to remove the whitespace, like: [...] fcobjshash.gperf: fcobjshash.gperf.h fcobjs.h $(AM_V_GEN) $(CPP) -I$(top_srcdir) $< | \ $(SED) 's/^\s*//;s/\s*,\s*/,/;' | \ $(GREP) '^[^#]' | \ $(AWK) '/CUT_OUT_BEGIN/,/CUT_OUT_END/ { next; }; { print; };' \ > $@.tmp && \ mv -f $@.tmp $@ [...] though I'm not sure what kind of guarantee CPP can give us/what easier option I might have missed... src/Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b1510145e7a38802bd544de6035fabf9f81f9710 Author: Behdad Esfahbod Date: Wed Jan 2 18:57:47 2013 -0600 Fix build around true/false src/fcatomic.h | 4 ++-- src/fcinit.c | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) commit 538f1579e86fdcf471cea58945bf8c674d5b91e7 Author: Behdad Esfahbod Date: Wed Jan 2 18:07:13 2013 -0600 Trying to fix distcheck Doesn't work though :(. Building docs is very fragile... At least, if docbook is present, distcheck passes now. Makefile.am | 11 +++++++++-- configure.ac | 4 ---- doc/Makefile.am | 8 ++++++++ 3 files changed, 17 insertions(+), 6 deletions(-) commit 46ab96b8fa029fbc8ccf69a6f2fda89866e3ac9c Author: Behdad Esfahbod Date: Wed Jan 2 17:52:00 2013 -0600 Fix more warnings. Linux build and mingw32 cross build warning-free now. src/fcobjs.c | 10 ++++++++-- src/fcobjshash.gperf.h | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) commit 558b3c65f91b4b2dd65ce2242e1a21ace621e44b Author: Behdad Esfahbod Date: Wed Jan 2 17:49:41 2013 -0600 Use CC_FOR_BUILD to generate source files Previously we were failing if CROSS_COMPILING and the generated headers were not present. It works just fine now. One caveat: the fix is not fully correct since config.h is being included in the files built with CC_FOR_BUILD, but config.h has config for the host system, not the build system. Should be fine though. configure.ac | 1 + doc/Makefile.am | 6 +----- fc-case/Makefile.am | 8 +------- fc-glyphname/Makefile.am | 9 ++++----- fc-lang/Makefile.am | 9 +++------ 5 files changed, 10 insertions(+), 23 deletions(-) commit ec8a40d2381014ad2e72b5da0e6357a85f078f9f Author: Behdad Esfahbod Date: Wed Jan 2 17:35:56 2013 -0600 Fix build and warnings on win32 src/Makefile.am | 1 + src/fcatomic.h | 9 +++------ src/fccache.c | 2 +- src/fccfg.c | 17 ++++++----------- src/fcint.h | 7 +------ src/fcmutex.h | 5 ++--- src/fcstat.c | 3 --- src/fcstr.c | 3 --- src/fcwindows.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ src/fcxml.c | 18 +++++++++--------- 10 files changed, 67 insertions(+), 42 deletions(-) commit 5c0a4f2726fd1440bf3ec4bb375e5e4d146bd989 Author: Behdad Esfahbod Date: Wed Jan 2 02:27:57 2013 -0600 Minor fc-glyphname/fc-glyphname.c | 46 ++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) commit 766bed901f7f4c648387fb403ef6e253be1c45e9 Author: Behdad Esfahbod Date: Wed Jan 2 02:19:04 2013 -0600 Fix compiler warnings src/fcobjs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 93fb1d4bab5fefb73393141bb3e96c9dc279e615 Author: Behdad Esfahbod Date: Wed Jan 2 02:06:15 2013 -0600 Remove FcSharedStr* src/fccfg.c | 2 +- src/fcdefault.c | 6 +++--- src/fcint.h | 9 +++------ src/fclist.c | 6 +++--- src/fcname.c | 2 +- src/fcobjs.c | 2 +- src/fcpat.c | 25 +++---------------------- src/fcstr.c | 11 +---------- src/fcxml.c | 10 +++++----- 9 files changed, 21 insertions(+), 52 deletions(-) commit 6b143781073cf395fd6211c75bbdc9f5b5a54936 Author: Behdad Esfahbod Date: Wed Jan 2 01:54:38 2013 -0600 Fixup fcobjs.c Ouch! src/fcobjs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6047ce7b9fb793da4e693e3777bbd3e1baf3146e Author: Behdad Esfahbod Date: Wed Jan 2 01:31:34 2013 -0600 Warn about undefined/invalid attributes during config parsing src/fcxml.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit b604f10c0c31a56ae16154dfe6a2f13b795aaabf Author: Behdad Esfahbod Date: Wed Jan 2 01:09:20 2013 -0600 Make fcobjs.c thread-safe With this, the library should be threadsafe as far as my analysis goes! src/fcobjs.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 2ae07bbcd2a7650f2711b45e78e65e2ca1c4a17a Author: Behdad Esfahbod Date: Mon Oct 15 19:35:03 2012 -0500 Make FcDirCacheDispose() threadsafe src/fccache.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 68b8ae9af8b0f86dade6135b01aaf0b2f2077fb5 Author: Behdad Esfahbod Date: Wed Oct 10 15:24:31 2012 -0400 Make cache hash threadsafe This concludes my first pass at making fontconfig threadsafe. Now to testing and actually fixing it! src/fccache.c | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) commit adb03b730de5d090855f45bc23b934a65ef2399c Author: Behdad Esfahbod Date: Mon Oct 8 20:03:35 2012 -0400 Make random-state initialization threadsafe src/fccache.c | 5 +++++ 1 file changed, 5 insertions(+) commit 91dd7d28ffc397fb1389f76ac55b397e55da809d Author: Behdad Esfahbod Date: Mon Oct 8 20:02:05 2012 -0400 Add a big cache lock Not used yet. src/fccache.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) commit 8d2bbb193ae49ea6abd5a9b4d28d3d88ac97d7a2 Author: Behdad Esfahbod Date: Sun Oct 7 21:03:58 2012 -0400 Make cache refcounting threadsafe src/fcatomic.h | 1 + src/fccache.c | 13 ++++++------- 2 files changed, 7 insertions(+), 7 deletions(-) commit 31ee38e541180db6d7bc58d5abde83136352e7ce Author: Behdad Esfahbod Date: Sun Oct 7 17:46:12 2012 -0400 Minor src/fccfg.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b8f238e49d7b7e1cff787c518cd4490b32039cca Author: Behdad Esfahbod Date: Sun Oct 7 17:42:18 2012 -0400 Make FcCacheIsMmapSafe() threadsafe src/fccache.c | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) commit b27a22aae9902d409c21e5bb19a97dcc5966ea24 Author: Behdad Esfahbod Date: Sun Oct 7 17:29:45 2012 -0400 Minor src/fcinit.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 0552f26016865b8a76819cf342fa0cf13afdc5e8 Author: Behdad Esfahbod Date: Sun Oct 7 17:02:50 2012 -0400 Make default-FcConfig threadsafe src/fccfg.c | 60 +++++++++++++++++++++++++++++++++++++-------------------- src/fcdefault.c | 3 +-- 2 files changed, 40 insertions(+), 23 deletions(-) commit e53f5da54f066f73a53eba1f82f54521fa3f7ea2 Author: Behdad Esfahbod Date: Sun Oct 7 16:42:36 2012 -0400 Minor src/fccfg.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 7ae24b4554a8543d8cd41a83b6114e0143982758 Author: Behdad Esfahbod Date: Sun Oct 7 16:37:03 2012 -0400 Refactor; contain default config in fccfg.c src/fccfg.c | 26 ++++++++++++++++++++++++-- src/fcinit.c | 14 ++------------ src/fcint.h | 8 ++++++-- src/fcxml.c | 4 ++-- 4 files changed, 34 insertions(+), 18 deletions(-) commit 32b0d88923524c24f4be36733ebef5872b57b95a Author: Behdad Esfahbod Date: Sun Oct 7 16:26:53 2012 -0400 Make FcDefaultFini() threadsafe src/fcdefault.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) commit 7019896c99872b23d89b1404b02754cbc4ea1456 Author: Behdad Esfahbod Date: Sun Oct 7 16:09:35 2012 -0400 Make FcInitDebug() idempotent src/fcdbg.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) commit b97ab0c94938448dc2b780b8f0f60fb68884899f Author: Behdad Esfahbod Date: Sun Oct 7 15:52:25 2012 -0400 Make FcGetDefaultLang and FcGetDefaultLangs thread-safe src/fcdefault.c | 83 +++++++++++++++++++++++++++++++++++++++++---------------- src/fcinit.c | 1 + src/fcint.h | 3 +++ src/fcstr.c | 4 +++ 4 files changed, 68 insertions(+), 23 deletions(-) commit 64af9e1917114c789ad74dd28b3248f8c0525f45 Author: Behdad Esfahbod Date: Sun Oct 7 14:41:38 2012 -0400 Make refcounts, patterns, charsets, strings, and FcLang thread-safe src/fcatomic.h | 18 +++++++++--------- src/fccfg.c | 29 +++++++++++++++-------------- src/fccharset.c | 24 ++++++++++++------------ src/fcdefault.c | 2 +- src/fcint.h | 26 ++++++++++++++++++++------ src/fclang.c | 43 ++++++++++++++++++++++++------------------- src/fcmatch.c | 4 ---- src/fcmutex.h | 2 ++ src/fcpat.c | 25 ++++++++++++------------- src/fcstr.c | 24 +++++++++++++----------- 10 files changed, 108 insertions(+), 89 deletions(-) commit 814871b2aaa3a22ef711ca4656507fb69c952156 Author: Behdad Esfahbod Date: Sun Oct 7 14:24:28 2012 -0400 Add thread-safety primitives COPYING | 1 + src/Makefile.am | 2 + src/fcatomic.h | 123 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/fcint.h | 4 +- src/fcmutex.h | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 254 insertions(+), 2 deletions(-) commit f6d8306e566dd1a4b8a13f433d2bc1ffbe667db7 Author: Behdad Esfahbod Date: Sun Oct 7 13:49:45 2012 -0400 Add build stuff for threadsafety primitives Copied over from HarfBuzz. configure.ac | 38 ++++++- m4/ax_pthread.m4 | 309 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 346 insertions(+), 1 deletion(-) commit b53744383dbefb3f80fb8a7365487669a499ad76 Author: Behdad Esfahbod Date: Sat Oct 6 18:15:58 2012 -0400 Fix build stuff src/Makefile.am | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit db6d86a6c1b5bb15511e4e4015af889d4206be1d Author: Behdad Esfahbod Date: Sat Oct 6 18:12:19 2012 -0400 Remove shared-str pool We used to have a shared-str pool. Removed to make thread-safety work easier. My measurements show that the extra overhead is not significant by any means. src/fcpat.c | 58 +++++++--------------------------------------------------- 1 file changed, 7 insertions(+), 51 deletions(-) commit ed41b237658ba290d86795904701ace09b46f6c4 Author: Behdad Esfahbod Date: Sat Oct 6 17:52:39 2012 -0400 Switch .gitignore to git.mk .gitignore | 100 --------------------- Makefile.am | 2 + conf.d/Makefile.am | 2 + doc/Makefile.am | 2 + fc-cache/Makefile.am | 2 + fc-case/Makefile.am | 2 + fc-cat/Makefile.am | 2 + fc-glyphname/Makefile.am | 2 + fc-lang/Makefile.am | 2 + fc-list/Makefile.am | 2 + fc-match/Makefile.am | 2 + fc-pattern/Makefile.am | 2 + fc-query/Makefile.am | 2 + fc-scan/Makefile.am | 2 + fontconfig/Makefile.am | 2 + git.mk | 227 +++++++++++++++++++++++++++++++++++++++++++++++ src/Makefile.am | 2 + test/Makefile.am | 2 + 18 files changed, 259 insertions(+), 100 deletions(-) commit d58c31e6dcfd8c5e6fe3ead4a69216b059558223 Author: Behdad Esfahbod Date: Thu Sep 20 14:42:31 2012 -0400 Use a static perfect hash table for object-name lookup The hash table is generated by gperf. For runtime element types, we use a append-only linked list. A bit clumsy, but I think I got it right. src/Makefile.am | 26 +++- src/fcinit.c | 1 - src/fcint.h | 79 ++++--------- src/fcname.c | 315 +++++++------------------------------------------ src/fcobjs.c | 130 ++++++++++++++++++++ src/fcobjs.h | 44 +++++++ src/fcobjshash.gperf.h | 26 ++++ 7 files changed, 291 insertions(+), 330 deletions(-) commit 7c0f79c5fe9db50b55112a1048a8f1c6a80e96fa Author: Behdad Esfahbod Date: Thu Sep 20 14:01:47 2012 -0400 Deprecate FcName(Un)RegisterObjectTypes / FcName(Un)RegisterConstants These never worked as intended. The problem is, if Fontconfig tries to read config files when these new types / constants are not registered, it errs. As a result, no defined types / constants are usable from config files. Which makes these really useless. Xft was the only user of this API and even there it's not really used. Just kill it. One inch closer to thread-safety since we can fix the object-type hash table at compile time. doc/fcconstant.fncs | 8 +--- doc/fcobjecttype.fncs | 6 +-- fontconfig/fontconfig.h | 10 +++-- src/fcname.c | 100 ++++++------------------------------------------ 4 files changed, 23 insertions(+), 101 deletions(-) commit 1e2c0d70527c39f761c5770d93a5c1f8e87522bc Author: Behdad Esfahbod Date: Tue Jan 1 20:28:08 2013 -0600 Whitespace fontconfig/fontconfig.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit a498f2f717a73c3fff9784dd92173583fb37a596 Author: Behdad Esfahbod Date: Tue Jan 1 20:27:54 2013 -0600 Minor src/fcname.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8198127b2525084bfe2378b83c185fa0da7f583b Author: Behdad Esfahbod Date: Tue Jan 1 20:20:31 2013 -0600 Don't crash in FcPatternFormat() with NULL pattern src/fcformat.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit c9581b47c4409612e8f2d4f67a402c566ba8330e Author: Behdad Esfahbod Date: Tue Jan 1 20:20:12 2013 -0600 Don't crash in FcPatternDestroy with NULL pattern src/fcpat.c | 3 +++ 1 file changed, 3 insertions(+) commit e7d3e2163280ffb970b60c6ed18e26325d0241e4 Author: Behdad Esfahbod Date: Tue Jan 1 20:10:18 2013 -0600 Add NULL check src/fcformat.c | 3 +++ 1 file changed, 3 insertions(+) commit 5bb5da4c4a34ca7c0a7c513e38829f69654f9962 Author: Behdad Esfahbod Date: Tue Jan 1 20:09:08 2013 -0600 Refuse to set value to unsupported types during config too src/fccfg.c | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) commit 3878a125410d1dd461aee1e40f9ac00d68be71f2 Author: Behdad Esfahbod Date: Tue Jan 1 19:52:14 2013 -0600 Make FC_DBG_OBJTYPES debug messages into warnings And remove FC_DBG_OBJTYPES since it has no use now. src/fcdbg.c | 30 +++++++++++++++++++----------- src/fcint.h | 5 ++++- src/fcpat.c | 21 +++++++++------------ 3 files changed, 32 insertions(+), 24 deletions(-) commit 209750a4e0a3e1d7b8c5c971e9e2cbd5770d959f Author: Behdad Esfahbod Date: Mon Dec 31 20:11:12 2012 -0600 Warn if appears in src/fccfg.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) commit 424cfa1684f8af8bb6ecb01dc83bfc3d0a14f20a Author: Behdad Esfahbod Date: Mon Dec 31 20:00:17 2012 -0600 Adjust docs for recent changes doc/fontconfig-user.sgml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 31ce352bb350a10c6ae08f1415d348458b64bf61 Author: Behdad Esfahbod Date: Mon Dec 31 19:55:37 2012 -0600 Initialize matrix during name parsing Before: $ fc-match sans:matrix=2 -v | grep matrix matrix: [2 6.95183e-310; 0 0](s) After: $ fc-match sans:matrix=2 -v | grep matrix matrix: [2 0; 0 1](s) src/fcname.c | 1 + 1 file changed, 1 insertion(+) commit 6bfef3ca4e52bdd5216facb90faa043c845aa0f6 Author: Behdad Esfahbod Date: Mon Dec 31 17:21:07 2012 -0600 Make tests run on Windows test/Makefile.am | 2 +- test/run-test.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit b1630dc00e3538a8fc6629ddbbba5435bfb2bd7a Author: Behdad Esfahbod Date: Mon Dec 31 17:20:29 2012 -0600 Enable fcarch assert checks even when FC_ARCHITECTURE is explicitly given After all, if the asserts fail, the resulting library simply can't be working correctly. src/fcarch.c | 9 --------- 1 file changed, 9 deletions(-) commit a0638ff0c7445925e873b39dbe584fbaf3cc87e5 Author: Behdad Esfahbod Date: Mon Dec 31 17:20:12 2012 -0600 Remove unneeded stuff fc-cat/fc-cat.c | 10 ++++------ fc-lang/fc-lang.c | 11 ----------- 2 files changed, 4 insertions(+), 17 deletions(-) commit a603be89cd13555d5992836531c5ef2ba88b8473 Author: Behdad Esfahbod Date: Mon Dec 31 17:00:19 2012 -0600 Unbreak build when FC_ARCHITECTURE is defined src/fcarch.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1fbb0b3b15774c187c697a80fb3c89bc1f3e0006 Author: Behdad Esfahbod Date: Sun Dec 30 19:08:42 2012 -0600 Don't warn if an unknown element is used in an expression The type will be resolved at runtime... For example, we can do this now without getting a warning: false pixelsize pixelsize matrix pixelsizefixupfactor 0 0 pixelsizefixupfactor size pixelsizefixupfactor Previously the last edit was generating: Fontconfig warning: "/home/behdad/.local/etc/fonts/conf.d/00-scale-bitmap-fonts.conf", line 29: saw unknown, expected number src/fcxml.c | 4 ++++ 1 file changed, 4 insertions(+) commit 51b0044648e00025cf20014b19aaceed7beeed75 Author: Behdad Esfahbod Date: Sat Dec 29 23:58:38 2012 -0500 Allow target="font/pattern/default" in elements Based on idea from Raimund Steger. For example, one can do something like this: false pixelsize pixelsize matrix pixelsizefixupfactor 0 0 pixelsizefixupfactor Part of work to make bitmap font scaling possible. See thread discussion: http://lists.freedesktop.org/archives/fontconfig/2012-December/004498.html fonts.dtd | 3 ++- src/fccfg.c | 57 +++++++++++++++++++++++++++---------------------- src/fcdbg.c | 19 ++++++++++++----- src/fcint.h | 9 +++++++- src/fcxml.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------- 5 files changed, 118 insertions(+), 41 deletions(-) commit d7e1965aa0f55925913e9764d2d0792cc14490c2 Author: Behdad Esfahbod Date: Sat Dec 29 23:12:07 2012 -0500 Remove memory accounting and reporting That belongs in tools like cairo/util/malloc-stat.so src/fcatomic.c | 6 ---- src/fcblanks.c | 8 ----- src/fccfg.c | 16 --------- src/fccharset.c | 36 ------------------- src/fcfs.c | 8 ----- src/fcinit.c | 105 -------------------------------------------------------- src/fcint.h | 45 ------------------------ src/fclang.c | 17 +-------- src/fclist.c | 10 ------ src/fcmatrix.c | 4 --- src/fcname.c | 2 -- src/fcpat.c | 20 +---------- src/fcstr.c | 21 ------------ src/fcxml.c | 22 ------------ 14 files changed, 2 insertions(+), 318 deletions(-) commit d823bb3cad1b34d92ca99998a00f35b66666bdf3 Author: Behdad Esfahbod Date: Sat Dec 29 22:57:53 2012 -0500 Fixup from 4f6767470f52b287a2923e7e6d8de5fae1993f67 src/fcxml.c | 5 ----- 1 file changed, 5 deletions(-) commit eb9ffac7e5955bcfdf98fa985cc39062d6ea641b Author: Behdad Esfahbod Date: Sat Dec 29 22:56:14 2012 -0500 Fix more warnings src/fcserialize.c | 1 - src/ftglue.c | 1 - 2 files changed, 2 deletions(-) commit 1404af312a091b601bca91b791fe4039da8dba8f Author: Behdad Esfahbod Date: Sat Dec 29 22:55:36 2012 -0500 Fix warning src/fcstat.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit dd69d96e06b16c37bb87817edd40f6e4040f35ae Author: Behdad Esfahbod Date: Sat Dec 29 22:47:49 2012 -0500 Fix sign-compare warnings src/fccache.c | 6 +++--- src/fcfreetype.c | 6 +++--- src/fcint.h | 4 ++-- src/fclang.c | 6 +++--- src/fcname.c | 6 +++--- src/fcxml.c | 4 ++-- src/ftglue.c | 2 +- 7 files changed, 17 insertions(+), 17 deletions(-) commit 4ad3a73691b98781cfd4de789af7d33649ce3023 Author: Behdad Esfahbod Date: Sat Dec 29 22:33:33 2012 -0500 Fix more warnings src/fcstr.c | 2 -- src/fcxml.c | 2 -- 2 files changed, 4 deletions(-) commit 83d8019011232d491df93cda97a2f988ee96005b Author: Behdad Esfahbod Date: Sat Dec 29 22:32:56 2012 -0500 Fix unused-parameter warnings src/fcarch.c | 2 +- src/fccache.c | 2 +- src/fccfg.c | 2 +- src/fccharset.c | 4 ++-- src/fcdir.c | 6 +++--- src/fcformat.c | 6 +++--- src/fcint.h | 6 ++++++ src/fcmatch.c | 9 ++++----- src/fcxml.c | 10 +++++----- 9 files changed, 26 insertions(+), 21 deletions(-) commit 24cdcf52ab7f83b329072efacbdd9253991579c0 Author: Behdad Esfahbod Date: Sat Dec 29 22:11:09 2012 -0500 Fix compiler warnings src/fccfg.c | 44 ++++++++++++++++++++++---------------------- src/fcformat.c | 2 +- src/fcfreetype.c | 6 ++---- src/fcmatch.c | 14 +++++++------- src/fcname.c | 6 +++--- src/fcpat.c | 16 ++++++++-------- src/fcxml.c | 20 ++++++++++---------- 7 files changed, 53 insertions(+), 55 deletions(-) commit 4f6767470f52b287a2923e7e6d8de5fae1993f67 Author: Behdad Esfahbod Date: Sat Dec 29 21:39:06 2012 -0500 Parse matrices of expressions Previously a element could only accept four literals. It now accepts full expressions, which can in turn poke into the pattern, do math, etc. fonts.dtd | 2 +- src/fccfg.c | 24 +++++++++++++-- src/fcdbg.c | 16 ++++++---- src/fcint.h | 6 +++- src/fcxml.c | 97 +++++++++++++++++++++++++++++++++++-------------------------- 5 files changed, 94 insertions(+), 51 deletions(-) commit 927dd3ddb582303843e70300b04167ca774e78b7 Author: Behdad Esfahbod Date: Sat Dec 29 20:14:07 2012 -0500 Fix typo Ouch, this has been wrong since 2004... I guess no one uses stuff. src/fcxml.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9ce36f4bbebc702a35d0cd9f1a59d5b828549bc6 Author: Akira TAGOH Date: Tue Dec 11 18:53:57 2012 +0900 Check the system font to be initialized config->fonts is an array and checking if config->fonts is a null will not be useful. src/fccfg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 58040349e8309601b0e5488b8a71cedf03f81415 Author: Akira TAGOH Date: Tue Dec 11 12:38:42 2012 +0900 Fix a memory leak src/fcxml.c | 1 + 1 file changed, 1 insertion(+) commit 5ea3118ad63787c9a3daa856dd09736aac6f4069 Author: Akira TAGOH Date: Tue Dec 11 12:35:02 2012 +0900 Fix a typo that accessing to the out of array src/fcstr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cef2b50c6647582bb128f98f2f78331fbe7dec4e Author: Akira TAGOH Date: Tue Dec 11 12:30:05 2012 +0900 clean up ret won't be -1 if HAVE_STRUCT_DIRENT_D_TYPE isn't defined. src/fcstat.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 36265aeebd637e75c7b84db107afd6a35eb485c1 Author: Akira TAGOH Date: Tue Dec 11 11:37:23 2012 +0900 Remove the dead code fc-cache/fc-cache.c | 7 ------- 1 file changed, 7 deletions(-) commit 608c5b590bd3428dfcd30f3d68ee8b7131e2f019 Author: Akira TAGOH Date: Mon Dec 10 10:54:47 2012 +0900 Remove the duplicate null-check src/fcinit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e7954674eb4f16d0fed3018cbefb4907c89d2465 Author: Akira TAGOH Date: Fri Dec 7 19:09:36 2012 +0900 Fix the wrong estimation for the memory usage information in fontconfig src/fccfg.c | 2 ++ src/fcinit.c | 16 ++++++++++------ src/fclang.c | 26 ++++++++++++++++++++++++-- src/fcstr.c | 5 ++--- src/fcxml.c | 28 ++++++++++++++++------------ 5 files changed, 54 insertions(+), 23 deletions(-) commit 959442bca138e6480418f2607a04d9343db7f438 Author: Akira TAGOH Date: Thu Dec 6 19:49:05 2012 +0900 Fix a typo src/fcdir.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9231545c6bb775460702d8a615f1649bd8632f00 Author: Akira TAGOH Date: Wed Dec 5 18:13:25 2012 +0900 Do not show the deprecation warning if it is a symlink conf.d/50-user.conf | 7 ++++++- configure.ac | 2 +- src/fcdir.c | 14 ++++++++++++++ src/fcint.h | 3 +++ src/fcxml.c | 6 ++++-- 5 files changed, 28 insertions(+), 4 deletions(-) commit 2442d611579bccb84f0c29e3f9ceb0a7436df812 Author: Akira TAGOH Date: Fri Nov 30 20:10:30 2012 +0900 Fix build issues on clean tree doc/Makefile.am | 9 ++------- fc-case/Makefile.am | 7 +++++-- fc-glyphname/Makefile.am | 9 ++++++--- fc-lang/Makefile.am | 9 ++++++--- 4 files changed, 19 insertions(+), 15 deletions(-) commit faea1cac85ac3b0fd6a983e1c0adeb68e115e06c Author: Jon TURNEY Date: Wed Nov 28 16:10:28 2012 +0000 Fix build when srcdir != builddir When ./configure'd in a directory other than the srcdir, we need to look in ${top_builddir)/src for the generated header fcstdint.h Signed-off-by: Jon TURNEY fc-case/Makefile.am | 2 +- fc-glyphname/Makefile.am | 2 +- fc-lang/Makefile.am | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 3d3629f86a45d30eed51dad58865753b3b1e186e Author: Akira TAGOH Date: Tue Nov 27 18:25:11 2012 +0900 Fix a potability issue about stdint.h configure.ac | 1 + m4/ax_create_stdint_h.m4 | 695 +++++++++++++++++++++++++++++++++++++++++++++++ src/Makefile.am | 11 +- src/fcint.h | 9 +- 4 files changed, 707 insertions(+), 9 deletions(-) commit 02db01ac22318b2e296e6e1fd9664cac1ae66442 Author: Akira TAGOH Date: Mon Nov 26 17:21:14 2012 +0900 Bump version to 2.10.2 README | 25 ++++++++++++++++++++++++- configure.ac | 2 +- fontconfig/fontconfig.h | 2 +- 3 files changed, 26 insertions(+), 3 deletions(-) commit 376fc9d22f1480ac380a3845f4cb4fe227e4be9a Author: Akira TAGOH Date: Tue Nov 20 20:09:10 2012 +0900 Bug 57286 - Remove UnBatang and Baekmuk Batang from monospace in 65-nonlatin.conf Those two fonts are serif fonts. shouldn't be added to monospace. conf.d/65-nonlatin.conf | 2 -- 1 file changed, 2 deletions(-) commit e7b5b5b586fd3c1f1fc7959730b760b7fd1bdee8 Author: Akira TAGOH Date: Tue Nov 20 11:48:17 2012 +0900 Update CaseFolding.txt to Unicode 6.2 No real updates between 6.1 and 6.2, but anyway. fc-case/CaseFolding.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit c20ac78b01df3f0919352bba16b5b48b3b5d4d6d Author: Akira TAGOH Date: Thu Nov 15 16:37:01 2012 +0900 Bug 57114 - regression on FcFontMatch with namelang After 7587d1c99d9476b6dd4dbe523c0204da700fed8d applied, family, style, and fullname is localized against current locale or lang if any though, the string in other languages were dropped from the pattern. this caused unexpected mismatch on the target="font" rules. This fix adds other strings at the end of the list. src/fcint.h | 22 +++++++++ src/fcmatch.c | 63 +++++++++++++++++-------- src/fcpat.c | 146 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 210 insertions(+), 21 deletions(-) commit bdaef0b80dc27f4ab7a9d9bcedcfd8b5724b3cfd Author: Akira TAGOH Date: Tue Oct 30 09:56:24 2012 +0900 Bug 56531 - autogen.sh fails due to missing 'm4' directory Keep m4 directory in git. m4/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) commit 038aa930ae2c3b7972eefe334917e7222fe478ec Author: Akira TAGOH Date: Fri Oct 26 14:31:23 2012 +0900 Use automake variable instead of cleaning files in clean-local just for git.mk coming up from Behdad's threadsafe branch fc-cache/Makefile.am | 7 +++---- fc-cat/Makefile.am | 7 +++---- fc-list/Makefile.am | 7 +++---- fc-match/Makefile.am | 7 +++---- fc-pattern/Makefile.am | 7 +++---- fc-query/Makefile.am | 7 +++---- fc-scan/Makefile.am | 7 +++---- 7 files changed, 21 insertions(+), 28 deletions(-) commit 73ab254336100c5971e3a1e14b73222efd0e9822 Author: Akira TAGOH Date: Tue Oct 23 15:52:37 2012 +0900 autogen.sh: Add -I option to tell aclocal a place for external m4 files autogen.sh | 1 + 1 file changed, 1 insertion(+) commit e7bfe729ab4cae63ca502291c1fe46cf7152b459 Author: Akira TAGOH Date: Tue Oct 9 11:05:59 2012 +0900 Fix syntax errors in fonts.dtd. Patch from Steve Simpson fonts.dtd | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 8890f94438179ed7d6f7e2622178bb6c9b1f0e5e Author: Akira TAGOH Date: Tue Oct 9 11:03:03 2012 +0900 Fix wrongly squashing for the network path on Win32. Patch from Diego Santa Cruz src/fcstr.c | 4 ++++ 1 file changed, 4 insertions(+) commit 8daa863c6d84ea56cc2f568a89316690e784a277 Author: Akira TAGOH Date: Tue Sep 11 18:09:36 2012 +0900 deal with warnings as errors for the previous change missed this change to commit. doh! configure.ac | 3 +++ 1 file changed, 3 insertions(+) commit ab26a722c05b43468f838b2fa72bb6ccd0408ac8 Author: Akira TAGOH Date: Fri Aug 31 15:10:50 2012 +0900 Bug 52573 - patch required to build 2.10.x with oldish GNU C library headers On older libc, _POSIX_C_SOURCE didn't satisfy to use posix_fadvise() and AC_CHECK_FUNCS doesn't check a header file if the function is declared there properly. so use AC_LINK_IFELSE instead. configure.ac | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit 535e0a37d6d77a9d65096277f3bf94c39ffbf7d1 Author: Akira TAGOH Date: Fri Aug 31 12:39:38 2012 +0900 Bug 54138 - X_OK permission is invalid for win32 access(..) calls X_OK checking was added back in 8ae1e3d5dc323542e7def06a42deea62c7ba7027 which was removed due to the same reason in 238489030a64fa883f8f9fc3d73247b7f7257899. apparently the test case in Bug#18934 still works without it. so I'm removing it again to get this working on Windows. src/fccache.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9ec868665dd0f4890b5fb9edb85df8334e5bb689 Author: Jeremy Huddleston Sequoia Date: Mon Aug 27 14:52:23 2012 -0700 Remove _CONFIG_FIXUPS_H_ guards, so multiple includes of "config.h" result in the correct values Signed-off-by: Jeremy Huddleston Sequoia config-fixups.h | 4 ---- 1 file changed, 4 deletions(-) commit c4a58ae0e2fa43fbf9ebefc83891f6abd6728ac9 Author: Akira TAGOH Date: Mon Aug 27 16:36:49 2012 +0900 Fix for libtoolize's warnings Makefile.am | 1 + configure.ac | 1 + 2 files changed, 2 insertions(+) commit 65da8c091c402ec706d76054eacbc455a7e3d801 Author: Behdad Esfahbod Date: Sat Aug 25 14:10:14 2012 -0400 Fix N'ko orthography fc-lang/nqo.orth | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 375cdbce9d283d1eddb8f6b1c904d755653a87c5 Author: Akira TAGOH Date: Thu Aug 16 20:33:12 2012 +0900 Bug 53585 - Two highly-visible typos in src/fcxml.c src/fcxml.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit cbfbd4041d4209b5da36746d68fe7aac7645eea5 Author: Akira TAGOH Date: Fri Jul 27 11:22:14 2012 +0900 Bump version to 2.10.1 README | 8 +++++++- configure.ac | 2 +- fontconfig/fontconfig.h | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) commit b7287a91fedc8b3ba2f566a17e4c5a00222ca76e Author: Akira TAGOH Date: Mon Jul 23 13:59:16 2012 +0900 Install config files first Use install-data-hook instead of install-data-local. This allows on the real installation to create a symlink with the broken ln command though, still not work with the pseudo installation by using DESTDIR say. conf.d/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ebd5096abc495550596861b6af2aae067e861553 Author: Akira TAGOH Date: Thu Jul 19 10:20:30 2012 +0900 Fix a typo in fontconfig.pc Reported by Daniel Macks fontconfig.pc.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d4fc407246ba0860dd883baf4551401614ec220f Author: Akira TAGOH Date: Tue Jul 17 14:20:48 2012 +0900 correct version configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 92bad770e505ec8683aad2e6e063232843734ece Author: Akira TAGOH Date: Tue Jul 17 11:36:01 2012 +0900 Bump version to 2.10 README | 11 ++++++++++- configure.ac | 2 +- fontconfig/fontconfig.h | 4 ++-- 3 files changed, 13 insertions(+), 4 deletions(-) commit f513f53347ae943a03192e83f7a6d7c40bcdfd5d Author: Akira TAGOH Date: Tue Jul 17 11:35:41 2012 +0900 Update INSTALL INSTALL | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 14d23ef330808b480393196984cb06efb5724160 Author: Akira TAGOH Date: Tue Jul 17 11:34:31 2012 +0900 Bump libtool revision configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit da9400212db8e5aa0a0bdd4fad21d2008b5034e2 Author: Akira TAGOH Date: Mon Jun 18 11:23:39 2012 +0900 Fix a build fail with gcc 2.95, not supporting the flexible array members. configure.ac | 2 ++ src/fcint.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) commit 489a575a7455204ee5c170754b92e72ba1e483fd Author: Akira TAGOH Date: Fri Jul 6 19:02:05 2012 +0900 Update CaseFolding.txt to Unicode 6.1 fc-case/CaseFolding.txt | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) commit 5b2d065ef87514ca32af325f793ee37fabd6af19 Author: Akira TAGOH Date: Tue Jul 3 19:56:56 2012 +0900 Bug 34266 - configs silently ignored if libxml2 doesn't support SAX1 interface Check if libxml2 has built with --with-sax1 configure.ac | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 9c377192bf7d59336dbe4603d73449c7090c11ca Author: Akira TAGOH Date: Mon Jun 25 14:57:51 2012 +0900 Bump version to 2.9.92 README | 19 ++++++++++++++++++- configure.ac | 2 +- fontconfig/fontconfig.h | 2 +- 3 files changed, 20 insertions(+), 3 deletions(-) commit 2162d9c2ee7ba930dca8f710ad35a83cb7c76ca6 Author: Akira TAGOH Date: Mon Jun 25 14:57:40 2012 +0900 Update INSTALL INSTALL | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a94c6b3b94b4a66d7f528fcc7e939b8ec19ad660 Author: Akira TAGOH Date: Mon Jun 25 14:50:18 2012 +0900 Bump libtool revision configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 769306665c37175d1e0e1167895eace0a8bc4bc3 Author: Akira TAGOH Date: Tue Apr 24 19:11:41 2012 +0900 Bug 18726 - RFE: help write locale-specific tests Add an example matching rule for the language specific doc/fontconfig-user.sgml | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit e5a59eac905f1ff6ebe6005c257ce3f9f3c4cc6b Author: Marius Tolzmann Date: Thu Jun 21 21:01:10 2012 +0200 Fix warning about deprecated, non-existent config includes Fontconfig warning: "/etc/fonts/conf.d/50-user.conf", line 8: reading configurations from ~/.fonts.conf.d is deprecated. Fontconfig warning: "/etc/fonts/conf.d/50-user.conf", line 9: reading configurations from ~/.fonts.conf is deprecated. Be polite and do not issue the warning if deprecated config includes (e.g. ~/.fonts.conf.d and/or ~/.fonts.conf) do not exist. src/fcxml.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) commit 3a5e9bc75d7e240ec590c6e50161ee157904d4d6 Author: Marius Tolzmann Date: Thu Jun 21 21:01:09 2012 +0200 Fix newline in warning about deprecated config includes src/fcxml.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2d9ad5434b1d3afa2aa3d8a77af0bce940c69177 Author: Akira TAGOH Date: Mon Jun 18 18:31:36 2012 +0900 Rename configure.in to configure.ac configure.ac | 615 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ configure.in | 615 --------------------------------------------------------- new-version.sh | 4 +- 3 files changed, 617 insertions(+), 617 deletions(-) commit 4353df754fcf4126ff4a69ccfef1a59450e5a7c7 Author: Akira TAGOH Date: Mon Jun 18 10:52:21 2012 +0900 clean up the lock file properly on even hardlink-not-supported filesystem. src/fcatomic.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 997a64a67b77ae7c083f4a2898670201ed618fb2 Author: Akira TAGOH Date: Thu Jun 14 11:27:31 2012 +0900 Fix the fail of make install with --disable-shared on Win32 .gitignore | 1 + configure.in | 1 + src/Makefile.am | 2 ++ 3 files changed, 4 insertions(+) commit cd280f6532663981fb5fcc2d38f99973033568db Author: Akira TAGOH Date: Wed Jun 13 20:01:30 2012 +0900 Fix a build fail on MINGW src/fcatomic.c | 7 ++++--- src/fccfg.c | 18 +++++++++--------- src/fcint.h | 4 +++- src/fcstat.c | 16 ++++++++++------ src/fcstr.c | 6 +++--- src/fcxml.c | 24 ++++++++++++------------ 6 files changed, 41 insertions(+), 34 deletions(-) commit 2ec0440fb580f5556d8e1fc4e0e3a6c5b9472cf6 Author: Akira TAGOH Date: Tue Jun 12 11:02:03 2012 +0900 Fix a typo and build fail. doc/Makefile.am | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit b447fc5d52e1e88ca1eca0ce3472d48626e27109 Author: Akira TAGOH Date: Mon Jun 11 14:14:41 2012 +0900 Bug 50835 - Deprecate FC_GLOBAL_ADVANCE FC_GLOBAL_ADVANCE is deprecated. this flag is simply ignored on freetype 2.4.5 or later. conf.d/20-fix-globaladvance.conf | 28 ---------------------------- conf.d/Makefile.am | 2 -- doc/fontconfig-devel.sgml | 2 +- doc/fontconfig-user.sgml | 2 +- fontconfig/fontconfig.h | 1 + src/fcdefault.c | 1 + src/fcint.h | 2 +- src/fcname.c | 4 ++-- 8 files changed, 7 insertions(+), 35 deletions(-) commit 54fb7967de3850cf7176dde12432ed48c628ebea Author: Akira TAGOH Date: Mon Jun 11 20:15:15 2012 +0900 Bump version to 2.9.91 README | 81 ++++++++++++++++++++++++++++++++++++++++++++++++- configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 3 files changed, 82 insertions(+), 3 deletions(-) commit 0b20bd0281a2247a047ef388ea2c6c58614d7b1a Author: Mark Brand Date: Mon Jun 11 20:13:02 2012 +0900 fix building for WIN32 8c255fb185d5651b57380b0a9443001e8051b29d moved some code out of switch but did not declare 'buffer'. Also, replacing the "break" with "goto bail" neglected the WIN32 specific code. src/fcxml.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 101825a129aa1a025e91fd55124e973fcdb31f9e Author: Akira TAGOH Date: Mon Jun 11 18:43:56 2012 +0900 Generate bzip2-compressed tarball too Makefile.am | 2 ++ 1 file changed, 2 insertions(+) commit fdb1155035da677368f762d8fb24ad2f470a9813 Author: Akira TAGOH Date: Mon Jun 11 18:39:37 2012 +0900 doc: Fix distcheck error again... doc/Makefile.am | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) commit e8f16c9343f64266c3ec0048d867bfe23bdb6ec6 Author: Akira TAGOH Date: Mon Jun 11 17:48:12 2012 +0900 Bump libtool revision configure.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit cf70eaa3bfa9b14847a1067295c5c0dc12c95e83 Author: Akira TAGOH Date: Fri Jun 8 19:41:59 2012 +0900 Bug 50525 - superfluous whitespace in the style src/fcfreetype.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit f4103bf708778433f5ea02014f890cdeccde206b Author: Akira TAGOH Date: Fri Jun 8 19:17:57 2012 +0900 fcdefault: Add the lang object at FcConfigSubstituteWithPat() only when kind is FcMatchPattern src/fccfg.c | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) commit 07e52eeb097a4e3c147e00ed7a6eb7652a611751 Author: Akira TAGOH Date: Fri Jun 8 15:54:48 2012 +0900 fcdefault: no need to set FC_LANG in FcDefaultSubstitute() anymore src/fcdefault.c | 4 ---- 1 file changed, 4 deletions(-) commit 550fd49d4fb8efab33d1fa1687b1b9bd352202fe Author: Akira TAGOH Date: Tue May 22 14:17:10 2012 +0900 Add the default language to the pattern prior to do build the substitution the default language is referred from the FC_LANG environment variable or the current locale src/fccfg.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 2261a64ce14d692f7c553f46e2158e70400dbc9c Author: Akira TAGOH Date: Fri Jun 8 15:47:52 2012 +0900 fcdefault: fallback if the environment variables are empty try to fallback if FC_LANG, LC_ALL, LC_CTYPE and LANG is empty src/fcdefault.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit bbc8fb5ba705e5257693f3b266fce12d2f81b50c Author: Akira TAGOH Date: Thu Mar 29 20:25:20 2012 +0900 Bug 32853 - Export API to get the default language Add a new API FcGetDefaultLangs() to export the string sets of the default languages. doc/fclangset.fncs | 9 +++ fc-lang/fc-lang.c | 6 ++ fontconfig/fontconfig.h | 3 + src/fcdefault.c | 102 ++++++++++--------------------- src/fcint.h | 6 ++ src/fclang.c | 159 ++++++++++++++++++++++++++++++++++++++++++++++++ src/fcstr.c | 44 ++++++++++++++ 7 files changed, 260 insertions(+), 69 deletions(-) commit 1b692d8ab91a096e7d433c51ab187382de91147b Author: Akira TAGOH Date: Fri Jun 1 19:06:17 2012 +0900 Fix the wrong estimation for the memory usage information in fontconfig fc-cat/fc-cat.c | 2 +- fc-list/fc-list.c | 2 +- fc-match/fc-match.c | 2 +- fc-pattern/fc-pattern.c | 2 +- fc-query/fc-query.c | 2 +- fc-scan/fc-scan.c | 2 +- src/fccfg.c | 12 ++++++++---- src/fcformat.c | 4 ++-- src/fcpat.c | 3 ++- src/fcstr.c | 3 +-- src/fcxml.c | 11 +++++++++-- 11 files changed, 28 insertions(+), 17 deletions(-) commit 5254a6630fdf132b0cda62c1bc7e8e40d2639bdf Author: Akira TAGOH Date: Thu May 31 12:46:55 2012 +0900 Fix a typo and polish the previous change src/fcstat.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) commit 4a741e9a0ab8dbaa0c377fbfed41547645ac79af Author: Akira TAGOH Date: Wed May 30 18:21:57 2012 +0900 Fix the build fail on Solaris It's introduced by 0ac6c98294d666762960824d39329459b22b48b7. Use lstat() and S_ISDIR() to check if it's the directory or not if there are no d_type in struct dirent. configure.in | 2 ++ src/fcstat.c | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 55 insertions(+), 8 deletions(-) commit 0ac6c98294d666762960824d39329459b22b48b7 Author: Mikhail Gusarov Date: Mon May 28 14:52:21 2012 +0900 Fix cache aging for fonts on FAT filesystem under Linux Windows does not update mtime of directory on FAT filesystem when file is added to it or removed from it. Fontconfig uses mtime of directory to check cache file aging and hence fails to detect newly added or recently removed files. This changeset detects FAT filesystem (currently implemented for Linux) and adds generating checksum of directory entries instead of using mtime which guarantees proper cache rebuild. For non-FAT filesystems this patch adds single syscall per directory which is negligeable overhead. This fixes bug https://bugs.freedesktop.org/show_bug.cgi?id=25535 Signed-off-by: Mikhail Gusarov src/fccache.c | 14 +++++----- src/fcdir.c | 2 +- src/fcint.h | 5 +++- src/fcstat.c | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 96 insertions(+), 9 deletions(-) commit dc2da23e69e6b3f6e6d0436d4777ee2c1d8ff1be Author: Akira TAGOH Date: Mon May 28 13:59:48 2012 +0900 Move statfs/statvfs wrapper to fcstat.c and add a test for the mtime broken fs just rework to share the efforts between FcIsFsMmapSafe() and FcIsFsMtimeBroken(). src/fccache.c | 50 +-------------------------- src/fcint.h | 13 +++++++ src/fcstat.c | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 122 insertions(+), 49 deletions(-) commit 6a83c1ad40594530994b826d928312e9eeb19c35 Author: Mikhail Gusarov Date: Sun Apr 29 12:56:16 2012 +0200 Move FcStat to separate compilation unit FcStat() logic is quite complicated in presence of various semi-broken operating systems and filesystems, split it out in order to make it a bit easier. Signed-off-by: Mikhail Gusarov src/Makefile.am | 1 + src/fccache.c | 88 ------------------------------------------ src/fcint.h | 8 ++-- src/fcstat.c | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 122 insertions(+), 91 deletions(-) commit 26160366d7ba5c7baf20ae091d5dd0388714df83 Author: Akira TAGOH Date: Mon May 28 15:58:56 2012 +0900 fcatomic: fallback to create a directory with FcAtomicLock link(2) might be failed on the filesystem that doesn't support the hard link. e.g. FcAtomicLock() always fails on FAT filesystem when link(2) is available. So that may be a good idea to fallback if link(2) is failed. src/fcatomic.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 2837c63876b9b1f27d74aad51d45fc18d48f4652 Author: Akira TAGOH Date: Mon May 21 13:43:20 2012 +0900 Bug 33644 - Fontconfig doesn't match correctly in Warn if the multiple values is set to , including the case of in because the behavior isn't intuitive since so many users is asking for a help to get things working for their expectation. Use multiple s or es for OR operator and multiple s for AND operator. doc/fontconfig-user.sgml | 23 +++++++++++++++++++++++ src/fcxml.c | 5 +++++ 2 files changed, 28 insertions(+) commit 794fb0bd6a3fa91c6e03e51dc080e458b8960a55 Author: Akira TAGOH Date: Mon May 21 13:37:54 2012 +0900 Correct the example Enclose the string with in doc/fontconfig-user.sgml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 8c255fb185d5651b57380b0a9443001e8051b29d Author: Akira TAGOH Date: Mon Mar 12 19:18:19 2012 +0900 Bug 20411 - fontconfig doesn't match FreeDesktop directories specs Allows reading configuration files, fonts and cache files from the directories where the XDG Base Directory Specification defines. the old directories are still in the configuration files for the backward compatibility. conf.d/50-user.conf | 7 +- doc/fontconfig-user.sgml | 37 ++--- fonts.conf.in | 4 + fonts.dtd | 10 +- src/fccfg.c | 78 ++++++++++- src/fcinit.c | 20 ++- src/fcint.h | 11 ++ src/fcstr.c | 5 +- src/fcxml.c | 344 ++++++++++++++++++++++++++++++----------------- 9 files changed, 366 insertions(+), 150 deletions(-) commit bc4517d8e5af8f31821ec8d9990765dad2867dd4 Author: Akira TAGOH Date: Wed Apr 11 19:52:35 2012 +0900 Bug 19128 - Handling whitespace in aliases Add a new attribute `ignore-blanks' to . When this is set to "true", any blanks in the string will be ignored on comparison. This takes effects for compare="eq" or "not_eq" only. Also changed the behavior of the comparison on too. conf.d/20-fix-globaladvance.conf | 8 ++++---- conf.d/20-unhint-small-vera.conf | 6 +++--- conf.d/25-unhint-nonlatin.conf | 30 +++++++++++++++--------------- conf.d/30-urw-aliases.conf | 7 +------ conf.d/65-fonts-persian.conf | 14 +++++++------- conf.d/80-delicious.conf | 2 +- doc/fontconfig-user.sgml | 3 ++- fonts.dtd | 1 + src/fccfg.c | 35 ++++++++++++++++++++++------------- src/fcdbg.c | 27 ++++++++++++++++++--------- src/fcint.h | 8 ++++++++ src/fclist.c | 2 +- src/fcxml.c | 24 ++++++++++++++++++++---- 13 files changed, 103 insertions(+), 64 deletions(-) commit 5ac12c0e94128ea63e3e74b4e602cf0c74661bce Author: Akira TAGOH Date: Thu May 10 16:47:09 2012 +0900 fcarch.c: get rid of the duplicate definition of FC_MAX FC_MAX is also available in src/fcint.h src/fcarch.c | 2 -- 1 file changed, 2 deletions(-) commit cc9d572d3e3d270653c994ff1269f56eb7ee1b1c Author: Akira TAGOH Date: Thu May 10 16:36:10 2012 +0900 fonts.conf: keeps same binding for alternatives Since the binding is affected to the score, the replacement should have same binding to avoid the unexpected estimation. fonts.conf.in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit d81407611b160ebfa631556ee60be147d1c0416f Author: Keith Packard Date: Tue May 1 19:28:27 2012 -0700 Deal with architectures where ALIGNOF_DOUBLE < 4 This patch isn't really tested as I don't have such a machine, but I have a bug report that on m68k machines, double values are aligned on smaller than 4 byte boundaries. If ALIGNOF_DOUBLE < sizeof(int), the "expected" sizeof of FcValue is miscomputed. Use the maximum of 4 (sizeof (int)) and ALIGNOF_DOUBLE when computing the expected size of FcValue. Signed-off-by: Keith Packard src/fcarch.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit e41474e925947b5a2fb64c80135bc116e9e56d2d Author: Keith Packard Date: Tue May 1 19:28:26 2012 -0700 Extra ',' in AC_ARG_WITH(arch causes arch to never be autodetected Commit 87d7b82a98780223422a829b6bb1a05fd753ae5e reformatted this part of the configure script, accidentally introducing a spurious comma. Signed-off-by: Keith Packard configure.in | 1 - 1 file changed, 1 deletion(-) commit d2718257f9aa3e6071f649296a52a22684c43e96 Author: Akira TAGOH Date: Tue May 1 20:18:41 2012 +0900 Output more verbose debugging log to show where to insert the element into the value list src/fccfg.c | 2 +- src/fcdbg.c | 79 +++++++++++++++++++++++++++++++++++++++++++------------------ src/fcint.h | 8 ++++++- 3 files changed, 64 insertions(+), 25 deletions(-) commit 7d65f9f514e33305bdeafd0d34140da46259e57f Author: Akira TAGOH Date: Wed Apr 11 19:52:35 2012 +0900 Bug 39278 - make usage of mmap optional Stop using mmap() if the cache file is stored on NFS. also added FONTCONFIG_USE_MMAP environment variable to enforce the use of or not the use of mmap(2) regardless of what the filesystem the cache files are stored on. configure.in | 24 +++++++++++++-- doc/fontconfig-user.sgml | 20 ++++++++++++- src/fccache.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 116 insertions(+), 5 deletions(-) commit f30a5d7637af14b12f07267b59e02ec4a14458f2 Author: Akira TAGOH Date: Wed Apr 25 16:21:33 2012 +0900 Disable iconv support anyway... configure.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 7587d1c99d9476b6dd4dbe523c0204da700fed8d Author: Akira TAGOH Date: Mon Mar 26 16:34:34 2012 +0900 Bug 27765 - FcMatch() returns style in wrong language Add "namelang" object to obtain the localized name in the font regardless of the lang object. it's applied to "familylang", "stylelang" and "fullnamelang" alltogether. this would helps if one wants to enforce selecting them in the specific language if any. the default value for the namelang object is determined from current locale. doc/fontconfig-devel.sgml | 3 ++ fontconfig/fontconfig.h | 1 + src/fcdefault.c | 37 ++++++++++++++- src/fcint.h | 3 +- src/fclist.c | 47 +++++++++++++++---- src/fcmatch.c | 113 +++++++++++++++++++++++++++++++++++++++------- src/fcname.c | 1 + 7 files changed, 178 insertions(+), 27 deletions(-) commit 526f0da93fc487e9b33a4d97386a9054156d01ac Author: Akira TAGOH Date: Tue Apr 24 11:40:51 2012 +0900 Add --enable-iconv option to configure Disable iconv support by default, which provide a feature to convert non-Unicode SFNT names to UTF-8. configure.in | 64 ++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 34 insertions(+), 30 deletions(-) commit 06d6b7c3120cd417af5ff47e9735aed577978354 Author: Akira TAGOH Date: Wed Mar 28 17:28:06 2012 +0900 Create CACHEDIR.TAG when fc-cache is run or only when the cache directory is created at the runtime. Also add FcCacheCreateTagFile() API to do create CACHEDIR.TAG on the cache directory. doc/fccache.fncs | 9 ++++++ doc/fcconfig.fncs | 2 +- fc-cache/fc-cache.c | 73 +----------------------------------------- fontconfig/fontconfig.h | 5 ++- src/fccache.c | 85 +++++++++++++++++++++++++++++++++++++++++++++++++ src/fccfg.c | 2 +- src/fcint.h | 3 ++ 7 files changed, 104 insertions(+), 75 deletions(-) commit 25ccc3f3d27d8affd45c4b0a8041ef757dbb20dd Author: Akira TAGOH Date: Fri Apr 20 19:08:59 2012 +0900 Bug 47721 - Add ChromeOS fonts to 30-metric-aliases.conf conf.d/30-metric-aliases.conf | 50 +++++++++++++++++++++++++++++++++---------- 1 file changed, 39 insertions(+), 11 deletions(-) commit 7069d717e982adcf8e1d300cbd10eec6322a65c9 Author: Akira TAGOH Date: Sun Apr 22 21:40:44 2012 +0900 C++11 requires a space between literal and identifier Reported by Buganini fontconfig/fontconfig.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 22dc5460906f78b3dc1b12ab2440e62b930adf0b Author: Akira TAGOH Date: Fri Apr 20 20:04:17 2012 +0900 Fix a build issue again when no regex functions available Reported by Jon TURNEY configure.in | 4 +--- src/fcstr.c | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) commit 9fa7b7c8f2d1d8a9c50f3ba0f99087f653b6a9b8 Author: Akira TAGOH Date: Fri Apr 20 11:17:41 2012 +0900 Rework to avoid adding the unexpected value to ICONV_CFLAGS and ICONV_LIBS configure.in | 44 ++++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 20 deletions(-) commit dd2a3d3520b6fea20a58b2888fef0458c01b287f Author: Akira TAGOH Date: Wed Apr 18 12:55:23 2012 +0900 Bug 25151 - Move cleanCacheDirectory() from fc-cache.c into the library Add FcDirCacheScan() API to clean up the cache files in the directory. doc/fccache.fncs | 9 +++++ fc-cache/fc-cache.c | 93 +------------------------------------------------ fontconfig/fontconfig.h | 3 ++ src/fccache.c | 91 +++++++++++++++++++++++++++++++++++++++++++++++ src/fcint.h | 2 ++ 5 files changed, 106 insertions(+), 92 deletions(-) commit 9e62fcedfe774a13843cc0982bc3e535369b99eb Author: Keith Packard Date: Mon Apr 16 11:28:36 2012 -0700 Use posix_fadvise to speed startup Given that fontconfig will scan all of the cache file data during the first font search, ask the kernel to start reading the pages right away. Signed-off-by: Keith Packard configure.in | 2 +- src/fccache.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) commit 94c2cc58a091138aa8c507d6239eca69520b65f0 Author: Akira TAGOH Date: Mon Apr 16 20:25:52 2012 +0900 doc: Fix a typo of the environment variable name. doc/fcconfig.fncs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c5714bcf90d6b345e748b7fa7b21e421409aba60 Author: Akira TAGOH Date: Fri Apr 13 11:09:04 2012 +0900 Add --with-expat, --with-expat-includes and --with-expat-lib back. configure.in | 41 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) commit 470e92c9dbdc75d354c9dce9063276996ecf535d Author: Akira TAGOH Date: Thu Apr 12 14:01:25 2012 +0900 Bug 27526 - Compatibility fix for old windows sytems Patch from Gianluigi Tiesi src/fccache.c | 3 --- src/fcint.h | 12 ++++++++++-- src/fcxml.c | 52 +++++++++++++++++++++++++++++++++++++++++++--------- 3 files changed, 53 insertions(+), 14 deletions(-) commit ac6271dbac32086ce60845efc4d87e669f37796a Author: Akira TAGOH Date: Thu Apr 12 11:01:12 2012 +0900 Bug 48573 - platform without regex do not have also REG_XXX defines Fix a build issue on the platforms where regex isn't available configure.in | 9 +++++++++ src/fcstr.c | 6 ++++-- 2 files changed, 13 insertions(+), 2 deletions(-) commit 9231d79ad180f992f9bbef4f3127576870a75075 Author: Akira TAGOH Date: Mon Apr 9 12:51:12 2012 +0900 Bug 28491 - Allow matching on FC_FILE Allow :file=/path/to/font/file on matching configure.in | 4 +-- src/fcint.h | 6 +++++ src/fcmatch.c | 84 ++++++++++++++++++++++++++++++++++++----------------------- src/fcstr.c | 50 +++++++++++++++++++++++++++++++++++ 4 files changed, 110 insertions(+), 34 deletions(-) commit 2589207cfd4c7e948a4b50d7c07c13a3a52fe0aa Author: Akira TAGOH Date: Tue Apr 10 18:34:11 2012 +0900 Bug 26830 - Add search for libiconv non-default directory Add --with-libiconv, --with-libiconv-includes and --with-libiconv-lib to specify the directory where libiconv might be installed. configure.in | 85 +++++++++++++++++++++++++++++++++++++++++---------------- src/Makefile.am | 1 + 2 files changed, 63 insertions(+), 23 deletions(-) commit ddefa5021f7785514f373aab6a8e6191a867278e Author: Akira TAGOH Date: Wed Apr 4 14:47:57 2012 +0900 Bug 22862 - ignores s Allow to use the test elements in the alias element. fonts.dtd | 2 +- src/fcxml.c | 27 +++++++++++++++++++++------ 2 files changed, 22 insertions(+), 7 deletions(-) commit e181ab4de5d20fe1f70e68f66ef8332553eba206 Author: Akira TAGOH Date: Wed Apr 4 16:49:30 2012 +0900 Bug 29341 - Make some fontconfig paths configurable Add configure options to set the directory to be installed: --with-templatedir for the configuration files a.k.a. /etc/fonts/conf.avail --with-baseconfigdir for fonts.conf etc a.k.a. /etc/fonts --with-configdir for the active configuration files a.k.a. /etc/fonts/conf.d --with-xmldir for fonts.dtd etc and the default path for templatedir is changed to ${datadir}/fontconfig/conf.avail Makefile.am | 36 +++++++++++--------- conf.d/Makefile.am | 99 ++++++++++++++++++++++++++---------------------------- configure.in | 72 ++++++++++++++++++++++++++++++++------- fonts.conf.in | 2 +- src/Makefile.am | 2 +- 5 files changed, 129 insertions(+), 82 deletions(-) commit bb02899d9ff9813738809fb5349a9f3ae2dba76f Author: Akira TAGOH Date: Mon Apr 2 15:38:27 2012 +0900 Use pkgconfig to check builddeps configure.in | 164 +++++++++++------------------------------------------------ 1 file changed, 31 insertions(+), 133 deletions(-) commit 87d7b82a98780223422a829b6bb1a05fd753ae5e Author: Akira TAGOH Date: Mon Apr 2 14:32:44 2012 +0900 Use AC_HELP_STRING instead of formatting manually configure.in | 57 ++++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 46 insertions(+), 11 deletions(-) commit d3e3f4a46d07a7b611be21600d7049225b8b2909 Author: Akira TAGOH Date: Fri Mar 30 18:09:14 2012 +0900 doc: Add contains and not_contains operators and elements doc/fontconfig-user.sgml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 9279f71a3a855e3b2dbd13dbe0d38f2b69673c49 Author: Akira TAGOH Date: Fri Mar 30 11:52:25 2012 +0900 Bug 24729 - [ne_NP] Fix ortho file further update for ne.orth Patch from Pravin Satpute. fc-lang/ne.orth | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) commit 9fe7c986c64d8cfb7f85a300b6f0d470ce66b18a Author: Akira TAGOH Date: Thu Mar 29 15:43:11 2012 +0900 Bug 48020 - Fix for src/makealias on Solaris 10 Use the command substitution `command` instead of $(command) for Solaris 10. src/makealias | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit becbdaebe3d77726900072de1a0fb6a95c938da5 Author: Akira TAGOH Date: Wed Mar 28 15:09:25 2012 +0900 Move workaround macros for fat binaries into the separate header file Makefile.am | 5 +++-- config-fixups.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ configure.in | 4 +++- src/fcarch.h | 13 ------------- 4 files changed, 50 insertions(+), 16 deletions(-) commit fe6ba5e5c54928adeaf96668d0cf6f44f0484065 Author: Akira TAGOH Date: Wed Mar 28 16:27:46 2012 +0900 Fix the hardcoded cache file suffix fc-cat/fc-cat.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4a060729a1466186d3be63ada344f43d66f937e5 Author: Akira TAGOH Date: Wed Mar 28 13:38:53 2012 +0900 fcpat: Increase the number of buckets in the shared string hash table This is a reasonably conservative increase in the number of buckets in the hash table to 251. After FcInit(), there are 240 shared strings in use on my system (from configuration files I assume). The hash value is stored in each link in the chains so comparison are actually not very expensive. This change should reduce the average length of chains by a factor of 8. With the reference counted strings, it should keep the average length of chains to about 2. The number of buckets is prime so as not to rely too much on the quality of the hash function. https://bugs.freedesktop.org/show_bug.cgi?id=17832#c5 Patch from Karl Tomlinson src/fcpat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d8dcff7b96b09748e6f1df9e4adc7ab0850d7b18 Author: Akira TAGOH Date: Wed Mar 28 13:37:15 2012 +0900 Bug 17832 - Memory leaks due to FcStrStaticName use for external patterns Use the reference-counted strings instead of the static strings Patch from Karl Tomlinson src/fccfg.c | 2 +- src/fcinit.c | 4 ++-- src/fcint.h | 10 +++++----- src/fclist.c | 10 +++++++++- src/fcname.c | 34 ++++++++------------------------ src/fcpat.c | 63 +++++++++++++++++++++++------------------------------------- src/fcxml.c | 8 +++++--- 7 files changed, 54 insertions(+), 77 deletions(-) commit ea1c6ea337b8cf6b86169b565787d0d31a0fc330 Author: Akira TAGOH Date: Tue Mar 27 21:06:36 2012 +0900 Fix a memory leak in FcDirScanConfig() src/fcdir.c | 3 +++ 1 file changed, 3 insertions(+) commit 1aaf8b773d73f89f5b0d8591cca0a2072524fdb3 Author: Akira TAGOH Date: Mon Mar 26 10:58:18 2012 +0900 Bug 17722 - Don't overwrite user's configurations in default config Use "append" to avoid overwriting the user configuration. This presumes most clients may takes care of the first value only. conf.d/10-autohint.conf | 8 +++++++- conf.d/10-no-sub-pixel.conf | 8 +++++++- conf.d/10-sub-pixel-bgr.conf | 8 +++++++- conf.d/10-sub-pixel-rgb.conf | 8 +++++++- conf.d/10-sub-pixel-vbgr.conf | 8 +++++++- conf.d/10-sub-pixel-vrgb.conf | 8 +++++++- conf.d/10-unhinted.conf | 8 +++++++- conf.d/11-lcdfilter-default.conf | 8 +++++++- conf.d/11-lcdfilter-legacy.conf | 8 +++++++- conf.d/11-lcdfilter-light.conf | 8 +++++++- 10 files changed, 70 insertions(+), 10 deletions(-) commit 900675d0b0b40f22ecc0d75e4d5ce16295a3a5e3 Author: Akira TAGOH Date: Thu Mar 22 19:57:47 2012 +0900 Bug 47703 - SimSun default family 40-nonlatin.conf: SimSun should be serif but not sans-serif. http://www.microsoft.com/typography/fonts/family.aspx?FID=37 Patch from Petr Gajdos conf.d/40-nonlatin.conf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 92ac054ce5e270f22a4f81a09522c3f03b76c876 Author: Akira TAGOH Date: Thu Mar 22 19:15:27 2012 +0900 fcmatch: Set FcResultMatch at the end if the return value is valid. In the previous code, the result of 'result' in the argument for FcFontSetSort() and FcFontSetMatch() wasn't predictable and not reliable to check if the return value is valid or not. this change is to ensure if it's performed successfully. src/fcmatch.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) commit 1db3e9cdd8bc7408e630934cfc8deda7798b8970 Author: Akira TAGOH Date: Thu Mar 22 12:36:34 2012 +0900 fc-cache: improvement of the fix for Bug#39914. Use sizeof() instead of strlen() and use stdio. fc-cache/fc-cache.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 4f7f3bf9f78843be5b39eb64acfeb02ffcd8e3a4 Author: Akira TAGOH Date: Wed Mar 21 16:06:37 2012 +0900 Bug 39914 - Please tag the cache directory with CACHEDIR.TAG fc-cache: Create CACHEDIR.TAG at the top of the cache directory. Reviewed-by: Josh Triplett fc-cache/fc-cache.c | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) commit 8cc4498122b17843b00ec3eebdd7a7d8d59cb7ff Author: Jeremy Huddleston Date: Mon Mar 19 02:16:41 2012 -0700 fcarch: Check for architecture signature at compile time rather than configure time https://bugs.freedesktop.org/show_bug.cgi?id=20208 Signed-off-by: Jeremy Huddleston fc-cache/fc-cache.c | 3 +-- src/fcarch.c | 4 ++-- src/fcarch.h | 23 +++++++++++++++++++++-- 3 files changed, 24 insertions(+), 6 deletions(-) commit e1ffb3dcd46f1fbbc5cb7527bc7f447b060ed98f Author: Akira TAGOH Date: Fri Mar 16 23:18:23 2012 +0900 Get rid of the prerequisites from the sufix rules Thanks to Adam Sampson for pointing this out. doc/Makefile.am | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 93460f93e9e55e39a42fb6474918f31539436d9c Author: Akira TAGOH Date: Fri Mar 16 16:29:53 2012 +0900 Fix a build issue due to the use of non-portable variables $< isn't supported in BSD make say. $(RM) is pre-defined in GNU make though, not in BSD make say. so changed to check on configure if it's pre-defined by make, otherwise set the appropriate command to $(RM). This would be a workaround until it has the certain pre-defined value. Makefile.am | 10 +++++----- conf.d/Makefile.am | 8 ++++---- configure.in | 9 +++++++++ doc/Makefile.am | 32 ++++++++++++++++---------------- fc-cache/Makefile.am | 4 ++-- fc-case/Makefile.am | 6 ++---- fc-cat/Makefile.am | 4 ++-- fc-list/Makefile.am | 4 ++-- fc-match/Makefile.am | 4 ++-- fc-pattern/Makefile.am | 4 ++-- fc-query/Makefile.am | 4 ++-- fc-scan/Makefile.am | 4 ++-- src/Makefile.am | 8 ++++---- 13 files changed, 54 insertions(+), 47 deletions(-) commit f2813ffc689fb6972ff4d5d414c3abfa3e0be26f Author: Akira TAGOH Date: Fri Mar 16 11:55:47 2012 +0900 Revert "Fix a build fail on some environment" This reverts commit b75eb63982a54c0fb4576d8a655ef734908d3604. fc-case/Makefile.am | 10 ++++++---- fc-glyphname/Makefile.am | 4 ++-- fc-lang/Makefile.am | 4 ++-- 3 files changed, 10 insertions(+), 8 deletions(-) commit a5b609196fe9cf688e5b4f7b7cd31fb2dc15b154 Author: Akira TAGOH Date: Fri Mar 16 11:55:30 2012 +0900 Revert "Fix a build fail on some environment." This reverts commit 0fdfddf2ac93c1c0238b70a265998fd6b5ffe7af. Conflicts: doc/Makefile.am Makefile.am | 2 +- doc/Makefile.am | 30 +++++++++++++++--------------- fc-cache/Makefile.am | 10 +++++----- fc-case/Makefile.am | 2 +- fc-cat/Makefile.am | 6 +++--- fc-glyphname/Makefile.am | 2 +- fc-lang/Makefile.am | 2 +- fc-list/Makefile.am | 8 ++++---- fc-match/Makefile.am | 8 ++++---- fc-pattern/Makefile.am | 6 +++--- fc-query/Makefile.am | 8 ++++---- fc-scan/Makefile.am | 8 ++++---- src/Makefile.am | 2 +- 13 files changed, 47 insertions(+), 47 deletions(-) commit 765b7b32d862474eb631b47bbdbd34ffba507392 Author: Akira TAGOH Date: Mon Mar 12 19:02:27 2012 +0900 [doc] Update for cachedir. element is now obsoletes and no longer used. get rid of it from the doc and add instead. doc/fontconfig-user.sgml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) commit e8bdc6df2ed329a38c2152b3592bf4ded8f27ce7 Author: Akira TAGOH Date: Mon Mar 12 17:58:00 2012 +0900 [doc] Update the path for cache files and the version. doc/fontconfig-user.sgml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit dd3214aa392a66095513f8fc160d6b62d81f36f5 Author: Akira TAGOH Date: Sun Mar 11 02:24:33 2012 +0900 Bump version to 2.9.0 README | 129 +++++++++++++++++++++++++++++++++++++++++++++++- configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 3 files changed, 129 insertions(+), 4 deletions(-) commit 3b142c2aaeaed4d6d5b3353aa1007d6ac08dbbdb Author: Akira TAGOH Date: Sun Mar 11 02:12:10 2012 +0900 Get rid of $< from Makefile.am Makefile.am | 2 +- doc/Makefile.am | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) commit 0fdfddf2ac93c1c0238b70a265998fd6b5ffe7af Author: Akira TAGOH Date: Sat Mar 10 23:30:30 2012 +0900 Fix a build fail on some environment. Makefile.am | 2 +- doc/Makefile.am | 20 ++++++++++---------- fc-cache/Makefile.am | 10 +++++----- fc-case/Makefile.am | 2 +- fc-cat/Makefile.am | 6 +++--- fc-glyphname/Makefile.am | 2 +- fc-lang/Makefile.am | 2 +- fc-list/Makefile.am | 8 ++++---- fc-match/Makefile.am | 8 ++++---- fc-pattern/Makefile.am | 6 +++--- fc-query/Makefile.am | 8 ++++---- fc-scan/Makefile.am | 8 ++++---- src/Makefile.am | 2 +- 13 files changed, 42 insertions(+), 42 deletions(-) commit b75eb63982a54c0fb4576d8a655ef734908d3604 Author: Akira TAGOH Date: Sat Mar 10 22:05:07 2012 +0900 Fix a build fail on some environment fc-case/Makefile.am | 10 ++++------ fc-glyphname/Makefile.am | 4 ++-- fc-lang/Makefile.am | 4 ++-- 3 files changed, 8 insertions(+), 10 deletions(-) commit a47899a853e4ed3405f398f43d03424095ae73f5 Author: Akira TAGOH Date: Sat Mar 10 19:03:05 2012 +0900 Fix a build issue doc/Makefile.am | 1 - 1 file changed, 1 deletion(-) commit d6de5351922d79ccf38d2bc6b75f6ea2011dd421 Author: Akira TAGOH Date: Fri Mar 9 22:24:18 2012 +0900 Update to detect the uncommited changes properly new-version.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 78d75c003c5f03a2aeebc628d70d3f75bd6f5707 Author: Akira TAGOH Date: Fri Mar 9 22:12:35 2012 +0900 Update the version info configure.in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 353f7cc69184cdb1a7d5b4cc00741fab97b32f17 Author: Akira TAGOH Date: Fri Mar 9 17:33:03 2012 +0900 Fix distcheck error doc/Makefile.am | 334 ++++++++++++++++++++++++----------------------- fc-case/Makefile.am | 3 + fc-glyphname/Makefile.am | 3 + fc-lang/Makefile.am | 3 + 4 files changed, 179 insertions(+), 164 deletions(-) commit 254232f47eaea0d03d2b1c2405d4ded5fd09142e Author: Akira TAGOH Date: Wed Mar 7 18:16:35 2012 +0900 Bug 19128 - Handling whitespace in aliases Add a workaround alias for Dingbats. conf.d/30-urw-aliases.conf | 5 +++++ 1 file changed, 5 insertions(+) commit 0ca752dd25462ed88112ba7c859ef6d5a41ea606 Author: Akira TAGOH Date: Wed Mar 7 17:56:39 2012 +0900 Check null value for given object to avoid possibly segfaulting src/fccharset.c | 175 +++++++++++++++++++++++++++++++++----------------------- 1 file changed, 103 insertions(+), 72 deletions(-) commit 1f01c4b60c4c5e16a92d60f76ce615005c7db6b8 Author: Akira TAGOH Date: Wed Mar 7 17:32:14 2012 +0900 Bug 23336 - unable to display bitmap-only (SFNT) TrueType or OpenType Force to find out a size for bitmap-only ttf to avoid the blank glyphs in the font. Patch from Bug Fly src/fcfreetype.c | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) commit a13d518fdd079aeb0bd07a0457393cca8def7f90 Author: Akira TAGOH Date: Tue Feb 28 12:52:25 2012 +0900 Bug 41694 - FcCache functions have random-number-generator side effects Use the own random number generator state if possible. configure.in | 2 +- src/fccache.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 60 insertions(+), 11 deletions(-) commit c7a671ab6069c676bbc77875234364242fd00e88 Author: Pravin Satpute Date: Fri Feb 24 16:50:14 2012 +0900 Bug 25652 - Add ortho file for locale mni_IN Add mni.orth for Maniputi Signed-off-by: Akira TAGOH fc-lang/Makefile.am | 3 ++- fc-lang/mni.orth | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) commit 04c96f59b92091b758fb26b97f1f9a3c9c2a6b6c Author: Pravin Satpute Date: Fri Feb 24 16:43:14 2012 +0900 Bug 25653 - Add ortho file for locale doi_IN Add doi.orth for Dogri Signed-off-by: Akira TAGOH fc-lang/Makefile.am | 3 ++- fc-lang/doi.orth | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) commit 857753d3680b7e64e753a4b8a8324138200eb86b Author: Akira TAGOH Date: Thu Feb 23 20:12:06 2012 +0900 Add brx.orth and sat.orth fc-lang/Makefile.am | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 942cb16f6c59103e29b4e04ca8c64d29c8e67cb0 Author: Parag Nemade Date: Thu Feb 23 20:06:41 2012 +0900 Bug 25650 - Add ortho file for locale sat_IN Add sat.orth for Santali Signed-off-by: Akira TAGOH fc-lang/sat.orth | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) commit 38b9c42fe2e9d496a41e773d84a74254a6f65bc4 Author: Parag Nemade Date: Thu Feb 23 19:34:18 2012 +0900 Bug 25651 - Add ortho file for locale brx_IN Add brx.orth for Bodo. Signed-off-by: Akira TAGOH fc-lang/brx.orth | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) commit a3ff1f07f8c60d2a3c77a4670de6aad0622ecacc Author: Akira TAGOH Date: Thu Feb 23 15:23:23 2012 +0900 Bug 27385 - lcdfilter settings for freetype-2.3.12 not available in fontconfig-2.8.0 Add config files for FT_LcdFilter options. Patch from Robin Johnson. conf.d/11-lcdfilter-default.conf | 10 ++++++++++ conf.d/11-lcdfilter-legacy.conf | 10 ++++++++++ conf.d/11-lcdfilter-light.conf | 10 ++++++++++ conf.d/Makefile.am | 3 +++ 4 files changed, 33 insertions(+) commit 5e4ea1104c9b832046cc8dde5ea7da52aaa61143 Author: Akira TAGOH Date: Wed Feb 22 16:50:13 2012 +0900 Do not update stream->pos when seeking is failed. src/ftglue.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 71b14d645f524637579d87ea99720c123d728e1f Author: Akira TAGOH Date: Wed Feb 22 16:30:05 2012 +0900 Bug 46169 - Pointer error in FcConfigGlobMatch Fix possibly accessing the invalid memory and a crash in the worst case when the glob string is longer than the string. src/fccfg.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 3abf981542788310104bc96b9c9cf70dd39b361b Author: Mike Frysinger Date: Tue Nov 8 14:19:57 2011 -0500 makealias: handle missing funcs better When adding new functions, if the actual definition doesn't match the header (say due to a typo), the regeneration of the internal headers get confused and output bad cpp logic. This causes gcc to barf due to mismatched #ifdef/#endif. Which is a pain to figure out due to the sheer voulme of generated code. So tweak the makealias script to detect this case and error out. While we're here, improve the cpp output a bit to indent, include comments, and merge similar ifdef blocks. Signed-off-by: Mike Frysinger src/makealias | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) commit d9c4462778a3d97b38e267dcdf68dfe22210ed8c Author: Mike Frysinger Date: Mon Nov 7 20:09:10 2011 -0500 FcObjectValidType: tweak -1 checking Newer gcc doesn't like when you switch on an enum and use a value that isn't declared: fcname.c: In function 'FcObjectValidType': fcname.c:299:2: warning: case value '4294967295' not in enumerated type 'FcType' [-Wswitch] So tweak the logic to avoid this warning. Signed-off-by: Mike Frysinger src/fcname.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit 97c9506e4d0abe5e6a7d61c1a909741d2605507b Author: Mike Frysinger Date: Mon Nov 7 19:29:57 2011 -0500 fix build warnings when using --with-arch Latest configure code will setup FC_ARCHITECTURE directly rather than going through ARCHITECTURE, so update fcarch.h accordingly. Signed-off-by: Mike Frysinger src/fcarch.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 01c833379e19d8f8752ac7cec15b179c71242e2c Author: Mike Frysinger Date: Mon Nov 7 15:33:12 2011 -0500 fc-{list,match}: constify format string We don't free this string anywhere, so mark it const to avoid gcc warnings and possible bugs in the future (if people did try freeing it). fc-list.c: In function 'main': fc-list.c:161:16: warning: pointer targets in assignment differ in signedness [-Wpointer-sign] fc-match.c: In function 'main': fc-match.c:201:13: warning: pointer targets in assignment differ in signedness [-Wpointer-sign] fc-match.c:203:13: warning: pointer targets in assignment differ in signedness [-Wpointer-sign] Signed-off-by: Mike Frysinger fc-list/fc-list.c | 20 ++++++++++---------- fc-match/fc-match.c | 22 +++++++++++----------- 2 files changed, 21 insertions(+), 21 deletions(-) commit 123d344f4590c45c5ccced8c46d157edb2b9efd2 Author: Mike Frysinger Date: Mon Nov 7 15:26:52 2011 -0500 FcName{,Get}Constant: constify string input These funcs don't modify the incoming string, so add const markings. This is the "right thing", shouldn't change the ABI, and fixes some gcc warnings: fccfg.c: In function 'FcConfigEvaluate': fccfg.c:916:2: warning: passing argument 1 of 'IA__FcNameConstant' discards 'const' qualifier from pointer target type [enabled by default] fcalias.h:253:34: note: expected 'FcChar8 *' but argument is of type 'const FcChar8 *' fcxml.c: In function 'FcTypecheckExpr': fcxml.c:604:2: warning: passing argument 1 of 'IA__FcNameGetConstant' discards 'const' qualifier from pointer target type [enabled by default] fcalias.h:251:37: note: expected 'FcChar8 *' but argument is of type 'const FcChar8 *' Signed-off-by: Mike Frysinger fontconfig/fontconfig.h | 4 ++-- src/fcname.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit da763aa77dbaefd9be10ff5ad04ab5da39327b2e Author: Mike Frysinger Date: Mon Nov 7 15:24:53 2011 -0500 fc-cat: fix pointer warning Add a cast to avoid a gcc warning: fc-cat.c: In function 'cache_print_set': fc-cat.c:230:2: warning: pointer targets in passing argument 2 of 'FcPatternFormat' differ in signedness [-Wpointer-sign] ../fontconfig/fontconfig.h:860:1: note: expected 'const FcChar8 *' but argument is of type 'char *' Signed-off-by: Mike Frysinger fc-cat/fc-cat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 647569d029d0c01ce36ae7d94095ea83f40728de Author: Mike Frysinger Date: Mon Nov 7 15:21:51 2011 -0500 FcStat: change to FcChar8 for first arg This shouldn't affect the ABI, makes FcStat more like the rest of the fontconfig API, and fixes warnings where we pass FcChar8* pointers in to this func from other places. Signed-off-by: Mike Frysinger src/fccache.c | 4 ++-- src/fcint.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit e3a66c2937c3bd5c45f5170cf7720b4023b8ae3f Author: Mike Frysinger Date: Mon Nov 7 15:18:26 2011 -0500 delete unused variables Newer gcc is better at detecting set-but-unused variables. Signed-off-by: Mike Frysinger src/fccache.c | 6 ++---- src/fcdir.c | 17 ----------------- src/fcformat.c | 5 ++--- src/fcfreetype.c | 3 --- 4 files changed, 4 insertions(+), 27 deletions(-) commit 6f020161e8628546158766ce7a5f5e0ce1f7d95a Author: Mike Frysinger Date: Mon Nov 7 14:25:51 2011 -0500 FcStrPlus: optimize a little We've already calculated the lengths of these strings, so re-use those values to avoid having to rescan the strings multiple times. Signed-off-by: Mike Frysinger src/fcstr.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 2b010e46e629f118885f17ba860e9c4ddbba8779 Author: Akira TAGOH Date: Thu Jan 19 12:04:52 2012 +0900 Bug 44826 - must contain only a single Fix invalid syntax around alias elements in 30-metric-aliases.conf 40-nonlatin.conf and 45-latin.conf. Patch from lolilolicon conf.d/30-metric-aliases.conf | 36 +++++++++++ conf.d/40-nonlatin.conf | 140 +++++++++++++++++++++++++++++++++++++++++- conf.d/45-latin.conf | 96 +++++++++++++++++++++++++++++ 3 files changed, 271 insertions(+), 1 deletion(-) commit 54dd481512265a247bd23663c8fdb290a8886ccd Author: Akira TAGOH Date: Tue Dec 20 18:46:14 2011 +0900 Get rid of the unexpected family name UmePlus P Gothic isn't a serif font. conf.d/65-nonlatin.conf | 1 - 1 file changed, 1 deletion(-) commit 1c13fee11adcaae9eaaa08f9193a8c3c5b01504a Author: MINAMI Hirokazu Date: Tue Dec 20 18:36:35 2011 +0900 Bug 43406 - typo of Japanese font name in conf.d/65-nonlatin.conf Fix a typo. Signed-off-by: Akira TAGOH conf.d/65-nonlatin.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a53553b4b65d6230b1a91b1a7433c8c5852ab055 Author: Pravin Satpute Date: Wed Dec 21 11:38:28 2011 +0900 Bug 43321 - Required corrections in urdu.orth file Drop U+0629 and U+0647, and add U+06c3 to ur.orth Signed-off-by: Akira TAGOH fc-lang/ur.orth | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 8c58dc276895cbeb0e9ae79718b1a38a082709d3 Author: Jinkyu Yi Date: Wed Nov 9 18:07:37 2011 +0900 Bug 42423 - make default Korean font from Un to Nanum Update 40-nonlatin.conf and 65-nonlatin.conf for Nanum korean fonts. Signed-off-by: Akira TAGOH conf.d/40-nonlatin.conf | 3 +++ conf.d/65-nonlatin.conf | 24 ++++++++++++++---------- 2 files changed, 17 insertions(+), 10 deletions(-) commit a18ca17b6211f62fbd1d893811b94b8c83db4cc0 Author: Akira TAGOH Date: Tue Feb 21 15:29:56 2012 +0900 Bug 40452 - Running 'fc-match --all' core dumps when no fonts are installed This would changes the behavior of FcFontSort(). it won't returns NULL afterward. fc-match/fc-match.c | 5 +++++ src/fcmatch.c | 29 ++++++++++++++++++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) commit cbb6ee1662f1219518677a9d489159778a812782 Author: Akira TAGOH Date: Tue Jul 19 20:12:09 2011 +0900 Bug 35517 - Remove Apple Roman cmap support Get rid of the apple roman encoding related code src/fcfreetype.c | 260 ------------------------------------------------------- 1 file changed, 260 deletions(-) commit d3c438221610d2e584a611f21433062dc7e7f83d Author: Akira TAGOH Date: Tue Feb 21 15:11:30 2012 +0900 Add a missing file fc-lang/Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 5582043a49f4360ae83d66ea05409e1c0a25b61e Author: Akira TAGOH Date: Mon Nov 14 12:56:28 2011 +0900 Bug 32965 - Asturian (ast-ES) language matching missing ḷḷḥ Add U+1E24, U+1E25, U+1E36 and U+1e37 for Asturian fc-lang/ast.orth | 4 ++++ 1 file changed, 4 insertions(+) commit dab0afd81013507b3d32afdd5a552d6ac09c10c0 Author: Akira TAGOH Date: Mon Nov 14 18:22:48 2011 +0900 Remove the unnecessary comment in ks.orth fc-lang/ks.orth | 4 ---- 1 file changed, 4 deletions(-) commit dedc16733a44373633e319461ff04ec9d1f08ed6 Author: Pravin Satpute Date: Fri Nov 11 15:30:56 2011 +0900 Bug 27195 - need updates to ks.orth file Add U+0620, U+0657, U+065f, U+0672, U+0673 and U+06c4 for Kashmiri See http://www.unicode.org/charts/PDF/U0600.pdf Signed-off-by: Akira TAGOH fc-lang/ks.orth | 6 ++++++ 1 file changed, 6 insertions(+) commit a1ecd679db82b0b118dc7334993f53b4288c4ae4 Author: Akira TAGOH Date: Mon Nov 14 17:44:24 2011 +0900 Bug 24744 - No n'ko orthography Add nqo.orth for N'Ko fc-lang/nqo.orth | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit 19651262e9502c952184f27962c9f5e521a11db9 Author: Behdad Esfahbod Date: Thu Oct 6 14:59:04 2011 -0400 Add FcPublic to FcLangSetUnion and FcLangSetSubtract Patch from ssp fontconfig/fontconfig.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3951fbaa39699684ebd3e76b333a14d5ebb19919 Author: Behdad Esfahbod Date: Wed Oct 5 15:12:48 2011 -0400 Fix parallel build doc/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 082caefb6d5462c97f280b7037e3740b4865a244 Author: Behdad Esfahbod Date: Sat Sep 24 13:52:05 2011 -0400 Bug 41171 - Invalid use of memset src/fccache.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bf3bfa72d91e8bc37903d7e1bb7ac23c6ef4952a Author: Behdad Esfahbod Date: Wed Jun 22 13:06:19 2011 -0400 Fix stupid bug in FcFontSort() I broke FcFontSort() language handling at the end of 2008 with this commit: c7641f28 G-d knows how many of the lang-matching bugs in bugzilla will be fixed by this changed... I'm really sorry, everyone! src/fcmatch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e61eba94efffbdbec6f9e08f3fb04b75f0ba2a3f Author: Behdad Esfahbod Date: Mon Jun 20 11:55:25 2011 -0400 Switch fc-cat to use FcPatternFormat() Added the a builtin "fccat" to FcPatternFormat(). doc/fcformat.fncs | 7 +++++++ fc-cat/fc-cat.c | 39 +++++++++++---------------------------- src/fcformat.c | 3 +++ 3 files changed, 21 insertions(+), 28 deletions(-) commit a15ac5d3840552528874f1d5ad166eb00906ce80 Author: Behdad Esfahbod Date: Mon Jun 20 11:32:46 2011 -0400 Switch fc-match to use FcPatternFormat() Fix small bug in FcPatternFormat that was letting element-default to consume the convertor sequence. fc-match/fc-match.c | 38 +++++++++----------------------------- src/fcformat.c | 2 +- 2 files changed, 10 insertions(+), 30 deletions(-) commit e0be405a1dd5765e36152c754a47c8ad7ff0ab85 Author: Behdad Esfahbod Date: Mon Jun 20 11:22:17 2011 -0400 Bug 26718 - "fc-match sans file" doesn't work - Do not throw away FC_FILE in FcNameUnparse - Update the builtin "fclist" format to remove FC_FILE properly instead - Switch fc-list to use FcPatternFormat() Note that I had previously broken fc-list and it was not showing the file name anymore. No one noticed that it seems! Now fixed. fc-list/fc-list.c | 17 ++++------------- src/fcformat.c | 2 +- src/fcname.c | 3 +-- 3 files changed, 6 insertions(+), 16 deletions(-) commit 0fcf866d44c46bd63d91f656e36544b6ce9af47d Author: Behdad Esfahbod Date: Mon Jun 20 11:07:56 2011 -0400 Bug 36577 - Updating cache with no-bitmaps disables bitmap fonts... Do not remove blacklisted fonts during cache generation. We already apply the blacklist when reading the caches. The idea always has been that the config should not affect caches built, although that design was tarnished with the introduction of target="scan" configurations. src/fcdir.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) commit 0392abf79131c9325c66c71c2708a4cd77673296 Author: Behdad Esfahbod Date: Tue Apr 12 22:15:37 2011 -0400 [.gitignore] Update .gitignore | 3 +++ 1 file changed, 3 insertions(+) commit 1c475d5c8cb265ac939d6b9e097666e300162511 Author: Behdad Esfahbod Date: Mon Mar 28 16:33:12 2011 -0400 Bug 35587 - Add padding to make valgrind and glibc not hate each other src/fccfg.c | 13 +++++++++++-- src/fcpat.c | 10 +++++++--- 2 files changed, 18 insertions(+), 5 deletions(-) commit f0ee5761e1ab63d848f980a767dd8475986f1342 Author: Behdad Esfahbod Date: Mon Mar 14 18:58:13 2011 -0300 Fix warning fc-lang/fc-lang.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c21fb9ac27ca89f3b581c58b1a08372f8273a262 Author: Behdad Esfahbod Date: Mon Mar 14 18:49:21 2011 -0300 Always define FcStat as a function Such that first arg is const char *. We also need to make more changes in that function as part of some other bug. src/fcatomic.c | 2 +- src/fccache.c | 13 +++++++++++-- src/fccfg.c | 2 +- src/fcdir.c | 4 ++-- src/fcint.h | 4 ---- 5 files changed, 15 insertions(+), 10 deletions(-) commit b5617e636cbb0bc8ef4daba6681a6f58078d7a42 Author: Behdad Esfahbod Date: Mon Mar 14 18:23:56 2011 -0300 More doc typo fixes doc/fcatomic.fncs | 2 +- doc/fcconfig.fncs | 4 ++-- doc/fcinit.fncs | 2 +- doc/fcmatrix.fncs | 4 ++-- doc/fcobjectset.fncs | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) commit 6c7915c10548132c3f7d0c00d08fdb268e5da6d4 Author: Behdad Esfahbod Date: Mon Mar 14 18:21:32 2011 -0300 Mark constant strings as constant Fixes a few compiler warnings in fcxml.c and makes it clear that they should not be freed. doc/fcatomic.fncs | 2 +- src/fcint.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit c76ed777ddb03a70c5990ef439d8d97809d1ef92 Author: Behdad Esfahbod Date: Mon Mar 14 18:04:59 2011 -0300 Bug 30566 - fcformat.c:interpret_enumerate() passes uninitialized idx to FcPatternGetLangSet() src/fcformat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ccc239b3865dd8d83026ae59b89de965e948120a Author: Behdad Esfahbod Date: Mon Mar 14 17:28:53 2011 -0300 Bug 20113 - Uighur (ug) orthography incomplete fc-lang/ug.orth | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) commit 7baa20c7590b12d11dcfb0a50131d50963581258 Author: Brad Hards Date: Fri Mar 11 19:43:42 2011 -0300 Documentation fixes doc/fcatomic.fncs | 2 +- doc/fccharset.fncs | 8 +-- doc/fcfontset.fncs | 2 +- doc/fcformat.fncs | 4 +- doc/fcfreetype.fncs | 4 +- doc/fcinit.fncs | 2 +- doc/fclangset.fncs | 4 +- doc/fcpattern.fncs | 2 +- doc/fcstring.fncs | 4 +- doc/fontconfig-devel.sgml | 148 +++++++++++++++++++++++----------------------- doc/fontconfig-user.sgml | 8 +-- 11 files changed, 94 insertions(+), 94 deletions(-) commit 9bfe7bad1c85403d85b833b58ebc6343f766e0a9 Author: Behdad Esfahbod Date: Fri Mar 11 19:40:38 2011 -0300 Remove --enable-maintainer-mode from autogen.sh autogen.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e1bb01bfdc64d0276fb17f248a54bcabe6f9aff1 Author: Behdad Esfahbod Date: Fri Jan 21 16:34:52 2011 -0500 Update CaseFolding.txt to Unicode 6.0 fc-case/CaseFolding.txt | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) commit e10a42178c65ff974fa9383dbc78525b3d8de1ae Author: Behdad Esfahbod Date: Mon Jan 3 22:18:38 2011 -0500 Remove AM_MAINTAINER_MODE That macro is simply broken. This was also brought up in: Bug 32679 - fontconfig-2.8.0 does not cross compile configure.in | 1 - 1 file changed, 1 deletion(-) commit 0c7b8676171f2238af9785abf775e0f420e6545a Author: Behdad Esfahbod Date: Sun Jan 2 13:25:29 2011 -0700 Fix assertion failure on le32d4 Reported by Jon TURNEY. src/fcarch.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e63f90ce74d1f2c1e22959cb2ed97120eff3867f Author: Behdad Esfahbod Date: Tue Dec 28 02:58:16 2010 -0600 Doc nit doc/fclangset.fncs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 43bf659eedb3eeff75d219864af475dcadcf6983 Author: Behdad Esfahbod Date: Tue Dec 28 02:55:31 2010 -0600 Skip elements with begin > end src/fcxml.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) commit 8c625aa01f0ad95b1c06acb079921c209906f3b4 Author: Behdad Esfahbod Date: Tue Dec 28 02:52:06 2010 -0600 Add support for into the DTD fonts.dtd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 549c9962a48cd728116c8f39db31c58043236ff0 Merge: 30fd4fa fa269cf Author: Behdad Esfahbod Date: Tue Dec 28 02:50:16 2010 -0600 Allow editing charset and lang in target="scan" Merge commit 'fa269cf812ee304534b0e4c44662202496008db0' Fixes: Bug 31969 - Can't modify charset in target="scan" Bug 23758 - Can't modify lang in target="scan" commit 30fd4fac9ca2238f84608c23836cab219640d9c1 Author: Behdad Esfahbod Date: Tue Dec 28 01:28:39 2010 -0600 Bump version configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d1a0fca316ab8d9d61474028da54615e4d9f7540 Author: Behdad Esfahbod Date: Tue Dec 28 00:59:19 2010 -0600 Make fc-arch stuff cross-compiling-safe Fixes: Bug 32679 - fontconfig-2.8.0 does not cross compile Bug 25462 - Cross-compilation doesn't work Makefile.am | 2 +- configure.in | 64 +++++------------------ fc-arch/Makefile.am | 54 -------------------- fc-arch/fc-arch.c | 138 -------------------------------------------------- fc-arch/fcarch.tmpl.h | 65 ------------------------ fc-cache/fc-cache.c | 2 +- fc-cat/fc-cat.c | 2 +- src/Makefile.am | 6 +-- src/fcarch.c | 72 ++++++++++++++++++++++++++ src/fcarch.h | 71 ++++++++++++++++++++++++++ src/fccache.c | 3 +- src/fcint.h | 4 ++ 12 files changed, 167 insertions(+), 316 deletions(-) commit 2a6b235ff6d2750171e8dff7cfdfe3bccb0f630e Author: Behdad Esfahbod Date: Mon Dec 27 13:20:47 2010 -0600 Make most generated-files cross-compiling-safe By simply including a copy in the tarball. Remains fc-arch which is trickier. doc/Makefile.am | 19 +++++++++++-------- fc-arch/fcarch.tmpl.h | 2 +- fc-case/Makefile.am | 14 ++++++++------ fc-glyphname/Makefile.am | 14 ++++++++------ fc-lang/Makefile.am | 17 ++++++++++------- 5 files changed, 38 insertions(+), 28 deletions(-) commit fa269cf812ee304534b0e4c44662202496008db0 Author: Akira TAGOH Date: Thu Dec 9 11:57:24 2010 +0900 add some documents doc/fclangset.fncs | 30 ++++++++++++++++++++++++++++++ doc/fontconfig-user.sgml | 4 ++++ 2 files changed, 34 insertions(+) commit 3c862aad9f49be4b098cb679a67449c85b58f1f5 Author: Akira TAGOH Date: Mon Dec 6 12:38:18 2010 +0900 Add editing langset feature. The syntax to add any langset to the langset table looks like: Buggy Sans lang zh-cn zh-tw To remove any langset from the langset table: Buggy Sans lang ja fontconfig/fontconfig.h | 9 ++++++ fonts.dtd | 5 ++-- src/fccfg.c | 24 +++++++++++++++ src/fcdbg.c | 6 ++++ src/fcint.h | 3 +- src/fclang.c | 62 ++++++++++++++++++++++++++++++++++++++ src/fcxml.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 186 insertions(+), 3 deletions(-) commit d975cdda782bb88c8bb6706889a554b2afb9f939 Author: Akira TAGOH Date: Mon Dec 6 12:18:23 2010 +0900 Add the range support in blank element src/fcxml.c | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) commit 51e352a1bde91348888202539639a5a2d0d506d4 Author: Akira TAGOH Date: Thu Dec 9 11:32:26 2010 +0900 add some document for range and charset. doc/fontconfig-user.sgml | 8 ++++++++ 1 file changed, 8 insertions(+) commit 857b7efe1e301f670329c6836da52fbab8c5df66 Author: Akira TAGOH Date: Mon Dec 6 12:10:17 2010 +0900 Add charset editing feature. The syntax to add any characters to the charset table looks like: Buggy Sans charset 0x3220 To remove any characters from the charset table: Buggy Sans charset 0x06CC 0x06D2 0x06D3 You could also use the range element for convenience: ... 0x06CC 0x06D2 0x06D3 ... fonts.dtd | 4 +- src/Makefile.am | 4 +- src/fccfg.c | 19 +++++++ src/fcdbg.c | 2 + src/fcint.h | 9 +++- src/fcxml.c | 156 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 6 files changed, 185 insertions(+), 9 deletions(-) commit 0d47cfabd82cd9c02ec5711383f06599b0450ac0 Author: Behdad Esfahbod Date: Tue Dec 7 18:48:56 2010 -0500 Bug 28958 - lang=en matches other langs Patch from Akira TAGOH. src/fclang.c | 2 ++ 1 file changed, 2 insertions(+) commit 1e7a2a4f6cd05bfa8b15f88c2f9ca10ad97fc8ac Author: Behdad Esfahbod Date: Thu Dec 2 08:13:59 2010 -0500 Fix returned value src/fcinit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5aaf466d3899842763e746a9c2b745748eb34b48 Author: Behdad Esfahbod Date: Wed Nov 10 16:45:42 2010 -0500 Cleanup copyright notices to replace "Keith Packard" with "the author(s)" COPYING | 5 ++--- Makefile.am | 4 ++-- conf.d/Makefile.am | 4 ++-- config/Makedefs.in | 4 ++-- configure.in | 4 ++-- doc/Makefile.am | 4 ++-- doc/confdir.sgml.in | 4 ++-- doc/edit-sgml.c | 4 ++-- doc/fcatomic.fncs | 4 ++-- doc/fcblanks.fncs | 4 ++-- doc/fccache.fncs | 4 ++-- doc/fccharset.fncs | 4 ++-- doc/fcconfig.fncs | 4 ++-- doc/fcconstant.fncs | 4 ++-- doc/fcfile.fncs | 4 ++-- doc/fcfontset.fncs | 4 ++-- doc/fcformat.fncs | 4 ++-- doc/fcfreetype.fncs | 4 ++-- doc/fcinit.fncs | 4 ++-- doc/fcmatrix.fncs | 4 ++-- doc/fcobjectset.fncs | 4 ++-- doc/fcobjecttype.fncs | 4 ++-- doc/fcpattern.fncs | 4 ++-- doc/fcstring.fncs | 4 ++-- doc/fcstrset.fncs | 4 ++-- doc/fcvalue.fncs | 4 ++-- doc/fontconfig-devel.sgml | 8 ++++---- doc/fontconfig-user.sgml | 4 ++-- doc/func.sgml | 4 ++-- doc/version.sgml.in | 4 ++-- fc-arch/Makefile.am | 4 ++-- fc-arch/fcarch.tmpl.h | 4 ++-- fc-cache/Makefile.am | 4 ++-- fc-cache/fc-cache.c | 4 ++-- fc-case/Makefile.am | 4 ++-- fc-case/fc-case.c | 4 ++-- fc-case/fccase.tmpl.h | 4 ++-- fc-cat/Makefile.am | 4 ++-- fc-cat/fc-cat.c | 4 ++-- fc-glyphname/Makefile.am | 4 ++-- fc-glyphname/fc-glyphname.c | 4 ++-- fc-glyphname/fcglyphname.tmpl.h | 4 ++-- fc-lang/Makefile.am | 4 ++-- fc-lang/aa.orth | 4 ++-- fc-lang/ab.orth | 4 ++-- fc-lang/af.orth | 4 ++-- fc-lang/am.orth | 4 ++-- fc-lang/ar.orth | 4 ++-- fc-lang/ast.orth | 4 ++-- fc-lang/av.orth | 4 ++-- fc-lang/ay.orth | 4 ++-- fc-lang/az_ir.orth | 4 ++-- fc-lang/ba.orth | 4 ++-- fc-lang/be.orth | 4 ++-- fc-lang/bg.orth | 4 ++-- fc-lang/bh.orth | 4 ++-- fc-lang/bho.orth | 4 ++-- fc-lang/bi.orth | 4 ++-- fc-lang/bin.orth | 4 ++-- fc-lang/bm.orth | 4 ++-- fc-lang/bo.orth | 4 ++-- fc-lang/br.orth | 4 ++-- fc-lang/bs.orth | 4 ++-- fc-lang/bua.orth | 4 ++-- fc-lang/ca.orth | 4 ++-- fc-lang/ce.orth | 4 ++-- fc-lang/ch.orth | 4 ++-- fc-lang/chm.orth | 4 ++-- fc-lang/chr.orth | 4 ++-- fc-lang/co.orth | 4 ++-- fc-lang/cs.orth | 4 ++-- fc-lang/cu.orth | 4 ++-- fc-lang/cv.orth | 4 ++-- fc-lang/cy.orth | 4 ++-- fc-lang/da.orth | 4 ++-- fc-lang/de.orth | 4 ++-- fc-lang/dz.orth | 4 ++-- fc-lang/el.orth | 4 ++-- fc-lang/en.orth | 4 ++-- fc-lang/eo.orth | 4 ++-- fc-lang/es.orth | 4 ++-- fc-lang/et.orth | 4 ++-- fc-lang/eu.orth | 4 ++-- fc-lang/fa.orth | 4 ++-- fc-lang/fc-lang.c | 4 ++-- fc-lang/fc-lang.man | 4 ++-- fc-lang/fclang.tmpl.h | 4 ++-- fc-lang/ff.orth | 4 ++-- fc-lang/fi.orth | 4 ++-- fc-lang/fj.orth | 4 ++-- fc-lang/fo.orth | 4 ++-- fc-lang/fr.orth | 4 ++-- fc-lang/fur.orth | 4 ++-- fc-lang/fy.orth | 4 ++-- fc-lang/ga.orth | 4 ++-- fc-lang/gd.orth | 4 ++-- fc-lang/gez.orth | 4 ++-- fc-lang/gl.orth | 4 ++-- fc-lang/gn.orth | 4 ++-- fc-lang/gu.orth | 4 ++-- fc-lang/gv.orth | 4 ++-- fc-lang/ha.orth | 4 ++-- fc-lang/haw.orth | 4 ++-- fc-lang/he.orth | 4 ++-- fc-lang/hi.orth | 4 ++-- fc-lang/ho.orth | 4 ++-- fc-lang/hr.orth | 4 ++-- fc-lang/hu.orth | 4 ++-- fc-lang/hy.orth | 4 ++-- fc-lang/ia.orth | 4 ++-- fc-lang/id.orth | 4 ++-- fc-lang/ie.orth | 4 ++-- fc-lang/ig.orth | 4 ++-- fc-lang/ik.orth | 4 ++-- fc-lang/io.orth | 4 ++-- fc-lang/is.orth | 4 ++-- fc-lang/it.orth | 4 ++-- fc-lang/iu.orth | 4 ++-- fc-lang/ja.orth | 4 ++-- fc-lang/ka.orth | 4 ++-- fc-lang/kaa.orth | 4 ++-- fc-lang/ki.orth | 4 ++-- fc-lang/kk.orth | 4 ++-- fc-lang/kl.orth | 4 ++-- fc-lang/kn.orth | 4 ++-- fc-lang/ko.orth | 4 ++-- fc-lang/kok.orth | 4 ++-- fc-lang/ku_am.orth | 4 ++-- fc-lang/ku_ir.orth | 4 ++-- fc-lang/kum.orth | 4 ++-- fc-lang/kv.orth | 4 ++-- fc-lang/kw.orth | 4 ++-- fc-lang/ky.orth | 4 ++-- fc-lang/la.orth | 4 ++-- fc-lang/lb.orth | 4 ++-- fc-lang/lez.orth | 4 ++-- fc-lang/ln.orth | 4 ++-- fc-lang/lo.orth | 4 ++-- fc-lang/lt.orth | 4 ++-- fc-lang/lv.orth | 4 ++-- fc-lang/mai.orth | 4 ++-- fc-lang/mg.orth | 4 ++-- fc-lang/mh.orth | 4 ++-- fc-lang/mi.orth | 4 ++-- fc-lang/mk.orth | 4 ++-- fc-lang/ml.orth | 4 ++-- fc-lang/mn_cn.orth | 4 ++-- fc-lang/mo.orth | 4 ++-- fc-lang/mr.orth | 4 ++-- fc-lang/mt.orth | 4 ++-- fc-lang/my.orth | 4 ++-- fc-lang/nb.orth | 4 ++-- fc-lang/nds.orth | 4 ++-- fc-lang/ne.orth | 4 ++-- fc-lang/nl.orth | 4 ++-- fc-lang/nn.orth | 4 ++-- fc-lang/no.orth | 4 ++-- fc-lang/ny.orth | 4 ++-- fc-lang/oc.orth | 4 ++-- fc-lang/om.orth | 4 ++-- fc-lang/or.orth | 4 ++-- fc-lang/os.orth | 4 ++-- fc-lang/pes.orth | 4 ++-- fc-lang/pl.orth | 4 ++-- fc-lang/prs.orth | 4 ++-- fc-lang/ps_af.orth | 4 ++-- fc-lang/ps_pk.orth | 4 ++-- fc-lang/pt.orth | 4 ++-- fc-lang/rm.orth | 4 ++-- fc-lang/ro.orth | 4 ++-- fc-lang/ru.orth | 4 ++-- fc-lang/sa.orth | 4 ++-- fc-lang/sah.orth | 4 ++-- fc-lang/sco.orth | 4 ++-- fc-lang/se.orth | 4 ++-- fc-lang/sel.orth | 4 ++-- fc-lang/sk.orth | 4 ++-- fc-lang/sl.orth | 4 ++-- fc-lang/sm.orth | 4 ++-- fc-lang/sma.orth | 4 ++-- fc-lang/smj.orth | 4 ++-- fc-lang/smn.orth | 4 ++-- fc-lang/sms.orth | 4 ++-- fc-lang/so.orth | 4 ++-- fc-lang/sq.orth | 4 ++-- fc-lang/sr.orth | 4 ++-- fc-lang/sv.orth | 4 ++-- fc-lang/sw.orth | 4 ++-- fc-lang/syr.orth | 4 ++-- fc-lang/ta.orth | 4 ++-- fc-lang/te.orth | 4 ++-- fc-lang/tg.orth | 4 ++-- fc-lang/th.orth | 4 ++-- fc-lang/ti_er.orth | 4 ++-- fc-lang/ti_et.orth | 4 ++-- fc-lang/tig.orth | 4 ++-- fc-lang/tn.orth | 4 ++-- fc-lang/to.orth | 4 ++-- fc-lang/tr.orth | 4 ++-- fc-lang/ts.orth | 4 ++-- fc-lang/tt.orth | 4 ++-- fc-lang/tw.orth | 4 ++-- fc-lang/tyv.orth | 4 ++-- fc-lang/ug.orth | 4 ++-- fc-lang/uk.orth | 4 ++-- fc-lang/ur.orth | 4 ++-- fc-lang/ve.orth | 4 ++-- fc-lang/vi.orth | 4 ++-- fc-lang/vo.orth | 4 ++-- fc-lang/vot.orth | 4 ++-- fc-lang/wa.orth | 4 ++-- fc-lang/wen.orth | 4 ++-- fc-lang/wo.orth | 4 ++-- fc-lang/xh.orth | 4 ++-- fc-lang/yap.orth | 4 ++-- fc-lang/yi.orth | 4 ++-- fc-lang/yo.orth | 4 ++-- fc-lang/zh_cn.orth | 4 ++-- fc-lang/zh_hk.orth | 4 ++-- fc-lang/zh_mo.orth | 4 ++-- fc-lang/zh_sg.orth | 4 ++-- fc-lang/zh_tw.orth | 4 ++-- fc-lang/zu.orth | 4 ++-- fc-list/Makefile.am | 4 ++-- fc-list/fc-list.c | 4 ++-- fc-match/Makefile.am | 4 ++-- fc-match/fc-match.c | 4 ++-- fc-pattern/Makefile.am | 4 ++-- fc-pattern/fc-pattern.c | 4 ++-- fc-query/Makefile.am | 4 ++-- fc-query/fc-query.c | 4 ++-- fc-scan/Makefile.am | 4 ++-- fc-scan/fc-scan.c | 4 ++-- fontconfig/fcfreetype.h | 4 ++-- fontconfig/fcprivate.h | 4 ++-- fontconfig/fontconfig.h | 4 ++-- src/Makefile.am | 4 ++-- src/fcatomic.c | 4 ++-- src/fcblanks.c | 4 ++-- src/fccache.c | 4 ++-- src/fccfg.c | 4 ++-- src/fccharset.c | 4 ++-- src/fcdbg.c | 4 ++-- src/fcdefault.c | 4 ++-- src/fcdir.c | 4 ++-- src/fcformat.c | 4 ++-- src/fcfreetype.c | 4 ++-- src/fcfs.c | 4 ++-- src/fcinit.c | 4 ++-- src/fcint.h | 4 ++-- src/fclang.c | 4 ++-- src/fclist.c | 4 ++-- src/fcmatch.c | 4 ++-- src/fcname.c | 4 ++-- src/fcpat.c | 4 ++-- src/fcstr.c | 4 ++-- src/fcxml.c | 4 ++-- 257 files changed, 516 insertions(+), 517 deletions(-) commit 1f5c675fedd42bda49375ca7a9d6f3f8b2cd97bb Author: Behdad Esfahbod Date: Wed Nov 10 15:27:10 2010 -0500 Add more copyright owners COPYING | 6 ++++++ 1 file changed, 6 insertions(+) commit 039b9fd090cf3fcd279eeb8c786070a94993a8ba Author: Jeremy Huddleston Date: Wed Nov 3 01:08:12 2010 -0700 fontconfig.pc.in: Add sysconfdir, localstatedir, and PACKAGE In the default case, cachedir and confdir will evaluate to something referencing these other variables (which wouldn't otherwise be defined in the pkg-config file. Fixes a regression introduced by 81b542b50f82f8a0ad9f38f7d913fe5433631166 Signed-off-by: Jeremy Huddleston Tested-by: Jon TURNEY fontconfig.pc.in | 3 +++ 1 file changed, 3 insertions(+) commit 81b542b50f82f8a0ad9f38f7d913fe5433631166 Author: Jeremy Huddleston Date: Wed Oct 6 11:21:29 2010 -0700 fontconfig.pc: Add variables for confdir and cachedir Signed-off-by: Jeremy Huddleston fontconfig.pc.in | 2 ++ 1 file changed, 2 insertions(+) commit caa4bec9459af0779d1d16ba66964593e5748e3c Author: Behdad Esfahbod Date: Tue Sep 21 13:18:05 2010 -0400 Bug 24729 - [ne_NP] Fix ortho file Exclude three characters (U+090C..090E) from Nepalese. fc-lang/ne.orth | 1 + 1 file changed, 1 insertion(+) commit 0a023b24daa683d9c0be4e2ef6d50040c1c52316 Author: Behdad Esfahbod Date: Tue Sep 21 13:14:55 2010 -0400 [fc-lang] Support excluding characters By prefixing a line by a hyphen/minus sign. Useful when including other orth files. fc-lang/fc-lang.c | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) commit 52960d05ebb8af34a302e3959978d2930a39fb39 Author: Behdad Esfahbod Date: Tue Sep 21 13:14:41 2010 -0400 Add new public API: FcCharSetDelChar() doc/fccharset.fncs | 11 +++++++++++ fontconfig/fontconfig.h | 3 +++ src/fccharset.c | 17 +++++++++++++++++ 3 files changed, 31 insertions(+) commit 9d8d0226d9ac5bc9956263a13454179eafc4ab82 Author: Behdad Esfahbod Date: Fri Sep 3 08:11:00 2010 -0400 Bug 29995 - fc-cat does not invoke FcFini() fc-cat/fc-cat.c | 1 + 1 file changed, 1 insertion(+) commit 25afea879d5b73c116e00c2c62b2a7ce9bcf803a Author: Behdad Esfahbod Date: Wed Aug 18 11:31:31 2010 -0400 Add comments src/fcformat.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit c2764d959c652f572bfefa00234448742bda2b08 Author: Behdad Esfahbod Date: Thu Aug 5 15:58:09 2010 -0400 Bug 29338 - fc-pattern.sgml, open para tag fc-pattern/fc-pattern.sgml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 78366844468c5fa785d05bb25be2d0023e60f5ee Author: Alan Coopersmith Date: Wed Jun 2 22:38:19 2010 -0400 Fix compiler warnings fc-lang/fc-lang.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit ba7b50ab3324887e1680a4a8961487706705c739 Author: Behdad Esfahbod Date: Tue Apr 20 23:18:00 2010 -0400 Add fc-pattern cmdline tool Makefile.am | 3 +- configure.in | 1 + fc-cache/fc-cache.sgml | 1 + fc-cat/fc-cat.sgml | 1 + fc-list/fc-list.sgml | 1 + fc-match/fc-match.sgml | 1 + fc-pattern/Makefile.am | 59 +++++++++++++ fc-pattern/fc-pattern.c | 195 +++++++++++++++++++++++++++++++++++++++++++ fc-pattern/fc-pattern.sgml | 204 +++++++++++++++++++++++++++++++++++++++++++++ fc-query/fc-query.sgml | 1 + fc-scan/fc-scan.sgml | 1 + 11 files changed, 467 insertions(+), 1 deletion(-) commit ac5a2336436dadac699bb579d3f6ca30225dbb28 Author: Behdad Esfahbod Date: Mon Apr 12 12:49:53 2010 -0400 Fix comment src/fcmatch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 594dcef0f30ca27e27b95a9174087e8c61327e5f Author: Behdad Esfahbod Date: Mon Apr 12 12:18:50 2010 -0400 Remove all training whitespaces src/fcatomic.c | 4 +- src/fccache.c | 66 ++++++++++++------------ src/fccfg.c | 118 +++++++++++++++++++++---------------------- src/fccharset.c | 150 +++++++++++++++++++++++++++---------------------------- src/fcdbg.c | 14 +++--- src/fcdefault.c | 2 +- src/fcdir.c | 14 +++--- src/fcfreetype.c | 88 ++++++++++++++++---------------- src/fcfs.c | 6 +-- src/fcftint.h | 2 +- src/fcinit.c | 6 +-- src/fcint.h | 42 ++++++++-------- src/fclang.c | 28 +++++------ src/fclist.c | 30 +++++------ src/fcmatch.c | 32 ++++++------ src/fcmatrix.c | 6 +-- src/fcname.c | 28 +++++------ src/fcpat.c | 70 +++++++++++++------------- src/fcstr.c | 74 +++++++++++++-------------- src/ftglue.c | 16 +++--- 20 files changed, 398 insertions(+), 398 deletions(-) commit d0d1f3904c9f6af9f39a5a085e454cde5ba9d44e Author: Behdad Esfahbod Date: Mon Apr 12 12:10:05 2010 -0400 More whitespace src/fcxml.c | 88 ++++++++++++++++++++++++++++++------------------------------- 1 file changed, 44 insertions(+), 44 deletions(-) commit 2b0f3f1128e479dd3d32022336c967655e6c4821 Author: Behdad Esfahbod Date: Mon Apr 12 11:52:09 2010 -0400 Whitespace src/fcxml.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 632612b810f1c8eb5b75ba1465d10cb31af0cbf0 Author: Behdad Esfahbod Date: Wed Apr 7 12:47:37 2010 -0400 Accept TT_PLATFORM_MICROSOFT, TT_MS_ID_SYMBOL_CS from name table The OT spec says: "When building a Unicode font for Windows, the platform ID should be 3 and the encoding ID should be 1. When building a symbol font for Windows, the platform ID should be 3 and the encoding ID should be 0." We were ignoring the SYMBOL_CS entry before. It's UTF-16/UCS-2 like the UNICODE_CS. Also, always use UTF-16BE instead of UCS-2BE. The conversion was doing UTF-16BE anyway. src/fcfreetype.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 300b495dc400df401afaacfa4e986092ea119865 Author: Behdad Esfahbod Date: Wed Mar 3 13:26:55 2010 -0500 Don't include unistd.h in fontconfig.h Bug 26783 patch: unistd.h not exist on ms windows fontconfig/fontconfig.h | 1 - 1 file changed, 1 deletion(-) commit 111e5b6d690970fce1abaf39e01d6d2498c9cfb3 Author: Behdad Esfahbod Date: Fri Feb 26 01:47:56 2010 -0500 Bug 25152 Don't sleep(2) if all caches were uptodate fc-cache/fc-cache.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) commit 3cd1e673a9b518784183029d5cc1d2adae0cb29a Author: Behdad Esfahbod Date: Thu Feb 25 17:11:14 2010 -0500 Bug 26157 Solaris/Sun C 5.8: compilation of 2.8.0 and 2.7.3 fails src/fcint.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2c93614ea0d0d1d895abe6c44add436c58bd99f8 Author: Behdad Esfahbod Date: Thu Feb 25 15:10:41 2010 -0500 Bug 18886 installation crashes if fontconfig already installed Run the uninstalled fc-cache, not the installed one. Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2e375b68946cafa62dce3abebdd35e20ecbb0b46 Author: Behdad Esfahbod Date: Sun Feb 14 20:27:22 2010 -0500 More doc typo fixes doc/fcformat.fncs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 77be30cb9fde6540337a590e5d90e59996e07adc Author: Behdad Esfahbod Date: Sun Feb 14 20:20:00 2010 -0500 Fix doc typo doc/fcformat.fncs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d6351325056a94e2db0c8c533c7d16eb5c278861 Author: Behdad Esfahbod Date: Tue Jan 26 12:45:09 2010 -0500 Add note about autogen.sh to INSTALL INSTALL | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 0dbbf9f20b8a65af8a8a05ada653d99117192622 Author: Behdad Esfahbod Date: Tue Jan 26 12:43:51 2010 -0500 Update INSTALL INSTALL | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit af4a82863f60dff79c4ce06a871b737899a3c9e3 Author: Behdad Esfahbod Date: Tue Dec 8 21:15:15 2009 -0500 Bug 25508 configure assumes bash > 2.0 is on system Remove dolt. With libtool2, there's not much need for dolt. acinclude.m4 | 137 ----------------------------------------------------------- configure.in | 1 - 2 files changed, 138 deletions(-) commit aabe0f9d7d427097ddfc69ceb6f48999fcd01f60 Author: Behdad Esfahbod Date: Mon Nov 30 16:09:55 2009 -0500 [doc] Fix typo fc-match/fc-match.sgml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 38bd85b83b2114d9a18da7b0ea73e0cdad5c7ee4 Author: Behdad Esfahbod Date: Fri Nov 20 18:44:04 2009 -0500 [fc-cache] Document -r argument in man page fc-cache/fc-cache.sgml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 4a3bef8ac3b91354c6c10b5f6af10ead9d4fe49a Author: Behdad Esfahbod Date: Wed Nov 18 18:45:19 2009 -0500 Bump version to 2.8.0 README | 32 ++++++++++++++++++++++++++++++-- configure.in | 2 +- fontconfig/fontconfig.h | 4 ++-- 3 files changed, 33 insertions(+), 5 deletions(-) commit 2e44cbe1b9bf466718167e9e05077743df36ab21 Author: Behdad Esfahbod Date: Wed Nov 18 18:45:06 2009 -0500 Bump libtool revision in preparation for release configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 91a73751dcd4fd2d2e4e8bcb98af53098c721224 Author: Tor Lillqvist Date: Wed Nov 18 21:56:16 2009 +0200 Improve zip "distribution" Don't put entries for directories in the zip file. Fetch manpages from correct place. fontconfig-zip.in | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) commit bb8fdae8ad6f0a857569b3e09cf21f1af6b4a41b Author: Tor Lillqvist Date: Wed Nov 18 21:54:39 2009 +0200 Use correct autoconf variable Use LIBT_CURRENT_MINUS_AGE instead of the undefined lt_current_minus_age for the name of the DLL when generating the MS style import library. src/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1845f3100d15927cc536bc3d38f140c139fb5614 Author: Behdad Esfahbod Date: Wed Nov 18 14:39:34 2009 -0500 [fc-arch] Rename architecture names to better reflect what they are We only care about three properties in the arch: - endianness - pointer size - for 32-bit archs, whether double is aligned on 4 or 8 bytes This leads to the following 6 archs (old name -> new name): x86 -> le32d4 mipsel -> le32d8 x86-64 -> le64 m68k -> be32d4 ppc -> be32d8 ppc64 -> be64 fc-arch/fcarch.tmpl.h | 67 ++++++++++++++++++++++++++------------------------- 1 file changed, 34 insertions(+), 33 deletions(-) commit d5ebf48e34e9235cf10e9f7beb49af74823c3fc6 Author: Behdad Esfahbod Date: Wed Nov 18 14:08:00 2009 -0500 [fc-arch] Beautify the arch template fc-arch/fc-arch.c | 10 +++++----- fc-arch/fcarch.tmpl.h | 42 ++++++++++++++++++++++++++++++++++-------- 2 files changed, 39 insertions(+), 13 deletions(-) commit d074706b507226427f5a4018e78fe120a01eb53d Author: Behdad Esfahbod Date: Wed Nov 18 09:40:11 2009 -0500 [fc-case] Update CaseFolding.txt to Unicode 5.2.0 fc-case/CaseFolding.txt | 116 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 112 insertions(+), 4 deletions(-) commit 13781ba00b0ded28319ff417a254c620231973f1 Author: Behdad Esfahbod Date: Wed Nov 18 09:36:23 2009 -0500 [fc-glyphname] Remove Adobe glyphlist It was unused. fc-glyphname/glyphlist.txt | 4291 -------------------------------------------- 1 file changed, 4291 deletions(-) commit d2fb683796f41a68edec53f26e524fd06725eef8 Author: Behdad Esfahbod Date: Wed Nov 18 09:35:40 2009 -0500 Clean up Makefile's a bit fc-arch/Makefile.am | 4 +--- fc-case/Makefile.am | 7 +++---- fc-glyphname/Makefile.am | 3 ++- fc-lang/Makefile.am | 2 +- src/Makefile.am | 12 +++++++++--- 5 files changed, 16 insertions(+), 12 deletions(-) commit 192927225c447a8eaba613838aff93f82dee41d0 Author: Behdad Esfahbod Date: Wed Nov 18 09:26:24 2009 -0500 [fc-glyphname] Rename internal arrays to prefix with _fc_ Although they were static, I was still surprised that gdb was seeing our variable "glyphs". Not helpful. fc-glyphname/fc-glyphname.c | 6 +++--- src/fcfreetype.c | 13 ++++++------- 2 files changed, 9 insertions(+), 10 deletions(-) commit 3e5e83e12e051d6ac734f08609c6c584b0f0b807 Author: Behdad Esfahbod Date: Wed Nov 18 09:26:01 2009 -0500 [src] Create fcglyphname.h automatically src/Makefile.am | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 040c98bcc40617ecbc9eb7e16b1714ebd256cfdc Author: Behdad Esfahbod Date: Wed Nov 18 09:25:42 2009 -0500 [fc-glyphname] Cleanup Makefile.am fc-glyphname/Makefile.am | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 77f4e60a32971a815b85f187712191724a00b856 Author: Behdad Esfahbod Date: Wed Nov 18 09:10:05 2009 -0500 Remove bogus comment Last night in between my dreams I also noticed that we support Unicode values up to 0x01000000 and not 0x00100000 which I thought before. This covers the entire Unicode range. src/fccharset.c | 1 - 1 file changed, 1 deletion(-) commit a90a3ad97a7cee10225190e13a576e55871b9441 Author: Behdad Esfahbod Date: Tue Nov 17 12:10:01 2009 -0500 Make sure fclang.h and fcarch.h are built src/Makefile.am | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit a3b2426819836ab2454c6a7bad27c382f4a245bf Author: Behdad Esfahbod Date: Mon Nov 16 18:29:26 2009 -0500 [lang] Fix serializing LangSet from older versions src/fclang.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 8480c6f86327877fce729ebb01b52bd7a40ddfc5 Author: Behdad Esfahbod Date: Mon Nov 16 17:38:40 2009 -0500 [arch] Try to ensure proper FcLangSet alignment in arch fc-arch/fc-arch.c | 5 +++-- fc-arch/fcarch.tmpl.h | 16 ++++++++-------- src/fclang.c | 2 +- 3 files changed, 12 insertions(+), 11 deletions(-) commit dffcb2a083bc5f959ed96dbdf0f365ebc0e710cc Author: Behdad Esfahbod Date: Mon Nov 16 17:00:50 2009 -0500 [xml] Remove unused code src/fcxml.c | 12 ------------ 1 file changed, 12 deletions(-) commit b2d910123008115813a5cd623389189a2d66880b Author: Behdad Esfahbod Date: Mon Nov 16 16:57:53 2009 -0500 [int] Remove more unused macros src/fcint.h | 4 ---- 1 file changed, 4 deletions(-) commit 247c4f3df21582260c4799bdbda2be1c13cc8901 Author: Behdad Esfahbod Date: Mon Nov 16 15:48:20 2009 -0500 Enable automake silent rules configure.in | 1 + 1 file changed, 1 insertion(+) commit 963820fcbfdb537fd956f8863f8793cf22093c5d Author: Behdad Esfahbod Date: Mon Nov 16 15:46:46 2009 -0500 [int] Remove fc_value_* macros that did nothing other than renaming src/fcint.h | 6 ------ src/fcmatch.c | 8 ++++---- src/fcpat.c | 12 ++++++------ 3 files changed, 10 insertions(+), 16 deletions(-) commit 888f9427ae84195104855d2bb2fbb6d44067a998 Author: Behdad Esfahbod Date: Mon Nov 16 15:43:08 2009 -0500 [int] Remove fc_storage_type() in favor of direct access to v->type src/fcint.h | 1 - src/fcmatch.c | 2 +- src/fcpat.c | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) commit 486fa46893d070485738de6e2c0d418650662d63 Author: Behdad Esfahbod Date: Mon Nov 16 15:41:58 2009 -0500 Remove unused macros src/fcint.h | 5 ----- 1 file changed, 5 deletions(-) commit 1f4e6fecde22fd4ce8336b01a5c32c533fcb8bac Author: Behdad Esfahbod Date: Mon Nov 16 15:39:16 2009 -0500 Bump cache version up from 2 to 3 and fix FcLangSet caching/crash Protect cache against future expansions of FcLangSet (adding new orth files). Previously, doing so could change the size of that struct. Indeed, that happened between 2.6.0 and 2.7.3, causing crashes. Unfortunately, sizeof(FcLangSet) was not checked in fcarch.c. This changes FcLangSet code to be able to cope with struct size changes. And change cache format, hence bumping from 2 to 3. fontconfig/fontconfig.h | 2 +- src/fcint.h | 2 +- src/fclang.c | 67 ++++++++++++++++++++++++++++++++++++++----------- 3 files changed, 54 insertions(+), 17 deletions(-) commit 6b1fc678ca59df3f3f1ffac0e509cf485c9df0c0 Author: Behdad Esfahbod Date: Mon Nov 16 16:57:10 2009 -0500 [int] Define MIN/MAX/ABS macros src/fcfreetype.c | 3 --- src/fcint.h | 4 ++++ 2 files changed, 4 insertions(+), 3 deletions(-) commit b393846860a390ebe35b19320b5eaf9272084042 Author: Behdad Esfahbod Date: Mon Nov 16 15:17:56 2009 -0500 [fc-arch] Add FcAlign to arch signature fc-arch/fc-arch.c | 5 +++-- fc-arch/fcarch.tmpl.h | 16 ++++++++-------- 2 files changed, 11 insertions(+), 10 deletions(-) commit 8009229bc5cd9b540ff56a47ddc32ccada2679b0 Author: Behdad Esfahbod Date: Mon Nov 16 15:12:52 2009 -0500 Move FcAlign to fcint.h src/fcint.h | 8 ++++++++ src/fcserialize.c | 8 -------- 2 files changed, 8 insertions(+), 8 deletions(-) commit 36ae1d9563cff4966b293f816cf9eb25c8ebb857 Author: Behdad Esfahbod Date: Mon Nov 9 13:17:17 2009 -0500 Clarify default confdir and cachedir better. Also remove --with-docdir. It can be set by setting docdir variable. configure.in | 19 ++----------------- doc/Makefile.am | 2 -- 2 files changed, 2 insertions(+), 19 deletions(-) commit b322eb4d7a90778dc9f08c73036836deba7e463e Author: Behdad Esfahbod Date: Tue Sep 8 11:45:26 2009 -0400 Bump version to 2.7.3 README | 14 ++++++++++++-- configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 3 files changed, 14 insertions(+), 4 deletions(-) commit afc845d930877ac62f6d5a5f50ea87b5182d0a4a Author: Behdad Esfahbod Date: Tue Sep 8 11:44:59 2009 -0400 Bump libtool version in preparation for release configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5e544b32d8dc98737c7a268a6a5f877207284e9a Author: Behdad Esfahbod Date: Sun Sep 6 22:10:22 2009 -0400 Use default config in FcFileScan() and FcDirScan() Before a NULL config was passed down adn essentially FcFileScan was equivalent to FcFreeTypeQuery. Now fc-scan tool correctly applies the configuration to the scanned patterns. src/fcdir.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 25436fd08fa6d0825a2f7c7b5d51e34873a05187 Author: Roozbeh Pournader Date: Wed Sep 2 20:03:42 2009 -0700 Updated Arabic, Persian, and Urdu orthographies - Arabic (ar), Persian (fa), and Urdu (ur) now use generic forms (bug #23004) - Persian (fa) orthography updated to latest standards and orthographies - Persian dialects Dari/Eastern Farsi (prs) and Western Farsi (pes) added fc-lang/ar.orth | 81 +++++++++++--------------------------------------------- fc-lang/fa.orth | 80 ++++++++++++++++++++++++++++++++++--------------------- fc-lang/pes.orth | 26 ++++++++++++++++++ fc-lang/prs.orth | 29 ++++++++++++++++++++ fc-lang/ur.orth | 77 +++++++++++++++++++++++++++-------------------------- 5 files changed, 161 insertions(+), 132 deletions(-) commit d9d8b8826402ca75e882a427392bc8209ae8ff1a Author: Roozbeh Pournader Date: Wed Sep 2 18:54:24 2009 -0700 Correct Ewe (ee) orthography to use U+025B (bug #20711) fc-lang/ee.orth | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e52fdbd2bc1b9589ca0adc4b0c143034ff60dd18 Author: Behdad Esfahbod Date: Mon Aug 31 17:32:36 2009 -0400 Bump version to 2.7.2 README | 19 +++++++++++++++++-- configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 3 files changed, 19 insertions(+), 4 deletions(-) commit a74cfb63cb6af3c357b9c33d9f28b9cea5ff3e72 Author: Behdad Esfahbod Date: Mon Aug 31 17:32:13 2009 -0400 Bump libtool version for release configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c5f0a65b36bc863d67bbf1f334262c35445ce610 Author: Behdad Esfahbod Date: Tue Aug 25 20:40:30 2009 -0400 Revert "Fix FcNameUnparseLangSet()" and redo it This reverts commit 5c6d1ff23bda4386984a1d6e4c024958f8f5547c and fixes that bug using the new reverse-map I added in the previous commit. src/fclang.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) commit d354a321ee51f0bb70a39faeed541d1a90477d7d Author: Behdad Esfahbod Date: Tue Aug 25 20:39:20 2009 -0400 Bug 23419 - "contains" expression seems not working on the fontconfig rule Fix bug in FcLangSetContains(), similar to 5c6d1ff23bda4386984a1d6e4c024958f8f5547c fc-lang/fc-lang.c | 20 +++++++++++++++++--- src/fclang.c | 4 ++-- 2 files changed, 19 insertions(+), 5 deletions(-) commit f33a23133ecbcc981745051f7c34d96b33b57447 Author: Behdad Esfahbod Date: Fri Aug 21 13:41:41 2009 -0400 Bug 22037 - No Fonts installed on a default install on Windows Server 2003 Make it easy to install on older Windows src/fcxml.c | 4 ++++ 1 file changed, 4 insertions(+) commit 8b1ceef0b7f41703775c163d6ac595a5407e9159 Author: Tor Lillqvist Date: Fri Aug 14 00:16:18 2009 +0300 Use multi-byte codepage aware string function on Windows The East Asian double-byte codepages have characters with backslash as the second byte, so we must use _mbsrchr() instead of strrchr() when looking at pathnames in the system codepage. src/fcxml.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit d15678127aeea96c9c8254a171c2f0af0bd7d140 Author: Tor Lillqvist Date: Fri Aug 14 00:08:17 2009 +0300 Fix heap corruption on Windows in FcEndElement() Must not call FcStrFree() on a value returned by FcStrBufDoneStatic(). In the Windows code don't bother with dynamic allocation, just use a local buffer. src/fcxml.c | 43 +++++++++++-------------------------------- 1 file changed, 11 insertions(+), 32 deletions(-) commit a1b6e34a9a17a4a675bdc993aa465b92d7122376 Author: Tor Lillqvist Date: Fri Aug 14 00:02:59 2009 +0300 Fix MinGW compilation Need to define _WIN32_WINNT as 0x0500 to get declaration for GetSystemWindowsDirectory(). src/fcxml.c | 1 + 1 file changed, 1 insertion(+) commit 161620108bbb4e70f2817481e4d5bc26772fe67e Author: Behdad Esfahbod Date: Tue Jul 28 14:24:21 2009 -0400 [ja.orth] Comment out FULLWIDTH YEN SIGN (#22942) fc-lang/ja.orth | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7c12181f7a75a434e2139f4bee794046258342cf Author: Behdad Esfahbod Date: Tue Jul 28 14:23:10 2009 -0400 Improve charset printing src/fcdbg.c | 4 ++-- src/fclang.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit d2c8ac373e9ac45df66627cfc42679636d017f6e Author: Behdad Esfahbod Date: Mon Jul 27 17:53:26 2009 -0400 Bump version to 2.7.1 README | 27 +++++++++++++++++++++++++-- configure.in | 4 ++-- fontconfig/fontconfig.h | 2 +- 3 files changed, 28 insertions(+), 5 deletions(-) commit 16630692ec590bd70f4e426125e358251e05435d Author: Behdad Esfahbod Date: Mon Jul 27 17:51:17 2009 -0400 Update .gitignore .gitignore | 1 + 1 file changed, 1 insertion(+) commit 50d937b0e110ee21d9861b8fb973d62534db98ae Author: Behdad Esfahbod Date: Mon Jul 27 17:48:29 2009 -0400 Bump libtool versions that 2.7.0 (I forgot to do back then) configure.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 273e22c71f78281ade1c5c30a25ef10d214d7ea6 Author: Behdad Esfahbod Date: Mon Jul 27 15:07:12 2009 -0400 Hardcode /etc/fonts instead of @CONFDIR@ in docs (#22911) We distribute the docs, so it makes little sense to distribute with @CONFDIR@ replaced. Until we find a better solution, I've hardcoded /etc/fonts now. doc/confdir.sgml.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 21384990ffd045cc0f8379a325612aba6d810359 Author: Behdad Esfahbod Date: Mon Jul 27 14:50:44 2009 -0400 [doc] Add ~/fonts.conf.d to user docs doc/fontconfig-user.sgml | 7 +++++++ 1 file changed, 7 insertions(+) commit 7575c666619c58df00659d4e70b01104b8e114a5 Author: Behdad Esfahbod Date: Sat Jul 25 16:38:52 2009 -0400 TT_MS_ID_UCS_4 is really UTF-16BE, not UTF-32 Reported by Yuriy Kaminskiy. src/fcfreetype.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 558581c434abf0d96c46cf3bb1454be6806e1ffc Author: Behdad Esfahbod Date: Fri Jul 24 14:59:07 2009 -0400 Fix doc syntax (#22902) fc-match/fc-match.sgml | 3 ++- fc-scan/fc-scan.sgml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) commit 5c6d1ff23bda4386984a1d6e4c024958f8f5547c Author: Behdad Esfahbod Date: Wed Jul 22 19:25:24 2009 -0400 Fix FcNameUnparseLangSet() Was broken since ffd6668b469508177c4baf7745ae42aee5b00322 src/fclang.c | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) commit d9741a7f1a73f718ab20b0582fff8aebeba01077 Author: Behdad Esfahbod Date: Wed Jul 22 19:01:06 2009 -0400 Remove unused macros src/fcmatch.c | 33 ++------------------------------- 1 file changed, 2 insertions(+), 31 deletions(-) commit 792ce655cb06c678d4a4ff091866fd0531b141fb Author: Karl Tomlinson Date: Wed Jul 22 08:39:23 2009 -0400 Don't change the order of names unnecessarily (#20128) so that TT_NAME_ID_PREFERRED_FAMILY is consistently preferred over TT_NAME_ID_FONT_FAMILY when both are specified for the default language. src/fclist.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 327fc9d183ba193c307d0ecaec8ad1f4e6ca1330 Author: Behdad Esfahbod Date: Tue Jul 21 15:41:47 2009 -0400 Use GetSystemWindowsDirectory() instead of GetWindowsDirectory() (#22037) src/fcxml.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 86dd857447f69cf89fd47259055b150f62519c17 Author: Behdad Esfahbod Date: Tue Jul 21 15:39:58 2009 -0400 Improve libtool version parsing (#22122) autogen.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 16e55c7c85fc5771349172d6eb989dddd48c5c25 Author: Behdad Esfahbod Date: Mon Jul 20 16:30:12 2009 -0400 Fix leak with string VStack objects src/fcxml.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c0ffd7733a735bf2e10834925c63f0039c408649 Author: Behdad Esfahbod Date: Fri Jul 10 18:09:42 2009 +0100 Add Inconsolata to monospace config (#22710) conf.d/45-latin.conf | 1 + conf.d/60-latin.conf | 1 + 2 files changed, 2 insertions(+) commit 55e202a62d95e25cf2c4897afd66eab5711195c3 Author: Behdad Esfahbod Date: Sun Jun 28 14:14:46 2009 -0400 Remove unused ftglue code src/fcfreetype.c | 66 ++++++++++++++++++++++++-------------------------------- src/ftglue.c | 62 ++-------------------------------------------------- src/ftglue.h | 33 ---------------------------- 3 files changed, 30 insertions(+), 131 deletions(-) commit 52742ff86b60b1d244c1e87611aff5ceee46e596 Author: Behdad Esfahbod Date: Sun Jun 28 13:49:09 2009 -0400 Replace spaces with tabs in conf files conf.d/25-unhint-nonlatin.conf | 32 +++---- conf.d/30-metric-aliases.conf | 48 +++++------ conf.d/30-urw-aliases.conf | 36 ++++---- conf.d/65-fonts-persian.conf | 184 ++++++++++++++++++++--------------------- conf.d/90-synthetic.conf | 8 +- 5 files changed, 154 insertions(+), 154 deletions(-) commit 57cf838cccda12dd171d3834b3e9b1275467d9e2 Author: Behdad Esfahbod Date: Sun Jun 28 13:46:41 2009 -0400 Fix win32 build src/fcint.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 76374f0edef04e21859122dd8a2026b64fd2b273 Author: Behdad Esfahbod Date: Wed Jun 24 15:19:13 2009 -0400 git-tag -s again new-version.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0f40912599a4be1b961c091733ed86d08a4e14e1 Author: Behdad Esfahbod Date: Wed Jun 24 15:04:11 2009 -0400 Bump version to 2.7.0 README | 222 +++++++++++++++++++++++++++++++++++++++++++++++- configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 3 files changed, 222 insertions(+), 4 deletions(-) commit 3734d6a5a2c5326bf1cd8b7cc7f3f07fe6943aa5 Author: Behdad Esfahbod Date: Wed Jun 24 15:03:32 2009 -0400 Remove keithp's GPG key id new-version.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d07059b7a3f8044904d884818d5e03596e7cc1a2 Author: Behdad Esfahbod Date: Wed Jun 24 14:43:32 2009 -0400 Fix distcheck Makefile.am | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit b65fa0c3113bd1e1cec38d05f8c4f45f78e3e044 Author: Behdad Esfahbod Date: Thu Jun 11 07:08:10 2009 -0400 Bug 22154 -- fontconfig.pc doesn't include libxml2 link flags fontconfig.pc.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3164ac76229d9817120015401c1f532934d0a3e2 Author: Behdad Esfahbod Date: Fri Jun 5 22:59:06 2009 -0400 [xml] Intern more strings src/fcxml.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 390c05e64a3716f6ea6fd81cf3ab63439051fbaa Author: Behdad Esfahbod Date: Fri Jun 5 22:32:31 2009 -0400 [xml] Allocate FcExpr's in a pool in FcConfig Reduces number of malloc's for FcExprs from hundreds into single digits. src/fccfg.c | 32 ++++++++++++++++++++++++++ src/fcint.h | 14 ++++++++++++ src/fcxml.c | 75 ++++++++++++++++++++++++++----------------------------------- 3 files changed, 78 insertions(+), 43 deletions(-) commit 398d436441d741d6f8edcc25ca01aa9715c0731c Author: Behdad Esfahbod Date: Fri Jun 5 21:37:01 2009 -0400 [xml] Mark more symbols static src/fcint.h | 30 ------------------------------ src/fcxml.c | 22 ++++++++++++---------- 2 files changed, 12 insertions(+), 40 deletions(-) commit a96ecbfa20fbc66fad3847b1d2bc6fb3cd712c91 Author: Behdad Esfahbod Date: Fri Jun 5 18:40:46 2009 -0400 [xml] Centralize FcExpr allocation To be improved, using a central pool. src/fcxml.c | 46 ++++++++++++++++++++-------------------------- 1 file changed, 20 insertions(+), 26 deletions(-) commit 5aebb3e299d877c4a66f409a7d448b2ac4e94be0 Author: Behdad Esfahbod Date: Fri Jun 5 18:27:47 2009 -0400 Remove unused prototypes and function src/fcint.h | 16 ++-------------- src/fcxml.c | 6 ------ 2 files changed, 2 insertions(+), 20 deletions(-) commit 900723f3d2396cfb606e5eceb8df0b71c4ffc0dd Author: Behdad Esfahbod Date: Fri Jun 5 18:16:38 2009 -0400 [charset] Grow internal FcCharset arrays exponentially src/fccharset.c | 65 ++++++++++++++++++++++++++++++++------------------------- 1 file changed, 36 insertions(+), 29 deletions(-) commit cce69b07efd82056c8eb855ef7ac7e02c94439da Author: Behdad Esfahbod Date: Fri Jun 5 17:15:53 2009 -0400 Always set *changed in FcCharsetMerge src/fccharset.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 86bdf4598fb46f7f2a36151016a5d318da073d60 Author: Behdad Esfahbod Date: Fri Jun 5 16:57:35 2009 -0400 Add XXX note about Unicode Plane 16 src/fccharset.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit efe5eae26b2443363b1000b3197d1731a40f8af9 Author: Behdad Esfahbod Date: Fri Jun 5 16:49:07 2009 -0400 Simplify FcValueSave() semantics src/fccfg.c | 3 ++- src/fcpat.c | 12 ++---------- 2 files changed, 4 insertions(+), 11 deletions(-) commit 8ea654b2aa6b4e97b369e299325da49807559511 Author: Behdad Esfahbod Date: Mon Jun 1 21:14:56 2009 -0400 Use/prefer WWS family/style (name table id 21/22) src/fcfreetype.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit 76845a40c58b092a9b1812830dc98b6f32e13da6 Author: Behdad Esfahbod Date: Mon May 25 20:26:56 2009 -0400 Mark matchers array const (#21935) src/fcmatch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aa82a4f81d4d5e547c84266e66274d55e3843746 Author: Roozbeh Pournader Date: Thu May 7 14:31:11 2009 -0700 Reorganize Panjabi/Punjabi and Lahnda orthographies (bug #19890) The correct ISO 639 code for Pakistani/Western Panjabi seems to be 'lah', not 'pa'. We are keeping 'pa_pk.orth' for compatiblity with glibc. Signed-off-by: Behdad Esfahbod fc-lang/Makefile.am | 5 +++-- fc-lang/lah.orth | 35 +++++++++++++++++++++++++++++++++++ fc-lang/pa.orth | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ fc-lang/pa_in.orth | 46 ---------------------------------------------- fc-lang/pa_pk.orth | 7 ++++--- 5 files changed, 95 insertions(+), 51 deletions(-) commit 58aa0c8ee83f7bbd232401583106387517d216a9 Author: Behdad Esfahbod Date: Thu Apr 9 13:31:18 2009 -0400 Detect TrueType Collections by checking the font data header Instead of checking for "face->num_faces >1". (GNOME bug #577952) src/ftglue.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) commit 1dd95fcb8bb9b5feeabee0dfe334448733f5cb4c Author: Serge van den Boom Date: Sun Apr 5 19:00:18 2009 -0400 Correctly handle mmap() failure (#21062) src/fccache.c | 2 ++ 1 file changed, 2 insertions(+) commit 35c51811515ab316c7279bd779f6685f2aaf7e81 Author: Behdad Esfahbod Date: Wed Mar 25 23:40:40 2009 -0400 [fc-cache] Remove obsolete sentence from man page fc-cache/fc-cache.sgml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit ffd6668b469508177c4baf7745ae42aee5b00322 Author: Behdad Esfahbod Date: Wed Mar 18 19:28:52 2009 -0400 [fc-lang] Make LangSet representation in the cache files stable Fontconfig assigns an index number to each language it knows about. The index is used to index a bit in FcLangSet language map. The bit map is stored in the cache. Previously fc-lang simply sorted the list of languages and assigned them an index starting from zero. Net effect is that whenever new orth files were added, all the FcLangSet info in the cache files would become invalid. This was causing weird bugs like this one: https://bugzilla.redhat.com/show_bug.cgi?id=490888 With this commit we fix the index assigned to each language. The index will be based on the order the orth files are passed to fc-lang. As a result all orth files are explicitly listed in Makefile.am now, and new additions should be made to the end of the list. The list is made to reflect the sorted list of orthographies from 2.6.0 released followed by new additions since. This fixes the stability problem. Needless to say, recreating caches is necessary before any new orthography is recognized in existing fonts, but at least the existing caches are still valid and don't cause bugs like the above. configure.in | 7 -- fc-lang/Makefile.am | 248 +++++++++++++++++++++++++++++++++++++++++++++++++++- fc-lang/fc-lang.c | 49 +++++++---- src/fclang.c | 4 +- 4 files changed, 282 insertions(+), 26 deletions(-) commit 4d13536db49bdfba97f84f702325d1a99796c06b Author: Behdad Esfahbod Date: Wed Mar 18 18:50:14 2009 -0400 [fcstr] Remove unused variable src/fcstr.c | 2 -- 1 file changed, 2 deletions(-) commit bb36e67685dc4139fc4199c57c9d74d97f7923c8 Author: Behdad Esfahbod Date: Wed Mar 18 18:43:09 2009 -0400 [fc-lang] Fix bug in country map generation Previously the county map code was using an uninitialized variable and hence was totally failing to populate same-lang-different-territory map. fc-lang/fc-lang.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0f11354877323edc2145f687f9127d2de83c5b3b Author: Behdad Esfahbod Date: Tue Mar 17 12:52:48 2009 -0400 Revert "[conf] Disable hinting when emboldening (#19904)" (#20599) This reverts commit 10609af4aa4030a15c19573198462fa002d2ef13. Apparently disabling hinting can cause worse rendering with certain fonts. This is better handled on a per font basis. conf.d/90-synthetic.conf | 11 ----------- 1 file changed, 11 deletions(-) commit 7042e236495399aab4eaf268232177d4b1680a12 Author: Behdad Esfahbod Date: Mon Mar 16 17:59:50 2009 -0400 [Makefile.am] Don't clean ChangeLog in distclean Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit caeea376da54a6337bfcb1bb20f50c8c2302458f Author: Behdad Esfahbod Date: Fri Mar 13 17:26:21 2009 -0400 Document FcPatternFormat() format doc/Makefile.am | 2 + doc/fcformat.fncs | 301 ++++++++++++++++++++++++++++++++++++++++++++++ doc/fcpattern.fncs | 20 --- doc/fontconfig-devel.sgml | 2 + src/fcformat.c | 94 ++++++++------- 5 files changed, 353 insertions(+), 66 deletions(-) commit f6d83439890c165e5a7f6a8a746ffdb189dbbd0d Author: Behdad Esfahbod Date: Fri Mar 13 12:11:13 2009 -0400 [fcformat] Fix default-value handling src/fcformat.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) commit 3074a73b418b40135d4a4f4e0713fcf987d34795 Author: Behdad Esfahbod Date: Thu Mar 12 16:00:08 2009 -0400 Replace 'KEITH PACKARD' with 'THE AUTHOR(S)' in license text in all files COPYING | 4 ++-- Makefile.am | 4 ++-- conf.d/65-fonts-persian.conf | 2 +- conf.d/Makefile.am | 4 ++-- config/Makedefs.in | 4 ++-- configure.in | 4 ++-- doc/Makefile.am | 4 ++-- doc/confdir.sgml.in | 4 ++-- doc/edit-sgml.c | 4 ++-- doc/fcatomic.fncs | 4 ++-- doc/fcblanks.fncs | 4 ++-- doc/fccache.fncs | 4 ++-- doc/fccharset.fncs | 4 ++-- doc/fcconfig.fncs | 4 ++-- doc/fcconstant.fncs | 4 ++-- doc/fcfile.fncs | 4 ++-- doc/fcfontset.fncs | 4 ++-- doc/fcfreetype.fncs | 4 ++-- doc/fcinit.fncs | 4 ++-- doc/fcmatrix.fncs | 4 ++-- doc/fcobjectset.fncs | 4 ++-- doc/fcobjecttype.fncs | 4 ++-- doc/fcpattern.fncs | 4 ++-- doc/fcstring.fncs | 4 ++-- doc/fcstrset.fncs | 4 ++-- doc/fcvalue.fncs | 4 ++-- doc/fontconfig-devel.sgml | 8 ++++---- doc/fontconfig-user.sgml | 4 ++-- doc/func.sgml | 4 ++-- doc/version.sgml.in | 4 ++-- fc-arch/Makefile.am | 4 ++-- fc-arch/fcarch.tmpl.h | 4 ++-- fc-cache/Makefile.am | 4 ++-- fc-cache/fc-cache.c | 4 ++-- fc-case/Makefile.am | 4 ++-- fc-case/fc-case.c | 4 ++-- fc-case/fccase.tmpl.h | 4 ++-- fc-cat/Makefile.am | 4 ++-- fc-cat/fc-cat.c | 4 ++-- fc-glyphname/Makefile.am | 4 ++-- fc-glyphname/fc-glyphname.c | 4 ++-- fc-glyphname/fcglyphname.tmpl.h | 4 ++-- fc-lang/Makefile.am | 4 ++-- fc-lang/aa.orth | 4 ++-- fc-lang/ab.orth | 4 ++-- fc-lang/af.orth | 4 ++-- fc-lang/am.orth | 4 ++-- fc-lang/ar.orth | 4 ++-- fc-lang/ast.orth | 4 ++-- fc-lang/av.orth | 4 ++-- fc-lang/ay.orth | 4 ++-- fc-lang/az_ir.orth | 4 ++-- fc-lang/ba.orth | 4 ++-- fc-lang/be.orth | 4 ++-- fc-lang/bg.orth | 4 ++-- fc-lang/bh.orth | 4 ++-- fc-lang/bho.orth | 4 ++-- fc-lang/bi.orth | 4 ++-- fc-lang/bin.orth | 4 ++-- fc-lang/bm.orth | 4 ++-- fc-lang/bo.orth | 4 ++-- fc-lang/br.orth | 4 ++-- fc-lang/bs.orth | 4 ++-- fc-lang/bua.orth | 4 ++-- fc-lang/ca.orth | 4 ++-- fc-lang/ce.orth | 4 ++-- fc-lang/ch.orth | 4 ++-- fc-lang/chm.orth | 4 ++-- fc-lang/chr.orth | 4 ++-- fc-lang/co.orth | 4 ++-- fc-lang/cs.orth | 4 ++-- fc-lang/cu.orth | 4 ++-- fc-lang/cv.orth | 4 ++-- fc-lang/cy.orth | 4 ++-- fc-lang/da.orth | 4 ++-- fc-lang/de.orth | 4 ++-- fc-lang/dz.orth | 4 ++-- fc-lang/el.orth | 4 ++-- fc-lang/en.orth | 4 ++-- fc-lang/eo.orth | 4 ++-- fc-lang/es.orth | 4 ++-- fc-lang/et.orth | 4 ++-- fc-lang/eu.orth | 4 ++-- fc-lang/fa.orth | 4 ++-- fc-lang/fc-lang.c | 4 ++-- fc-lang/fc-lang.man | 4 ++-- fc-lang/fclang.tmpl.h | 4 ++-- fc-lang/ff.orth | 4 ++-- fc-lang/fi.orth | 4 ++-- fc-lang/fj.orth | 4 ++-- fc-lang/fo.orth | 4 ++-- fc-lang/fr.orth | 4 ++-- fc-lang/fur.orth | 4 ++-- fc-lang/fy.orth | 4 ++-- fc-lang/ga.orth | 4 ++-- fc-lang/gd.orth | 4 ++-- fc-lang/gez.orth | 4 ++-- fc-lang/gl.orth | 4 ++-- fc-lang/gn.orth | 4 ++-- fc-lang/gu.orth | 4 ++-- fc-lang/gv.orth | 4 ++-- fc-lang/ha.orth | 4 ++-- fc-lang/haw.orth | 4 ++-- fc-lang/he.orth | 4 ++-- fc-lang/hi.orth | 4 ++-- fc-lang/ho.orth | 4 ++-- fc-lang/hr.orth | 4 ++-- fc-lang/hu.orth | 4 ++-- fc-lang/hy.orth | 4 ++-- fc-lang/ia.orth | 4 ++-- fc-lang/id.orth | 4 ++-- fc-lang/ie.orth | 4 ++-- fc-lang/ig.orth | 4 ++-- fc-lang/ik.orth | 4 ++-- fc-lang/io.orth | 4 ++-- fc-lang/is.orth | 4 ++-- fc-lang/it.orth | 4 ++-- fc-lang/iu.orth | 4 ++-- fc-lang/ja.orth | 4 ++-- fc-lang/ka.orth | 4 ++-- fc-lang/kaa.orth | 4 ++-- fc-lang/ki.orth | 4 ++-- fc-lang/kk.orth | 4 ++-- fc-lang/kl.orth | 4 ++-- fc-lang/kn.orth | 4 ++-- fc-lang/ko.orth | 4 ++-- fc-lang/kok.orth | 4 ++-- fc-lang/ku_am.orth | 4 ++-- fc-lang/ku_ir.orth | 4 ++-- fc-lang/kum.orth | 4 ++-- fc-lang/kv.orth | 4 ++-- fc-lang/kw.orth | 4 ++-- fc-lang/ky.orth | 4 ++-- fc-lang/la.orth | 4 ++-- fc-lang/lb.orth | 4 ++-- fc-lang/lez.orth | 4 ++-- fc-lang/ln.orth | 4 ++-- fc-lang/lo.orth | 4 ++-- fc-lang/lt.orth | 4 ++-- fc-lang/lv.orth | 4 ++-- fc-lang/mai.orth | 4 ++-- fc-lang/mg.orth | 4 ++-- fc-lang/mh.orth | 4 ++-- fc-lang/mi.orth | 4 ++-- fc-lang/mk.orth | 4 ++-- fc-lang/ml.orth | 4 ++-- fc-lang/mn_cn.orth | 4 ++-- fc-lang/mo.orth | 4 ++-- fc-lang/mr.orth | 4 ++-- fc-lang/mt.orth | 4 ++-- fc-lang/my.orth | 4 ++-- fc-lang/nb.orth | 4 ++-- fc-lang/nds.orth | 4 ++-- fc-lang/ne.orth | 4 ++-- fc-lang/nl.orth | 4 ++-- fc-lang/nn.orth | 4 ++-- fc-lang/no.orth | 4 ++-- fc-lang/ny.orth | 4 ++-- fc-lang/oc.orth | 4 ++-- fc-lang/om.orth | 4 ++-- fc-lang/or.orth | 4 ++-- fc-lang/os.orth | 4 ++-- fc-lang/pa_in.orth | 2 +- fc-lang/pl.orth | 4 ++-- fc-lang/ps_af.orth | 4 ++-- fc-lang/ps_pk.orth | 4 ++-- fc-lang/pt.orth | 4 ++-- fc-lang/rm.orth | 4 ++-- fc-lang/ro.orth | 4 ++-- fc-lang/ru.orth | 4 ++-- fc-lang/sa.orth | 4 ++-- fc-lang/sah.orth | 4 ++-- fc-lang/sco.orth | 4 ++-- fc-lang/se.orth | 4 ++-- fc-lang/sel.orth | 4 ++-- fc-lang/sk.orth | 4 ++-- fc-lang/sl.orth | 4 ++-- fc-lang/sm.orth | 4 ++-- fc-lang/sma.orth | 4 ++-- fc-lang/smj.orth | 4 ++-- fc-lang/smn.orth | 4 ++-- fc-lang/sms.orth | 4 ++-- fc-lang/so.orth | 4 ++-- fc-lang/sq.orth | 4 ++-- fc-lang/sr.orth | 4 ++-- fc-lang/sv.orth | 4 ++-- fc-lang/sw.orth | 4 ++-- fc-lang/syr.orth | 4 ++-- fc-lang/ta.orth | 4 ++-- fc-lang/te.orth | 4 ++-- fc-lang/tg.orth | 4 ++-- fc-lang/th.orth | 4 ++-- fc-lang/ti_er.orth | 4 ++-- fc-lang/ti_et.orth | 4 ++-- fc-lang/tig.orth | 4 ++-- fc-lang/tn.orth | 4 ++-- fc-lang/to.orth | 4 ++-- fc-lang/tr.orth | 4 ++-- fc-lang/ts.orth | 4 ++-- fc-lang/tt.orth | 4 ++-- fc-lang/tw.orth | 4 ++-- fc-lang/tyv.orth | 4 ++-- fc-lang/ug.orth | 4 ++-- fc-lang/uk.orth | 4 ++-- fc-lang/ur.orth | 4 ++-- fc-lang/ve.orth | 4 ++-- fc-lang/vi.orth | 4 ++-- fc-lang/vo.orth | 4 ++-- fc-lang/vot.orth | 4 ++-- fc-lang/wa.orth | 4 ++-- fc-lang/wen.orth | 4 ++-- fc-lang/wo.orth | 4 ++-- fc-lang/xh.orth | 4 ++-- fc-lang/yap.orth | 4 ++-- fc-lang/yi.orth | 4 ++-- fc-lang/yo.orth | 4 ++-- fc-lang/zh_cn.orth | 4 ++-- fc-lang/zh_hk.orth | 4 ++-- fc-lang/zh_mo.orth | 4 ++-- fc-lang/zh_sg.orth | 4 ++-- fc-lang/zh_tw.orth | 4 ++-- fc-lang/zu.orth | 4 ++-- fc-list/Makefile.am | 4 ++-- fc-list/fc-list.c | 4 ++-- fc-match/Makefile.am | 4 ++-- fc-match/fc-match.c | 4 ++-- fc-query/Makefile.am | 4 ++-- fc-query/fc-query.c | 4 ++-- fc-scan/Makefile.am | 4 ++-- fc-scan/fc-scan.c | 4 ++-- fontconfig/fcfreetype.h | 4 ++-- fontconfig/fcprivate.h | 4 ++-- fontconfig/fontconfig.h | 4 ++-- src/Makefile.am | 4 ++-- src/fcatomic.c | 4 ++-- src/fcblanks.c | 4 ++-- src/fccache.c | 4 ++-- src/fccfg.c | 4 ++-- src/fccharset.c | 4 ++-- src/fcdbg.c | 4 ++-- src/fcdefault.c | 4 ++-- src/fcdir.c | 4 ++-- src/fcformat.c | 4 ++-- src/fcfreetype.c | 4 ++-- src/fcfs.c | 4 ++-- src/fcinit.c | 4 ++-- src/fcint.h | 4 ++-- src/fclang.c | 4 ++-- src/fclist.c | 4 ++-- src/fcmatch.c | 4 ++-- src/fcname.c | 4 ++-- src/fcpat.c | 4 ++-- src/fcstr.c | 4 ++-- src/fcxml.c | 4 ++-- 254 files changed, 508 insertions(+), 508 deletions(-) commit b9b01b6ed0849f770200fb6ae2a3ac0ca2166877 Author: Behdad Esfahbod Date: Thu Mar 12 13:48:07 2009 -0400 Call git tools using "git cmd" instead of "git-cmd" syntax Recent git doesn't install the git-* commands in path. Makefile.am | 2 +- new-version.sh | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) commit de69ee14d3ed094cd2bc4df603a03675c28d1b5b Author: Behdad Esfahbod Date: Thu Mar 12 12:31:57 2009 -0400 [fcxml.c] Embed a static 64-byte attr buffer in FcPStack Reduces number of mallocs called from FcConfigSaveAttr in my small test from 160 down to 6. src/fcstr.c | 4 ++-- src/fcxml.c | 23 +++++++++++++++-------- 2 files changed, 17 insertions(+), 10 deletions(-) commit 39861b7d9c69e71b9a8fb0d0d04279520cb30f04 Author: Behdad Esfahbod Date: Thu Mar 12 12:22:37 2009 -0400 [fcxml] Embed 64 static FcVStack objects in FcConfigParse This reduces the number of mallocs called from FcVStackPush from over 800 down to zero. src/fcxml.c | 218 +++++++++++++++++++++++++++++------------------------------- 1 file changed, 105 insertions(+), 113 deletions(-) commit 1d7b47da9da574a8adf39b0b5d11aab3d3cf4a37 Author: Behdad Esfahbod Date: Thu Mar 12 11:58:04 2009 -0400 [fcxml] Embed 8 static FcPStack objects in FcConfigParse This reduces the number of mallocs called from FcPStackPush from over 900 down to zero. src/fcxml.c | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) commit 532d8a1dbc2baebc2603d091952a640b954b6f71 Author: Behdad Esfahbod Date: Thu Mar 12 09:27:20 2009 -0400 [fcxml] Don't allocate attr array if there are no attributes Reduces number of mallocs from FcConfigSaveAttr() in my small test from over 900 down to 157. src/fcxml.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) commit 3ed70071cdc8a03229c009f5565c23948264a5e0 Author: Behdad Esfahbod Date: Wed Mar 11 14:07:15 2009 -0400 [fcstr,fcxml] Don't copy FcStrBuf contents when we would free it soon We can simply NUL-terminate the buffer and use it. Reduces number of mallocs called from FcStrBufDone in my small test from 631 down to 66. src/fcint.h | 3 +++ src/fcstr.c | 13 +++++++++++++ src/fcxml.c | 28 ++++++++++++++-------------- 3 files changed, 30 insertions(+), 14 deletions(-) commit 7d35c11b3304659d8be43913c9b125f2b5b38516 Author: Behdad Esfahbod Date: Wed Mar 11 13:56:09 2009 -0400 [fcstr.c] Embed a static 64-byte buffer in FcStrBuf Reduces number of mallocs called from FcStrBufChar in my small test from 900 down to 6. src/fcint.h | 1 + src/fcstr.c | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) commit 916640ce40b995d1d97244975139ec0c030483e4 Author: Behdad Esfahbod Date: Tue Mar 10 02:15:37 2009 -0400 Fix Makefile's to not create target file in case of failure fc-arch/Makefile.am | 3 ++- fc-lang/Makefile.am | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) commit 26ce979e825d661be046b1440563115ddc5ea4ab Author: Behdad Esfahbod Date: Tue Mar 10 02:14:15 2009 -0400 Fix Fanti (fat) orth file (#20390) fc-lang/fat.orth | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 49111c11fb5dca2af06004cc2ae443517f6c9557 Author: Roozbeh Pournader Date: Mon Mar 2 22:48:37 2009 -0800 Add Sundanese (su) orthography (bug #20440) fc-lang/su.orth | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) commit 0eaed16d34687bddc831d1ab3c50406c7c56792d Author: Roozbeh Pournader Date: Mon Mar 2 20:53:26 2009 -0800 Add Kanuri (kr) orthography (bug #20438) fc-lang/kr.orth | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) commit fe4838588b0b9eb84f66bd4ad70ee12013e0b49a Author: Roozbeh Pournader Date: Mon Mar 2 02:21:17 2009 -0800 Add Nauru (na) orthography (bug #20418) fc-lang/na.orth | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 9141b4bbe9a100200b09597f02521cd6e30d0f06 Author: Roozbeh Pournader Date: Sun Mar 1 03:53:11 2009 -0800 Add Javanese (jv) orthography (bug #20403) fc-lang/jv.orth | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) commit dc6daae9494e30d8c2d9657bab04d8f88751f751 Author: Roozbeh Pournader Date: Sun Mar 1 03:50:46 2009 -0800 Add Sichuan Yi (ii) orthography (bug #20402) fc-lang/ii.orth | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) commit 43517045f885c0e463c8a784c65f0b783658fc9b Author: Roozbeh Pournader Date: Sun Mar 1 03:46:48 2009 -0800 Add Shona (sn) orthography (bug #20394) fc-lang/sn.orth | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit 42a8008df14c7dcdd85ab7d3ce12b4191b807f27 Author: Roozbeh Pournader Date: Sun Mar 1 03:30:58 2009 -0800 Add orthographies for Oshiwambo languages (bug #20401) The languages are Kuanyama/Kwanyama (kj), Ndonga (ng), and Kwambi (kwm). fc-lang/kj.orth | 34 ++++++++++++++++++++++++++++++++++ fc-lang/kwm.orth | 29 +++++++++++++++++++++++++++++ fc-lang/ng.orth | 29 +++++++++++++++++++++++++++++ 3 files changed, 92 insertions(+) commit f0b546372967434418aa6cfe6f2d709795fdff24 Author: Roozbeh Pournader Date: Sun Mar 1 02:33:54 2009 -0800 Add Zhuang (za) orthography (bug #20399) fc-lang/za.orth | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) commit 7886b147834decbcab6f556b1c43cc003e2bf893 Author: Roozbeh Pournader Date: Sun Mar 1 02:12:38 2009 -0800 Add Rundi (rn) orthography (bug #20398) fc-lang/rn.orth | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) commit 10a85249d9e79ae474c996d3e4f14d0ea8aa50b8 Author: Roozbeh Pournader Date: Sat Feb 28 19:43:02 2009 -0800 Add Navajo (nv) orthography (bug #20395) fc-lang/nv.orth | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) commit bf20886085a18227702f67b70dd7ef5f0e919469 Author: Roozbeh Pournader Date: Sat Feb 28 18:25:20 2009 -0800 Add Tahitian (ty) orthography (bug #20391) fc-lang/ty.orth | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) commit 0e05d7e5c730a1740d4c289a66f43f11a527c840 Author: Roozbeh Pournader Date: Sat Feb 28 18:01:11 2009 -0800 Add Sango (sg) orthography (bug #20393) fc-lang/sg.orth | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) commit bdbdc64dd1e0a1727e2486c3320f9598695e4ab4 Author: Roozbeh Pournader Date: Sat Feb 28 17:38:21 2009 -0800 Added Quechua (qu) orthography (bug #20392) fc-lang/qu.orth | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) commit 16159d0fae1d8d0d2ba6ac1fc7f845582dec351b Author: Roozbeh Pournader Date: Sat Feb 28 17:05:11 2009 -0800 Add Akan (ak) and Fanti (fat) orthographies (bug #20390) fc-lang/ak.orth | 30 ++++++++++++++++++++++++++++++ fc-lang/fat.orth | 30 ++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) commit 881a7cd93b3358e371a25bc7ad4818baa3c8968b Author: Roozbeh Pournader Date: Sat Feb 28 16:29:07 2009 -0800 Add Herero (hz) orthograhy (bug #20387) fc-lang/hz.orth | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit bc701d2a5b7dc687ba25bafc5fea282adad37ecb Author: Roozbeh Pournader Date: Sat Feb 28 16:03:51 2009 -0800 Add Ewe (ee) orthography (bug #20386) fc-lang/ee.orth | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) commit 5a83914b733755ff6c710ff398cb5668fdb74a19 Author: Roozbeh Pournader Date: Fri Feb 27 14:41:07 2009 -0800 Update Serbo-Croatian (sh) orthography (bug #20368) fc-lang/sh.orth | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) commit 505ea8ce37dff9cc35dba6a98de4a31ed1ac5f8c Author: Roozbeh Pournader Date: Thu Feb 26 23:27:20 2009 -0800 Extend Crimean Tatar (crh) orthography (bug #19891) fc-lang/crh.orth | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 4c7da799f3b90fb2f1117f9e9c45fa7fc1bd268c Author: Roozbeh Pournader Date: Wed Feb 18 21:21:01 2009 -0800 Add Divehi (dv) orthography (bug #20207) fc-lang/dv.orth | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) commit 5cac0a4fd681087562c84b3d2534cecff6876048 Author: Roozbeh Pournader Date: Wed Feb 18 17:09:51 2009 -0800 Remove digits and symbols from some Indic orthographies (bug #20204) These orthographies were changed: Gujarati (gu), Kannada (kn), Lao (lo), Malayalam (ml), Oriya (or), Telugu (te), and Thai (th). fc-lang/gu.orth | 4 ++-- fc-lang/kn.orth | 4 ++-- fc-lang/lo.orth | 4 ++-- fc-lang/ml.orth | 4 ++-- fc-lang/or.orth | 5 +++-- fc-lang/te.orth | 4 ++-- fc-lang/th.orth | 8 ++++++-- 7 files changed, 19 insertions(+), 14 deletions(-) commit ea628d97706e842cb5555ceb5368fd972c941e0c Author: Roozbeh Pournader Date: Wed Feb 18 16:44:10 2009 -0800 Tighten Central Khmer (km) orthography (bug #20202) fc-lang/km.orth | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) commit 4a5805d9c6b20b4c8f56f3b8201653e88e3706be Author: Roozbeh Pournader Date: Wed Feb 18 16:03:30 2009 -0800 Change Kashmiri (ks) orthography to Arabic script (bug #20200) fc-lang/ks.orth | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) commit cda57219229025db963d3db0f984974187a409f8 Author: Roozbeh Pournader Date: Tue Feb 17 23:33:07 2009 -0800 Rename Fulah orthography from 'ful' to 'ff' (bug #20177) fc-lang/ff.orth | 38 ++++++++++++++++++++++++++++++++++++++ fc-lang/ful.orth | 38 -------------------------------------- 2 files changed, 38 insertions(+), 38 deletions(-) commit a32b79c3a5251916597bb871d2cd7698baeb5e58 Author: Roozbeh Pournader Date: Tue Feb 17 22:45:17 2009 -0800 Rename Bambara orthography from 'bam' to 'bm' (bug #20175) fc-lang/bam.orth | 37 ------------------------------------- fc-lang/bm.orth | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 37 deletions(-) commit 74a0a28695a24e02bc623d1b2c1c72054ff03d52 Author: Roozbeh Pournader Date: Tue Feb 17 22:40:50 2009 -0800 Rename Avaric orthography from 'ava' to 'av' (bug #20174) fc-lang/av.orth | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ fc-lang/ava.orth | 97 -------------------------------------------------------- 2 files changed, 97 insertions(+), 97 deletions(-) commit eba32fa3f3024fb94f75cdedaa8d4c17d786a761 Author: Roozbeh Pournader Date: Tue Feb 17 22:09:53 2009 -0800 Update Azerbaijani in Latin (az_az) to present usage (bug #20173) Removed Cyrillic that is no longer in use. Removed "A WITH DIAERESIS" too, since it was only temporarily used in 1991-1992. fc-lang/az_az.orth | 41 ++++++++++++++--------------------------- 1 file changed, 14 insertions(+), 27 deletions(-) commit 1c7bacc214f6e6e507f932230ec52744337cdf47 Author: Roozbeh Pournader Date: Tue Feb 17 21:37:45 2009 -0800 Switch Uzbek (uz) orthography to Latin (bug #19851) fc-lang/uz.orth | 94 ++++++++++----------------------------------------------- 1 file changed, 16 insertions(+), 78 deletions(-) commit dfd5d0937ce44b4a60b5ee7e2e82650a5e31a456 Author: Roozbeh Pournader Date: Tue Feb 17 20:02:39 2009 -0800 Add Crimean Tatar (crh) orthography (bug #19891) fc-lang/crh.orth | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) commit 502c46c23d3e36dbfff29484486091f140756535 Author: Roozbeh Pournader Date: Tue Feb 17 19:41:30 2009 -0800 Add Papiamento (pap_aw, pap_an) orthographies (bug #19891) fc-lang/pap_an.orth | 46 ++++++++++++++++++++++++++++++++++++++++++++++ fc-lang/pap_aw.orth | 31 +++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) commit b4cd4cb6cc2cfd6432bfd4a5b2ec9c63cf653f6d Author: Roozbeh Pournader Date: Tue Feb 17 17:30:15 2009 -0800 Add Blin (byn) orthography (bug #19891) fc-lang/byn.orth | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) commit 4d7412a28b834830d0d1749852115846b3554932 Author: Roozbeh Pournader Date: Tue Feb 17 17:03:54 2009 -0800 Divide Panjabi (pa) to that of Pakistan and India (bug #19890) Previous Panjabi orthography was in the Gurmukhi script only, while in Pakistan, the Arabic script (called Shahmukhi) is used for Panjani. fc-lang/pa.orth | 46 ---------------------------------------------- fc-lang/pa_in.orth | 46 ++++++++++++++++++++++++++++++++++++++++++++++ fc-lang/pa_pk.orth | 28 ++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+), 46 deletions(-) commit 7a22c9d3471cd4963c529937df823148ab8e1a7d Author: Roozbeh Pournader Date: Fri Feb 13 20:04:42 2009 -0800 Add Ottoman Turkish (ota) orthography (bug #20114) fc-lang/ota.orth | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) commit b5675e4c920dbb146ab76d49b4807693749e8143 Author: Roozbeh Pournader Date: Fri Feb 13 17:14:14 2009 -0800 Remove Euro Sign from all orthographies (bug #19865) fc-lang/de.orth | 1 - fc-lang/el.orth | 1 - fc-lang/en.orth | 1 - fc-lang/es.orth | 1 - fc-lang/fi.orth | 1 - fc-lang/fr.orth | 1 - fc-lang/it.orth | 1 - fc-lang/nl.orth | 1 - fc-lang/pt.orth | 1 - 9 files changed, 9 deletions(-) commit f6993c880345b45abc0f7e7f0bb14dd0ddae0caa Author: Behdad Esfahbod Date: Mon Mar 2 13:25:37 2009 +0330 [fc-lang] Continue parsing after an "include" (#20179) fc-lang/fc-lang.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) commit abe0e056d5a93dee80d8e964569563dc4d131a90 Author: Roozbeh Pournader Date: Fri Feb 13 16:47:11 2009 -0800 Fix Bengali (bn) and Assamese (as) orthographies (bug #22924) Removing digits, symbols, and the letters not used in the languages. fc-lang/as.orth | 37 +++++++++++++++++++++++++++---------- fc-lang/bn.orth | 21 ++++++++++++--------- 2 files changed, 39 insertions(+), 19 deletions(-) commit 40b2904c8984db90cc35eecbec571552c2e4d120 Author: Roozbeh Pournader Date: Fri Feb 13 16:07:14 2009 -0800 Add Sidamo (sid) and Wolaitta (wal) orthographies (bug #19891) fc-lang/sid.orth | 27 +++++++++++++++++++++++++++ fc-lang/wal.orth | 27 +++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) commit d333969e0c809b3175193c7dda26703287d57fd4 Author: Roozbeh Pournader Date: Fri Feb 13 15:52:23 2009 -0800 Add Sardinian (sc) orthography (bug #19891) fc-lang/sc.orth | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) commit 1ae2e9b479818835ba3ddddb3c613cdb5acf46d4 Author: Roozbeh Pournader Date: Fri Feb 13 13:31:10 2009 -0800 Add Limburgan (li) orthography (bug #19891) fc-lang/li.orth | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) commit d8a4ee921a3bf0e78dffcea8f27d457cc1bc378e Author: Roozbeh Pournader Date: Wed Feb 11 01:59:56 2009 -0800 Ad Ganda (lg) orthography (bug #19891) fc-lang/lg.orth | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) commit f4159adaa88d55118fe1c2c62b05600d0a8fbc0a Author: Roozbeh Pournader Date: Wed Feb 11 01:44:45 2009 -0800 Add Haitian Creole (ht) orthography (bug #19891) fc-lang/ht.orth | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit 190b4b5b2bd9a4822660b134639a759a5949c862 Author: Roozbeh Pournader Date: Wed Feb 11 01:11:30 2009 -0800 Add Aragonese (an) orthography (bug #19891) fc-lang/an.orth | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) commit 3541f01828be06e2a414fa5bcd9543dbb2c9e0fd Author: Roozbeh Pournader Date: Wed Feb 11 00:34:10 2009 -0800 Add Kurdish in Turkey (ku_tr) orthography (bug #19891) fc-lang/ku_tr.orth | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) commit 3792f0199065cdf808d723eacf3fa86910453f70 Author: Roozbeh Pournader Date: Wed Feb 11 00:22:53 2009 -0800 Use newly added Cyrillic letters for Kurdish (bug #20049) fc-lang/ku_am.orth | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) commit 0d8b15f00f11a5150d842a3bd10e8dd05413fb9c Author: Roozbeh Pournader Date: Wed Feb 11 00:05:16 2009 -0800 Add Chhattisgarhi (hne) orthography (bug #19891) fc-lang/hne.orth | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 04ac14fc14131a66f0c391d8bb3894a01e556a05 Author: Behdad Esfahbod Date: Fri Feb 13 17:18:11 2009 -0800 [fcformat] Add list of undocumented language features src/fcformat.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) commit 384542fa915b27285ec22d899c4aa19be8c275f1 Author: Behdad Esfahbod Date: Fri Feb 13 16:41:37 2009 -0800 [fcformat] Add a 'pkgkit' builtin that prints tags for font packages For DejaVu Sans Condensed it generates: font(dejavusans) font(dejavusanscondensed) font(:lang=aa) font(:lang=ab) ... font(:lang=yo) font(:lang=zu) src/fcformat.c | 2 ++ 1 file changed, 2 insertions(+) commit 9d58d01c5c061c1fcfb3cca3a3a4622f9bbec727 Author: Behdad Esfahbod Date: Fri Feb 13 16:33:58 2009 -0800 [fcformat] Enumerate langsets like we do arrays of values If one asks for a format like '%{[]elt{expr}}' and the first value for elt is a langset, we enumerate the langset languages in expr. src/fcformat.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 47 insertions(+), 12 deletions(-) commit d62b85af21777582ad720efd9c319fde97b67d82 Author: Behdad Esfahbod Date: Fri Feb 13 16:30:43 2009 -0800 [fclang] Implement FcLangSetGetLangs() (#18846) doc/fclangset.fncs | 8 ++++++++ fontconfig/fontconfig.h | 3 +++ src/fclang.c | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+) commit cdfb76585e7afbe739d00ed83a029ce1f909142f Author: Behdad Esfahbod Date: Thu Feb 12 21:48:22 2009 -0600 [fcformat] Implement array enumeration The format '%{[]family,familylang{expr}}' expands expr once for the first value of family and familylang, then for the second, etc, until both lists are exhausted. src/fcformat.c | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 85 insertions(+), 5 deletions(-) commit 0673ef3881d24820e627b9a8cd3a4b3e3889c545 Author: Behdad Esfahbod Date: Wed Feb 11 23:55:11 2009 -0500 [fcformat] Support 'default value' for simple tags The format '%{family:-XXX} prints XٓٓٓٓXX if the element family is not defined. Also works for things like '%{family[1]:-XXX}'. src/fcformat.c | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) commit 9c83a8376f7db19421fb42d311fba81b398c67b0 Author: Behdad Esfahbod Date: Wed Feb 11 23:44:36 2009 -0500 [fcformat] Support indexing simple tags The format '%{family[0]}' will only output the first value for element family. src/fcformat.c | 43 +++++++++++++++++++++++++++++++++++++++---- src/fcint.h | 5 +++++ src/fcname.c | 2 +- 3 files changed, 45 insertions(+), 5 deletions(-) commit d04a750764d89a7048f49d655fb7e4aabbcd10b3 Author: Behdad Esfahbod Date: Tue Feb 10 20:56:39 2009 -0500 [fcformat] Add support for builtin formats The '%{=unparse}' format expands to the FcNameUnparse() result on the pattern. Need to add '%{=verbose}' for FcPatternPrint() output but need to change that function to output to a string first. Also added the '%{=fclist}' and '%{=fcmatch}' which format like the default format of fc-list and fc-match respectively. src/fcformat.c | 137 +++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 95 insertions(+), 42 deletions(-) commit 85c7fb67ce9f77574f71de7d9b69867bb974cd48 Author: Behdad Esfahbod Date: Tue Feb 10 18:57:34 2009 -0500 [fcformat] Refactor code to avoid malloc src/fcformat.c | 246 +++++++++++++++++++++++++++++++++------------------------ 1 file changed, 144 insertions(+), 102 deletions(-) commit d4f7a4c6af5420afbbcf2217f9fe396623671294 Author: Behdad Esfahbod Date: Tue Feb 10 06:22:55 2009 -0500 [fcformat] Start adding builtins src/fcformat.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) commit c8f5933d13efa6705854d8f89b22d40cf720e68d Author: Behdad Esfahbod Date: Tue Feb 10 05:57:10 2009 -0500 [fcformat] Implement 'delete', 'escape', and 'translate' filter functions The format '%{family|delete( )}' expands to family values with space removed. The format '%{family|translate( ,-)}' expands to family values with space replaced by dash. Multiple chars are supported, like tr(1). The format '%{family|escape(\\ )}' expands to family values with space escaped using backslash. src/fcformat.c | 219 ++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 194 insertions(+), 25 deletions(-) commit b6a23028beb3b99022599344ebd8511c12dc7fd0 Author: Behdad Esfahbod Date: Tue Feb 10 05:05:53 2009 -0500 [fcformat] Add value-count syntax The format '%{#family}' expands to the number of values for the element 'family', or '0' if no such element exists in the pattern. src/fcformat.c | 116 +++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 75 insertions(+), 41 deletions(-) commit dccbbe83eff54097c55fdc560810cdc56b679a60 Author: Behdad Esfahbod Date: Tue Feb 10 04:47:24 2009 -0500 [FcStrBuf] better handle malloc failure If buffer has failed allocation, return NULL when done. src/fcstr.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit ced38254b49ab616df79930bbb798a93e5ce51fa Author: Behdad Esfahbod Date: Tue Feb 10 04:44:54 2009 -0500 [fcformat] Implement 'cescape', 'shescape', and 'xmlescape' converters src/fcformat.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 76 insertions(+), 11 deletions(-) commit 2017a5eb79a0774cc5bace8c76304e1a9ef157b9 Author: Behdad Esfahbod Date: Tue Feb 10 03:38:22 2009 -0500 [fcformat] Add simple converters The format '%{family|downcase}' for example prints the lowercase of the family element. Three converters are defined right now: 'downcase', 'basename', and 'dirname'. src/fcformat.c | 224 +++++++++++++++++++++++++++++++++------------------------ 1 file changed, 131 insertions(+), 93 deletions(-) commit 7717b25ffdd9507b0d73ef60b70b692f7286c0a2 Author: Behdad Esfahbod Date: Tue Feb 10 00:15:08 2009 -0500 [fcformat] Add conditionals The conditional '%{?elt1,elt2,!elt3{expr1}{expr2}}' will evaluate expr1 if elt1 and elt2 exist in pattern and elt3 doesn't exist, and expr2 otherwise. The '{expr2}' part is optional. src/fcformat.c | 158 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 147 insertions(+), 11 deletions(-) commit 8c31a2434d5dfa475ef710ad52c992111caac424 Author: Behdad Esfahbod Date: Mon Feb 9 23:08:08 2009 -0500 [fcformat] Add element filtering and deletion The filtering, '%{+elt1,elt2,elt3{subexpr}}' will evaluate subexpr with a pattern only having the listed elements from the surrounding pattern. The deletion, '%{-elt1,elt2,elt3{subexpr}}' will evaluate subexpr with a the surrounding pattern sans the listed elements. doc/fcpattern.fncs | 2 +- fc-list/fc-list.c | 7 +- fc-match/fc-match.c | 6 +- fc-query/fc-query.c | 7 +- fc-scan/fc-scan.c | 7 +- src/fcformat.c | 214 +++++++++++++++++++++++++++++++++++++++------------- 6 files changed, 183 insertions(+), 60 deletions(-) commit d6506ff6eeb4a4cb0bfe827174e474c7b91ff045 Author: Behdad Esfahbod Date: Mon Feb 9 20:49:45 2009 -0500 [fcformat] Add support for subexpressions The syntax is '{{expr}}'. Can be used for aligning/justifying an entire subexpr for example. src/fcformat.c | 149 +++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 124 insertions(+), 25 deletions(-) commit 27b3e2dddf6a89c66e8d79f4a28b1a0653e8e100 Author: Behdad Esfahbod Date: Mon Feb 9 19:13:07 2009 -0500 [fcformat] Refactor and restructure code for upcoming changes Also makes it thread-safe. src/fcformat.c | 165 +++++++++++++++++++++++++++++++++------------------------ 1 file changed, 96 insertions(+), 69 deletions(-) commit c493c3b770ab12ab1c61a4fb10419c490d2b5ba6 Author: Behdad Esfahbod Date: Mon Feb 9 18:18:59 2009 -0500 [fcformat] Add support for width modifiers One can do '%30{family}' for example. Or '%-30{family}' for the left-aligned version. doc/fcpattern.fncs | 6 ++++-- src/fcformat.c | 46 +++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 47 insertions(+), 5 deletions(-) commit 967267556c762d2746f819eca85f3c59fbb95875 Author: Behdad Esfahbod Date: Thu Feb 5 23:37:16 2009 -0500 Further update Sinhala orthography (#19288) fc-lang/si.orth | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit b697fa2523a6d3fe091e14710d14720a9e051bf1 Author: Behdad Esfahbod Date: Thu Feb 5 02:46:16 2009 -0500 [cache] After writing cache to file, update the internal copy to reflect this Only do it for small caches though. For large cache we'd better off loading the cache file again, mmap()ing it. Based on patch from Diego Santa Cruz. src/fccache.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit ecce22d40cfbc50bbe19891035c06bbbeef5232f Author: Behdad Esfahbod Date: Wed Feb 4 15:58:36 2009 -0500 Update Sinhala orthography (#19288) Patch from Harshula Jayasuriya. fc-lang/si.orth | 45 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 34 insertions(+), 11 deletions(-) commit 6bb5d72fe788f897e30ab39ac7585c624282303f Author: Behdad Esfahbod Date: Tue Feb 3 21:06:15 2009 -0500 [fccache] Make sure the cache is current when reusing from open caches Reported by Diego Santa Cruz. src/fccache.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit f9feb587faa5a3df0f03e5ba945d228b8b49ec51 Author: Behdad Esfahbod Date: Tue Feb 3 20:50:29 2009 -0500 [win32] Do not remove leading '\\' such that network paths work Raised by Diego Santa Cruz. src/fcstr.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 1cdf7efb224867c41b2dea48884d87c5fb67bdaf Author: Behdad Esfahbod Date: Tue Feb 3 20:35:10 2009 -0500 [win32] Expand "APPSHAREFONTDIR" to ../share/fonts relative to binary location Proposed by Diego Santa Cruz. src/fcxml.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) commit e62058abb9cf04b3f2270a45f3c0760287f12033 Author: Behdad Esfahbod Date: Tue Feb 3 20:31:30 2009 -0500 [win32] Fix usage of GetFullPathName() Diego Santa Cruz pointed out that we are using that API wrongly. The forth argument is a pointer to a pointer. Turns out we don't need that arugment and it accepts NULL, so just pass that. src/fcstr.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) commit c4d557ab90c7ef6eccb998550190ccccde80670d Author: Behdad Esfahbod Date: Tue Feb 3 17:15:52 2009 -0500 Add ICONV_LIBS to fontconfig.pc.in (#19606) fontconfig.pc.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 10609af4aa4030a15c19573198462fa002d2ef13 Author: Mike FABIAN Date: Tue Feb 3 16:57:01 2009 -0500 [conf] Disable hinting when emboldening (#19904) Hinting will be done before Embolden in freetype2, but in such case, Embolden will get wrong result on some glyph contours after applying hinting. Actually, hinting should be done after embolden, but we can't fix it in current freetype2. So as a workaround, just turn off hinting if we want to do embolden. conf.d/90-synthetic.conf | 11 +++++++++++ 1 file changed, 11 insertions(+) commit fe00689cddb42df141d891c2cd5b4a8ea3a42816 Author: Roozbeh Pournader Date: Mon Feb 2 00:27:58 2009 -0800 Remove punctuation symbols from Asturian orthography (bug #19893) Also fix the URL for orthography. fc-lang/ast.orth | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit a4f651241e2db62bd058e773b4e5931d205af0f6 Author: Roozbeh Pournader Date: Sun Feb 1 23:52:10 2009 -0800 Rename Igbo from "ibo" to "ig" (bug #19892) fc-lang/ibo.orth | 35 ----------------------------------- fc-lang/ig.orth | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 35 deletions(-) commit ff71a83c207891323b487d9cbec0658e16ca11c3 Author: Roozbeh Pournader Date: Sun Feb 1 22:14:53 2009 -0800 Renamed az to az_az (bug #19889) fc-lang/az.orth | 66 ------------------------------------------------------ fc-lang/az_az.orth | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 66 deletions(-) commit e53956ee5e6340c5c8a78bf65e9c9df0757af439 Author: Roozbeh Pournader Date: Sun Feb 1 20:46:23 2009 -0800 Add Berber orthographies in Latin and Tifinagh scripts (bug #19881) fc-lang/ber_dz.orth | 27 +++++++++++++++++++++++++++ fc-lang/ber_ma.orth | 46 ++++++++++++++++++++++++++++++++++++++++++++++ fc-lang/kab.orth | 42 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 115 insertions(+) commit 3765a7483e1d313c6d0ced8a20cd5a258165f8e0 Author: Roozbeh Pournader Date: Sun Feb 1 20:42:54 2009 -0800 Add Upper Sorbian (hsb) orthography (bug #19870) fc-lang/hsb.orth | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) commit 9f54d9db2912287358c1c01771a1bc8263e9539a Author: Roozbeh Pournader Date: Sun Feb 1 20:41:14 2009 -0800 Add Kinyarwanda (rw) orthography (bug #19868) fc-lang/rw.orth | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit 3889de9e3c0a0b6aacd0558ce41953d9aa35878b Author: Roozbeh Pournader Date: Sun Feb 1 20:39:03 2009 -0800 Add Malay (ms) orthography (bug #19867) fc-lang/ms.orth | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) commit 0896d14ab7fe5a7233102f5ff7c59199f893c734 Author: Roozbeh Pournader Date: Sun Feb 1 20:36:55 2009 -0800 Add Kashubian (csb) orth file (bug #19866) fc-lang/csb.orth | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) commit a32870457eb8f35a19193bc3e9e66db9948186fb Author: Roozbeh Pournader Date: Sun Feb 1 20:29:12 2009 -0800 Rename "ku" to "ku_am", add "ku_iq" (bug #19853). For Iraq, we are assuming its the same Arabic orthography used in Iran. According to Ethnologue, Kurdish is written in Cyrillic in Armenia: http://www.ethnologue.com/show_language.asp?code=kmr Turkey and Syria need more research. fc-lang/ku.orth | 94 ------------------------------------------------------ fc-lang/ku_am.orth | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ fc-lang/ku_iq.orth | 27 ++++++++++++++++ 3 files changed, 121 insertions(+), 94 deletions(-) commit 2199c6e321c92cf42711180b483e3f1b0091d980 Author: Roozbeh Pournader Date: Sun Feb 1 20:21:45 2009 -0800 Rename Venda from "ven" to "ve" (bug #19852) Since ISO 639-1 code exists, we should use it. fc-lang/ve.orth | 34 ++++++++++++++++++++++++++++++++++ fc-lang/ven.orth | 34 ---------------------------------- 2 files changed, 34 insertions(+), 34 deletions(-) commit d7dd87649c07b7b73cf4ecfe7273cb0fcedc5be0 Author: Roozbeh Pournader Date: Sun Feb 1 20:00:15 2009 -0800 Change Turkmen orth from Cyrillic to Latin (bug #19849) fc-lang/tk.orth | 114 +++++++++++++------------------------------------------- 1 file changed, 26 insertions(+), 88 deletions(-) commit b25a42963d70f9ead6bc026f57ae2433b4ac5e85 Author: Roozbeh Pournader Date: Sun Feb 1 19:35:37 2009 -0800 Fix doubly encoded UTF-8 in comments (bug #19848) fc-lang/nb.orth | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f3c214a1cd799dc1eb965ced8107f52cc9dd065e Author: Roozbeh Pournader Date: Sun Feb 1 19:29:21 2009 -0800 Split Mongolian orth to Mongolia and China (bug #19847) The orth file for Mongolia uses Cyrillic, while that of China uses the classical Mongolian script. fc-lang/mn.orth | 37 ------------------------------------- fc-lang/mn_cn.orth | 37 +++++++++++++++++++++++++++++++++++++ fc-lang/mn_mn.orth | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+), 37 deletions(-) commit 0d5f9a2592634e6f9c74f48bbad9f6b443d1b574 Author: Roozbeh Pournader Date: Sun Feb 1 18:55:31 2009 -0800 Add Filipino orth, alias Tagalog to Filipino (bug #19846) The previous Tagalog orthography used the Tagalog script, which is not in modern use. fc-lang/fil.orth | 45 +++++++++++++++++++++++++++++++++++++++++++++ fc-lang/tl.orth | 23 ++++++++--------------- 2 files changed, 53 insertions(+), 15 deletions(-) commit 2bf7d799bf8c9e116f08864f4f62575a6a25b380 Author: Roozbeh Pournader Date: Sun Feb 1 18:52:41 2009 -0800 Remove Sinhala characters not in modern use (bug #19288) fc-lang/si.orth | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) commit 2f3b07fe80415873ef3e0e0a7e753a55e766986b Author: Roozbeh Pournader Date: Sun Feb 1 18:32:21 2009 -0800 Correct Sindhi orthography to use Arabic script (bug #17140) The previous version used the Devanagari script. But in both Pakistan and India, Sindhi is generally written in Arabic. The Devanagari data could prove to be useful, if we decide on how we should name such files (see bug #17208 and bug #19869). fc-lang/sd.orth | 48 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 9 deletions(-) commit 574805478c19cdb487aea96922ff7177dd0844d7 Author: Behdad Esfahbod Date: Sat Jan 31 03:38:19 2009 -0500 [fcfreetype] Fix typo in GB2312 encoding name string (#19845) This was causing failure when opening iconv converter, hence rendering GB2312-encoded fonts with no other usable encoding unusable. src/fcfreetype.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 575ee6cddd391857339f57331d2677fcc868369e Author: Karl Tomlinson Date: Tue Jan 27 03:35:51 2009 -0500 Change FcCharSetMerge API To only work on writable charsets. Also, return a bool indicating whether the merge changed the charset. Also changes the implementation of FcCharSetMerge and FcCharSetIsSubset doc/fccharset.fncs | 16 +++--- fontconfig/fontconfig.h | 4 +- src/fccharset.c | 129 ++++++++++++++++++++---------------------------- src/fcmatch.c | 64 +++++++++++++----------- 4 files changed, 99 insertions(+), 114 deletions(-) commit b8860e2faffa8b3f62b3c7aafd2d3b6962566f41 Author: Behdad Esfahbod Date: Fri Jan 23 14:17:08 2009 -0500 [fcmatch] Fix crash when no fonts are available. src/fcmatch.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit c08216c6f468ce22cb7c0c1959019a7caad3484a Author: Dan Nicholson Date: Mon Jan 19 17:02:55 2009 -0500 Let make expand fc_cachedir/FC_CACHEDIR (bug #18675) configure replaces a NONE prefix with the default prefix too late. So we move fonts.conf creation to Makefile, such that prefix is correctly expanded. Ugly, but works. Makefile.am | 13 ++++++++++++- configure.in | 3 +-- 2 files changed, 13 insertions(+), 3 deletions(-) commit 98d765a53ba33d28283e499ebd1098d27cbe6d02 Author: Behdad Esfahbod Date: Thu Jan 15 19:27:53 2009 -0500 Cleanup all manpage.* files Recent doc2man generates files called manpage.log. This was breaking build. doc/Makefile.am | 5 ++--- fc-cache/Makefile.am | 2 +- fc-cat/Makefile.am | 2 +- fc-list/Makefile.am | 2 +- fc-match/Makefile.am | 2 +- fc-query/Makefile.am | 2 +- fc-scan/Makefile.am | 2 +- 7 files changed, 8 insertions(+), 9 deletions(-) commit 41af588f543ca5c0efaeb699992376d89cb35763 Author: Behdad Esfahbod Date: Thu Jan 15 19:12:37 2009 -0500 [fc-match] Accept list of elements like fc-list (bug #13017) Also make --verbose not ignore list of elements and only print those. Update docs. fc-list/fc-list.c | 29 ++++++++++++++--------------- fc-list/fc-list.sgml | 12 ++++++------ fc-match/fc-match.c | 48 +++++++++++++++++++++++++++++++++++++----------- fc-match/fc-match.sgml | 29 ++++++++++++++++++++--------- 4 files changed, 77 insertions(+), 41 deletions(-) commit 263f16ced279b0c09834bb4ca0df87fd0f76dcaf Author: Behdad Esfahbod Date: Thu Jan 15 19:12:27 2009 -0500 Oops, fix FcPatternFilter src/fcpat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6bffe1a95bfd6609358d38590ad638c688232575 Author: Behdad Esfahbod Date: Thu Jan 15 18:39:48 2009 -0500 Add fc-scan too that runs FcFileScan/FcDirScan This is quite similar to fc-query, but calling FcFileScan/FcDirScan instead of FcFreeTypeQuery. .gitignore | 2 + Makefile.am | 2 +- configure.in | 1 + doc/fcfile.fncs | 18 ++--- fc-cache/fc-cache.sgml | 1 + fc-cat/fc-cat.sgml | 1 + fc-list/fc-list.sgml | 7 +- fc-match/fc-match.sgml | 7 +- fc-query/fc-query.sgml | 5 +- fc-scan/Makefile.am | 59 ++++++++++++++++ fc-scan/fc-scan.c | 181 +++++++++++++++++++++++++++++++++++++++++++++++++ fc-scan/fc-scan.sgml | 176 +++++++++++++++++++++++++++++++++++++++++++++++ 12 files changed, 442 insertions(+), 18 deletions(-) commit 4074fd254e5ad707448d3665a034e0fbdf6de033 Author: Behdad Esfahbod Date: Thu Jan 15 18:35:09 2009 -0500 Revive FcConfigScan() (bug #17121) FcConfigScan() with parameters cache=NULL and force=FcTrue can be used to scan font dirs without any caching side effect. src/fcdir.c | 155 +++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 90 insertions(+), 65 deletions(-) commit 46e405cb9ab5870bda1947f3afd80f8f54c7ac75 Author: Behdad Esfahbod Date: Thu Jan 15 17:34:26 2009 -0500 Oops. Fix usage output. fc-query/fc-query.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) commit 25a09eb9bf2d993228a3d98d1dd271f55efb2358 Author: Behdad Esfahbod Date: Thu Jan 8 03:04:34 2009 -0500 Don't use FcCharSetCopy in FcCharSetMerge The Copy function is actually a ref, not real copy. doc/fccharset.fncs | 2 +- src/fccharset.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) commit d230cf144f84c8a50b932c8b89daa55c1a3620d8 Author: Behdad Esfahbod Date: Wed Jan 7 20:15:20 2009 -0500 Make FcCharSetMerge() public That's needed for apps to be abled to do pruning themselves without the performance penalty of recreating new charsets all the time. doc/fccharset.fncs | 13 +++++++++++++ fontconfig/fontconfig.h | 3 +++ src/fcint.h | 3 --- 3 files changed, 16 insertions(+), 3 deletions(-) commit 3b725d0a318623bba08a9f7c75e4fe71527f5dec Author: Behdad Esfahbod Date: Thu Jan 1 16:29:01 2009 -0500 [doc] Note that fontset returned by FcConfigGetFonts should not be modified doc/fcconfig.fncs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6d764a3f9b89f21b5c2cdf48cbd913b9706d42b2 Author: Behdad Esfahbod Date: Wed Dec 31 20:16:40 2008 -0500 [fcmatch] Move FcFontSetMatch() functionality into FcFontSetMatchInternal() Except for the final FcFontRenderPrepare(). This way we have more flexibility to do caching in FcFontMatch() while leaving FcFontSetMatch() intact. src/fcmatch.c | 42 +++++++++++++++++++++++++++++------------- 1 file changed, 29 insertions(+), 13 deletions(-) commit a5a384c5ffb479e095092c2aaedd406f8785280a Author: Behdad Esfahbod Date: Wed Dec 31 19:44:32 2008 -0500 [fcmatch] When matching, reserve score 0 for when elements don't exist Previously an index j was added to element score to prefer matches earlier in the value list to the later ones. This index started from 0, meaning that the score zero could be generated for the first element. By starting j from one, scores for when the element exists in both pattern and font can never be zero. The score zero is reserved for when the element is NOT available in both font and pattern. We will use this property later. This shouldn't change matching much. The only difference I can think of is that if a font family exists both as a bitmap font and a scalable version, and when requesting it at the size of the bitmap version, previously the font returned was nondeterministic. Now the scalable version will always be preferred. src/fcmatch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c7641f2872329197250db6ffe194df3d33ff42b3 Author: Behdad Esfahbod Date: Wed Dec 31 19:35:27 2008 -0500 [fcmatch] Use larger multipliers to enforce order Previously the matcher multiplied comparison results by 100 and added index value to it. With long lists of families (lots of aliases), reaching 100 is not that hard. That could result in a non-match early in the list to be preferred over a match late in the list. Changing the multiplier from 100 to 1000 should fix that. To keep things relatively in order, the lang multiplier is changed from 1000 to 10000. src/fcmatch.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1b43ccc805f26a78934267d92275cd19b5648e91 Author: Behdad Esfahbod Date: Wed Dec 31 18:10:31 2008 -0500 [fcmatch.c] Fix debug formatting src/fcmatch.c | 1 + 1 file changed, 1 insertion(+) commit a291cfc710c5989ba3e787ae20911d3176bea307 Author: Behdad Esfahbod Date: Wed Dec 31 18:06:07 2008 -0500 Fix comparison of family names to ignore leading space properly Previously fc-match "xxx,nazli" matched Nazli, but "xxx, nazli" didn't. This was because of a bug in FcCompareFamily's short-circuit check that forgot to ignore spaces. src/fcmatch.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 0c93b91db0cdf7c5e901477c266b45c8baeadd00 Author: Behdad Esfahbod Date: Mon Dec 29 20:00:26 2008 -0500 Implement FcPatternFormat and use it in cmdline tools (bug #17107) Still need to add more features, but the API is there, and used by cmdline tools with -f or --format. doc/fcpattern.fncs | 18 ++++++ fc-list/fc-list.c | 38 ++++++++---- fc-list/fc-list.sgml | 22 ++++++- fc-match/fc-match.c | 31 +++++++--- fc-match/fc-match.sgml | 47 ++++++++++----- fc-query/fc-query.c | 25 +++++++- fc-query/fc-query.sgml | 36 +++++++---- fontconfig/fontconfig.h | 3 + src/Makefile.am | 1 + src/fcformat.c | 155 ++++++++++++++++++++++++++++++++++++++++++++++++ src/fcint.h | 5 ++ src/fcname.c | 2 +- 12 files changed, 333 insertions(+), 50 deletions(-) commit 5cf04b201fb5e9dc989d30cf5c30f7575dda56bc Author: Behdad Esfahbod Date: Mon Dec 29 19:27:00 2008 -0500 [.gitignore] Update .gitignore | 2 ++ 1 file changed, 2 insertions(+) commit f9806ab4b9bfa88a782008156511e29f37ce967d Author: Behdad Esfahbod Date: Mon Dec 29 18:58:29 2008 -0500 Remove special-casing of FC_FILE in FcPatternPrint() I can't understand why the special case is needed. Indeed, removing it does not make any difference in the "fc-match --verbose" output, and that's the only time fc-match uses FcPatternPrint. src/fcdbg.c | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) commit 8ae1e3d5dc323542e7def06a42deea62c7ba7027 Author: Behdad Esfahbod Date: Sun Dec 28 16:54:44 2008 -0500 Explicitly chmod() directories (bug #18934) Two changes: - after mkdir(), we immediately chmod(), such that we are not affected by stupid umask's. - if a directory we want to use is not writable but exists, we try a chmod on it. This is to recover from stupid umask's having affected us with older versions. src/fccache.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) commit b6cf885a0a71a0e8f03832fe038e57e6f2778974 Author: Behdad Esfahbod Date: Sun Dec 28 09:03:29 2008 -0500 Don't use identifier named complex src/fcfreetype.c | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) commit 627dd913cf1588436936bc8731c7dd9c96baee90 Author: Behdad Esfahbod Date: Sun Dec 28 08:06:07 2008 -0500 [65-fonts-persian.conf] Set foundry in target=scan instead of target=font conf.d/65-fonts-persian.conf | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 030983185bb6f3f3885dc2e4d80fec330455f11c Author: Harshula Jayasuriya Date: Sun Dec 28 06:13:19 2008 -0500 Fix Sinhala coverage (bug #19288) fc-lang/si.orth | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) commit 6ca36812b4ece5368468278a9ff18f5a9c62b39f Author: Alexey Khoroshilov Date: Sun Dec 28 05:15:45 2008 -0500 Use human-readable file names in the docs (bug #16278) doc/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f26062b277e1781876a30d3170fca8bbba2409ab Author: Behdad Esfahbod Date: Sun Dec 28 04:58:14 2008 -0500 Implement fc-list --quiet ala grep (bug #17141) Exits 1 if no fonts matched, 0 otherwise. fc-list/fc-list.c | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) commit 00c0972acae849ca3b18a7c76894c078185d3be4 Author: Behdad Esfahbod Date: Sun Dec 28 04:48:54 2008 -0500 Fix compile with old FreeType that doesn't have FT_Select_Size() (bug #17498) configure.in | 10 +--------- src/fcfreetype.c | 2 ++ 2 files changed, 3 insertions(+), 9 deletions(-) commit 350dc5f35091e7e5635a6cf239e4cad56e992d01 Author: Behdad Esfahbod Date: Sun Dec 28 04:26:26 2008 -0500 Use __builtin_popcount() when available (bug #17592) src/fccharset.c | 4 ++++ 1 file changed, 4 insertions(+) commit 4c209d5f0c217ff9d8f3b517017212d6362b07a8 Author: Rahul Bhalerao Date: Sun Dec 28 04:10:53 2008 -0500 Add config for new Indic fonts (bug #17856) conf.d/65-nonlatin.conf | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) commit f69db8d49cbd929b80527719be6c0b1e6d49ccac Author: Behdad Esfahbod Date: Sun Dec 28 04:06:01 2008 -0500 Consistently use FcStat() over stat() in all places src/fcatomic.c | 2 +- src/fccache.c | 7 +------ src/fccfg.c | 2 +- src/fcdir.c | 4 ++-- src/fcint.h | 7 +++++++ 5 files changed, 12 insertions(+), 10 deletions(-) commit 9e2ed2513bb4c2ecc7ee09c48c1dc677ea58a723 Author: Behdad Esfahbod Date: Sun Dec 28 04:00:09 2008 -0500 [fccache] Consistently use FcStat() over stat() (bug #18195) src/fccache.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ee2463fbcbe105a413021aa870e8a3f0094a1a24 Author: Behdad Esfahbod Date: Sun Dec 28 03:40:21 2008 -0500 Cleanup symlinks in "make uninstall" (bug #18885) conf.d/Makefile.am | 7 +++++++ 1 file changed, 7 insertions(+) commit fe8e8a1dd777ab53f57c4d31dc9547b3e4ba0d70 Author: Harald Fernengel Date: Sun Dec 28 03:23:58 2008 -0500 Don't use variables named 'bool' (bug #18851) src/fcxml.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit a9ac5c52a658920f1054a12435d8c07205953153 Author: Behdad Esfahbod Date: Sun Dec 28 03:08:38 2008 -0500 [.gitignore] Update .gitignore | 4 ++++ 1 file changed, 4 insertions(+) commit 1c7f4de80cc4819b504707ae143a2d718af42733 Author: Behdad Esfahbod Date: Tue Dec 2 06:07:41 2008 -0500 Fix two more doc typos doc/fcpattern.fncs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 355ed50b185b7879a5c95e1f8697824c6dec6f9f Author: Behdad Esfahbod Date: Mon Sep 22 18:51:11 2008 -0400 Don't call FcPatternGetCharSet in FcSortWalk unless we need to (#17361) src/fcmatch.c | 55 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 24 deletions(-) commit 799691c901ea2d8561980c763a7e78383f1cceec Author: Behdad Esfahbod Date: Mon Sep 22 18:16:30 2008 -0400 Don't leak FcValues string loaded through fcxml.c (#17661) Patch from Caolan McNamara. src/fcpat.c | 10 +++++----- src/fcxml.c | 2 ++ 2 files changed, 7 insertions(+), 5 deletions(-) commit 311da2316f5d40d9b8c72c9965f7d70330f3c498 Author: Chris Wilson Date: Wed Apr 23 09:07:28 2008 +0100 Reduce number of allocations during FcSortWalk(). The current behaviour of FcSortWalk() is to create a new FcCharSet on each iteration that is the union of the previous iteration with the next FcCharSet in the font set. This causes the existing FcCharSet to be reproduced in its entirety and then allocates fresh leaves for the new FcCharSet. In essence the number of allocations is quadratic wrt the number of fonts required. By introducing a new method for merging a new FcCharSet with an existing one we can change the behaviour to be effectively linear with the number of fonts - allocating no more leaves than necessary to cover all the fonts in the set. For example, profiling 'gedit UTF-8-demo.txt' Allocator nAllocs nBytes Before: FcCharSetFindLeafCreate 62886 2012352 FcCharSetPutLeaf 9361 11441108 After: FcCharSetFindLeafCreate 1940 62080 FcCharSetPutLeaf 281 190336 The savings are even more significant for applications like firefox-3.0b5 which need to switch between large number of fonts. Before: FcCharSetFindLeafCreate 4461192 142758144 FcCharSetPutLeaf 1124536 451574172 After: FcCharSetFindLeafCreate 80359 2571488 FcCharSetPutLeaf 18940 9720522 Out of interest, the next most frequent allocations are FcPatternObjectAddWithBinding 526029 10520580 tt_face_load_eblc 42103 2529892 src/fccharset.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/fcint.h | 3 +++ src/fcmatch.c | 13 +++--------- 3 files changed, 68 insertions(+), 10 deletions(-) commit 8072f4b1304efc59fee5e61efc4c4b0fc05bb8fb Author: Behdad Esfahbod Date: Fri Aug 22 18:25:22 2008 -0400 Document how to free return value of FcNameUnparse() doc/fcpattern.fncs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 241fbde1ab28d7beb9b861d8804d0416f0d5589c Author: Behdad Esfahbod Date: Fri Aug 22 18:08:07 2008 -0400 Add FcConfigReference() (#17124) doc/fcconfig.fncs | 20 +++++++++++++++++--- fontconfig/fontconfig.h | 3 +++ src/fccfg.c | 20 ++++++++++++++++++++ src/fcint.h | 2 ++ 4 files changed, 42 insertions(+), 3 deletions(-) commit 03dcaaa08fe324a058c427ab2da993fddaa7b3fd Author: Behdad Esfahbod Date: Fri Aug 22 17:49:02 2008 -0400 Document when config can be NULL (#17105) Note that this also fixes a bug with FcFontList() where previously it was NOT checking whether the config is up-to-date. May want to keep the old behavior and document that ScanInterval is essentially unused internally (FcFontSetList uses it, but we can remove that too). doc/fcconfig.fncs | 21 +++++++++++++++++++++ doc/fcfontset.fncs | 3 +++ src/fclist.c | 3 +++ 3 files changed, 27 insertions(+) commit 1439c8f21af1533a920b54333f79459f456a402e Author: Behdad Esfahbod Date: Fri Aug 22 16:51:33 2008 -0400 Handle -h and --help according to GNU Coding Standards (#17104) Added -h instead of -?. And upon -h and --help, write usave to stdout instead of stdin, and return 0 instead of 1. -? still works like before as that's what getopt returns upon unknown arguments. fc-cache/fc-cache.c | 47 +++++++++++++++++++++++++---------------------- fc-cache/fc-cache.sgml | 4 ++-- fc-cat/fc-cat.c | 45 ++++++++++++++++++++++++--------------------- fc-cat/fc-cat.sgml | 4 ++-- fc-list/fc-list.c | 36 ++++++++++++++++++++---------------- fc-list/fc-list.sgml | 4 ++-- fc-match/fc-match.c | 44 ++++++++++++++++++++++++-------------------- fc-match/fc-match.sgml | 4 ++-- fc-query/fc-query.c | 40 ++++++++++++++++++++++------------------ fc-query/fc-query.sgml | 4 ++-- 10 files changed, 125 insertions(+), 107 deletions(-) commit df243f93be4306e788aebf6b2ac4a7c1b97550ae Author: Behdad Esfahbod Date: Fri Aug 22 13:02:14 2008 -0400 Add WenQuanYi fonts to default conf (#17262, from Mandriva) conf.d/65-nonlatin.conf | 4 ++++ 1 file changed, 4 insertions(+) commit f31d8b1b1a93334611353d7ea846f8006fda855c Author: Behdad Esfahbod Date: Fri Aug 22 03:51:57 2008 -0400 Add Sindhi .orth file. (#17140) fc-lang/sd.orth | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit b9f18922f112f2f551429b692d793dda7d02cd86 Author: Behdad Esfahbod Date: Thu Aug 21 17:17:04 2008 -0400 Update sr.orth to actul subset of Cyrillic used by Serbian (#17208) fc-lang/sr.orth | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) commit 74e16ceeeab86f50c4b6bea12800f70110cd4794 Author: Behdad Esfahbod Date: Thu Aug 14 15:27:16 2008 -0400 Fix docs re 'orig' argument of FcPatternBuild and family Now call it 'p' or 'pattern', since it's modified in place. There is no copying. doc/fcpattern.fncs | 6 +++--- fontconfig/fontconfig.h | 4 ++-- src/fcpat.c | 12 ++++++------ 3 files changed, 11 insertions(+), 11 deletions(-) commit bb65f58f6354b8ad363021457852ad9e841cef89 Author: Behdad Esfahbod Date: Wed Aug 13 16:45:18 2008 -0400 [doc] Fix signature of FcConfigHome() We should write a test to automatically cross-check signatures from public headers to docs. doc/fcconfig.fncs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit e690fbb20ec41ef018a32ac01118a41103c01289 Author: Behdad Esfahbod Date: Wed Aug 13 03:30:23 2008 -0400 Get rid of $Id$ tags COPYING | 2 +- Makefile.am | 2 +- conf.d/Makefile.am | 2 +- configure.in | 2 +- doc/Makefile.am | 2 +- doc/confdir.sgml.in | 2 +- doc/edit-sgml.c | 2 +- doc/fcatomic.fncs | 2 +- doc/fcblanks.fncs | 2 +- doc/fccharset.fncs | 2 +- doc/fcconfig.fncs | 2 +- doc/fcconstant.fncs | 2 +- doc/fcfile.fncs | 2 +- doc/fcfontset.fncs | 2 +- doc/fcfreetype.fncs | 2 +- doc/fcinit.fncs | 2 +- doc/fcmatrix.fncs | 2 +- doc/fcobjectset.fncs | 2 +- doc/fcobjecttype.fncs | 2 +- doc/fcpattern.fncs | 2 +- doc/fcstring.fncs | 2 +- doc/fcstrset.fncs | 2 +- doc/fcvalue.fncs | 2 +- doc/fontconfig-devel.sgml | 2 +- doc/func.sgml | 2 +- doc/version.sgml.in | 2 +- fc-cache/Makefile.am | 2 +- fc-case/fc-case.c | 2 +- fc-case/fccase.tmpl.h | 2 +- fc-cat/Makefile.am | 2 +- fc-glyphname/fc-glyphname.c | 2 +- fc-glyphname/fcglyphname.tmpl.h | 2 +- fc-list/Makefile.am | 2 +- fc-match/Makefile.am | 2 +- fc-query/Makefile.am | 2 +- src/Makefile.am | 2 +- 36 files changed, 36 insertions(+), 36 deletions(-) commit 3042050954ddbe205e3166c9910886839829e788 Author: Behdad Esfahbod Date: Wed Aug 13 03:16:39 2008 -0400 [doc] Document that a zero rescanInterval disables automatic checks (#17103) doc/fcconfig.fncs | 2 ++ 1 file changed, 2 insertions(+) commit 41fc0fe68d88c1fdd38469a51a322dab6a30757d Author: Behdad Esfahbod Date: Wed Aug 13 02:50:35 2008 -0400 Add FcPatternFilter() (#13016) doc/fcpattern.fncs | 12 ++++++++++++ fontconfig/fontconfig.h | 3 +++ src/fcpat.c | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 52 insertions(+) commit e6f14d3c513a9f2e7d75c389db4f65aa0dc0502f Author: Behdad Esfahbod Date: Wed Aug 13 02:47:12 2008 -0400 [doc] Add const decorator for FcPatternDuplicate() doc/fcpattern.fncs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 29874098537e763e8e4cd3fefb1ecc0f36b808a5 Author: Behdad Esfahbod Date: Wed Aug 13 02:24:42 2008 -0400 Implement fc-list --verbose (#13015) A private FcObjectGetSet() is implemented that provides an FcObjectSet of all registered elements. FcFontSetList() is then modified to use the object set from FcObjectGetSet() if provided object-set is NULL. Alternatively FcObjectGetSet() can be made public. In that case fc-list can use that as a base if --verbose is included, and also add any elements provided by the user (though that has no effect, as all elements from the cache are already registered). Currently fc-list ignores user-provided elements if --verbose is specified. fc-list/fc-list.c | 41 ++++++++++++++++++++++++----------------- fc-list/fc-list.sgml | 10 +++++++--- src/fcint.h | 3 +++ src/fclist.c | 10 ++++++++++ src/fcname.c | 14 ++++++++++++++ 5 files changed, 58 insertions(+), 20 deletions(-) commit 77c0d8bce86ca088782d5631617c0ef681d91312 Author: Behdad Esfahbod Date: Wed Aug 13 01:31:18 2008 -0400 Add fc-query (#13019) .gitignore | 2 + Makefile.am | 2 +- configure.in | 1 + doc/fontconfig-user.sgml | 2 +- fc-cache/fc-cache.sgml | 1 + fc-cat/fc-cat.sgml | 1 + fc-list/fc-list.sgml | 1 + fc-match/fc-match.sgml | 1 + fc-query/Makefile.am | 59 ++++++++++++++++ fc-query/fc-query.c | 166 ++++++++++++++++++++++++++++++++++++++++++++ fc-query/fc-query.sgml | 174 +++++++++++++++++++++++++++++++++++++++++++++++ 11 files changed, 408 insertions(+), 2 deletions(-) commit d5b6085c3e40b4e2605cab7ff6c8a621b961b2d2 Author: Behdad Esfahbod Date: Wed Aug 13 00:42:12 2008 -0400 Update man pages fc-cache/fc-cache.sgml | 16 ++++++++++------ fc-cat/fc-cat.sgml | 15 +++++++++++---- fc-list/fc-list.sgml | 12 ++++++++---- fc-match/fc-match.sgml | 30 +++++++++++++++++++++++------- 4 files changed, 52 insertions(+), 21 deletions(-) commit 88261bafff30ec02b5a2180f1f9b786c8ff44e3d Author: Behdad Esfahbod Date: Tue Aug 12 23:44:44 2008 -0400 [fc-match] Fix list of getopt options in --help fc-match/fc-match.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 43291847c58002fca99984dcec4f1bbbb0d0f61d Author: Behdad Esfahbod Date: Tue Aug 12 18:00:35 2008 -0400 Add ~/.fonts.conf.d to default config (#17100) conf.d/50-user.conf | 1 + 1 file changed, 1 insertion(+) commit 4f468454d80bf4f1d256f084afd69cabecf1243e Author: Behdad Esfahbod Date: Tue Aug 12 17:54:45 2008 -0400 Update Thai default families (#16223) Patch from Theppitak Karoonboonyanan conf.d/65-nonlatin.conf | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 2e08e0f243633386b6441784926f928359c92453 Author: Behdad Esfahbod Date: Tue Aug 12 17:52:02 2008 -0400 [doc] Fix signatures of FcPatternGetFTFace and FcPatternGetLangSet (#16272) doc/fcpattern.fncs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 317b849215ab16cfcd0dda0e424efc9216a74f28 Author: Behdad Esfahbod Date: Tue Aug 12 16:34:24 2008 -0400 Replace RCS Id tags with the file name config/Makedefs.in | 2 +- config/install.sh | 2 +- fc-cache/fc-cache.c | 2 +- fc-cat/fc-cat.c | 2 +- fc-lang/aa.orth | 2 +- fc-lang/ab.orth | 2 +- fc-lang/af.orth | 2 +- fc-lang/am.orth | 2 +- fc-lang/ar.orth | 2 +- fc-lang/ast.orth | 2 +- fc-lang/ava.orth | 2 +- fc-lang/ay.orth | 2 +- fc-lang/az.orth | 2 +- fc-lang/az_ir.orth | 2 +- fc-lang/ba.orth | 2 +- fc-lang/bam.orth | 2 +- fc-lang/be.orth | 2 +- fc-lang/bg.orth | 2 +- fc-lang/bh.orth | 2 +- fc-lang/bho.orth | 2 +- fc-lang/bi.orth | 2 +- fc-lang/bin.orth | 2 +- fc-lang/bn.orth | 2 +- fc-lang/bo.orth | 2 +- fc-lang/br.orth | 2 +- fc-lang/bs.orth | 2 +- fc-lang/bua.orth | 2 +- fc-lang/ca.orth | 2 +- fc-lang/ce.orth | 2 +- fc-lang/ch.orth | 2 +- fc-lang/chm.orth | 2 +- fc-lang/chr.orth | 2 +- fc-lang/co.orth | 2 +- fc-lang/cs.orth | 2 +- fc-lang/cu.orth | 2 +- fc-lang/cv.orth | 2 +- fc-lang/cy.orth | 2 +- fc-lang/da.orth | 2 +- fc-lang/de.orth | 2 +- fc-lang/dz.orth | 2 +- fc-lang/el.orth | 2 +- fc-lang/en.orth | 2 +- fc-lang/eo.orth | 2 +- fc-lang/es.orth | 2 +- fc-lang/et.orth | 2 +- fc-lang/eu.orth | 2 +- fc-lang/fa.orth | 2 +- fc-lang/fc-lang.c | 2 +- fc-lang/fc-lang.man | 2 +- fc-lang/fclang.tmpl.h | 2 +- fc-lang/fi.orth | 2 +- fc-lang/fj.orth | 2 +- fc-lang/fo.orth | 2 +- fc-lang/fr.orth | 2 +- fc-lang/ful.orth | 2 +- fc-lang/fur.orth | 2 +- fc-lang/fy.orth | 2 +- fc-lang/ga.orth | 2 +- fc-lang/gd.orth | 2 +- fc-lang/gez.orth | 2 +- fc-lang/gl.orth | 2 +- fc-lang/gn.orth | 2 +- fc-lang/gu.orth | 2 +- fc-lang/gv.orth | 2 +- fc-lang/ha.orth | 2 +- fc-lang/haw.orth | 2 +- fc-lang/he.orth | 2 +- fc-lang/hi.orth | 2 +- fc-lang/ho.orth | 2 +- fc-lang/hr.orth | 2 +- fc-lang/hu.orth | 2 +- fc-lang/hy.orth | 2 +- fc-lang/ia.orth | 2 +- fc-lang/ibo.orth | 2 +- fc-lang/id.orth | 2 +- fc-lang/ie.orth | 2 +- fc-lang/ik.orth | 2 +- fc-lang/io.orth | 2 +- fc-lang/is.orth | 2 +- fc-lang/it.orth | 2 +- fc-lang/iu.orth | 2 +- fc-lang/ja.orth | 2 +- fc-lang/ka.orth | 2 +- fc-lang/kaa.orth | 2 +- fc-lang/ki.orth | 2 +- fc-lang/kk.orth | 2 +- fc-lang/kl.orth | 2 +- fc-lang/km.orth | 2 +- fc-lang/kn.orth | 2 +- fc-lang/ko.orth | 2 +- fc-lang/kok.orth | 2 +- fc-lang/ks.orth | 2 +- fc-lang/ku.orth | 2 +- fc-lang/ku_ir.orth | 2 +- fc-lang/kum.orth | 2 +- fc-lang/kv.orth | 2 +- fc-lang/kw.orth | 2 +- fc-lang/ky.orth | 2 +- fc-lang/la.orth | 2 +- fc-lang/lb.orth | 2 +- fc-lang/lez.orth | 2 +- fc-lang/ln.orth | 2 +- fc-lang/lo.orth | 2 +- fc-lang/lt.orth | 2 +- fc-lang/lv.orth | 2 +- fc-lang/mai.orth | 2 +- fc-lang/mg.orth | 2 +- fc-lang/mh.orth | 2 +- fc-lang/mi.orth | 2 +- fc-lang/mk.orth | 2 +- fc-lang/ml.orth | 2 +- fc-lang/mn.orth | 2 +- fc-lang/mo.orth | 2 +- fc-lang/mr.orth | 2 +- fc-lang/mt.orth | 2 +- fc-lang/my.orth | 2 +- fc-lang/nb.orth | 2 +- fc-lang/nds.orth | 2 +- fc-lang/ne.orth | 2 +- fc-lang/nl.orth | 2 +- fc-lang/nn.orth | 2 +- fc-lang/no.orth | 2 +- fc-lang/nr.orth | 2 +- fc-lang/nso.orth | 2 +- fc-lang/ny.orth | 2 +- fc-lang/oc.orth | 2 +- fc-lang/om.orth | 2 +- fc-lang/or.orth | 2 +- fc-lang/os.orth | 2 +- fc-lang/pa.orth | 2 +- fc-lang/pl.orth | 2 +- fc-lang/ps_af.orth | 2 +- fc-lang/ps_pk.orth | 2 +- fc-lang/pt.orth | 2 +- fc-lang/rm.orth | 2 +- fc-lang/ro.orth | 2 +- fc-lang/ru.orth | 2 +- fc-lang/sa.orth | 2 +- fc-lang/sah.orth | 2 +- fc-lang/sco.orth | 2 +- fc-lang/se.orth | 2 +- fc-lang/sel.orth | 2 +- fc-lang/sh.orth | 2 +- fc-lang/shs.orth | 2 +- fc-lang/si.orth | 2 +- fc-lang/sk.orth | 2 +- fc-lang/sl.orth | 2 +- fc-lang/sm.orth | 2 +- fc-lang/sma.orth | 2 +- fc-lang/smj.orth | 2 +- fc-lang/smn.orth | 2 +- fc-lang/sms.orth | 2 +- fc-lang/so.orth | 2 +- fc-lang/sq.orth | 2 +- fc-lang/sr.orth | 2 +- fc-lang/ss.orth | 2 +- fc-lang/st.orth | 2 +- fc-lang/sv.orth | 2 +- fc-lang/sw.orth | 2 +- fc-lang/syr.orth | 2 +- fc-lang/ta.orth | 2 +- fc-lang/te.orth | 2 +- fc-lang/tg.orth | 2 +- fc-lang/th.orth | 2 +- fc-lang/ti_er.orth | 2 +- fc-lang/ti_et.orth | 2 +- fc-lang/tig.orth | 2 +- fc-lang/tk.orth | 2 +- fc-lang/tl.orth | 2 +- fc-lang/tn.orth | 2 +- fc-lang/to.orth | 2 +- fc-lang/tr.orth | 2 +- fc-lang/ts.orth | 2 +- fc-lang/tt.orth | 2 +- fc-lang/tw.orth | 2 +- fc-lang/tyv.orth | 2 +- fc-lang/ug.orth | 2 +- fc-lang/uk.orth | 2 +- fc-lang/ur.orth | 2 +- fc-lang/uz.orth | 2 +- fc-lang/ven.orth | 2 +- fc-lang/vi.orth | 2 +- fc-lang/vo.orth | 2 +- fc-lang/vot.orth | 2 +- fc-lang/wa.orth | 2 +- fc-lang/wen.orth | 2 +- fc-lang/wo.orth | 2 +- fc-lang/xh.orth | 2 +- fc-lang/yap.orth | 2 +- fc-lang/yi.orth | 2 +- fc-lang/yo.orth | 2 +- fc-lang/zh_cn.orth | 2 +- fc-lang/zh_hk.orth | 2 +- fc-lang/zh_mo.orth | 2 +- fc-lang/zh_sg.orth | 2 +- fc-lang/zh_tw.orth | 2 +- fc-lang/zu.orth | 2 +- fc-list/fc-list.c | 2 +- fc-match/fc-match.c | 2 +- fontconfig/fcfreetype.h | 2 +- fontconfig/fcprivate.h | 2 +- fontconfig/fontconfig.h | 2 +- src/fcatomic.c | 2 +- src/fcblanks.c | 2 +- src/fccfg.c | 2 +- src/fccharset.c | 2 +- src/fcdbg.c | 2 +- src/fcdefault.c | 2 +- src/fcdir.c | 2 +- src/fcfreetype.c | 2 +- src/fcfs.c | 2 +- src/fcinit.c | 2 +- src/fcint.h | 2 +- src/fclang.c | 2 +- src/fclist.c | 2 +- src/fcmatch.c | 2 +- src/fcmatrix.c | 2 +- src/fcname.c | 2 +- src/fcstr.c | 2 +- src/fcxml.c | 2 +- 220 files changed, 220 insertions(+), 220 deletions(-) commit aef608efed2feb867128e528cd9d39ee7e10a0ac Author: Behdad Esfahbod Date: Tue Aug 12 16:11:29 2008 -0400 Add orth file for Maithili mai.orth (#15821) fc-lang/mai.orth | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) commit 1bcf4ae5f2348d7956c435d34f2856ebfaccd6c8 Author: Behdad Esfahbod Date: Tue Aug 12 15:10:04 2008 -0400 When canonizing filenames, squash // and remove final / (#bug 16286) The fact that we now drop final slashes from all filenames without checking that the file name represents a directory may surprise some, but it doesn't bother me really. src/fcstr.c | 3 +++ 1 file changed, 3 insertions(+) commit b21bea3731106ef30224f9255c4232d6e2607803 Author: Behdad Esfahbod Date: Tue Aug 12 14:32:40 2008 -0400 [doc] Fix inaccuracy in FcFontRenderPrepare docs (#16985) doc/fcconfig.fncs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e04afe83de409b880be9a854b34fb624bca5c3b0 Author: Behdad Esfahbod Date: Tue Aug 12 14:10:03 2008 -0400 Avoid C99ism in Win32 code (#16651) src/fccfg.c | 3 ++- src/fcxml.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) commit f7364e6273df6f660e6b01ea5189e88b34ba4602 Author: Benjamin Close Date: Thu Feb 12 10:23:40 2009 +1030 Remove build manpage logfile if it exists doc/Makefile.am | 1 + 1 file changed, 1 insertion(+) commit 0e21b5a4d5609a5dd0f332b412d878b6f1037d29 Author: Peter Date: Sun Jun 22 09:21:05 2008 -0700 Make sure alias files are built first (bug 16464) Signed-off-by: Keith Packard fc-case/Makefile.am | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit a93b4c2aab1d79573abd646147596a8a34b19350 Author: Keith Packard Date: Sat May 31 19:24:35 2008 -0700 Bump version to 2.6.0 README | 6 ++++-- configure.in | 2 +- fontconfig/fontconfig.h | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) commit d0902ee0867bd11e4ff266876a69c258eee8d08d Author: Keith Packard Date: Sat May 24 17:52:41 2008 -0700 Bump version to 2.5.93 README | 34 ++++++++++++++++++++++++++++++++-- configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 3 files changed, 34 insertions(+), 4 deletions(-) commit 8ade2369238a0b439192a847f12fcc9748a6d73a Author: Keith Packard Date: Sat May 24 17:14:24 2008 -0700 Ignore empty elements An empty element would cause every file starting with the current directory to be scanned, probably not what the user wanted. src/fcxml.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 83c5c357abc8d626680943537b4dbc020d6c378c Author: Keith Packard Date: Sat May 24 17:01:12 2008 -0700 Oops. Fix for bug 15928 used wrong path for installed fc-cache. fc-cache lives in $(bindir)/fc-cache, not $(bindir)/fc-cache/fc-cache. Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e91e7efd7b0e0ca6f9f2e718541f99331447b40a Author: Keith Packard Date: Sat May 24 16:32:27 2008 -0700 Libs.private needs freetype libraries To make static linking work, fontconfig.pc needs @FREETYPE_LIBS@ in Libs.private. fontconfig.pc.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ad3fc667914d19435ade56adc8afe584d5605d10 Author: Sayamindu Dasgupta Date: Sat May 24 16:15:27 2008 -0700 FcConfigUptoDate breaks if directory mtime is in the future. Bug 14424. At OLPC, we came across a bug where the Browse activity (based on xulrunner) took 100% CPU after an upgrade/. It turns out the Mozilla uses FcConfigUptoDate() to check if new fonts have been added to the system, and this function was always returning FcFalse since we have the mtimes of some font directories set in the future. The attached patch makes FcConfigUptoDate() print a warning and return FcTrue if mtime of directories are in the future. src/fccfg.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) commit b808204023ab47eb06dc520665eb7a0473320a9b Author: Evgeniy Stepanov Date: Sat May 24 16:09:17 2008 -0700 Fix index/offset for 'decorative' matcher. Bug 15890. It seems indices in _FcMatchers array are slightly mixed up, MATCH_DECORATIVE should be 10, not 11. And MATCH_RASTERIZER_INDEX should be 13, not 12, right? src/fcmatch.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit c6228a34b0ebaab3df395163b3b9246da2aa7d8c Author: Glen Low Date: Sat May 24 15:59:35 2008 -0700 Fix Win32 build error: install tries to run fc-cache locally (bug 15928). When building in Win32 e.g. with MinGW, the install tries to run fc-cache locally but the required DLL's are not in the path. I've included a patch for this to fix Makefile.in to run fc-cache from bindir but obviously this should be applied to Makefile.am instead. (the second part of this patch was already in the tree) Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 557f87f7337df1d78c04d2c993916d1d1748360f Author: Neskie Manuel Date: Sat May 24 15:51:41 2008 -0700 Add Secwepemctsin Orthography. Bug 15996. fc-lang/shs.orth | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) commit a572f547fd46bf169b617108552ab0fa280f4813 Author: Behdad Esfahbod Date: Sat May 24 15:48:00 2008 -0700 Persian conf update. (bug 16066). conf.d/40-nonlatin.conf | 37 +++++++++++++++++++++++++++++++++++++ conf.d/65-fonts-persian.conf | 24 ++++++++++++++++++++---- 2 files changed, 57 insertions(+), 4 deletions(-) commit 0faca4ff826c214c5c5bb0ff7e64a09802230f9d Author: Alexey Khoroshilov Date: Sat May 24 15:44:00 2008 -0700 Fix FcStrDirname documentation. (bug 16068) Description of FcStrDirname is absent in the official documentation of fontconfig-2.5.92. At the same time the source documentation contains description of the function. The problem is a consequence of a misprint in the format of the source documentation file 'fcstring.fncs'. The finish mark of description of the previous function is absent. doc/fcstring.fncs | 1 + 1 file changed, 1 insertion(+) commit 4dfb4aa1d4e1a3195d6f2f6873cb48d1d739a1bd Author: Keith Packard Date: Mon May 5 08:30:44 2008 -0700 Add a copy of dolt.m4 to acinclude.m4. An ancient version of dolt.m4 was installed on my system leading to a broken build on non-Linux systems. acinclude.m4 | 137 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) commit 8d0139b0e68b081c9cdbeaa025fb278105ebf50c Author: Keith Packard Date: Sun May 4 19:08:31 2008 -0700 Freetype 2.3.5 (2007-jul-02) fixes indic font hinting. re-enable (bug 15822) Autohinting for Indic fonts has been disabled since freetype could not handle it properly. But since freetype-2.3.5, the hinting problems for indic fonts have been fixed. Thus this is a request to enable the autohinting in fontconfig again for all the indic fonts. conf.d/25-unhint-nonlatin.conf | 119 ----------------------------------------- 1 file changed, 119 deletions(-) commit 3a3f687b759ceb76fc1e6407980a4b2717a47219 Author: Keith Packard Date: Sun May 4 01:27:42 2008 -0700 Add extended, caps, dunhill style mappings. extended -> expanded. caps, dunhill -> decorative src/fcfreetype.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 13a14cbf56d56c14d53e5f55d7fcc4bdec900994 Author: Keith Packard Date: Sun May 4 01:26:40 2008 -0700 Fix a few memory tracking mistakes. The built-in memory tracking code in fontconfig relies on a lot of manual function call tracking. A pain, but it helps debug leaks. src/fcatomic.c | 2 +- src/fccharset.c | 6 ++++++ src/fcinit.c | 2 ++ src/fcpat.c | 2 +- src/fcstr.c | 9 +++++++-- 5 files changed, 17 insertions(+), 4 deletions(-) commit c6c9400d67ffefa95100d03e6650ea901b05116b Author: Keith Packard Date: Sun May 4 01:25:04 2008 -0700 Call FcFini to make memory debugging easier FcFini frees all libary data structures so valgrind should report 0 allocations in use when the program exits. fc-cache/fc-cache.c | 1 + 1 file changed, 1 insertion(+) commit d33d23ada05a688046e4cc0a48b149fbf44c9ce3 Author: Keith Packard Date: Sat May 3 20:39:07 2008 -0700 Bump version to 2.5.92 README | 40 ++++++++++++++++++++++++++++++++++++++-- configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 3 files changed, 40 insertions(+), 4 deletions(-) commit 366887c3845973a6f81dd2e9e7aec60afbc61c32 Author: Keith Packard Date: Sat May 3 20:38:29 2008 -0700 git ignore doltcompile .gitignore | 1 + 1 file changed, 1 insertion(+) commit 0b15b5f38b94ca1eda2b8b25de939776198c017a Author: Keith Packard Date: Sat May 3 20:37:49 2008 -0700 Allow for RC versions in README update new-version.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 19d124dc4f9a68e1c9ddce58bf79a5e11d2ccbfd Author: Keith Packard Date: Sat May 3 20:23:37 2008 -0700 Deal with libtool 2.2 which doesn't let us use LT_ variables. (bug 15692) Libtool-2.2 introduces new restrictions. So now it does not allow LT_* variables as it includes marcros: m4_pattern_forbid([^_?LT_[A-Z_]+$]) Rename the LT_ variables to LIBT_ to work around this restriction. configure.in | 18 +++++++++--------- fontconfig-zip.in | 2 +- src/Makefile.am | 6 +++--- 3 files changed, 13 insertions(+), 13 deletions(-) commit 0028f72bc818ca3bc343383fb644765ae12ce769 Author: Carlo Bramini Date: Sat May 3 20:17:16 2008 -0700 Add FreeType-dependent functions to fontconfig.def file. (bug 15415) With PUBLIC_FILES no longer containing the freetype-dependent symbols, those must be added to the fontconfig.def file build process. src/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bdbc26f3d970581a3248c245451f7fbfb1609601 Author: Keith Packard Date: Sat May 3 20:14:07 2008 -0700 Make fc-match behave better when style is unknown (bug 15332) fc-match/fc-match.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3322ca855330631e0d849e6beca0c2d82390898f Author: Keith Packard Date: Sat May 3 20:07:35 2008 -0700 Use of ":=" in src/Makefile.am is unportable (bug 14420) Building 2.5.91 on Solaris with the native make(1) yields ... Making all in src make: Fatal error in reader: Makefile, line 313: Unexpected end of line seen Current working directory /tmp/fontconfig-2.5.91/src *** Error code 1 This is due to the following line (src/Makefile.am:143): CLEANFILES := $(ALIAS_FILES) Changing that to a standard assignment ("=") fixes the problem. I believe the ":=" is a typo. ALIAS_FILES is just a statically assigned variable; it's not like evaluating it more than once would be a problem. src/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit df8ceebdbe735226bef602614921d517321c690f Author: Keith Packard Date: Sat May 3 20:06:48 2008 -0700 Remove doltcompile in distclean Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9ffa2fa7efa7815b8808e744c3601631fe1810d7 Author: Ryan Schmidt Date: Sat May 3 19:49:07 2008 -0700 fontconfig build fails if "head" is missing or unusable (bug 14304) If the /usr/bin/head program is missing or unusable, or if an unusable head program is listed first in the PATH, fontconfig fails to build using "sed -n 1p" instead of "head -1" would be a suitable workaround. src/makealias | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6d65081e35fc1ffae1212f173853b0693645192e Author: Dennis Schridde Date: Sat May 3 19:45:31 2008 -0700 Proper config path for static libraries in win32 Since fontconfig didn't have special handling for paths in static Windows libraries, I've created a patch which should fix this. Basically it does this: fccfg.c: If fontconfig_path was uninitialised it tries to get the directory the exe is in and uses a fonts/ dir inside that. fcxml.c: In case the fonts.conf lists a CUSTOMFONTDIR, it searches for a fonts/ directory where the exe is located. src/fccfg.c | 26 +++++++++++++++++++++----- src/fcxml.c | 22 +++++++++++++++++++++- 2 files changed, 42 insertions(+), 6 deletions(-) commit ae6fac08029bce11487d2d20184b1cabb4e0ec34 Author: Changwoo Ryu Date: Sat May 3 19:39:56 2008 -0700 Korean font in the default config - replacing baekmuk with un (bug 13569) I propose to replace the default Baekmuk Korean fonts with Un fonts. Some people don't agree but most Korean people prefer Un fonts to Baekmuk ones. Un fonts just look better, at least in the most common Linux desktops (antialiased, GNOME or KDE, high resolution). conf.d/40-nonlatin.conf | 2 ++ conf.d/65-nonlatin.conf | 4 ++++ 2 files changed, 6 insertions(+) commit 53aec111074cf7b46d15eb84a55791d3c95bc15e Author: Sylvain Pasche Date: Sat May 3 19:33:45 2008 -0700 Fontconfig options for freetype sub-pixel filter configuration David Turner has modified FreeType to be able to render sub-pixel decimated glyphs using different methods of filtering. Fontconfig needs new configurables to support selecting these new filtering options. A patch follows that would correspond to one available for Cairo in bug 10301. doc/fontconfig-devel.sgml | 1 + doc/fontconfig-user.sgml | 5 +++++ fontconfig/fontconfig.h | 9 ++++++++- src/fcint.h | 3 ++- src/fcname.c | 7 ++++++- 5 files changed, 22 insertions(+), 3 deletions(-) commit c26344ecfc1d3b85671f5d948a10d5cc27c21c2f Author: Frederic Crozat Date: Sat May 3 19:26:09 2008 -0700 Merge some of Mandriva configuration into upstream configuration. Bug 13247 This is merging some parts of Mandriva fontconfig changes, mostly adding and documenting fonts to common aliases. conf.d/25-unhint-nonlatin.conf | 20 +++++++++++ conf.d/60-latin.conf | 3 ++ conf.d/65-nonlatin.conf | 81 ++++++++++++++++++++++++++++++++++++++---- conf.d/69-unifont.conf | 4 +++ 4 files changed, 101 insertions(+), 7 deletions(-) commit c014142a207d6f3ac63580dfb0cacb243776f7c5 Author: Keith Packard Date: Sat May 3 19:09:57 2008 -0700 Add --all flag to fc-match to show the untrimmed list. Bug 13018. fc-match/fc-match.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) commit 8415442f9bb8ad624c9940adf187390468c70548 Author: Keith Packard Date: Sat May 3 18:04:32 2008 -0700 Add some sample cursive and fantasy families. conf.d/45-latin.conf | 20 ++++++++++++++++++++ conf.d/60-latin.conf | 24 ++++++++++++++++++++++++ 2 files changed, 44 insertions(+) commit 73e8ae3ac8890af2dd8dd769686e2d34b749e3d0 Author: Keith Packard Date: Sat May 3 17:43:39 2008 -0700 Remove size and dpi values from bitmap fonts. Bug 8765. The only relevant information is the pixel size; don't report anything else. src/fcfreetype.c | 34 ---------------------------------- 1 file changed, 34 deletions(-) commit 60421f5d68e81478430c2d9c796eedbf6d43b3cf Author: Keith Packard Date: Sat May 3 17:19:43 2008 -0700 Work around for bitmap-only TrueType fonts that are missing the glyf table. Bitmap-only TrueType fonts without a glyf table will not load a glyph when FT_LOAD_NO_SCALE is set. Work around this by identifying TrueType fonts that have no glyphs and select a single strike to measure the glyph map with. src/fcfreetype.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 51 insertions(+), 7 deletions(-) commit ef9db2e2d286c4c26a2cb06aef14d175c33d0898 Author: Keith Packard Date: Sat May 3 17:18:01 2008 -0700 Use DOLT if available configure.in | 1 + 1 file changed, 1 insertion(+) commit ba884599133e444b5f6d0b9b6981079cf8059b9f Author: Eric Anholt Date: Fri Apr 18 11:52:41 2008 -0700 Fix build with !ENABLE_DOCS and no built manpages. fc-cache/Makefile.am | 8 ++++++-- fc-cat/Makefile.am | 8 ++++++-- fc-list/Makefile.am | 8 ++++++-- fc-match/Makefile.am | 8 ++++++-- 4 files changed, 24 insertions(+), 8 deletions(-) commit 0dffe625d43c1165f8b84f97e8ba098793e2cf7b Author: Keith Packard Date: Thu Jan 10 10:58:25 2008 -0800 Bump version to 2.5.91 README | 26 ++++++++++++++++++++++---- configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 3 files changed, 24 insertions(+), 6 deletions(-) commit b2cbf483ab520ff21ca2152f960498d181613608 Author: Keith Packard Date: Thu Jan 10 10:58:22 2008 -0800 git-tag requires space after -m flag new-version.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 51f1536479064c2d224860c15271a9b14c87fd62 Author: Keith Packard Date: Thu Jan 10 10:56:52 2008 -0800 new-version.sh was mis-editing files new-version.sh | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) commit 554dc2e7b7e3c1cb6409d0cd786cfbea480fcf69 Author: Keith Packard Date: Thu Jan 10 10:48:00 2008 -0800 Add more files to .gitignore .gitignore | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 94d4f51d854f33b158e7eef2df75a5b21e95fb27 Author: Keith Packard Date: Thu Jan 10 10:43:33 2008 -0800 Distribute khmer font aliases conf.d/65-khmer.conf | 16 ++++++++++++++++ conf.d/Makefile.am | 1 + 2 files changed, 17 insertions(+) commit fba7c37f98658e3ee94bb454868885b7f3a8ec5e Author: Keith Packard Date: Thu Jan 10 10:40:41 2008 -0800 Create new-version.sh to help with releases, update INSTALL instructions INSTALL | 36 +++++------------ new-version.sh | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 131 insertions(+), 26 deletions(-) commit ad43ccaafa4f987b982afa2fff07ee8003c51a81 Author: Keith Packard Date: Thu Jan 10 08:58:57 2008 -0800 Distribute new fcftint.h file src/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 32fed4572754c2d484cd1605ff273c3fbfbd09bb Author: Keith Packard Date: Tue Jan 8 12:34:19 2008 -0800 Eliminate references to freetype from utility Makefile.am's The utility programs don't use any freetype interfaces, so they don't need to directly refer to freetype headers or libraries. fc-cache/Makefile.am | 4 ++-- fc-cat/Makefile.am | 4 ++-- fc-list/Makefile.am | 4 ++-- fc-match/Makefile.am | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) commit a0a1da22a4a8e66e47e2ec8ac0515741b8ad7a7f Author: Keith Packard Date: Mon Jan 7 16:31:06 2008 -0800 Include fcftaliastail.h so that the freetype funcs are exported. This header file needs to be included at the end of every file that exports any freetype symbols. src/fcfreetype.c | 1 + src/fclang.c | 1 + src/fcpat.c | 1 + 3 files changed, 3 insertions(+) commit dbd065ad312921308add99fc4cb31457d9045e6a Author: Keith Packard Date: Wed Jan 2 08:47:14 2008 -0800 Remove freetype requirement for build-time applications. This avoids requiring the freetype development files when cross compiling fc-arch/Makefile.am | 2 +- fc-case/Makefile.am | 2 +- fc-glyphname/Makefile.am | 2 +- fc-lang/Makefile.am | 2 +- src/Makefile.am | 13 +++++++++--- src/fcfreetype.c | 1 + src/fcftint.h | 54 ++++++++++++++++++++++++++++++++++++++++++++++++ src/fcint.h | 18 +--------------- src/fclang.c | 1 + src/fcpat.c | 1 + src/makealias | 6 ++++-- 11 files changed, 76 insertions(+), 26 deletions(-) commit 0aa5fbaa0df9d6c7bee8e0839dd443de9c48a402 Author: Keith Packard Date: Sun Dec 23 14:06:41 2007 -0800 Fix OOM failure case in FcPStackPush. When allocation for the node attributes fail, clean up the node allocation and report failure. src/fcxml.c | 5 +++++ 1 file changed, 5 insertions(+) commit 0f7870887adff6db3cffda5485418143f2bfa1f6 Author: Hongbo Zhao Date: Wed Dec 12 21:47:33 2007 -0800 Not_contain should use strstr, not strcmp on strings. (bug 13632) For Version 2.5.0, (same for previous version 2.4.2), in source file fccfg.c, on line 700, Original: ret = FcStrCmpIgnoreCase (left.u.s, right.u.s) == 0; Should change to: ret = FcStrStrIgnoreCase (left.u.s, right.u.s) == 0; I think this is just a mistake when copy-n-paste similar codes in the same function. Apparently, return for "Not_contain" should be just the inverse of "Contain", not the same as "Equal". src/fccfg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6e5d2cb931f11f0aba8d187e49ddc7cc92a5be85 Author: Keith Packard Date: Sun Nov 25 16:35:55 2007 -0800 Move conf.avail/README to conf.d/README (bug 13392) Because conf.d is where most people look first. And the comment at the top of the README file says conf.d/README too. conf.d/Makefile.am | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 8a0bd93e8a81b105206c1433e2da55b1acef1070 Author: Keith Packard Date: Tue Nov 13 18:56:44 2007 -0800 Bump version number to 2.5 README | 15 +++++++++++++-- configure.in | 2 +- fontconfig/fontconfig.h | 4 ++-- 3 files changed, 16 insertions(+), 5 deletions(-) commit 8a3dc4880c1182ea446cdbc0885e956c6517cf83 Author: Tor Lillqvist Date: Tue Nov 13 16:41:55 2007 -0800 Workaround for stat() brokenness in Microsoft's C library (bug 8526) Fix a couple of longstanding problems with fontconfig on Windows that manifest themselves especially in GIMP. The root cause to the problems is in Microsoft's incredibly stupid stat() implementation. Basically, stat() returns wrong timestamp fields for files on NTFS filesystems on machines that use automatic DST switching. See for instance http://bugzilla.gnome.org/show_bug.cgi?id=154968 and http://www.codeproject.com/datetime/dstbugs.asp As fccache.c now looks at more fields in the stat struct I fill in them all. I noticed that fstat() is used only on a fd just after opening it, so on Win32 I just call my stat() replacement before opening instead... Implementing a good replacement for fstat() would be harder because the code in fccache.c wants to compare inode numbers. There are no (readily accessible) inode numbers on Win32, so I fake it with the hash of the full file name, in the case as it is on disk. And fstat() doesn't know the full file name, so it would be rather hard to come up with a inode number to identify the file. The patch also adds similar handling for the cache directory as for the fonts directory: If a cachedir element in fonts.conf contains the magic string "WINDOWSTEMPDIR_FONTCONFIG_CACHE" it is replaced at runtime with a path under the machine's (or user's) temp folder as returned by GetTempPath(). I don't want to hardcode any pathnames in a fonts.conf intended to be distributed to end-users, most of which who wouldn't know how to edit it anyway. And requiring an installer to edit it gets complicated. configure.in | 6 +++- fc-cache/Makefile.am | 3 ++ src/fccache.c | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++- src/fcxml.c | 24 ++++++++++++++ 4 files changed, 124 insertions(+), 2 deletions(-) commit 1315db01b626aedd27e3e05bde96ce46c253629b Author: Keith Packard Date: Tue Nov 13 15:48:30 2007 -0800 Revert "Remove fcprivate.h, move the remaining macros to fcint.h." This reverts commit b607922909acfc7ae96de688ed34efd19cd038ac. Conflicts: src/Makefile.am Xft still uses the macros that are in fcprivate.h. Document those macros and include fcprivate.h in the published header files. doc/check-missing-doc | 1 + doc/fcobjectset.fncs | 11 +++++ doc/fcpattern.fncs | 12 ++++- fontconfig/Makefile.am | 3 +- fontconfig/fcprivate.h | 123 ++++++++++++++++++++++++++++++++++++++++++++++++ fontconfig/fontconfig.h | 2 +- src/Makefile.am | 3 +- src/fcint.h | 95 +------------------------------------ 8 files changed, 152 insertions(+), 98 deletions(-) commit eaf4470a465cbfb95e2ba4df017d45f7b1d9c131 Author: Keith Packard Date: Tue Nov 13 15:16:58 2007 -0800 Document that FcConfigGetFonts returns the internal fontset (bug 13197) FcConfigGetFonts returns the internal font set used by the library which must not be freed by the application or 'bad things' will happen. doc/fcconfig.fncs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 3fb38716aefef0fac300dee059403c04c1cbaa6c Author: Keith Packard Date: Tue Nov 13 15:11:35 2007 -0800 Document that Match calls FcFontRenderPrepare (bug 13162). The behaviour of FcFontMatch and FcFontSetMatch is hard to understand without knowing that they call FcFontRenderPrepare. doc/fcconfig.fncs | 12 ++++++++---- doc/fcfontset.fncs | 12 ++++++++---- 2 files changed, 16 insertions(+), 8 deletions(-) commit fab44f3cb63dc8bd1285dcbd6ad4f1f468f91daf Author: Keith Packard Date: Tue Nov 13 14:58:39 2007 -0800 Document several function return values (Bug 13145). Several functions had no indication of what the return value would be, mostly these were allocation failure returns. doc/fcatomic.fncs | 4 +++- doc/fcconfig.fncs | 21 ++++++++++++++------- doc/fcconstant.fncs | 8 ++++++-- doc/fcfile.fncs | 28 +++++++++++++++------------- doc/fcfontset.fncs | 3 ++- doc/fcinit.fncs | 7 +++++-- doc/fcobjectset.fncs | 3 ++- doc/fcobjecttype.fncs | 6 ++++-- 8 files changed, 51 insertions(+), 29 deletions(-) commit ed7955a58f93927eb304ecf8d4d5274dbdc2362b Author: Keith Packard Date: Mon Nov 5 16:08:55 2007 -0800 Fix parallel build in doc directory. docbook2man has fixed output file names; place output in a subdirectory to avoid collisions. doc/Makefile.am | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) commit 37e9d33950df03f76b6938ae5675ecfc853eb903 Author: Keith Packard Date: Mon Nov 5 15:52:45 2007 -0800 Update version numbers to 2.4.92 (2.5 RC2) README | 49 +++++++++++++++++++++++++++++++++++++++++++++++-- fontconfig/fontconfig.h | 2 +- 2 files changed, 48 insertions(+), 3 deletions(-) commit a504f6b5394b96d2c6a24772b61705227a8e88ab Author: Behdad Esfahbod Date: Mon Nov 5 18:12:51 2007 -0500 Simplify/improve 30-metric-aliases.conf conf.d/30-metric-aliases.conf | 192 ++++++++++++++++++++++++------------------ 1 file changed, 109 insertions(+), 83 deletions(-) commit cbff442c69bfbb6895f5033dfcda325c0508cb3f Author: Behdad Esfahbod Date: Mon Nov 5 17:07:36 2007 -0500 Remove list of available conf files from README. It was redundant and out-dated. conf.d/README | 29 +---------------------------- 1 file changed, 1 insertion(+), 28 deletions(-) commit 0294bda4800b94828b59139e6205730c74261c40 Author: Behdad Esfahbod Date: Mon Nov 5 17:05:36 2007 -0500 Fix documented conf-file naming format in README conf.d/README | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 07d04da76c4009552866ae0d2f85659186ef77d6 Author: Behdad Esfahbod Date: Mon Nov 5 17:01:44 2007 -0500 Remove 25-unhint-nonlatin.conf from default configuration by not linking it. conf.d/Makefile.am | 1 - 1 file changed, 1 deletion(-) commit 9bac30859b9b2b532b9028dc6fe1730b87e95686 Author: Behdad Esfahbod Date: Mon Nov 5 16:46:19 2007 -0500 Oops, fix Makefile.am. conf.d/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 93b4049c9ac6283fbf05a2a414ff3b4edaef822e Author: Behdad Esfahbod Date: Mon Nov 5 16:43:49 2007 -0500 Remove 20-lohit-gujarati.conf. It's covered by 25-unhint-nonlatin.conf now. conf.d/20-lohit-gujarati.conf | 11 ----------- conf.d/Makefile.am | 2 -- 2 files changed, 13 deletions(-) commit 7465091fa90753440ed775de5783387bc4fd9cc4 Author: Behdad Esfahbod Date: Mon Nov 5 16:43:14 2007 -0500 Remove redundant/obsolete comments from conf files. Conf files had an initial comment mentioning the files' name. This was outdated and wrong in most cases. There's no real use in that. conf.d/10-autohint.conf | 1 - conf.d/10-no-sub-pixel.conf | 1 - conf.d/10-sub-pixel-bgr.conf | 1 - conf.d/10-sub-pixel-rgb.conf | 1 - conf.d/10-sub-pixel-vbgr.conf | 1 - conf.d/10-sub-pixel-vrgb.conf | 1 - conf.d/10-unhinted.conf | 1 - conf.d/20-fix-globaladvance.conf | 1 - conf.d/20-unhint-small-vera.conf | 1 - conf.d/25-unhint-nonlatin.conf | 1 - conf.d/30-metric-aliases.conf | 1 - conf.d/30-urw-aliases.conf | 1 - conf.d/50-user.conf | 1 - conf.d/51-local.conf | 1 - conf.d/65-fonts-persian.conf | 1 - conf.d/70-no-bitmaps.conf | 1 - conf.d/70-yes-bitmaps.conf | 1 - conf.d/80-delicious.conf | 1 - 18 files changed, 18 deletions(-) commit 531a143858aa1b5c82ee20bdacc292c0a31b6cfb Author: Behdad Esfahbod Date: Mon Nov 5 16:40:25 2007 -0500 Use binding="same" in 30-urw-aliases.conf and remove duplicate entries. Times, Helvetical, and Courier are already handled in 30-metric-aliases.conf. Remove them here and add a comment instead. conf.d/30-urw-aliases.conf | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) commit 4b51f173c99152586db26b03752873a4b4020672 Author: Behdad Esfahbod Date: Mon Nov 5 16:36:55 2007 -0500 Split 40-generic.conf into 40-nonlatin.conf and 45-latin.conf conf.d/40-generic.conf | 80 ------------------------------------------------- conf.d/40-nonlatin.conf | 51 +++++++++++++++++++++++++++++++ conf.d/45-latin.conf | 56 ++++++++++++++++++++++++++++++++++ conf.d/Makefile.am | 6 ++-- conf.d/README | 5 ++-- 5 files changed, 114 insertions(+), 84 deletions(-) commit 39968fb223bf2eeb5502553c8d316dc4914a32ba Author: Behdad Esfahbod Date: Mon Nov 5 16:14:35 2007 -0500 Add/update config files from Fedora. conf.d/25-unhint-nonlatin.conf | 228 +++++++++++++++++++++++++++++++++++++++++ conf.d/30-amt-aliases.conf | 21 ---- conf.d/30-metric-aliases.conf | 186 +++++++++++++++++++++++++++++++++ conf.d/40-generic.conf | 22 +++- conf.d/65-nonlatin.conf | 45 ++++++++ conf.d/Makefile.am | 6 +- conf.d/README | 3 +- 7 files changed, 483 insertions(+), 28 deletions(-) commit cf223cc7bcae94e839d7ac1e980f289cca5199b0 Author: Behdad Esfahbod Date: Mon Nov 5 15:29:44 2007 -0500 Add FcGetLangs() and FcLangGetCharSet(). doc/fclangset.fncs | 16 ++++++++++++++++ fontconfig/fontconfig.h | 6 ++++++ src/fcint.h | 3 --- src/fclang.c | 20 ++++++++++++++++++-- 4 files changed, 40 insertions(+), 5 deletions(-) commit 811995b79db16be39046dbbffcc5a7d66f88b731 Author: Behdad Esfahbod Date: Mon Nov 5 15:29:03 2007 -0500 Fix trivial bugs in edit-sgml.c doc/edit-sgml.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit de1faa42d1425f80366707a730ea919c57e57b2f Author: Keith Packard Date: Sun Nov 4 12:20:45 2007 -0800 Export FcConfig{G,S}etRescanInverval from .so, mark as deprecated. These two names are typos of the correct names. Instead of simply changing them, the correct thing to do is leave them in the library, add the correct functions and mark them as deprecated so any source packages will be updated. This requires bumping the minor version of the library (for adding APIs) instead of bumping the major version of the library (for removing APIs). configure.in | 6 +++--- fontconfig/fontconfig.h | 13 +++++++++++++ src/Makefile.am | 5 +++-- src/fccfg.c | 16 ++++++++++++++++ src/fcdeprecate.h | 36 ++++++++++++++++++++++++++++++++++++ src/fcint.h | 1 + 6 files changed, 72 insertions(+), 5 deletions(-) commit 69d3eb9cb8e58ab771170f68868748204a4793ab Author: Keith Packard Date: Sat Nov 3 23:43:48 2007 -0700 Ignore new generated documentation .gitignore | 3 +++ 1 file changed, 3 insertions(+) commit dc7b6f1d79b5508706be9242b79180727701e54f Author: Keith Packard Date: Sat Nov 3 23:42:32 2007 -0700 Link new function documentation into the fontconfig-devel.sgml doc/fontconfig-devel.sgml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit dac27f2f1a766b042487827c726b3ccae147d282 Author: Keith Packard Date: Sat Nov 3 23:41:38 2007 -0700 Formatting syntax mistake in doc/fclangset.fncs. ls needed to be ls. doc/fclangset.fncs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9bfb41ffefe41c90c8b16e155e04e6c6a5a2c1fd Author: Keith Packard Date: Sat Nov 3 23:23:55 2007 -0700 Generate fccache.sgml, fcdircache.sgml and fclangset.sgml. Just adding the .fncs versions doesn't get these files generated. doc/Makefile.am | 3 +++ 1 file changed, 3 insertions(+) commit bfdc0047c670b0ac38bf050bbb81e0ef7299aa1f Author: Keith Packard Date: Sat Nov 3 23:23:09 2007 -0700 Fix formatting syntax in doc/fccache.fncs doc/fccache.fncs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit f2772d6b45bcfc27618968fdbb08dcc50a18be22 Author: Keith Packard Date: Sat Nov 3 23:03:11 2007 -0700 Replace incorrect documentation uses of 'char' with 'FcChar8' (bug 13002). doc/fcconfig.fncs | 10 +++++----- doc/fcfile.fncs | 6 +++--- doc/fcfreetype.fncs | 4 ++-- doc/fcpattern.fncs | 6 +++--- doc/fontconfig-devel.sgml | 2 +- 5 files changed, 14 insertions(+), 14 deletions(-) commit b4a3e834126a3cac7fbf2212087825f886be1f1d Author: Keith Packard Date: Sat Nov 3 22:53:12 2007 -0700 Remove references to FcConfigParse and FcConfigLoad. These functions no longer exist. doc/fcconfig.fncs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit fc141b492bab23d58d248fc3b6d34bcb9c5faa99 Author: Keith Packard Date: Sat Nov 3 22:45:31 2007 -0700 Have FcConfigSetCurrent accept the current configuration and simply return without updating anything. src/fccfg.c | 3 +++ 1 file changed, 3 insertions(+) commit 7c6939793b1691b4b950a856cdcd31f1e020b14a Author: Keith Packard Date: Sat Nov 3 22:39:54 2007 -0700 Update documentation for stale FcConfigGetConfig function. The old per-user cache filename is no longer used. doc/fcconfig.fncs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 026fe895e487d0a9607a8506ab8be2ff6022ea19 Author: Keith Packard Date: Sat Nov 3 22:31:16 2007 -0700 Update documentation for FcStrCopyFilename (bug 12964). FcStrCopyFilename constructs a canonical path for any argument, including expanding leading ~ and editing '.' and '..' elements out of the resulting path. doc/fcstring.fncs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) commit a190678e3c4497870679808dde418191407be91d Author: Keith Packard Date: Sat Nov 3 22:23:28 2007 -0700 Document previously undocumented functions. (bug 12963) doc/Makefile.am | 3 ++ doc/check-missing-doc | 4 +- doc/fccache.fncs | 68 +++++++++++++++++++++++++ doc/fccharset.fncs | 24 +++++++++ doc/fcconfig.fncs | 31 ++++++++++++ doc/fcdircache.fncs | 88 ++++++++++++++++++++++++++++++++ doc/fcfile.fncs | 29 ++++++----- doc/fcfontset.fncs | 83 +++++++++++++++++++++++++++++++ doc/fcfreetype.fncs | 22 ++++++++ doc/fclangset.fncs | 124 ++++++++++++++++++++++++++++++++++++++++++++++ doc/fcmatrix.fncs | 2 + doc/fcpattern.fncs | 52 ++++++++++++++++++- doc/fcstring.fncs | 80 ++++++++++++++++++++++++------ doc/fcstrset.fncs | 11 ++++ doc/fcvalue.fncs | 21 ++++++++ doc/fontconfig-devel.sgml | 26 +++++++++- 16 files changed, 638 insertions(+), 30 deletions(-) commit 9a54f8a1945e614e07446412a2df534fbc1f77cb Author: Keith Packard Date: Sat Nov 3 22:01:33 2007 -0700 Verify documentation covers exposed symbols. Add check-missing-doc script to make sure the documentation matches the complete list of symbols exported from the header files before release. doc/Makefile.am | 6 +++++- doc/check-missing-doc | 23 +++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) commit c833409f6b68c191ac354cd2fdeb183f73a65c4c Author: Keith Packard Date: Sat Nov 3 21:58:34 2007 -0700 Use FcLangDifferentTerritory instead of FcLangDifferentCountry. src/fclang.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 9b84ecff92b8dccf6559a858e35762c0f664429a Author: Keith Packard Date: Sat Nov 3 21:57:51 2007 -0700 Don't check cache file time stamps when cleaning cache dir. Cache file mtime is meaningless now that the directory time is encoded in the cache. fc-cache/fc-cache.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) commit 1d93c1752f03b833603ea31c2cfbd16868c44922 Author: Keith Packard Date: Sat Nov 3 21:56:36 2007 -0700 Typo error in function name: Inverval -> interval src/fccfg.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b868a1447341ebe9962007069ec8658550e62483 Author: Keith Packard Date: Sat Nov 3 21:55:39 2007 -0700 Track line numbers in sgml edit tool input. Errors in the documentation can be hard to find unless the tool outputs the line number where the problem exists. doc/edit-sgml.c | 85 +++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 52 insertions(+), 33 deletions(-) commit 088b582a26bce1ab3ec081a80fd6a6fe43223da5 Author: Keith Packard Date: Sat Nov 3 21:54:49 2007 -0700 Clean up exported names in fontconfig.h. Fix typo errors (Inverval indeed). Remove FcPattern *p from FcValue (unused) Remove spurious FcPublic from formals. fontconfig/fontconfig.h | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) commit e37d10fa74217a6102003882d49ac323f28db678 Author: Keith Packard Date: Sat Nov 3 14:16:29 2007 -0700 Make file_stat argument to FcDirCacheLoadFile optional. Allow file_stat to be NULL by using a local stat structure in that case. src/fccache.c | 3 +++ 1 file changed, 3 insertions(+) commit 2ddce88cde79d8bf8959d614af883999d5c66a85 Author: Keith Packard Date: Sat Nov 3 13:44:59 2007 -0700 Document skipping of fonts from FcFileScan/FcDirScan. FcFileScan and FcDirScan will skip fonts under direction of the configuration and default fontconfig policy. doc/fcfile.fncs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 5d82c4c85d201011e60adcf887d15341ecdd5729 Author: Keith Packard Date: Sat Nov 3 13:26:16 2007 -0700 Correct documentation for FcConfigUptoDate (bug 12948). FcConfigUptoDate only checks whether files have been modified since the configuration was created. Any changes to the configuration through the API since then are not considered. doc/fcconfig.fncs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b607922909acfc7ae96de688ed34efd19cd038ac Author: Keith Packard Date: Sat Nov 3 13:09:01 2007 -0700 Remove fcprivate.h, move the remaining macros to fcint.h. fcprivate.h was supposed to extend the fontconfig API for the various fontconfig utilities. Instead, just have those utilities use the internal fcint.h header file (which they already do), removing fcprivate.h from the installation and hence from the defacto public API. fontconfig/Makefile.am | 3 +- fontconfig/fcprivate.h | 123 ------------------------------------------------- src/Makefile.am | 3 +- src/fcint.h | 95 +++++++++++++++++++++++++++++++++++++- 4 files changed, 96 insertions(+), 128 deletions(-) commit 910db318ae67693f7bc17f0bdc61caaf555365ae Author: Keith Packard Date: Sat Nov 3 13:05:25 2007 -0700 Correct documentation for FcAtomicLock (Bug 12947). FcAtomicLock can only be called once from any process. doc/fcatomic.fncs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit d0e2a0f3a37ace2d5de6f18e7871a8efaf6580c2 Author: Behdad Esfahbod Date: Fri Oct 26 02:02:19 2007 -0400 Port fonts-persian.conf to new alias syntax with binding="same" Signed-off-by: Keith Packard conf.d/65-fonts-persian.conf | 377 ++++++++++++++----------------------------- 1 file changed, 121 insertions(+), 256 deletions(-) commit 681bb379de1847cf288ba27cf29243c8395cff17 Author: Keith Packard Date: Thu Oct 25 22:30:49 2007 -0700 Respect "binding" attribute in entries. This makes creating "same" aliases for renamed font families far easier. fonts.dtd | 2 ++ src/fcxml.c | 58 ++++++++++++++++++++++++++++++++++++---------------------- 2 files changed, 38 insertions(+), 22 deletions(-) commit 0602c605af04ea73af700b223ec4ac1dfd5a36f1 Author: Behdad Esfahbod Date: Thu Oct 25 21:35:45 2007 -0700 Make fc-match --sort call FcFontRenderPrepare. This makes the --sort and regular output the same for each font. fc-match/fc-match.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) commit ad27687f725faf7df83b161c77e99bc7bedf5b3d Author: Keith Packard Date: Thu Oct 25 21:23:36 2007 -0700 Also check configDirs mtimes in FcConfigUptoDate Checking only config files and font directories can miss changes which affect only a configuration directory. Check those to catch any changes. src/fccfg.c | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) commit 89d6119c0283969cb28dc6dfc8eac4cc1b52bf6a Author: Keith Packard Date: Thu Oct 25 15:19:14 2007 -0700 A few fixups for make distcheck Makefile.am | 2 +- doc/Makefile.am | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit e66c65fd41928babb3ba2ae2dc58f13d25e57661 Author: Keith Packard Date: Thu Oct 25 15:07:54 2007 -0700 Set version numbers to 2.4.91 (2.5 RC1) README | 59 +++++++++++++++++++++++++++++++++++++++++++++++-- configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 3 files changed, 59 insertions(+), 4 deletions(-) commit 7a1a7c0c15793e77cb162dd3393971332896460e Author: Keith Packard Date: Thu Oct 25 14:36:24 2007 -0700 Build fix for Solaris 10 with GCC. Solaris 10 with GCC doesn't appear capable of supporting the symbol visibility stuff, so disable it. src/fcint.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit fc990b2e86008967f499fe0df88de8e074a3670e Author: Behdad Esfahbod Date: Thu Oct 25 14:20:06 2007 -0700 Update CaseFolding.txt to Unicode 5.1.0 fc-case/CaseFolding.txt | 184 ++++++++++++++++++++++++++++++++++++++++++++++-- src/fcstr.c | 2 +- 2 files changed, 178 insertions(+), 8 deletions(-) commit 4ee9ca67867ec9517c90d6947bb88d3f25707746 Author: Keith Packard Date: Fri Sep 1 20:25:21 2006 -0700 Match 'ultra' on word boundaries to detect ultra bold fonts. (bug 2511) Added FcStrContainsWord to detect strings on word boundaries. src/fcfreetype.c | 15 +++++++++++++-- src/fcint.h | 3 +++ src/fcstr.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 65 insertions(+), 3 deletions(-) commit 349182784fdd0acf5d1262d8876c967f69dc30aa Author: Keith Packard Date: Thu Oct 25 01:51:38 2007 -0700 fontconfig needs configure option to use gnu iconv (bug 4083). Existing Solaris workaround was broken; mis-matching values caused the test for libiconv to always fail. configure.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 7f46cdbb87a4a2113effb45c6e67b00a86363234 Author: Keith Packard Date: Thu Oct 25 01:35:32 2007 -0700 Ensure weight/slant values present even when style is supplied (bug 9313). If the provided style value doesn't match any available font, fall back to using the weight and slant values by ensuring that those are in the pattern. src/fcdefault.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) commit 43d0454597dfb5375b1268edb79172779cc51113 Author: Keith Packard Date: Thu Oct 25 01:26:09 2007 -0700 Distribute man source files for command line programs (bug 9678). For systems on whch DOCBOOK is unavailable, distribute command line program manual pages in .man format. fc-cache/Makefile.am | 6 +++--- fc-cat/Makefile.am | 6 +++--- fc-list/Makefile.am | 6 +++--- fc-match/Makefile.am | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) commit cf3e888b71a22e5c5875b96bf29557746044bd2b Author: Dwayne Bailey Date: Thu Oct 25 01:16:06 2007 -0700 Add/fix *.orth files for South African languages This adds the missing orth files for Ndebele (South) (nr), Northern Sotho (nso), Swati (ss) and Southern Sotho (st). It also fixes the Tswana (tn) orth file. fc-lang/iso639-1 | 4 ++-- fc-lang/iso639-2 | 8 ++++---- fc-lang/nr.orth | 29 +++++++++++++++++++++++++++++ fc-lang/nso.orth | 34 ++++++++++++++++++++++++++++++++++ fc-lang/ss.orth | 29 +++++++++++++++++++++++++++++ fc-lang/st.orth | 29 +++++++++++++++++++++++++++++ fc-lang/tn.orth | 2 ++ 7 files changed, 129 insertions(+), 6 deletions(-) commit 28a4ea7f714956d34f7ac65354577b87bec5620d Author: Keith Packard Date: Thu Oct 25 01:09:11 2007 -0700 Fix parallel build in fontconfig/docs (bug 10481). doc/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 79641a3b0c2b4a0c2e1a315028f0e54a9d846003 Author: Keith Packard Date: Thu Oct 25 01:03:40 2007 -0700 Handle UltraBlack weight. UltraBlack is weight 950 on the CSS scale; handle this by name and value encoding it as fontconfig weight 215. fontconfig/fontconfig.h | 2 ++ src/fcfreetype.c | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) commit d02f6a70f1cb4cdad882ffe429918a119641ddbb Author: Keith Packard Date: Thu Oct 25 01:02:58 2007 -0700 Oops. Left debugging printf in previous commit. src/fcfreetype.c | 1 - 1 file changed, 1 deletion(-) commit 61139cf638becf023a9d5e01c90adc5aa19f83c5 Author: Keith Packard Date: Thu Oct 25 00:49:19 2007 -0700 Spelling errors in documentation. (bug 10879). Thanks to David for spotting these. doc/fcconfig.fncs | 4 ++-- doc/fcstring.fncs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit feecc86cea6bd1cb588f68e06b85d85727289989 Author: Keith Packard Date: Thu Oct 25 00:46:41 2007 -0700 There is no U+1257 (bug 10899). The Eritrean Tigrinya orthography mistakenly included this unicode value. fc-lang/ti_er.orth | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4657944d0c39a640b2e30dfbd95f13d79a99460b Author: Keith Packard Date: Thu Oct 25 00:41:28 2007 -0700 FcInit should return FcFalse when FcInitLoadConfigAndFonts fails. (bug 10976) Thanks to David for spotting this error. src/fcinit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 28baf727367513ad06ddb1c53daff062e8f39e8c Author: Tilman Sauerbeck Date: Thu Oct 25 00:38:44 2007 -0700 Store FcVendorFoundries in read-only memory. Create fixed size strings for vendor and foundry. src/fcfreetype.c | 62 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 31 insertions(+), 31 deletions(-) commit 481f6c23079b6dbf5239478f2bb22ee4c72404b4 Author: Tilman Sauerbeck Date: Thu Oct 25 00:36:37 2007 -0700 Store FcNoticeFoundries in read-only memory. Use a single character array and a separate table of integer indices. src/fcfreetype.c | 75 +++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 50 insertions(+), 25 deletions(-) commit a72ef35ce68efa3687dee84d49dc40a5ccd22917 Author: Keith Packard Date: Thu Oct 25 00:22:04 2007 -0700 Replace makealias pattern with something supported by POSIX grep (bug 11083) The suggested replacement in the bug was not supported by GNU grep, so I created something that should be supported everywhere (famous last words). src/makealias | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 369b6b5bfbab57bbc7fb6482f6fd9c88e5057e5a Author: Keith Packard Date: Wed Oct 24 21:59:33 2007 -0700 Add BRAILLE PATTERN BLANK to list of blank glyphs. Braille pattern blank is often imaged as a blank glyph. fonts.conf.in | 1 + 1 file changed, 1 insertion(+) commit 007cae508c831561c7a4f06092858ea7bf517e2e Author: Keith Packard Date: Wed Oct 24 21:52:56 2007 -0700 Move elements to the end of fonts.conf. This allows users to select alternate directories for cache files, ahead of the 'standard' directories. fonts.conf.in | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit d50cfeb805f7dec304c1d51d7a7c1c35f55d2e68 Author: Keith Packard Date: Wed Oct 24 21:47:40 2007 -0700 Leave generated headers out of distribution (bug 12734). If the generated header files are included in the distribution, a build outside of the source directory will use them. For machine-specific files, this generates the wrong result (fcarch.h). Leaving them out of the distribution forces them to be built. fc-arch/Makefile.am | 4 +--- fc-case/Makefile.am | 4 +--- fc-glyphname/Makefile.am | 4 +--- fc-lang/Makefile.am | 4 +--- 4 files changed, 4 insertions(+), 12 deletions(-) commit 1bd0b5ba7365fc7b4ef39e46efc66a6f25c052c5 Author: Keith Packard Date: Thu Oct 18 09:48:31 2007 -0700 Eliminate relocations from FcCodePageRange structure (bug 10982). FcCodePageRange was using char pointers; replace them with char arrays. src/fcfreetype.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 96925b99c0551c4ed6bf7099473d0d36964f52cd Author: Keith Packard Date: Thu Oct 18 09:43:22 2007 -0700 Eliminate relocations for glyph name table. Glyph names (now used only for dingbats) were using many relocations, causing startup latency plus per-process memory usage. Replace pointers with table indices, shrinking table size and elimninating relocations. fc-glyphname/fc-glyphname.c | 28 ++++++++++++++++++++-------- src/fcfreetype.c | 16 ++++++++-------- 2 files changed, 28 insertions(+), 16 deletions(-) commit bc5e8adb4d05d1d03007951f46aaacc63c3b2197 Author: Keith Packard Date: Thu Oct 18 09:41:00 2007 -0700 Must not insert cache into hash table before completely validating. The cache was inserted into the hash table before the timestamps in the cache were verified; if that verification failed, an extra pointer to the now freed cache would be left in the hash table. FcFini would fail an assertion as a result. src/fccache.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e85789a99770dbd1a4abe9da3eadb355c19f5216 Author: Keith Packard Date: Thu Oct 18 08:58:14 2007 -0700 Place language name in constant array instead of pointer. Constant char array of 8 bytes is the same size as a pointer plus a short string, so this actually saves memory and eliminates a pile of relocations. fc-lang/fc-lang.c | 2 +- src/fclang.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 26437d4924b0f53f03915e5f3616992eb1fb72e7 Author: Keith Packard Date: Thu Oct 18 08:56:42 2007 -0700 FcConfigParseAndLoad doc was missing the last param. Typo lost the last param to this function. doc/fcconfig.fncs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 07e646cc8422bda778ecf1c084129556a39a0f2a Author: Mike FABIAN Date: Thu Oct 18 05:44:28 2007 -0700 Avoid crashes if config files contain junk. If ~/.fonts.conf contains: mono fontconfig crashes: mfabian@magellan:~$ fc-match sans Fontconfig error: "~/.fonts.conf", line 46: "mono": not a valid integer セグメンテーション違反です (core dumped) mfabian@magellan:~$ Of course the above is nonsense, “mono” is no valid integer indeed. But I think nevertheless fontconfig should not crash in that case. The problem was caused by partially truncated expression trees caused by parse errors -- typechecking these walked the tree without verifying the integrity of the structure. Of course, the whole tree will be discarded shortly after being loaded as it contained an error. src/fcxml.c | 4 ++++ 1 file changed, 4 insertions(+) commit fa9a7448d83da498b3494fd0ff7d756569f94425 Author: Hideki Yamane Date: Thu Oct 18 05:17:36 2007 -0700 Handle Japanese fonts better. (debian bug #435971) Add some commonly available Japanese fonts to the standard aliases. conf.d/65-nonlatin.conf | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 2a3e3c442de4c675e28e754dea0fe2f7f0686ade Author: Keith Packard Date: Thu Oct 18 05:05:59 2007 -0700 Have fc-cache remove invalid cache files from cache directories. Old cache file versions, or corrupted cache files should be removed when cleaning cache directories with fc-cache. This only affects filenames which match the fontconfig cache file format, so other files will be left alone. fc-cache/fc-cache.c | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) commit 238489030a64fa883f8f9fc3d73247b7f7257899 Author: Keith Packard Date: Thu Oct 18 05:04:39 2007 -0700 Don't use X_OK bit when checking for writable directories (bug 12438) Some mingw versions have broken X_OK checking; instead of trying to work around this in a system-depedent manner, simply don't bother checking for X_OK along with W_OK as such cases are expected to be mistakes, and not sensible access control. fc-cache/fc-cache.c | 2 +- src/fccache.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 2b0d3d8af5a83604972e4e0fe80802e448d6dd11 Author: Keith Packard Date: Thu Oct 18 05:01:41 2007 -0700 Verbose message about cleaning directories was imprecise Non-existent directories are now described as 'non-existent' instead of 'unwritable'. fc-cache/fc-cache.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 50124d1e484b84796abb7d8a6c1995edaff23e80 Author: Keith Packard Date: Thu Oct 18 04:58:31 2007 -0700 Improve verbose messages from fc-cache. fc-cache would say 'skipping: %d fonts, %d dirs' or 'caching: %d fonts, %d dirs', which could easily mislead the user. Add 'existing cache is valid' or 'new cache contents' to these messages to explain what it is doing. fc-cache/fc-cache.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e12f718f65fc874e9170761f670930124815663e Author: Keith Packard Date: Thu Oct 18 04:54:51 2007 -0700 Remove unneeded call to access(2) in fc-cache. This call was followed by a call to stat(2) which provided the necessary information. This call to access(2) was necessary when cache files were stored in the font directory as that would check for write permission correctly. fc-cache/fc-cache.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) commit f7da903d370dcf662a301930b003485f25db618f Author: Keith Packard Date: Thu Oct 18 04:31:33 2007 -0700 Make FC_FULLNAME include all fullname entries, elide nothing. [bug 12827] The old policy of eliding fullname entries which matched FC_FAMILY or FC_FAMILY + FC_STYLE meant that applications could not know what the font foundry set as the fullname of the font. Hiding information is not helpful. src/fcfreetype.c | 64 -------------------------------------------------------- 1 file changed, 64 deletions(-) commit 144ca878311af885db820a35db31563ba87ee6ad Author: Keith Packard Date: Thu Oct 18 04:29:13 2007 -0700 Comment about mmaping cache files was misleading. src/fccache.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit db6f19f13b1719617c54a1658b8faa31da56e1d4 Author: Keith Packard Date: Thu Oct 18 04:13:51 2007 -0700 Store font directory mtime in cache file. Instead of relying on mtime ordering between a directory and its associated cache file, write the directory mtime into the cache file itself. This makes cache file checks more reliable across file systems. This change is made in a way that old programs can use new cache files, but new programs will need new cache files. fc-arch/fcarch.tmpl.h | 14 +++++------ src/fccache.c | 64 +++++++++++++++++++++++++++++++++------------------ src/fcdir.c | 8 ++++++- src/fcint.h | 5 ++-- 4 files changed, 58 insertions(+), 33 deletions(-) commit 00268a50e8b99e80ff25ee2a77a925398f89693f Author: Keith Packard Date: Thu Oct 18 03:52:29 2007 -0700 Fix ChangeLog generation to avoid circular make dependency Makefile.am | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) commit 3ae9258f9e825ed576dc315ec79009188bb422e2 Author: Keith Packard Date: Sun Aug 5 12:31:03 2007 -0700 Free temporary string in FcDirCacheUnlink (Bug #11758) In FcDirCacheUnlink(), the line cache_hashed = FcStrPlus (cache_dir, cache_base); allocates memory in cache_hashed that is never free()'d before the function exits. Reported by Ben Combee. src/fccache.c | 1 + 1 file changed, 1 insertion(+) commit c80a08d6bf08a27ede95035f3f02cd5abfa2cafd Author: Keith Packard Date: Mon Mar 12 10:32:23 2007 -0700 Work around FreeType bug when glyph name buffer is too small. Recent versions of FreeType do not correctly deal with glyph name buffers that are too small; work around this by declaring a buffer that can hold any PS name (127 bytes). src/fcfreetype.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) commit fa741cd4fffbbaa5d4ba9a15f53550ac7817cc92 Author: Keith Packard Date: Mon Mar 12 10:30:51 2007 -0700 rehash increment could be zero, causing rehash infinite loop. Bump the rehash value by one so that it is always positive. fc-glyphname/fc-glyphname.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9b74b78fe87f75f7026bfb23ab43ef347e109ca6 Author: Stephan Kulow Date: Mon Mar 12 10:21:35 2007 -0700 Make FcPatternDuplicate copy the binding instead of always using Strong. I noticed that Qt always uses a different font than fc-match advertises. Debugging the issue, I found that a call that looks pretty innocent is changing all weak bindings to strong bindings and as such changes the semantic of the match: FcPatternDuplicate. src/fcpat.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit 2373f904265a05761039cfc5fe305bf588e831c5 Author: Keith Packard Date: Sat Dec 2 16:09:47 2006 -0800 Update for version 2.4.2 INSTALL | 2 +- README | 36 ++++++++++++++++++++++++++++++++++-- configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 4 files changed, 37 insertions(+), 5 deletions(-) commit e3b65ee06808cda296215b88111a259a200cc37c Author: Peter Breitenlohner Date: Sat Dec 2 15:09:57 2006 -0800 Fix fc-cat documentation (bug 8935). Adapt documentation to reality. (1) The fc-cat usage message should reflect the options accepted by the program. (2) The fc-cat.1 manpage was fairly broken (unreadable). fc-cat/fc-cat.c | 9 +++++++-- fc-cat/fc-cat.sgml | 26 +++++++++++++++++++++++--- 2 files changed, 30 insertions(+), 5 deletions(-) commit 61895ed16c0c06e4d6b2abeb8ff292d53b4ea499 Author: Keith Packard Date: Sat Dec 2 15:06:13 2006 -0800 Add space between type and formal in devel man pages (bug 8935) Most parameters are pointers and have '*' in the type; for those which do not, use '%' to mark where a space needs to be inserted. doc/edit-sgml.c | 5 +++++ doc/fcblanks.fncs | 4 ++-- doc/fccharset.fncs | 8 ++++---- doc/fcconfig.fncs | 12 ++++++------ doc/fcconstant.fncs | 4 ++-- doc/fcfile.fncs | 4 ++-- doc/fcfreetype.fncs | 12 ++++++------ doc/fcmatrix.fncs | 12 ++++++------ doc/fcobjectset.fncs | 2 +- doc/fcobjecttype.fncs | 4 ++-- doc/fcpattern.fncs | 32 ++++++++++++++++---------------- doc/fcstring.fncs | 16 ++++++++-------- doc/fcvalue.fncs | 4 ++-- 13 files changed, 62 insertions(+), 57 deletions(-) commit b1aa20098f641a16d02e70a161450e6b85afe410 Author: Peter Breitenlohner Date: Sat Dec 2 14:28:03 2006 -0800 Use instead of when documenting fonts.conf. Bug 8935. doc/fontconfig-user.sgml | 87 ++++++++++++++++++++++++------------------------ 1 file changed, 43 insertions(+), 44 deletions(-) commit 2cae0512cdf3544ff78b04f6c05a4cb585e50bb8 Author: Peter Breitenlohner Date: Sat Dec 2 14:18:11 2006 -0800 A VPATH build of fontconfig-2.4.1 fails for various reasons. Bug 8933. VPATH builds without doctools breaks as it cannot find the distributed pre-formatted documentation. configure.in | 2 +- doc/Makefile.am | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) commit 0f963b0d3ec417a39f6aa2ba22ba56c2a79d05aa Author: Keith Packard Date: Sat Dec 2 13:57:45 2006 -0800 Segfault scanning non-font files. Disallow scan edit of user vars. (#8767) Missing NULL font check before attempting to edit scanned pattern. Also, rules are now checked to ensure all edited variables are in the predefined set; otherwise, the resulting cache files will not be stable. src/fcdir.c | 2 +- src/fcint.h | 1 + src/fcxml.c | 6 ++++++ 3 files changed, 8 insertions(+), 1 deletion(-) commit c9c6875014661d4326100bae0464279d76bd657f Author: Kean Johnston Date: Sat Dec 2 13:36:56 2006 -0800 Don't use varargs CPP macros in fccache.c. (bug 8733) src/fccache.c uses a trick to try and use a function name that is also a macro name. It does this using the varargs args() macro. Replace that with separate macros for each number of formals. src/fccache.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 72ffe6536a6825a32095c8185aff836a12326ac5 Author: Keith Packard Date: Sat Dec 2 13:22:27 2006 -0800 Add FcFreeTypeQueryFace external API. Bug #7311. Expose ability to build an FcPattern directly from an FT_Face object. configure.in | 4 ++-- doc/fcfreetype.fncs | 17 ++++++++++++++++- fontconfig/fcfreetype.h | 6 ++++++ src/fcfreetype.c | 50 +++++++++++++++++++++++++++---------------------- 4 files changed, 52 insertions(+), 25 deletions(-) commit 5e234d9e764d8c52d93b918a5c92b7956c95882b Author: Keith Packard Date: Sat Dec 2 13:14:23 2006 -0800 Fix grep pattern in makealias to work on non-Gnu grep (bug 8368). grep -l -w '^foo' doesn't work on Solaris. Replace with grep -l '^foo\>' instead which does. Also, grep -l will report the filename more than once (!), so add | head -1 to pick just the first one. src/makealias | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2b77216ee21de95ec352672aa025195a83925b32 Author: Keith Packard Date: Sat Dec 2 13:04:05 2006 -0800 Avoid writing uninitialized structure pad bytes to cache files. The union inside the FcValue structure contains pad bytes. Instead of copying the whole structure to the cache block, copy only the initialized fields to avoid writing whichever bytes serve as padding within the structure. src/fcpat.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) commit 64d7e303df441f274ee194a401dcd14dfb58af7e Author: Keith Packard Date: Sat Dec 2 12:14:49 2006 -0800 Warn (and recover) from config file without elements. When updating from older fontconfig versions, if the config file is not replaced, it will not contain elements. Lacking these, fontconfig has no place to store cached font information and cannot operate reasonably. Add code to check and see if the loaded configuration has no cache directories, and if so, warn the user and add both the default system cache directory and the normal per-user cache directory. src/fcinit.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) commit 253ec7609c13b46c717c801206ebb1a6c7f06e27 Author: Keith Packard Date: Sat Dec 2 11:47:07 2006 -0800 Use explicit platform/nameid order when scanning ttf files. Instead of accepting whatever order names appear in the font file, use an explicit ordering for both platform and nameid. Platforms are high precedence than nameids. The platform order is: microsoft, apple unicode, macintosh, (other) The family nameid order is: preferred family, font family The fullname nameid order is: mac full name, full name The style nameid order is preferred subfamily, font subfamily This will change the names visible to users in various application UIs, but should not change how existing font names are matched as all names remain present in the resulting database. The hope is that family names will, in general, be less ambiguous. Testing here shows that commercial fonts have longer names now while DejaVu has a shorter family name, and moves more of the font description to the style name. src/fcfreetype.c | 237 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 149 insertions(+), 88 deletions(-) commit b5803016d74856eb44b05876f0d7178bfec0df47 Author: Keith Packard Date: Sun Nov 12 17:15:55 2006 -0800 FcStrCanonAbsoluteFilename should be static. src/fcstr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bae5db78ddab473695a7efee374a75d6fe02426f Author: Keith Packard Date: Sun Nov 12 17:15:24 2006 -0800 Add sparc64 architecture string. fc-arch/fcarch.tmpl.h | 1 + 1 file changed, 1 insertion(+) commit 0334e5a294dd6a36c94936f6c9c709e86773cf64 Author: Mike FABIAN Date: Fri Oct 27 10:26:50 2006 -0700 Do not clean cache files for different architectures Use filenames to clean cache files for current architecture only. This is sufficient as cache files live in their own directory where filenames are under fontconfig control. fc-cache/fc-cache.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit 0596d7296c94b2bb9817338b8c1a76da91673fb9 Author: Han-Wen Nienhuys Date: Sun Sep 17 17:03:33 2006 -0700 More fixes for Win32 building (bug 8311) Our build system barfs on autogen.sh, which ignores --noconfigure. Configure needs a host of options to make the cross compile work in our case. Fix typo in fccache.c autogen.sh | 7 +++++++ src/fccache.c | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) commit 1de7a4cc09172bbc99912e1410f46fc16c1a05ec Author: Han-Wen Nienhuys Date: Sun Sep 17 14:34:46 2006 -0700 FcStrCanonFileName buggy for mingw. (bug 8311) FcStrCanonFileName checks whether s[0] == '/', and recurses if not. This only works on POSIX. On dos, this crashes with a stack overflow. The patch attached splits this functionality in two functions (FcStrCanonAbsoluteFilename) and uses GetFullPathName on windows to get an absolute path. It also fixes a number of other issues. With this patch, LilyPond actually produces output on Windows. src/fccache.c | 5 ++++ src/fcstr.c | 88 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 78 insertions(+), 15 deletions(-) commit cc104e6a910427db009be36ec34125962889ecb8 Author: Keith Packard Date: Sun Sep 17 14:20:18 2006 -0700 Detect and use available random number generator (bug 8308) Prefer random over lrand48 over rand configure.in | 2 +- src/fccache.c | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) commit 706a1b367abc4589c7eccfd7cea3af1029bc2d8c Author: Keith Packard Date: Sun Sep 17 14:09:12 2006 -0700 Build fontconfig.def from header files when needed. Instead of attempting to track exported symbols manually in fontconfig.def.in, build it directly from the public fontconfig header files to ensure it exports the public API. configure.in | 1 - src/Makefile.am | 18 ++- src/fontconfig.def.in | 303 -------------------------------------------------- 3 files changed, 17 insertions(+), 305 deletions(-) commit 6262fefe54823476070053d53eb3f52fd516ebfe Author: Keith Packard Date: Sun Sep 17 13:50:31 2006 -0700 Remove documentation for non-existant FcConfigNormalizeFontDir. FcConfigNormalizeFontDir was present in some of the 2.3.9x release but not in the final 2.4 release. However, the documentation persisted. doc/fcconfig.fncs | 11 ----------- 1 file changed, 11 deletions(-) commit b9cc1c4ed81c8caefb5b857f37fdc24e804a5ef9 Author: Keith Packard Date: Fri Sep 15 10:12:15 2006 -0700 Update for version 2.4.1 README | 13 +++++++++++-- configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) commit 97c3d5b692c7a45dc1d923fe04b6f2e011583d2d Author: Keith Packard Date: Fri Sep 15 00:23:40 2006 -0700 Reimplement FcConfigAppFontAddDir; function was lost in 2.4.0. With the cache restructuring of 2.4.0, the ability to add application-specific font files and directories was accidentally lost. Reimplement this using by sharing the logic used to load configured font directories. src/fccfg.c | 86 ++++++++++++++++++++++++++++++------------------------------- src/fcdir.c | 4 +-- src/fcint.h | 3 ++- 3 files changed, 46 insertions(+), 47 deletions(-) commit b190ad9da46ff2e8a9ede0afcb59a6c59641515b Author: Keith Packard Date: Wed Sep 13 18:55:45 2006 -0700 Add warning flags to fc-cache build. Clean up warnings in fc-cache. Looks like the last directory in the project which didn't use $(WARN_CFLAGS) for some reason. Adding that found the usual collection of char * vs FcChar8 * issues (why, oh why is FcChar8 not just char...) fc-cache/Makefile.am | 2 +- fc-cache/fc-cache.c | 31 ++++++++----------------------- 2 files changed, 9 insertions(+), 24 deletions(-) commit 7943a75b7d6750d8a71eb8316bd3bbcb32f1cc47 Author: Keith Packard Date: Wed Sep 13 18:51:11 2006 -0700 Add signatures for m68k and mipsel (thanks debian buildd) fc-arch/fcarch.tmpl.h | 2 ++ 1 file changed, 2 insertions(+) commit fb47a1f752417d45ad0eac98526cf9de893fc9ca Author: Keith Packard Date: Mon Sep 11 11:10:48 2006 -0700 Add ppc64 signature. Bug 8227 fc-arch/fcarch.tmpl.h | 1 + 1 file changed, 1 insertion(+) commit 0fc03ffe443f4bfb1c830eb75c14ca336f2186e1 Author: Keith Packard Date: Mon Sep 11 11:09:26 2006 -0700 Update installation notes for 2.4 base. INSTALL | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) commit 76c443222313577236c898f7644098e7cad80c75 Author: Keith Packard Date: Sat Sep 9 22:08:40 2006 -0700 Update to version 2.4.0 INSTALL | 3 +++ README | 38 ++++++++++++++++++++++++++++++++++++-- configure.in | 2 +- fontconfig/fontconfig.h | 4 ++-- 4 files changed, 42 insertions(+), 5 deletions(-) commit 6c5619a08575943f75d2341e1a4931ec5faf716b Author: Keith Packard Date: Sat Sep 9 21:32:14 2006 -0700 Split much of the configuration into separate files. Renumber files Most of the remaining elements in fonts.conf have been moved to separate files. The numbering scheme for conf.d files has been documented in the README and the files have been renumbered. Config files have been validated against the DTD and a few minor errors fixed. conf.d/10-autohint.conf | 9 + conf.d/10-no-sub-pixel.conf | 9 + conf.d/10-sub-pixel-bgr.conf | 9 + conf.d/10-sub-pixel-rgb.conf | 9 + conf.d/10-sub-pixel-vbgr.conf | 9 + conf.d/10-sub-pixel-vrgb.conf | 9 + conf.d/10-unhinted.conf | 9 + conf.d/10-urw-aliases.conf | 52 ---- conf.d/15-amt-aliases.conf | 21 -- conf.d/20-lohit-gujarati.conf | 11 + conf.d/20-unhint-small-vera.conf | 49 ++++ conf.d/30-amt-aliases.conf | 21 ++ conf.d/30-unhint-small-vera.conf | 49 ---- conf.d/30-urw-aliases.conf | 52 ++++ conf.d/40-generic.conf | 66 +++++ conf.d/49-sansserif.conf | 21 ++ conf.d/60-LohitGujarati.conf | 5 - conf.d/60-delicious.conf | 20 -- conf.d/60-fonts-persian.conf | 539 --------------------------------------- conf.d/60-latin.conf | 42 +++ conf.d/65-fonts-persian.conf | 539 +++++++++++++++++++++++++++++++++++++++ conf.d/65-nonlatin.conf | 38 +++ conf.d/69-unifont.conf | 24 ++ conf.d/70-no-bitmaps.conf | 13 + conf.d/70-no-sub-pixel.conf | 9 - conf.d/70-sub-pixel-bgr.conf | 9 - conf.d/70-sub-pixel-rgb.conf | 9 - conf.d/70-sub-pixel-vbgr.conf | 9 - conf.d/70-sub-pixel-vrgb.conf | 9 - conf.d/70-yes-bitmaps.conf | 13 + conf.d/73-autohint.conf | 9 - conf.d/73-unhinted.conf | 9 - conf.d/76-no-bitmaps.conf | 13 - conf.d/76-yes-bitmaps.conf | 13 - conf.d/80-delicious.conf | 20 ++ conf.d/90-synthetic.conf | 64 +++++ conf.d/Makefile.am | 55 ++-- conf.d/README | 46 +++- fonts.conf.in | 207 --------------- 39 files changed, 1113 insertions(+), 1006 deletions(-) commit 9596dce93b751c01770da175d208d78aeaf6ae00 Author: Keith Packard Date: Sat Sep 9 21:30:06 2006 -0700 Don't display tests for DESTDIR on make install. Make install output quieter by eliding the shell commands used to test for DESTDIR being set during make install. Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d08feb851a585b6cfe3ef1f390d60dd8886249b2 Author: Keith Packard Date: Sat Sep 9 21:29:08 2006 -0700 Include cachedir in fonts.dtd. Fonts.dtd element was missing the new cachedir element. fonts.dtd | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 9419bb34f6eac685fcf957faf6a38a5cdfa811d9 Author: Keith Packard Date: Sat Sep 9 21:21:01 2006 -0700 Fix conf.d directory sorting. Sort was using broken comparison function. src/fcxml.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) commit 248b5903b7057b3c44ea1cd3a9b0d27624eba24a Author: Keith Packard Date: Sat Sep 9 19:37:22 2006 -0700 Rename conf.avail to conf.d Makefile.am | 2 +- conf.avail/10-urw-aliases.conf | 52 ---- conf.avail/15-amt-aliases.conf | 21 -- conf.avail/20-fix-globaladvance.conf | 29 -- conf.avail/30-unhint-small-vera.conf | 49 ---- conf.avail/50-user.conf | 7 - conf.avail/51-local.conf | 7 - conf.avail/60-LohitGujarati.conf | 5 - conf.avail/60-delicious.conf | 20 -- conf.avail/60-fonts-persian.conf | 539 ----------------------------------- conf.avail/70-no-sub-pixel.conf | 9 - conf.avail/70-sub-pixel-bgr.conf | 9 - conf.avail/70-sub-pixel-rgb.conf | 9 - conf.avail/70-sub-pixel-vbgr.conf | 9 - conf.avail/70-sub-pixel-vrgb.conf | 9 - conf.avail/73-autohint.conf | 9 - conf.avail/73-unhinted.conf | 9 - conf.avail/76-no-bitmaps.conf | 13 - conf.avail/76-yes-bitmaps.conf | 13 - conf.avail/Makefile.am | 71 ----- conf.avail/README | 8 - conf.d/10-urw-aliases.conf | 52 ++++ conf.d/15-amt-aliases.conf | 21 ++ conf.d/20-fix-globaladvance.conf | 29 ++ conf.d/30-unhint-small-vera.conf | 49 ++++ conf.d/50-user.conf | 7 + conf.d/51-local.conf | 7 + conf.d/60-LohitGujarati.conf | 5 + conf.d/60-delicious.conf | 20 ++ conf.d/60-fonts-persian.conf | 539 +++++++++++++++++++++++++++++++++++ conf.d/70-no-sub-pixel.conf | 9 + conf.d/70-sub-pixel-bgr.conf | 9 + conf.d/70-sub-pixel-rgb.conf | 9 + conf.d/70-sub-pixel-vbgr.conf | 9 + conf.d/70-sub-pixel-vrgb.conf | 9 + conf.d/73-autohint.conf | 9 + conf.d/73-unhinted.conf | 9 + conf.d/76-no-bitmaps.conf | 13 + conf.d/76-yes-bitmaps.conf | 13 + conf.d/Makefile.am | 71 +++++ conf.d/README | 8 + configure.in | 1 - 42 files changed, 898 insertions(+), 899 deletions(-) commit 9e292c889f1138b1af2f60621d7e2bfd8c490ff7 Author: Keith Packard Date: Sat Sep 9 16:52:21 2006 -0700 Add XML headers to new conf files. Move link make commands to conf.avail dir Fix up new config fragments to include XML headers as required. Move symbolic link installation to conf.avail directory to centralize both steps. conf.avail/10-urw-aliases.conf | 5 ++++ conf.avail/15-amt-aliases.conf | 5 ++++ conf.avail/20-fix-globaladvance.conf | 5 ++++ conf.avail/30-unhint-small-vera.conf | 5 ++++ conf.avail/Makefile.am | 22 +++++++++++++++ conf.d/Makefile.am | 52 ------------------------------------ 6 files changed, 42 insertions(+), 52 deletions(-) commit 49b44b277f2a8a67009a3b68b178b2f1a4c7f72a Author: Keith Packard Date: Sat Sep 9 16:41:58 2006 -0700 Insert newly created caches into reference data structure. All caches used in the application must be in the cache reference list so internal references can be tracked correctly. Failing to have newly created caches in the list would cause the cache to be deallocated while references were still present. src/fccache.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) commit 766a9b2f61458202be0fbf5745ce1e02ecd95c6e Merge: 5d2f7a9 164e267 Author: Keith Packard Date: Sat Sep 9 15:49:24 2006 -0700 Merge branch 'jhcloos' commit 5d2f7a9d9224d4df1655cd1d6fd72646734b0272 Author: Keith Packard Date: Sat Sep 9 10:04:42 2006 -0700 Accept locale environment variables that do not contain territory. Locale environment variables (LC_ALL, LC_CTYPE, LANG) must contain language, and may contain territory and encoding. Don't accidentally require territory as that will cause fontconfig to fall back to 'en'. src/fcdefault.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 164e267d286eccbbdde69e8935a658dced4331b4 Author: James Cloos Date: Sat Sep 9 01:24:08 2006 -0400 Make conf.avail and conf.d work Add conf.avail to configure.in Add install: target to conf.d/Makefile.am to create the initial symlinks to conf.avail conf.d/Makefile.am | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ configure.in | 1 + 2 files changed, 53 insertions(+) commit f6cfbe16bfc252b46532f699b496e4a41a1a1c22 Author: Keith Packard Date: Thu Sep 7 15:17:10 2006 -0700 Attempt to fix makealias usage for build on Mac OS X. Avoid using fcalias.h or fcaliastail.h on systems which don't support it. Provided solution still generates these files, but does not use them. src/fcint.h | 3 ++- src/makealias | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) commit 6cff1dca81b60fcd75e19f3ed827aae98f643fd1 Author: Keith Packard Date: Thu Sep 7 14:37:52 2006 -0700 Replace gnu-specific sed command with simple grep. makealias was using a gnu-extension to sed addressing, replace that with a simple (and more robuse) grep command. Also, found a bug in the public header file that was leaving one symbol out of the process. fontconfig/fontconfig.h | 2 +- src/makealias | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 31e0f0321057a7612ed5a7fa890dad09e6a53ee6 Author: David Turner Date: Thu Sep 7 14:29:35 2006 -0700 Replace character discovery loop with simpler, faster version. The existing loop for discovering which characters map to glyphs is ugly and inefficient. The replacement is functionally identical, but far cleaner and faster. src/fcfreetype.c | 83 ++++++++++++++++++++------------------------------------ 1 file changed, 30 insertions(+), 53 deletions(-) commit 8d779ce4b3cdac796e20ca568654c0ef1c576809 Author: Keith Packard Date: Thu Sep 7 14:22:16 2006 -0700 Reference patterns in FcCacheCopySet. As patterns are put into the font set copy, mark them as referenced so the cache stays around while the font set is in use. src/fccache.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 4c34c0c52a4e943c6770a6178e5012a3d6fe96d0 Author: Keith Packard Date: Thu Sep 7 10:37:24 2006 -0700 Create fc_cachedir at install time. Bug 8157. Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 88b6bebc3d648464ad9bcb7f106694ed85a84460 Author: Keith Packard Date: Wed Sep 6 23:58:14 2006 -0700 Update for version 2.3.97. Makefile.am | 2 +- README | 41 +++++++++++++++++++++++++++++++++++++++-- configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 4 files changed, 42 insertions(+), 5 deletions(-) commit c3796ac6061373bcf0276a931036987c01741215 Author: Keith Packard Date: Wed Sep 6 17:45:40 2006 -0700 Charset hashing depended on uniqueness of leaves. Charset hashing actually use the value of the leaf pointers, which is clearly wrong, especially now that charsets are not shared across multiple font directories. src/fccharset.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 08bef687018f2391c2f2b6fc3849878c121b67dd Author: Keith Packard Date: Wed Sep 6 17:43:08 2006 -0700 Parallel build fix for fcalias.h and fcaliastail.h These are built from the same script, but creating a single dependency rule caused parallel make to run the script twice. src/Makefile.am | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 8e0b03f55085d6fd80f6a262b496303f5a74d2ad Author: Keith Packard Date: Wed Sep 6 17:14:46 2006 -0700 Update architecture signatures for x86-64 and ppc. I think the cache file data types are stable for now; add-back the signatures for x86-64 and ppc. fc-arch/fcarch.tmpl.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 23816bf9acbd6cc5dd942daaba3cc084ea70d99d Author: Keith Packard Date: Tue Sep 5 02:24:01 2006 -0700 Eliminate .so PLT entries for local symbols. (thanks to Arjan van de Ven) Using a simple shell script that processes the public headers, two header files are constructed that map public symbols to hidden internal aliases avoiding the assocated PLT entry for referring to a public symbol. A few mistakes in the FcPrivate/FcPublic annotations were also discovered through this process .gitignore | 2 ++ fc-arch/Makefile.am | 9 ++++++++- fc-case/Makefile.am | 9 ++++++++- fc-glyphname/Makefile.am | 9 ++++++++- fc-lang/Makefile.am | 9 ++++++++- fc-lang/fc-lang.c | 1 - fontconfig/fontconfig.h | 10 +++++----- src/Makefile.am | 15 ++++++++++++++- src/fcatomic.c | 3 +++ src/fcblanks.c | 3 +++ src/fccache.c | 3 +++ src/fccfg.c | 3 +++ src/fccharset.c | 3 +++ src/fcdbg.c | 3 +++ src/fcdefault.c | 3 +++ src/fcdir.c | 3 +++ src/fcfreetype.c | 4 ++++ src/fcfs.c | 3 +++ src/fcinit.c | 3 +++ src/fcint.h | 5 ++++- src/fclang.c | 3 +++ src/fclist.c | 3 +++ src/fcmatch.c | 3 +++ src/fcmatrix.c | 3 +++ src/fcname.c | 3 +++ src/fcpat.c | 3 +++ src/fcserialize.c | 3 +++ src/fcstr.c | 3 +++ src/fcxml.c | 3 +++ src/ftglue.c | 3 +++ src/makealias | 24 ++++++++++++++++++++++++ 31 files changed, 145 insertions(+), 12 deletions(-) commit 323ecd0cd3b8eeb50c4af87d57f2ea7b19f37215 Author: Keith Packard Date: Mon Sep 4 23:19:59 2006 -0700 Correct reference count when sharing cache file objects. Multiple maps of the same cache file share the same mapped object; bump the cache object reference count in this case src/fccache.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit afe5a6716058e4b952a6ec1ab3f328a1c069a8c4 Author: Keith Packard Date: Mon Sep 4 22:39:51 2006 -0700 Oops, fc-lang broke when I added cache referencing. Add FcCacheObjectReference/FcCacheObjectDereference stubs to fc-cache. fc-lang/fc-lang.c | 10 ++++++++++ 1 file changed, 10 insertions(+) commit 17389539a046f7231447d531ef7f3d131c1d7515 Author: Keith Packard Date: Mon Sep 4 22:26:24 2006 -0700 Make cache reference counting more efficient. Eliminate need to reference cache object once per cached font, instead just count the number of fonts used from the cache and bump the reference count once by that amount. I think this makes this refernece technique efficient enough for use. src/fccache.c | 9 +++++++++ src/fccfg.c | 5 ++++- src/fcint.h | 3 +++ 3 files changed, 16 insertions(+), 1 deletion(-) commit 9e612141df7e693ef98071f102cecb5d777ceecb Author: Keith Packard Date: Mon Sep 4 22:20:25 2006 -0700 Reference count cache objects. Caches contain patterns and character sets which are reference counted and visible to applications. Reference count the underlying cache object so that it stays around until all reference objects are no longer in use. This is less efficient than just leaving all caches around forever, but does avoid eternal size increases in case applications ever bother to actually look for changes in the font configuration. src/fccache.c | 255 ++++++++++++++++++++++++++++++++++++++++++-------------- src/fccfg.c | 22 +---- src/fccharset.c | 5 ++ src/fcint.h | 16 ++-- src/fcpat.c | 10 ++- 5 files changed, 213 insertions(+), 95 deletions(-) commit 8fe2104a1e5771ac8079a438fa21e00f946be8b3 Author: Keith Packard Date: Mon Sep 4 13:59:58 2006 -0700 Leave cache files mapped permanently. Without reference counting on cache objects, there's no way to know when an application is finished using objects pulled from the cache. Until some kinf of cache reference counting can be done, leave all cache objects mapped for the life of the library (until FcFini is called). To mitigate the cost of this, ensure that each instance of a cache file is mapped only once. src/fccache.c | 143 +++++++++++++++++++++++++++++++++++++++++++++------------- src/fcinit.c | 1 + src/fcint.h | 3 ++ 3 files changed, 116 insertions(+), 31 deletions(-) commit 469010c1bdd5cc8801405ef809540bd4b17f41c1 Author: James Cloos Date: Mon Sep 4 15:57:19 2006 -0400 Update Makefile.am files Makefile.am | 2 +- conf.avail/Makefile.am | 34 ++++++++++++++++++++-------------- 2 files changed, 21 insertions(+), 15 deletions(-) commit c3425fa671663b11aa5288a0b52a0618c5d075ef Author: James Cloos Date: Mon Sep 4 15:47:52 2006 -0400 Move some section from fonts.conf into conf.avail files URL aliases, AMT aliases, Che globaladvance fixes and Vera <8pt unhinting sections all moved into conf.avail, to load before user and local confs. conf.avail/10-urw-aliases.conf | 47 +++++++++++++ conf.avail/15-amt-aliases.conf | 16 +++++ conf.avail/20-fix-globaladvance.conf | 24 +++++++ conf.avail/30-unhint-small-vera.conf | 44 ++++++++++++ fonts.conf.in | 133 ----------------------------------- 5 files changed, 131 insertions(+), 133 deletions(-) commit 9a9fd975a1330e21f0184cdb237cfb2a2f19c098 Author: Keith Packard Date: Mon Sep 4 12:46:01 2006 -0700 Can't typecheck values for objects with no known type. Objects that aren't part of the built-in object list don't have predefined types, so we can't typecheck them. src/fcxml.c | 2 ++ 1 file changed, 2 insertions(+) commit 60018915891bd146271b687278782fe38b4c4461 Author: James Cloos Date: Mon Sep 4 15:45:28 2006 -0400 Re-order old conf.d files Make sure they continue to load after ~/.fonts.conf and local.conf conf.avail/20-LohitGujarati.conf | 5 - conf.avail/20-fonts-persian.conf | 539 -------------------------------------- conf.avail/30-no-sub-pixel.conf | 9 - conf.avail/30-sub-pixel-bgr.conf | 9 - conf.avail/30-sub-pixel-rgb.conf | 9 - conf.avail/30-sub-pixel-vbgr.conf | 9 - conf.avail/30-sub-pixel-vrgb.conf | 9 - conf.avail/33-autohint.conf | 9 - conf.avail/33-unhinted.conf | 9 - conf.avail/36-no-bitmaps.conf | 13 - conf.avail/36-yes-bitmaps.conf | 13 - conf.avail/60-LohitGujarati.conf | 5 + conf.avail/60-fonts-persian.conf | 539 ++++++++++++++++++++++++++++++++++++++ conf.avail/70-no-sub-pixel.conf | 9 + conf.avail/70-sub-pixel-bgr.conf | 9 + conf.avail/70-sub-pixel-rgb.conf | 9 + conf.avail/70-sub-pixel-vbgr.conf | 9 + conf.avail/70-sub-pixel-vrgb.conf | 9 + conf.avail/73-autohint.conf | 9 + conf.avail/73-unhinted.conf | 9 + conf.avail/76-no-bitmaps.conf | 13 + conf.avail/76-yes-bitmaps.conf | 13 + 22 files changed, 633 insertions(+), 633 deletions(-) commit 31f8061b5d0a60f497eaafe6d38006ae71e53163 Author: James Cloos Date: Mon Sep 4 15:36:46 2006 -0400 Make room for chunks from fonts.conf in conf.avail conf.avail/10-LohitGujarati.conf | 5 - conf.avail/10-fonts-persian.conf | 539 --------------------------------------- conf.avail/20-LohitGujarati.conf | 5 + conf.avail/20-fonts-persian.conf | 539 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 544 insertions(+), 544 deletions(-) commit d55620c90676951fc70ec9430c2670edca2147cb Author: James Cloos Date: Mon Sep 4 15:32:37 2006 -0400 Replace load of conf.d in fonts.conf.in fonts.conf.in | 5 +++++ 1 file changed, 5 insertions(+) commit f6e645c4993fff77d596dba734c09cdb255f4ca0 Author: James Cloos Date: Mon Sep 4 15:30:10 2006 -0400 Update Makefile.am to match conf.avail changes conf.avail/Makefile.am | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) commit cbdd74d6569b5975b86bd425b56b1b50aa73d2bb Author: James Cloos Date: Mon Sep 4 15:27:29 2006 -0400 Number the remaining conf.avail files conf.avail/30-no-sub-pixel.conf | 9 +++++++++ conf.avail/30-sub-pixel-bgr.conf | 9 +++++++++ conf.avail/30-sub-pixel-rgb.conf | 9 +++++++++ conf.avail/30-sub-pixel-vbgr.conf | 9 +++++++++ conf.avail/30-sub-pixel-vrgb.conf | 9 +++++++++ conf.avail/33-autohint.conf | 9 +++++++++ conf.avail/33-unhinted.conf | 9 +++++++++ conf.avail/36-no-bitmaps.conf | 13 +++++++++++++ conf.avail/36-yes-bitmaps.conf | 13 +++++++++++++ conf.avail/autohint.conf | 9 --------- conf.avail/no-bitmaps.conf | 13 ------------- conf.avail/no-sub-pixel.conf | 9 --------- conf.avail/sub-pixel-bgr.conf | 9 --------- conf.avail/sub-pixel-rgb.conf | 9 --------- conf.avail/sub-pixel-vbgr.conf | 9 --------- conf.avail/sub-pixel-vrgb.conf | 9 --------- conf.avail/unhinted.conf | 9 --------- conf.avail/yes-bitmaps.conf | 13 ------------- 18 files changed, 89 insertions(+), 89 deletions(-) commit a04ac99f0f3e487c7611772442727a6eb4f44393 Author: Keith Packard Date: Mon Sep 4 02:13:13 2006 -0700 Hide FreeType glue code from library ABI. FreeType glue code was escaping the shared library. src/ftglue.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 4984242e3681a50a9c19f352783f145f91ecb868 Author: Keith Packard Date: Mon Sep 4 00:47:07 2006 -0700 Hide private functions in shared library. Export functionality for utilities. Borrowing header stuff written for cairo, fontconfig now exposes in the shared library only the symbols which are included in the public header files. All private symbols are hidden using suitable compiler directives. A few new public functions were required for the fontconfig utility programs (fc-cat and fc-cache) so those were added, bumping the .so minor version number in the process. configure.in | 9 +- fc-cache/fc-cache.c | 30 ++-- fc-cat/Makefile.am | 2 +- fc-cat/fc-cat.c | 37 ++--- fontconfig/fcfreetype.h | 14 +- fontconfig/fontconfig.h | 403 ++++++++++++++++++++++++++++-------------------- src/fccache.c | 48 ++++++ src/fccharset.c | 5 - src/fcint.h | 337 +++++++++++++++++++--------------------- 9 files changed, 481 insertions(+), 404 deletions(-) commit 57b42cef2ad2f18618ca0748325fc800165bdc1b Author: James Cloos Date: Mon Sep 4 01:33:09 2006 -0400 Move user and local conf file loading into conf.avail files conf.avail/50-user.conf | 7 +++++++ conf.avail/51-local.conf | 7 +++++++ fonts.conf.in | 11 ----------- 3 files changed, 14 insertions(+), 11 deletions(-) commit 04ceb322c8e8c4bfc5f4df27d15e8353058a19b8 Author: James Cloos Date: Mon Sep 4 01:28:07 2006 -0400 Support all five possibilities for sub-pixel Make sub-pixel.conf be sub-pixel-rgb.conf and add the three other possibilites: bgr, vrgb and vbgr. conf.avail/sub-pixel-bgr.conf | 9 +++++++++ conf.avail/sub-pixel-rgb.conf | 9 +++++++++ conf.avail/sub-pixel-vbgr.conf | 9 +++++++++ conf.avail/sub-pixel-vrgb.conf | 9 +++++++++ conf.avail/sub-pixel.conf | 9 --------- 5 files changed, 36 insertions(+), 9 deletions(-) commit 085d12cd4bcc215a5fb2bc403148e68c45bd3d2a Author: James Cloos Date: Mon Sep 4 01:24:02 2006 -0400 Standardize conf.avail number prefixing convention Always use \d- rather than just \d as prefix conf.avail/10-LohitGujarati.conf | 5 +++++ conf.avail/10LohitGujarati.conf | 5 ----- 2 files changed, 5 insertions(+), 5 deletions(-) commit 709f32438d814f73b6ce677a48b81a238cd0d6aa Author: James Cloos Date: Mon Sep 4 01:21:55 2006 -0400 Move files from conf.d to conf.avail All of the files in conf.d are now in conf.avail Makefile.am is updated to reflect the change Makefile.am | 2 +- conf.avail/10-fonts-persian.conf | 539 +++++++++++++++++++++++++++++++++++++++ conf.avail/10LohitGujarati.conf | 5 + conf.avail/60-delicious.conf | 20 ++ conf.avail/Makefile.am | 40 +++ conf.avail/README | 8 + conf.avail/autohint.conf | 9 + conf.avail/no-bitmaps.conf | 13 + conf.avail/no-sub-pixel.conf | 9 + conf.avail/sub-pixel.conf | 9 + conf.avail/unhinted.conf | 9 + conf.avail/yes-bitmaps.conf | 13 + conf.d/10-fonts-persian.conf | 539 --------------------------------------- conf.d/10LohitGujarati.conf | 5 - conf.d/60-delicious.conf | 20 -- conf.d/Makefile.am | 40 --- conf.d/README | 8 - conf.d/autohint.conf | 9 - conf.d/no-bitmaps.conf | 13 - conf.d/no-sub-pixel.conf | 9 - conf.d/sub-pixel.conf | 9 - conf.d/unhinted.conf | 9 - conf.d/yes-bitmaps.conf | 13 - 23 files changed, 675 insertions(+), 675 deletions(-) commit 34227592c23db4d462d36773532cef67731e2831 Author: Keith Packard Date: Sun Sep 3 16:27:09 2006 -0700 Remove all .cvsignore files .cvsignore | 35 ----------------------------------- conf.d/.cvsignore | 2 -- doc/.cvsignore | 16 ---------------- fc-cache/.cvsignore | 6 ------ fc-case/.cvsignore | 6 ------ fc-cat/.cvsignore | 6 ------ fc-glyphname/.cvsignore | 6 ------ fc-lang/.cvsignore | 6 ------ fc-list/.cvsignore | 6 ------ fc-match/.cvsignore | 6 ------ fontconfig/.cvsignore | 2 -- src/.cvsignore | 7 ------- test/.cvsignore | 2 -- 13 files changed, 106 deletions(-) commit 822ec78c54a24a0f1589154ac2d4906b02b111ef Merge: e79c648 fb2092c Author: Keith Packard Date: Sun Sep 3 16:07:11 2006 -0700 Merge branch 'fc-2_4_branch' to master Moving development back to master. commit fb2092c18fbf4af69e2cbafc265c4b0ad7e54346 Author: Keith Packard Date: Sun Sep 3 15:20:46 2006 -0700 Finish INSTALL changes. .gitignore ChangeLog .gitignore | 1 + INSTALL | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) commit 2ec3ed0806cfd2cd17cae4117a7047451a52cf95 Author: Keith Packard Date: Sun Sep 3 14:58:49 2006 -0700 Update instructions for doing a release. Autogen ChangeLog from git-log. INSTALL | 21 ++++++++++++++++----- Makefile.am | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 5 deletions(-) commit d3c392b6693ce79fbab42e9a8cf543f6182c5917 Author: Keith Packard Date: Sun Sep 3 14:46:17 2006 -0700 Remove ChangeLog ChangeLog | 3496 ------------------------------------------------------------- 1 file changed, 3496 deletions(-) commit 0945cbe73019404c880be0de7f703ef77aec8a08 Author: Keith Packard Date: Sun Sep 3 14:42:48 2006 -0700 Change version to 2.3.96 README | 67 +++++++++++++++++++++++++++++++++++++++++++++++-- configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 3 files changed, 67 insertions(+), 4 deletions(-) commit 2a5ea80023657724e3e6ba629d828ab5e33bdb70 Author: Keith Packard Date: Sat Sep 2 23:10:59 2006 -0700 Oops; missed the 60-delicious.conf file. This file fixes Delicious Heavy fonts to have the correct weight value. conf.d/60-delicious.conf | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit e3b771a63e837b341bbd1e3e7e9c868244506f62 Author: Keith Packard Date: Sat Sep 2 23:09:44 2006 -0700 Using uninitialized (and wrong) variable in FcStrCopyFilename. A typo from the change in where filename canonicalization occurs. src/fcstr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 04cedae0d5a720662bdc0de3d4cb97f6c77e7d1a Author: Keith Packard Date: Sat Sep 2 20:23:31 2006 -0700 Don't segfault when string values can't be parsed as charsets or langsets. If parsing charsets or langsets fails, return a FcTypeVoid value instead of a charset/langset value with a NULL pointer in it (which is invalid). src/fcname.c | 6 ++++++ 1 file changed, 6 insertions(+) commit fb6e30ab3ef74021978d260fb7f2c40a0b5a0b06 Author: Keith Packard Date: Sat Sep 2 20:07:29 2006 -0700 Fix missing initialization/destruction of new 'scan' target subst list. Forgot to initialize and destroy the new substitution list for the 'scan' match target. src/fccfg.c | 2 ++ 1 file changed, 2 insertions(+) commit c2c6976d1a88cc35143ffcc34f3c38d0a28d34f4 Author: Keith Packard Date: Sat Sep 2 17:52:12 2006 -0700 Add FcMatchScan to resolve Delicious font matching issues (bug #6769) The Delicious family includes one named Delicious Heavy, a bold variant which is unfortunately marked as having normal weight. Because the family name is 'Delicious', fontconfig accidentally selects this font instead of the normal weight variant. The fix here rewrites the scanned data by running the scanned pattern through a new substitution sequence tagged with ; a sample for the Delicious family is included to demonstrate how it works (and fix Delicious at the same time). Also added was a new match predicate -- the 'decorative' predicate which is automatically detected in fonts by searching style names for key decorative phrases like SmallCaps, Shadow, Embosed and Antiqua. Suggestions for additional decorative key words are welcome. This should have little effect on font matching except when two fonts share the same characteristics except for this value. conf.d/Makefile.am | 1 + doc/fontconfig-user.sgml | 6 ++++-- fontconfig/fontconfig.h | 3 ++- fonts.dtd | 6 +++++- src/fccfg.c | 35 +++++++++++++++++++++++++++-------- src/fcdbg.c | 7 +++++++ src/fcdefault.c | 1 + src/fcdir.c | 18 +++++++++++++++++- src/fcfreetype.c | 34 +++++++++++++++++++++++++++++++++- src/fcint.h | 2 ++ src/fcmatch.c | 33 ++++++++++++++++++++------------- src/fcname.c | 34 ++++++++++++++++++++++++++++++---- src/fcxml.c | 4 ++++ 13 files changed, 153 insertions(+), 31 deletions(-) commit 3b8a03c09d3a45f578680b5fe80255af9761b3fa Author: Keith Packard Date: Sat Sep 2 14:54:14 2006 -0700 Allow font caches to contain newer version numbers Use the version number inside the cache file to mark backward compatible changes while continuing to reserve the filename number for incompatible changes. src/fccache.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9b511b290548ad2920cda94507a3311efc461e8a Author: Keith Packard Date: Sat Sep 2 14:52:37 2006 -0700 Unify directory canonicalization into FcStrAddFilename. Instead of making filename canonicalization occur in multiple places, it occurs only in FcStrAddFilename now, as all filenames pass through that function at one point. fc-cache/fc-cache.c | 2 +- fc-cat/fc-cat.c | 2 +- src/fcdir.c | 17 ++++------------- src/fcstr.c | 24 +++++++++++------------- 4 files changed, 17 insertions(+), 28 deletions(-) commit 813258dc8e3a8c964af49abe810e76a95241926d Author: Keith Packard Date: Fri Sep 1 22:08:41 2006 -0700 Move Free family names to bottom of respective aliases. (bug 7429) The FreeSans, FreeSerif and FreeMono fonts cover a large number of languages, but are of generally poor quality. Moving these after fonts which cover specific languages but which have higher quality glyphs should improve font selection. fonts.conf.in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 5cafbd4da08aa8110a94deba59dc631c39ef7285 Author: Keith Packard Date: Fri Sep 1 22:04:52 2006 -0700 Document FC_DEBUG values (bug 6393). Document name \ escape syntax. Limited FC_DEBUG documentation (just shows values and vague idea of what they're related to). Also document \ escape syntax for font names, including how family name and values have different escape requirements. doc/fontconfig-user.sgml | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) commit 7295c6f5faa595422e0825aa2e91883147d5b50e Author: Keith Packard Date: Fri Sep 1 21:30:54 2006 -0700 Guess that mac roman names with lots of high bits are actually SJIS. Many Japanese fonts incorrectly include names tagged as Roman encoding and English language which are actually Japanese names in the SJIS encoding. Guess that names with a large number of high bits set are SJIS encoded Japanese names rather than English names. src/fcfreetype.c | 81 ++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 64 insertions(+), 17 deletions(-) commit db970d3596fbbc75f652f1a9fe7f7ce98e651ad2 Author: Keith Packard Date: Fri Sep 1 21:12:44 2006 -0700 Prefer Bitstream Vera to DejaVu families. DejaVu is a modified version of Bitstream Vera that covers significantly more languages, but does so with spotty quality, lacking hinting for many glyphs, especially for the synthesized serif oblique face. Use Bitstream Vera (where installed). fonts.conf.in | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 3bb1812f0d173b153415e2191ecdd27a95fc4b05 Author: Keith Packard Date: Fri Sep 1 15:33:27 2006 -0700 Fonts matching lang not territory should satisfy sort pattern lang. A pattern specifying 'Chinese' (:lang=zh) without a territory should be satisfied by any font supporting any Chinese lang. The code was requiring that the lang tags match exactly, causing this sort to fail. src/fcmatch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit cfccd4873a44da5b041368d5fca4f05180dcf041 Author: Keith Packard Date: Fri Sep 1 13:22:45 2006 -0700 Really only rebuild caches for system fonts at make install time. Oops. Fix actual fc-cache command line instead of just the displayed version. Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit caf996342b53bf2ca4eedbe54bc86b68456d7470 Author: Keith Packard Date: Fri Sep 1 12:59:09 2006 -0700 Add Assamese orthography (as.orth). Bug #8050 Behdad Esfahbod says Assamese is the same as Bengali, so this just uses bn.orth. fc-lang/as.orth | 28 ++++++++++++++++++++++++++++ fc-lang/iso639-1 | 2 +- 2 files changed, 29 insertions(+), 1 deletion(-) commit c9e6d2c8cc920937546faa63c889570fa7b4745c Author: Keith Packard Date: Fri Sep 1 12:45:43 2006 -0700 Chinese/Macau needs the Hong Kong orthography instead of Taiwan (bug 7884) From Abel Cheung: Currently zh_mo.orth includes zh_tw.orth, which means it is assumed Macau only uses traditional Chinese characters used in Taiwan; however that is wrong, as a majority of Macau people speaks Cantonese too, and also uses additional traditional Chinese chars from Hong Kong (there are already some place names that can't be represented in just chars used in Taiwan). So it should include zh_hk.orth instead. fc-lang/zh_mo.orth | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 5b8e43a48ea1a5fb4e54dd12fe965439df2bf95d Author: Keith Packard Date: Fri Sep 1 12:36:31 2006 -0700 Avoid #warning directives on non-GCC compilers. (bug 7683) Detect GCC and use #warning only on GCC systems. configure.in | 4 +++- src/fcfreetype.c | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) commit ab2cb932b25af20896c08f4641dfa696ed651418 Author: Keith Packard Date: Fri Sep 1 12:26:15 2006 -0700 Add @EXPAT_LIBS@ to Libs.private in fontconfig.pc (bug 7683) Linking against fontconfig requires expat on systems without chained shared library dependencies. fontconfig.pc.in | 1 + 1 file changed, 1 insertion(+) commit 1741499e2387f0c1e692801a1ef3c6ce5d043f9f Author: Keith Packard Date: Fri Sep 1 12:07:10 2006 -0700 Fix memory leaks in fc-cache directory cleaning code. valgrind found a few leaks in the new cache cleaning code. fc-cache/fc-cache.c | 9 +++++++++ 1 file changed, 9 insertions(+) commit fd7223c770e74730480bdf9ecf36f3152a12473e Author: Keith Packard Date: Fri Sep 1 12:05:04 2006 -0700 Only rebuild caches for system fonts at make install time. Rebuilding user-specific fonts will stick those cache files in the system font cache directory. Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8587d77ce64147b7fb324458ba100910ebba93f4 Author: Keith Packard Date: Fri Sep 1 02:27:45 2006 -0700 Add some ignores .gitignore | 2 ++ 1 file changed, 2 insertions(+) commit 09bd9ae2be032efb05a8be7bae584fa18756d951 Author: Keith Packard Date: Fri Sep 1 02:22:59 2006 -0700 Fontset pattern references are relative to fontset, not array. Within a fontset, the patterns are stored as pointers in an array. When stored as offsets, the offsets are relative to the fontset object itself, not the base of the array of pointers. src/fcint.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 18b6857c6476517db7932025847ae952feba758d Author: Keith Packard Date: Fri Sep 1 01:49:47 2006 -0700 Fix fc-lang to use new charset freezer API. Charset freezer api now uses allocated object. Also required minor fixes to charset freezer code to remove assumption that all input charsets are persistant. fc-lang/fc-lang.c | 30 ++++++++++++++++++------------ src/fccharset.c | 11 +++++------ src/fcint.h | 6 ++++++ 3 files changed, 29 insertions(+), 18 deletions(-) commit bc5e487f2a1ad9946aa5c6e19cd75794fc38d530 Author: Keith Packard Date: Fri Sep 1 01:15:14 2006 -0700 Pass directory information around in FcCache structure. Freeze charsets. Instead of passing directory information around in separate variables, collect it all in an FcCache structure. Numerous internal and tool interfaces changed as a result of this. Charsets are now pre-frozen before being serialized. This causes them to share across multiple fonts in the same cache. fc-cache/fc-cache.c | 109 ++++----- fc-cat/fc-cat.c | 83 ++----- fc-glyphname/fc-glyphname.c | 13 -- src/fccache.c | 300 ++++++++++-------------- src/fccfg.c | 169 ++++++++------ src/fccharset.c | 550 +++++++++++++++++++++++--------------------- src/fcdir.c | 177 +++++++------- src/fcinit.c | 1 - src/fcint.h | 60 ++--- src/fcpat.c | 8 + src/fcserialize.c | 3 + 11 files changed, 702 insertions(+), 771 deletions(-) commit aec8c90b450c115718fd87bc270e35ee6b605967 Author: Keith Packard Date: Fri Sep 1 01:12:13 2006 -0700 Remove stale architecture signatures. All but x86 are known to be wrong. fc-arch/fcarch.tmpl.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) commit 551b6b2cd7d94dd90a9eb22bdb752f264afc48ce Author: Keith Packard Date: Thu Aug 31 18:16:00 2006 -0700 Allow FcTypeLangSet to match either FcTypeLangSet or FcTypeString. Applications explicitly setting FC_LANG with string would fail due to typechecking disallowing this case. src/fcname.c | 4 ++++ 1 file changed, 4 insertions(+) commit bf0c80fc4996157dda7bed8b8b2e4c8a13611ada Author: Keith Packard Date: Thu Aug 31 18:14:45 2006 -0700 Change $(pkgcachedir) to $(fc_cachedir) in fc-cat and fc-cache Makefile.am make distcheck caught this bug; the effect of 'make uninstall' would have been to execute 'rm -rf /', somewhat less that desirable. fc-cache/Makefile.am | 6 ++---- fc-cat/Makefile.am | 2 -- 2 files changed, 2 insertions(+), 6 deletions(-) commit f57783d2e9c7362b1e5d5e3a967ba90fa49ade6e Author: Keith Packard Date: Thu Aug 31 14:38:18 2006 -0700 Revert ABI changes from version 2.3 Accidental ABI changes and additions were discovered by looking at the differences in fontconfig.h. All of those have been reverted. fc-cache/fc-cache.c | 4 ++-- fc-list/fc-list.c | 2 +- fontconfig/fontconfig.h | 23 +++++------------------ src/fccache.c | 16 ++++++++++++++-- src/fcint.h | 6 ++++++ 5 files changed, 28 insertions(+), 23 deletions(-) commit 0a87ce715e1862c56702f5be43af9f246aa34e68 Author: Keith Packard Date: Thu Aug 31 11:56:43 2006 -0700 With no args, fc-cat now dumps all directories. Automatically list all font directories when no arguments are given to fc-cat. Also add -r option to recurse from specified cache directories. fc-cat also now prints the cache filename in verbose mode, along with the related directory name. fc-cat/fc-cat.c | 119 +++++++++++++++++++++++++++++++++++++++++++------------- src/fccache.c | 16 +++++--- src/fcint.h | 2 +- 3 files changed, 104 insertions(+), 33 deletions(-) commit d8ab9e6c42cb3513a6623df0c2866e1ebbd96485 Author: Keith Packard Date: Thu Aug 31 09:42:49 2006 -0700 Automatically remove invalid cache files. Cache files for missing or more recently modified directories are automatically removed at the end of every fc-cache run. fc-cache/Makefile.am | 2 +- fc-cache/fc-cache.c | 130 ++++++++++++++++++++++++++++++++++++++++++++++++++- fc-cat/fc-cat.c | 3 +- src/fccache.c | 6 +-- src/fcint.h | 2 +- 5 files changed, 135 insertions(+), 8 deletions(-) commit e9a564e2cd3cb40109a1133dbbcee9f938f141b3 Author: Keith Packard Date: Thu Aug 31 09:07:32 2006 -0700 Serialized value lists were only including one value. The next pointer in the serialized value list wasn't getting set, so they were truncated at a single value. src/fcpat.c | 1 + 1 file changed, 1 insertion(+) commit c50ea916b0e56520948804b67fc7df57bb490575 Author: Keith Packard Date: Wed Aug 30 23:09:39 2006 -0700 Use intptr_t instead of off_t inside FcCache structure. This avoids OS-dependencies in the cache file structure. src/fcint.h | 2 +- src/fcserialize.c | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) commit 76abb77f26c43d069919f80e960c71c2242fb5c2 Author: Keith Packard Date: Wed Aug 30 22:23:25 2006 -0700 Fix fc-cat again. Sigh. Internal interfaces in cache management changed again... fc-cat/fc-cat.c | 37 +++++++++++++++++++++++++------------ src/fccache.c | 19 ++++++++++--------- src/fcint.h | 9 ++++++--- 3 files changed, 41 insertions(+), 24 deletions(-) commit 2d3387fd720f33f80847ae6cbb83d94c9a52fde3 Author: Keith Packard Date: Wed Aug 30 21:59:53 2006 -0700 Skip broken caches. Cache files are auto-written, don't rewrite in fc-cache. Validate cache contents and skip broken caches, looking down cache path for valid ones. Every time a directory is scanned, it will be written to a cache file if possible, so fc-cache doesn't need to re-write the cache file. This makes detecting when the cache was generated a bit tricky, so we guess that if the cache wasn't valid before running and is valid afterwards, the cache file was written. Also, allow empty charsets to be serialized with null leaves/numbers. Eliminate a leak in FcEdit by switching to FcObject sooner. Call FcFini from fc-match to make valgrind happy. fc-cache/fc-cache.c | 25 +++++---- fc-match/fc-match.c | 1 + src/fccache.c | 148 +++++++++++++++++++++++++++------------------------- src/fccfg.c | 80 ++++++++-------------------- src/fccharset.c | 56 +++++++++++--------- src/fcdir.c | 2 +- src/fcint.h | 19 +++++-- src/fcxml.c | 19 +++---- 8 files changed, 169 insertions(+), 181 deletions(-) commit 09f9f6f62ac94f7b1a6df649a00c64f78ab132f5 Author: Keith Packard Date: Wed Aug 30 18:50:58 2006 -0700 Rework Object name database to unify typechecking and object lookup. Eliminate ancient list of object name databases and load names into single hash table that includes type information. Typecheck all pattern values to avoid mis-typed pattern elements. fc-case/fc-case.c | 13 -- src/fcint.h | 7 +- src/fcmatch.c | 9 +- src/fcname.c | 389 ++++++++++++++++++++++++++++++------------------------ src/fcpat.c | 2 +- 5 files changed, 233 insertions(+), 187 deletions(-) commit c02886485b293179e8492cad9a34eb431dd4bfc9 Author: Keith Packard Date: Wed Aug 30 13:51:03 2006 -0700 FcCharSetSerialize was using wrong offset for leaves. Make fc-cat work. FcCharSetSerialize was computing the offset to the unserialized leaf, which left it pointing at random data when the cache was reloaded. fc-cat has been updated to work with the new cache structure. Various debug messages extended to help diagnose serialization errors. fc-cat/fc-cat.c | 134 ++++++++++++++++++++++++++++++-------------------------- src/fccache.c | 6 +-- src/fccharset.c | 3 +- src/fcdbg.c | 20 +++++++-- src/fcint.h | 15 +++++-- src/fcpat.c | 7 +++ 6 files changed, 110 insertions(+), 75 deletions(-) commit e3096d90fd3e0ba8b62d2c6df4cfb24f08a0766c Author: Keith Packard Date: Wed Aug 30 04:24:03 2006 -0700 Fix build problems caused by cache rework. Pagesize no longer matters in architecture decisions, the entire cache file is mmaped into the library. However, lots of intptr_t values are in use now, so that value is important. fc-lang now requires fcserialize.c, which has been added to the repository. fc-arch/fc-arch.c | 14 +---- fc-arch/fcarch.tmpl.h | 4 +- fc-lang/fc-lang.c | 1 + src/fcserialize.c | 159 ++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 165 insertions(+), 13 deletions(-) commit 7ce196733129b0e664c1bdc20f973f15167292f7 Author: Keith Packard Date: Wed Aug 30 04:16:22 2006 -0700 Rework cache files to use offsets for all data structures. Replace all of the bank/id pairs with simple offsets, recode several data structures to always use offsets inside the library to avoid conditional paths. Exposed data structures use pointers to hold offsets, setting the low bit to distinguish between offset and pointer. Use offset-based data structures for lang charset encodings; eliminates separate data structure format for that file. Much testing will be needed; offsets are likely not detected everywhere in the library yet. fc-arch/fcarch.tmpl.h | 3 +- fc-lang/fc-lang.c | 185 +++++---- fontconfig/fontconfig.h | 3 - src/Makefile.am | 1 + src/fccache.c | 581 +++++++++++---------------- src/fccfg.c | 102 +++-- src/fccharset.c | 493 ++++++++--------------- src/fcdbg.c | 43 +- src/fcdefault.c | 64 +-- src/fcfs.c | 133 ++---- src/fcint.h | 477 +++++++++++++--------- src/fclang.c | 120 ++---- src/fclist.c | 86 ++-- src/fcmatch.c | 179 +++------ src/fcname.c | 142 ++----- src/fcpat.c | 1025 ++++++++++++++--------------------------------- src/fcstr.c | 1 + src/fcxml.c | 15 +- 18 files changed, 1394 insertions(+), 2259 deletions(-) commit 2a9179d8895c1cc90d02917f7bb6fac30ffb6a62 Author: Keith Packard Date: Mon Aug 28 11:51:12 2006 -0700 Revert to original FcFontSetMatch algorithm to avoid losing fonts. The fancy new FcFontSetMatch algorithm would discard fonts for the wrong reasons; fc-match sans:lang=en,ja would discard all fonts without Japanese support. This commit reverts to the original algorithm which ensure that FcFontSetMatch always matches the first font in the FcFontSetSort return list. src/fcmatch.c | 229 ++++++++-------------------------------------------------- 1 file changed, 32 insertions(+), 197 deletions(-) commit ad05e3135b43f82c64d74f17dfec0b44fe7efcf0 Author: Keith Packard Date: Mon Aug 28 10:38:27 2006 -0700 Add ppc architecture fc-arch/fcarch.tmpl.h | 1 + 1 file changed, 1 insertion(+) commit 7a03bbdceb4ea5b673caf89bfcafa84211a456f0 Author: Keith Packard Date: Mon Aug 28 10:30:22 2006 -0700 During test run, remove cache directory to avoid stale cache usage. As file timestamps have only one second granularity, an old cache file could easily be used when a test took less than 1 second to run. Just remove the cache directory and its contents before each test is run. Also, remove mention of the old cache file from the test config file. test/fonts.conf.in | 1 - test/run-test.sh | 4 +--- 2 files changed, 1 insertion(+), 4 deletions(-) commit 1e4080ea49160c5af24400b8daf701412a0cc7cb Author: Keith Packard Date: Mon Aug 28 10:07:43 2006 -0700 Add x86-64 architecture and signature. fc-arch/fcarch.tmpl.h | 1 + 1 file changed, 1 insertion(+) commit 7db39f729859827b246da242a26ddba13cb8c4b1 Author: Keith Packard Date: Mon Aug 28 09:43:12 2006 -0700 Regenerate x86 line in fcarch.tmpl.h to match change in cache data. Also remove spurious printf of directory names. fc-arch/Makefile.am | 2 +- fc-arch/fcarch.tmpl.h | 2 +- src/fcdir.c | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) commit 0d9e31c810a36cddadff7572fdbb5a1b505e495e Author: Keith Packard Date: Sun Aug 27 23:40:51 2006 -0700 Eliminate ./ and ../ elements from font directory names when scanning. FcStrCanonFilename eliminates ./ and ../ elements from pathnames through simple string editing. Also, relative path names are fixed by prepending the current working directory. src/fcdir.c | 45 ++++++++++++++++++++++++++++++--------------- src/fcint.h | 3 +++ src/fcstr.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 90 insertions(+), 15 deletions(-) commit af180c40376690b7ced5262156fbe13c9ebba1e2 Author: Keith Packard Date: Sun Aug 27 22:24:39 2006 -0700 Fix up fc-cache and fc-cat for no global cache changes. fc-cache and fc-cat use internal (fcint.h) APIs that have changed with the elimination of the global cache. fc-cache/fc-cache.c | 2 +- fc-cat/fc-cat.c | 119 ++++++---------------------------------------------- src/fccache.c | 77 +++++++++++++++++++++++----------- src/fcdir.c | 13 +++--- src/fcint.h | 4 ++ 5 files changed, 76 insertions(+), 139 deletions(-) commit 00f059e930f12ca7c66cf2ffbc6c4ae789912af7 Author: Keith Packard Date: Sun Aug 27 21:53:48 2006 -0700 Eliminate global cache. Eliminate multi-arch cache code. With the removal of the in-directory cache files, and the addition of per-user cache directories, there is no longer any reason to preserve the giant global cache file. Eliminating of this unifies the cache structure and simplifies the overall caching strategies greatly. fc-cache/fc-cache.c | 3 +- src/fccache.c | 1051 ++++++--------------------------------------------- src/fccfg.c | 23 +- src/fcdir.c | 164 ++++---- src/fcint.h | 70 +--- 5 files changed, 203 insertions(+), 1108 deletions(-) commit cf65c0557e9fa1b86003d1ec8643f44f4344ebd2 Author: Keith Packard Date: Sun Aug 27 18:29:51 2006 -0700 Add architecture to cache filename. Make cache filenames unique by inserting the architecture name into the filename. src/fccache.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit db50cbdaf592349c204ab0af0e7061ea72237044 Author: Keith Packard Date: Sun Aug 27 18:19:39 2006 -0700 Eliminate NormalizeDir. Eliminate gratuitous stat/access calls per dir. Normalized directory names offer protection against looped directory trees but cost enormous numbers of system calls (stat per file in the hierarchy). Also, cache file directory name contents are validated each time the directory is modified, don't re-validate every time the cache file is loaded with an access and stat call. fc-cache/fc-cache.c | 7 ++-- src/fccache.c | 55 ++--------------------------- src/fccfg.c | 100 ---------------------------------------------------- src/fcdir.c | 6 ---- 4 files changed, 4 insertions(+), 164 deletions(-) commit d2f786849c0c4503360a5c09469505b05164c6d2 Author: Keith Packard Date: Sun Aug 27 17:04:01 2006 -0700 Write caches to first directory with permission. Valid cache in FcDirCacheOpen. Previous policy was to attempt to update the cache in place and bail if that didn't work. Now, search for the first writable directory and place the cache file there instead. Furthermore, on startup, search directory list for valid cache files instead of bailing if the first found cache file wasn't valid. fonts.conf.in | 2 +- src/fccache.c | 90 ++++++++++++++++++++++++++++------------------------------- 2 files changed, 43 insertions(+), 49 deletions(-) commit 2b629781d74b5a7db1fff873ce5322e59a0f863a Author: Keith Packard Date: Sun Aug 27 16:25:07 2006 -0700 Construct short architecture name from architecture signature. Map existing architecture signature to short architecture name at build time. This architecture name is (as yet) unused, but will be used to build per-architecture cache files with names made unique by including the architecture name. The auto-detected architecture name can be overridden with the --with-arch=ARCH configure option. Makefile.am | 2 +- configure.in | 17 ++++++ fc-arch/Makefile.am | 50 ++++++++++++++++++ fc-arch/fc-arch.c | 144 ++++++++++++++++++++++++++++++++++++++++++++++++++ fc-arch/fcarch.tmpl.h | 32 +++++++++++ 5 files changed, 244 insertions(+), 1 deletion(-) commit 199a92241151c391d9becca4fae1cc7e5e32ca80 Author: Keith Packard Date: Sun Aug 27 16:21:16 2006 -0700 Add .gitignore .gitignore | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) commit 7410e40bd93beb4ab1a577d084112413431cede2 Author: Patrick Lam Date: Fri Aug 4 16:13:00 2006 +0000 2006-08-04 Keith Packard (keithp@keithp.com) reviewed by: plam Make cache directories configurable. Simplify and correct some code which deals with per-directory caches. ChangeLog | 24 ++++ configure.in | 22 +++- fc-cache/fc-cache.c | 7 +- fontconfig/fontconfig.h | 4 +- fonts.conf.in | 5 + fonts.dtd | 12 ++ src/Makefile.am | 3 +- src/fccache.c | 323 +++++++++++++++++++++++++----------------------- src/fccfg.c | 28 ++++- src/fcdir.c | 6 +- src/fcinit.c | 2 + src/fcint.h | 13 +- src/fcxml.c | 17 +++ test/fonts.conf.in | 1 + test/run-test.sh | 6 +- 15 files changed, 294 insertions(+), 179 deletions(-) commit 62a4a8459adaf26833e1dad0ee96ea5a4b8c3d54 Author: Patrick Lam Date: Wed Jul 19 02:14:28 2006 +0000 2006-07-19 Jon Burgess (jburgess@uklinux.net) reviewed by: plam Fix file-descriptor leak in FcGlobalCacheDestroy. ChangeLog | 7 +++++++ src/fccache.c | 2 ++ 2 files changed, 9 insertions(+) commit 1c14f2d96390ebafb390a953aa9b847e4a7303d7 Author: Patrick Lam Date: Fri Jun 2 18:48:30 2006 +0000 2006-05-31 Yong Li (rigel863@gmail.com) reviewed by: plam, Bedhad Esfahbod TrueType Collection table offsets are absolute, not relative. ChangeLog | 7 +++++++ src/ftglue.c | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) commit 31b7e6d7f58616ebdc6281c3230282a2d7b57d6d Author: Patrick Lam Date: Fri Apr 28 07:00:25 2006 +0000 2006-04-27 Paolo Borelli (pborelli@katamail.com) reviewed by: plam Make FcStrCopy slightly more efficient. ChangeLog | 7 +++++++ src/fcstr.c | 12 +++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) commit 0037aad501e18e53acd2590483b99aaa2a1fba8c Author: Patrick Lam Date: Thu Apr 27 08:13:45 2006 +0000 Keith Packard Reduce transient memory usage during config file parsing by allocating smaller buffers (64 seems to be a magic number). ChangeLog | 20 +++++++------------- src/fcstr.c | 2 +- 2 files changed, 8 insertions(+), 14 deletions(-) commit 529291bef436384a06db246fda30e08d5812de14 Author: Keith Packard Date: Thu Apr 27 07:54:07 2006 +0000 Eliminate pattern freezing ChangeLog | 8 ++ src/fcinit.c | 4 - src/fcint.h | 3 - src/fcpat.c | 370 ----------------------------------------------------------- src/fcxml.c | 3 +- 5 files changed, 9 insertions(+), 379 deletions(-) commit c1c3ba06d5f5e00a1bfef4ef0dbf10f28fa86ce2 Author: Keith Packard Date: Thu Apr 27 07:11:44 2006 +0000 Make path names in cache files absolute (NB, cache format change) Stop permitting cache files to be stored in font dirs. Bump cache magic. Don't include /fonts.cache-2 in cache hash construction. reviewed by: Patrick Lam ChangeLog | 30 +++++++++++++ src/fccache.c | 104 +++++++++++--------------------------------- src/fcfreetype.c | 10 +---- src/fcint.h | 8 +--- src/fclist.c | 4 -- src/fcmatch.c | 3 -- src/fcpat.c | 130 ------------------------------------------------------- 7 files changed, 57 insertions(+), 232 deletions(-) commit 3b013a034acac70f3ceee05505bf5bb4dd45963b Author: Patrick Lam Date: Wed Apr 26 14:50:41 2006 +0000 Really update for 2.3.95. README | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 73775d8f28bd8f5c40b524fe1ede63d3dfaff171 Author: Patrick Lam Date: Tue Apr 25 15:33:07 2006 +0000 Fix the issues with GNU libiconv vs. libc iconv (which especially appear on Solarii). Approach suggested by Tim Mooney. reviewed by: plam ChangeLog | 12 +++++++++++- configure.in | 37 +++++++++++++++++++++++++++++++++++-- src/Makefile.am | 2 +- src/fcfreetype.c | 3 +-- 4 files changed, 48 insertions(+), 6 deletions(-) commit 49512317264da1996bddf0b3c82d8d2de0c201eb Author: Patrick Lam Date: Tue Apr 25 06:12:06 2006 +0000 Include $(top_srcdir), $(top_srcdir)/src before anything else. Shuffle order of includes for building out of srcdir on win32. reviewed by: plam ChangeLog | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) commit f045376c0831f068e8fd8fd61773a5ed83dede7f Author: Patrick Lam Date: Tue Apr 25 05:57:41 2006 +0000 Include $(top_srcdir), $(top_srcdir)/src before anything else. Shuffle order of includes for building out of srcdir on win32. reviewed by: plam fc-cache/fc-cache.c | 15 ++++++++------- fc-cat/fc-cat.c | 17 +++++++++-------- fc-match/fc-match.c | 11 ++++++----- src/Makefile.am | 6 +++--- src/fccache.c | 2 +- src/fccfg.c | 2 +- src/fccharset.c | 2 +- src/fcdbg.c | 2 +- src/fcfreetype.c | 2 +- src/fcfs.c | 2 +- src/fcinit.c | 2 +- src/fclist.c | 2 +- src/fcmatch.c | 2 +- src/fcmatrix.c | 2 +- src/fcname.c | 2 +- src/fcpat.c | 2 +- src/fcstr.c | 2 +- src/fcxml.c | 2 +- 18 files changed, 40 insertions(+), 37 deletions(-) commit 55e145b0250e5c233d9fed1f8f5efe690374cdf2 Author: Patrick Lam Date: Thu Apr 20 16:57:50 2006 +0000 Prevent terrible perf regression by getting the if-condition right (reported by Wouter Bolsterlee). ChangeLog | 8 +++++++- src/fcmatch.c | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) commit 93f67dfc73601ea2f73c1fa2d9f4f13a84cf1232 Author: Patrick Lam Date: Wed Apr 19 16:53:50 2006 +0000 Dominic Lachowicz Implement mmap-like code for Windows using MapViewOfFile. ChangeLog | 7 +++++++ src/fccache.c | 23 ++++++++++++++++++++--- 2 files changed, 27 insertions(+), 3 deletions(-) commit 56f8358364ad9078d99a35a12d7734884b8fccc2 Author: Patrick Lam Date: Wed Apr 19 16:17:46 2006 +0000 Bump version to 2.3.95. ChangeLog | 8 ++++++++ 1 file changed, 8 insertions(+) commit c001a192af784a3e7aa680cc925a4f6fc8f5b502 Author: Patrick Lam Date: Wed Apr 19 16:17:19 2006 +0000 Bail gracefully if the cache file does not contain enough data. ChangeLog | 5 +++++ README | 23 +++++++++++++++++++++-- configure.in | 2 +- fontconfig/fontconfig.h | 2 +- src/fccache.c | 19 ++++++++++++++++++- 5 files changed, 46 insertions(+), 5 deletions(-) commit a77572948ed9ce3e7fdffcfadd8772a5f962e4ed Author: Patrick Lam Date: Sat Apr 15 00:25:20 2006 +0000 Give the 'Standard Symbols L' match a strong (vs. weak) binding. ChangeLog | 5 +++++ fonts.conf.in | 13 ++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) commit 8cfa0bbc822169c5c2dae8a0e089c225c5944558 Author: Patrick Lam Date: Fri Apr 14 18:35:16 2006 +0000 Fix Gecko-exposed segfault from my last hack to FcObjectToPtrLookup. Simplify code and get things straight. ChangeLog | 6 ++++++ src/fcname.c | 20 +++++--------------- 2 files changed, 11 insertions(+), 15 deletions(-) commit b43dbbdc92fc81d6f8e54b30c2d5062c1a20a105 Author: Patrick Lam Date: Fri Apr 14 15:40:58 2006 +0000 Actually, just add URW fonts as aliases for all of the PostScript fonts. (reported by Miguel Rodriguez). ChangeLog | 6 ++++++ fonts.conf.in | 36 ++++++++++++++++++++++++++++++------ 2 files changed, 36 insertions(+), 6 deletions(-) commit ca2556f2632f80ae4ed7e5c9e5f5bf8f3e738992 Author: Patrick Lam Date: Fri Apr 14 14:51:22 2006 +0000 Add an alias 'Standard Symbols L' for 'Symbol'. ChangeLog | 5 +++++ fonts.conf.in | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) commit 2f02e38361b24032945e24f7f8480999bf9df1e2 Author: Patrick Lam Date: Wed Apr 12 14:36:36 2006 +0000 Fix memory leak (Coverity defect #2089). Ignore script if subtable is missing (Coverity defect #2088). Fix possible null pointer dereference (Coverity defect #784) and memory leak (Coverity defects #785, #786). Don't copy FcCharSet if we're going to throw it away anyway. (Reported by Kenichi Handa). reviewed by: plam ChangeLog | 21 +++++++++++++++++++++ src/fccfg.c | 4 +++- src/fcfreetype.c | 5 +---- src/fcmatch.c | 33 ++++++++++++++++++++------------- src/fcpat.c | 7 ++++++- 5 files changed, 51 insertions(+), 19 deletions(-) commit a56e89ab4f21aa6288345c63d2c43e55561632e0 Author: Patrick Lam Date: Wed Apr 12 03:02:57 2006 +0000 Fix bad behaviour on realloc resulting in crash. reviewed by: plam ChangeLog | 7 +++++++ src/fcname.c | 17 ++++++++++------- 2 files changed, 17 insertions(+), 7 deletions(-) commit 5c90509c073b3879fd9e3a2dc9dddeb724757ccf Author: Patrick Lam Date: Wed Apr 12 02:38:28 2006 +0000 Don't crash if config is null (Coverity defect #984). ChangeLog | 13 +++++++++---- src/fccache.c | 5 +++-- 2 files changed, 12 insertions(+), 6 deletions(-) commit 2de24638b23f65b5586cebe3e9d9f4577a40673e Author: Patrick Lam Date: Tue Apr 11 16:54:24 2006 +0000 Missing bits from previous patches. Remove extra semi-colon. Fix memory leak in error case (Coverity defects #776, #985). Fix memory leaks (Coverity defects #779, #781) and memory use after free (Coverity defect #780). reviewed by: plam ChangeLog | 18 ++++++++++++++++++ src/fccfg.c | 13 +++++++++---- src/fccharset.c | 5 ++++- src/fclang.c | 1 + src/fcxml.c | 4 +++- 5 files changed, 35 insertions(+), 6 deletions(-) commit 04f7d3e7fd5069965bc74e678fc51b0412d15aa9 Author: Patrick Lam Date: Tue Apr 11 14:20:59 2006 +0000 Properly convert static charsets to dynamic charsets. Fix memory leak in error case (Coverity defects #1820, #1821, #1822). Fix memory leak (Coverity defect #1819). prevent crash when invalid include line is parsed (Coverity defect #763). Fix potential null pointer access (Coverity defect #1804). Remove dead code (Coverity defect #1194). Prevent potential null pointer access (Coverity defect #767), ensure error value is read (Coverity defect #1195). reviewed by: plam ChangeLog | 29 +++++++++++++++++++++++++++++ fc-cat/fc-cat.c | 4 +++- fc-lang/fc-lang.c | 3 +++ src/fccharset.c | 5 +++++ src/fcfreetype.c | 6 ++++-- src/fclang.c | 8 +++++++- src/fcname.c | 8 -------- src/fcpat.c | 11 ++++++++++- 8 files changed, 61 insertions(+), 13 deletions(-) commit af2ad236f037c7a53e73b9454f620de1a52f0422 Author: Patrick Lam Date: Tue Apr 11 05:08:26 2006 +0000 Survive missing docbook2pdf. reviewed by: plam ChangeLog | 11 +++++++++-- doc/Makefile.am | 10 ++++++---- 2 files changed, 15 insertions(+), 6 deletions(-) commit 67ed0b729718233662255a181bdcdb136c04dc5b Author: Patrick Lam Date: Mon Apr 10 22:08:35 2006 +0000 Include more stub definitions to make HP-UX's C compiler happy. ChangeLog | 7 +++++++ fc-case/fc-case.c | 3 +++ fc-glyphname/fc-glyphname.c | 3 +++ fc-lang/fc-lang.c | 3 +++ 4 files changed, 16 insertions(+) commit ac0010940e626cb9193bb4ad0271f3820c7225ee Author: Patrick Lam Date: Mon Apr 10 21:04:54 2006 +0000 Swap typo in order of ALIGN and dereferencing, fixing bug 6529. ChangeLog | 5 +++++ src/fcname.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) commit 3ea92166a0e45b0c7d7e9ecc0546317640c50336 Author: Patrick Lam Date: Mon Apr 10 19:33:03 2006 +0000 Fix string memory leak (Coverity defect #1823). Fix memory leak with hash collision (Coverity defect #1824). reviewed by: plam ChangeLog | 9 +++++++++ src/fccache.c | 1 + src/fccfg.c | 5 ++++- 3 files changed, 14 insertions(+), 1 deletion(-) commit c814c301ee4dcc67eeacee9608fb716e67534356 Author: Patrick Lam Date: Mon Apr 10 16:12:55 2006 +0000 Don't leak header in non-error case (Coverity defect #1825). reviewed by: plam ChangeLog | 6 ++++++ src/fccache.c | 2 ++ 2 files changed, 8 insertions(+) commit 65448e8b2af9bec38f86ab45916a9bcc7726ae30 Author: Patrick Lam Date: Mon Apr 10 16:06:42 2006 +0000 src/fcdir.c (FcDirScanConfig) Don't leak in error cases (Coverity defects #777, #1826) reviewed by: plam ChangeLog | 6 ++++++ src/fcdir.c | 54 +++++++++++++++++++++++++++++++++++++----------------- 2 files changed, 43 insertions(+), 17 deletions(-) commit ae2aafe6028be658bd1de0fe2dd309799bf575f7 Author: Patrick Lam Date: Mon Apr 10 15:46:34 2006 +0000 Fix double free (spotted by Coverity, CID #1965). Check if pattern is not null before using it (Coverity defect #1883). Fix memory leak with hash collision (Coverity defect #1829). Fix memory leak when bail cases (Coverity defect #1828). Don't leak directory name (Coverity defect #1827). reviewed by: plam ChangeLog | 18 ++++++++++++++++++ fc-match/fc-match.c | 6 ++++-- src/fccache.c | 10 +++++++--- src/fccfg.c | 1 + 4 files changed, 30 insertions(+), 5 deletions(-) commit 86abd75965f598dba79a3df68e7bc4c5082a5764 Author: Patrick Lam Date: Fri Apr 7 18:07:51 2006 +0000 LD_ADD missing dependencies for binaries. Reported by Edson Alves Pereira. reviewed by: plam ChangeLog | 10 ++++++++++ fc-cache/Makefile.am | 2 +- fc-cat/Makefile.am | 2 +- fc-list/Makefile.am | 3 +-- fc-match/Makefile.am | 2 +- 5 files changed, 14 insertions(+), 5 deletions(-) commit f23f5f388d93655af972083513ba4d505ec4f449 Author: Patrick Lam Date: Fri Apr 7 17:37:09 2006 +0000 SGI compilation fixes (reported by Christoph Bauer): 1) reorder union definition of _FcChar; 2) omit .stats =. ChangeLog | 8 ++++++++ fc-lang/fc-lang.c | 2 +- src/fcint.h | 8 ++++---- 3 files changed, 13 insertions(+), 5 deletions(-) commit 44415a079a3e9951e0c2424edca4907a93a60db5 Author: Patrick Lam Date: Fri Apr 7 17:27:39 2006 +0000 Portability fixes for HP-UX (reported by Christoph Bauer). Replace '__inline__' by AC_C_INLINE and 'inline'. Replace '__alignof__' by 'fc_alignof'. reviewed by: plam ChangeLog | 15 +++++++++++++++ configure.in | 1 + src/fccharset.c | 4 ++-- src/fcfs.c | 2 +- src/fcint.h | 15 +++++++++------ src/fclang.c | 2 +- src/fcname.c | 2 +- src/fcpat.c | 6 +++--- 8 files changed, 33 insertions(+), 14 deletions(-) commit 91fe51b4f8cf792041bc5cad34797b87abd63e67 Author: Patrick Lam Date: Fri Apr 7 17:06:55 2006 +0000 Move up #include of config.h. Fail if neither inttypes.h nor stdint.h is available. Fixes bug 6171. reviewed by: plam ChangeLog | 8 ++++++++ src/fcint.h | 11 +++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) commit d6217cc6bcce0768ce1e01c077e90967ff91db5a Author: Patrick Lam Date: Fri Apr 7 04:42:32 2006 +0000 Patrick Lam Make fontconfig compile under MinGW: 1) remove unneeded #includes; 2) make use of mmap and sysconf conditional; 3) replace rand_r by srand/rand if needed; 4) use chsize instead of ftruncate; and 5) update libtool exports file ChangeLog | 18 +++ configure.in | 3 +- fc-cache/fc-cache.c | 7 + fc-cat/fc-cat.c | 1 - src/fccache.c | 74 +++++++++- src/fcfreetype.c | 3 +- src/fontconfig.def.in | 370 ++++++++++++++++++++++++++++++++++---------------- 7 files changed, 353 insertions(+), 123 deletions(-) commit 3a342c5a6ca6c27fdddf0c669392b7ab1d6e3f7e Author: Patrick Lam Date: Fri Apr 7 04:19:49 2006 +0000 Eliminate warning. ChangeLog | 5 +++++ src/fcdir.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) commit e79c648c7a27a1afdde813105d0727e3ee6bc9fd Author: Patrick Lam Date: Thu Apr 6 05:15:08 2006 +0000 file fc-match.sgml was initially added on branch fc-2_4_branch. commit 8b4e7628e1d8baca4f55fcdd76101b8b3e015044 Author: Patrick Lam Date: Thu Apr 6 05:15:08 2006 +0000 Update documentation for fc-match (SGML-ize it). (reported by Ilya Konstantinov) ChangeLog | 8 +++ fc-match/.cvsignore | 1 + fc-match/Makefile.am | 27 +++++++- fc-match/fc-match.1 | 37 ----------- fc-match/fc-match.sgml | 169 +++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 203 insertions(+), 39 deletions(-) commit 392fa276dcae8d4c66607bbbd8dd30354a331afc Author: Patrick Lam Date: Thu Apr 6 04:52:21 2006 +0000 Reduce amount of dirty rss by const'ing some data structures. Don't fail if we can't create or remove $(pkgcachedir) i.e. /var/cache/fontconfig. (reported by Quanah Gibson-Mount). reviewed by: plam ChangeLog | 15 +++++++++++++++ fc-cache/Makefile.am | 4 ++-- src/fcdefault.c | 2 +- src/fcpat.c | 2 +- src/fcxml.c | 2 +- 5 files changed, 20 insertions(+), 5 deletions(-) commit 0d745819a9ec491349d4e122a7d44d689b2d3479 Author: Patrick Lam Date: Thu Apr 6 04:33:11 2006 +0000 Fix intel compiler warnings: make many variables static, eliminate duplicate names, reduce variable scopes, unsigned/signed printf formatting. reviewed by: plam ChangeLog | 16 ++++++++++++++++ fc-case/fc-case.c | 8 ++++---- fc-glyphname/fc-glyphname.c | 12 ++++++------ fc-lang/fc-lang.c | 8 ++++---- fc-match/fc-match.c | 2 +- src/fccache.c | 11 ++++++----- src/fcfreetype.c | 4 +--- src/fclang.c | 5 ++--- src/fcxml.c | 14 +++++++------- 9 files changed, 47 insertions(+), 33 deletions(-) commit b17cf498be69f483e6355ae468f7239165df3ffb Author: Patrick Lam Date: Fri Mar 24 15:21:10 2006 +0000 Fix multiarch support (don't destroy multiarch files!) Require pkg-config. (Thanks Behdad; better solution wanted for libxml2 detection!) reviewed by: plam ChangeLog | 12 ++++++++++++ configure.in | 2 ++ fonts.conf.in | 7 ++++++- src/fccache.c | 3 ++- 4 files changed, 22 insertions(+), 2 deletions(-) commit ba76916ff64d476d5c5564e46a5d4209cb942864 Author: Patrick Lam Date: Thu Mar 23 04:22:28 2006 +0000 On Windows, unlink before rename. Reported by Tim Evans. ChangeLog | 5 +++++ src/fcatomic.c | 3 +++ 2 files changed, 8 insertions(+) commit c02218223153b3022071e789def3fde8b556d6d6 Author: Patrick Lam Date: Thu Mar 23 04:21:10 2006 +0000 On Windows, unlink before rename. Reported by Tim Evans. ChangeLog | 5 +++++ src/fcatomic.c | 3 +++ 2 files changed, 8 insertions(+) commit d8fda87d5e306eea6b07d0e4f8c6fb1cc2f25804 Author: Patrick Lam Date: Wed Mar 15 15:59:33 2006 +0000 Fix typos in orth files. Reported by Denis Jacquerye. fc-lang/ab.orth | 2 +- fc-lang/ibo.orth | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 04af4f56dcaa6bdfbc67c0bc184ac88ccdfb03c1 Author: Patrick Lam Date: Wed Mar 15 15:58:59 2006 +0000 Fix typos in orth files. Reported by Denis Jacquerye. ChangeLog | 6 ++++++ fc-lang/ab.orth | 2 +- fc-lang/ibo.orth | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) commit fd11da8464309d6d562bdf2cd59e22cc3763c65a Author: Patrick Lam Date: Wed Mar 8 20:57:39 2006 +0000 Fix Makefile.am for removal of debian/ directory. ChangeLog | 7 +++++++ Makefile.am | 35 +---------------------------------- config/config.guess | 51 +++++++++++++++++++++++++++++++++++++++++---------- config/config.sub | 47 ++++++++++++++++++++++++++++++++++++++--------- 4 files changed, 87 insertions(+), 53 deletions(-) commit c957abedc73ac8f22bc56e04342ff3bb6cb29ad1 Author: Patrick Lam Date: Wed Mar 8 20:38:39 2006 +0000 .cvsignore Ignore debian/ directory for CVS. .cvsignore | 1 + ChangeLog | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) commit dcd49fcc23239be8fc0c3ca62a5fd3e059f19c02 Author: Patrick Lam Date: Wed Mar 8 20:33:42 2006 +0000 debian/* Now remove debian/ directory. ChangeLog | 5 + debian/README.Debian | 45 --- debian/changelog | 718 -------------------------------------- debian/compat | 1 - debian/control | 80 ----- debian/copyright | 29 -- debian/fontconfig-udeb.install | 3 - debian/fontconfig.config | 10 - debian/fontconfig.defoma | 162 --------- debian/fontconfig.dirs | 1 - debian/fontconfig.install | 7 - debian/fontconfig.postinst | 145 -------- debian/fontconfig.postrm | 26 -- debian/fontconfig.templates | 27 -- debian/libfontconfig1-dev.install | 7 - debian/libfontconfig1.install | 1 - debian/local.conf.md5sum | 18 - debian/rules | 40 --- 18 files changed, 5 insertions(+), 1320 deletions(-) commit ccda304eac0cafabb765a8b04d3f0b9f0c9e8944 Author: Patrick Lam Date: Wed Mar 8 20:32:56 2006 +0000 debian/po/* .cvsignore Remove debian/ directory from sources. See Debian's subversion server at svn://svn.debian.org/pkg-freedesktop/trunk/fontconfig instead. ChangeLog | 8 +++ debian/po/POTFILES.in | 1 - debian/po/cs.po | 127 ------------------------------------- debian/po/da.po | 146 ------------------------------------------- debian/po/de.po | 124 ------------------------------------ debian/po/es.po | 163 ------------------------------------------------ debian/po/fr.po | 159 ---------------------------------------------- debian/po/ja.po | 88 -------------------------- debian/po/nl.po | 125 ------------------------------------- debian/po/pt.po | 112 --------------------------------- debian/po/pt_BR.po | 148 ------------------------------------------- debian/po/templates.pot | 84 ------------------------- debian/po/tr.po | 117 ---------------------------------- debian/po/zh_CN.po | 115 ---------------------------------- 14 files changed, 8 insertions(+), 1509 deletions(-) commit 72b3e80625b6706edc1204fe1015b21c8d8300b8 Author: Patrick Lam Date: Wed Mar 8 19:27:25 2006 +0000 file ln.orth was initially added on branch fc-2_4_branch. commit 2509fc7ac15e02992fe5c51f1c58d2f396447883 Author: Patrick Lam Date: Wed Mar 8 19:27:25 2006 +0000 Add orthography for Lingala. reviewed by: plam ChangeLog | 8 ++++++++ fc-lang/iso639-1 | 2 +- fc-lang/iso639-2 | 2 +- fc-lang/ln.orth | 43 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 53 insertions(+), 2 deletions(-) commit 37e3f33c7ec32432260b0ef750ac415763d6044f Author: Patrick Lam Date: Wed Mar 8 19:19:05 2006 +0000 Sort directory entries while scanning them from disk; prevents Heisenbugs due to file ordering in a directory. reviewed by: plam ChangeLog | 8 ++++++++ src/fcdir.c | 45 ++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 50 insertions(+), 3 deletions(-) commit e01166d52a1a597f32b57ac47154332c0c6ab1bf Author: Patrick Lam Date: Wed Mar 8 19:16:10 2006 +0000 Add a configuration file that disables hinting for the Lohit Gujarati font (since the hinting distort some glyphs quite badly). reviewed by: keithp ChangeLog | 9 +++++++++ conf.d/Makefile.am | 1 + 2 files changed, 10 insertions(+) commit e3c6d3364c79838e5c30de072b97f7f091b1f81d Author: Patrick Lam Date: Wed Mar 8 19:10:57 2006 +0000 Sort directory entries while scanning them from disk; prevents Heisenbugs due to file ordering in a directory. reviewed by: plam ChangeLog | 8 ++++++++ src/fcdir.c | 44 +++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 49 insertions(+), 3 deletions(-) commit d8951c0cc2474176910277e8ca840fba5d8f3655 Author: Patrick Lam Date: Wed Mar 8 02:30:43 2006 +0000 Remove stuff we don't use, make get_{char,short,long} functions of ftglue macros to be inlined. Code cleanups (excess prototype, old-style function definition). reviewed by: plam ChangeLog | 14 ++++++++++++++ src/fcfreetype.c | 8 ++++---- src/fcint.h | 3 --- src/fcname.c | 2 +- src/ftglue.c | 55 ++++++++----------------------------------------------- src/ftglue.h | 39 +++++++++++---------------------------- 6 files changed, 38 insertions(+), 83 deletions(-) commit 9226e04c69d7cb472999b1d8bc0cfa3c28054ebe Author: Patrick Lam Date: Sun Mar 5 15:33:46 2006 +0000 Because we hacked FcPatternGet, we don't really need to expand the filename again in FcPatternGetString. ChangeLog | 6 ++++++ src/fcpat.c | 3 --- 2 files changed, 6 insertions(+), 3 deletions(-) commit 618adbaf7bbad8441efb589417d7144476f828c7 Author: Patrick Lam Date: Sun Mar 5 06:05:50 2006 +0000 Ok, so some people (wine!) use FcPatternGet to fetch FC_FILE. Make that work. Reported by Bernhard Rosenkraenzer. ChangeLog | 6 +++++ src/fcpat.c | 73 +++++++++++++++++++++++++++++++++---------------------------- 2 files changed, 46 insertions(+), 33 deletions(-) commit dc70c15aba6d14dbd5ce8bcd1bc36a39602fbc2c Author: Patrick Lam Date: Fri Mar 3 18:35:42 2006 +0000 Include inttypes.h instead of stdint.h if appropriate. ChangeLog | 5 +++++ src/fcint.h | 4 ++++ 2 files changed, 9 insertions(+) commit ead55be0eddcaa60ed3f7147091ada276e891ed9 Author: Patrick Lam Date: Fri Mar 3 18:19:04 2006 +0000 More stub definitions and remove FcFileIsDir from fc-cat. ChangeLog | 6 ++++++ fc-cat/fc-cat.c | 10 ---------- fc-glyphname/fc-glyphname.c | 10 ++++++++++ 3 files changed, 16 insertions(+), 10 deletions(-) commit c003f5aec37e099d7f5a88d29cc4b2d5f1d002eb Author: Patrick Lam Date: Fri Mar 3 15:12:12 2006 +0000 Fix compilation on AIX with stub definitions (bug 6097). ChangeLog | 5 +++++ fc-case/fc-case.c | 10 ++++++++++ 2 files changed, 15 insertions(+) commit bb6b19938e2c9d115abd4f36439c365b63713bb1 Author: Patrick Lam Date: Fri Mar 3 06:35:53 2006 +0000 Get rid of C++-style comments. ChangeLog | 8 ++++++++ src/fccache.c | 4 ++-- src/fcfreetype.c | 2 +- src/fcfs.c | 8 ++++---- src/fcpat.c | 5 +++-- 5 files changed, 18 insertions(+), 9 deletions(-) commit 5b4a40a955c9607e80a8da5a42a0da5923e3c509 Author: Patrick Lam Date: Fri Mar 3 06:12:55 2006 +0000 debian/changelog Enable creation of 2.3.94 Debian packages. ChangeLog | 5 +++++ debian/changelog | 5 +++++ 2 files changed, 10 insertions(+) commit b36f2a39d0ad08d5ee6757f2e419021e63b39ea4 Author: Patrick Lam Date: Fri Mar 3 06:11:31 2006 +0000 Fix suspicious return expression which causes junk to be returned. reviewed by: plam ChangeLog | 8 ++++++++ src/fclang.c | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) commit b152a85bdc5c911883af4b0e7930cbe12531d179 Author: Patrick Lam Date: Fri Feb 24 19:32:58 2006 +0000 Fix placement of @s. ChangeLog | 5 +++++ Makefile.am | 14 +++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) commit 63d2df3f92b633ba82bfb4fb388062a21e0a0178 Author: Patrick Lam Date: Fri Feb 24 19:19:09 2006 +0000 Bump version to 2.3.94. ChangeLog | 8 ++++++++ README | 47 +++++++++++++++++++++++++++++++++++++++++++++-- configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 4 files changed, 55 insertions(+), 4 deletions(-) commit 639475e873c797792fff63fbd8efd73e2b0695fd Author: Patrick Lam Date: Fri Feb 24 18:52:17 2006 +0000 Remove unconditional emboldening (per Behdad's instructions). Add @s to hide some echos. ChangeLog | 9 +++++++++ Makefile.am | 10 +++++----- conf.d/10-fonts-persian.conf | 6 ------ 3 files changed, 14 insertions(+), 11 deletions(-) commit 0cfaf27e334e599bb3dcf8f06140e9577718191d Author: Patrick Lam Date: Fri Feb 24 16:41:34 2006 +0000 Takashi Iwai reviewed by: plam Fix double-free on error case. ChangeLog | 8 ++++++++ src/fcfreetype.c | 1 + 2 files changed, 9 insertions(+) commit cf5cf4cadb35c7ebabf025bf6781f69c390548c8 Author: Patrick Lam Date: Wed Feb 22 04:50:16 2006 +0000 Strip \r and whitespace from input; fixes bug 3454. ChangeLog | 7 ++++++- fc-lang/fc-lang.c | 11 +++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) commit 69a3fc78e233957f9e1f6737eccada1494a937ae Author: Patrick Lam Date: Wed Feb 22 04:09:39 2006 +0000 Allocate large arrays statically in fc-lang to fix crashes under MinGW/MSYS. ChangeLog | 6 ++++++ fc-lang/fc-lang.c | 18 +++++++++--------- 2 files changed, 15 insertions(+), 9 deletions(-) commit 656b47f6988e001c5b6fdfee7a38dc8321e71454 Author: Patrick Lam Date: Tue Feb 21 15:56:41 2006 +0000 Pass the buck; make fontconfig not crash on pango badness. ChangeLog | 5 +++++ src/fcfreetype.c | 4 ++++ 2 files changed, 9 insertions(+) commit 9fb0e0743eaf44099bdb9b3ff04b5fc7f73792a3 Author: Patrick Lam Date: Tue Feb 21 15:53:43 2006 +0000 Use embeddedbitmap rather than rh_prefer_bitmap. ChangeLog | 5 +++++ conf.d/10-fonts-persian.conf | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) commit f2fb985c7a0e51109b1750e166e4244a833ffbe3 Author: Patrick Lam Date: Tue Feb 21 15:50:19 2006 +0000 Eliminate redundancies. reviewed by: plam ChangeLog | 11 +++++++++++ src/fccache.c | 3 ++- src/fcdir.c | 3 --- src/fcfreetype.c | 1 - src/fcxml.c | 3 +-- src/ftglue.c | 1 - 6 files changed, 14 insertions(+), 8 deletions(-) commit b023dbd38410521a459758498f99d3a48cdd313d Author: Patrick Lam Date: Tue Feb 21 15:40:18 2006 +0000 Eliminate unused vars reported by Intel's compiler. reviewed by: plam ChangeLog | 10 ++++++++++ fc-list/fc-list.c | 4 ++-- src/fcfreetype.c | 3 +-- src/fcstr.c | 3 +-- src/fcxml.c | 2 -- 5 files changed, 14 insertions(+), 8 deletions(-) commit 2b90aee36399ec13ba3af929311b37d9494adab6 Author: Patrick Lam Date: Tue Feb 21 15:29:54 2006 +0000 Remove one more archaic character. reviewed by: plam ChangeLog | 7 +++++++ fc-lang/ka.orth | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) commit dacf81ed4c541174f0dbfe2898f3309657bf6116 Author: Patrick Lam Date: Tue Feb 21 15:24:28 2006 +0000 Freeze patterns created by configuration file for tiny memory savings (every little bit helps). reviewed by: plam, keithp ChangeLog | 8 ++++++++ src/fcxml.c | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) commit 9769b43d4a4d8fe5480b672124f764e5bac1f4c9 Author: Patrick Lam Date: Tue Feb 21 14:12:41 2006 +0000 Initialize fontconfig library in fc-cat to avoid segfault. reviewed by: plam ChangeLog | 7 +++++++ fc-cat/fc-cat.c | 11 ++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) commit 530e66b008c0d5b972b54046a5b15e76c8e989b6 Author: Patrick Lam Date: Sat Feb 18 18:18:07 2006 +0000 Fix the underlying cause of the below segfault (must usually call FcDirCacheHasCurrentArch after FcDirCacheValid). ChangeLog | 12 ++++++++++-- fc-cache/fc-cache.c | 2 ++ src/fccache.c | 4 +++- src/fcdir.c | 4 +++- 4 files changed, 18 insertions(+), 4 deletions(-) commit a68ce9525dedc06fd4da102492e8d1c6137b3664 Author: Patrick Lam Date: Sat Feb 18 17:56:25 2006 +0000 Fix segfault (reported by fcrozat) caused by incorrect input on cache files. ChangeLog | 6 ++++++ src/fccache.c | 21 +++++++++++++-------- 2 files changed, 19 insertions(+), 8 deletions(-) commit 310817371cdd4163c8d2f138e4fc3295ff0afbc5 Author: Patrick Lam Date: Fri Feb 17 14:44:42 2006 +0000 Bump up magic version; we changed the binary format. ChangeLog | 5 +++++ src/fcint.h | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) commit 12f46c42fa583d8e23b8f97eebac77d7b0576ed2 Author: Patrick Lam Date: Fri Feb 17 05:47:08 2006 +0000 Enable fc-cat to print out old-style cache info when given a directory name. ChangeLog | 6 ++++++ fc-cat/fc-cat.c | 26 +++++++++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) commit 8c0d692125018052fa228721f30f760dfb0c0adf Author: Patrick Lam Date: Thu Feb 16 17:50:04 2006 +0000 Deal correctly with changing FC_CACHE_MAGIC. ChangeLog | 5 +++++ src/fccache.c | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) commit d2c0102944176744e440c4109bf7725240453cc7 Author: Patrick Lam Date: Thu Feb 16 15:36:43 2006 +0000 Add -r --really-force option which blows away cache files and then regenerates them. ChangeLog | 6 ++++++ fc-cache/fc-cache.c | 25 ++++++++++++++++++------- 2 files changed, 24 insertions(+), 7 deletions(-) commit 719f4b841f9763f2e4aa10a61cb2ffd41d9e8226 Author: Patrick Lam Date: Thu Feb 16 07:12:04 2006 +0000 Don't bail if fontconfig can't remove a dir cache file. Skip the ID of a cache file when copying. Eliminate 'source file too small' bug in FcDirCacheWrite. ChangeLog | 9 ++++++++- fc-cache/fc-cache.c | 16 ++++++++++------ src/fccache.c | 8 +++----- 3 files changed, 21 insertions(+), 12 deletions(-) commit f8a17f329815cfa5416142811b96d16f2a5cca93 Author: Patrick Lam Date: Mon Feb 13 22:19:30 2006 +0000 Fix memory leak in error condition code. ChangeLog | 5 +++++ src/fcfreetype.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) commit 5657098e2940652065fcfd00e4cf2771d7df21ef Author: Patrick Lam Date: Mon Feb 13 21:51:11 2006 +0000 Skip bitmap fonts which can't even get it together enough to declare a family name; this appears to reproduce previous fontconfig behaviour. reviewed by: plam ChangeLog | 8 ++++++++ src/fcfreetype.c | 5 +++++ 2 files changed, 13 insertions(+) commit d00c3cb5e046dfb04b446d8b0bb10880d190cc13 Author: Patrick Lam Date: Sat Feb 11 05:01:32 2006 +0000 Try to open /var/cache/fontconfig/[hashed name] before fonts.cache-2 in a directory, because /var/cache/fontconfig failures ought to be fixable, unlike fonts.cache-2 failures, which may leave you screwed. reviewed by: plam ChangeLog | 9 +++++++++ src/fccache.c | 42 ++++++++++++++++++++---------------------- 2 files changed, 29 insertions(+), 22 deletions(-) commit 9e07e0a77b6b1c33a52a1ec4d845797e32125baf Author: Patrick Lam Date: Sat Feb 11 04:50:46 2006 +0000 Use a tri-state to mark the fonts which didn't get blocked but were just missing an element, to distinguish them from the fonts that do match the element. reviewed by: plam ChangeLog | 8 ++++++++ src/fcmatch.c | 18 +++++++++++------- 2 files changed, 19 insertions(+), 7 deletions(-) commit f11a184104a57c0d68afde8e7458c7b8473b6671 Author: Patrick Lam Date: Fri Feb 10 19:40:11 2006 +0000 Don't kill fonts because they don't declare an element that's being matched on. reviewed by: plam ChangeLog | 7 +++++++ src/fcmatch.c | 4 ++++ 2 files changed, 11 insertions(+) commit 879af7060b24c6d57eb29cf6cfe2f6bb04589261 Author: Patrick Lam Date: Thu Feb 9 18:44:14 2006 +0000 Define and pass O_BINARY to open if appropriate, for those platforms that need it. Reported by Doodle. ChangeLog | 7 ++++--- src/fccache.c | 30 +++++++++++++++++------------- 2 files changed, 21 insertions(+), 16 deletions(-) commit c7490074c57da387904cecfdf60595713c7bb89e Author: Patrick Lam Date: Thu Feb 9 16:19:42 2006 +0000 Fix attempt to close -1. Don't unboundedly grow bad caches (reported by fcrozat). ChangeLog | 6 ++++++ src/fccache.c | 8 +++++--- 2 files changed, 11 insertions(+), 3 deletions(-) commit a8c425301aeb8e417b0fa35567b2f8f64b450657 Author: Patrick Lam Date: Thu Feb 9 15:25:57 2006 +0000 Fix problem with missing 'en' due to euro.patch: change cache file format slightly to coincide with that generated by fc-lang. ChangeLog | 8 ++++++++ src/fccharset.c | 8 ++++---- 2 files changed, 12 insertions(+), 4 deletions(-) commit b10e77628c4d207ac60ae4000b1459ced9228d69 Author: Patrick Lam Date: Wed Feb 8 03:34:17 2006 +0000 Fix warning. ChangeLog | 5 +++++ src/fccache.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) commit 5c3deb2985586a06216afd0e6a0c136d4e67a58b Author: Patrick Lam Date: Tue Feb 7 22:09:01 2006 +0000 Don't reject dirs that can't be normalized (fixes lilypond, and is correct in the context of application font directories.) Use normalized directory name exclusively in FcCacheReadDirs. reviewed by: plam ChangeLog | 13 +++++++++++++ src/fccache.c | 19 ++++++++++--------- src/fcdir.c | 9 ++++----- 3 files changed, 27 insertions(+), 14 deletions(-) commit efb11b36c4e24a619e7be1790834130ca4113c5b Author: Patrick Lam Date: Tue Feb 7 21:15:33 2006 +0000 Perf optimizations. Inline FcValueCanonicalize, reduce FcValueListPtrU usage, remove redundant cast. reviewed by: plam ChangeLog | 8 ++++++++ src/fcpat.c | 39 +++++++++++++++++++-------------------- 2 files changed, 27 insertions(+), 20 deletions(-) commit 6cc02fe6b95421f6e97af9008ad9ff4febe80c36 Author: Patrick Lam Date: Tue Feb 7 20:56:48 2006 +0000 src/fccharset.c (FcLangCharSetPopulate, FcCharSetInsertLeaf) Fix missing FcCacheBankToIndex in FcCharSetInsertLeaf. Declare extern for static arrays as arrays, not pointers. (Part of the fix for 'fonts don't have en' issue after Euro patch.) (I forgot to commit the ChangeLog last time.) reviewed by: plam ChangeLog | 25 +++++++++++++++++++++++++ src/fccharset.c | 6 +++--- 2 files changed, 28 insertions(+), 3 deletions(-) commit a81f23c0cecdc5d4cb7a443fdd4527b5f0dbca8a Author: Patrick Lam Date: Tue Feb 7 03:53:32 2006 +0000 Fix hidden variable warning. ChangeLog | 6 ++++++ fc-lang/de.orth | 1 + fc-lang/el.orth | 1 + fc-lang/en.orth | 1 + fc-lang/es.orth | 1 + fc-lang/fc-lang.c | 6 +++--- fc-lang/fi.orth | 2 +- fc-lang/fr.orth | 1 + fc-lang/it.orth | 1 + fc-lang/nl.orth | 1 + fc-lang/pt.orth | 1 + src/fccache.c | 1 - src/fccharset.c | 9 +++++---- 13 files changed, 23 insertions(+), 9 deletions(-) commit 799157dbbf55d1bf13b1e63faf3b530979116aca Author: Patrick Lam Date: Tue Feb 7 02:33:57 2006 +0000 Remove de-escaping logic because FcCacheWriteString doesn't escape anyway. Do blockwise reading instead of byte-wise for performance. ChangeLog | 8 +++++++ src/fccache.c | 72 ++++++++++++++++++++--------------------------------------- 2 files changed, 32 insertions(+), 48 deletions(-) commit 8b413bb62c6743db10e7d210fb7924c9502fd60e Author: Patrick Lam Date: Tue Feb 7 02:22:50 2006 +0000 Takashi Iwai Don't loop infinitely on recursive symlinks (client-side). ChangeLog | 7 +++++++ src/fccache.c | 21 +++++++++++++++------ 2 files changed, 22 insertions(+), 6 deletions(-) commit 660acf8f2278df9276c9a1bff3533e9a74fd8c6b Author: Patrick Lam Date: Mon Feb 6 23:11:41 2006 +0000 Don't loop infinitely on recursive symlinks. reviewed by: plam ChangeLog | 6 ++++++ fc-cache/fc-cache.c | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+) commit fff5a5af30142c933d8e9dddda61a6a994f44c28 Author: Patrick Lam Date: Mon Feb 6 22:44:02 2006 +0000 Skip subdirs when skipping over stale bits of global cache. Introduce state machine into FcGlobalCacheDir to avoid doing inappropriate operations on global dir entries, e.g. writing out an out-of-date cache entry. reviewed by: plam ChangeLog | 12 ++++ src/fccache.c | 186 ++++++++++++++++++++++++++++++++++++++++++---------------- src/fcint.h | 4 ++ 3 files changed, 150 insertions(+), 52 deletions(-) commit 98592bbb1dbdb867994dcf463bdd36f98878fffc Author: Patrick Lam Date: Mon Feb 6 21:52:15 2006 +0000 Hoist FcFileIsDir check out of FcFileScanConfig loop. reviewed by: plam ChangeLog | 6 ++++++ src/fcdir.c | 11 ++++------- 2 files changed, 10 insertions(+), 7 deletions(-) commit a0aa54f6ee032efbca25bdf734ba62dd642b04a1 Author: Patrick Lam Date: Mon Feb 6 19:25:45 2006 +0000 Don't rescan when trying to normalize a non-declared font dir. Don't add font dirs multiple times (even if they're aliased). reviewed by: plam ChangeLog | 9 +++++++ src/fccfg.c | 78 ++++++++++++++++++++++++++++++++++++++++--------------------- 2 files changed, 61 insertions(+), 26 deletions(-) commit 86e75dfb5d1434837537b40e829f00f9ffbb8183 Author: Patrick Lam Date: Mon Feb 6 14:44:46 2006 +0000 Explain apples/oranges comparison and fix compilation error. reviewed by: plam ChangeLog | 7 +++++++ src/fcfs.c | 5 ++++- 2 files changed, 11 insertions(+), 1 deletion(-) commit f076169d19574c6c548764d574a33bc4fe022ffb Author: Patrick Lam Date: Mon Feb 6 14:14:21 2006 +0000 Insert check for integer overflow in # of fonts. reviewed by: plam ChangeLog | 7 +++++++ src/fcfs.c | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) commit 788c4af232f5677d73e8e2e77e123cf566530ccb Author: Patrick Lam Date: Sun Feb 5 04:11:08 2006 +0000 Make 'make distcheck' work with automake 1.6.3. reviewed by: plam ChangeLog | 10 ++++++++++ doc/Makefile.am | 2 +- fc-cache/Makefile.am | 2 +- fc-cat/Makefile.am | 2 +- fc-list/Makefile.am | 2 +- 5 files changed, 14 insertions(+), 4 deletions(-) commit 68355f38774fe55d8010268291a170492b241a71 Author: Patrick Lam Date: Sun Feb 5 02:57:21 2006 +0000 src/fccache.c (FcGlobalCacheLoad, FcGlobalCacheSave, FcDirCacheConsume, FcDirCacheWrite) Check I/O call return values and eliminate unused variable warnings. reviewed by: plam ChangeLog | 13 ++++++++++++ fc-cat/fc-cat.c | 5 ++--- src/fccache.c | 66 +++++++++++++++++++++++++++++++++++++++++++-------------- src/fcxml.c | 4 ++-- 4 files changed, 67 insertions(+), 21 deletions(-) commit c4c47a7654196f37b625f337192b235e558ab890 Author: Patrick Lam Date: Sat Feb 4 00:09:42 2006 +0000 src/fccfg.c (FcConfigAppFontAddFile, FcConfigAppFontAddDir) Fix memory leak. reviewed by: plam ChangeLog | 7 +++++++ src/fccfg.c | 2 ++ 2 files changed, 9 insertions(+) commit a8e4d9eb395b45ab23f0c540f919ec432b46dea8 Author: Patrick Lam Date: Sat Feb 4 00:04:00 2006 +0000 Gracefully handle the case where a cache asserts that it has a negative number of fonts, causing overflow. reviewed by: plam ChangeLog | 8 ++++++++ src/fcfs.c | 29 +++++++++++++++-------------- 2 files changed, 23 insertions(+), 14 deletions(-) commit 1af0f5741a95eed6f3a54140c360e0422fd13f62 Author: Patrick Lam Date: Fri Feb 3 23:47:37 2006 +0000 Fix double free in error case. ChangeLog | 5 +++++ src/fccache.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) commit 80ba0571f3bfdee854d6e69f55664f552f4b75a3 Author: Patrick Lam Date: Tue Jan 31 07:30:23 2006 +0000 Stephan Kulow reviewed by: plam Replace 'stamp' target with mkinstalldirs. ChangeLog | 8 ++++++++ fc-cache/Makefile.am | 13 +++---------- 2 files changed, 11 insertions(+), 10 deletions(-) commit 28aefd013d1896ffbf389596109eaec729d5d9a5 Author: Patrick Lam Date: Tue Jan 31 07:16:22 2006 +0000 Toast broken global cache files. reviewed by: plam ChangeLog | 7 +++++++ src/fccache.c | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) commit 3616cbe251e47cf36018a7277d9ff78f1cb0965e Author: Patrick Lam Date: Tue Jan 31 04:42:20 2006 +0000 Actually use the directories that I added to the global cache. Fixes 'make check'. ChangeLog | 6 ++++++ src/fccache.c | 11 +++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) commit 275cf6cd8350f8a9f29caabd5b1994c6324caaf6 Author: Patrick Lam Date: Tue Jan 31 04:07:45 2006 +0000 Don't stop scanning if a directory in fonts.conf doesn't exist, because subsequent directories might exist. reviewed by: plam ChangeLog | 8 ++++++++ fc-cache/fc-cache.c | 20 ++++++++++++++------ 2 files changed, 22 insertions(+), 6 deletions(-) commit 81d97094cf2a714417a9e73bb2f0f17f51ca3d95 Author: Patrick Lam Date: Mon Jan 30 16:31:56 2006 +0000 Make global cache work again after putting dir names into global cache (I misplaced the recording of a file offset). ChangeLog | 6 ++++++ src/fccache.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) commit 2c4e0124976724a7ae56bfee0ac4f7046c819ea8 Author: Patrick Lam Date: Mon Jan 30 15:59:17 2006 +0000 Update fc-cat to handle subdir lists in global cache file. Another FcCacheReadString return value check. ChangeLog | 9 +++++++++ fc-cat/fc-cat.c | 10 ++++++++++ src/fccache.c | 11 +++++++++-- 3 files changed, 28 insertions(+), 2 deletions(-) commit c5411c4cae9389ad875fbbeedeaba0644f5e399f Author: Patrick Lam Date: Mon Jan 30 15:44:13 2006 +0000 Make fccache more resilient to broken cache files by checking return value of FcCacheReadString all the time. reviewed by: plam ChangeLog | 9 +++++++++ src/fccache.c | 28 ++++++++++++++-------------- 2 files changed, 23 insertions(+), 14 deletions(-) commit 946478e1a7f8c59a97c89f5c9029f30241a6cc0c Author: Patrick Lam Date: Mon Jan 30 14:43:04 2006 +0000 Remove references to dead fontconfig(3) manpages in other fontconfig manpages. reviewed by: plam ChangeLog | 9 +++++++++ fc-lang/fc-lang.man | 2 -- fc-match/fc-match.1 | 2 -- 3 files changed, 9 insertions(+), 4 deletions(-) commit af7a965f945ab5aafab13fb7b6e8d96c911b24fd Author: Patrick Lam Date: Mon Jan 30 04:51:22 2006 +0000 Fix world's tiniest typo in code example. reviewed by: plam ChangeLog | 7 +++++++ doc/fcpattern.fncs | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) commit 30c4189deb8412793d175bce255561a882ad81b7 Author: Patrick Lam Date: Mon Jan 30 04:47:17 2006 +0000 Fix global cache reads of subdirectories. reviewed by: plam ChangeLog | 7 +++++++ src/fccache.c | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) commit 971cf18018a4f41bca196dd81989e67672e52112 Author: Patrick Lam Date: Mon Jan 30 04:27:53 2006 +0000 Add documentation for FcConfigNormalizeFontDir. Write directory information to global caches to fix make check (reported by Ronny V. Vindenes). This changes the global cache format again. ChangeLog | 13 +++++++++++++ doc/fcconfig.fncs | 11 +++++++++++ src/fccache.c | 25 +++++++++++++++++++++++-- src/fcdir.c | 2 +- src/fcint.h | 2 ++ 5 files changed, 50 insertions(+), 3 deletions(-) commit 97293e07dd688b3d81cd6e7ecd5df4cdef4c87d8 Author: Patrick Lam Date: Fri Jan 27 05:47:59 2006 +0000 Move FcConfigNormalizeFontDir call so that it doesn't result in infinite recursion (reported by Ronny V. Vindenes). ChangeLog | 9 +++++++++ fc-cache/fc-cache.c | 6 +++++- fontconfig/fontconfig.h | 4 ++++ src/fccache.c | 8 -------- src/fcint.h | 4 ---- 5 files changed, 18 insertions(+), 13 deletions(-) commit 3cf9f5cec386ce97bb3cdd1dfe78d0d6999243ea Author: Patrick Lam Date: Fri Jan 27 00:27:37 2006 +0000 Add a couple of missing normalizations to make fc-cache work right; only scan subdirectories once. ChangeLog | 7 +++++++ src/fccache.c | 8 ++++++++ src/fccfg.c | 4 ++-- 3 files changed, 17 insertions(+), 2 deletions(-) commit 4073203deb00cb1497f7cc8c1a7de25534070d2c Author: Patrick Lam Date: Thu Jan 26 16:11:41 2006 +0000 Don't crash on non-existant directories in global cache. reviewed by: plam ChangeLog | 7 +++++++ src/fccache.c | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) commit f468f568b4aedef1606b0692addf47cb9f02b328 Author: Patrick Lam Date: Thu Jan 26 16:09:12 2006 +0000 Stop trampling the directory name when writing out caches. (with Mike Fabian:) Beef up FcConfigNormalizeFontDir to scan subdirs when necessary. Don't scan directories that can't be normalized. ChangeLog | 11 +++++++++++ src/fccache.c | 16 +++++++++++++--- src/fccfg.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/fcdir.c | 6 +++++- src/fcxml.c | 2 +- 5 files changed, 82 insertions(+), 5 deletions(-) commit 575a37b7975656f73162438635b4ba26e229b33f Author: Patrick Lam Date: Wed Jan 25 14:52:49 2006 +0000 Fix additional memory leaks reported by Ronny V. Vindenes: don't invoke FcValueSave on hashed static strings in FcPatternAddWithBinding. Add another st_dev check in FcDirCacheOpen. ChangeLog | 11 +++++++++++ src/fccache.c | 13 +++++++++++-- src/fccfg.c | 3 +-- src/fcpat.c | 9 ++++++++- 4 files changed, 31 insertions(+), 5 deletions(-) commit 16a71eff3ee0326db3794fa26548106a8a8697f6 Author: Patrick Lam Date: Wed Jan 25 02:54:37 2006 +0000 Treat zh-hk fonts differently from zh-tw fonts. This patch may cause fontconfig to treat A-X fonts differently from A-Y fonts; please mail the fontconfig list if this causes any problems. reviewed by: plam ChangeLog | 10 ++++++++++ fc-lang/zh_hk.orth | 2 +- src/fcfreetype.c | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-) commit 6f9fcb51861fe3066e44a23817f1c700f3475ac0 Author: Patrick Lam Date: Wed Jan 25 02:33:46 2006 +0000 Fix memory leaks reported by Ronny V. Vindenes. ChangeLog | 6 ++++++ src/fccache.c | 9 ++++++++- src/fcfreetype.c | 8 +++++++- 3 files changed, 21 insertions(+), 2 deletions(-) commit 986e35979e56774c91f3214af9e8a6f71817dcfa Author: Patrick Lam Date: Thu Jan 19 19:20:30 2006 +0000 Fix for unaligned memory accesses. reviewed by: plam ChangeLog | 9 ++++++++- src/fcpat.c | 12 ++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) commit 58bdd29619e6580477918f8c8d77aadbe5e427a4 Author: Patrick Lam Date: Wed Jan 18 15:41:15 2006 +0000 Properly order the FcConfigAddFontDir and FcConfigNormalizeFontDir calls to avoid crashes. reviewed by: plam ChangeLog | 8 ++++++++ src/fcdir.c | 4 +++- 2 files changed, 11 insertions(+), 1 deletion(-) commit eadadf489aff5f4a17a91f85909cb0dc27b2a494 Author: Patrick Lam Date: Sun Jan 15 05:31:58 2006 +0000 Fix segfault when consuming zero-length caches in fc-cat (which has no config, so FcConfigAddFontDir shouldn't be called.) ChangeLog | 6 ++++++ src/fccache.c | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) commit 8a0b0ed6d01e4e20ab6727211fe5823395a9b4c4 Author: Patrick Lam Date: Sat Jan 14 21:23:03 2006 +0000 Compare device numbers as well as inodes. Always normalize directory names before comparing them. Allocate extra space for appended '/' in directory name. reviewed by: plam ChangeLog | 19 +++++++++++++++++++ fc-cache/fc-cache.c | 2 +- fc-cat/fc-cat.c | 6 +++++- fontconfig/fontconfig.h | 2 +- src/fccache.c | 19 ++++++++++++++----- src/fccfg.c | 7 ++++--- src/fcdir.c | 2 +- src/fcint.h | 6 ++++-- 8 files changed, 49 insertions(+), 14 deletions(-) commit df3efc11a9584e2099366c31ba64ac9346760321 Author: Patrick Lam Date: Tue Jan 10 13:15:05 2006 +0000 Explicitly add font dirs to config.fontDirs even if they're empty. Set current config in fc-cache.c. Fix treatment of cache directory as read from cache file; don't use string equality to determine if we have the right file, use inode equality. ChangeLog | 12 ++++++++++ fc-cache/fc-cache.c | 1 + src/fccache.c | 64 ++++++++++++++++++++++++++++------------------------- 3 files changed, 47 insertions(+), 30 deletions(-) commit cd9bca69702900ca9b24319c76b2dc9432bb548f Author: Patrick Lam Date: Mon Jan 9 13:58:04 2006 +0000 Normalize font dirs by using the form, as given in fonts.conf, and recorded in FcConfig's fontDirs string set, as canonical. Actually update config.fontDirs as font directories are scanned. ChangeLog | 14 ++++++++++++++ fc-cache/fc-cache.c | 2 +- fc-cat/fc-cat.c | 4 ++-- src/fccache.c | 21 ++++++++++++--------- src/fccfg.c | 23 +++++++++++++++++++++++ src/fcdir.c | 3 ++- src/fcint.h | 6 +++++- 7 files changed, 59 insertions(+), 14 deletions(-) commit 5576a5873dc9cd6e11234df6e64dbff18afe6378 Author: Patrick Lam Date: Sun Jan 8 10:58:30 2006 +0000 Fix matching bug when multiple elements match; don't use the sum of all scores, but the best score. Also more perf opts, e.g. evaluate best over all font sets rather than on a per-set basis (and other changes). src/fcmatch.c | 243 ++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 143 insertions(+), 100 deletions(-) commit a6d3757d9802c8f5dc8632a8cf6703042f62e303 Author: Patrick Lam Date: Sun Jan 8 10:58:05 2006 +0000 Fix matching bug when multiple elements match; don't use the sum of all scores, but the best score. Also more perf opts, e.g. evaluate best over all font sets rather than on a per-set basis (and other changes). ChangeLog | 9 +++++++++ 1 file changed, 9 insertions(+) commit 05a98eaf4bd23fe1035660a9a2b1018abdfc9c6e Author: Patrick Lam Date: Sun Jan 8 10:50:51 2006 +0000 Properly skip past dir caches that contain zero fonts (as occurs in global caches.) Reported by Mike Fabian. ChangeLog | 6 ++++++ src/fccache.c | 4 ++++ 2 files changed, 10 insertions(+) commit 5fe09702f4fc4ec6d55f30b80999ce2c219bd966 Author: Patrick Lam Date: Sat Jan 7 06:36:24 2006 +0000 Print out full pathname in fc-match -v as well. Reported by Frederic Crozat. Fix bug where fc-match crashes when given __DUMMY__ property to match on. (I added the __DUMMY__ string to enable callers of FcObjectToPtrLookup to distinguish an error return from a successful return. -PL) reviewed by: plam ChangeLog | 18 ++++++++++++++++++ src/fcdbg.c | 21 ++++++++++++++++++++- src/fcname.c | 11 +++++++---- 3 files changed, 45 insertions(+), 5 deletions(-) commit c60ec7cc6d1795922b742435965746e02e67f11c Author: Patrick Lam Date: Thu Jan 5 15:12:22 2006 +0000 Add self to AUTHORS list. Minor change to global cache file format to fix fc-cat bug reported by Frederic Crozat, and buglet with not globally caching directories with zero fonts cached. AUTHORS | 2 ++ ChangeLog | 18 ++++++++++++++++ fc-cat/fc-cat.c | 66 +++++++++++++++++++++++++++++++++------------------------ src/fccache.c | 31 +++++++++++++-------------- src/fcint.h | 1 + src/fcpat.c | 2 +- 6 files changed, 75 insertions(+), 45 deletions(-) commit 52ac91f7c1a8a6433851cbde8ccade618f0218e4 Author: Patrick Lam Date: Mon Jan 2 17:20:23 2006 +0000 Fix double-free which occurs because FcValueCanonicalize doesn't create an extra copy of the returned value, it only canonicalizes it. reviewed by: plam ChangeLog | 11 ++++++++++- src/fccfg.c | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) commit cea78a87910a88383699d5a386693d39aa3236f5 Author: Patrick Lam Date: Mon Jan 2 17:18:22 2006 +0000 Fix version of .cache file (currently 1 -> currently 2). Reported by Jim Osborn. ChangeLog | 6 ++++++ 1 file changed, 6 insertions(+) commit e9fd3c069aa415f9e7589dd1a871cd7727925364 Author: Patrick Lam Date: Mon Jan 2 17:13:48 2006 +0000 Fix version of .cache file (currently 1 -> currently 2). Reported by Jim Osborn. doc/fontconfig-user.sgml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ebc157f9a1eb266d60d03ad3fa36dc2ba0250db1 Author: Patrick Lam Date: Wed Dec 21 20:00:20 2005 +0000 Shut up GCC warnings on amd. reviewed by: plam ChangeLog | 7 +++++++ src/fcpat.c | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) commit 19ea60bc7c0186070d95f5effc815c546de1dcb0 Author: Patrick Lam Date: Wed Dec 21 05:37:10 2005 +0000 Avoid check on _fcBankId nullness and fix case where it used to crash. ChangeLog | 7 +++++++ src/fccharset.c | 2 +- src/fcint.h | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) commit 3bfae75d44db5ceae394194d2e6c7b81201ea685 Author: Patrick Lam Date: Wed Dec 21 03:31:19 2005 +0000 Bump version to 2.3.93. Use open instead of fopen (requested by Phil Race for Sun). src/fccache.c (FcDirCacheWrite); Fix GCC4 warning and Makefile brokenness for /var/cache/fontconfig dir. ChangeLog | 20 ++++++++++++++++ README | 17 ++++++++++++-- configure.in | 2 +- fc-cache/Makefile.am | 8 +++++++ fontconfig/fontconfig.h | 2 +- src/fccache.c | 62 ++++++++++++++++++++++++++++++++++++++++--------- src/fcxml.c | 13 ++++++----- 7 files changed, 103 insertions(+), 21 deletions(-) commit 6f767cec491d354150a11491905ba59cc77a2659 Author: Patrick Lam Date: Tue Dec 20 20:35:47 2005 +0000 Restore code to skip over PCF fonts that have no encoded characters. (We guess that a font is PCF by presence of the PIXEL_SIZE BDF property.) ChangeLog | 8 ++++++++ conf.d/10LohitGujarati.conf | 5 +++++ src/fcfreetype.c | 9 ++++++--- 3 files changed, 19 insertions(+), 3 deletions(-) commit a7683cafe10925d09855f927cb7602a90e10516f Author: Carl Worth Date: Tue Dec 13 17:50:50 2005 +0000 Add a configuration file that disables hinting for the Lohit Gujarati font (since the hinting distort some glyphs quite badly). reviewed by: keithp ChangeLog | 8 ++++++++ conf.d/10LohitGujarati.conf | 5 +++++ conf.d/Makefile.am | 1 + 3 files changed, 14 insertions(+) commit ec760b178a7bb1a60fe2fe5e205ef82922fde5b6 Author: Patrick Lam Date: Mon Dec 12 20:45:54 2005 +0000 Read and write the original location as a fallback for the hashed cache file locations. This is mostly for users to be able to have per-directory cache files. ChangeLog | 7 +++++++ src/fccache.c | 41 ++++++++++++++++++++++++++++++++--------- 2 files changed, 39 insertions(+), 9 deletions(-) commit 83b6739035fc17d97b8ce01d6a9b9ef6e78d694c Author: Patrick Lam Date: Mon Dec 12 13:46:45 2005 +0000 Improve error message when fc-cache can't write the cache. Add missing slash. Reported by Behdad. Incorporate Behdad's patch to create /var/cache/fontconfig when appropriate. ChangeLog | 9 +++++++++ fc-cache/Makefile.am | 5 +++++ fc-cache/fc-cache.c | 4 +++- src/fccache.c | 2 +- 4 files changed, 18 insertions(+), 2 deletions(-) commit 368104c381815aa9a0c8c878f1d2be0cc5330f10 Author: Patrick Lam Date: Mon Dec 12 13:20:41 2005 +0000 Fix crash reported by Frederic Crozat when using libxml2. reviewed by: plam ChangeLog | 7 +++++++ src/fcxml.c | 3 +++ 2 files changed, 10 insertions(+) commit ea44e2184198aba956e39ae63a4914544c9719fe Author: Patrick Lam Date: Fri Dec 9 16:36:45 2005 +0000 Migrate cache files from fonts directories to /var/cache/fontconfig. This helps make fontconfig FHS-compliant, but requires that all caches get rebuilt. Also, autogen.sh now needs the additional parameter --localstatedir=/var. ChangeLog | 20 ++ INSTALL | 2 +- configure.in | 7 + fc-cache/Makefile.am | 2 + fc-cat/Makefile.am | 2 + fc-cat/fc-cat.c | 13 +- fontconfig/fontconfig.h | 1 + src/Makefile.am | 2 + src/fccache.c | 523 +++++++++++++++++++++++++++++++++++++++++++----- 9 files changed, 519 insertions(+), 53 deletions(-) commit 204da5a8b88a73e54a9bab0537db7ff4fe8c6374 Author: Patrick Lam Date: Thu Dec 8 05:54:27 2005 +0000 Because we've changed FcPatternAddString to use FcStrStaticName and not FcValueSave, explicitly handle the case of a null string. ChangeLog | 6 ++++++ src/fcpat.c | 7 +++++++ 2 files changed, 13 insertions(+) commit 982b598278315de60721740047a1b57f4a5895b8 Author: Patrick Lam Date: Wed Dec 7 03:55:25 2005 +0000 Fix warnings. ChangeLog | 5 +++++ fc-cat/fc-cat.c | 9 +++------ 2 files changed, 8 insertions(+), 6 deletions(-) commit c6103dfb22de0664a6ab164d90d6959551e301c5 Author: Patrick Lam Date: Tue Dec 6 18:57:43 2005 +0000 Don't assign types to user object names. ChangeLog | 5 +++++ src/fcname.c | 3 +++ 2 files changed, 8 insertions(+) commit 9ede93f1dc375c1f4d7e71d821887c01a367d995 Author: Patrick Lam Date: Mon Dec 5 16:08:01 2005 +0000 Don't free strings that have been returned from FcStrStaticName. ChangeLog | 5 +++++ src/fcpat.c | 21 +++++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) commit 6059daeddb7b44d9b2c0f4d94a08fb6ff79ff3ac Author: Patrick Lam Date: Thu Dec 1 07:12:45 2005 +0000 Add codepath for reading global cache files as well. ChangeLog | 5 +++++ fc-cat/fc-cat.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) commit 4edd0a0286c3c7fc3497afe8f5f68df118deb682 Author: Patrick Lam Date: Thu Dec 1 06:27:07 2005 +0000 file 10-fonts-persian.conf was initially added on branch fc-2_4_branch. commit 2c6fead73fd6608fd50eb97c69a556fdac1b5c55 Author: Patrick Lam Date: Thu Dec 1 06:27:07 2005 +0000 Add config file for Persian fonts from Sharif FarsiWeb, Inc. reviewed by: plam ChangeLog | 10 +- conf.d/10-fonts-persian.conf | 545 +++++++++++++++++++++++++++++++++++++++++++ conf.d/Makefile.am | 1 + 3 files changed, 555 insertions(+), 1 deletion(-) commit cb6d97eb1baba6795bb8abdede69902b2440f371 Author: Patrick Lam Date: Wed Nov 30 22:13:21 2005 +0000 Only add a config file to the set of config files once. reviewed by: plam ChangeLog | 7 +++++++ src/fcxml.c | 6 ++++++ 2 files changed, 13 insertions(+) commit 93a27747a485624d4a89550036e12eeec96d4558 Author: Patrick Lam Date: Tue Nov 29 15:04:06 2005 +0000 src/fcint.h (FcCacheBankToIndex); Fix segfault by guarding array dereference. ChangeLog | 5 +++++ src/fcint.h | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) commit b8948e85420469c83098a6b97d7979189a8734d9 Author: Patrick Lam Date: Tue Nov 29 14:57:10 2005 +0000 Refactor FcCacheBankToIndex into an inlineable part (in fcint.h) which checks the front of the list and a non-inlineable part which finds and moves the appropriate element to the front of the list. reviewed by: plam ChangeLog | 14 ++++++++++++++ fc-lang/fc-lang.c | 5 ++++- src/fccache.c | 34 +++++++++++++++++----------------- src/fcint.h | 9 ++++++++- 4 files changed, 43 insertions(+), 19 deletions(-) commit 9fad72abaf3da6f3e4a691a0e1a852f6a7353d56 Author: Patrick Lam Date: Tue Nov 29 06:23:00 2005 +0000 Make the perf guys hate me a bit less: hoist the directory-name FcConfigAcceptFont check for cached fonts up to directory cache read time, rather than running it for each font. ChangeLog | 8 ++++++++ src/fccache.c | 3 +++ src/fccfg.c | 6 ++---- 3 files changed, 13 insertions(+), 4 deletions(-) commit 51af0509925e780eb3eb9014aac5e50b6bbbe0d1 Author: Patrick Lam Date: Tue Nov 29 06:09:18 2005 +0000 Don't make FcPatternFindFullFname available to fccfg, it's not really safe. Instead go through FcPatternGetString (sorry, perf guys.) Also, use globs for dirs as well. ChangeLog | 9 +++++++++ src/fccfg.c | 8 +++++--- src/fcint.h | 3 --- src/fcpat.c | 5 ++++- 4 files changed, 18 insertions(+), 7 deletions(-) commit e0421d0289ae95a1c74e607f36c0d54f3d0dedd8 Author: Patrick Lam Date: Tue Nov 29 00:21:05 2005 +0000 Fix segfault. ChangeLog | 5 +++++ src/fccfg.c | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) commit c4d3b6dad0ccb9b3ddfddb7305b4da26f494271d Author: Patrick Lam Date: Tue Nov 29 00:16:02 2005 +0000 Update autogenerated config.* files. config/config.guess | 535 +++++++++++++++++++++++++++------------------------- config/config.sub | 67 ++++--- 2 files changed, 314 insertions(+), 288 deletions(-) commit ced3f0a0abd84de73753956ec18e7316eda33a37 Author: Patrick Lam Date: Tue Nov 29 00:14:42 2005 +0000 Fix problem dating back at least to 2.3.2 where globs weren't being applied to patterns loaded from a cache. Fix some obvious spelling mistakes. ChangeLog | 13 +++++++++++++ doc/fontconfig-user.sgml | 17 +++++++++-------- src/fccfg.c | 3 ++- src/fcint.h | 3 +++ src/fcpat.c | 4 +--- 5 files changed, 28 insertions(+), 12 deletions(-) commit 1ed98a0c87931ae93ea3d46f3d0367a99218679c Author: Patrick Lam Date: Mon Nov 28 10:54:11 2005 +0000 Stephan Kulow reviewed by: plam Don't kill all fonts during match (oops!) ChangeLog | 23 +++++++++++++++++++++++ src/fcmatch.c | 39 ++++++++++++++++++++++++++++++++------- 2 files changed, 55 insertions(+), 7 deletions(-) commit aa472e5f1a83c5e09030b0c862a0c3e0df10dcaa Author: Patrick Lam Date: Mon Nov 28 01:40:53 2005 +0000 Stephan Kulow Michael Matz reviewed by: plam Rewrite FcFontSetMatch to a path-finding based algorithm, i.e. inline FcCompare into FcFontSetMatch and reorder the loops, adding a boolean array which blocks patterns from future consideration if they're known to not be best on some past criterion. src/fcmatch.c | 224 +++++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 159 insertions(+), 65 deletions(-) commit 200a44fed0c28bcf83a65e32c320471d9335d3c5 Author: Patrick Lam Date: Sat Nov 26 05:05:14 2005 +0000 Fix incorrect merge. reviewed by: plam ChangeLog | 7 +++++++ src/fcmatch.c | 6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-) commit cbe1df8150e4ed6e76bd258afe5a11529c909ddf Author: Patrick Lam Date: Fri Nov 25 16:33:58 2005 +0000 Don't do random matching when bad objects are passed into FcCompareValueList. ChangeLog | 6 ++++++ src/fcmatch.c | 58 +++++++++++++++++++++++++++++++++++++++++++--------------- 2 files changed, 49 insertions(+), 15 deletions(-) commit 81fe99fdd0903ef8aa782fe427bc8f9510457ee9 Author: Patrick Lam Date: Fri Nov 25 16:04:44 2005 +0000 Rename fcpatterns, fcpatternelts, fcvaluelists to _fcPatterns, _fcPatternElts, _fcValueLists for consistency. ChangeLog | 10 ++++++++++ src/fcint.h | 8 ++++---- src/fcpat.c | 50 +++++++++++++++++++++++++------------------------- 3 files changed, 39 insertions(+), 29 deletions(-) commit d854eaf8a9c395a1cbca83a7620e087109f6eb87 Author: Patrick Lam Date: Fri Nov 25 15:54:24 2005 +0000 Pass the FcObjectPtr to FcCompareValueList, not the char * (perf). reviewed by: plam ChangeLog | 7 +++++++ src/fcmatch.c | 35 ++++++++++------------------------- 2 files changed, 17 insertions(+), 25 deletions(-) commit 61571f3f2e77ffb221da9af2705af1d383dd6ea0 Author: Patrick Lam Date: Fri Nov 25 15:50:34 2005 +0000 Pass around FcCache *s to the Unserialize functions for extra consistency (and less overhead, for what that's worth). ChangeLog | 13 +++++++++++++ src/fccache.c | 2 +- src/fccharset.c | 12 ++++++------ src/fcfs.c | 2 +- src/fcint.h | 10 +++++----- src/fclang.c | 8 ++++---- src/fcname.c | 2 +- src/fcpat.c | 32 ++++++++++++++++---------------- 8 files changed, 47 insertions(+), 34 deletions(-) commit 9ab79bdfb7f8bfbe108d1c676b361f69f6a5b043 Author: Patrick Lam Date: Fri Nov 25 03:00:51 2005 +0000 Inline the *PtrU functions to gain perf. Remove unneeded params for the FcCompare* functions. reviewed by: plam ChangeLog | 12 +++++++++++- src/fcint.h | 31 +++++++++++++++++++++++++++---- src/fcmatch.c | 50 +++++++++++++++++--------------------------------- src/fcname.c | 12 +++--------- src/fcpat.c | 22 ++-------------------- 5 files changed, 60 insertions(+), 67 deletions(-) commit 3f9f24e077cc079be362343be499ff0baf23e0a1 Author: Patrick Lam Date: Fri Nov 25 02:16:42 2005 +0000 Fix the debian changelog so that debian/rules works again, make it create a debian package for release 2.3.92-1. Acknowledge change in NMU of debian package. debian/changelog | 13 +++++++++++++ debian/control | 1 + debian/po/cs.po | 57 ++++++++++++++++++++++++++++---------------------------- 3 files changed, 43 insertions(+), 28 deletions(-) commit 1c9fdccab95c9c5eebd0f9d8488d3ac7c46cbe53 Author: Patrick Lam Date: Thu Nov 24 21:40:20 2005 +0000 Move FC_BANK_DYNAMIC, FC_BANK_FIRST to internal header. Check for type validity during FcPatternAddWithBinding, don't verify type in FcFontMatch, don't call FcCanonicalize here (which always does a deep copy). reviewed by: plam ChangeLog | 13 +++++++++++++ fontconfig/fontconfig.h | 3 --- src/fcint.h | 3 +++ src/fcmatch.c | 22 +++++----------------- src/fcpat.c | 22 +++++++++++++++++----- 5 files changed, 38 insertions(+), 25 deletions(-) commit 4f8b266fd97e36961639c40d93225265c0f849c7 Author: Patrick Lam Date: Thu Nov 24 20:20:26 2005 +0000 Make FcCompareString and FcCompareFamily less expensive. Only add a value for FC_FAMILY if the proposed value is a string. reviewed by: plam ChangeLog | 11 ++++++++++- src/fcmatch.c | 24 +++++++++++++++++------- src/fcpat.c | 7 +++++++ 3 files changed, 34 insertions(+), 8 deletions(-) commit b97a34b5924b1279dd831426a94016ea8b65ea8d Author: Patrick Lam Date: Thu Nov 24 19:38:05 2005 +0000 Inline FcDebug invocations and only initialize once, in FcInit*. Improve debug msg in FcPatternPrint. reviewed by: plam ChangeLog | 10 ++++++++++ src/fcdbg.c | 30 ++++++++++++------------------ src/fcinit.c | 2 ++ src/fcint.h | 9 +++++++-- 4 files changed, 31 insertions(+), 20 deletions(-) commit d2f459781cade98d1d07806d023e63f1fc289b0e Author: Patrick Lam Date: Wed Nov 23 17:01:27 2005 +0000 Properly apply fcrozat's patch. fc-cat/fc-cat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit f7c4624f5624f4dc981f75a4f74446de04bf69d1 Author: Patrick Lam Date: Wed Nov 23 16:36:26 2005 +0000 2005-11-23 Frederic Crozat : reviewed by: plam Minor code warning cleanups. ChangeLog | 8 ++++++++ fc-cat/fc-cat.c | 1 - fontconfig/fontconfig.h | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) commit b1297aa8977901075e95e40bc430fc823e1fb230 Author: Patrick Lam Date: Wed Nov 23 15:33:48 2005 +0000 2005-11-23 Frederic Crozat : reviewed by: plam Make getopt_long accept -s parameter to fc-match as well. ChangeLog | 7 +++++++ fc-match/fc-match.c | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) commit 435fc66073ee83d17242bac2880e843489439cda Author: Patrick Lam Date: Wed Nov 23 15:32:36 2005 +0000 2005-11-23 Frederic Crozat : reviewed by: plam Make getopt_long accept -s parameter to fc-match as well. ChangeLog | 7 +++++++ fc-match/fc-match.c | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) commit adac22f290f1780f6d1424d6f93cc4453d4d489c Author: Patrick Lam Date: Tue Nov 22 04:46:55 2005 +0000 Manually perform inlining & partial redundancy elimination to reduce calls to FcValueListPtrU. Only invoke strlen() when really necessary. reviewed by: plam reviewed by: plam ChangeLog | 16 ++++++++++++++++ src/fcmatch.c | 17 +++++++++-------- src/fcstr.c | 8 ++------ 3 files changed, 27 insertions(+), 14 deletions(-) commit 8c24aa6b45ce7fa0b872ca2e9c3b96e1a5b720e4 Author: Patrick Lam Date: Sat Nov 19 22:38:39 2005 +0000 Get rid of the use of freetype internal headers in fcfreetype.c, since those headers will go away with freetype 2.2. Replace with public domain ftglue code from pango. Note that the patch removes some extra error checking in FT_Get_BDF_Property() and comments out the skipping of empty pcf fonts. reviewed by: plam ChangeLog | 2 ++ 1 file changed, 2 insertions(+) commit 246985e40e3296a6bb427026d8274fe8409f3776 Author: Patrick Lam Date: Sat Nov 19 22:37:24 2005 +0000 file ftglue.c was initially added on branch fc-2_4_branch. commit 824c7bf02515cde1cc562eb6a64b9857d03913fc Author: Patrick Lam Date: Sat Nov 19 22:37:24 2005 +0000 Get rid of the use of freetype internal headers in fcfreetype.c, since those headers will go away with freetype 2.2. Replace with public domain ftglue code from pango. Note that the patch removes some extra error checking in FT_Get_BDF_Property() and comments out the skipping of empty pcf fonts. reviewed by: plam src/ftglue.c | 349 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/ftglue.h | 159 +++++++++++++++++++++++++++ 2 files changed, 508 insertions(+) commit 8ebf7725a8607b39ff505029b2a41369d67eb736 Author: Patrick Lam Date: Sat Nov 19 22:32:13 2005 +0000 Get rid of the use of freetype internal headers in fcfreetype.c, since those headers will go away with freetype 2.2. Replace with public domain ftglue code from pango. Note that the patch removes some extra error checking in FT_Get_BDF_Property() and comments out the skipping of empty pcf fonts. reviewed by: plam ChangeLog | 13 ++++++++++ src/Makefile.am | 4 ++- src/fcfreetype.c | 75 ++++++++++++++++++++++++++------------------------------ 3 files changed, 51 insertions(+), 41 deletions(-) commit a151acedc056783957f9875b1a21f13d0bb8bfe2 Author: Patrick Lam Date: Sat Nov 19 16:24:53 2005 +0000 Further fix of patch from 2005-11-04: miscounted numbers count (numbers_count); didn't strip duplicate numbers (langBankNumbers); and leafidx_offset and numbers_offset in fcLangCharSets are wrong. Removed leafidx_count and numbers_count since they are the same and replaced them with offset_count. reviewed by: plam ChangeLog | 12 ++++++++++++ fc-lang/fc-lang.c | 21 +++++++++++++-------- 2 files changed, 25 insertions(+), 8 deletions(-) commit 8f2a807810c006e771c0f7429ba218a1ffb1e6de Author: Patrick Lam Date: Fri Nov 18 20:32:30 2005 +0000 Don't crash when fc-cat invoked with no arguments. Fix invalid read access caused by premature free and GCC4 warnings in libxml2 codepath. reviewed by: plam reviewed by: plam ChangeLog | 17 ++++++++++++++++- fc-cat/fc-cat.c | 3 +++ src/fcxml.c | 10 ++++++---- 3 files changed, 25 insertions(+), 5 deletions(-) commit 82912b062b1bb902db54e5b79f4a2d6a33ccd8a0 Author: Patrick Lam Date: Fri Nov 18 04:21:10 2005 +0000 List iteration not needed in FcConfigValues, since it's building up the list itself; we can just strip FcVoid elements during construction. reviewed by: plam ChangeLog | 9 +++++++++ src/fccfg.c | 17 ++++++----------- 2 files changed, 15 insertions(+), 11 deletions(-) commit 38b2ecad5af4f7f7a55023afafaae075ecd3c753 Author: Patrick Lam Date: Thu Nov 17 16:46:07 2005 +0000 Fix crash on invalid constants in config files (forgot to update a pointer upon list iteration.) ChangeLog | 6 ++++++ src/fccfg.c | 1 + 2 files changed, 7 insertions(+) commit f28472fdb4e51a06283161f9e7a645d5354a37d2 Author: Patrick Lam Date: Thu Nov 17 16:17:05 2005 +0000 Complain about invalid constants in config files. reviewed by: plam ChangeLog | 7 +++++++ src/fcxml.c | 4 ++++ 2 files changed, 11 insertions(+) commit 1c5b6345b9023dee7962468fccb678b5f2e56ce3 Author: Patrick Lam Date: Thu Nov 17 15:43:39 2005 +0000 Don't add current_arch_start more than once. Fix ordering of ALIGN with respect to saving block_ptr; add another ALIGN to fcfs.c. reviewed by: plam ChangeLog | 16 ++++++++++++++++ src/fccache.c | 2 +- src/fccharset.c | 12 ++++++++---- src/fcfs.c | 10 +++++++++- src/fcname.c | 6 ++++-- src/fcpat.c | 1 + 6 files changed, 39 insertions(+), 8 deletions(-) commit 8e351527bb87798e9b796e12a3b1ee6229536a28 Author: Patrick Lam Date: Wed Nov 16 17:49:01 2005 +0000 src/fccache.c (FcDirCacheProduce) Fix case where alignment bytes bumped up metadata->count causing unwarranted failures to write cache files. (Reported by Stephan Kulow). ChangeLog | 7 +++++++ src/fccache.c | 15 +++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) commit 7fd7221e683d6c65b9199fd06d34d5215582748e Author: Patrick Lam Date: Wed Nov 16 15:55:17 2005 +0000 Add *NeededBytesAlign(), which overestimates the padding which is later added by the new ALIGN macro. Fix alignment problems on ia64 and s390 by bumping up block_ptr appropriately. (Earlier version by Andreas Schwab). Use sysconf to determine proper PAGESIZE value; this appears to be POSIX-compliant. (reported by Andreas Schwab) reviewed by: plam ChangeLog | 23 +++++++++++++++++++++++ src/fccache.c | 21 +++++++++++++-------- src/fccharset.c | 11 +++++++++++ src/fcfs.c | 10 ++++++++++ src/fcint.h | 18 ++++++++++++++++++ src/fclang.c | 8 ++++++++ src/fcname.c | 8 ++++++++ src/fcpat.c | 36 ++++++++++++++++++++++++++++++++++++ 8 files changed, 127 insertions(+), 8 deletions(-) commit 82f35f8bb4fe58ebc839531f4a63544dc07f0f5d Author: Patrick Lam Date: Fri Nov 4 19:31:26 2005 +0000 Fix bug 2878 (excessive relocations at startup for charsets, reported by Ross Burton): fc-lang/fc-lang now creates the static form of the langset, not the dynamic form, so that the charsets should now be in .rodata. ChangeLog | 11 +++++++++++ fc-lang/fc-lang.c | 59 ++++++++++++++++++++++++++++++++++++++++--------------- src/fccharset.c | 18 +++++++++++++++++ src/fcint.h | 5 +++++ src/fclang.c | 16 ++++++++++++++- 5 files changed, 92 insertions(+), 17 deletions(-) commit 50544b13c19c6a4a9fe9cf26cdd2170ddacf86d1 Author: Patrick Lam Date: Fri Nov 4 16:48:32 2005 +0000 Add test for validity of directory caches that somehow got lost (reported by make distcheck). ChangeLog | 6 ++++++ src/fcdir.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) commit e6d3e251ee26f1267585cbbd5a95dc1f7290e225 Author: Patrick Lam Date: Fri Nov 4 06:17:00 2005 +0000 Bump version to 2.3.92. ChangeLog | 8 ++++++++ README | 29 +++++++++++++++++++++++++++-- configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 4 files changed, 37 insertions(+), 4 deletions(-) commit ea9726b620bff44d45fa25c91a8ab7d31a813577 Author: Patrick Lam Date: Thu Nov 3 04:45:57 2005 +0000 Fix argument ordering problem in call to FcPatternTransferFullFname. ChangeLog | 5 +++++ src/fcpat.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) commit 7358dae49b328f5546d156246510601e2dd85d1c Author: Patrick Lam Date: Thu Nov 3 04:23:22 2005 +0000 Fix warnings and embarrassing double-free error. ChangeLog | 7 +++++++ src/fcfreetype.c | 2 +- src/fcpat.c | 14 +++++--------- 3 files changed, 13 insertions(+), 10 deletions(-) commit efa9f2bd077da0ccc432b80baf87c2a3e7340f6a Author: Patrick Lam Date: Wed Nov 2 15:57:36 2005 +0000 Change the rule for artificial emboldening in fonts.conf.in. This enables the support for artificial emboldening included in cairo. reviewed by: plam ChangeLog | 8 ++++++++ fonts.conf.in | 18 ++++++++++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) commit d7b3ac63675983c92092703c9c7da0d9e3c0b2ad Author: Patrick Lam Date: Wed Nov 2 15:29:53 2005 +0000 Don't zero out full names for FC_REF_CONSTANT fonts; also, duplicate full names when transferring, and free full names when freeing the associated font. Reported by Jinghua Luo. ChangeLog | 8 ++++++++ src/fcpat.c | 18 ++++++++++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) commit 303bcf9b9df00ce2906db5c9414aeec96d1a55f9 Author: Patrick Lam Date: Wed Nov 2 07:37:00 2005 +0000 Revert the previous patch and commit the correct patch: I forgot a canonicalization in FcValueListSerialize, so that it would choke on already-serialized input files. Duh! ChangeLog | 8 ++++++++ fc-cache/fc-cache.c | 9 --------- src/fcpat.c | 1 + 3 files changed, 9 insertions(+), 9 deletions(-) commit c6b75577f3bf3019399e0a439d9cccf55e53999f Author: Patrick Lam Date: Wed Nov 2 07:01:25 2005 +0000 Forcibly rescan a directory before writing a fresh local cache file for that directory, fixing the losing-fonts problem reported by Mike Fabian and also apparently the font cache file corruption. ChangeLog | 8 ++++++++ fc-cache/fc-cache.c | 9 +++++++++ 2 files changed, 17 insertions(+) commit 9090cb9eceec10581c9f927b2e895189d20d1d4c Author: Patrick Lam Date: Wed Nov 2 06:39:23 2005 +0000 Fix thinko: actually, the whole global cache is stale if the global cache is older than the (newest) config file. ChangeLog | 6 ++++++ src/fccache.c | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) commit 2b25f00c501a4baf2096a9cb68b0be961251cfda Author: Patrick Lam Date: Wed Nov 2 06:29:14 2005 +0000 Declare the global cache of a directory's contents to be stale if the directory is newer than the (newest) configuration file. S: ---------------------------------------------------------------------- ChangeLog | 8 ++++++++ src/fccache.c | 12 +++++++++--- src/fccfg.c | 20 ++++++++++++++------ src/fcint.h | 11 ++++++++++- 4 files changed, 41 insertions(+), 10 deletions(-) commit 793154ed8d4b2d832f81a893273c6504bac3f0b3 Author: Patrick Lam Date: Tue Nov 1 06:57:25 2005 +0000 Copy the full pathname whenever duplicating an FcPattern; otherwise, applications continue breaking. ChangeLog | 10 ++++++++++ src/fcint.h | 4 ++-- src/fclist.c | 6 +----- src/fcmatch.c | 4 ++++ src/fcpat.c | 25 ++++++++++++++++++++++++- 5 files changed, 41 insertions(+), 8 deletions(-) commit d6946c1a11695eb55a3fe60db5480df94570b1ba Author: Patrick Lam Date: Tue Nov 1 05:52:28 2005 +0000 Fix small memory error (tried to free argv); use basename and dirname correctly (they can modify their arguments). ChangeLog | 7 +++++++ fc-cat/fc-cat.c | 4 +--- src/fcfreetype.c | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) commit e77c17184a6172d6368dd3193c791c4027065bbd Author: Patrick Lam Date: Tue Nov 1 05:26:27 2005 +0000 Reinstate basename patch, but keep a hash table linking FcPatterns to their fully-qualified font names for clients' benefit. Clients only pay for the font names once they request the FC_FILE property from an FcPattern, but the font name is malloc'd at that point (i.e. not mmapped: that's impossible, since it may vary between machines.) Clients do have to pay for a copy of the path name per cache file. Note that FcPatternGetString now does some rewriting if you ask for an FC_FILE, appending the pathname as appropriate. ChangeLog | 23 ++++++++++++++ fc-cat/fc-cat.c | 7 ++-- src/fccache.c | 40 ++++++++++++++++++++--- src/fcfreetype.c | 5 ++- src/fcint.h | 9 ++++++ src/fclist.c | 8 +++++ src/fcpat.c | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 181 insertions(+), 8 deletions(-) commit be99726f672cef086b4256ad34163f6f9ed9d4a5 Author: Patrick Lam Date: Mon Oct 31 06:02:00 2005 +0000 Revert basename patch, which breaks fontconfig clients on my system. src/fcfreetype.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 720298e773876037dd9af384a9cc16956600b5e7 Author: Patrick Lam Date: Wed Oct 26 06:34:29 2005 +0000 Add FC_EMBEDDED_BITMAP object type to tell Xft/Cairo whether to load embedded bitmaps or not. reviewed by: plam ChangeLog | 11 +++++++++++ fontconfig/fontconfig.h | 1 + fonts.conf.in | 4 ++++ src/fcdefault.c | 1 + src/fcname.c | 1 + 5 files changed, 18 insertions(+) commit 961d9b9993ae815d6ba723829724bf0685809091 Author: Patrick Lam Date: Tue Oct 25 22:29:13 2005 +0000 Only add basename to patterns' FC_FILE element, not any part of the dirname. ChangeLog | 6 ++++++ src/fcfreetype.c | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) commit 573da729101bfb81d2cafb7e442bbf5395ae9eef Author: Patrick Lam Date: Sat Oct 22 15:12:05 2005 +0000 Add some more consts, fixing more GCC4 warnings. ChangeLog | 5 +++++ src/fcfreetype.c | 22 +++++++++++----------- 2 files changed, 16 insertions(+), 11 deletions(-) commit 904426816df300fad816238f0f27ef595a6a539b Author: Patrick Lam Date: Sat Oct 22 14:21:14 2005 +0000 Support localized font family and style names. This has been reported to break old apps like xfd, but modern (gtk+/qt/mozilla) apps work fine. reviewed by: plam ChangeLog | 7 ++++ src/fcdefault.c | 110 +++++++++++++++++++++++++++++++------------------------- src/fcint.h | 4 +++ src/fclist.c | 60 +++++++++++++++++++++++++++++-- 4 files changed, 130 insertions(+), 51 deletions(-) commit e58b50e88cbe3b55695101a0988306ea4646bbe4 Author: Patrick Lam Date: Fri Oct 21 20:24:30 2005 +0000 Destroy the global cache file if it's terminally broken. (reported by Mike Fabian) ChangeLog | 9 ++++++++- src/fccache.c | 16 +++++++++++++--- 2 files changed, 21 insertions(+), 4 deletions(-) commit 2fa3f27e68834d55f0f451514a0658b247fddb0d Author: Patrick Lam Date: Fri Oct 21 19:47:43 2005 +0000 Prevent fc-list from escaping strings when printing them. ChangeLog | 7 +++++++ fc-list/fc-list.c | 2 +- fontconfig/fontconfig.h | 3 +++ src/fcname.c | 16 +++++++++++----- 4 files changed, 22 insertions(+), 6 deletions(-) commit 250c1cd422ce6260ff58f2699043556d93729ef7 Author: Patrick Lam Date: Thu Oct 20 20:50:21 2005 +0000 Add valist sentinel markup for FcObjectSetBuild and FcPatternBuild. reviewed by: plam ChangeLog | 9 ++++++++- fontconfig/fontconfig.h | 12 ++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) commit 21696e5bf08b67b57155e5b12e054456fd2b03e2 Author: Patrick Lam Date: Fri Oct 14 21:02:31 2005 +0000 Add consts to variables so as to move arrays into .rodata. reviewed by: plam ChangeLog | 8 ++++++++ fc-glyphname/fc-glyphname.c | 4 ++-- src/fclang.c | 4 ++-- 3 files changed, 12 insertions(+), 4 deletions(-) commit 15d7bd0a16af189194b665e789331a8f8c86f20d Author: Patrick Lam Date: Fri Oct 14 20:56:27 2005 +0000 Check existence of directory cache file before attempting to unlink. reviewed by: plam ChangeLog | 7 +++++++ src/fccache.c | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) commit 1178b569764caaf51d2dc55f1c2cf969a98cf61e Author: Patrick Lam Date: Thu Oct 13 12:32:14 2005 +0000 Fix flipped return value on unlink. (Reported by Mike Fabian) ChangeLog | 14 ++++++++++++++ src/fccache.c | 6 ++++-- 2 files changed, 18 insertions(+), 2 deletions(-) commit 2eb843740672da9319c190c48aea2cd98dc92725 Author: Patrick Lam Date: Wed Oct 12 07:55:42 2005 +0000 When fc-cache is run without --force, use directory cache files to speed up fc-cache run time. src/fccache.c | 4 ++-- src/fcdir.c | 3 +++ src/fcint.h | 3 +++ 3 files changed, 8 insertions(+), 2 deletions(-) commit 23787a8f1b7a23c82f479b0e6906928b9920b9cc Author: Patrick Lam Date: Thu Oct 6 20:45:25 2005 +0000 Add padding to make valgrind and glibc not hate each other when calling strlen(). ChangeLog | 8 ++++++++ src/fcname.c | 5 +++-- src/fcpat.c | 5 +++-- 3 files changed, 14 insertions(+), 4 deletions(-) commit 008385c5fb957c1547fa1a29537d0c9fb8e3b38a Author: Patrick Lam Date: Wed Oct 5 21:12:57 2005 +0000 Use libtool -no-undefined flag on all platforms. reviewed by: plam & keithp ChangeLog | 7 +++++++ src/Makefile.am | 3 +-- 2 files changed, 8 insertions(+), 2 deletions(-) commit edffd3b964cde0f2cde86cc5c0cef180843c44e5 Author: Patrick Lam Date: Wed Oct 5 21:12:25 2005 +0000 Fix typo in manually applying patch. src/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit affc7d1849c26db10b344cfbe834d0bba764f419 Author: Patrick Lam Date: Wed Oct 5 19:40:35 2005 +0000 Modify config file to use Greek fonts before Asian fonts with Greek glyphs. reviewed by: plam & keithp ChangeLog | 8 ++++++++ fonts.conf.in | 10 +++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) commit 328929f5ea3f507426b0c021c11fef62794066df Author: Patrick Lam Date: Wed Oct 5 19:38:40 2005 +0000 Modify config file to use Greek fonts before Asian fonts with Greek glyphs. reviewed by: plam & keithp ChangeLog | 8 ++++++++ fonts.conf.in | 10 +++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) commit 1ed67f658c910ece44ab73bb5a1d08ea1c0246d3 Author: Patrick Lam Date: Wed Oct 5 19:32:41 2005 +0000 Use libtool -no-undefined flag on all platforms. reviewed by: plam & keithp ChangeLog | 7 +++++++ src/Makefile.am | 3 +-- 2 files changed, 8 insertions(+), 2 deletions(-) commit 751932ddb10d5ce798c56d82bc1f40a443237ac1 Author: Patrick Lam Date: Wed Oct 5 18:41:55 2005 +0000 Implement move-to-front array for banks (perf regression reported by Ronny V. Vindenes). ChangeLog | 6 ++++++ src/fccache.c | 29 +++++++++++++++++++---------- 2 files changed, 25 insertions(+), 10 deletions(-) commit 55c8fa4f08b86f4e9af97920a61943f5facd7822 Author: Patrick Lam Date: Wed Oct 5 00:34:52 2005 +0000 Add new API which unlinks directory caches and checks dir caches for existence of appropriate sections. Fix fc-cache to unlink stale cache files and save directory caches that lack relevant sections. ChangeLog | 11 +++++++++++ fc-cache/fc-cache.c | 6 +++++- fontconfig/fontconfig.h | 6 ++++++ src/fccache.c | 44 ++++++++++++++++++++++++++++++++++---------- 4 files changed, 56 insertions(+), 11 deletions(-) commit 6bf2380478f825a6135527133a03869e0ae18742 Author: Patrick Lam Date: Mon Oct 3 19:51:11 2005 +0000 Ensure that a directory cache has the appropriate section before reporting that it is valid (reported by Matthias Clasen). ChangeLog | 6 ++++++ src/fccache.c | 15 +++++++++++++++ 2 files changed, 21 insertions(+) commit bc5784ff00230bf70e9cbe5c97e62e4f251e7000 Author: Patrick Lam Date: Sat Oct 1 19:18:51 2005 +0000 Bump version number to 2.3.91. README | 15 ++++++++++++++- configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 3 files changed, 16 insertions(+), 3 deletions(-) commit e99f0f0a45b29ad195c96833c95771ccf7771fef Author: Patrick Lam Date: Thu Sep 29 20:53:30 2005 +0000 Use libxml2 if requested (with --enable-libxml2) or if expat is not available. reviewed by: plam ChangeLog | 11 ++++ configure.in | 162 +++++++++++++++++++++++++++++++------------------------- src/Makefile.am | 3 +- src/fcxml.c | 71 ++++++++++++++++++++++++- 4 files changed, 174 insertions(+), 73 deletions(-) commit 649cc3616d11add9d5c39563f9f343614c2bb2eb Author: Patrick Lam Date: Thu Sep 29 05:14:04 2005 +0000 Fix multi-arch cache files: compute the position for the block to be added using info from OrigFile, not NewFile. ChangeLog | 6 ++++++ src/fccache.c | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) commit cd3109114ca6ee9ce2b454180dadea5aa04ce55d Author: Patrick Lam Date: Wed Sep 28 16:21:14 2005 +0000 Cast results of sizeof() to unsigned int to get rid of warnings on x86_64 (thanks Matthias Clasen). ChangeLog | 8 +++++++- src/fccache.c | 38 +++++++++++++++++++------------------- 2 files changed, 26 insertions(+), 20 deletions(-) commit 9ecb9a9a063e4f94deb6da8fd15656c9a7e480e7 Author: Patrick Lam Date: Wed Sep 28 00:23:39 2005 +0000 Update ChangeLog. ChangeLog | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) commit 1d879de2d968ef2bd6317ba3c7be0e62b263a708 Author: Patrick Lam Date: Wed Sep 28 00:23:15 2005 +0000 Use FcAtomic to rewrite cache files. src/fccache.c | 132 +++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 98 insertions(+), 34 deletions(-) commit 099f9a86834060741dcbdf8b70e32f3a7338925f Author: Patrick Lam Date: Tue Sep 27 15:52:58 2005 +0000 Don't unlink the fonts.cache-2 file even if there's no data to write; just write an empty cache file. (thanks Lubos Lunak) src/fccache.c | 7 ------- 1 file changed, 7 deletions(-) commit 6aee8c6faa2906334b9d9f933440184a256d0b53 Author: Patrick Lam Date: Tue Sep 27 05:43:08 2005 +0000 Allocate room for the subdirectory names in each directory cache. Thanks to James Cloos for finding and diagnosing this bug! src/fccache.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit 2633bc38431468ce528407ee576cb29b0d1212c8 Author: Patrick Lam Date: Tue Sep 27 05:26:59 2005 +0000 Fix .cvsignore file after copying across directories. fc-cat/.cvsignore | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d75bef7bc8b2bb4ed7750ce5083b1e65a709d75a Author: Patrick Lam Date: Fri Sep 23 21:42:32 2005 +0000 Add comment about needing docbook-utils to run make distcheck; hope it'll save pain to others later. INSTALL | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 35c2c7f1e979449e67551588f3440ff15e5c806c Author: Patrick Lam Date: Fri Sep 23 14:41:40 2005 +0000 Update ChangeLog for 2.3.90. ChangeLog | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) commit d8c22de1f1c809ac6b0e1b3caa2cd9ad8046311a Author: Patrick Lam Date: Fri Sep 23 05:59:19 2005 +0000 file Makefile.am was initially added on branch fc-2_4_branch. commit f28f090d2537fc7dcc4fe71a84020a53d14027b4 Author: Patrick Lam Date: Fri Sep 23 05:59:19 2005 +0000 Add new command-line utility, fc-cat, to convert fonts.cache-2 files into fonts.cache-1 files (e.g. for grepping and validation of the mmap codepath), as per James Cloos' request. Remove done 'TODO' comment. Updates for development release 2.3.90. Makefile.am | 2 +- README | 7 +- configure.in | 3 +- fc-cache/fc-cache.c | 1 - fc-cache/fc-cache.sgml | 4 +- fc-cat/.cvsignore | 6 + fc-cat/Makefile.am | 55 ++++++++ fc-cat/fc-cat.c | 336 ++++++++++++++++++++++++++++++++++++++++++++++++ fc-cat/fc-cat.sgml | 139 ++++++++++++++++++++ fontconfig/fontconfig.h | 2 +- 10 files changed, 548 insertions(+), 7 deletions(-) commit a9698bed6553c12d397593292ee9e81054244e85 Author: Patrick Lam Date: Fri Sep 23 04:09:37 2005 +0000 Update documentation -- fc-cache's man page now says that you need to run fc-cache once per cached architecture; add some documentation to the FcCache structure. Make fc-cache write out fonts.cache-2 files for directories with no fonts (i.e. only subdirectories). fc-cache/fc-cache.sgml | 7 +++++++ src/fccache.c | 13 ++++++++----- src/fcint.h | 8 ++++---- 3 files changed, 19 insertions(+), 9 deletions(-) commit e3ff8a4ea66b3738a72558520f33eb5b8d44442e Author: Patrick Lam Date: Fri Sep 23 02:33:55 2005 +0000 Remove debugging printf (oops). src/fcpat.c | 1 - 1 file changed, 1 deletion(-) commit bef069e19e72af1f7983e40a7ca5045f7d006bdd Author: Patrick Lam Date: Fri Sep 23 02:08:40 2005 +0000 Convert fromcode to char[12] from char *. src/fcfreetype.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit c7beacf91698e8b0dcba2e813052538ec56dd268 Author: Patrick Lam Date: Fri Sep 23 01:48:33 2005 +0000 Small patch for output in case where lineno not defined. fc-lang/fc-lang.c | 2 +- src/fcint.h | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) commit 67accef4d3e245c1dea341e633d82b14aa03432a Author: Patrick Lam Date: Thu Sep 22 23:45:53 2005 +0000 Fix more gcc4 warnings: - Cast sizeof to int, to shut up signedness warnings in comparison. - Add consts where appropriate. reviewed by: Patrick Lam doc/edit-sgml.c | 4 +- fc-case/fc-case.c | 8 +-- fc-glyphname/fc-glyphname.c | 21 ++++--- fc-lang/fc-lang.c | 20 ++++--- src/fccharset.c | 3 +- src/fcdefault.c | 6 +- src/fcfreetype.c | 43 ++++++++------ src/fcinit.c | 2 +- src/fcmatch.c | 18 +++--- src/fcpat.c | 3 +- src/fcxml.c | 138 ++++++++++++++++++++++---------------------- 11 files changed, 142 insertions(+), 124 deletions(-) commit 141432505aecb158285ccc84ec5d7099e3c2efa7 Author: Patrick Lam Date: Thu Sep 22 20:49:24 2005 +0000 Fix bug when clients use FcNameRegisterObjectTypes; fontconfig was returning bogus (i.e. duplicate) FcObjectPtr values. Now use negative values for dynamic object strings and positive values for built-in and FcNameRegisterObjectType strings. Thanks to Matthias Clasen for pinpointing this bus! src/fcname.c | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) commit 9fe2bd7ab07611559363d80efdf8d3efb4ea737e Author: Patrick Lam Date: Fri Sep 16 04:57:18 2005 +0000 Add missing FcValueCanonicalize on call to FcPatternAdd. src/fcpat.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 13cdf607533ad592b896b738c5642f3685fd8053 Author: Patrick Lam Date: Thu Sep 15 20:36:44 2005 +0000 Revert ill-advised addition of FC_RENDER. Add strategy for handling objects that aren't hardcoded into fontconfig, but generated by fontconfig clients: keep another array of user-defined objects (indexed after the built-in objects). Fix compilation warning (uninitialized variable). Add comment. fontconfig/fontconfig.h | 1 - src/fccache.c | 1 + src/fccfg.c | 2 +- src/fcname.c | 98 +++++++++++++++++++++++++++++++++++++++---------- 4 files changed, 80 insertions(+), 22 deletions(-) commit 0fa237d1e010a1ab9b8fb09079fbb364958d8cc7 Author: Patrick Lam Date: Sun Sep 11 05:17:28 2005 +0000 Add a global binding for the 'render' pattern element used by Xft; the lack of said binding prevented programs from using FcPatterns through Xft. fontconfig/fontconfig.h | 1 + src/fcname.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) commit 8245771d5a42dac36024411a0da047b9a7dc42c6 Author: Patrick Lam Date: Sun Sep 11 02:16:09 2005 +0000 Merge with HEAD and finish the GCC 4 cleanups (no more warnings!) ChangeLog | 19 +++++ doc/fontconfig-user.sgml | 4 +- fc-glyphname/fc-glyphname.c | 4 +- fc-lang/fc-lang.c | 2 +- fc-match/fc-match.c | 8 +- fontconfig/fcprivate.h | 2 +- src/fccache.c | 35 ++++---- src/fccfg.c | 2 +- src/fcdir.c | 4 +- src/fcfreetype.c | 191 ++++++++++++++++++++++++-------------------- src/fcint.h | 10 +-- src/fclist.c | 2 +- src/fcpat.c | 80 +++++++++---------- src/fcstr.c | 2 +- src/fcxml.c | 11 ++- 15 files changed, 209 insertions(+), 167 deletions(-) commit 8cb4c56d9925bba17bce32c12f7e09d8f36b2e53 Author: Patrick Lam Date: Wed Sep 7 15:38:46 2005 +0000 Robustness fixes: check return values from read and lseek; fix uninitialized variables; ensure progress on FcCacheSkipToArch. src/fccache.c | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) commit 03a212e525a34e2ceeac369bac669871d8cc681a Author: Patrick Lam Date: Sat Sep 3 04:56:56 2005 +0000 Really fix the global cache: make sure we're reading and writing the same data format. Also match subdirectories when consuming cache information. Also check dates for global cache: a dir is out of date if it is newer than the global cache; scan it manually if that's the case. src/fccache.c | 55 ++++++++++++++++++++++++++++++++++++++----------------- src/fccfg.c | 23 ++++++++++++++++++++--- src/fcint.h | 1 + 3 files changed, 59 insertions(+), 20 deletions(-) commit f6ee3db5f02eb8f41e3941e892964175cad0a898 Author: Patrick Lam Date: Fri Sep 2 06:16:49 2005 +0000 Fix addressing in the global cache file, preventing infinite loops. Get rid of unused variables. src/fccache.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit 07b3e5766332ad1b2ec0ae613476a123ec9c5453 Author: Patrick Lam Date: Thu Sep 1 18:29:28 2005 +0000 Apply Matthias Clasen's patch to fix obvious bogosity (i.e. missing FcObjectPtrU). src/fcpat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0230c9f88706ee4629bca625f1acd133a4cb1d9f Author: Patrick Lam Date: Thu Sep 1 06:59:44 2005 +0000 Fix embarassing attempt to free a static buffer. src/fccache.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) commit 2304e38f9bc070ccd54f80187c208d93b6eeb373 Author: Patrick Lam Date: Thu Sep 1 06:14:46 2005 +0000 : Save subdirectory names in cache files to save time. This completely restores the original fontconfig API, BTW. Note that directories without fonts don't get a cache file; but then how many files would it have in that directory... fc-cache/fc-cache.c | 2 +- fontconfig/fontconfig.h | 2 +- src/fccache.c | 40 ++++++++++++++++------------------------ src/fcdir.c | 4 ++-- src/fcint.h | 2 +- 5 files changed, 21 insertions(+), 29 deletions(-) commit 5e678e9459f71878d72f72d3765f7dc7e8f3f643 Author: Patrick Lam Date: Wed Aug 31 15:12:41 2005 +0000 Only load requested fonts for fc-cache, and cleanup memory handling: *Serialize no longer mutates original FcPatterns, it creates a new copy in the supplied buffer. Fix thinkos in global cache freeing and in FcCacheSkipToArch. fc-cache/fc-cache.c | 3 +-- src/fccache.c | 36 ++++++++++++++++-------------------- src/fcfs.c | 3 --- 3 files changed, 17 insertions(+), 25 deletions(-) commit fd77c154afb039b6b19f8e29c28dce652b2d060e Author: Patrick Lam Date: Tue Aug 30 23:03:42 2005 +0000 Fix compilation error exposed with gcc 2.95. src/fccache.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit eb0cf67144258acbee0a5bf369b6dfb950fcebb9 Author: Patrick Lam Date: Tue Aug 30 05:55:13 2005 +0000 src/fcint.c The global cache now uses the same mmap-based cache infrastructure as the per-directory caches. Furthermore, the global cache is automatically updated (if possible) whenever fontconfig is used. Rip out remnants of the old cache infrastructure. fc-cache/fc-cache.c | 3 - src/fccache.c | 1156 ++++++++++++--------------------------------------- src/fcdir.c | 144 ++----- src/fcint.h | 97 +---- 4 files changed, 307 insertions(+), 1093 deletions(-) commit 2dbe759762c3b7b779dbe52ef0d6ca50e51d4bf1 Author: Patrick Lam Date: Sun Aug 28 05:20:23 2005 +0000 Emit and verify machine signature (sizeof (stuff) + endianness) in cache files. Fix bugs in FcCacheBankToIndex. src/fccache.c | 152 ++++++++++++++++++++++++++++++++-------------------------- src/fcint.h | 2 +- 2 files changed, 85 insertions(+), 69 deletions(-) commit 7f37423d8c1acc8ece0555e66ae7f857c22a77a7 Author: Patrick Lam Date: Sat Aug 27 02:34:24 2005 +0000 Replace FcObjectStaticName by FcStrStaticName. Implement serialization of 'object' table (strings pointed to by FcPatternElt->object and used as keys) and loading of object table from cache file if more strings are present in cache file than in current version of fontconfig. Hash the object table in memory. src/fccfg.c | 4 +- src/fcfs.c | 11 ++-- src/fcint.h | 31 +++++----- src/fclist.c | 2 +- src/fcname.c | 181 +++++++++++++++++++++++++++++++++++++++++++++++++---------- src/fcpat.c | 19 +++---- 6 files changed, 186 insertions(+), 62 deletions(-) commit 1b7be377906048e4a3a8d6ab46ebaab8847a0573 Author: Patrick Lam Date: Thu Aug 25 07:38:02 2005 +0000 Reinstate the old global cache code. For the forseeable future, it's probably all right to use the global cache as it was previously and just store filenames and font info, as long as no mmap cache exists in the directory. Of course, if an mmap cache exists, use that instead. If a directory cache does not exist or is invalid, load the fonts for just that directory using the old codepath. Fix premature free of the FcPatterns belonging to the FcFontSet which we create from the mmapped files. src/fccache.c | 710 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- src/fccfg.c | 21 +- src/fcint.h | 53 ++++- 3 files changed, 741 insertions(+), 43 deletions(-) commit 4262e0b3853bc2153270eb33d09a063f852f3f90 Author: Patrick Lam Date: Wed Aug 24 06:21:30 2005 +0000 Overhaul the serialization system to create one mmapable file per directory and distribute bytes for each directory from a single malloc for that directory. Store pointers as differences between the data pointed to and the pointer's address (s_off = s - v). Don't serialize data structures that never actually get serialized. Separate strings used for keys from strings used for values (in FcPatternElt and FcValue, respectively). Bump FC_CACHE_VERSION to 2. fc-cache/fc-cache.c | 12 +- fc-lang/fc-lang.c | 4 +- fontconfig/fcprivate.h | 8 +- fontconfig/fontconfig.h | 51 +- src/fccache.c | 415 ++++++++++------ src/fccfg.c | 109 +++-- src/fccharset.c | 333 +++++-------- src/fcdbg.c | 12 +- src/fcdir.c | 17 +- src/fcfs.c | 154 +++--- src/fcinit.c | 3 - src/fcint.h | 276 ++++------- src/fclang.c | 213 ++++----- src/fclist.c | 57 ++- src/fcmatch.c | 88 ++-- src/fcmatrix.c | 100 +--- src/fcname.c | 101 +++- src/fcpat.c | 1218 ++++++++++++++++++----------------------------- src/fcstr.c | 291 +---------- src/fcxml.c | 13 +- 20 files changed, 1402 insertions(+), 2073 deletions(-) commit 71f94d0768725eb171e04748d9f561f58b258ae7 Author: Keith Packard Date: Mon Jul 25 20:39:19 2005 +0000 Various GCC 4 cleanups for signed vs unsigned char Match only [0-9]*.conf files in {directory} elements to avoid loading *.rpmsave or .dpkg-old files. (otaylor) ChangeLog | 19 +++++ doc/fontconfig-user.sgml | 4 +- fc-glyphname/fc-glyphname.c | 4 +- fc-lang/fc-lang.c | 2 +- fc-match/fc-match.c | 8 +- src/fccfg.c | 2 +- src/fcfreetype.c | 191 ++++++++++++++++++++++++-------------------- src/fcpat.c | 2 +- src/fcstr.c | 2 +- src/fcxml.c | 11 ++- 10 files changed, 144 insertions(+), 101 deletions(-) commit 212c9f437e959fbdc5fe344c67b8c1cf8ca63edb Author: Patrick Lam Date: Mon Jul 25 04:10:09 2005 +0000 #ifdef out old cache stuff, replace with first version of new mmapping cache. Add *Read and *Write procedures which mmap in and write out the fontconfig data structures to disk. Currently, create cache in /tmp, with different sections for each architecture (as returned by uname's .machine field. Run the fc-cache binary to create a new cache file; fontconfig then uses this cache file on subsequent runs, saving lots of memory. Also fixes a few bugs and leaks. fc-cache/fc-cache.c | 13 +- fc-lang/fc-lang.c | 6 + src/fccache.c | 1081 ++++++++++++++------------------------------------- src/fccfg.c | 16 +- src/fccharset.c | 103 ++++- src/fcdir.c | 17 +- src/fcfs.c | 95 +++++ src/fcinit.c | 3 + src/fcint.h | 148 ++++--- src/fclang.c | 28 ++ src/fcmatrix.c | 29 ++ src/fcpat.c | 241 ++++++++++-- src/fcstr.c | 76 +++- 13 files changed, 963 insertions(+), 893 deletions(-) commit e1b9d091c661b0e1d1e9f73c5c55ad53959c55c7 Author: Patrick Lam Date: Fri Jul 15 18:49:12 2005 +0000 Forward port cworth's patch to branch. ChangeLog | 15 +++++++++++++++ src/fcinit.c | 2 +- src/fcint.h | 2 +- src/fcpat.c | 60 +++++++++++++++++++++++++++++++++++++++++------------------- src/fcxml.c | 1 + 5 files changed, 59 insertions(+), 21 deletions(-) commit 7850458d28ae2cb3b1d7fa9dd9fecd125cef5369 Author: Carl Worth Date: Fri Jul 15 17:43:44 2005 +0000 Rename FcPatternThawAll to FcPatternFini. Pull the FcObjectStateName hash table out to file scope, and add FcObjectStaticNameFini so that FcFini will cleanup this hash table as well. Clear FILE* to NULL after fclose. ChangeLog | 15 +++++++++++++++ src/fcinit.c | 2 +- src/fcint.h | 2 +- src/fcpat.c | 49 ++++++++++++++++++++++++++++++++++++------------- src/fcxml.c | 1 + 5 files changed, 54 insertions(+), 15 deletions(-) commit 0fa680f0766a8f545b20a7935a19e9db5529f903 Author: Patrick Lam Date: Thu Jul 7 12:09:10 2005 +0000 Convert ObjectPtr from a fat structure to a simple index into an id table; ids can be positive (for static strings) or negative (for dynamic strings). Static strings belong to a single buffer, while dynamic strings are independently allocated. fontconfig/fontconfig.h | 9 +- src/fccfg.c | 7 +- src/fcname.c | 2 +- src/fcpat.c | 560 ++++++++++++++++++++++++++++++++++-------------- src/fcxml.c | 2 +- 5 files changed, 408 insertions(+), 172 deletions(-) commit cd2ec1a940888ebcbd323a8000d2fcced41ddf9e Author: Patrick Lam Date: Tue Jun 28 03:41:02 2005 +0000 Add functionality to allow fontconfig data structure serialization. This patch allows the fundamental fontconfig data structures to be serialized. I've converted everything from FcPattern down to be able to use *Ptr objects, which can be either static or dynamic (using a union which either contains a pointer or an index) and replaced storage of pointers in the heap with the appropriate *Ptr object. I then changed all writes of pointers to the heap with a *CreateDynamic call, which creates a dynamic Ptr object pointing to the same object as before. This way, the fundamental fontconfig semantics should be unchanged; I did not have to change external signatures this way, although I did change some internal signatures. When given a *Ptr object, just run *U to get back to a normal pointer; it gives the right answer regardless of whether we're using static or dynamic storage. I've also implemented a Fc*Serialize call. Calling FcFontSetSerialize converts the dynamic FcFontSets contained in the config object to static FcFontSets and also converts its dependencies (e.g. everything you'd need to write to disk) to static objects. Note that you have to call Fc*PrepareSerialize first; this call will count the number of objects that actually needs to be allocated, so that we can avoid realloc. The Fc*Serialize calls then check the static pointers for nullness, and allocate the buffers if necessary. I've tested the execution of fc-list and fc-match after Fc*Serialize and they appear to work the same way. fc-lang/fc-lang.c | 17 +- fontconfig/fcprivate.h | 8 +- fontconfig/fontconfig.h | 50 ++- src/fccache.c | 32 ++ src/fccfg.c | 135 ++++---- src/fccharset.c | 371 ++++++++++++++++----- src/fcdbg.c | 26 +- src/fcfs.c | 36 ++ src/fcint.h | 212 +++++++++++- src/fclang.c | 164 ++++++--- src/fclist.c | 104 +++--- src/fcmatch.c | 69 ++-- src/fcmatrix.c | 71 +++- src/fcname.c | 35 +- src/fcpat.c | 866 ++++++++++++++++++++++++++++++++++++++---------- src/fcstr.c | 219 ++++++++++-- src/fcxml.c | 13 +- 17 files changed, 1902 insertions(+), 526 deletions(-) commit f1a42f6b5f9bcd774d09002509b2872c04025c1b Author: Keith Packard Date: Fri Jun 17 03:01:43 2005 +0000 Make FcOpNotContains use FcStrStr for strings so that it matches semantics for !FcOpContains. reviewed by: keithp ChangeLog | 8 ++++++++ src/fccfg.c | 4 +++- 2 files changed, 11 insertions(+), 1 deletion(-) commit adc7abacbf0e2eae882d035f10117fb009b71bdd Author: Keith Packard Date: Fri May 20 16:21:39 2005 +0000 Move fontconfig source package to libs as per override ChangeLog | 6 ++++++ debian/changelog | 2 ++ debian/control | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) commit a65a77aecfd2182589fd5fe1a1ec1ef1f250c795 Author: Keith Packard Date: Fri May 20 15:56:51 2005 +0000 The ka.orth file requires several characters which are not used anymore in modern Georgian and which are missing in the free Georgian TrueType fonts downloadable at: http://aiet.qartuli.net/docs/georgian_on_linux_en.php reviewed by: Mike Fabian Bug: 3352 ChangeLog | 11 +++++++++++ fc-lang/ka.orth | 5 +++-- 2 files changed, 14 insertions(+), 2 deletions(-) commit 87c887464a6fc20310998146b8558179ebe18923 Author: Keith Packard Date: Wed Apr 27 19:08:08 2005 +0000 Update date to real 2.3.2 release date. Fix change attributions ChangeLog | 14 ++++++++++++++ README | 5 +++-- debian/changelog | 2 +- 3 files changed, 18 insertions(+), 3 deletions(-) commit 5c1853cd4c9bd511f0ae9f644a2a30025116987e Author: Keith Packard Date: Wed Apr 27 16:22:46 2005 +0000 Bump so revision for 2.3.2 Fix a few minor leaks in error cases. fc-cache/fc-cache.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) commit 1cb309adcb881409d669749bbca91056a0967ccf Author: Keith Packard Date: Sat Apr 23 04:32:23 2005 +0000 Update for version 2.3.2 ChangeLog | 8 ++++++++ README | 11 +++++++++-- configure.in | 2 +- debian/changelog | 7 +++++++ fontconfig/fontconfig.h | 2 +- 5 files changed, 26 insertions(+), 4 deletions(-) commit 716ac8b8033794e2557ad567005dfff4dd95f031 Author: Keith Packard Date: Thu Apr 21 19:03:53 2005 +0000 Don't force bitmap font enable in default configuration; allows users to override this in ~/.fonts.conf Updated translations Destroy font configuration on exit to help valgrind Use own transcoding routines in preference to iconv which appears to have leaks in some translators. Call iconv_close after using iconv (oops). Prefer unicode encoding of Euro char as some fonts mis-encode Euro in other ones. Must fetch bitmap glyphs to get width values to check for monospace/dual-width fonts. ChangeLog | 36 +++++++++++ debian/fontconfig.postinst | 8 ++- debian/po/cs.po | 154 +++++++++++++++++++-------------------------- debian/po/da.po | 94 ++++++++++----------------- debian/po/de.po | 71 ++++++--------------- debian/po/es.po | 77 +++++++---------------- debian/po/fr.po | 77 +++++++---------------- debian/po/ja.po | 150 +++++++++---------------------------------- debian/po/nl.po | 71 ++++++--------------- debian/po/pt.po | 71 ++++++--------------- debian/po/pt_BR.po | 77 +++++++---------------- debian/po/templates.pot | 66 +++++-------------- debian/po/tr.po | 71 ++++++--------------- debian/po/zh_CN.po | 71 ++++++--------------- fc-cache/fc-cache.c | 1 + fonts.conf.in | 37 +++++------ src/fcfreetype.c | 84 ++++++++++++++----------- 17 files changed, 404 insertions(+), 812 deletions(-) commit 2ff4f0760a700bf7c6e1ed4c5072a524b02243ca Author: Ross Burton Date: Wed Apr 13 09:11:52 2005 +0000 Check that a pattern isn't already frozen in FcPatternFreeze ChangeLog | 5 +++++ src/fcpat.c | 3 +++ 2 files changed, 8 insertions(+) commit ae7d0f35938693d250f09165fb6486b9e0f4b9bd Author: Ross Burton Date: Thu Mar 31 19:16:49 2005 +0000 Put all FcPattern objects though FcObjectStaticName and do pointer trather than string compares ChangeLog | 8 ++++++++ src/fclist.c | 5 +++-- src/fcmatch.c | 2 +- src/fcpat.c | 3 ++- 4 files changed, 14 insertions(+), 4 deletions(-) commit 156032744ee08a5d6a60e1bc1c2e0fc3702567d7 Author: Tor Lillqvist Date: Thu Mar 17 08:57:11 2005 +0000 Add the .dll to the dll name. ChangeLog | 4 ++++ src/fontconfig.def.in | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) commit 5f347d9cd50069a50174cc243acab64ee4e537a9 Author: Keith Packard Date: Thu Mar 10 22:06:20 2005 +0000 Update to reflect configuration changes Fix Autohint vs Autohinter mistake Adopt changes from Josselin Mouette for configuration descriptions Update debian to version 2.3.1-2 ChangeLog | 11 +++++++++++ debian/README.Debian | 19 ++++++++++--------- debian/changelog | 10 ++++++++++ debian/fontconfig.postinst | 2 +- debian/fontconfig.templates | 39 ++++++++------------------------------- 5 files changed, 40 insertions(+), 41 deletions(-) commit 8c74026071aae6ad70a96b81398498dcb28c0255 Author: Keith Packard Date: Wed Mar 9 04:57:42 2005 +0000 Update debian for 2.3.1 ChangeLog | 6 ++++++ debian/changelog | 11 +++++++++++ debian/rules | 1 + 3 files changed, 18 insertions(+) commit 79da4fe91ff0cee974e1ec7003857fb47c0f55d5 Author: Tor Lillqvist Date: Wed Mar 9 00:47:11 2005 +0000 Get the DLL from "bin" where modern libtools put it, not "lib". Check also drive letter prefix on Win32. ChangeLog | 8 ++++++++ fontconfig-zip.in | 2 +- src/fccfg.c | 4 +++- 3 files changed, 12 insertions(+), 2 deletions(-) commit d49dde9f900777f8482290dbafc6acb52a2b9432 Author: Keith Packard Date: Tue Mar 8 23:39:02 2005 +0000 Update for 2.3.1 ChangeLog | 7 +++++++ README | 12 ++++++++++-- configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 4 files changed, 19 insertions(+), 4 deletions(-) commit 76a8dfa3378fc1bd0397a95f2da56d5c6fb2540c Author: Keith Packard Date: Sat Mar 5 23:50:55 2005 +0000 Include space and remove numbers from valid script tags. This ensures that tags like 'lao ' work while rejecting those which have any digits. Eliminate a spurious debugging variable (len) ChangeLog | 8 ++++++++ src/fcfreetype.c | 20 ++++++++++++-------- 2 files changed, 20 insertions(+), 8 deletions(-) commit 219f7818dacb5417ab9e481b1fc21a79511e5fe7 Author: Keith Packard Date: Sat Mar 5 23:34:57 2005 +0000 Rework GSUB/GPOS script parsing to survive broken fonts. Thanks for the broken font go to Manish Singh ChangeLog | 7 +++++++ src/fcfreetype.c | 64 ++++++++++++++++++++++++++++++++++++++------------------ 2 files changed, 51 insertions(+), 20 deletions(-) commit 97bde49a2b791de9ad66aed97ca07c22302da60d Author: Keith Packard Date: Sat Mar 5 20:58:39 2005 +0000 Josselin Mouette: Include 2.3 release information in changelog Add Josselin Mouette as an Uploader Set hinting_type to low priority configuration option Manish Singh: yes_bitmaps.conf -> yes-bitmaps.conf Funda Wang: Johap -> Johab ChangeLog | 20 ++++++++++++++++++++ debian/changelog | 13 +++++++++++-- debian/control | 1 + debian/fontconfig.config | 2 +- debian/fontconfig.postinst | 2 +- debian/fontconfig.templates | 4 ++-- debian/rules | 4 ++-- src/fcfreetype.c | 2 +- 8 files changed, 39 insertions(+), 9 deletions(-) commit 683dc3c476f1ee514c252a05311efc7a97fbaee9 Author: Keith Packard Date: Thu Mar 3 06:20:57 2005 +0000 Move debian-specific conf file examples upstream. Sub-pixel configuration examples must smash subpixel value as Xft always sets it from X. Change sub-pixel rendering debconf descriptions from Enable/Disable to Always/Never. ChangeLog | 22 ++++++++++++++++++++++ Makefile.am | 3 --- conf.d/Makefile.am | 7 +++++-- conf.d/autohint.conf | 9 +++++++++ conf.d/no-sub-pixel.conf | 9 +++++++++ conf.d/sub-pixel.conf | 3 --- conf.d/unhinted.conf | 9 +++++++++ debian/autohint.conf | 9 --------- debian/fontconfig.install | 1 + debian/fontconfig.postinst | 4 ++-- debian/fontconfig.templates | 11 +++++------ debian/no-sub-pixel.conf | 12 ------------ debian/unhinted.conf | 9 --------- 13 files changed, 62 insertions(+), 46 deletions(-) commit dc2e06ab0707f8e2ffd5fe5c1d2db38dd594b551 Author: Keith Packard Date: Thu Mar 3 01:59:28 2005 +0000 Ignore more build detritus Add debian package construction stuff. Update to newer versions of these tools Get library manuals to build again (we love automake). Update debian build system to switch maintainers and deal with 2.3 functionality .cvsignore | 7 + ChangeLog | 53 +++ Makefile.am | 50 ++- conf.d/.cvsignore | 2 + config/config.guess | 846 ++++++++++++++++++++------------------ config/config.sub | 449 ++++++++++++++------ debian/README.Debian | 44 ++ debian/autohint.conf | 9 + debian/changelog | 661 +++++++++++++++++++++++++++++ debian/compat | 1 + debian/control | 78 ++++ debian/copyright | 29 ++ debian/fontconfig-udeb.install | 3 + debian/fontconfig.config | 10 + debian/fontconfig.defoma | 162 ++++++++ debian/fontconfig.dirs | 1 + debian/fontconfig.install | 6 + debian/fontconfig.postinst | 139 +++++++ debian/fontconfig.postrm | 26 ++ debian/fontconfig.templates | 51 +++ debian/libfontconfig1-dev.install | 7 + debian/libfontconfig1.install | 1 + debian/local.conf.md5sum | 18 + debian/no-sub-pixel.conf | 12 + debian/po/POTFILES.in | 1 + debian/po/cs.po | 154 +++++++ debian/po/da.po | 174 ++++++++ debian/po/de.po | 157 +++++++ debian/po/es.po | 198 +++++++++ debian/po/fr.po | 194 +++++++++ debian/po/ja.po | 180 ++++++++ debian/po/nl.po | 158 +++++++ debian/po/pt.po | 145 +++++++ debian/po/pt_BR.po | 183 +++++++++ debian/po/templates.pot | 120 ++++++ debian/po/tr.po | 150 +++++++ debian/po/zh_CN.po | 148 +++++++ debian/rules | 39 ++ debian/unhinted.conf | 9 + doc/.cvsignore | 1 + doc/Makefile.am | 13 +- 41 files changed, 4171 insertions(+), 518 deletions(-) commit 4afc00ca02bb3f49fe214463e0f194486f438b70 Author: Keith Packard Date: Tue Mar 1 20:48:36 2005 +0000 Update for 2.3.0 ChangeLog | 7 +++++++ README | 14 ++++++++++++-- configure.in | 2 +- fontconfig/fontconfig.h | 4 ++-- 4 files changed, 22 insertions(+), 5 deletions(-) commit 0c009d2b6df523bba7a10ad148287bed2df9ebd6 Author: Keith Packard Date: Tue Mar 1 20:36:48 2005 +0000 Generate and install PDF versions of the manuals Fix formatting Add missing exported functions, fix data types Add missing pattern elements. Add missing pattern elements. Document conf.d usage, clarify available orthography list. Fix some config file attributes. Complete list of constants. Mark FC_SOURCE deprecated. Don't set FC_SOURCE any longer. ChangeLog | 25 ++++++++++++++++ doc/Makefile.am | 18 +++++++++++- doc/fcpattern.fncs | 3 +- doc/fcstring.fncs | 40 +++++++++++++++++++++++-- doc/fontconfig-devel.sgml | 10 ++++++- doc/fontconfig-user.sgml | 74 ++++++++++++++++++++++++++++++++++++++++------- fontconfig/fontconfig.h | 2 +- src/fcfreetype.c | 3 -- 8 files changed, 156 insertions(+), 19 deletions(-) commit 414f720281b416736b92913f4bcbceac1a781cde Author: Keith Packard Date: Mon Feb 28 18:56:15 2005 +0000 Create prototype /etc/fonts/conf.d directory with a few sample configuration files. Deprecate use of local.conf for local customizations in favor of this directory based scheme which is more easily integrated into installation systems. Tag FC_EMBOLDEN as a boolean variable ChangeLog | 18 ++++++++++++++++++ Makefile.am | 24 ++---------------------- conf.d/Makefile.am | 34 ++++++++++++++++++++++++++++++++++ conf.d/README | 8 ++++++++ conf.d/no-bitmaps.conf | 13 +++++++++++++ conf.d/sub-pixel.conf | 12 ++++++++++++ conf.d/yes-bitmaps.conf | 13 +++++++++++++ configure.in | 1 + src/fcname.c | 1 + 9 files changed, 102 insertions(+), 22 deletions(-) commit 47b49bf14b5cd433366a02374dfaf1c27a57cc91 Author: Keith Packard Date: Thu Feb 10 23:00:51 2005 +0000 Free patterns from fonts which are rejected by configuration (bug #2518) reviewed by: pborelli@katamail.com ChangeLog | 8 ++++++++ src/fcdir.c | 2 ++ 2 files changed, 10 insertions(+) commit afca783626534477f07b03d173bbe9f51e03b53b Author: Keith Packard Date: Sat Jan 29 00:42:37 2005 +0000 Update for version 2.2.99 ChangeLog | 11 +++++++++-- README | 16 ++++++++++++++-- configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 4 files changed, 25 insertions(+), 6 deletions(-) commit 845a0bf37a6f8f16fe40f3037fa727cc9c5569f3 Author: Keith Packard Date: Sat Jan 29 00:33:47 2005 +0000 Add a few pointers ChangeLog | 5 +++++ README | 3 +++ 2 files changed, 8 insertions(+) commit ca60d2b5c503cb58ed235cbdd82ac623cda307ff Author: Keith Packard Date: Fri Jan 28 23:55:14 2005 +0000 Polite typechecking for test and edit expressions. Helps catch errors in the font configuration. ChangeLog | 10 +++ src/fcint.h | 12 +-- src/fcname.c | 2 +- src/fcxml.c | 252 ++++++++++++++++++++++++++++++++++++++++++++++------------- 4 files changed, 211 insertions(+), 65 deletions(-) commit 59e149e757795a7c0ec66c35b551a66e0da42098 Author: Keith Packard Date: Sun Jan 16 01:41:24 2005 +0000 Have --with-expat set EXPAT_CFLAGS (bug 2278) reviewed by: Keith Packard ChangeLog | 7 +++++++ configure.in | 11 ++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) commit d8ae9c92197f1f2782b9decb276f6da756ce882d Author: Keith Packard Date: Thu Jan 13 18:31:50 2005 +0000 Add SEE ALSO section (bug 2085) Cross compiling fixes (bug 280) reviewed by: Keith Packard ChangeLog | 18 ++++++++++++++++++ Makefile.am | 17 ++++++++++++++++- configure.in | 44 ++++++++++++++++++++++++++++++++++++++++++++ doc/Makefile.am | 8 ++++++-- doc/fontconfig-user.sgml | 5 +++++ fc-case/Makefile.am | 8 ++++++-- fc-glyphname/Makefile.am | 8 ++++++-- fc-lang/Makefile.am | 8 ++++++-- src/fontconfig.def.in | 2 +- 9 files changed, 108 insertions(+), 10 deletions(-) commit 8759822e8fdaebcaaea82571d6b084003ca5751e Author: Keith Packard Date: Thu Jan 13 18:10:42 2005 +0000 Update blanks list (Closes bug 86) ChangeLog | 5 +++++ fonts.conf.in | 52 +++++++++++++++++++++++++++++++--------------------- 2 files changed, 36 insertions(+), 21 deletions(-) commit fce87a189b2e89a07e271ff7f1e3dab0d4b5b919 Author: Keith Packard Date: Tue Jan 4 21:54:50 2005 +0000 Verify that every font pattern loaded from cache has both FC_FILE and FC_FAMILY entries. Attempt to fix bug #2219. ChangeLog | 7 +++++++ src/fccache.c | 10 +++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) commit d53461812d46ffb2eaffb2c512e8740e8536e498 Author: Keith Packard Date: Wed Dec 29 19:44:51 2004 +0000 Update for version 2.2.98 ChangeLog | 7 +++++++ README | 22 ++++++++++++++++++++-- configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 4 files changed, 29 insertions(+), 4 deletions(-) commit 479f551f6df7fe78b5f3bedb40a4c0c4e10f2f50 Author: Keith Packard Date: Wed Dec 29 19:37:14 2004 +0000 Document ASCII limitations of Fc character conversion macros Fix off-by-one error in utf-8 case walking code. Add FcStrDowncase (useful for testing case conversion functions) ChangeLog | 8 ++++++++ fontconfig/fontconfig.h | 10 +++++++--- src/fcstr.c | 21 ++++++++++++++++++++- 3 files changed, 35 insertions(+), 4 deletions(-) commit 02748dd3b8830a60439340a768959231e669b55c Author: Keith Packard Date: Wed Dec 29 10:07:10 2004 +0000 Add territory database Reviewed by: Keith Packard Remove Han characters from Korean orthography .cvsignore | 1 + ChangeLog | 15 + fc-case/.cvsignore | 6 + fc-lang/iso-3166.txt | 242 + fc-lang/ko.orth | 18729 +++++++------------------------------------------ 5 files changed, 2776 insertions(+), 16217 deletions(-) commit 2ba729ed3bde6512aaab00b50442b86cb013f94e Author: Keith Packard Date: Wed Dec 29 09:57:49 2004 +0000 Reorder utility programs to make sure fc-case is run before fc-lang as fc-lang uses fcstr.c which uses fccase.h Fix broken XML ChangeLog | 8 ++++++++ Makefile.am | 2 +- fonts.conf.in | 10 +++++++--- 3 files changed, 16 insertions(+), 4 deletions(-) commit 192296d852011f4a2abb6e9fd1ee741fa7f81673 Author: Keith Packard Date: Wed Dec 29 09:15:17 2004 +0000 Adopt some RedHat suggestions for standard font configuration. Add new helper program 'fc-case' to construct case folding tables from standard Unicode CaseFolding.txt file Re-implement case insensitive functions with Unicode aware versions (including full case folding mappings) ChangeLog | 26 ++ Makefile.am | 2 +- configure.in | 1 + fc-case/CaseFolding.txt | 924 ++++++++++++++++++++++++++++++++++++++++++++++++ fc-case/Makefile.am | 52 +++ fc-case/fc-case.c | 363 +++++++++++++++++++ fc-case/fccase.tmpl.h | 25 ++ fonts.conf.in | 73 ++-- src/fcint.h | 34 ++ src/fclist.c | 16 +- src/fcstr.c | 263 +++++++++++--- 11 files changed, 1685 insertions(+), 94 deletions(-) commit 5cf8c5364f1b7a676f52b480fa55c571cadc6fda Author: Keith Packard Date: Tue Dec 14 00:12:25 2004 +0000 I changed FcFontSetSort to respect the generic aliases better in the face of language matching. What I did was to ammend the strict sort order used by FcFontSort so that it 'satisfies' the language specified in the pattern by locating the best matching font supporting each pattern language and then ignores language in the remaining fonts for purposes of matching. So, when asking for 'sans:lang=en', you'll get an English font first, and then the remaining fonts sorted with respect to the 'sans' alias alone -- pushing Kochi fonts ahead of other English-supporting Han fonts. reviewed by: Owen Taylor ChangeLog | 17 +++++++++++++ src/fcmatch.c | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 96 insertions(+), 2 deletions(-) commit 46a10637cde656967b60f1e028b24763022358bb Author: Keith Packard Date: Fri Dec 10 16:48:08 2004 +0000 Configuration changes to request synthetic emboldening of fonts. The actual emboldening code will live in Xft. reviewed by: Keith Packard ChangeLog | 10 ++++++++++ fontconfig/fontconfig.h | 1 + fonts.conf.in | 20 ++++++++++++++++++++ 3 files changed, 31 insertions(+) commit 9af19286b0dcdf7636749b9efb64a50650554f2d Author: Keith Packard Date: Thu Dec 9 19:36:30 2004 +0000 Currently Russian (ru) requires 0406 and 0456 (І and і), but these were eliminated in Russian in 1918 in favor of 0418 and 0438 (И and и), and don't even appear in KOI8-R. (The hypothesis that they don't appear in KOI8-R due to their similarity with Latin I and i is eliminated by their presence in KOI8-U.) I have a couple of fonts with Russian support that don't have the letter. Therefore, 0406 and 0456 should be removed from or commented out of ru.orth reviewed by: Keith Packard ChangeLog | 16 ++++++++++++++++ fc-lang/ru.orth | 4 ++-- 2 files changed, 18 insertions(+), 2 deletions(-) commit 1c52c0f0600b4c61fb3b16d2d7b5fa35c3e1b7f0 Author: Keith Packard Date: Tue Dec 7 01:36:26 2004 +0000 Reviewed by: Keith Packard memoize strings and share a single copy for all uses. Note that this could be improved further by using statically allocated blocks and gluing multiple strings together, but I'm basically lazy. In my environment with 800 font files, I get a savings of about 90KB. ChangeLog | 15 +++++++++++++++ src/fcinit.c | 5 +++-- src/fcint.h | 3 ++- src/fclist.c | 2 +- src/fcpat.c | 42 +++++++++++++----------------------------- src/fcxml.c | 6 ------ 6 files changed, 34 insertions(+), 39 deletions(-) commit 46b51147d10db21a4d5992074bcdc9022f45856b Author: Keith Packard Date: Tue Dec 7 01:14:46 2004 +0000 Change files from ISO-Latin-1 to UTF-8 COPYING | 2 +- ChangeLog | 249 ++++++++++++++++++++++++++++++++++++++++ Makefile.am | 2 +- config/Makedefs.in | 2 +- configure.in | 2 +- doc/edit-sgml.c | 2 +- doc/fcatomic.fncs | 2 +- doc/fcblanks.fncs | 2 +- doc/fccharset.fncs | 2 +- doc/fcconfig.fncs | 2 +- doc/fcconstant.fncs | 2 +- doc/fcfile.fncs | 2 +- doc/fcfontset.fncs | 2 +- doc/fcfreetype.fncs | 2 +- doc/fcinit.fncs | 2 +- doc/fcmatrix.fncs | 2 +- doc/fcobjectset.fncs | 2 +- doc/fcobjecttype.fncs | 2 +- doc/fcpattern.fncs | 2 +- doc/fcstring.fncs | 2 +- doc/fcstrset.fncs | 2 +- doc/fcvalue.fncs | 2 +- doc/fontconfig-devel.sgml | 4 +- doc/fontconfig-user.sgml | 2 +- doc/func.sgml | 2 +- doc/version.sgml.in | 2 +- fc-cache/Makefile.am | 2 +- fc-cache/fc-cache.c | 2 +- fc-glyphname/Makefile.am | 2 +- fc-glyphname/fc-glyphname.c | 2 +- fc-glyphname/fcglyphname.tmpl.h | 2 +- fc-lang/Makefile.am | 2 +- fc-lang/aa.orth | 2 +- fc-lang/ab.orth | 2 +- fc-lang/af.orth | 2 +- fc-lang/am.orth | 2 +- fc-lang/ar.orth | 2 +- fc-lang/ast.orth | 2 +- fc-lang/ava.orth | 2 +- fc-lang/ay.orth | 2 +- fc-lang/az.orth | 2 +- fc-lang/az_ir.orth | 2 +- fc-lang/ba.orth | 2 +- fc-lang/bam.orth | 2 +- fc-lang/be.orth | 2 +- fc-lang/bg.orth | 2 +- fc-lang/bh.orth | 2 +- fc-lang/bho.orth | 2 +- fc-lang/bi.orth | 2 +- fc-lang/bin.orth | 2 +- fc-lang/bn.orth | 2 +- fc-lang/bo.orth | 2 +- fc-lang/br.orth | 2 +- fc-lang/bs.orth | 2 +- fc-lang/bua.orth | 2 +- fc-lang/ca.orth | 2 +- fc-lang/ce.orth | 2 +- fc-lang/ch.orth | 2 +- fc-lang/chm.orth | 2 +- fc-lang/chr.orth | 2 +- fc-lang/co.orth | 2 +- fc-lang/cs.orth | 2 +- fc-lang/cu.orth | 2 +- fc-lang/cv.orth | 2 +- fc-lang/cy.orth | 2 +- fc-lang/da.orth | 2 +- fc-lang/de.orth | 2 +- fc-lang/dz.orth | 2 +- fc-lang/el.orth | 2 +- fc-lang/en.orth | 2 +- fc-lang/eo.orth | 2 +- fc-lang/es.orth | 2 +- fc-lang/et.orth | 2 +- fc-lang/eu.orth | 4 +- fc-lang/fa.orth | 2 +- fc-lang/fc-lang.c | 2 +- fc-lang/fc-lang.man | 2 +- fc-lang/fclang.tmpl.h | 2 +- fc-lang/fi.orth | 2 +- fc-lang/fj.orth | 2 +- fc-lang/fo.orth | 2 +- fc-lang/fr.orth | 2 +- fc-lang/ful.orth | 2 +- fc-lang/fur.orth | 2 +- fc-lang/fy.orth | 4 +- fc-lang/ga.orth | 2 +- fc-lang/gd.orth | 2 +- fc-lang/gez.orth | 2 +- fc-lang/gl.orth | 2 +- fc-lang/gn.orth | 4 +- fc-lang/gu.orth | 2 +- fc-lang/gv.orth | 2 +- fc-lang/ha.orth | 2 +- fc-lang/haw.orth | 2 +- fc-lang/he.orth | 2 +- fc-lang/hi.orth | 2 +- fc-lang/ho.orth | 2 +- fc-lang/hr.orth | 2 +- fc-lang/hu.orth | 2 +- fc-lang/hy.orth | 2 +- fc-lang/ia.orth | 2 +- fc-lang/ibo.orth | 2 +- fc-lang/id.orth | 2 +- fc-lang/ie.orth | 2 +- fc-lang/ik.orth | 2 +- fc-lang/io.orth | 2 +- fc-lang/is.orth | 2 +- fc-lang/iso639-2 | 194 +++++++++++++++---------------- fc-lang/it.orth | 2 +- fc-lang/iu.orth | 2 +- fc-lang/ja.orth | 2 +- fc-lang/ka.orth | 2 +- fc-lang/kaa.orth | 2 +- fc-lang/ki.orth | 2 +- fc-lang/kk.orth | 2 +- fc-lang/kl.orth | 2 +- fc-lang/km.orth | 2 +- fc-lang/kn.orth | 2 +- fc-lang/ko.orth | 2 +- fc-lang/kok.orth | 2 +- fc-lang/ks.orth | 2 +- fc-lang/ku.orth | 2 +- fc-lang/ku_ir.orth | 2 +- fc-lang/kum.orth | 2 +- fc-lang/kv.orth | 2 +- fc-lang/kw.orth | 2 +- fc-lang/ky.orth | 2 +- fc-lang/la.orth | 2 +- fc-lang/lb.orth | 2 +- fc-lang/lez.orth | 2 +- fc-lang/lo.orth | 2 +- fc-lang/lt.orth | 2 +- fc-lang/lv.orth | 2 +- fc-lang/mg.orth | 2 +- fc-lang/mh.orth | 2 +- fc-lang/mi.orth | 2 +- fc-lang/mk.orth | 2 +- fc-lang/ml.orth | 2 +- fc-lang/mn.orth | 2 +- fc-lang/mo.orth | 2 +- fc-lang/mr.orth | 2 +- fc-lang/mt.orth | 2 +- fc-lang/my.orth | 2 +- fc-lang/nb.orth | 4 +- fc-lang/nds.orth | 2 +- fc-lang/ne.orth | 2 +- fc-lang/nl.orth | 2 +- fc-lang/nn.orth | 2 +- fc-lang/no.orth | 4 +- fc-lang/ny.orth | 2 +- fc-lang/oc.orth | 2 +- fc-lang/om.orth | 2 +- fc-lang/or.orth | 2 +- fc-lang/os.orth | 2 +- fc-lang/pl.orth | 2 +- fc-lang/ps_af.orth | 2 +- fc-lang/ps_pk.orth | 2 +- fc-lang/pt.orth | 2 +- fc-lang/rm.orth | 2 +- fc-lang/ro.orth | 2 +- fc-lang/ru.orth | 2 +- fc-lang/sa.orth | 2 +- fc-lang/sah.orth | 2 +- fc-lang/sco.orth | 2 +- fc-lang/se.orth | 4 +- fc-lang/sel.orth | 2 +- fc-lang/sh.orth | 2 +- fc-lang/si.orth | 2 +- fc-lang/sk.orth | 2 +- fc-lang/sl.orth | 2 +- fc-lang/sm.orth | 2 +- fc-lang/sma.orth | 4 +- fc-lang/smj.orth | 4 +- fc-lang/smn.orth | 4 +- fc-lang/sms.orth | 4 +- fc-lang/so.orth | 2 +- fc-lang/sq.orth | 2 +- fc-lang/sr.orth | 2 +- fc-lang/sv.orth | 2 +- fc-lang/sw.orth | 2 +- fc-lang/syr.orth | 2 +- fc-lang/ta.orth | 2 +- fc-lang/te.orth | 2 +- fc-lang/tg.orth | 2 +- fc-lang/th.orth | 2 +- fc-lang/ti_er.orth | 2 +- fc-lang/ti_et.orth | 2 +- fc-lang/tig.orth | 2 +- fc-lang/tk.orth | 2 +- fc-lang/tl.orth | 2 +- fc-lang/tn.orth | 2 +- fc-lang/to.orth | 2 +- fc-lang/tr.orth | 2 +- fc-lang/ts.orth | 2 +- fc-lang/tt.orth | 2 +- fc-lang/tw.orth | 2 +- fc-lang/tyv.orth | 2 +- fc-lang/ug.orth | 2 +- fc-lang/uk.orth | 2 +- fc-lang/ur.orth | 2 +- fc-lang/uz.orth | 2 +- fc-lang/ven.orth | 2 +- fc-lang/vi.orth | 2 +- fc-lang/vo.orth | 4 +- fc-lang/vot.orth | 2 +- fc-lang/wa.orth | 2 +- fc-lang/wen.orth | 2 +- fc-lang/wo.orth | 2 +- fc-lang/xh.orth | 2 +- fc-lang/yap.orth | 2 +- fc-lang/yi.orth | 2 +- fc-lang/yo.orth | 2 +- fc-lang/zh_cn.orth | 2 +- fc-lang/zh_hk.orth | 2 +- fc-lang/zh_mo.orth | 2 +- fc-lang/zh_sg.orth | 2 +- fc-lang/zh_tw.orth | 2 +- fc-lang/zu.orth | 2 +- fc-list/Makefile.am | 2 +- fc-list/fc-list.c | 2 +- fc-match/Makefile.am | 2 +- fc-match/fc-match.1 | 2 +- fc-match/fc-match.c | 2 +- fontconfig/fcfreetype.h | 2 +- fontconfig/fcprivate.h | 2 +- fontconfig/fontconfig.h | 2 +- src/fcatomic.c | 2 +- src/fcblanks.c | 2 +- src/fccache.c | 2 +- src/fccfg.c | 2 +- src/fccharset.c | 2 +- src/fcdbg.c | 2 +- src/fcdefault.c | 2 +- src/fcdir.c | 2 +- src/fcfreetype.c | 4 +- src/fcfs.c | 2 +- src/fcinit.c | 2 +- src/fcint.h | 2 +- src/fclang.c | 2 +- src/fclist.c | 2 +- src/fcmatch.c | 2 +- src/fcmatrix.c | 2 +- src/fcname.c | 2 +- src/fcpat.c | 2 +- src/fcstr.c | 2 +- src/fcxml.c | 2 +- 246 files changed, 603 insertions(+), 354 deletions(-) commit fc2cc873bb1a715844a1e6f885661bf433bdd7cf Author: Keith Packard Date: Sun Dec 5 07:44:08 2004 +0000 Update links to new freedesktop.org locations Add uninstall-local to get rid of fonts.conf and local.conf if they match the distributed versions. Fixes 'make distcheck' ChangeLog | 8 ++++++++ INSTALL | 4 ++-- Makefile.am | 24 ++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) commit 308dc9c3ea0be2e0823e547f2c612760db7539a2 Author: Keith Packard Date: Sun Dec 5 06:38:54 2004 +0000 Updates for version 2.2.97 ChangeLog | 7 +++++++ README | 30 ++++++++++++++++++++++++++++-- configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 4 files changed, 37 insertions(+), 4 deletions(-) commit 54560b013ff89f4d47b4b94f6ea9d1b2e91e20fd Author: Keith Packard Date: Sun Dec 5 06:19:46 2004 +0000 Sleep for two seconds before exiting to make sure timestamps for future changes have distinct mod times in the file system. Bug #1982. Add Punjabi orthography. Bug #1671. reviewed by: Keith Packard ChangeLog | 13 ++++++++++++- fc-cache/fc-cache.c | 8 ++++++++ fc-lang/pa.orth | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 66 insertions(+), 1 deletion(-) commit c5a0b541df8be0b66f4ecf531570242693aac930 Author: Keith Packard Date: Sun Dec 5 05:49:20 2004 +0000 Just remove the FC_FONTDATE -- it has locale issues and annoys redhat multi-arch installs. Now that all X fonts are included without prejudice, the chances of the date being at all interesting are rather limited. Bug #415. Add copyright and license ChangeLog | 10 ++++++++++ fonts.conf.in | 2 +- src/Makefile.am | 23 +++++++++++++++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) commit 2d9c79c049d084c82fdda9a71c5a65502ae94cee Author: Keith Packard Date: Sun Dec 5 05:03:52 2004 +0000 Change default set of fonts to include all of /usr/X11R6/lib/X11/fonts (or wherever the X fonts are located). Document new directory-name semantics add conf.d Add selectfont to ignore bitmap fonts, add comment for selectfont which accepts bitmap fonts. Allow configuration elements to reference directories. Parse and load all files of the form [0-9]* in sorted order. ChangeLog | 18 ++++++++++ configure.in | 23 ++++++------- doc/fontconfig-user.sgml | 17 +++++---- fonts.conf.in | 1 + local.conf | 23 +++++++++++++ src/fcdir.c | 4 +-- src/fcint.h | 6 ++++ src/fcxml.c | 89 ++++++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 158 insertions(+), 23 deletions(-) commit 38e528e77673f0395ab802cd1040947e307f0c6c Author: Keith Packard Date: Sun Dec 5 04:14:17 2004 +0000 Report command line for $srcdir/configure accurately. Bug #212. ChangeLog | 8 +++++++- autogen.sh | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) commit e4125ef950ada3413a542dc457a4d36c5495dcd7 Author: Keith Packard Date: Sun Dec 5 04:11:11 2004 +0000 Check for non-empty face->family_name and face->style_name before using those for the font. Empty names match everything. Bug #171. ChangeLog | 7 +++++++ src/fcfreetype.c | 12 +++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) commit 537e3d23fab449be154da8d49817364479924a61 Author: Keith Packard Date: Sun Dec 5 00:26:06 2004 +0000 Create FC_FONTFORMAT from FT_Get_X11_Font_Format function where available. This provides font file format information (BDF, Type 1, PCF, TrueType) for each font. Closes #109. ChangeLog | 10 ++++++++++ configure.in | 2 +- fontconfig/fontconfig.h | 1 + src/fcfreetype.c | 14 ++++++++++++++ src/fcname.c | 1 + 5 files changed, 27 insertions(+), 1 deletion(-) commit dbf68dd5fe2f936af53891a240601c727bdcf09d Author: Keith Packard Date: Sat Dec 4 22:06:52 2004 +0000 Fix typo. Add detection for font capabilities (bug #105) reviewed by: Keith Packard ChangeLog | 13 ++++ doc/fontconfig-user.sgml | 1 + fontconfig/fontconfig.h | 1 + src/fcfreetype.c | 188 +++++++++++++++++++++++++++++++++++++++++++++++ src/fcname.c | 1 + 5 files changed, 204 insertions(+) commit 4f27c1c0a383e891890ab27c74226957ed7067aa Author: Keith Packard Date: Sat Dec 4 19:41:10 2004 +0000 Move existing fonts.conf to fonts.conf.bak Add detection of iconv Document new selectfont elements Switch to UTF-8 in comment Add fullname, and family/style/fullname language entries Respect selectfont/*/glob Add support for selectfont Add multi-lingual family/style/fullname support Expose FcListPatternMatchAny (which selectfont/*/pattern uses) Add new FcPatternRemove/FcPatternAppend. FcObjectStaticName stores computed pattern element names which are required to be static. ChangeLog | 47 ++ Makefile.am | 13 +- configure.in | 6 +- doc/fcpattern.fncs | 11 + doc/fontconfig-devel.sgml | 13 +- doc/fontconfig-user.sgml | 43 +- fc-lang/nb.orth | 2 +- fontconfig/fontconfig.h | 7 + fonts.dtd | 19 + src/fccache.c | 2 +- src/fccfg.c | 55 ++- src/fcdir.c | 2 +- src/fcfreetype.c | 1085 +++++++++++++++++++++++++++++++++------------ src/fcint.h | 21 + src/fclist.c | 6 +- src/fcname.c | 4 + src/fcpat.c | 73 +++ src/fcxml.c | 162 +++++++ 18 files changed, 1282 insertions(+), 289 deletions(-) commit c641c77d6f1a0b378e800c9e3502ae446839a8af Author: Keith Packard Date: Thu Sep 9 14:31:18 2004 +0000 Remove spurious / after $(DESTDIR) reviewed by: keithp ChangeLog | 7 +++++++ Makefile.am | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) commit b5f36ca0b54d30d790f84ce68ea43a1bd0e606e9 Author: Keith Packard Date: Wed Jun 30 20:06:41 2004 +0000 Update for 2.2.96 ChangeLog | 7 +++++++ README | 12 ++++++++++-- configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 4 files changed, 19 insertions(+), 4 deletions(-) commit 28f93bc4122337f59afad31e610ce17c3d2b00a2 Author: Keith Packard Date: Wed Jun 30 18:41:52 2004 +0000 Provided by: Lubos Lunak However FcConfigUptoDate() doesn't seem to work. See the attached patch. First there's an obvious misplaced parenthesis making it return always false, and second, even this call fails to detect font changes (e.g. adding a new font to /usr/X11R6/lib/X11/fonts/truetype). The patch should fix that as well. The problem seems to be triggered by my fonts.conf specifying only /usr/X11R6/lib/X11/fonts , and therefore config->configDirs doesn't include subdirs, unlike config->fontDirs. ChangeLog | 14 ++++++++++++++ src/fccfg.c | 4 ++-- 2 files changed, 16 insertions(+), 2 deletions(-) commit 3d1ea0e5d48e0dfa72080a3318e3c2157500da3d Author: Keith Packard Date: Thu Jun 3 14:16:38 2004 +0000 Remove comma at end of FcResult enum definition. ChangeLog | 5 +++++ fontconfig/fontconfig.h | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) commit 087d899ccfab846c15ccd9197f3b79d7dd8dc5bb Author: Keith Packard Date: Sat May 29 20:07:46 2004 +0000 Add steps to md5sum release ChangeLog | 5 +++++ INSTALL | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) commit e867aa336c4b0d80702f01b1ff390ca8c81dd73a Author: Keith Packard Date: Sat May 29 19:49:52 2004 +0000 Add sh autogen.sh to INSTALL INSTALL | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) commit d81271eb21db058d0e816044874b3a8b88439e82 Author: Keith Packard Date: Sat May 29 19:36:32 2004 +0000 Update for 2.2.95 ChangeLog | 7 +++++++ README | 11 +++++++++-- configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 4 files changed, 18 insertions(+), 4 deletions(-) commit ec0c740e392e6e05ae0fa204ebe191cbe27073cf Author: Keith Packard Date: Sat May 29 19:32:41 2004 +0000 Add FcResultOutOfMemory to provide an accurate error when FcFontSetMatch fails in this way Make #warning about lacking various FreeType features indicate which version those features appeared so users know how to fix the problem (Thanks to Anton Tropashko) ChangeLog | 12 ++++++++++++ fontconfig/fontconfig.h | 3 ++- src/fcfreetype.c | 6 +++--- src/fcmatch.c | 3 +++ 4 files changed, 20 insertions(+), 4 deletions(-) commit 55a69bd0aeb4cde4e87c1c7cd04a9f10a1f4cb1a Author: Keith Packard Date: Thu May 6 02:28:37 2004 +0000 Replace MIN/MAX/ABS macros which happen to have come from FreeType with fontconfig-specific ones (FC_*) ChangeLog | 6 ++++++ src/fcfreetype.c | 7 +++++-- 2 files changed, 11 insertions(+), 2 deletions(-) commit bd0ddac8f34dd6ef0a9385aacf3edc4c81023452 Author: Keith Packard Date: Sat Apr 24 02:54:40 2004 +0000 Extend release preparation instructions to include notification and distribution steps ChangeLog | 6 ++++++ INSTALL | 11 +++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) commit 626a70167d7805c20a157e945a1f380ae580661a Author: Keith Packard Date: Sat Apr 24 01:09:36 2004 +0000 Update to 2.2.94 (2.2.93 shipped with broken libtool bits) ChangeLog | 7 +++++++ README | 9 +++++++-- configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 4 files changed, 16 insertions(+), 4 deletions(-) commit 7969113f086176112fdc13347ea56ea52838117a Author: Keith Packard Date: Sat Apr 24 01:06:32 2004 +0000 Ignore a few more autotool files .cvsignore | 4 ++++ ChangeLog | 5 +++++ 2 files changed, 9 insertions(+) commit 6ae6acf3178d7dd10e2326f6833d25970e530f61 Author: Keith Packard Date: Wed Apr 14 18:08:41 2004 +0000 Add instructions for doing a release clean up .spec file; perhaps this will be useful to somebody... Update to 2.2.93 Make 'scanopen' static so GCC doesn't whine about lacking prototype Add WARN_CFLAGS to pass -W flags for GCC systems Change various char types around to match across function calls. Fixed bug in using available_sizes[i].height which is in pixels, not 64ths of a pixel. ChangeLog | 30 +++++++++++++ INSTALL | 13 ++++++ README | 27 +++++++++++- configure.in | 14 +++++- fc-glyphname/Makefile.am | 2 +- fc-lang/Makefile.am | 2 +- fc-lang/fc-lang.c | 2 +- fc-list/Makefile.am | 2 +- fc-match/Makefile.am | 2 +- fontconfig.spec.in | 42 +++++++++++++----- fontconfig/fontconfig.h | 2 +- src/Makefile.am | 1 + src/fcfreetype.c | 109 ++++++++++++++++++++++++----------------------- 13 files changed, 176 insertions(+), 72 deletions(-) commit 89e28590f3c85f302dcc5c611e7b9fa906e0ec07 Author: Keith Packard Date: Sat Mar 6 23:44:11 2004 +0000 Force FC_FOUNDRY and FC_WIDTH to always be set so that matches looking for explicit values prefer exact matches ChangeLog | 6 ++++++ src/fcfreetype.c | 18 ++++++++++-------- 2 files changed, 16 insertions(+), 8 deletions(-) commit 02638f1ace0ad7e898317128c244dfd9c842d122 Author: Keith Packard Date: Tue Mar 2 16:48:51 2004 +0000 Supplied by: mfabian@suse.de (Mike FABIAN) Bug #260 fc-cache generates wrong spacing values for bitmap fonts Was using (strcmp (a,b)) instead of (!strcmp(a,b)). ChangeLog | 8 ++++++++ src/fcfreetype.c | 6 +++--- 2 files changed, 11 insertions(+), 3 deletions(-) commit de66e750a5c5798dab5347675d6581183efa8105 Author: Manish Singh Date: Sun Feb 22 02:21:37 2004 +0000 Cast strlen to int for printf, so we're 64-bit clean. ChangeLog | 5 +++++ fc-glyphname/fc-glyphname.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) commit 208a720f009357449647a56d6fe95a5a346a6578 Author: Keith Packard Date: Wed Feb 11 18:53:05 2004 +0000 Ok, so I messed up the test for y_ppem. Let's see if I got it right this time. ChangeLog | 7 +++++++ configure.in | 15 +++------------ src/fcfreetype.c | 4 ++-- 3 files changed, 12 insertions(+), 14 deletions(-) commit 4f38fa81062e5e2e151715a162c295b9a216568a Author: Keith Packard Date: Tue Feb 10 18:38:58 2004 +0000 Pre-2.1.5 versions of FreeType didn't include y_ppem in the FT_Bitmap_Size record. Add a configure.in test for this and change the code accordingly (using height instead). ChangeLog | 8 ++++++++ configure.in | 21 +++++++++++++++++++-- src/fcfreetype.c | 4 ++++ 3 files changed, 31 insertions(+), 2 deletions(-) commit b68b96464f6488dbc62c4dcd62ca7e2eed3141d2 Author: Keith Packard Date: Sat Feb 7 07:13:48 2004 +0000 Add Low Saxon orthography (Kenneth Rohde Christiansen ) Oops. Left 'newest.set' unset, which would miscompute the newest file Add FcGetPixelSize to extract correct pixel size from bdf/pcf font properties (which report the wrong value in current FreeType) Don't attempt to check for empty glyphs in non-scalable fonts; they have no outlines... ChangeLog | 18 ++++++++++++++++++ fc-lang/nds.orth | 40 ++++++++++++++++++++++++++++++++++++++++ src/fccfg.c | 3 +++ src/fcfreetype.c | 36 ++++++++++++++++++++++++------------ 4 files changed, 85 insertions(+), 12 deletions(-) commit f4c52909ab5321df608fe7af2da3edcab48818d9 Author: Tor Lillqvist Date: Sun Feb 1 19:32:36 2004 +0000 fontconfig, at least as used by GIMP and/or PangoFT2 on Windows, crashes when trying to save the cache if config->cache is NULL, which happens if FcConfigHome() is NULL. Guard against that by using the temp folder in that case. ChangeLog | 7 +++++++ src/fccfg.c | 25 +++++++++++++++++++++++++ 2 files changed, 32 insertions(+) commit d3481737be37255408025f4b3cf2c8b14a6b2ff7 Author: Roozbeh Pournader Date: Sat Jan 3 18:27:29 2004 +0000 Added orthographies for Iranian Azerbaijani and Kurdish, and Pashto (Afghan and Pakistani). Updated Urdu orthography with real data. ChangeLog | 11 +++++++++++ fc-lang/az_ir.orth | 32 ++++++++++++++++++++++++++++++++ fc-lang/ku_ir.orth | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ fc-lang/ps_af.orth | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ fc-lang/ps_pk.orth | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ fc-lang/ur.orth | 41 +++++++++++++++++++++++++++++++++++++---- 6 files changed, 233 insertions(+), 4 deletions(-) commit f6d784313fa87d405b4b4165ee7b9248dd378df2 Author: Carl Worth Date: Fri Dec 12 17:07:55 2003 +0000 Remove excessive whitespace (missed on previous commit) fc-cache/Makefile.am | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit d098e4ebe7e3b87a66ddbe09bafe3582373a022c Author: Carl Worth Date: Thu Dec 11 19:30:07 2003 +0000 Move man_MANS into the 'if USEDOCBOOK' block. Move man_MANS into the 'if USEDOCBOOK' block. (all-local): Remove excessive whitespace. Add 'set -e' to abort when any program fails, (avoids printing of 'now type make' after configure aborts). ChangeLog | 12 ++++++++++++ autogen.sh | 2 ++ fc-cache/Makefile.am | 6 +++--- fc-list/Makefile.am | 4 ++-- 4 files changed, 19 insertions(+), 5 deletions(-) commit 408dd9c07a9b0b755f9338b4cbff9e4292fa391d Author: Keith Packard Date: Tue Nov 18 07:53:04 2003 +0000 Switch to FreeType 2.1.7 style includes. Bug #150. reviewed by: Keith Packard ChangeLog | 9 +++++++++ doc/Makefile.am | 1 + fontconfig/fcfreetype.h | 3 ++- src/fcfreetype.c | 17 +++++++++-------- 4 files changed, 21 insertions(+), 9 deletions(-) commit 8e8fcda45c07bb0934f30887282238a57cc619da Author: Noah Levitt Date: Sun Nov 16 19:08:04 2003 +0000 Add some example usages. ChangeLog | 4 ++++ fc-list/fc-list.sgml | 23 +++++++++++++++++++++++ 2 files changed, 27 insertions(+) commit 344a0e33618cd0e9f620b5fa55969602d775934c Author: Roozbeh Pournader Date: Mon Nov 10 17:34:36 2003 +0000 Fixed a bug "FcStrtod" in handling some cases with two-byte decimal separators. ChangeLog | 8 +++++++- src/fcxml.c | 7 +++++-- 2 files changed, 12 insertions(+), 3 deletions(-) commit 27143fc9a2ac9b7dc87ab874251df356611b25e5 Author: Keith Packard Date: Mon Oct 27 10:47:53 2003 +0000 Update to version 2.2.92 ChangeLog | 6 ++++++ configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) commit 4cbc3ee8fe4a6266b2d107c7475a65de6bdd1068 Author: Keith Packard Date: Mon Oct 27 10:44:13 2003 +0000 Yet more cleanups to finish getting 'make distcheck' working This has been tested to ensure that it even works from a _build directory. ChangeLog | 16 ++++++ Makefile.am | 1 + configure.in | 10 ++++ doc/Makefile.am | 133 +++++++++++++++-------------------------------- fc-cache/Makefile.am | 2 +- fc-glyphname/Makefile.am | 6 +-- fc-lang/Makefile.am | 5 +- fc-list/Makefile.am | 2 +- fc-match/Makefile.am | 2 +- test/Makefile.am | 4 +- test/run-test.sh | 28 ++++++---- 11 files changed, 98 insertions(+), 111 deletions(-) commit 394b2bf04651d62194c7faa836899d33ca3ed017 Author: Keith Packard Date: Mon Oct 27 06:30:29 2003 +0000 Attempts to fix 'make distcheck' work. Things are progressing pretty well, but there are still failures long into the process dealing with docs (as always). The big changes here are mostly to make $(srcdir) != "." work correctly, fixing the docbook related sections and fc-lang were particularily tricky. Docbook refuses to load system entities from anywhere other than where the original .sgml file was located, so no luck looking in "." for the configure-generated version.sgml and confdir.sgml files. fc-lang needed help finding .orth files; added a -d option to set the directory as the least evil of many options. Now to go use a faster machine and try and wring out the last issues. ChangeLog | 27 +++++++++++++++++++ configure.in | 2 +- doc/Makefile.am | 68 +++++++++++++++++++++++++++++++++++++++++------- fc-cache/Makefile.am | 13 ++++----- fc-glyphname/Makefile.am | 11 +++++--- fc-lang/Makefile.am | 10 ++++--- fc-lang/fc-lang.c | 29 +++++++++++++++++++-- fc-list/Makefile.am | 10 ++++--- fc-match/Makefile.am | 2 +- 9 files changed, 142 insertions(+), 30 deletions(-) commit 3541556bd38d6b1a3fffe1a661edce2f8d60e06a Author: Keith Packard Date: Sun Oct 26 16:52:28 2003 +0000 Tag version 2.2.91 ChangeLog | 4 ++++ configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) commit e99043ac778280ed16ab69ca0844b634f7d20f30 Author: Keith Packard Date: Sun Oct 26 16:45:23 2003 +0000 Include confdir.sgml.in in EXTRA_DIST ChangeLog | 5 +++++ doc/Makefile.am | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) commit 75839218d18a7fad2f7e84cb995724763f7cae11 Author: Josselin Mouette Date: Thu Oct 9 18:21:49 2003 +0000 Replace fc-cache and fc-list manpages with more detailed, SGML versions. ChangeLog | 7 ++ fc-cache/.cvsignore | 1 + fc-cache/Makefile.am | 24 +++++- fc-cache/fc-cache.1 | 51 ------------- fc-cache/fc-cache.sgml | 200 +++++++++++++++++++++++++++++++++++++++++++++++++ fc-list/.cvsignore | 1 + fc-list/Makefile.am | 24 +++++- fc-list/fc-list.1 | 37 --------- fc-list/fc-list.sgml | 165 ++++++++++++++++++++++++++++++++++++++++ 9 files changed, 420 insertions(+), 90 deletions(-) commit f077d662c001468eb2aa1261549accd9ff3de401 Author: Owen Taylor Date: Tue Sep 23 20:12:20 2003 +0000 Add a FC_HINT_STYLE key for patterns, with possible values HINT_NONE/HINT_SLIGHT/HINT_MEDIUM/HINT_FULL. (Bug #117) ChangeLog | 7 +++++++ fontconfig/fontconfig.h | 7 +++++++ src/fcdefault.c | 5 +++++ src/fcname.c | 6 ++++++ 4 files changed, 25 insertions(+) commit 44f59f71688d557b75a94e2a8786ec5ae80308ae Author: Owen Taylor Date: Tue Sep 23 20:06:40 2003 +0000 Remove Georgian capitals, they aren't used for normal writing. (Bug #116) ChangeLog | 5 +++++ fc-lang/ka.orth | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) commit a05d257fb3b2cf37c6c633029b308a76fe61b9c2 Author: Noah Levitt Date: Sat Sep 6 19:40:41 2003 +0000 Add new spacing value FC_DUAL (dual-width, as some CJK fonts). (bug #111) When checking for monospace and dual-width fonts, allow roughly a 3% variance in the advances. ChangeLog | 13 +++++++++++ doc/fontconfig-devel.sgml | 4 ++-- doc/fontconfig-user.sgml | 3 ++- fontconfig/fontconfig.h | 1 + src/fcfreetype.c | 55 +++++++++++++++++++++++++++++++++++++---------- src/fcname.c | 1 + 6 files changed, 63 insertions(+), 14 deletions(-) commit 3ef32bcdc4662fbc10bc5217ea7849cd31480d73 Author: Manish Singh Date: Mon Sep 1 05:11:17 2003 +0000 FcConfigAppFontClear: Support passing NULL to use default config. ChangeLog | 5 +++++ src/fccfg.c | 7 +++++++ 2 files changed, 12 insertions(+) commit 34cd0514a215d65af6822eba2c2f0cd04eb0065f Author: Carl Worth Date: Fri Aug 15 19:45:20 2003 +0000 Added new FcFini function for cleaning up all memory. Fixed a few memory leaks. fc-list now calls FcFini, (and is now leak-free according to valgrind) ChangeLog | 44 +++++++++++ doc/Makefile.am | 8 +- doc/edit-sgml.c | 187 +++++++++++++++++++++++++++++++------------- doc/fcinit.fncs | 11 +++ fc-glyphname/fc-glyphname.c | 35 +++++++-- fc-list/fc-list.c | 4 + fc-match/fc-match.c | 2 +- fontconfig/fontconfig.h | 3 + src/fccfg.c | 6 ++ src/fccharset.c | 64 +++++++++++++-- src/fcinit.c | 13 +++ src/fcint.h | 6 ++ src/fcpat.c | 84 +++++++++++++++++++- src/fcxml.c | 4 + src/fontconfig.def.in | 1 + 15 files changed, 398 insertions(+), 74 deletions(-) commit 18906a876aa13550b1a10550ceeef6df0c4473ec Author: Keith Packard Date: Tue Aug 12 02:06:20 2003 +0000 Bug 103 -- FcObjectSetBuild must be terminated by (char *) 0 as varargs are untyped fc-list/fc-list.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 116e13b4431b051b8196db201c22cd67b30922e9 Author: Keith Packard Date: Sun Jul 20 17:14:47 2003 +0000 Wrap fcfreetype.h with _FCFUNCPROTOBEGIN/_FCFUNCPROTOEND fontconfig/fcfreetype.h | 4 ++++ 1 file changed, 4 insertions(+) commit 74a623e02efc23a39fb35e8d338858877b8f89e7 Author: Keith Packard Date: Sun Jul 20 16:06:18 2003 +0000 Implement new semantics for Contains and LISTING: LISTING requires that the font Contain all of the pattern values, where Contain is redefined for strings to mean precise matching (so that Courier 10 Pitch doesn't list Courier fonts) "Contains" for lang means both langs have the same language and either the same country or one is missing the country src/fccfg.c | 79 +++++++++++++++++++++++++++++++++--------------------------- src/fcdbg.c | 3 +++ src/fcint.h | 3 ++- src/fclang.c | 18 ++++++++------ src/fclist.c | 38 +++++++++++++++++++++-------- src/fcxml.c | 1 + 6 files changed, 89 insertions(+), 53 deletions(-) commit 26da2bb42f91360ecdee9006ff0f8a7ef0609a59 Author: Keith Packard Date: Wed Jul 9 17:04:17 2003 +0000 Was miscomputing end of string position for FcStrtod in locales with multibyte separators src/fcxml.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 656c69d6a8a1e6a82cfdd599c657f8fc2717af8d Author: Keith Packard Date: Thu Jun 26 08:19:11 2003 +0000 Add autoconf checks for FT_Has_PS_Glyph_Names configure.in | 3 ++- src/fcfreetype.c | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) commit ee1debfdd9bae347e8bec29c0cbd668640a2aadf Author: Keith Packard Date: Thu Jun 26 00:39:04 2003 +0000 Allow config->cache to be null (as it is when $HOME is not set) src/fccfg.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit 79621aa5c786cdd4d14b43b58888979ef0d2a4c6 Author: Keith Packard Date: Wed Jun 25 23:21:03 2003 +0000 Lean on autoconf to find useful FreeType functions (bug 95) configure.in | 7 +++++-- src/fcfreetype.c | 46 +++++++++++++++++----------------------------- 2 files changed, 22 insertions(+), 31 deletions(-) commit 2b45ef3a8a164648647eba1265db6a3d10ea7bad Author: Keith Packard Date: Tue Jun 17 18:28:20 2003 +0000 Bug 75: dont build docs unless docbook is available. Dont install docs unless they are pre-built or buildable Makefile.am | 3 ++- configure.in | 26 +++++++++++++++++++++----- doc/Makefile.am | 2 +- 3 files changed, 24 insertions(+), 7 deletions(-) commit e5871b5c5bdb09b2e5bb0d79ed03f22a27956a90 Author: Keith Packard Date: Tue Jun 17 17:31:16 2003 +0000 Add FreeFont entries, fix whitespace in fonts.conf.in (bug 93, from vvas@hal.csd.auth.gr (Vasilis Vasaitis)) fonts.conf.in | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) commit 231051f41669095db4a2c5680a0945fb1ff45a2d Author: Tor Lillqvist Date: Sun Jun 15 22:57:21 2003 +0000 Remove CRs from the out file before comparing (needed on Windows). ChangeLog | 3 +++ test/run-test.sh | 1 + 2 files changed, 4 insertions(+) commit 92af858f2a7dcc972bf482397ac75d7e0ca38dd9 Author: Tor Lillqvist Date: Sun Jun 15 22:45:12 2003 +0000 Trivial braino. src/fccfg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c3941ba9c064d41f248c6a00f06423f3c50c685d Author: Tor Lillqvist Date: Sun Jun 15 22:35:52 2003 +0000 Fix cut&paste error. ChangeLog | 4 ++++ fontconfig-zip.in | 3 ++- src/Makefile.am | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) commit e5206dbcb34457ef69a993ad6b4cc8c3da53e1aa Author: Tor Lillqvist Date: Fri Jun 13 23:04:35 2003 +0000 Check also for DLL_EXPORT as indication of being built as a DLL on Win32. ChangeLog | 3 +++ src/fccfg.c | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) commit ee1d81259ec5b0b91cf19ea72abec29f5561217b Author: Tor Lillqvist Date: Fri Jun 13 22:43:28 2003 +0000 Add share/doc directory. Add Fc*.3 man pages. Set FC_DEFAULT_FONTS on Win32 to the WINDOWSFONTDIR token. Move the LIBRARY and VERSION lines to the end, not to confuse libtool, which expects the EXPORTS line to be the first. Add FcConfigEnableHome. ChangeLog | 12 ++++++++++++ configure.in | 12 +++++++++--- fontconfig-zip.in | 4 +++- src/fontconfig.def.in | 5 +++-- 4 files changed, 27 insertions(+), 6 deletions(-) commit 4ae7f71c89cd69d5273f82f03aadcb0c78b16c8d Author: Keith Packard Date: Mon Jun 9 19:21:06 2003 +0000 Update to version 2.2.90 ChangeLog | 4 ++++ configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) commit 8edb970e93f2dafc4fcd821df6240e807aa2ef8a Author: Keith Packard Date: Mon Jun 9 19:15:00 2003 +0000 Add a bunch of ChangeLog entries ChangeLog | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 78 insertions(+), 1 deletion(-) commit 440e7054857a9a6382243f33498b2384f246379d Author: Keith Packard Date: Mon Jun 9 18:49:19 2003 +0000 Add fc-match program to demonstrate font matching from the command line Makefile.am | 2 +- configure.in | 1 + fc-match/.cvsignore | 5 +++++ 3 files changed, 7 insertions(+), 1 deletion(-) commit 947afeb566e738de3980c8c8751358ecfebdba25 Author: Keith Packard Date: Mon Jun 9 17:31:03 2003 +0000 Optimization in FcLangSetIndex was broken, occasionally returning a pointer to the wrong location on miss src/fclang.c | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) commit 8bc4bc134aac8889125afd292e66c0bb9864d8d4 Author: Keith Packard Date: Mon Jun 9 16:53:31 2003 +0000 Add fc-match program fc-match/Makefile.am | 32 +++++++++ fc-match/fc-match.1 | 39 +++++++++++ fc-match/fc-match.c | 188 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 259 insertions(+) commit 6d3a90a41c63d479e3a109790a4ac466ee992478 Author: Keith Packard Date: Sat May 31 21:07:01 2003 +0000 (Bug 85) add support for culmus fonts fonts.conf.in | 39 +++++---------------------------------- 1 file changed, 5 insertions(+), 34 deletions(-) commit 86b1243193a1cbab3286ee97d2543bfc841a575a Author: Keith Packard Date: Sat May 31 14:58:41 2003 +0000 (Bug 87) Automake 1.4 doesn't do man_MAN1 correctly (Bug 88) Fix usage info on non-long option systems (Tim Mooney) ChangeLog | 4 ++++ fc-cache/Makefile.am | 4 ++-- fc-cache/fc-cache.1 | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ fc-cache/fc-cache.c | 19 ++++++++++++++++--- fc-cache/fc-cache.man | 45 --------------------------------------------- fc-list/Makefile.am | 4 ++-- fc-list/fc-list.1 | 37 +++++++++++++++++++++++++++++++++++++ fc-list/fc-list.c | 11 +++++++++++ fc-list/fc-list.man | 36 ------------------------------------ 9 files changed, 123 insertions(+), 88 deletions(-) commit d4d1e8bc604c98d647d70f9188744b95deba8723 Author: James Su Date: Wed May 28 01:34:38 2003 +0000 Fix "contains" op for strings and langsets. fontconfig/fontconfig.h | 6 +++ src/fccfg.c | 16 +++++--- src/fcstr.c | 103 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 119 insertions(+), 6 deletions(-) commit 53183e66e564c03401237f6fea873733ef326890 Author: Keith Packard Date: Sat May 17 02:17:19 2003 +0000 Fix build error with BDF prop local. Free langset after query src/fcfreetype.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) commit f777f1b35dc13da485ce488ad1d3b84f0c173cd1 Author: Keith Packard Date: Fri May 16 16:37:16 2003 +0000 oops. Left the psfontinfo.weight matching code commented out while testing other stuff... src/fcfreetype.c | 2 -- 1 file changed, 2 deletions(-) commit ecb7c180d068f718c02e80f4282b00c4505a5eb5 Author: Juliusz Chroboczek Date: Wed May 14 20:23:24 2003 +0000 Extract spacing from XLFD atom src/fcfreetype.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit 0b7a0da20b24321ef60aee99cd9071a50d78015b Author: Keith Packard Date: Mon May 12 20:48:59 2003 +0000 Use FcIsWidth to share code Set FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH when scanning fonts to avoid misclassifying some Han fonts as monospaced. src/fcfreetype.c | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-) commit 65d1441df89b898dd74ac1f0fba69c83441dba92 Author: Juliusz Chroboczek Date: Mon May 12 09:11:10 2003 +0000 Reinstate SETWIDTH_NAME parsing for legacy fonts, disappeared in 1.30. src/fcfreetype.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 0f362ad520e61e096c887f9374a485c3df32655a Author: Juliusz Chroboczek Date: Mon May 12 09:04:24 2003 +0000 Generate FC_SIZE and FC_DPI for legacy bitmap fonts src/fcfreetype.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) commit d47c9d6efec6c3c086efc187c68d79ca0c077dfa Author: Keith Packard Date: Wed May 7 16:13:24 2003 +0000 Add filename-based accept/reject to ammend available fonts. change FT_ENCODING_ADOBE_CUSTOM to ft_encoding_adobe_custom for older FreeType releases. src/fccache.c | 18 ++++++----- src/fccfg.c | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- src/fcdir.c | 60 ++++++++++++++++++++++++++--------- src/fcfreetype.c | 2 +- src/fcint.h | 40 +++++++++++++++++++++-- src/fcxml.c | 46 ++++++++++++++++++++++++++- 6 files changed, 232 insertions(+), 30 deletions(-) commit f98ecf63395fc62a6ee2a24741e09fb5940be3aa Author: Keith Packard Date: Tue May 6 14:26:34 2003 +0000 Remove 0b82 and Tamil numbers from tamil orthography (Jungshik Shin ) fc-lang/ta.orth | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 8ef6a58cb071396630cf05ec857f8c90524752f9 Author: Keith Packard Date: Sun May 4 22:58:29 2003 +0000 Add more .cvsignore entries .cvsignore | 1 + src/.cvsignore | 1 + 2 files changed, 2 insertions(+) commit 3018151753821434135c0c17873764f3283fcc50 Author: Keith Packard Date: Sun May 4 22:57:00 2003 +0000 Add more .cvsignore entries .cvsignore | 5 +++++ 1 file changed, 5 insertions(+) commit 7769c3213dc832f7643660d6aab5fade96cd57c3 Author: Keith Packard Date: Sun May 4 22:53:49 2003 +0000 Handle Adobe glyph names for fonts which include ADOBE_CUSTOM encodings Makefile.am | 2 +- configure.in | 1 + src/fcfreetype.c | 160 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- src/fcint.h | 10 ++++ 4 files changed, 170 insertions(+), 3 deletions(-) commit 83321a017a9586aa4f3ace022a91f69122c08ed8 Author: Keith Packard Date: Sun May 4 22:51:36 2003 +0000 Add .cvsignore in new fc-glyphname dir fc-glyphname/.cvsignore | 6 ++++++ 1 file changed, 6 insertions(+) commit 721d496d7864ff587f51637f578f4b35d501d091 Author: Keith Packard Date: Sun May 4 22:50:17 2003 +0000 Add fc-glyphname to compute hash tables for Adobe glyph name to UCS4 conversion functions fc-glyphname/Makefile.am | 42 + fc-glyphname/fc-glyphname.c | 287 +++ fc-glyphname/fcglyphname.tmpl.h | 25 + fc-glyphname/glyphlist.txt | 4291 +++++++++++++++++++++++++++++++++++++++ fc-glyphname/zapfdingbats.txt | 212 ++ 5 files changed, 4857 insertions(+) commit 11fec41c0e4211ca4cdcd0b63fb8ef8257e2bd0c Author: Keith Packard Date: Fri May 2 01:11:53 2003 +0000 Grub through style to find weight/slant/width values when other techniques fail src/fcfreetype.c | 228 +++++++++++++++++++++++++++++++++++++------------------ src/fcint.h | 6 ++ src/fcstr.c | 74 ++++++++++++++++++ 3 files changed, 233 insertions(+), 75 deletions(-) commit 1f71c4d878a74a42b6bf2e6137b32487fcb18b8d Author: Keith Packard Date: Fri May 2 01:11:09 2003 +0000 Add book constant for book weight src/fcname.c | 1 + 1 file changed, 1 insertion(+) commit ad293de0041230d530c5b3d2be56690db49e4510 Author: Keith Packard Date: Fri May 2 01:09:57 2003 +0000 Add FC_WEIGHT_BOOK as weight 75 fontconfig/fontconfig.h | 1 + 1 file changed, 1 insertion(+) commit a6a66da0adfc6c7899b61eb6531d14f794d25d94 Author: Noah Levitt Date: Thu May 1 16:20:27 2003 +0000 Fix expat function check. configure.in | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 700a41281a1712db29cc3b34aa293e9a4680c5c3 Author: Noah Levitt Date: Thu May 1 16:15:28 2003 +0000 Check for an expat function that won't be there if expat is too old. configure.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 3760a63825f931b7d5ef44b991c83f597b50f1a4 Author: Keith Packard Date: Thu May 1 14:31:04 2003 +0000 Add demi and book postscript weight names. Allow spaces in postscript and X matching src/fcfreetype.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 1af9b7b4d945b1f15ea5c2d9a20cfecef4f3e199 Author: Keith Packard Date: Wed Apr 30 15:17:42 2003 +0000 Typo in bitstream foundry name src/fcfreetype.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 70ee88099eac5cb5f75b392dc38ce16852f3b0bd Author: Keith Packard Date: Thu Apr 24 17:31:03 2003 +0000 Debug output for unknown ps weight names. ignore italic_angle for PS fonts as FreeType already checks that src/fcfreetype.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit f45d39b1fda93c949f4625a9fcee0c482b5cacd7 Author: Keith Packard Date: Thu Apr 24 15:29:33 2003 +0000 FcFontList broken when presented a charset - was comparing inclusion in the wrong direction src/fccfg.c | 8 ++++---- src/fccharset.c | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) commit 7d5c134a0a74b97438f3cdcc18ba44661d7253bf Author: Keith Packard Date: Wed Apr 23 04:45:39 2003 +0000 Oops. Missing newline in .cvsignore doc/.cvsignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8c87b4293fe27398d9c6500189a1f72741afdff3 Author: Keith Packard Date: Wed Apr 23 04:09:28 2003 +0000 Fix docs to close sgml tags ChangeLog | 8 ++++++++ doc/fcpattern.fncs | 1 + doc/fontconfig-devel.sgml | 1 + doc/func.sgml | 1 + 4 files changed, 11 insertions(+) commit c92926bf653425fff0291f1070cc7205e91810a0 Author: Keith Packard Date: Wed Apr 23 04:06:18 2003 +0000 Add confdir.sgml to .cvsignore doc/.cvsignore | 1 + 1 file changed, 1 insertion(+) commit f946755cdb0b0db08debc9f0ee1c2d4f62b484a1 Author: Keith Packard Date: Wed Apr 23 04:05:58 2003 +0000 Use CONFDIR instead of SYSCONFDIR/fonts in manual. Use awk to strip trailing newline instead of leaving CVS file without a newline (which will break at some point) doc/Makefile.am | 3 ++- doc/confdir.sgml.in | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) commit 8b290c54761ee020b0bc197c7ea06366e73be66c Author: Noah Levitt Date: Wed Apr 23 00:40:24 2003 +0000 Got rid of the newline at the end of the file. It's yucky but, I'm not sure how else to get rid of the newline in the output. doc/confdir.sgml.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4b4f42ab58714fda3214fcb4f3c9e566ebd25100 Author: Noah Levitt Date: Wed Apr 23 00:08:03 2003 +0000 Getting closer to fixing /etc/fonts hard-coding. configure.in | 1 - doc/Makefile.am | 4 ++++ doc/confdir.sgml.in | 25 +++++++++++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) commit 27de1f430a3d95c64bc989ae1c7bf1198d059b4c Author: Noah Levitt Date: Tue Apr 22 23:34:50 2003 +0000 Testing syncmail yet again. .cvsignore | 2 +- configure.in | 1 + doc/Makefile.am | 12 ++++++------ doc/fontconfig-user.sgml | 9 +++++---- 4 files changed, 13 insertions(+), 11 deletions(-) commit 993ffcdd0cb1ab956a456243241ae96eb2b398d1 Author: Keith Packard Date: Tue Apr 22 16:53:18 2003 +0000 Fix autogen.sh to work with newer automakes autogen.sh | 45 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 35 insertions(+), 10 deletions(-) commit 5f84b65a26073141e02152d3e5889fb7cfe459a2 Author: Keith Packard Date: Tue Apr 22 06:27:27 2003 +0000 Handle pattern elements moving during multiple edits src/fccfg.c | 8 ++++++++ 1 file changed, 8 insertions(+) commit 781f10486df22a422b92114ad438d4d8e74c9b93 Author: Keith Packard Date: Mon Apr 21 16:12:22 2003 +0000 Update to version 2.2.0 configure.in | 2 +- fontconfig/fontconfig.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 8eb4a52ed8ec96efb784a9cab5a21ba20b27733a Author: Noah Levitt Date: Mon Apr 21 06:17:23 2003 +0000 Fixed variable name mistake. configure.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 965f77940cbe9743f0f57f8333c49708d3f3dd8c Author: Keith Packard Date: Sun Apr 20 04:44:09 2003 +0000 From James Su -- only part of page 0xff is Latin src/fcfreetype.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 29d961a28e231302683577328ed4724319805a7f Author: Keith Packard Date: Fri Apr 18 15:56:05 2003 +0000 Guard calls to FT_Get_BDF_Property to avoid freetype jumping through null pointer src/fcfreetype.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) commit 3a30abdb84ff973be86d4f75ee2fd54099f32ef1 Author: Keith Packard Date: Thu Apr 17 21:50:24 2003 +0000 Pass FONTCONFIG_PATH in arguments to get expanded src/Makefile.am | 1 + src/fccfg.c | 4 ---- 2 files changed, 1 insertion(+), 4 deletions(-) commit 2b2f2a714a6aa5a3fe451f44f85afc67ac921e36 Author: Keith Packard Date: Thu Apr 17 21:29:12 2003 +0000 BDF properties not available until FreeType 2.1.4 src/fcfreetype.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 12d49d3cf48a145189af5e27d88bdf4858d5c2b6 Author: Colin Walters Date: Thu Apr 17 17:43:04 2003 +0000 Remove some unused variables, and initialize some other ones so gcc doesn't warn us. ChangeLog | 5 +++++ doc/edit-sgml.c | 1 + src/fclang.c | 6 ++---- 3 files changed, 8 insertions(+), 4 deletions(-) commit 996580dce5cd74dfdfe18c9f20e0a27817e5ed1b Author: Keith Packard Date: Thu Apr 17 15:47:34 2003 +0000 Solaris porting fixes configure.in | 4 ++-- fc-lang/fc-lang.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit b1e98ed99ead0a4c34ebf2554ea6076bebf621a4 Author: Keith Packard Date: Wed Apr 16 22:04:42 2003 +0000 Add Vera support to default configuration fonts.conf.in | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) commit e2925d7dc2877fba2112eb3de9853f3e889362c3 Author: Keith Packard Date: Wed Apr 16 21:50:51 2003 +0000 bump version to 2.1.94 configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit ab06f005f66e12b46a5f1274eafa992be20a1f72 Author: Keith Packard Date: Wed Apr 16 18:49:28 2003 +0000 add some changelog entries ChangeLog | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 0e7a434783b28e9e954d3136195af7ba622c459d Author: Keith Packard Date: Wed Apr 16 18:08:47 2003 +0000 Search through the BDF properties for width and foundry information src/fcfreetype.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 75 insertions(+), 1 deletion(-) commit 2e2121f910dd84b0731985570d93cd31ae2edb61 Author: Keith Packard Date: Wed Apr 16 16:19:38 2003 +0000 Move foundry detection data into fcfreetype.c (which is getting rather large at this point) src/Makefile.am | 2 +- src/data.h | 77 ------------------------ src/fcfreetype.c | 177 ++++++++++++++++++++++++++++++++++++++++++------------- 3 files changed, 137 insertions(+), 119 deletions(-) commit 4515cf329ea6f5f4ddbfdee3bc275ba7b768330c Author: Keith Packard Date: Wed Apr 16 16:18:27 2003 +0000 bool was misdeclared in DTD fonts.dtd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3f7653c2badeb426f938bafe1a82c2917b7ea125 Author: Keith Packard Date: Tue Apr 15 23:38:06 2003 +0000 Fix unary operator parsing. Add floor, ceil, trunc and round unary operators fontconfig/fontconfig.h | 2 + fonts.dtd | 6 ++- src/Makefile.am | 2 +- src/fccfg.c | 71 ++++++++++++++++++++++++++++++++ src/fcdbg.c | 20 +++++++++ src/fcint.h | 3 +- src/fcxml.c | 107 ++++++++++++++++++++++++++++++++++++++---------- 7 files changed, 187 insertions(+), 24 deletions(-) commit 52253696cd2779bd9040457fbd157bbe75895ed6 Author: Keith Packard Date: Tue Apr 15 17:01:39 2003 +0000 Clean up ps font weight matching and check for NULL src/fcfreetype.c | 59 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 31 insertions(+), 28 deletions(-) commit 2ae95e77f7d50d65ca414a5d5a1065aa9f2581ed Author: Juliusz Chroboczek Date: Fri Apr 11 23:45:59 2003 +0000 Implemented foundry generation for Type 1 and TrueType src/data.h | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/fcfreetype.c | 73 +++++++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 145 insertions(+), 5 deletions(-) commit 0a557ec372a7dddede4edec3ac77caf328fd12f5 Author: Keith Packard Date: Fri Apr 11 23:00:51 2003 +0000 update version number to 2.1.93 configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 7f31f3781597e035b8432e0ce1c2894835b4988a Author: Keith Packard Date: Fri Apr 11 22:53:53 2003 +0000 Run fc-cache from local dir instead of install dir to help LFS installs (I hope) Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9f2bcb3e41f30dde64a288a4741ff169f8848dad Author: Keith Packard Date: Fri Apr 11 22:24:23 2003 +0000 Switch to locale-independent string compare function src/fcfreetype.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) commit d6ea834746a7b2758ea5b89467c0e64446840ca4 Author: Keith Packard Date: Fri Apr 11 22:17:11 2003 +0000 Bug #46, #47 fontconfig should retrieve type 1 font information from FontInfo dictionary Patch provided by g2@magestudios.net (Gerard Escalante) src/fcfreetype.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) commit cc30f9ca548661d0d9eb07216d261457db58ca02 Author: Keith Packard Date: Tue Apr 8 05:00:25 2003 +0000 remove -u option to docbook2man which was trashing the .html file doc/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8c8caabdf008f4673bb1d5543ef1e49b02a5c2e9 Author: Colin Walters Date: Tue Apr 8 03:58:57 2003 +0000 *** empty log message *** ChangeLog | 5 +++++ 1 file changed, 5 insertions(+) commit 15b49a7fbeafa69e0cc02d691a5794f9d3da4b69 Author: Colin Walters Date: Tue Apr 8 03:58:08 2003 +0000 Fix dummy makefile target names when MS_LIB_AVAILABLE isn't set. src/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit ef82cce1d5d6c6a700db4bb2218f47db85bf548d Author: Keith Packard Date: Fri Apr 4 20:17:40 2003 +0000 update copyright years COPYING | 2 +- fonts.conf.in | 15 ++------------- local.conf | 9 +++++++++ 3 files changed, 12 insertions(+), 14 deletions(-) commit 08b5b70dcf04ce61fb505487b774a3731b04e5c1 Author: Keith Packard Date: Fri Apr 4 20:16:33 2003 +0000 Move sample subpixel configuration to local.conf config/Makedefs.in | 4 ++-- config/install.sh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) commit 848d32bd3f141f0c14abfec38d4cf27eedd1f0a5 Author: Keith Packard Date: Fri Mar 28 17:08:35 2003 +0000 Set spacing to mono if every encoded glyph is the same width fontconfig/fcfreetype.h | 3 +++ src/fcfreetype.c | 46 +++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 44 insertions(+), 5 deletions(-) commit 7dbeec17388af7d41312cd201bb25306ba1e4bc6 Author: Keith Packard Date: Mon Mar 24 05:03:20 2003 +0000 Wrong pattern for matching font file names. Fix submitted by hjchoe@hancom.com (Choe Hwanjin) configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c8582ff72ade8522d545d117641e4afac61382a0 Author: Tor Lillqvist Date: Sat Mar 22 21:28:13 2003 +0000 Changes for Windows: Add a fontconfig-zip(.in) script, used to build a binary distribution. fontconfig-zip.in | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit daeed6e048a413a94754fd79f62307ca9be80a43 Author: Tor Lillqvist Date: Sat Mar 22 21:25:34 2003 +0000 Changes for Windows: On Windows with gcc (a.k.a. mingw) build as a DLL. We don't want to hardcode the fonts.conf file location in the DLL, so we look up the DLL location at run-time in a DllMain() function. The fonts.conf location is deduced from that. The colon can't be used as path separator on Windows, semicolon is used instead. File path components can be separated with either slash or backslash. Absolute paths can also begin with a drive letter. Add internal function FcStrLastSlash that strrchr's the last slash, or backslash on Windows. There is no link() on Windows. For atomicity checks, mkdir a lock directory instead. In addition to HOME, also look for USERPROFILE. Recognize the special font directory token WINDOWSFONTDIR, to use the system's font directory. Remove the fontconfig-def.cpp that was obsolete. Add fontconfig.def(.in), without internal functions. Add a fontconfig-zip(.in) script, used to build a binary distribution. ChangeLog | 32 ++++++++++ Makefile.am | 3 +- configure.in | 28 +++++++- fc-lang/fc-lang.man | 6 +- src/Makefile.am | 55 +++++++++++++++- src/fcatomic.c | 23 ++++++- src/fccache.c | 21 +++++- src/fccfg.c | 90 ++++++++++++++++++++++++-- src/fcint.h | 9 +++ src/fcstr.c | 23 ++++++- src/fcxml.c | 30 +++++++++ src/fontconfig-def.cpp | 170 ------------------------------------------------- src/fontconfig.def.in | 161 ++++++++++++++++++++++++++++++++++++++++++++++ 13 files changed, 464 insertions(+), 187 deletions(-) commit cc9dd09816f717fc678d097a69f793dca1b1eef0 Author: Keith Packard Date: Sat Mar 22 01:55:00 2003 +0000 switch // comment src/fclang.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ddde1797a900b818b96fc0818d9df0efacb5ac69 Author: Keith Packard Date: Thu Mar 20 02:01:01 2003 +0000 strtod under some locales requires digits before the decimal doc/fontconfig-user.sgml | 8 ++++++-- fonts.conf.in | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) commit f4007a672834df25f0f9b6a918c135d2b79a3784 Author: Keith Packard Date: Thu Mar 20 02:00:15 2003 +0000 Avoid crashing on empty test/edit lists src/fccfg.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 3fbd50e48679c15c24400aaa78c6cd266317a784 Author: Keith Packard Date: Thu Mar 20 01:59:28 2003 +0000 bogus libtoolize --version | libtoolize --version autogen.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1b16ef20c9c7dd5c3e861a392e886cbe6c046306 Author: Keith Packard Date: Tue Mar 18 08:03:42 2003 +0000 FcCharSetIsSubset errored on fonts with subsets in early blocks and extra blocks not present in the second argument src/fccharset.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3910f3221b5276523ff1e6fea10aecabfa427f0a Author: Keith Packard Date: Fri Mar 14 00:16:56 2003 +0000 Fix configure arguments (bug 45) configure.in | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 81fa16c3366a701255f4e52cdfd716dd06253748 Author: Keith Packard Date: Wed Mar 12 22:16:43 2003 +0000 add font widths and extend weight from OS/2 table fontconfig/fontconfig.h | 44 ++++++++++++++++++++++++++++------------ src/fcdefault.c | 3 +++ src/fcfreetype.c | 54 ++++++++++++++++++++++++++++++++++++++++++++----- src/fcmatch.c | 29 +++++++++++++++++--------- src/fcname.c | 18 +++++++++++++++++ 5 files changed, 120 insertions(+), 28 deletions(-) commit a8386abc916c6ce4b0fa0ca3f9f68aa0232d4824 Author: Keith Packard Date: Wed Mar 12 22:15:39 2003 +0000 Global cache time checking was using wrong file name and computing wrong count of fonts per file src/fccache.c | 10 +++++----- src/fcdir.c | 8 ++++++-- src/fcint.h | 2 +- 3 files changed, 12 insertions(+), 8 deletions(-) commit 89b61da31f88713074fdb396604cd3d8fe7e5ded Author: Keith Packard Date: Mon Mar 10 06:56:32 2003 +0000 Ship manual fc-list/Makefile.am | 2 ++ 1 file changed, 2 insertions(+) commit dbe9a11ea4a1ff2b044f3e24a3ef9de27370a033 Author: Mike A. Harris Date: Sat Mar 8 01:03:32 2003 +0000 Updated RPM specfile for 2.1.92 and fixed remaining known spec file issues ChangeLog | 8 ++++++++ fontconfig.spec.in | 19 +++++++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) commit 6348213702153f1097c648ae575bcc89dbb259dc Author: Keith Packard Date: Fri Mar 7 21:04:52 2003 +0000 Bump version to 2.1.92 configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit dcd1f27185958b000f12e0390970c925f4386598 Author: Keith Packard Date: Fri Mar 7 20:51:17 2003 +0000 add version.sgml to .cvsignore doc/.cvsignore | 1 + 1 file changed, 1 insertion(+) commit ae2c2943648313b41f2d032b72618d11ffdd1772 Author: Keith Packard Date: Fri Mar 7 20:50:44 2003 +0000 Add version number to user doc doc/fontconfig-user.sgml | 27 +++++++++++++++++---------- doc/func.sgml | 1 + 2 files changed, 18 insertions(+), 10 deletions(-) commit fddb839bba56f5d0ac9e2bd71323d2cc488155b8 Author: Keith Packard Date: Fri Mar 7 20:45:43 2003 +0000 Add version number to documentation configure.in | 1 + doc/fontconfig-devel.sgml | 13 +++---------- doc/func.sgml | 4 ++++ doc/version.sgml.in | 24 ++++++++++++++++++++++++ 4 files changed, 32 insertions(+), 10 deletions(-) commit 4484582ebaaaea4982248a6141d87d488ef322bd Author: Keith Packard Date: Fri Mar 7 20:45:20 2003 +0000 wasnt rebuilding most of the docs doc/Makefile.am | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) commit 8cfb37394cb80cc7b11133090c99dc1ce31f2695 Author: Keith Packard Date: Fri Mar 7 20:04:13 2003 +0000 distribute man page fc-cache/Makefile.am | 2 ++ 1 file changed, 2 insertions(+) commit ea3ebacfb8c729fd6fbfb55d27bd3ef43cd4afec Author: Keith Packard Date: Fri Mar 7 20:03:53 2003 +0000 note that default mandir is usually wrong INSTALL | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bdc0fd54344cd161f1507aa53f3d676569d63f08 Author: Keith Packard Date: Fri Mar 7 20:03:23 2003 +0000 get manuals to install with automake-1.4 doc/Makefile.am | 44 +++++++++++++++++++++----------------------- 1 file changed, 21 insertions(+), 23 deletions(-) commit 164301051d714b39e2a5b5d72cab2ca7ecb9e57a Author: Keith Packard Date: Fri Mar 7 19:41:34 2003 +0000 Create fontconfig-user.html doc/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 251c36c1b311515aae0fff1ab9d80e2843e3f426 Author: Keith Packard Date: Fri Mar 7 19:39:57 2003 +0000 Add more to .cvsignore doc/.cvsignore | 9 +++++++++ 1 file changed, 9 insertions(+) commit b219ac6b99672506965f3c2168e2af1cd58d28e7 Author: Keith Packard Date: Fri Mar 7 19:37:16 2003 +0000 Make documentation build doc/Makefile.am | 172 +++++++++++++++++++++++++++-------------------- doc/edit-sgml.c | 2 +- doc/fontconfig-user.sgml | 2 +- 3 files changed, 102 insertions(+), 74 deletions(-) commit 39381776a4c0cf4077a31f3a493cbd37420cec71 Author: Keith Packard Date: Fri Mar 7 19:01:41 2003 +0000 Finish reformatting developer documentation doc/Makefile.am | 16 +- doc/edit-sgml.c | 17 +- doc/fcatomic.fncs | 93 +++++++++ doc/fcconfig.fncs | 153 ++++++++------- doc/fcfile.fncs | 78 ++++++++ doc/fcfreetype.fncs | 69 +++++++ doc/fcinit.fncs | 78 ++++++++ doc/fcstring.fncs | 150 +++++++++++++++ doc/fcstrset.fncs | 104 ++++++++++ doc/fontconfig-devel.sgml | 475 +++++++++++----------------------------------- 10 files changed, 795 insertions(+), 438 deletions(-) commit 90bdcf6051472443690294e04df1ea1f5d0d1d19 Author: Keith Packard Date: Fri Mar 7 08:52:27 2003 +0000 Add copyright doc/func.sgml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit 2df0c66230fb86a784414b5db803d32d1a083b3a Author: Keith Packard Date: Fri Mar 7 08:51:14 2003 +0000 Use tags. Add copyrights doc/fcconfig.fncs | 46 +++++++++++++++++++++++----------------------- doc/fcconstant.fncs | 10 +++++----- doc/fcobjecttype.fncs | 6 +++--- doc/fcpattern.fncs | 14 +++++++------- doc/fcvalue.fncs | 4 ++-- 5 files changed, 40 insertions(+), 40 deletions(-) commit bfc2dc3ac4b1eb5f0f9f0dfae7abac7e77e28061 Author: Keith Packard Date: Fri Mar 7 08:44:32 2003 +0000 Add lots more function documentation doc/Makefile.am | 16 ++- doc/fcblanks.fncs | 58 +++++++++ doc/fccharset.fncs | 23 ++++ doc/fcconfig.fncs | 279 +++++++++++++++++++++++++++++++++++++++++++ doc/fcconstant.fncs | 58 +++++++++ doc/fcfontset.fncs | 49 ++++++++ doc/fcmatrix.fncs | 23 ++++ doc/fcobjectset.fncs | 61 ++++++++++ doc/fcobjecttype.fncs | 48 ++++++++ doc/fcpattern.fncs | 23 ++++ doc/fcvalue.fncs | 23 ++++ doc/fontconfig-devel.sgml | 292 +++------------------------------------------- 12 files changed, 677 insertions(+), 276 deletions(-) commit 22671e25510e77af1a8f2b569314ba2de1c93353 Author: Keith Packard Date: Fri Mar 7 07:12:51 2003 +0000 Rework documentation to build man pages for each function doc/Makefile.am | 84 ++- doc/fccharset.fncs | 144 +++++ doc/fcmatrix.fncs | 100 ++++ doc/fcpattern.fncs | 287 ++++++++++ doc/fcvalue.fncs | 17 + doc/fontconfig-devel.sgml | 1355 ++++++++++++++++++--------------------------- doc/fontconfig-user.sgml | 396 ++++++------- doc/func.sgml | 61 ++ 8 files changed, 1411 insertions(+), 1033 deletions(-) commit 5e1f56b567c0226da9ab650ee4809e16be2ae8eb Author: Keith Packard Date: Fri Mar 7 06:17:36 2003 +0000 Add func doc creation program edit-sgml doc/edit-sgml.c | 426 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 426 insertions(+) commit c92abf78e12502e1d93281e2d4b1404226a6c6b9 Author: Mike A. Harris Date: Wed Mar 5 10:09:57 2003 +0000 Update Changelog ChangeLog | 7 +++++++ 1 file changed, 7 insertions(+) commit a5ae222c2a5f578dff011f11dadb78ecf0734cbb Author: Mike A. Harris Date: Wed Mar 5 10:08:08 2003 +0000 Added back the configure macro options --disable-docs because otherwise fontconfig installs docs into /usr/share/doc/fontconfig (with no version number) unconditionally, causing RPM to fail the build due to _unpackaged_files_terminate_build. We pick up the pregenerated docs with %doc already. fontconfig.spec.in | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit b06766e439ce49f2d50aba7ab812fa0ebb6549e1 Author: Mike A. Harris Date: Wed Mar 5 09:28:08 2003 +0000 Updated rpm specfile changelog and Changelog to reflect today's changes ChangeLog | 13 ++++++++++++- fontconfig.spec.in | 9 ++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) commit fc87206f77a4c1b11c990a6ea4b0d3d4cd5208df Author: Mike A. Harris Date: Wed Mar 5 09:16:37 2003 +0000 Reordered %files lists to be a bit tidier. Made -devel package own the %{_includedir}/fontconfig directory fontconfig.spec.in | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit c674c89bf919fa7f357319a7ce825ba5369ff737 Author: Mike A. Harris Date: Wed Mar 5 09:14:06 2003 +0000 Put %post script in {}'s for tidyness, and change the call to fc-cache to use %{_bindir}/fc-cache fontconfig.spec.in | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 5283328a6006420cb3382c0dbef55f715996b91c Author: Mike A. Harris Date: Wed Mar 5 09:10:14 2003 +0000 Changed BuildRequires: lines to use %{_bindir} macro instead of hard coded /usr/bin fontconfig.spec.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 674c09dfbfc3d6d3a014ac018995530159fc157f Author: Mike A. Harris Date: Wed Mar 5 09:08:41 2003 +0000 Replace commented out %define at top of specfile with a comment preceding the freetype2 define, since rpm expands macros in comments. Also remove -j flag from make, as _smp_mflags expands to -jN already. fontconfig.spec.in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit d30f481c4d182db3873fc9caf0e191da3c4955ef Author: Keith Packard Date: Wed Mar 5 07:45:37 2003 +0000 switch vesion to version fontconfig.spec.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d93fb00e8dd757fbdaafd4dd36509c33b7827eb5 Author: Keith Packard Date: Wed Mar 5 06:09:36 2003 +0000 optimize string compares even more src/fcstr.c | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) commit dc1de232a694c9c431604e701e8f617978a00e0a Author: Keith Packard Date: Wed Mar 5 06:09:14 2003 +0000 Use VERSION in fontconfig.pc.in fontconfig.pc.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 83e42969fcd183d99b279cf1e15b6126ce2428eb Author: Keith Packard Date: Wed Mar 5 05:57:11 2003 +0000 No longer using config directory configure.in | 2 -- 1 file changed, 2 deletions(-) commit 94421e4097d84b50fc2da285b57fb00da3592796 Author: Keith Packard Date: Wed Mar 5 05:53:10 2003 +0000 use FcToLower instead of tolower src/fcname.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) commit 55ef7dac64d9202217c6f42e53ddf1549c2da385 Author: Keith Packard Date: Wed Mar 5 05:52:51 2003 +0000 Add FcLangSetPrint src/fcdbg.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) commit 793e946c2f90b5617ec39c64679630b4e2f2d3ad Author: Keith Packard Date: Wed Mar 5 05:52:31 2003 +0000 AddFcLangSetContains for font listing, add first-letter table for language lookups, change RCS tag src/fccfg.c | 8 +-- src/fcint.h | 7 +- src/fclang.c | 231 ++++++++++++++++++++++++++++++++++++++++++++++++++++------- src/fclist.c | 6 +- 4 files changed, 219 insertions(+), 33 deletions(-) commit 4bd4418ab5e7450e1c1fd3cd136098f1bf37a80c Author: Keith Packard Date: Wed Mar 5 05:51:27 2003 +0000 Change RCS tag fc-cache/fc-cache.c | 4 ++-- fc-cache/fc-cache.man | 4 ++-- fc-list/fc-list.c | 4 ++-- fc-list/fc-list.man | 4 ++-- src/fcatomic.c | 4 ++-- src/fcblanks.c | 4 ++-- src/fccache.c | 4 ++-- src/fccharset.c | 4 ++-- src/fcdefault.c | 4 ++-- src/fcdir.c | 4 ++-- src/fcfreetype.c | 4 ++-- src/fcfs.c | 4 ++-- src/fcinit.c | 4 ++-- src/fcmatch.c | 4 ++-- src/fcmatrix.c | 2 +- src/fcpat.c | 4 ++-- src/fcstr.c | 4 ++-- src/fcxml.c | 4 ++-- src/fontconfig-def.cpp | 2 +- 19 files changed, 36 insertions(+), 36 deletions(-) commit 0eadb052fb31ad99d77d1997108d316c64d939b8 Author: Keith Packard Date: Wed Mar 5 05:48:53 2003 +0000 Add letter ranges to speed lang lookups, change CVS tag fc-lang/fc-lang.c | 38 ++++++++++++++++++++++++++++++++++++-- fc-lang/fc-lang.man | 4 ++-- fc-lang/fclang.tmpl.h | 4 ++-- 3 files changed, 40 insertions(+), 6 deletions(-) commit 4c2967f6267b01022c4f3651dcc0072a225f4b01 Author: Keith Packard Date: Wed Mar 5 05:48:15 2003 +0000 Change RCS tag, add FcLangSetContains fontconfig/fcfreetype.h | 4 ++-- fontconfig/fcprivate.h | 4 ++-- fontconfig/fontconfig.h | 11 ++++++++--- 3 files changed, 12 insertions(+), 7 deletions(-) commit 0b5c5dd1bed55e32c551c85bce87b511236111b6 Author: Keith Packard Date: Wed Mar 5 04:26:06 2003 +0000 Switch RCS tag label fc-lang/aa.orth | 4 ++-- fc-lang/ab.orth | 4 ++-- fc-lang/af.orth | 4 ++-- fc-lang/am.orth | 4 ++-- fc-lang/ar.orth | 4 ++-- fc-lang/ast.orth | 4 ++-- fc-lang/ava.orth | 4 ++-- fc-lang/ay.orth | 4 ++-- fc-lang/az.orth | 4 ++-- fc-lang/ba.orth | 4 ++-- fc-lang/bam.orth | 4 ++-- fc-lang/be.orth | 4 ++-- fc-lang/bg.orth | 4 ++-- fc-lang/bh.orth | 4 ++-- fc-lang/bho.orth | 4 ++-- fc-lang/bi.orth | 4 ++-- fc-lang/bin.orth | 4 ++-- fc-lang/bn.orth | 4 ++-- fc-lang/bo.orth | 4 ++-- fc-lang/br.orth | 4 ++-- fc-lang/bs.orth | 4 ++-- fc-lang/bua.orth | 4 ++-- fc-lang/ca.orth | 4 ++-- fc-lang/ce.orth | 4 ++-- fc-lang/ch.orth | 4 ++-- fc-lang/chm.orth | 4 ++-- fc-lang/chr.orth | 4 ++-- fc-lang/co.orth | 4 ++-- fc-lang/cs.orth | 4 ++-- fc-lang/cu.orth | 4 ++-- fc-lang/cv.orth | 4 ++-- fc-lang/cy.orth | 4 ++-- fc-lang/da.orth | 4 ++-- fc-lang/de.orth | 4 ++-- fc-lang/dz.orth | 4 ++-- fc-lang/el.orth | 4 ++-- fc-lang/en.orth | 4 ++-- fc-lang/eo.orth | 4 ++-- fc-lang/es.orth | 4 ++-- fc-lang/et.orth | 4 ++-- fc-lang/eu.orth | 4 ++-- fc-lang/fa.orth | 4 ++-- fc-lang/fi.orth | 4 ++-- fc-lang/fj.orth | 4 ++-- fc-lang/fo.orth | 4 ++-- fc-lang/fr.orth | 4 ++-- fc-lang/ful.orth | 4 ++-- fc-lang/fur.orth | 4 ++-- fc-lang/fy.orth | 4 ++-- fc-lang/ga.orth | 4 ++-- fc-lang/gd.orth | 4 ++-- fc-lang/gez.orth | 4 ++-- fc-lang/gl.orth | 4 ++-- fc-lang/gn.orth | 4 ++-- fc-lang/gu.orth | 4 ++-- fc-lang/gv.orth | 4 ++-- fc-lang/ha.orth | 4 ++-- fc-lang/haw.orth | 4 ++-- fc-lang/he.orth | 4 ++-- fc-lang/hi.orth | 4 ++-- fc-lang/ho.orth | 4 ++-- fc-lang/hr.orth | 4 ++-- fc-lang/hu.orth | 4 ++-- fc-lang/hy.orth | 4 ++-- fc-lang/ia.orth | 4 ++-- fc-lang/ibo.orth | 4 ++-- fc-lang/id.orth | 4 ++-- fc-lang/ie.orth | 4 ++-- fc-lang/ik.orth | 4 ++-- fc-lang/io.orth | 4 ++-- fc-lang/is.orth | 4 ++-- fc-lang/it.orth | 4 ++-- fc-lang/iu.orth | 4 ++-- fc-lang/ja.orth | 4 ++-- fc-lang/ka.orth | 4 ++-- fc-lang/kaa.orth | 4 ++-- fc-lang/ki.orth | 4 ++-- fc-lang/kk.orth | 4 ++-- fc-lang/kl.orth | 4 ++-- fc-lang/km.orth | 4 ++-- fc-lang/kn.orth | 4 ++-- fc-lang/ko.orth | 4 ++-- fc-lang/kok.orth | 4 ++-- fc-lang/ks.orth | 4 ++-- fc-lang/ku.orth | 4 ++-- fc-lang/kum.orth | 4 ++-- fc-lang/kv.orth | 4 ++-- fc-lang/kw.orth | 4 ++-- fc-lang/ky.orth | 4 ++-- fc-lang/la.orth | 4 ++-- fc-lang/lb.orth | 4 ++-- fc-lang/lez.orth | 4 ++-- fc-lang/lo.orth | 4 ++-- fc-lang/lt.orth | 4 ++-- fc-lang/lv.orth | 4 ++-- fc-lang/mg.orth | 4 ++-- fc-lang/mh.orth | 4 ++-- fc-lang/mi.orth | 4 ++-- fc-lang/mk.orth | 4 ++-- fc-lang/ml.orth | 4 ++-- fc-lang/mn.orth | 4 ++-- fc-lang/mo.orth | 4 ++-- fc-lang/mr.orth | 4 ++-- fc-lang/mt.orth | 4 ++-- fc-lang/my.orth | 4 ++-- fc-lang/nb.orth | 4 ++-- fc-lang/ne.orth | 4 ++-- fc-lang/nl.orth | 4 ++-- fc-lang/nn.orth | 4 ++-- fc-lang/no.orth | 4 ++-- fc-lang/ny.orth | 4 ++-- fc-lang/oc.orth | 4 ++-- fc-lang/om.orth | 4 ++-- fc-lang/or.orth | 4 ++-- fc-lang/os.orth | 4 ++-- fc-lang/pl.orth | 4 ++-- fc-lang/pt.orth | 4 ++-- fc-lang/rm.orth | 4 ++-- fc-lang/ro.orth | 4 ++-- fc-lang/ru.orth | 4 ++-- fc-lang/sa.orth | 4 ++-- fc-lang/sah.orth | 4 ++-- fc-lang/sco.orth | 4 ++-- fc-lang/se.orth | 4 ++-- fc-lang/sel.orth | 4 ++-- fc-lang/sh.orth | 4 ++-- fc-lang/si.orth | 4 ++-- fc-lang/sk.orth | 4 ++-- fc-lang/sl.orth | 4 ++-- fc-lang/sm.orth | 4 ++-- fc-lang/sma.orth | 4 ++-- fc-lang/smj.orth | 4 ++-- fc-lang/smn.orth | 4 ++-- fc-lang/sms.orth | 4 ++-- fc-lang/so.orth | 4 ++-- fc-lang/sq.orth | 4 ++-- fc-lang/sr.orth | 4 ++-- fc-lang/sv.orth | 4 ++-- fc-lang/sw.orth | 4 ++-- fc-lang/syr.orth | 4 ++-- fc-lang/ta.orth | 4 ++-- fc-lang/te.orth | 4 ++-- fc-lang/tg.orth | 4 ++-- fc-lang/th.orth | 4 ++-- fc-lang/ti_er.orth | 4 ++-- fc-lang/ti_et.orth | 4 ++-- fc-lang/tig.orth | 4 ++-- fc-lang/tk.orth | 4 ++-- fc-lang/tl.orth | 4 ++-- fc-lang/tn.orth | 4 ++-- fc-lang/to.orth | 4 ++-- fc-lang/tr.orth | 4 ++-- fc-lang/ts.orth | 4 ++-- fc-lang/tt.orth | 4 ++-- fc-lang/tw.orth | 4 ++-- fc-lang/tyv.orth | 4 ++-- fc-lang/ug.orth | 4 ++-- fc-lang/uk.orth | 4 ++-- fc-lang/ur.orth | 4 ++-- fc-lang/uz.orth | 4 ++-- fc-lang/ven.orth | 4 ++-- fc-lang/vi.orth | 4 ++-- fc-lang/vo.orth | 4 ++-- fc-lang/vot.orth | 4 ++-- fc-lang/wa.orth | 4 ++-- fc-lang/wen.orth | 4 ++-- fc-lang/wo.orth | 4 ++-- fc-lang/xh.orth | 4 ++-- fc-lang/yap.orth | 4 ++-- fc-lang/yi.orth | 4 ++-- fc-lang/yo.orth | 4 ++-- fc-lang/zh_cn.orth | 4 ++-- fc-lang/zh_hk.orth | 4 ++-- fc-lang/zh_mo.orth | 4 ++-- fc-lang/zh_sg.orth | 4 ++-- fc-lang/zh_tw.orth | 4 ++-- fc-lang/zu.orth | 4 ++-- 177 files changed, 354 insertions(+), 354 deletions(-) commit 7b94ae21fc4c2514b5f14942e432252a2acc33ab Author: Keith Packard Date: Tue Mar 4 00:19:09 2003 +0000 Add .cvsignore doc/.cvsignore | 4 ++++ 1 file changed, 4 insertions(+) commit af82b48c2b8c2037020d928aced582dedd06d8d9 Author: Keith Packard Date: Tue Mar 4 00:14:58 2003 +0000 Allow multiple directories in --with-add-fonts, by default add only scalable fonts from X directory configure.in | 48 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 16 deletions(-) commit bb7743ae7e218ecef31f3023b281939b02967552 Author: Keith Packard Date: Mon Mar 3 05:47:14 2003 +0000 Update version to 2.1.91 configure.in | 2 +- fontconfig/fontconfig.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 22dc6fc6dbae50d6ee2db17a88b5c6e4b3ac30be Author: Owen Taylor Date: Mon Mar 3 01:13:11 2003 +0000 Sun Mar 2 14:16:17 2003 Owen Taylor fontconfig.spec.in: Improvements from Red Hat spec file. {fc-lang,fc-cache,fc-list}/Makefile.am: Add man pages. docs/*.sgml: SGML fixes. ChangeLog | 8 ++ doc/fontconfig-devel.sgml | 237 +++++++++++++++++++++++----------------------- doc/fontconfig-user.sgml | 8 +- fc-cache/Makefile.am | 2 + fc-lang/Makefile.am | 2 + fc-list/Makefile.am | 2 + fontconfig.spec.in | 86 +++++++++-------- 7 files changed, 191 insertions(+), 154 deletions(-) commit ee170116da7cbd6e03a4de61c455d717183f46d7 Author: Keith Packard Date: Sun Mar 2 19:13:00 2003 +0000 Ignore dist files .cvsignore | 1 + 1 file changed, 1 insertion(+) commit ff3f1f98ed240a4cde511cace7acd09d40548656 Author: Keith Packard Date: Sun Mar 2 19:12:23 2003 +0000 Switch back to -version-info for fontconfig as its at minor 0. Add --system-only to fc-cache. Fix FC_VERSION to match product version rather than .so version Makefile.am | 1 - configure.in | 23 +- fc-cache/fc-cache.c | 8 + fc-lang/fc-lang.c | 6 + fontconfig/fontconfig.h | 16 +- ltmain.sh | 6192 ----------------------------------------------- src/Makefile.am | 2 +- src/fccfg.c | 25 +- src/fcint.h | 3 + src/fcstr.c | 8 +- src/fcxml.c | 14 +- 11 files changed, 79 insertions(+), 6219 deletions(-) commit bf0093b72487bd463b9c7700902cd8765534c9c1 Author: Keith Packard Date: Sun Mar 2 08:46:04 2003 +0000 oops -- X fonts referenced from the wrong place configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ad9b233c98d4da08178503f6db9a43708e2a7df0 Author: Keith Packard Date: Sun Mar 2 08:00:24 2003 +0000 Make default confdir point to sysconfdir configure.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 181f614a96ec1e06c2b9cd9fcbfc304622d6fd18 Author: Keith Packard Date: Sun Mar 2 07:36:08 2003 +0000 Add ltmain.sh to the package Makefile.am | 1 + 1 file changed, 1 insertion(+) commit 8fc10a72ad856216b87daa91a1d52fde70af35dc Author: Keith Packard Date: Sun Mar 2 07:28:24 2003 +0000 make dist works now. Update to 2.1.90 in preparation for eventual 2.2 release COPYING | 4 +- ChangeLog | 20 + INSTALL | 11 +- Makefile.am | 3 +- README | 6 +- configure.in | 11 +- fc-lang/Makefile.am | 2 + src/Makefile.am | 2 + src/fcknownsets.h | 1895 --------------------------------------------------- test/Makefile.am | 3 + 10 files changed, 42 insertions(+), 1915 deletions(-) commit 4b06670ac92b8b9d2f1ba7036fdfaed5e55ff533 Author: Keith Packard Date: Sat Mar 1 05:55:48 2003 +0000 Add .cvsignore test/.cvsignore | 2 ++ 1 file changed, 2 insertions(+) commit 44d903783dd0b9b671be9e829c5b9e4e78c681c0 Author: Keith Packard Date: Sat Mar 1 05:55:17 2003 +0000 Add simple tests Makefile.am | 2 +- configure.in | 1 + test/4x6.pcf | Bin 0 -> 70952 bytes test/8x16.pcf | Bin 0 -> 21320 bytes test/Makefile.am | 4 +++ test/fonts.conf.in | 4 +++ test/out.expected | 8 +++++ test/run-test.sh | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 103 insertions(+), 1 deletion(-) commit 9238fc061d2f89590d578bff69fd3e8fc4b72e2c Author: Keith Packard Date: Sat Mar 1 05:21:02 2003 +0000 Add --disable-docs flag configure.in | 16 ++++++++++++++++ doc/Makefile.am | 21 ++++++++++++++++----- src/Makefile.am | 4 ---- 3 files changed, 32 insertions(+), 9 deletions(-) commit 0da305f7f85ae0dddc411df53ef077709558d369 Author: Keith Packard Date: Sat Mar 1 03:06:37 2003 +0000 Switch to docbook and split documentation into pieces Makefile.am | 2 +- configure.in | 15 + doc/Makefile.am | 35 ++ src/fontconfig.3 | 1466 ------------------------------------------------------ 4 files changed, 51 insertions(+), 1467 deletions(-) commit 584ac89a017d30fb337de3d4c038ae2a5b51b3d1 Author: Keith Packard Date: Sat Mar 1 02:23:52 2003 +0000 Reformat documentation into sgml for docbook, split into user/devel guides doc/fontconfig-devel.sgml | 1257 +++++++++++++++++++++++++++++++++++++++++++++ doc/fontconfig-user.sgml | 559 ++++++++++++++++++++ doc/fontconfig.tex | 55 -- 3 files changed, 1816 insertions(+), 55 deletions(-) commit df43986cdcb38f6462d63618a115618cd9a964bb Author: Keith Packard Date: Thu Feb 27 08:12:13 2003 +0000 Disable globaladvance for batang fonts fonts.conf.in | 10 ++++++++++ 1 file changed, 10 insertions(+) commit cc168fa6688066baad43d1de577a39c11102947a Author: Keith Packard Date: Thu Feb 27 08:08:09 2003 +0000 Disable globaladvance for gulim fonts fonts.conf.in | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 148656ed8b3755f0634be14ae60996a1ad493836 Author: Keith Packard Date: Thu Feb 27 07:04:59 2003 +0000 Stop setting FC_SPACING from font hints. Theyre always wrong src/fcfreetype.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 662b879681f2961b446341638c7bec048edd612a Author: Keith Packard Date: Thu Feb 27 07:04:31 2003 +0000 Avoid crashing with null expressions in debug code src/fcdbg.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 2d39321f1e70a8a1a2a68244b25ca0c7e8c0df3c Author: Keith Packard Date: Wed Feb 26 19:13:17 2003 +0000 Allow double or integer for numeric values in matching src/fcdbg.c | 4 ++-- src/fcmatch.c | 34 ++++++++++++++++++++++++++-------- 2 files changed, 28 insertions(+), 10 deletions(-) commit f2aacf1ed9cd34f3d29e0de3ee322ea51a82e40c Author: Keith Packard Date: Mon Feb 24 17:52:44 2003 +0000 Add remaining .cvsignore files fc-cache/.cvsignore | 5 +++++ fc-lang/.cvsignore | 6 ++++++ fc-list/.cvsignore | 5 +++++ fontconfig/.cvsignore | 2 ++ src/.cvsignore | 6 ++++++ 5 files changed, 24 insertions(+) commit 8530b30b0bbb1831ab80cda61c104714b66a9da4 Author: Keith Packard Date: Mon Feb 24 17:50:29 2003 +0000 Add .cvsignore file .cvsignore | 15 +++++++++++++++ 1 file changed, 15 insertions(+) commit 20fa60c9ae5923487c80ef0449e869a30a8ddc19 Author: Keith Packard Date: Mon Feb 24 17:18:50 2003 +0000 Switch to automake Makefile.am | 49 + Makefile.in | 91 - autogen.sh | 89 + config.h.in | 138 -- configure.in | 425 ++-- cvscompile.sh | 11 - fc-cache/Makefile.am | 28 + fc-cache/Makefile.in | 53 - fc-lang/Makefile.am | 38 + fc-list/Makefile.am | 28 + fc-list/Makefile.in | 54 - findfonts | 4 - fontconfig.spec.in | 74 + fontconfig/Makefile.am | 8 + fontconfig/Makefile.in | 39 - fontconfig/fontconfig.h | 3 +- fonts.conf.in | 12 +- local.conf | 5 + local.def | 70 - ltmain.sh | 6192 +++++++++++++++++++++++++++++++++++++++++++++++ setfontdirs | 36 - src/Makefile.am | 38 + src/Makefile.in | 120 - src/fontconfig.3 | 1466 +++++++++++ src/fontconfig.man | 1466 ----------- 25 files changed, 8214 insertions(+), 2323 deletions(-) commit 46d003c34ef95db33ecb794d23f711161d4d4ae3 Author: Keith Packard Date: Mon Feb 24 16:51:29 2003 +0000 Dont attempt to use cache if NULL src/fcdir.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit e54692ac1e3b1e498154cae9e4db68f1d1b06ecf Author: Keith Packard Date: Mon Feb 17 17:35:28 2003 +0000 Remove broken fontconfig-config script Makefile.in | 9 ----- configure.in | 3 +- fontconfig-config.in | 94 ---------------------------------------------------- 3 files changed, 1 insertion(+), 105 deletions(-) commit c4ab52dcb5d016d18fc73a8577daeb6938fb9e84 Author: Keith Packard Date: Thu Feb 13 16:42:38 2003 +0000 Track dirs containing fonts.cache files referenced from ~/.fonts.cache file src/fccache.c | 45 ++++++++++++++++++++++++++++++++++++++------- src/fcdir.c | 3 +++ src/fcint.h | 4 ++++ 3 files changed, 45 insertions(+), 7 deletions(-) commit 565a919e80bf2d801078cbd83eee8caf9c057519 Author: Keith Packard Date: Wed Feb 12 20:35:32 2003 +0000 Have fc-cache skip directories without write access fc-cache/fc-cache.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) commit b7a2e1e27b35154ea3b782f1f61bd2ef83cb27b2 Author: Keith Packard Date: Wed Feb 12 18:23:03 2003 +0000 Add prefer_outline hacks to replace bitmap fonts with equivalent outlines fonts.conf.in | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit dda7794f1be86fa270410e63ce96104843ded66f Author: Keith Packard Date: Wed Feb 12 18:22:12 2003 +0000 Add "same" binding for edits to inherit binding from matched element fonts.dtd | 2 +- src/fccfg.c | 10 +++++++++- src/fcint.h | 2 +- src/fcxml.c | 2 ++ 4 files changed, 13 insertions(+), 3 deletions(-) commit 602e6b1f265b17cc1059a01ac98f0877fb7d1db8 Author: Keith Packard Date: Wed Feb 12 18:21:21 2003 +0000 Output langsets and all bindings in debug messages src/fcdbg.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) commit b2b6903259c742c75738d49fa37ea0b167ef87cb Author: Keith Packard Date: Wed Feb 12 18:20:04 2003 +0000 Make FcStrCmpIgnoreCase a bit faster src/fcstr.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit c8d5753c0fca4e4b2ab01d49b9a0b464b9b54cb4 Author: Keith Packard Date: Wed Feb 12 18:19:33 2003 +0000 Dont cache directorys until theyve been scanned. Avoids losing subdir contents. Also fixed cache hashing function (was returning constant). Lots of comments src/fccache.c | 38 ++++++++++++++++++++++++++++++++------ src/fcdir.c | 11 +++++++++-- 2 files changed, 41 insertions(+), 8 deletions(-) commit d2b5cc7e12cb3941080c8db07ba53ce975a914b2 Author: Keith Packard Date: Fri Feb 7 00:15:09 2003 +0000 fontconfig is no longer affiliated with xfree86 src/fontconfig.man | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 302e07f11ee7fa1bc95c89357c956359c04dc63e Author: Keith Packard Date: Fri Feb 7 00:14:31 2003 +0000 Emphasize that fonts.conf isnt the right place for local configuration fonts.conf.in | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit 1b6b3b658c9ff6b8e45e54fdaea1812eb0b930d9 Author: Keith Packard Date: Fri Feb 7 00:13:55 2003 +0000 Remove Imakefile Imakefile | 90 --------------------------------------------------------------- 1 file changed, 90 deletions(-) commit 9e1af99b17be1d9cde3b4517e0e6071e64fb4b64 Author: Keith Packard Date: Fri Feb 7 00:13:37 2003 +0000 Build fc-lang, install local.conf Makefile.in | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) commit dda27aa9ee057d213956f18041bedb4648c6c302 Author: Keith Packard Date: Thu Feb 6 19:30:32 2003 +0000 Avoid crash when $HOME is not set src/fcstr.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 48092073dd7b633441daba6297cff8c4588fe58d Author: Keith Packard Date: Thu Feb 6 19:28:23 2003 +0000 Update greek orthography from vvas@hal.csd.auth.gr (Vasilis Vasaitis) fc-lang/el.orth | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 9db8fbeccf14e1be2e305c3dd8d83991ce8a1055 Author: Keith Packard Date: Thu Feb 6 19:25:53 2003 +0000 add shared library support for Tru64 UNIX and IRIX (bug #14) configure.in | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit ca4339b8bbd4138bb3cf54a7ad7c3b33db7035de Author: Keith Packard Date: Thu Feb 6 19:22:43 2003 +0000 Fix inconsistent const usage in FcConfigCompareValue src/fccfg.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit c647f6f1e42f70077e1e0c957ff5cd7905d88b86 Author: Keith Packard Date: Thu Feb 6 17:46:06 2003 +0000 Build fclang.h before building library This required compiling the charset funcs into fc-lang, which was done by refactoring code in fccharset.c and fcfreetype.c a bit Updated ethiopic orthographies Remove imake support Install empty local.conf file if none is present fc-cache/Imakefile | 22 - fc-lang/Imakefile | 56 - fc-lang/am.orth | 10 +- fc-lang/fc-lang.c | 21 +- fc-lang/fclang.h | 4006 -------------------------------------------------- fc-lang/gez.orth | 55 +- fc-lang/ti.orth | 28 - fc-lang/ti_er.orth | 56 + fc-lang/ti_et.orth | 33 + fc-lang/tig.orth | 52 + fc-list/Imakefile | 17 - fontconfig/Imakefile | 8 - src/Imakefile | 48 - src/fccharset.c | 769 +--------- src/fcfreetype.c | 768 ++++++++++ src/fcint.h | 19 +- 16 files changed, 975 insertions(+), 4993 deletions(-) commit 3d72cadda1f3398238ad9a5c52e31a9c710ccb5f Author: Keith Packard Date: Tue Jan 28 21:28:20 2003 +0000 Bug #4 The last entry for the terminator should not be 0xfffa, but 0xfffb. fonts.conf.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4d3520610ec82a80601a1590861dc9505e2813b4 Author: Keith Packard Date: Tue Jan 28 20:56:18 2003 +0000 Bug #2 If a sub-make fails, then the build will still happily continue. I will attach a patch I have been using in the Debian package for a while. Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3c0b3aa22cf1338f96bc0c0b55956136a6102a61 Author: David Dawes Date: Tue Jan 7 02:07:47 2003 +0000 703. Eliminate locale-dependent behaviour in fontconfig's setfontdirs script (#A.1483, Markus Kuhn). setfontdirs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 72a762196f356837ef615ee2a079e8b801a6f592 Author: Torrey Lyons Date: Fri Jan 3 18:54:11 2003 +0000 On Darwin add Mac font directories to fonts.conf. Imakefile | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit 432913ead584d164ed2830958ca5a3846394f5e6 Author: David Dawes Date: Sat Dec 21 02:31:53 2002 +0000 677. Fix a segfault in fontconfig (#A.1450, Keith Packard). src/fccfg.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 1e341fdfc38527d8614e2fe744237f473f3febee Author: David Dawes Date: Tue Dec 17 03:26:36 2002 +0000 Test for "ed" and "ex" -- part of update for LynxOS/PowerPC build fixes (Stuart Lissaman). setfontdirs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 234397b42976f027df7acc41aae80ec43692d557 Author: David Dawes Date: Sat Dec 14 02:03:59 2002 +0000 633. Perform country-independent matching for Chinese languages in fontconfig (#A.1406, Keith Packard). fc-lang/fc-lang.c | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++----- fc-lang/fclang.h | 10 +++++++- src/fclang.c | 15 +++++++---- 3 files changed, 89 insertions(+), 12 deletions(-) commit 45fb31aa9113b597878fc19d1463c078663540d9 Author: David Dawes Date: Sat Dec 14 01:59:38 2002 +0000 632. Finish off the UTF-16 APIs in Xft, and fix the UTF-16 conversion code in fontconfig (#A.1411, Keith Packard, Jungshik Shin). src/fcstr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit dbc56f0b3f3383a61b0f5d282ed7ae732ae3856e Author: Egbert Eich Date: Wed Dec 4 10:28:03 2002 +0000 574. Make RENDER optional for Xvfb. When RENDER is enabled add depth 32 pixmap format to list of supported pixmaps (Egbert Eich). 573. Fix va_args glitches for xterm/libfontconfig: 0 == (void*)0 isn't true for all platforms (Egbert Eich). 572. Fix lbxproxy to also build on platforms that don't have snprintf() (Egbert Eich). 571. Fix va_args glitches in mkfontscale: arg stack isn't preserved after calling va_arg on all platforms (Egbert Eich). 570. Fixed x11perf aa benchmarks to support non-default visuals/colormaps (Egbert Eich). fontconfig/fcprivate.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 7657345c1031eacedd734ddbc62a29de776672f4 Author: Keith Packard Date: Fri Nov 22 02:12:16 2002 +0000 In debugging output, mark weakly bound values with (w) src/fcdbg.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 02c3d2e9eabcecdcc46bc166afc511b22f3ddbae Author: Keith Packard Date: Thu Nov 21 16:53:00 2002 +0000 Use unique local Imake define for fonts.conf dir (#5482, Mike A. Harris) Imakefile | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 61afb67cd23d021b5b3806f6974e19a77a2ac4ef Author: Alan Hourihane Date: Fri Nov 15 09:29:35 2002 +0000 483. Fix fontconfig to obey NothingOutsideProjectRoot, so that the directory /usr/share/fonts is ignored in this case (#A.1325, Joe Moss). Imakefile | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) commit 65fb1c65837edd07fb89d303155b10a38e00ecd7 Author: Keith Packard Date: Mon Oct 21 17:03:47 2002 +0000 Elide historic cyrillic letters from several orthographies as they are unnecessary for modern documents and ill supported by fonts fc-lang/bua.orth | 6 +++--- fc-lang/fclang.h | 14 +++++++------- fc-lang/kaa.orth | 6 +++--- fc-lang/ky.orth | 6 +++--- fc-lang/ru.orth | 10 +++++++--- fc-lang/sah.orth | 6 +++--- fc-lang/tk.orth | 6 +++--- fc-lang/tt.orth | 6 +++--- fc-lang/tyv.orth | 6 +++--- 9 files changed, 35 insertions(+), 31 deletions(-) commit bff801144b226f5f3ddf4188f181ed3f629fdcab Author: Keith Packard Date: Fri Oct 11 17:53:03 2002 +0000 Add a bunch more consts to Xft and fontconfig apis fontconfig/fcfreetype.h | 2 +- fontconfig/fontconfig.h | 20 ++++++++++---------- src/fcpat.c | 20 ++++++++++---------- 3 files changed, 21 insertions(+), 21 deletions(-) commit 0ce819b6096ae852a1979fa6ebb3e29260848007 Author: Keith Packard Date: Thu Oct 3 22:06:27 2002 +0000 Change comments a bit in fonts.conf.in fonts.conf.in | 7 +++++++ 1 file changed, 7 insertions(+) commit 0d5af2ef2d9785efc29c909bc11f483069192c95 Author: Keith Packard Date: Wed Oct 2 16:15:54 2002 +0000 English orthography included 0xd. instead of 0xe. for several codepoints. Oops fc-lang/en.orth | 8 ++++---- fc-lang/fclang.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) commit 1852d490352fdc05891b778a8769000816b907b0 Author: Keith Packard Date: Wed Oct 2 07:11:30 2002 +0000 Add FC_RGBA_UNKNOWN fontconfig/fontconfig.h | 5 +++-- src/fcname.c | 5 +++-- src/fontconfig.man | 4 +++- 3 files changed, 9 insertions(+), 5 deletions(-) commit 2d79b58621845f7d8efd6f052dcd8f4f1a4e03c3 Author: Keith Packard Date: Thu Sep 26 00:30:30 2002 +0000 Fix alignment issue on sparc src/fcpat.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) commit a342e87dc3d4211a29525654ff6b41d088bdce71 Author: Keith Packard Date: Thu Sep 26 00:17:28 2002 +0000 Add fontversion field fontconfig/fontconfig.h | 3 ++- src/fcdefault.c | 6 +++++- src/fcfreetype.c | 18 +++++++++++++++++- src/fcmatch.c | 15 ++++++++++++--- src/fcname.c | 3 ++- 5 files changed, 38 insertions(+), 7 deletions(-) commit e712133ca7b6d9f055e7db2a7a3abf3034927e16 Author: Keith Packard Date: Thu Sep 26 00:16:23 2002 +0000 Was losing local cached dirs in global cache list src/fccache.c | 17 ++++++++--------- src/fcdir.c | 4 +++- src/fcint.h | 10 ++++++---- 3 files changed, 17 insertions(+), 14 deletions(-) commit ce50587c2b71390c6de35c7e13a8fc23a062eda0 Author: Keith Packard Date: Thu Sep 26 00:13:39 2002 +0000 Add a few more permissable blank glyphs fonts.conf.in | 6 ++++++ 1 file changed, 6 insertions(+) commit d1bec8c66d729fe67992a0212b3dffa18879e88f Author: Marc Aurele La France Date: Wed Sep 18 17:11:46 2002 +0000 Pacify gcc 3.2 fc-cache/fc-cache.c | 3 ++- src/fclist.c | 4 ++-- src/fcpat.c | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) commit 05336fd8bed5a5f3a6e1cbddb18a9bd9a4d2ebc7 Author: Marc Aurele La France Date: Thu Sep 12 20:56:03 2002 +0000 Fix structure alignment and array wlk bugs src/fcpat.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) commit 9cc935765e6f74a1712b04b6cbcfc5e77d1d38e1 Author: Keith Packard Date: Sat Sep 7 19:43:41 2002 +0000 Add a bunch more blank glyphs, plus label existing blanks with official unicode names fonts.conf.in | 66 +++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 37 insertions(+), 29 deletions(-) commit 10bac9b53f6b2494f05ff1c7c9ee0e3b0bd05c73 Author: Keith Packard Date: Sat Sep 7 17:30:18 2002 +0000 Found a few more blank glyphs to add fonts.conf.in | 4 ++++ 1 file changed, 4 insertions(+) commit f9ad97b0d4be53164970ca0a8ff605670a60587c Author: Keith Packard Date: Sat Sep 7 16:50:16 2002 +0000 Add more blank glyphs to default config fonts.conf.in | 14 ++++++++++++++ 1 file changed, 14 insertions(+) commit c2022f999e0492d530925b0112ffd34ce146a8e3 Author: Keith Packard Date: Sat Aug 31 22:27:08 2002 +0000 Update ChangeLog with a few notes ChangeLog | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) commit 9dac3c594574f67f80d70ad3cdad42c551285ee8 Author: Keith Packard Date: Sat Aug 31 22:17:32 2002 +0000 More complete memory tracking. Install always overwrites header files fontconfig/Makefile.in | 17 ++++------------- src/fcatomic.c | 8 +++++++- src/fcblanks.c | 8 ++++++++ src/fccache.c | 37 +++++++++++++++++++++++++++---------- src/fccfg.c | 6 ++++-- src/fccharset.c | 10 +++++++--- src/fcdir.c | 3 ++- src/fcfreetype.c | 8 +++++--- src/fcinit.c | 48 ++++++++++++++++++++++++++++++------------------ src/fcint.h | 16 ++++++++++++++-- src/fcmatch.c | 3 ++- src/fcname.c | 7 ++++++- src/fcpat.c | 3 ++- src/fcstr.c | 5 +++++ src/fcxml.c | 33 ++++++++++++++++++++++++++++----- 15 files changed, 151 insertions(+), 61 deletions(-) commit cb30af720468a7e89abdf65bbf62b8942d3d8c13 Author: Keith Packard Date: Fri Aug 30 01:28:17 2002 +0000 Update latin and cyrillic orthographies by comparing those found at evertype.com with those from eki.ee fc-lang/ab.orth | 7 +- fc-lang/az.orth | 65 ++- fc-lang/ba.orth | 43 +- fc-lang/be.orth | 20 +- fc-lang/bg.orth | 21 +- fc-lang/br.orth | 33 +- fc-lang/ca.orth | 50 +- fc-lang/cs.orth | 67 ++- fc-lang/da.orth | 83 ++- fc-lang/de.orth | 33 +- fc-lang/es.orth | 42 +- fc-lang/et.orth | 35 +- fc-lang/eu.orth | 26 +- fc-lang/fclang.h | 1602 ++++++++++++++++++++++++++---------------------------- fc-lang/fi.orth | 40 +- fc-lang/fo.orth | 57 +- fc-lang/fy.orth | 24 +- fc-lang/ga.orth | 78 ++- fc-lang/gd.orth | 23 +- fc-lang/gl.orth | 7 +- fc-lang/hr.orth | 33 +- fc-lang/hu.orth | 13 +- fc-lang/is.orth | 31 +- fc-lang/it.orth | 24 +- fc-lang/kk.orth | 15 +- fc-lang/kl.orth | 35 +- fc-lang/lt.orth | 11 +- fc-lang/lv.orth | 7 +- fc-lang/mt.orth | 50 +- fc-lang/nl.orth | 27 +- fc-lang/no.orth | 49 +- fc-lang/oc.orth | 37 +- fc-lang/pl.orth | 16 +- fc-lang/pt.orth | 40 +- fc-lang/rm.orth | 13 +- fc-lang/ro.orth | 6 +- fc-lang/sk.orth | 31 +- fc-lang/sl.orth | 82 ++- fc-lang/sq.orth | 7 +- fc-lang/sr.orth | 25 +- fc-lang/sv.orth | 76 ++- fc-lang/tr.orth | 34 +- fc-lang/uk.orth | 20 +- fc-lang/vot.orth | 5 +- 44 files changed, 1799 insertions(+), 1244 deletions(-) commit 2458a6d8d8bbd9b0b6b999c2aa035816c0d825fa Author: Keith Packard Date: Mon Aug 26 23:34:31 2002 +0000 FcLangSetHasLang was not actually checking the language set itself ChangeLog | 4 ++++ src/fclang.c | 7 ++++--- 2 files changed, 8 insertions(+), 3 deletions(-) commit 5d6788ac7e35b9afb24de4f1e90d43715e50f64f Author: Keith Packard Date: Mon Aug 26 20:52:59 2002 +0000 Update ChangeLog, fix some bugs in the man page ChangeLog | 3 +++ src/fontconfig.man | 68 +++++++++++++++++++++++++++++------------------------- 2 files changed, 39 insertions(+), 32 deletions(-) commit f21f40f347afa81d1fcd4ae604bd3f164a3b2e90 Author: Keith Packard Date: Mon Aug 26 19:57:40 2002 +0000 Append version number to cache file names fontconfig/fontconfig.h | 18 +++++++++++++++--- src/fcdir.c | 6 +++--- src/fcint.h | 2 +- src/fontconfig.man | 5 +++-- 4 files changed, 22 insertions(+), 9 deletions(-) commit 0f9a306e710b3c03cd82b8234ae840558d4b886f Author: Keith Packard Date: Sat Aug 24 20:08:53 2002 +0000 Add const to a bunch of string APIs fontconfig/fontconfig.h | 32 ++++++++++++++++---------------- src/fcstr.c | 46 +++++++++++++++++++++++----------------------- 2 files changed, 39 insertions(+), 39 deletions(-) commit 47d4f9501fe21603feb5f3f233ea3bc6ec15f494 Author: Keith Packard Date: Thu Aug 22 18:53:22 2002 +0000 Add contains/not_contains, fix LangSet equal operator to use FcLangEqual ChangeLog | 13 +++++++++++++ fonts.dtd | 6 ++++-- src/fccfg.c | 28 +++++++++++++++++++++------- src/fcdbg.c | 9 ++++++--- src/fcint.h | 4 ++-- src/fclang.c | 1 + src/fclist.c | 8 ++++---- src/fcxml.c | 19 ++++++++++++++++--- 8 files changed, 67 insertions(+), 21 deletions(-) commit d8d7395877238acbc9cd4709e3b4e76f8ca978cb Author: Keith Packard Date: Thu Aug 22 07:36:45 2002 +0000 Reimplement FC_LANG as FcTypeLang, freeze patterns, other cleanup ChangeLog | 22 +- fc-lang/fc-lang.c | 24 ++- fc-lang/fclang.h | 556 ++++++++++++++++++++++++------------------------ fontconfig/fcprivate.h | 5 +- fontconfig/fontconfig.h | 46 +++- src/fccache.c | 16 +- src/fccfg.c | 22 +- src/fccharset.c | 80 ++++--- src/fcdbg.c | 5 +- src/fcfreetype.c | 11 +- src/fcinit.c | 14 +- src/fcint.h | 35 +-- src/fclang.c | 431 ++++++++++++++++++++++++++++++++----- src/fclist.c | 4 +- src/fcmatch.c | 31 ++- src/fcname.c | 29 ++- src/fcpat.c | 301 +++++++++++++++++++++++++- src/fcstr.c | 14 +- 18 files changed, 1235 insertions(+), 411 deletions(-) commit f4fe447f49171d4b0ad69c8efcbadc555f211efa Author: Keith Packard Date: Tue Aug 20 23:17:03 2002 +0000 Memory leak in XML parsing of matrices (thanks Owen) src/fcxml.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit fa244f3d8807415247c8aeb77145502b1cb9ace8 Author: Keith Packard Date: Mon Aug 19 19:32:05 2002 +0000 Various config changes plus a couple of optimizations from Owen ChangeLog | 19 ++++++++ config.h.in | 9 ---- config/Makedefs.in | 25 +++++------ configure.in | 117 ++++++++---------------------------------------- fc-cache/Imakefile | 2 +- fc-lang/Imakefile | 4 +- fc-lang/ja.orth | 4 +- fc-lang/ko.orth | 5 ++- fc-lang/zh_cn.orth | 5 ++- fc-lang/zh_sg.orth | 4 +- fc-list/Imakefile | 2 +- fontconfig/fcprivate.h | 4 +- fontconfig/fontconfig.h | 18 ++++---- fonts.conf.in | 12 +++++ src/Imakefile | 2 +- src/fccache.c | 69 +++++++++++++++++----------- src/fccfg.c | 33 ++++++-------- src/fcdbg.c | 7 +-- src/fclist.c | 4 +- src/fcmatch.c | 5 +-- src/fcname.c | 4 +- src/fcpat.c | 43 +----------------- src/fcxml.c | 17 +------ src/fontconfig.man | 22 ++++----- 24 files changed, 159 insertions(+), 277 deletions(-) commit 5d43e799197d2758102b699f9bc12b3c116a9b80 Author: Keith Packard Date: Tue Aug 13 02:06:22 2002 +0000 Make missing font directory messages only displayed when verbose fc-cache/fc-cache.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit eafc0e51af7ecb6ea7d33b59932212bdfd1d67ab Author: Keith Packard Date: Mon Aug 12 22:20:11 2002 +0000 Clean up French orthography, update 639-1 list of supported languages fc-lang/fclang.h | 2 +- fc-lang/fr.orth | 59 +++++++++++++++------------ fc-lang/iso639-1 | 122 +++++++++++++++++++++++++++---------------------------- 3 files changed, 95 insertions(+), 88 deletions(-) commit 938bc63358c09b9fd3709e8f914870f906361594 Author: Keith Packard Date: Sun Aug 11 18:11:04 2002 +0000 Fix weird first/not-first lameness in font matches, replacing with target qualifiers on test elements. Update library manual page. fontconfig/fcprivate.h | 5 +- fontconfig/fontconfig.h | 23 +++- fonts.conf.in | 9 +- fonts.dtd | 4 + src/fccfg.c | 142 ++++++++------------- src/fcdbg.c | 29 +++-- src/fcint.h | 19 ++- src/fclist.c | 4 +- src/fcmatch.c | 19 +-- src/fcname.c | 4 +- src/fcpat.c | 43 ++++++- src/fcxml.c | 33 ++++- src/fontconfig.man | 332 ++++++++++++++++++++++++++++++++++++++++++++---- 13 files changed, 510 insertions(+), 156 deletions(-) commit 80a7d664395d62cc335ac93b9918efebca00c117 Author: Keith Packard Date: Sun Aug 11 15:09:33 2002 +0000 Help message said -v was for --force fc-cache/fc-cache.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 8c8f72665a4d2eb7d56499dd8a876a9a2af8b153 Author: Keith Packard Date: Thu Aug 8 00:10:51 2002 +0000 Add Afar, Amharic, Aymara, Bini, Dzongkha, Fijian, Hiri Motu, Interlingua, Interlingue, Ido, Kikuyu, Burmese, Oromo, Somali, Swahili, Tigrinya, Tsonga, Twi, Uighur, Urdu, Xhosa and Zulu orthographies fc-lang/Imakefile | 42 +- fc-lang/aa.orth | 40 ++ fc-lang/am.orth | 28 + fc-lang/ay.orth | 37 ++ fc-lang/bin.orth | 55 ++ fc-lang/dz.orth | 28 + fc-lang/fclang.h | 1752 +++++++++++++++++++++++++++++------------------------ fc-lang/fj.orth | 34 ++ fc-lang/ho.orth | 33 + fc-lang/ia.orth | 29 + fc-lang/ie.orth | 29 + fc-lang/io.orth | 29 + fc-lang/iso639-2 | 48 +- fc-lang/ki.orth | 33 + fc-lang/my.orth | 37 ++ fc-lang/om.orth | 29 + fc-lang/so.orth | 29 + fc-lang/sw.orth | 29 + fc-lang/ti.orth | 28 + fc-lang/ts.orth | 29 + fc-lang/tw.orth | 50 ++ fc-lang/ug.orth | 29 + fc-lang/ur.orth | 29 + fc-lang/xh.orth | 29 + fc-lang/zu.orth | 29 + 25 files changed, 1718 insertions(+), 846 deletions(-) commit 0d91b3c5ee667c4ea997b99f69d73076a3d84d42 Author: Keith Packard Date: Wed Aug 7 17:34:15 2002 +0000 Add Asturian, Old Church Slavonic, Friulian, Manx Gaelic, Cornish, Scots, Syriac and Votic orthographies fc-lang/Imakefile | 39 +- fc-lang/ast.orth | 47 ++ fc-lang/cu.orth | 42 ++ fc-lang/fclang.h | 1776 ++++++++++++++++++++++++++++------------------------- fc-lang/fur.orth | 39 ++ fc-lang/fy.orth | 26 +- fc-lang/gv.orth | 31 + fc-lang/iso639-2 | 20 +- fc-lang/kw.orth | 35 ++ fc-lang/sco.orth | 32 + fc-lang/syr.orth | 29 + fc-lang/to.orth | 4 +- fc-lang/vot.orth | 37 ++ 13 files changed, 1300 insertions(+), 857 deletions(-) commit bd724c85969f7c24cf17b8780217c5a428555ea4 Author: Keith Packard Date: Wed Aug 7 01:45:59 2002 +0000 Short circuit FcPatternEqual when both args point at the same pattern src/fcpat.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 0e344dec0b124c38e6193cc4208e06662acd32f1 Author: Keith Packard Date: Tue Aug 6 19:54:10 2002 +0000 Update fontconfig manual to match current bits src/fontconfig.man | 100 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 83 insertions(+), 17 deletions(-) commit bb356b68ab0981dd9ec21ed8176dc80ad0580805 Author: Keith Packard Date: Tue Aug 6 19:00:43 2002 +0000 Uninitialized member of cache structure could lead to non-updated cache files src/fccache.c | 1 + 1 file changed, 1 insertion(+) commit 4534f30d2175966409af158c0a9efee678937bfd Author: Keith Packard Date: Tue Aug 6 18:59:59 2002 +0000 Fix Imakefile to make fclang.h writable fc-lang/Imakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eb2a2f838fa358bfbac69ebca4d716b70f4d294c Author: Keith Packard Date: Tue Aug 6 18:59:43 2002 +0000 Add Latin-1 characters needed by Welsh fc-lang/cy.orth | 17 +- fc-lang/fclang.h | 1430 +++++++++++++++++++++++++++--------------------------- 2 files changed, 733 insertions(+), 714 deletions(-) commit a6531d8cbafd79f26d06b086cceccb461e661f4a Author: Keith Packard Date: Thu Aug 1 16:17:33 2002 +0000 Always install fonts.conf and fonts.dtd, moving any existing fonts.conf to fonts.conf.bak. Add ~/.fonts to default font directories and add some useful comments to fonts.conf Imakefile | 17 +++++++++++++++-- fonts.conf.in | 12 ++++++++++++ setfontdirs | 2 ++ 3 files changed, 29 insertions(+), 2 deletions(-) commit aefb2c41c85f1b615e922c636bc7ac1eeb9e535c Author: Keith Packard Date: Thu Aug 1 15:57:26 2002 +0000 Fix autoconf build BSD install and sysconfdir problems ChangeLog | 17 +++++++++++++++++ Makefile.in | 10 +++++----- config.h.in | 3 +++ config/Makedefs.in | 5 +++-- configure.in | 14 +++++++++++++- fc-cache/Makefile.in | 4 ++-- fc-list/Makefile.in | 4 ++-- fontconfig/Makefile.in | 8 ++++---- src/Makefile.in | 2 +- 9 files changed, 50 insertions(+), 17 deletions(-) commit c2e9d0240b52adf9f0efd42a8be600f652086c32 Author: Marc Aurele La France Date: Thu Aug 1 01:35:02 2002 +0000 Warning fix fontconfig/fontconfig.h | 5 ++++- src/fcint.h | 5 +---- 2 files changed, 5 insertions(+), 5 deletions(-) commit 6fff2cda0ad09dfc84df2a70e95258b9dd28160b Author: Keith Packard Date: Wed Jul 31 01:36:37 2002 +0000 Add binding property to edit element fonts.conf.in | 12 +++++++++--- fonts.dtd | 3 ++- src/fccfg.c | 8 ++++---- src/fcint.h | 3 ++- src/fcxml.c | 35 ++++++++++++++++++++++++++++------- 5 files changed, 45 insertions(+), 16 deletions(-) commit 327a7fd491f17f23e37e260f8d74397e2ef933aa Author: Keith Packard Date: Sun Jul 28 10:50:59 2002 +0000 Rewrite global cache handling code in fontconfig to eliminate per-file syscalls fontconfig/fontconfig.h | 5 +- src/fccache.c | 968 +++++++++++++++++++++++++++++++----------------- src/fccfg.c | 23 +- src/fcdir.c | 183 +++++---- src/fcint.h | 126 +++++-- src/fcmatrix.c | 9 +- 6 files changed, 830 insertions(+), 484 deletions(-) commit 23cd70c4ef2b5c959959275d9d7f282029ae69f5 Author: Keith Packard Date: Sat Jul 27 23:13:28 2002 +0000 Add ngai tahu specific chars to maori orthography fc-lang/Imakefile | 1 + fc-lang/fclang.h | 802 +++++++++++++++++++++++++++--------------------------- fc-lang/mi.orth | 1 + 3 files changed, 405 insertions(+), 399 deletions(-) commit 1a9ae91a1693df1bfe93f34747584b0ff5dce014 Author: Keith Packard Date: Wed Jul 17 17:51:52 2002 +0000 Add fclang.c to Makefile.in src/Makefile.in | 2 ++ 1 file changed, 2 insertions(+) commit 6864f6279297a59ff509e5454fdebb77ac64e530 Author: Keith Packard Date: Sat Jul 13 20:33:05 2002 +0000 Trim ja orthography of a couple codepoints not found in kochi fonts fc-lang/fclang.h | 4 ++-- fc-lang/ja.orth | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) commit 1a0ee1e7c1b5872b1f46c7cdd8d8504150022189 Author: Keith Packard Date: Sat Jul 13 19:10:03 2002 +0000 Fix typo in geez (ethiopic) orthography fc-lang/fclang.h | 2 +- fc-lang/gez.orth | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 69937bd9416eb3fbefd55b9fa6445d0fe4b4f7f3 Author: Keith Packard Date: Sat Jul 13 05:43:25 2002 +0000 Add some Utf16 support, extract font family and style names from name table for sfnt fonts fontconfig/fontconfig.h | 23 +++- src/fccharset.c | 40 ++++-- src/fcfreetype.c | 342 ++++++++++++++++++++++++++++++++++++++++++++++-- src/fcint.h | 11 ++ src/fcstr.c | 99 +++++++++++++- 5 files changed, 495 insertions(+), 20 deletions(-) commit c80d2ac4866d4c534a8693d611ed85b84c11d009 Author: Keith Packard Date: Fri Jul 12 21:06:03 2002 +0000 Clean up some coverage files; a few accidentally included PUA values and punctuation. Add debugging stuff to dump out missing codepoints during cache building when missing only a few fc-lang/bg.orth | 13 +- fc-lang/bi.orth | 10 +- fc-lang/bo.orth | 17 +- fc-lang/el.orth | 20 +- fc-lang/fclang.h | 1630 ++++++++++++++++++++++++++---------------------------- fc-lang/ga.orth | 4 +- fc-lang/gn.orth | 4 +- fc-lang/hy.orth | 6 +- fc-lang/km.orth | 6 +- fc-lang/ko.orth | 128 ++--- fc-lang/lb.orth | 10 +- fc-lang/mg.orth | 6 +- fc-lang/mh.orth | 14 +- fc-lang/mk.orth | 12 +- fc-lang/mn.orth | 14 +- fc-lang/mo.orth | 4 +- fc-lang/ro.orth | 4 +- fc-lang/si.orth | 8 +- fc-lang/tl.orth | 11 +- fc-lang/yo.orth | 80 +-- src/fclang.c | 33 +- 21 files changed, 1017 insertions(+), 1017 deletions(-) commit b4a2c1f012c9c05cd14e43544570371ba2ca1134 Author: Keith Packard Date: Fri Jul 12 19:19:16 2002 +0000 Add a bunch more languages that use the Latin alphabet fc-lang/Imakefile | 35 +- fc-lang/af.orth | 46 ++ fc-lang/bam.orth | 37 ++ fc-lang/bi.orth | 39 ++ fc-lang/bs.orth | 39 ++ fc-lang/ch.orth | 35 + fc-lang/cy.orth | 48 ++ fc-lang/fclang.h | 1900 +++++++++++++++++++++++++++++++++-------------------- fc-lang/ful.orth | 38 ++ fc-lang/gn.orth | 48 ++ fc-lang/ha.orth | 36 + fc-lang/haw.orth | 35 + fc-lang/ibo.orth | 35 + fc-lang/id.orth | 31 + fc-lang/iso639-2 | 64 +- fc-lang/lb.orth | 60 ++ fc-lang/mg.orth | 35 + fc-lang/mh.orth | 45 ++ fc-lang/mi.orth | 34 + fc-lang/ny.orth | 30 + fc-lang/se.orth | 37 ++ fc-lang/sm.orth | 30 + fc-lang/sma.orth | 37 ++ fc-lang/smj.orth | 37 ++ fc-lang/smn.orth | 40 ++ fc-lang/sms.orth | 48 ++ fc-lang/tn.orth | 33 + fc-lang/to.orth | 30 + fc-lang/ven.orth | 34 + fc-lang/vi.orth | 58 ++ fc-lang/wen.orth | 42 ++ fc-lang/wo.orth | 42 ++ fc-lang/yap.orth | 35 + fc-lang/yo.orth | 86 +++ src/fcxml.c | 12 +- 35 files changed, 2522 insertions(+), 749 deletions(-) commit 3f03d0c2ac9ec2050abf56b4ce48fff987b55ac0 Author: Keith Packard Date: Fri Jul 12 09:13:32 2002 +0000 Add nynorsk and bokml, remove double angle quotes from other languages fc-lang/Imakefile | 31 +- fc-lang/ab.orth | 6 +- fc-lang/ba.orth | 6 +- fc-lang/be.orth | 6 +- fc-lang/br.orth | 8 +- fc-lang/da.orth | 6 +- fc-lang/de.orth | 6 +- fc-lang/fclang.h | 854 +++++++++++++++++++++++++++--------------------------- fc-lang/fr.orth | 10 +- fc-lang/gl.orth | 10 +- fc-lang/iso639-2 | 4 +- fc-lang/kk.orth | 6 +- fc-lang/kl.orth | 6 +- fc-lang/nb.orth | 25 ++ fc-lang/nn.orth | 43 +++ fc-lang/no.orth | 6 +- fc-lang/ru.orth | 6 +- fc-lang/uk.orth | 6 +- 18 files changed, 565 insertions(+), 480 deletions(-) commit c2b971c89819281be41584720d20648fe5d1627f Author: Keith Packard Date: Fri Jul 12 07:58:16 2002 +0000 Missed adding kumyk fc-lang/Imakefile | 19 +++++------ fc-lang/fclang.h | 74 +++++++++++++++++++++--------------------- fc-lang/iso639-2 | 2 +- fc-lang/kum.orth | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 145 insertions(+), 46 deletions(-) commit f749c49cb4ebe181de145440246d3110f7052f24 Author: Keith Packard Date: Fri Jul 12 07:52:16 2002 +0000 Add devanagari and cyrillic languages. Add Geez fc-lang/Imakefile | 36 +- fc-lang/ava.orth | 97 ++++ fc-lang/bh.orth | 25 + fc-lang/bho.orth | 25 + fc-lang/bua.orth | 102 ++++ fc-lang/ce.orth | 97 ++++ fc-lang/chm.orth | 109 ++++ fc-lang/cv.orth | 109 ++++ fc-lang/fclang.h | 1612 +++++++++++++++++++++++++++++++---------------------- fc-lang/gez.orth | 57 ++ fc-lang/hi.orth | 35 ++ fc-lang/ik.orth | 100 ++++ fc-lang/iso639-2 | 54 +- fc-lang/iu.orth | 77 +++ fc-lang/kaa.orth | 110 ++++ fc-lang/kok.orth | 25 + fc-lang/ks.orth | 25 + fc-lang/ku.orth | 94 ++++ fc-lang/kv.orth | 101 ++++ fc-lang/ky.orth | 102 ++++ fc-lang/lez.orth | 97 ++++ fc-lang/mr.orth | 25 + fc-lang/ne.orth | 25 + fc-lang/os.orth | 96 ++++ fc-lang/sa.orth | 25 + fc-lang/sah.orth | 108 ++++ fc-lang/sel.orth | 96 ++++ fc-lang/tg.orth | 108 ++++ fc-lang/tk.orth | 106 ++++ fc-lang/tt.orth | 108 ++++ fc-lang/tyv.orth | 102 ++++ fc-lang/uz.orth | 98 ++++ 32 files changed, 3278 insertions(+), 708 deletions(-) commit 2ce525423688d32b80587741d97a82209e52378c Author: Keith Packard Date: Thu Jul 11 02:47:50 2002 +0000 Remove old FC_LANG constants now that fontconfig uses RFC 3066 based names fontconfig/fontconfig.h | 42 +----------------------------------------- 1 file changed, 1 insertion(+), 41 deletions(-) commit 1bae57ddc82cc151bb7f0b6f2e75cc860a2b0608 Author: Keith Packard Date: Wed Jul 10 21:57:23 2002 +0000 Use presentation forms for arabic matching, fix comment labeling persian general forms fc-lang/ar.orth | 114 +++++++++++++++++++++++++++++++------------------------ fc-lang/fa.orth | 4 +- fc-lang/fclang.h | 4 +- 3 files changed, 69 insertions(+), 53 deletions(-) commit e709ddfa10410f6e042a36fcf7d0cd1a40f84fad Author: Keith Packard Date: Tue Jul 9 22:08:14 2002 +0000 Use locale data set FC_LANG by default. Reorder FcPattern and FcValueList to match Xft1. src/fcdefault.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/fcint.h | 4 ++-- 2 files changed, 55 insertions(+), 2 deletions(-) commit 2fcac34973eb9d62280ab7392566a35cb9ceac3d Author: Keith Packard Date: Tue Jul 9 02:28:29 2002 +0000 Trim ideographic punctuation and Suzhou numerals from zh-tw orthography. Had accidentally swapped codePageRange bits for traditional and simplified chinese. Add persian (fa) and HKSCS (zh-hk). Fix possible bug in charset walking fc-lang/Imakefile | 18 +- fc-lang/fa.orth | 53 ++ fc-lang/fclang.h | 1554 ++++++++++++++++++++++-------------- fc-lang/iso639-2 | 4 +- fc-lang/zh_hk.orth | 2240 ++++++++++++++++++++++++++++++++++++++++++++++++++++ fc-lang/zh_tw.orth | 33 +- src/fccharset.c | 4 +- src/fcfreetype.c | 6 +- 8 files changed, 3292 insertions(+), 620 deletions(-) commit e50b9ae71134a23820e8f50589649e629a6143ba Author: Keith Packard Date: Mon Jul 8 07:31:53 2002 +0000 Update iso639-2 language coverage info, fix Georgian orthography to eliminate Mingrelian and Svan glyphs, use coverage for inclusion and OS/2 for Han exclusion, restructure fclang.c to use fclang.h from fc-lang dir fc-lang/Imakefile | 8 +- fc-lang/fclang.h | 2624 ++++++++++++++++++++++++++++++++++++++++++++++++ fc-lang/fclang.tmpl.c | 130 --- fc-lang/fclang.tmpl.h | 25 + fc-lang/iso639-2 | 30 +- fc-lang/ka.orth | 5 +- fc-lang/zh_mo.orth | 27 + fc-lang/zh_sg.orth | 27 + src/fcfreetype.c | 238 +---- src/fcint.h | 9 +- src/fclang.c | 2632 +------------------------------------------------ 11 files changed, 2794 insertions(+), 2961 deletions(-) commit d6dabf368677babec02d8f64ba0598270e28b501 Author: Keith Packard Date: Sun Jul 7 19:30:53 2002 +0000 Add walloon, update fclang.c to include recent language additions fc-lang/Imakefile | 4 +- fc-lang/wa.orth | 47 ++ src/fclang.c | 1252 ++++++++++++++++++++++++++++++----------------------- 3 files changed, 757 insertions(+), 546 deletions(-) commit 2903c146aa990cddd56926cef4a2e2f2bcb70e06 Author: Keith Packard Date: Sun Jul 7 19:18:51 2002 +0000 Share more duplicate charset data fc-lang/Imakefile | 19 ++++++++++--------- fc-lang/bn.orth | 41 +++++++++++++++++++++++++++++++++++++++++ fc-lang/bo.orth | 30 ++++++++++++++++++++++++++++++ fc-lang/fc-lang.c | 28 ++++++++++++++++++++++++++-- fc-lang/gu.orth | 41 +++++++++++++++++++++++++++++++++++++++++ fc-lang/iso639-2 | 26 +++++++++++++------------- fc-lang/km.orth | 29 +++++++++++++++++++++++++++++ fc-lang/kn.orth | 40 ++++++++++++++++++++++++++++++++++++++++ fc-lang/lo.orth | 45 +++++++++++++++++++++++++++++++++++++++++++++ fc-lang/ml.orth | 38 ++++++++++++++++++++++++++++++++++++++ fc-lang/mn.orth | 31 +++++++++++++++++++++++++++++++ fc-lang/or.orth | 41 +++++++++++++++++++++++++++++++++++++++++ fc-lang/si.orth | 38 ++++++++++++++++++++++++++++++++++++++ fc-lang/ta.orth | 43 +++++++++++++++++++++++++++++++++++++++++++ fc-lang/te.orth | 39 +++++++++++++++++++++++++++++++++++++++ fc-lang/tl.orth | 29 +++++++++++++++++++++++++++++ 16 files changed, 534 insertions(+), 24 deletions(-) commit 3de8881ec96e2ce5f9d871ad46371e301b107dab Author: Keith Packard Date: Sun Jul 7 00:00:43 2002 +0000 Add fclang.c to CVS; easier than attempting to build it on the fly src/fclang.c | 2561 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2561 insertions(+) commit 6446b1511df528082d2ac9ff31617013b311aa09 Author: Keith Packard Date: Sat Jul 6 23:59:19 2002 +0000 Remove at and grave from latin languages, add copyright, license and RCS header fc-lang/Imakefile | 2 ++ fc-lang/ab.orth | 23 +++++++++++++++++++++++ fc-lang/ar.orth | 23 +++++++++++++++++++++++ fc-lang/az.orth | 27 +++++++++++++++++++++++++-- fc-lang/ba.orth | 23 +++++++++++++++++++++++ fc-lang/be.orth | 23 +++++++++++++++++++++++ fc-lang/bg.orth | 23 +++++++++++++++++++++++ fc-lang/br.orth | 27 +++++++++++++++++++++++++-- fc-lang/ca.orth | 27 +++++++++++++++++++++++++-- fc-lang/chr.orth | 23 +++++++++++++++++++++++ fc-lang/co.orth | 23 +++++++++++++++++++++++ fc-lang/cs.orth | 27 +++++++++++++++++++++++++-- fc-lang/da.orth | 27 +++++++++++++++++++++++++-- fc-lang/de.orth | 27 +++++++++++++++++++++++++-- fc-lang/el.orth | 23 +++++++++++++++++++++++ fc-lang/en.orth | 27 +++++++++++++++++++++++++-- fc-lang/eo.orth | 27 +++++++++++++++++++++++++-- fc-lang/es.orth | 27 +++++++++++++++++++++++++-- fc-lang/et.orth | 27 +++++++++++++++++++++++++-- fc-lang/eu.orth | 27 +++++++++++++++++++++++++-- fc-lang/fi.orth | 27 +++++++++++++++++++++++++-- fc-lang/fo.orth | 27 +++++++++++++++++++++++++-- fc-lang/fr.orth | 27 +++++++++++++++++++++++++-- fc-lang/fy.orth | 23 +++++++++++++++++++++++ fc-lang/ga.orth | 27 +++++++++++++++++++++++++-- fc-lang/gd.orth | 27 +++++++++++++++++++++++++-- fc-lang/gl.orth | 27 +++++++++++++++++++++++++-- fc-lang/he.orth | 23 +++++++++++++++++++++++ fc-lang/hr.orth | 27 +++++++++++++++++++++++++-- fc-lang/hu.orth | 27 +++++++++++++++++++++++++-- fc-lang/hy.orth | 23 +++++++++++++++++++++++ fc-lang/is.orth | 27 +++++++++++++++++++++++++-- fc-lang/it.orth | 27 +++++++++++++++++++++++++-- fc-lang/ja.orth | 23 +++++++++++++++++++++++ fc-lang/ka.orth | 23 +++++++++++++++++++++++ fc-lang/kk.orth | 23 +++++++++++++++++++++++ fc-lang/kl.orth | 27 +++++++++++++++++++++++++-- fc-lang/ko.orth | 23 +++++++++++++++++++++++ fc-lang/la.orth | 27 +++++++++++++++++++++++++-- fc-lang/lt.orth | 27 +++++++++++++++++++++++++-- fc-lang/lv.orth | 27 +++++++++++++++++++++++++-- fc-lang/mk.orth | 23 +++++++++++++++++++++++ fc-lang/mo.orth | 27 +++++++++++++++++++++++++-- fc-lang/mt.orth | 27 +++++++++++++++++++++++++-- fc-lang/nl.orth | 27 +++++++++++++++++++++++++-- fc-lang/no.orth | 27 +++++++++++++++++++++++++-- fc-lang/oc.orth | 27 +++++++++++++++++++++++++-- fc-lang/pl.orth | 27 +++++++++++++++++++++++++-- fc-lang/pt.orth | 27 +++++++++++++++++++++++++-- fc-lang/rm.orth | 27 +++++++++++++++++++++++++-- fc-lang/ro.orth | 27 +++++++++++++++++++++++++-- fc-lang/ru.orth | 23 +++++++++++++++++++++++ fc-lang/sh.orth | 23 +++++++++++++++++++++++ fc-lang/sk.orth | 27 +++++++++++++++++++++++++-- fc-lang/sl.orth | 27 +++++++++++++++++++++++++-- fc-lang/sq.orth | 27 +++++++++++++++++++++++++-- fc-lang/sr.orth | 23 +++++++++++++++++++++++ fc-lang/sv.orth | 27 +++++++++++++++++++++++++-- fc-lang/th.orth | 23 +++++++++++++++++++++++ fc-lang/tr.orth | 27 +++++++++++++++++++++++++-- fc-lang/uk.orth | 23 +++++++++++++++++++++++ fc-lang/vo.orth | 23 +++++++++++++++++++++++ fc-lang/yi.orth | 23 +++++++++++++++++++++++ fc-lang/zh_cn.orth | 23 +++++++++++++++++++++++ fc-lang/zh_tw.orth | 23 +++++++++++++++++++++++ 65 files changed, 1552 insertions(+), 78 deletions(-) commit 82f4243f220dda5f6d4759e3b9c182b537cf0219 Author: Keith Packard Date: Sat Jul 6 23:47:44 2002 +0000 Switch to RFC 3066 based lang names fontconfig/fontconfig.h | 5 +- src/Imakefile | 8 +- src/fccharset.c | 8 +- src/fcfreetype.c | 406 ++++++++++++++++++++++++------------------------ src/fcint.h | 28 ++++ src/fcmatch.c | 43 ++++- src/fcpat.c | 22 ++- src/fcstr.c | 25 ++- 8 files changed, 330 insertions(+), 215 deletions(-) commit 899e352656f04323b9467555faf9152c69a741ab Author: Keith Packard Date: Sat Jul 6 23:46:58 2002 +0000 Add a few more common font families to the default configuration fonts.conf.in | 7 +++++++ 1 file changed, 7 insertions(+) commit 364a581d91eac73a5b1810d9c5100b6eb690219f Author: Keith Packard Date: Sat Jul 6 23:22:03 2002 +0000 Add coverage documentation files fc-lang/iso639-1 | 139 ++++++++++++++++ fc-lang/iso639-2 | 473 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 612 insertions(+) commit c1382a3d998d098d3b86c922820558849c777c45 Author: Keith Packard Date: Sat Jul 6 23:21:37 2002 +0000 Add fc-lang program to generate language coverage tables fc-lang/Imakefile | 44 + fc-lang/ab.orth | 17 + fc-lang/ar.orth | 49 + fc-lang/az.orth | 26 + fc-lang/ba.orth | 16 + fc-lang/be.orth | 11 + fc-lang/bg.orth | 12 + fc-lang/br.orth | 17 + fc-lang/ca.orth | 23 + fc-lang/chr.orth | 2 + fc-lang/co.orth | 2 + fc-lang/cs.orth | 27 + fc-lang/da.orth | 27 + fc-lang/de.orth | 17 + fc-lang/el.orth | 26 + fc-lang/en.orth | 17 + fc-lang/eo.orth | 9 + fc-lang/es.orth | 19 + fc-lang/et.orth | 15 + fc-lang/eu.orth | 8 + fc-lang/fc-lang.c | 295 + fc-lang/fc-lang.man | 41 + fc-lang/fclang.tmpl.c | 130 + fc-lang/fi.orth | 15 + fc-lang/fo.orth | 25 + fc-lang/fr.orth | 28 + fc-lang/fy.orth | 2 + fc-lang/ga.orth | 29 + fc-lang/gd.orth | 15 + fc-lang/gl.orth | 22 + fc-lang/he.orth | 2 + fc-lang/hr.orth | 21 + fc-lang/hu.orth | 19 + fc-lang/hy.orth | 5 + fc-lang/is.orth | 26 + fc-lang/it.orth | 14 + fc-lang/ja.orth | 6540 +++++++++++++++++++ fc-lang/ka.orth | 9 + fc-lang/kk.orth | 15 + fc-lang/kl.orth | 23 + fc-lang/ko.orth | 16217 ++++++++++++++++++++++++++++++++++++++++++++++++ fc-lang/la.orth | 8 + fc-lang/lt.orth | 13 + fc-lang/lv.orth | 16 + fc-lang/mk.orth | 15 + fc-lang/mo.orth | 14 + fc-lang/mt.orth | 18 + fc-lang/nl.orth | 15 + fc-lang/no.orth | 18 + fc-lang/oc.orth | 15 + fc-lang/pl.orth | 10 + fc-lang/pt.orth | 19 + fc-lang/rm.orth | 15 + fc-lang/ro.orth | 11 + fc-lang/ru.orth | 11 + fc-lang/sh.orth | 2 + fc-lang/sk.orth | 29 + fc-lang/sl.orth | 21 + fc-lang/sq.orth | 7 + fc-lang/sr.orth | 11 + fc-lang/sv.orth | 21 + fc-lang/th.orth | 3 + fc-lang/tr.orth | 12 + fc-lang/uk.orth | 12 + fc-lang/vo.orth | 13 + fc-lang/yi.orth | 2 + fc-lang/zh_cn.orth | 6766 ++++++++++++++++++++ fc-lang/zh_tw.orth | 13079 ++++++++++++++++++++++++++++++++++++++ 68 files changed, 44053 insertions(+) commit 084407063d0069b16b24e1fd8be818af12e36741 Author: Keith Packard Date: Wed Jul 3 23:15:32 2002 +0000 Object list to FcObjectSetBuild wasnt terminated with 0 fc-list/fc-list.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit f9dc31e81cd27be1bcb72706ac667889840f60bb Author: Marc Aurele La France Date: Mon Jul 1 12:39:23 2002 +0000 Indent line fc-list/Imakefile | 2 ++ 1 file changed, 2 insertions(+) commit 8ea04b7956bd148607ae4179584dd0c8aa60b41d Author: Marc Aurele La France Date: Mon Jul 1 12:38:27 2002 +0000 Ident line fc-cache/Imakefile | 2 ++ 1 file changed, 2 insertions(+) commit ad07dcf486fe476ffccaa0d91df3836bfa4f4bd8 Author: Keith Packard Date: Mon Jul 1 05:11:20 2002 +0000 Make fc-cache avoid reading the whole world full of fonts fc-cache/fc-cache.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit e6099fe9799e79a467698f7e0ddb693fae5d7d2f Author: Keith Packard Date: Sun Jun 30 23:45:40 2002 +0000 Make fc-list more useful fc-list/fc-list.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) commit bdcdaceda4154ea6aaed224d3bf62a578a1f6986 Author: Keith Packard Date: Sun Jun 30 23:45:17 2002 +0000 Add FC_LANG_UNKNOWN (needed by auto lang-detecting fcfreetype.c) fontconfig/fontconfig.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 4c0036053a36678747adfd06777cef39752ca9a4 Author: Keith Packard Date: Sat Jun 29 20:31:02 2002 +0000 Add strong/weak pattern value binding, add known charsets for automatic lang computation src/fccfg.c | 3 +- src/fccharset.c | 40 +- src/fcfreetype.c | 235 ++++++- src/fcint.h | 15 +- src/fcknownsets.h | 1895 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/fcmatch.c | 112 ++-- src/fcname.c | 7 +- src/fcpat.c | 3 +- 8 files changed, 2222 insertions(+), 88 deletions(-) commit 5c7fb8274ce9c2c561cbcf73b9ee98003f516a9b Author: Keith Packard Date: Wed Jun 26 22:56:51 2002 +0000 Construct empty constant charsets correctly (using null pointers) src/fccharset.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) commit c552f59ba27ab1a526238f6ff4d15a2b9a975a7f Author: Keith Packard Date: Wed Jun 26 22:14:08 2002 +0000 Permit empty charsets in fonts.cache files src/fcname.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 223c028949c1ef316c93bea17278f58150c777ee Author: Keith Packard Date: Wed Jun 26 16:11:29 2002 +0000 Steal idea for locale-insensitive strtod from glib src/fcxml.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 57 insertions(+), 2 deletions(-) commit 4aded3e0ddca84b1fb0ce11541eb19b155472e83 Author: Keith Packard Date: Fri Jun 21 07:01:11 2002 +0000 Oops. Made a mistake when adding config file names to monitor list src/fcxml.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) commit 4645eedfcc7e36751503bf023a0d1db2a993ad52 Author: Keith Packard Date: Fri Jun 21 06:14:45 2002 +0000 Fix automatic file time checking, transcoding table searches. Actually add config files used to config structure so they can be time checked as well src/fccfg.c | 31 ++++++++++++++----------------- src/fccharset.c | 11 +++-------- src/fcxml.c | 5 ++++- 3 files changed, 21 insertions(+), 26 deletions(-) commit 8c96d1fc1005fda794ab30349eb91132fb8f341e Author: Keith Packard Date: Thu Jun 20 03:43:09 2002 +0000 Accidentally falling through several case blocks src/fccfg.c | 3 ++- src/fcdbg.c | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) commit c689ec2291d52a3c9ab998c9a25c0c9c78991921 Author: Keith Packard Date: Wed Jun 19 21:32:51 2002 +0000 Add slanting for fonts without oblique/italic varient. Fix matching code to make this work fonts.conf.in | 28 ++++++++++++++++++++++++++++ src/fcmatch.c | 4 ++-- 2 files changed, 30 insertions(+), 2 deletions(-) commit 0c35c0facb1f05a21f702636a291eb6ee3dea3a2 Author: Keith Packard Date: Wed Jun 19 20:55:19 2002 +0000 Make fc-cache more tolerant of missing font directories fc-cache/fc-cache.c | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) commit 6f6563edb5eb0fc22b338101b82bd8b7db438e3a Author: Keith Packard Date: Wed Jun 19 20:08:22 2002 +0000 Add ref counting to font config patterns so that FcFontSort return values are persistant fontconfig/fontconfig.h | 5 ++++- fonts.dtd | 5 ++++- src/fccache.c | 11 +++++++++-- src/fccfg.c | 4 ++++ src/fcdbg.c | 8 +++++++- src/fcdir.c | 5 +++-- src/fcint.h | 9 +++++---- src/fclist.c | 2 +- src/fcmatch.c | 21 +++++++++++++++++++-- src/fcname.c | 3 ++- src/fcpat.c | 12 +++++++++++- src/fcxml.c | 4 ++++ 12 files changed, 73 insertions(+), 16 deletions(-) commit 06a48f20739580338e69547c9896c539abf000dd Author: Keith Packard Date: Wed Jun 19 06:31:46 2002 +0000 Add a few aliases suggested by Owen and Mike fonts.conf.in | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) commit f534109f5aa44ffeb43acbe06b409e6a15239ac9 Author: Keith Packard Date: Tue Jun 18 22:23:05 2002 +0000 Add a few more families to fonts.conf, make FC_ANTIALIAS less important for matching, fix family->generic mapping src/fccfg.c | 7 ++++--- src/fcmatch.c | 22 +++++++++++----------- 2 files changed, 15 insertions(+), 14 deletions(-) commit 2623c1ebeec46c56cc8e1d1e3e8ddf4a44931f8d Author: Keith Packard Date: Tue Jun 18 16:47:33 2002 +0000 Fix compiler warning src/fcxml.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 5b1bfa5d82aeb67056a38e93e22f69c4bfe4ce5b Author: Keith Packard Date: Tue Jun 18 16:47:12 2002 +0000 Fix incorrect size in memmove call in FcObjectSetAdd that crashed FcFontSetList calls src/fclist.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit c0d42979ad06db34b5b4aad7052716797dc2f6a6 Author: Keith Packard Date: Sat Jun 8 18:46:35 2002 +0000 Fix fontconfig.pc generation in Imakefile Imakefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d0f07b8d582499fdc6fa0ca6c5e2ef3727baddae Author: Keith Packard Date: Sat Jun 8 17:32:05 2002 +0000 Add FcPatternHash, clean up a few valgrind issues fontconfig/fontconfig.h | 3 ++ src/fccfg.c | 2 +- src/fcmatch.c | 11 ++++--- src/fcpat.c | 78 +++++++++++++++++++++++++++++++++++++++++++++++++ src/fcxml.c | 13 ++++++++- 5 files changed, 101 insertions(+), 6 deletions(-) commit 8a39040e2a1308602aabe1aa4a8608f94830534e Author: Keith Packard Date: Fri Jun 7 17:55:41 2002 +0000 Make autoconf use correct options to build solaris shared libraries configure.in | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) commit b5b6d7f85dba271e69b8008b3c56f13c74ec9dac Author: David Dawes Date: Tue Jun 4 21:55:42 2002 +0000 171. Fix LIBXML2LIBDIR name clash in lib/Imakefile (#5180, ISHIKAWA Mutsumi). 170. Avoid a problem with setfontdirs when run in some locales (#5179, ISHIKAWA Mutsumi). 169. A little tuning for XtAppPeekEvent() (#5178, Dan McNichol). setfontdirs | 5 +++++ 1 file changed, 5 insertions(+) commit e9be9cd10a24b75480a26be834041d312d8217b4 Author: Keith Packard Date: Mon Jun 3 08:31:15 2002 +0000 Add FcPatternEqualSubset for Pango, clean up some internal FcPattern interfaces fontconfig/fontconfig.h | 7 ++- src/fccfg.c | 12 ++-- src/fcint.h | 7 ++- src/fclist.c | 72 ++++++++++++++-------- src/fcmatch.c | 6 +- src/fcname.c | 8 +-- src/fcpat.c | 161 +++++++++++++++++++++++++++++------------------- 7 files changed, 166 insertions(+), 107 deletions(-) commit 88c747e20612ffcae326313f8d624b36c1235993 Author: Keith Packard Date: Sun Jun 2 21:07:57 2002 +0000 Eliminate some compiler warnings, avoid seg fault when matching missing values src/fccfg.c | 4 ++-- src/fcdbg.c | 5 ++++- src/fclist.c | 4 +++- src/fcmatch.c | 4 ++-- src/fcname.c | 4 +++- 5 files changed, 14 insertions(+), 7 deletions(-) commit 2a41214a25ec902ac79d0b16cc0bab4461b91e6b Author: Keith Packard Date: Sun Jun 2 20:52:06 2002 +0000 Add aspect ratio support to Xft and fontconfig fontconfig/fontconfig.h | 3 ++- src/fcname.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) commit 8ec077f22b2f9fd693abfda7d405ac572594be99 Author: Keith Packard Date: Sun Jun 2 19:51:36 2002 +0000 Expression parsing in fonts.conf file mis-freed elements. Constant identity matrix was accidentally freed. Add ability to comare FTFace pattern elements (not that its all that useful) src/fccfg.c | 18 +++++++++++++++--- src/fcxml.c | 5 +++-- 2 files changed, 18 insertions(+), 5 deletions(-) commit be0948508ce4ebbb6e576b9dd31531efef6834e1 Author: Keith Packard Date: Fri May 31 23:21:25 2002 +0000 Add support for user-provided freetype faces to Xft fontconfig/fcfreetype.h | 8 +++++++- fontconfig/fcprivate.h | 4 +++- fontconfig/fontconfig.h | 7 +++++-- src/fccharset.c | 5 +---- src/fcfreetype.c | 1 - src/fcint.h | 3 ++- src/fcpat.c | 29 ++++++++++++++++++++++++++++- 7 files changed, 46 insertions(+), 11 deletions(-) commit bff617fa560e9f0a1f79ffb4fff8e9ed6a81013e Author: Keith Packard Date: Fri May 31 06:52:47 2002 +0000 Fix Xft2 to build right library version on old systems with xmkmf. Fix fc-cache location for xmkmf out-of-tree build on old systems local.def | 2 ++ 1 file changed, 2 insertions(+) commit fbb405f3b5f25353babee1e813eb86d53912503f Author: Keith Packard Date: Fri May 31 06:38:43 2002 +0000 Fix up support for building Xft1, Xrender and fontconfig out of the tree fc-list/Imakefile | 5 +++++ local.def | 14 ++++++++++++++ 2 files changed, 19 insertions(+) commit 20ac65ab003c9b280e3fbd06215c5e3af16bea1f Author: Keith Packard Date: Fri May 31 04:42:42 2002 +0000 Change FcCharSet datastructure, add FcFontSort API fontconfig/fontconfig.h | 9 +- src/fccharset.c | 772 ++++++++++++++++++++++++++---------------------- src/fcint.h | 27 +- src/fcmatch.c | 26 +- 4 files changed, 451 insertions(+), 383 deletions(-) commit bc9469baadc6b5f9a920a476e460113bab518208 Author: Keith Packard Date: Wed May 29 22:07:33 2002 +0000 Optimize after profiling. Fix FcStrCmp to return correct sign src/fccharset.c | 103 ++++++++++++++++++++++++++++++---------- src/fcint.h | 1 + src/fcmatch.c | 143 +++++++++++++++++++++++++++++++++++++++++--------------- src/fcname.c | 4 +- src/fcpat.c | 13 +++--- src/fcstr.c | 6 +-- 6 files changed, 197 insertions(+), 73 deletions(-) commit 1412a69926307b2736745737c7c66172ebc56724 Author: Keith Packard Date: Wed May 29 08:21:33 2002 +0000 Apply some obvious fixes to FcFontSetSort from Owen. Speed up FcCharSet primitives and FcFontSetSort fontconfig/fontconfig.h | 8 +- src/fccfg.c | 10 +-- src/fccharset.c | 197 +++++++++++++++++++++++++++++++++++++++++++++--- src/fcint.h | 3 +- src/fcmatch.c | 23 ++++-- 5 files changed, 219 insertions(+), 22 deletions(-) commit 78417a2c74f95a66e3738cf525f9d699e13c654a Author: Keith Packard Date: Tue May 28 03:50:23 2002 +0000 Use explicit cd for non-gmake systems Makefile.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit fcd247431f6251d430d20ceaaff6a39f6d87ec4c Author: Matthieu Herrb Date: Sat May 25 13:52:37 2002 +0000 $< in a non-implicit rule is a GNU-makeism. It's not supported by BSD make. Imakefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit ed2547b8585652a4a6f71e2bc24148e26ef6d0c8 Author: Keith Packard Date: Fri May 24 06:25:52 2002 +0000 Clean up autoconf install to obey DESTDIR Makefile.in | 67 ++++++++++++++++++++++++++++++++++---------------- fc-cache/Makefile.in | 23 ++++++++++------- fc-list/Makefile.in | 22 +++++++++++------ fontconfig/Makefile.in | 24 +++++++++--------- src/Makefile.in | 48 +++++++++++++++++++++++++----------- 5 files changed, 119 insertions(+), 65 deletions(-) commit 36732012151a91527f3ad7ad05569f40a0ca3cd9 Author: Keith Packard Date: Fri May 24 05:20:02 2002 +0000 Change charset enumeration functions to more sensible API fontconfig/fontconfig.h | 13 ++++++++++++- src/fccharset.c | 46 +++++++++++++++++++++++++++++++++------------- 2 files changed, 45 insertions(+), 14 deletions(-) commit c9f55ecb0672c98cb75b0b3b746dea515b27f7e6 Author: Keith Packard Date: Fri May 24 05:19:30 2002 +0000 A few autoconf build fixes Makefile.in | 12 ++++++++---- configure.in | 4 ++-- fontconfig-config.in | 10 +++++----- 3 files changed, 15 insertions(+), 11 deletions(-) commit 48db40f692a31c39a96961c8733bfeaad416a5c0 Author: Keith Packard Date: Thu May 23 23:00:46 2002 +0000 A few random fontconfig build fixes config/config-subst | 12 +++++++----- fontconfig/fontconfig.h | 7 +++++-- src/fcinit.c | 8 +++++++- 3 files changed, 19 insertions(+), 8 deletions(-) commit 61bb4bad756c6c3da6bd8306e1c5cd2ec0b18415 Author: Keith Packard Date: Thu May 23 17:09:32 2002 +0000 Dont require freetype to build with fontconfig fontconfig.pc.in | 1 - 1 file changed, 1 deletion(-) commit 2eafe0904dfcd08e87d125ff6893cb4d4f5a4a95 Author: Keith Packard Date: Thu May 23 17:06:46 2002 +0000 Add pkgconfig control file and fontconfig-config script INSTALL | 17 ++++++++-- Imakefile | 33 +++++++++++++++++- Makefile.in | 18 ++++++++-- README | 13 ++++++++ config/config-subst | 8 +++++ configure.in | 18 ++++++---- fontconfig-config.in | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++ fontconfig.pc.in | 11 ++++++ 8 files changed, 199 insertions(+), 13 deletions(-) commit 1c20b1cc0b7a27f29634f80a9d48cbed8aabc7a9 Author: Keith Packard Date: Thu May 23 16:05:16 2002 +0000 Fonts.dtd had "blanks" instead of "blank" fonts.dtd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 442678fbc4d2654f1cc4b5afcbb9dd646e9c9779 Author: Keith Packard Date: Wed May 22 22:59:41 2002 +0000 Missed a Makefile.in for fontconfig includes fontconfig/Makefile.in | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) commit 0ab36ca8f93f8f07ed81034caf453b79e2922122 Author: Keith Packard Date: Wed May 22 04:37:07 2002 +0000 Replace silly avl sort with qsort, add FcPatternEqual fontconfig/fontconfig.h | 8 +- src/Imakefile | 6 +- src/Makefile.in | 4 +- src/fcavl.c | 419 ------------------------------------------------ src/fcavl.h | 46 ------ src/fcmatch.c | 76 ++++----- src/fcpat.c | 109 ++++++++++++- src/fcxml.c | 9 +- 8 files changed, 162 insertions(+), 515 deletions(-) commit 446bb9c9e0a18d365de0578c6f0daf676e36f168 Author: Keith Packard Date: Tue May 21 17:48:15 2002 +0000 More autoconf cleanup for fontconfig Makefile.in | 8 +++----- config.h.in | 2 +- config/Makedefs.in | 10 +++++++++- configure.in | 55 ++++++++++++++++++++++++---------------------------- fc-cache/Makefile.in | 4 +++- fc-list/Makefile.in | 4 +++- src/Imakefile | 4 ++-- src/Makefile.in | 5 +---- src/fcinit.c | 4 ++-- 9 files changed, 49 insertions(+), 47 deletions(-) commit fb9545b1ba81604405f730de8c39f40b3fdc13bd Author: Keith Packard Date: Tue May 21 17:08:42 2002 +0000 Fix xmkmf build process for fontconfig Imakefile | 2 +- Makefile.in | 54 +++++++++ acconfig.h | 2 - config.h.in | 144 +++++++++++++++++++++++ configure.in | 360 +++++++++++++++++++++++++++++++++++++++++++--------------- cvscompile.sh | 11 +- findfonts | 8 +- fonts.conf.in | 77 ++++++------- fonts.dtd | 13 ++- local.def | 54 +++++++++ setfontdirs | 4 +- 11 files changed, 581 insertions(+), 148 deletions(-) commit 179c39959cc9c19004f8ca948623590e404c8c46 Author: Keith Packard Date: Tue May 21 17:06:22 2002 +0000 Fix autoconf build process for fontconfig config/Makedefs.in | 68 +++ config/config.guess | 1391 +++++++++++++++++++++++++++++++++++++++++++++++ config/config.sub | 1355 +++++++++++++++++++++++++++++++++++++++++++++ config/install.sh | 240 ++++++++ fc-cache/Imakefile | 7 +- fc-cache/Makefile.in | 46 ++ fc-cache/fc-cache.c | 161 ++++-- fc-list/Makefile.in | 46 ++ fontconfig/fontconfig.h | 80 ++- src/Makefile.in | 105 ++++ src/fccache.c | 164 ++++-- src/fccfg.c | 352 ++++++++---- src/fcdir.c | 84 ++- src/fcinit.c | 109 +++- src/fcint.h | 52 +- src/fclist.c | 5 +- src/fcstr.c | 228 +++++++- src/fcxml.c | 215 +++++--- 18 files changed, 4377 insertions(+), 331 deletions(-) commit 1ce2a1bbadc15147e35dbc4c43fae072b8c4805e Author: Matthieu Herrb Date: Sun May 5 17:53:41 2002 +0000 Don't run fc-cache on make install if DESTDIR is set. Instead; run it from Xinstall.sh after XFree86 is installed. fc-cache/Imakefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 28e413038db10e236abb1d6f82c7889d8e52d7a5 Author: Alan Hourihane Date: Wed Apr 10 11:28:10 2002 +0000 put fontconfig-def.cpp in the right place. fontconfig-def.cpp | 170 ------------------------------------------------- src/fontconfig-def.cpp | 170 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 170 insertions(+), 170 deletions(-) commit d82a034f9123558b300c956feec165c50ef7ada2 Author: Alan Hourihane Date: Sun Apr 7 15:19:46 2002 +0000 new preprocessor files. (#5215-#5218, Alexander Gottwald). fontconfig-def.cpp | 170 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 170 insertions(+) commit d9db7b9e94f0aec127066e81b9e7dbbf05cd740f Author: Keith Packard Date: Wed Mar 27 04:33:55 2002 +0000 Fix FT_Get_Next_Char API to match official 2.0.9 released version src/fccharset.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) commit 8c7b2a9d83fbe23e9073a188c7b970f100a91562 Author: Marc Aurele La France Date: Mon Mar 4 21:15:28 2002 +0000 Warning fixes src/fcatomic.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 216fac98e0785e787e32ff354241935a25723e4b Author: Keith Packard Date: Sun Mar 3 18:39:05 2002 +0000 Add match routine that returns list of fonts fontconfig/fontconfig.h | 14 ++ src/fcavl.c | 419 ++++++++++++++++++++++++++++++++++++++++++++++++ src/fcavl.h | 46 ++++++ src/fcmatch.c | 225 ++++++++++++++++++++++---- 4 files changed, 671 insertions(+), 33 deletions(-) commit ee9061efe984a3c5b659449f8db57a03b6bf5d13 Author: Keith Packard Date: Sun Mar 3 18:36:26 2002 +0000 Eliminate duplicate definitions in fcint.h and fontconfig.h src/fcint.h | 6 ------ 1 file changed, 6 deletions(-) commit 5faa099cd5fb8d9d9f868362233929ff36cd0ac8 Author: Keith Packard Date: Sun Mar 3 18:35:22 2002 +0000 fontconfig: bail scanning directory on fatal error src/fcdir.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 17e16fa1108491fa625258bba12e71aaad8a34de Author: Keith Packard Date: Sun Mar 3 18:31:20 2002 +0000 Eliminate compiler warnings src/fccharset.c | 1026 +++++++++++++++++++++++++++---------------------------- 1 file changed, 512 insertions(+), 514 deletions(-) commit a391da8f0f867b8f87b1912a91882b108d163e03 Author: Keith Packard Date: Sun Mar 3 00:19:43 2002 +0000 Add fcatomic.c src/Imakefile | 4 +- src/fcatomic.c | 183 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/fccache.c | 4 ++ 3 files changed, 189 insertions(+), 2 deletions(-) commit 134f6011f347d1bc1b80a3cd435bb10b38d2932e Author: Keith Packard Date: Fri Mar 1 22:06:30 2002 +0000 Add new FcAtomic datatype for config file locking fontconfig/fontconfig.h | 30 +++++++++++++++++++++++++++++- src/Imakefile | 12 ++++++------ src/fccache.c | 34 ++++++++++++++-------------------- src/fcint.h | 9 ++++++++- 4 files changed, 57 insertions(+), 28 deletions(-) commit d23a2a6dfa0ae81298a238899512c7d7c99c5430 Author: Marc Aurele La France Date: Fri Mar 1 17:52:03 2002 +0000 Add missing clean rule Imakefile | 6 ++++++ 1 file changed, 6 insertions(+) commit 9c8e07f19589ba944e7bfb31251228b41a02f787 Author: Keith Packard Date: Fri Mar 1 01:00:54 2002 +0000 Port Xft1 to fontconfig fontconfig/fontconfig.h | 8 +++++++- src/fccache.c | 13 +++++++------ src/fccfg.c | 10 +++++----- src/fcdir.c | 4 ++-- 4 files changed, 21 insertions(+), 14 deletions(-) commit 80c053b725669c1e982cceedb87f04ebb9c6f1e9 Author: Keith Packard Date: Thu Feb 28 16:51:48 2002 +0000 Add better error reporting when loading config file fc-list/fc-list.c | 2 +- fontconfig/fontconfig.h | 16 +++++++++++++++- src/fclist.c | 36 ++++++++++++++++++++++++++++++------ src/fcmatch.c | 38 +++++++++++++++++++++++++++++++------- src/fcxml.c | 12 +++++++++++- 5 files changed, 88 insertions(+), 16 deletions(-) commit c4bd0638c5f14329e71be8f170c30d376fc76972 Author: Marc Aurele La France Date: Tue Feb 26 05:10:30 2002 +0000 Warning fixes fc-cache/fc-cache.c | 13 ++++++++++++- fc-list/fc-list.c | 15 +++++++++++++-- 2 files changed, 25 insertions(+), 3 deletions(-) commit c5350655bef34cc08739bed324a482473b2a01b8 Author: Keith Packard Date: Sun Feb 24 01:23:35 2002 +0000 Check font edit value lists for empty src/fccfg.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bbbaac369186f6d2c21d28a091e4a8b6259f8e8a Author: Keith Packard Date: Fri Feb 22 18:54:07 2002 +0000 fontconfig: some config file parsing mistakes src/fcfreetype.c | 2 +- src/fcint.h | 9 --------- src/fcxml.c | 8 ++++++-- 3 files changed, 7 insertions(+), 12 deletions(-) commit a398554a6d6467956c1c3471e912fb4e969835eb Author: Keith Packard Date: Wed Feb 20 01:01:21 2002 +0000 Remove fcxml.h include file as it cant work anymore anyhow fontconfig/Imakefile | 2 +- fontconfig/fcxml.h | 37 ------------------------------------- 2 files changed, 1 insertion(+), 38 deletions(-) commit 24c90386bbdda9800d5a35c4dbff08682186907f Author: Keith Packard Date: Wed Feb 20 00:32:30 2002 +0000 dont complain about missing optional included font config files src/fcxml.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6e9fc5ded4a36fb3e9e31b96f837b2e54f1cd77c Author: Keith Packard Date: Tue Feb 19 08:33:23 2002 +0000 Automatically initialize the fontconfig library src/fccfg.c | 15 +++++++++------ src/fcinit.c | 4 ++-- src/fcint.h | 4 +++- 3 files changed, 14 insertions(+), 9 deletions(-) commit aae6f7d48744a25899cac28d47458f394defa02a Author: Keith Packard Date: Tue Feb 19 07:50:44 2002 +0000 Eliminate const in FcPatternGetString; too hard. Add FcCharSetCoverage to enumarate Unicode coverage efficiently fontconfig/fontconfig.h | 7 +++++-- src/fccache.c | 4 ++-- src/fccharset.c | 23 ++++++++++++++++++++++- src/fcpat.c | 6 +++--- 4 files changed, 32 insertions(+), 8 deletions(-) commit c2e7c611cbef33e9f93fbb110cd8df61abec67d7 Author: Keith Packard Date: Mon Feb 18 22:29:28 2002 +0000 Switch fontconfig from libxml2 to expat src/Imakefile | 3 +- src/fccharset.c | 12 +- src/fcdbg.c | 20 +- src/fcint.h | 34 +- src/fcname.c | 98 +--- src/fcstr.c | 92 ++- src/fcxml.c | 1764 ++++++++++++++++++++++++++++++++++++------------------- 7 files changed, 1326 insertions(+), 697 deletions(-) commit 2eb26602ffcfb3c3489849210502c4e00b370dfd Author: Keith Packard Date: Fri Feb 15 23:45:33 2002 +0000 fontconfig fc-cache program needs to be executed with correct environment on install fc-cache/Imakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 65018b4a468c3175790dc27dfe37987151ad97d5 Author: Keith Packard Date: Fri Feb 15 07:36:14 2002 +0000 Update to Xft version 2 fc-cache/fc-cache.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit ccb3e93b2754542d08dcd2572402560d76a8ed91 Author: Keith Packard Date: Fri Feb 15 06:01:28 2002 +0000 fontconfig library: build fixes and compiler warning fixes fc-cache/Imakefile | 2 +- fc-list/Imakefile | 2 +- fc-list/fc-list.c | 5 +- fontconfig/fcfreetype.h | 1 + fontconfig/fcprivate.h | 2 +- fontconfig/fcxml.h | 2 +- fontconfig/fontconfig.h | 61 ++++++++--------- src/fccache.c | 176 ++++++++++++++++++++++++++++++------------------ src/fccfg.c | 126 +++++++++++++++++----------------- src/fccharset.c | 23 ++++--- src/fcdir.c | 58 ++++++++-------- src/fcfreetype.c | 106 ++++++++++++++--------------- src/fcinit.c | 2 +- src/fcint.h | 74 ++++++++------------ src/fcmatch.c | 7 +- src/fcname.c | 92 ++++++++++++------------- src/fcpat.c | 10 +-- src/fcstr.c | 32 ++++----- src/fcxml.c | 135 +++++++++++++++++++------------------ 19 files changed, 473 insertions(+), 443 deletions(-) commit 3be03bed3955e91882b65315fdf8a68e4b453431 Author: Keith Packard Date: Fri Feb 15 00:49:44 2002 +0000 Update fontconfig and libxml2 to get them working with in-tree build process fc-cache/Imakefile | 12 +++--------- fc-list/Imakefile | 13 +++---------- src/Imakefile | 55 ++++++------------------------------------------------ 3 files changed, 12 insertions(+), 68 deletions(-) commit 82e6d72059aaa4beccb2ec39706ef86e99e479de Author: Keith Packard Date: Thu Feb 14 23:34:13 2002 +0000 Add new font configuration library which forms the basis of the new version of Xft commit 24330d27f88bbf387d92128d2c21e005f2563e93 Author: Keith Packard Date: Thu Feb 14 23:34:13 2002 +0000 Initial revision AUTHORS | 1 + COPYING | 22 + ChangeLog | 0 INSTALL | 3 + Imakefile | 25 + NEWS | 0 README | 2 + acconfig.h | 2 + configure.in | 202 +++++++ cvscompile.sh | 6 + doc/fontconfig.tex | 55 ++ fc-cache/Imakefile | 19 + fc-cache/fc-cache.c | 145 +++++ fc-cache/fc-cache.man | 45 ++ fc-list/Imakefile | 17 + fc-list/fc-list.c | 128 ++++ fc-list/fc-list.man | 36 ++ findfonts | 8 + fontconfig/Imakefile | 8 + fontconfig/fcfreetype.h | 34 ++ fontconfig/fcprivate.h | 117 ++++ fontconfig/fcxml.h | 37 ++ fontconfig/fontconfig.h | 551 +++++++++++++++++ fonts.conf.in | 191 ++++++ fonts.dtd | 165 +++++ setfontdirs | 19 + src/Imakefile | 90 +++ src/fcblanks.c | 84 +++ src/fccache.c | 592 ++++++++++++++++++ src/fccfg.c | 1369 ++++++++++++++++++++++++++++++++++++++++++ src/fccharset.c | 1521 +++++++++++++++++++++++++++++++++++++++++++++++ src/fcdbg.c | 272 +++++++++ src/fcdefault.c | 87 +++ src/fcdir.c | 178 ++++++ src/fcfreetype.c | 236 ++++++++ src/fcfs.c | 82 +++ src/fcinit.c | 174 ++++++ src/fcint.h | 480 +++++++++++++++ src/fclist.c | 442 ++++++++++++++ src/fcmatch.c | 347 +++++++++++ src/fcmatrix.c | 112 ++++ src/fcname.c | 621 +++++++++++++++++++ src/fcpat.c | 491 +++++++++++++++ src/fcstr.c | 188 ++++++ src/fcxml.c | 1032 ++++++++++++++++++++++++++++++++ src/fontconfig.man | 1113 ++++++++++++++++++++++++++++++++++ 46 files changed, 11349 insertions(+) fontconfig-2.11.1/depcomp0000755000076400007640000005601612177675036012264 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2013-05-30.07; # UTC # Copyright (C) 1999-2013 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # 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 Alexandre Oliva . case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by 'PROGRAMS ARGS'. object Object file output by 'PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac # Get the directory component of the given path, and save it in the # global variables '$dir'. Note that this directory component will # be either empty or ending with a '/' character. This is deliberate. set_dir_from () { case $1 in */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; *) dir=;; esac } # Get the suffix-stripped basename of the given path, and save it the # global variable '$base'. set_base_from () { base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` } # If no dependency file was actually created by the compiler invocation, # we still have to create a dummy depfile, to avoid errors with the # Makefile "include basename.Plo" scheme. make_dummy_depfile () { echo "#dummy" > "$depfile" } # Factor out some common post-processing of the generated depfile. # Requires the auxiliary global variable '$tmpdepfile' to be set. aix_post_process_depfile () { # If the compiler actually managed to produce a dependency file, # post-process it. if test -f "$tmpdepfile"; then # Each line is of the form 'foo.o: dependency.h'. # Do two passes, one to just change these to # $object: dependency.h # and one to simply output # dependency.h: # which is needed to avoid the deleted-header problem. { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" } > "$depfile" rm -f "$tmpdepfile" else make_dummy_depfile fi } # A tabulation character. tab=' ' # A newline character. nl=' ' # Character ranges might be problematic outside the C locale. # These definitions help. upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ lower=abcdefghijklmnopqrstuvwxyz digits=0123456789 alpha=${upper}${lower} if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Avoid interferences from the environment. gccflag= dashmflag= # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then # This is just like msvc7 but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvc7 fi if test "$depmode" = xlc; then # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. gccflag=-qmakedep=gcc,-MF depmode=gcc fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. ## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. ## (see the conditional assignment to $gccflag above). ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). Also, it might not be ## supported by the other compilers which use the 'gcc' depmode. ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The second -e expression handles DOS-style file names with drive # letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the "deleted header file" problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. ## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like '#:fec' to the end of the # dependency line. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ | tr "$nl" ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" ;; xlc) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done aix_post_process_depfile ;; tcc) # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 # FIXME: That version still under development at the moment of writing. # Make that this statement remains true also for stable, released # versions. # It will wrap lines (doesn't matter whether long or short) with a # trailing '\', as in: # # foo.o : \ # foo.c \ # foo.h \ # # It will put a trailing '\' even on the last line, and will use leading # spaces rather than leading tabs (at least since its commit 0394caf7 # "Emit spaces for -MD"). "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. # We have to change lines of the first kind to '$object: \'. sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" # And for each line of the second kind, we have to emit a 'dep.h:' # dummy dependency, to avoid the deleted-header problem. sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; ## The order of this option in the case statement is important, since the ## shell code in configure will try each of these formats in the order ## listed in this file. A plain '-MD' option would be understood by many ## compilers, so we must ensure this comes after the gcc and icc options. pgcc) # Portland's C compiler understands '-MD'. # Will always output deps to 'file.d' where file is the root name of the # source file under compilation, even if file resides in a subdirectory. # The object file name does not affect the name of the '.d' file. # pgcc 10.2 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using '\' : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... set_dir_from "$object" # Use the source, not the object, to determine the base name, since # that's sadly what pgcc will do too. set_base_from "$source" tmpdepfile=$base.d # For projects that build the same source file twice into different object # files, the pgcc approach of using the *source* file root name can cause # problems in parallel builds. Use a locking strategy to avoid stomping on # the same $tmpdepfile. lockdir=$base.d-lock trap " echo '$0: caught signal, cleaning up...' >&2 rmdir '$lockdir' exit 1 " 1 2 13 15 numtries=100 i=$numtries while test $i -gt 0; do # mkdir is a portable test-and-set. if mkdir "$lockdir" 2>/dev/null; then # This process acquired the lock. "$@" -MD stat=$? # Release the lock. rmdir "$lockdir" break else # If the lock is being held by a different process, wait # until the winning process is done or we timeout. while test -d "$lockdir" && test $i -gt 0; do sleep 1 i=`expr $i - 1` done fi i=`expr $i - 1` done trap - 1 2 13 15 if test $i -le 0; then echo "$0: failed to acquire lock after $numtries attempts" >&2 echo "$0: check lockdir '$lockdir'" >&2 exit 1 fi if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in 'foo.d' instead, so we check for that too. # Subdirectories are respected. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then # Libtool generates 2 separate objects for the 2 libraries. These # two compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir$base.o.d # libtool 1.5 tmpdepfile2=$dir.libs/$base.o.d # Likewise. tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d "$@" -MD fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done # Same post-processing that is required for AIX mode. aix_post_process_depfile ;; msvc7) if test "$libtool" = yes; then showIncludes=-Wc,-showIncludes else showIncludes=-showIncludes fi "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The first sed program below extracts the file names and escapes # backslashes for cygpath. The second sed program outputs the file # name when reading, but also accumulates all include files in the # hold buffer in order to output them again at the end. This only # works with sed implementations that can handle large buffers. sed < "$tmpdepfile" -n ' /^Note: including file: *\(.*\)/ { s//\1/ s/\\/\\\\/g p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g s/\(.*\)/'"$tab"'\1 \\/p s/.\(.*\) \\/\1:/ H $ { s/.*/'"$tab"'/ G p }' >> "$depfile" echo >> "$depfile" # make sure the fragment doesn't end with a backslash rm -f "$tmpdepfile" ;; msvc7msys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for ':' # in the target name. This is to cope with DOS-style filenames: # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this sed invocation # correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process the last invocation # correctly. Breaking it into two sed invocations is a workaround. sed '1,2d' "$tmpdepfile" \ | tr ' ' "$nl" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E \ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: fontconfig-2.11.1/INSTALL0000664000076400007640000000241312267155333011723 00000000000000Fontconfig is built with the traditional configure script: $ ./configure --sysconfdir=/etc --prefix=/usr --mandir=/usr/share/man If you checked out from the git repository (as opposed to downloading a tarball), you need to run autogen.sh instead of configure: $ ./autogen.sh --sysconfdir=/etc --prefix=/usr --mandir=/usr/share/man Either way, that should generate valid Makefiles, then: $ make $ make install If you're going to package fontconfig for release, there are several important steps: 1. Create new version sh new-version.sh 2.xx.xx 2. rebuild the configuration files with autogen.sh ./autogen.sh --sysconfdir=/etc --prefix=/usr --mandir=/usr/share/man --localstatedir=/var 3. make distcheck 4. Copy ChangeLog-2.x.y and fontconfig-2.x.y.tar.gz to freedesktop.org:/srv/www.freedesktop.org/www/software/fontconfig/release 5. Update the Fontconfig Devel wiki page http://fontconfig.org/wiki/Devel 6. Update the fontconfig documentation scp -rp doc/fontconfig-user.html doc/fontconfig-devel freedesktop.org:/srv/www.freedesktop.org/www/software/fontconfig 7. Compute md5sums for release files: md5sum fontconfig-2.4.x.tar.gz ChangeLog-2.4.x 8. Post a note to fontconfig@fontconfig.org. Include the md5sums. gpg sign the message. fontconfig-2.11.1/fontconfig/0000775000076400007640000000000012313745411013100 500000000000000fontconfig-2.11.1/fontconfig/fcprivate.h0000664000076400007640000001005312267155334015162 00000000000000/* * fontconfig/fontconfig/fcprivate.h * * Copyright © 2001 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. */ #ifndef _FCPRIVATE_H_ #define _FCPRIVATE_H_ /* * I tried this with functions that took va_list* arguments * but portability concerns made me change these functions * into macros (sigh). */ #define FcPatternVapBuild(result, orig, va) \ { \ FcPattern *__p__ = (orig); \ const char *__o__; \ FcValue __v__; \ \ if (!__p__) \ { \ __p__ = FcPatternCreate (); \ if (!__p__) \ goto _FcPatternVapBuild_bail0; \ } \ for (;;) \ { \ __o__ = va_arg (va, const char *); \ if (!__o__) \ break; \ __v__.type = va_arg (va, int); \ switch (__v__.type) { \ case FcTypeUnknown: \ case FcTypeVoid: \ goto _FcPatternVapBuild_bail1; \ case FcTypeInteger: \ __v__.u.i = va_arg (va, int); \ break; \ case FcTypeDouble: \ __v__.u.d = va_arg (va, double); \ break; \ case FcTypeString: \ __v__.u.s = va_arg (va, const FcChar8 *); \ break; \ case FcTypeBool: \ __v__.u.b = va_arg (va, FcBool); \ break; \ case FcTypeMatrix: \ __v__.u.m = va_arg (va, const FcMatrix *); \ break; \ case FcTypeCharSet: \ __v__.u.c = va_arg (va, const FcCharSet *); \ break; \ case FcTypeFTFace: \ __v__.u.f = va_arg (va, FT_Face); \ break; \ case FcTypeLangSet: \ __v__.u.l = va_arg (va, const FcLangSet *); \ break; \ } \ if (!FcPatternAdd (__p__, __o__, __v__, FcTrue)) \ goto _FcPatternVapBuild_bail1; \ } \ result = __p__; \ goto _FcPatternVapBuild_return; \ \ _FcPatternVapBuild_bail1: \ if (!orig) \ FcPatternDestroy (__p__); \ _FcPatternVapBuild_bail0: \ result = (void*)0; \ \ _FcPatternVapBuild_return: \ ; \ } #define FcObjectSetVapBuild(__ret__, __first__, __va__) \ { \ FcObjectSet *__os__; \ const char *__ob__; \ \ __ret__ = 0; \ __os__ = FcObjectSetCreate (); \ if (!__os__) \ goto _FcObjectSetVapBuild_bail0; \ __ob__ = __first__; \ while (__ob__) \ { \ if (!FcObjectSetAdd (__os__, __ob__)) \ goto _FcObjectSetVapBuild_bail1; \ __ob__ = va_arg (__va__, const char *); \ } \ __ret__ = __os__; \ \ _FcObjectSetVapBuild_bail1: \ if (!__ret__ && __os__) \ FcObjectSetDestroy (__os__); \ _FcObjectSetVapBuild_bail0: \ ; \ } #endif /* _FCPRIVATE_H_ */ fontconfig-2.11.1/fontconfig/fcfreetype.h0000664000076400007640000000363712267155334015345 00000000000000/* * fontconfig/fontconfig/fcfreetype.h * * Copyright © 2001 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. */ #ifndef _FCFREETYPE_H_ #define _FCFREETYPE_H_ #include #include FT_FREETYPE_H #ifndef FcPublic #define FcPublic #endif _FCFUNCPROTOBEGIN FcPublic FT_UInt FcFreeTypeCharIndex (FT_Face face, FcChar32 ucs4); FcPublic FcCharSet * FcFreeTypeCharSetAndSpacing (FT_Face face, FcBlanks *blanks, int *spacing); FcPublic FcCharSet * FcFreeTypeCharSet (FT_Face face, FcBlanks *blanks); FcPublic FcResult FcPatternGetFTFace (const FcPattern *p, const char *object, int n, FT_Face *f); FcPublic FcBool FcPatternAddFTFace (FcPattern *p, const char *object, const FT_Face f); FcPublic FcPattern * FcFreeTypeQueryFace (const FT_Face face, const FcChar8 *file, int id, FcBlanks *blanks); _FCFUNCPROTOEND #endif fontconfig-2.11.1/fontconfig/Makefile.am0000664000076400007640000000030712267155334015063 00000000000000fontconfigincludedir=$(includedir)/fontconfig fontconfig_headers= \ fontconfig.h \ fcfreetype.h \ fcprivate.h fontconfiginclude_HEADERS = $(fontconfig_headers) -include $(top_srcdir)/git.mk fontconfig-2.11.1/fontconfig/Makefile.in0000664000076400007640000004271112313745337015101 00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = fontconfig DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(fontconfiginclude_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(fontconfigincludedir)" HEADERS = $(fontconfiginclude_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASECONFIGDIR = @BASECONFIGDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CONFIGDIR = @CONFIGDIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DOCMAN3 = @DOCMAN3@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@ EXPAT_CFLAGS = @EXPAT_CFLAGS@ EXPAT_LIBS = @EXPAT_LIBS@ FC_ADD_FONTS = @FC_ADD_FONTS@ FC_CACHEDIR = @FC_CACHEDIR@ FC_DEFAULT_FONTS = @FC_DEFAULT_FONTS@ FC_FONTDATE = @FC_FONTDATE@ FC_FONTPATH = @FC_FONTPATH@ FGREP = @FGREP@ FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ FREETYPE_LIBS = @FREETYPE_LIBS@ GIT = @GIT@ GPERF = @GPERF@ GREP = @GREP@ HASDOCBOOK = @HASDOCBOOK@ HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@ ICONV_CFLAGS = @ICONV_CFLAGS@ ICONV_LIBS = @ICONV_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBT_CURRENT = @LIBT_CURRENT@ LIBT_CURRENT_MINUS_AGE = @LIBT_CURRENT_MINUS_AGE@ LIBT_REVISION = @LIBT_REVISION@ LIBT_VERSION_INFO = @LIBT_VERSION_INFO@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ RM = @RM@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TEMPLATEDIR = @TEMPLATEDIR@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XMLDIR = @XMLDIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ ax_pthread_config = @ax_pthread_config@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fc_cachedir = @fc_cachedir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ ms_librarian = @ms_librarian@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfigdir = @pkgconfigdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ fontconfigincludedir = $(includedir)/fontconfig fontconfig_headers = \ fontconfig.h \ fcfreetype.h \ fcprivate.h fontconfiginclude_HEADERS = $(fontconfig_headers) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fontconfig/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fontconfig/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-fontconfigincludeHEADERS: $(fontconfiginclude_HEADERS) @$(NORMAL_INSTALL) @list='$(fontconfiginclude_HEADERS)'; test -n "$(fontconfigincludedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(fontconfigincludedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(fontconfigincludedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(fontconfigincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(fontconfigincludedir)" || exit $$?; \ done uninstall-fontconfigincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(fontconfiginclude_HEADERS)'; test -n "$(fontconfigincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(fontconfigincludedir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(fontconfigincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-fontconfigincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-fontconfigincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool cscopelist-am ctags ctags-am distclean \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-fontconfigincludeHEADERS \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am \ uninstall-fontconfigincludeHEADERS -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fontconfig-2.11.1/fontconfig/fontconfig.h0000664000076400007640000006040112313745240015326 00000000000000/* * fontconfig/fontconfig/fontconfig.h * * Copyright © 2001 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. */ #ifndef _FONTCONFIG_H_ #define _FONTCONFIG_H_ #include #include #include #if defined(__GNUC__) && (__GNUC__ >= 4) #define FC_ATTRIBUTE_SENTINEL(x) __attribute__((__sentinel__(0))) #else #define FC_ATTRIBUTE_SENTINEL(x) #endif #ifndef FcPublic #define FcPublic #endif typedef unsigned char FcChar8; typedef unsigned short FcChar16; typedef unsigned int FcChar32; typedef int FcBool; /* * Current Fontconfig version number. This same number * must appear in the fontconfig configure.in file. Yes, * it'a a pain to synchronize version numbers like this. */ #define FC_MAJOR 2 #define FC_MINOR 11 #define FC_REVISION 1 #define FC_VERSION ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION)) /* * Current font cache file format version * This is appended to the cache files so that multiple * versions of the library will peacefully coexist * * Change this value whenever the disk format for the cache file * changes in any non-compatible way. Try to avoid such changes as * it means multiple copies of the font information. */ #define FC_CACHE_VERSION "4" #define FcTrue 1 #define FcFalse 0 #define FC_FAMILY "family" /* String */ #define FC_STYLE "style" /* String */ #define FC_SLANT "slant" /* Int */ #define FC_WEIGHT "weight" /* Int */ #define FC_SIZE "size" /* Double */ #define FC_ASPECT "aspect" /* Double */ #define FC_PIXEL_SIZE "pixelsize" /* Double */ #define FC_SPACING "spacing" /* Int */ #define FC_FOUNDRY "foundry" /* String */ #define FC_ANTIALIAS "antialias" /* Bool (depends) */ #define FC_HINTING "hinting" /* Bool (true) */ #define FC_HINT_STYLE "hintstyle" /* Int */ #define FC_VERTICAL_LAYOUT "verticallayout" /* Bool (false) */ #define FC_AUTOHINT "autohint" /* Bool (false) */ /* FC_GLOBAL_ADVANCE is deprecated. this is simply ignored on freetype 2.4.5 or later */ #define FC_GLOBAL_ADVANCE "globaladvance" /* Bool (true) */ #define FC_WIDTH "width" /* Int */ #define FC_FILE "file" /* String */ #define FC_INDEX "index" /* Int */ #define FC_FT_FACE "ftface" /* FT_Face */ #define FC_RASTERIZER "rasterizer" /* String (deprecated) */ #define FC_OUTLINE "outline" /* Bool */ #define FC_SCALABLE "scalable" /* 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 */ #define FC_SOURCE "source" /* String (deprecated) */ #define FC_CHARSET "charset" /* CharSet */ #define FC_LANG "lang" /* String RFC 3066 langs */ #define FC_FONTVERSION "fontversion" /* Int from 'head' table */ #define FC_FULLNAME "fullname" /* String */ #define FC_FAMILYLANG "familylang" /* String RFC 3066 langs */ #define FC_STYLELANG "stylelang" /* String RFC 3066 langs */ #define FC_FULLNAMELANG "fullnamelang" /* String RFC 3066 langs */ #define FC_CAPABILITY "capability" /* String */ #define FC_FONTFORMAT "fontformat" /* String */ #define FC_EMBOLDEN "embolden" /* Bool - true if emboldening needed*/ #define FC_EMBEDDED_BITMAP "embeddedbitmap" /* Bool - true to enable embedded bitmaps */ #define FC_DECORATIVE "decorative" /* Bool - true if style is a decorative variant */ #define FC_LCD_FILTER "lcdfilter" /* Int */ #define FC_FONT_FEATURES "fontfeatures" /* String */ #define FC_NAMELANG "namelang" /* String RFC 3866 langs */ #define FC_PRGNAME "prgname" /* String */ #define FC_HASH "hash" /* String */ #define FC_POSTSCRIPT_NAME "postscriptname" /* String */ #define FC_CACHE_SUFFIX ".cache-" FC_CACHE_VERSION #define FC_DIR_CACHE_FILE "fonts.cache-" FC_CACHE_VERSION #define FC_USER_CACHE_FILE ".fonts.cache-" FC_CACHE_VERSION /* Adjust outline rasterizer */ #define FC_CHAR_WIDTH "charwidth" /* Int */ #define FC_CHAR_HEIGHT "charheight"/* Int */ #define FC_MATRIX "matrix" /* FcMatrix */ #define FC_WEIGHT_THIN 0 #define FC_WEIGHT_EXTRALIGHT 40 #define FC_WEIGHT_ULTRALIGHT FC_WEIGHT_EXTRALIGHT #define FC_WEIGHT_LIGHT 50 #define FC_WEIGHT_BOOK 75 #define FC_WEIGHT_REGULAR 80 #define FC_WEIGHT_NORMAL FC_WEIGHT_REGULAR #define FC_WEIGHT_MEDIUM 100 #define FC_WEIGHT_DEMIBOLD 180 #define FC_WEIGHT_SEMIBOLD FC_WEIGHT_DEMIBOLD #define FC_WEIGHT_BOLD 200 #define FC_WEIGHT_EXTRABOLD 205 #define FC_WEIGHT_ULTRABOLD FC_WEIGHT_EXTRABOLD #define FC_WEIGHT_BLACK 210 #define FC_WEIGHT_HEAVY FC_WEIGHT_BLACK #define FC_WEIGHT_EXTRABLACK 215 #define FC_WEIGHT_ULTRABLACK FC_WEIGHT_EXTRABLACK #define FC_SLANT_ROMAN 0 #define FC_SLANT_ITALIC 100 #define FC_SLANT_OBLIQUE 110 #define FC_WIDTH_ULTRACONDENSED 50 #define FC_WIDTH_EXTRACONDENSED 63 #define FC_WIDTH_CONDENSED 75 #define FC_WIDTH_SEMICONDENSED 87 #define FC_WIDTH_NORMAL 100 #define FC_WIDTH_SEMIEXPANDED 113 #define FC_WIDTH_EXPANDED 125 #define FC_WIDTH_EXTRAEXPANDED 150 #define FC_WIDTH_ULTRAEXPANDED 200 #define FC_PROPORTIONAL 0 #define FC_DUAL 90 #define FC_MONO 100 #define FC_CHARCELL 110 /* sub-pixel order */ #define FC_RGBA_UNKNOWN 0 #define FC_RGBA_RGB 1 #define FC_RGBA_BGR 2 #define FC_RGBA_VRGB 3 #define FC_RGBA_VBGR 4 #define FC_RGBA_NONE 5 /* hinting style */ #define FC_HINT_NONE 0 #define FC_HINT_SLIGHT 1 #define FC_HINT_MEDIUM 2 #define FC_HINT_FULL 3 /* LCD filter */ #define FC_LCD_NONE 0 #define FC_LCD_DEFAULT 1 #define FC_LCD_LIGHT 2 #define FC_LCD_LEGACY 3 typedef enum _FcType { FcTypeUnknown = -1, FcTypeVoid, FcTypeInteger, FcTypeDouble, FcTypeString, FcTypeBool, FcTypeMatrix, FcTypeCharSet, FcTypeFTFace, FcTypeLangSet } FcType; typedef struct _FcMatrix { double xx, xy, yx, yy; } FcMatrix; #define FcMatrixInit(m) ((m)->xx = (m)->yy = 1, \ (m)->xy = (m)->yx = 0) /* * A data structure to represent the available glyphs in a font. * This is represented as a sparse boolean btree. */ typedef struct _FcCharSet FcCharSet; typedef struct _FcObjectType { const char *object; FcType type; } FcObjectType; typedef struct _FcConstant { const FcChar8 *name; const char *object; int value; } FcConstant; typedef enum _FcResult { FcResultMatch, FcResultNoMatch, FcResultTypeMismatch, FcResultNoId, FcResultOutOfMemory } FcResult; typedef struct _FcPattern FcPattern; typedef struct _FcLangSet FcLangSet; typedef struct _FcValue { FcType type; union { const FcChar8 *s; int i; FcBool b; double d; const FcMatrix *m; const FcCharSet *c; void *f; const FcLangSet *l; } u; } FcValue; typedef struct _FcFontSet { int nfont; int sfont; FcPattern **fonts; } FcFontSet; typedef struct _FcObjectSet { int nobject; int sobject; const char **objects; } FcObjectSet; typedef enum _FcMatchKind { FcMatchPattern, FcMatchFont, FcMatchScan } FcMatchKind; typedef enum _FcLangResult { FcLangEqual = 0, FcLangDifferentCountry = 1, FcLangDifferentTerritory = 1, FcLangDifferentLang = 2 } FcLangResult; typedef enum _FcSetName { FcSetSystem = 0, FcSetApplication = 1 } FcSetName; typedef struct _FcAtomic FcAtomic; #if defined(__cplusplus) || defined(c_plusplus) /* for C++ V2.0 */ #define _FCFUNCPROTOBEGIN extern "C" { /* do not leave open across includes */ #define _FCFUNCPROTOEND } #else #define _FCFUNCPROTOBEGIN #define _FCFUNCPROTOEND #endif typedef enum { FcEndianBig, FcEndianLittle } FcEndian; typedef struct _FcConfig FcConfig; typedef struct _FcGlobalCache FcFileCache; typedef struct _FcBlanks FcBlanks; typedef struct _FcStrList FcStrList; typedef struct _FcStrSet FcStrSet; typedef struct _FcCache FcCache; _FCFUNCPROTOBEGIN /* fcblanks.c */ FcPublic FcBlanks * FcBlanksCreate (void); FcPublic void FcBlanksDestroy (FcBlanks *b); FcPublic FcBool FcBlanksAdd (FcBlanks *b, FcChar32 ucs4); FcPublic FcBool FcBlanksIsMember (FcBlanks *b, FcChar32 ucs4); /* fccache.c */ FcPublic const FcChar8 * FcCacheDir(const FcCache *c); FcPublic FcFontSet * FcCacheCopySet(const FcCache *c); FcPublic const FcChar8 * FcCacheSubdir (const FcCache *c, int i); FcPublic int FcCacheNumSubdir (const FcCache *c); FcPublic int FcCacheNumFont (const FcCache *c); FcPublic FcBool FcDirCacheUnlink (const FcChar8 *dir, FcConfig *config); FcPublic FcBool FcDirCacheValid (const FcChar8 *cache_file); FcPublic FcBool FcDirCacheClean (const FcChar8 *cache_dir, FcBool verbose); FcPublic void FcCacheCreateTagFile (const FcConfig *config); /* fccfg.c */ FcPublic FcChar8 * FcConfigHome (void); FcPublic FcBool FcConfigEnableHome (FcBool enable); FcPublic FcChar8 * FcConfigFilename (const FcChar8 *url); FcPublic FcConfig * FcConfigCreate (void); FcPublic FcConfig * FcConfigReference (FcConfig *config); FcPublic void FcConfigDestroy (FcConfig *config); FcPublic FcBool FcConfigSetCurrent (FcConfig *config); FcPublic FcConfig * FcConfigGetCurrent (void); FcPublic FcBool FcConfigUptoDate (FcConfig *config); FcPublic FcBool FcConfigBuildFonts (FcConfig *config); FcPublic FcStrList * FcConfigGetFontDirs (FcConfig *config); FcPublic FcStrList * FcConfigGetConfigDirs (FcConfig *config); FcPublic FcStrList * FcConfigGetConfigFiles (FcConfig *config); FcPublic FcChar8 * FcConfigGetCache (FcConfig *config); FcPublic FcBlanks * FcConfigGetBlanks (FcConfig *config); FcPublic FcStrList * FcConfigGetCacheDirs (const FcConfig *config); FcPublic int FcConfigGetRescanInterval (FcConfig *config); FcPublic FcBool FcConfigSetRescanInterval (FcConfig *config, int rescanInterval); FcPublic FcFontSet * FcConfigGetFonts (FcConfig *config, FcSetName set); FcPublic FcBool FcConfigAppFontAddFile (FcConfig *config, const FcChar8 *file); FcPublic FcBool FcConfigAppFontAddDir (FcConfig *config, const FcChar8 *dir); FcPublic void FcConfigAppFontClear (FcConfig *config); FcPublic FcBool FcConfigSubstituteWithPat (FcConfig *config, FcPattern *p, FcPattern *p_pat, FcMatchKind kind); FcPublic FcBool FcConfigSubstitute (FcConfig *config, FcPattern *p, FcMatchKind kind); FcPublic const FcChar8 * FcConfigGetSysRoot (const FcConfig *config); FcPublic void FcConfigSetSysRoot (FcConfig *config, const FcChar8 *sysroot); /* fccharset.c */ FcPublic FcCharSet* FcCharSetCreate (void); /* deprecated alias for FcCharSetCreate */ FcPublic FcCharSet * FcCharSetNew (void); FcPublic void FcCharSetDestroy (FcCharSet *fcs); FcPublic FcBool FcCharSetAddChar (FcCharSet *fcs, FcChar32 ucs4); FcPublic FcBool FcCharSetDelChar (FcCharSet *fcs, FcChar32 ucs4); FcPublic FcCharSet* FcCharSetCopy (FcCharSet *src); FcPublic FcBool FcCharSetEqual (const FcCharSet *a, const FcCharSet *b); FcPublic FcCharSet* FcCharSetIntersect (const FcCharSet *a, const FcCharSet *b); FcPublic FcCharSet* FcCharSetUnion (const FcCharSet *a, const FcCharSet *b); FcPublic FcCharSet* FcCharSetSubtract (const FcCharSet *a, const FcCharSet *b); FcPublic FcBool FcCharSetMerge (FcCharSet *a, const FcCharSet *b, FcBool *changed); FcPublic FcBool FcCharSetHasChar (const FcCharSet *fcs, FcChar32 ucs4); FcPublic FcChar32 FcCharSetCount (const FcCharSet *a); FcPublic FcChar32 FcCharSetIntersectCount (const FcCharSet *a, const FcCharSet *b); FcPublic FcChar32 FcCharSetSubtractCount (const FcCharSet *a, const FcCharSet *b); FcPublic FcBool FcCharSetIsSubset (const FcCharSet *a, const FcCharSet *b); #define FC_CHARSET_MAP_SIZE (256/32) #define FC_CHARSET_DONE ((FcChar32) -1) FcPublic FcChar32 FcCharSetFirstPage (const FcCharSet *a, FcChar32 map[FC_CHARSET_MAP_SIZE], FcChar32 *next); FcPublic FcChar32 FcCharSetNextPage (const FcCharSet *a, FcChar32 map[FC_CHARSET_MAP_SIZE], FcChar32 *next); /* * old coverage API, rather hard to use correctly */ FcPublic FcChar32 FcCharSetCoverage (const FcCharSet *a, FcChar32 page, FcChar32 *result); /* fcdbg.c */ FcPublic void FcValuePrint (const FcValue v); FcPublic void FcPatternPrint (const FcPattern *p); FcPublic void FcFontSetPrint (const FcFontSet *s); /* fcdefault.c */ FcPublic FcStrSet * FcGetDefaultLangs (void); FcPublic void FcDefaultSubstitute (FcPattern *pattern); /* fcdir.c */ FcPublic FcBool FcFileIsDir (const FcChar8 *file); FcPublic FcBool FcFileScan (FcFontSet *set, FcStrSet *dirs, FcFileCache *cache, FcBlanks *blanks, const FcChar8 *file, FcBool force); FcPublic FcBool FcDirScan (FcFontSet *set, FcStrSet *dirs, FcFileCache *cache, FcBlanks *blanks, const FcChar8 *dir, FcBool force); FcPublic FcBool 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); FcPublic FcCache * FcDirCacheLoadFile (const FcChar8 *cache_file, struct stat *file_stat); FcPublic void FcDirCacheUnload (FcCache *cache); /* fcfreetype.c */ FcPublic FcPattern * FcFreeTypeQuery (const FcChar8 *file, int id, FcBlanks *blanks, int *count); /* fcfs.c */ FcPublic FcFontSet * FcFontSetCreate (void); FcPublic void FcFontSetDestroy (FcFontSet *s); FcPublic FcBool FcFontSetAdd (FcFontSet *s, FcPattern *font); /* fcinit.c */ FcPublic FcConfig * FcInitLoadConfig (void); FcPublic FcConfig * FcInitLoadConfigAndFonts (void); FcPublic FcBool FcInit (void); FcPublic void FcFini (void); FcPublic int FcGetVersion (void); FcPublic FcBool FcInitReinitialize (void); FcPublic FcBool FcInitBringUptoDate (void); /* fclang.c */ FcPublic FcStrSet * FcGetLangs (void); FcPublic FcChar8 * FcLangNormalize (const FcChar8 *lang); FcPublic const FcCharSet * FcLangGetCharSet (const FcChar8 *lang); FcPublic FcLangSet* FcLangSetCreate (void); FcPublic void FcLangSetDestroy (FcLangSet *ls); FcPublic FcLangSet* FcLangSetCopy (const FcLangSet *ls); FcPublic FcBool FcLangSetAdd (FcLangSet *ls, const FcChar8 *lang); FcPublic FcBool FcLangSetDel (FcLangSet *ls, const FcChar8 *lang); FcPublic FcLangResult FcLangSetHasLang (const FcLangSet *ls, const FcChar8 *lang); FcPublic FcLangResult FcLangSetCompare (const FcLangSet *lsa, const FcLangSet *lsb); FcPublic FcBool FcLangSetContains (const FcLangSet *lsa, const FcLangSet *lsb); FcPublic FcBool FcLangSetEqual (const FcLangSet *lsa, const FcLangSet *lsb); FcPublic FcChar32 FcLangSetHash (const FcLangSet *ls); FcPublic FcStrSet * FcLangSetGetLangs (const FcLangSet *ls); FcPublic FcLangSet * FcLangSetUnion (const FcLangSet *a, const FcLangSet *b); FcPublic FcLangSet * FcLangSetSubtract (const FcLangSet *a, const FcLangSet *b); /* fclist.c */ FcPublic FcObjectSet * FcObjectSetCreate (void); FcPublic FcBool FcObjectSetAdd (FcObjectSet *os, const char *object); FcPublic void FcObjectSetDestroy (FcObjectSet *os); FcPublic FcObjectSet * FcObjectSetVaBuild (const char *first, va_list va); FcPublic FcObjectSet * FcObjectSetBuild (const char *first, ...) FC_ATTRIBUTE_SENTINEL(0); FcPublic FcFontSet * FcFontSetList (FcConfig *config, FcFontSet **sets, int nsets, FcPattern *p, FcObjectSet *os); FcPublic FcFontSet * FcFontList (FcConfig *config, FcPattern *p, FcObjectSet *os); /* fcatomic.c */ FcPublic FcAtomic * FcAtomicCreate (const FcChar8 *file); FcPublic FcBool FcAtomicLock (FcAtomic *atomic); FcPublic FcChar8 * FcAtomicNewFile (FcAtomic *atomic); FcPublic FcChar8 * FcAtomicOrigFile (FcAtomic *atomic); FcPublic FcBool FcAtomicReplaceOrig (FcAtomic *atomic); FcPublic void FcAtomicDeleteNew (FcAtomic *atomic); FcPublic void FcAtomicUnlock (FcAtomic *atomic); FcPublic void FcAtomicDestroy (FcAtomic *atomic); /* fcmatch.c */ FcPublic FcPattern * FcFontSetMatch (FcConfig *config, FcFontSet **sets, int nsets, FcPattern *p, FcResult *result); FcPublic FcPattern * FcFontMatch (FcConfig *config, FcPattern *p, FcResult *result); FcPublic FcPattern * FcFontRenderPrepare (FcConfig *config, FcPattern *pat, FcPattern *font); FcPublic FcFontSet * FcFontSetSort (FcConfig *config, FcFontSet **sets, int nsets, FcPattern *p, FcBool trim, FcCharSet **csp, FcResult *result); FcPublic FcFontSet * FcFontSort (FcConfig *config, FcPattern *p, FcBool trim, FcCharSet **csp, FcResult *result); FcPublic void FcFontSetSortDestroy (FcFontSet *fs); /* fcmatrix.c */ FcPublic FcMatrix * FcMatrixCopy (const FcMatrix *mat); FcPublic FcBool FcMatrixEqual (const FcMatrix *mat1, const FcMatrix *mat2); FcPublic void FcMatrixMultiply (FcMatrix *result, const FcMatrix *a, const FcMatrix *b); FcPublic void FcMatrixRotate (FcMatrix *m, double c, double s); FcPublic void FcMatrixScale (FcMatrix *m, double sx, double sy); FcPublic void FcMatrixShear (FcMatrix *m, double sh, double sv); /* fcname.c */ /* Deprecated. Does nothing. Returns FcFalse. */ FcPublic FcBool FcNameRegisterObjectTypes (const FcObjectType *types, int ntype); /* Deprecated. Does nothing. Returns FcFalse. */ FcPublic FcBool FcNameUnregisterObjectTypes (const FcObjectType *types, int ntype); FcPublic const FcObjectType * FcNameGetObjectType (const char *object); /* Deprecated. Does nothing. Returns FcFalse. */ FcPublic FcBool FcNameRegisterConstants (const FcConstant *consts, int nconsts); /* Deprecated. Does nothing. Returns FcFalse. */ FcPublic FcBool FcNameUnregisterConstants (const FcConstant *consts, int nconsts); FcPublic const FcConstant * FcNameGetConstant (const FcChar8 *string); FcPublic FcBool FcNameConstant (const FcChar8 *string, int *result); FcPublic FcPattern * FcNameParse (const FcChar8 *name); FcPublic FcChar8 * FcNameUnparse (FcPattern *pat); /* fcpat.c */ FcPublic FcPattern * FcPatternCreate (void); FcPublic FcPattern * FcPatternDuplicate (const FcPattern *p); FcPublic void FcPatternReference (FcPattern *p); FcPublic FcPattern * FcPatternFilter (FcPattern *p, const FcObjectSet *os); FcPublic void FcValueDestroy (FcValue v); FcPublic FcBool FcValueEqual (FcValue va, FcValue vb); FcPublic FcValue FcValueSave (FcValue v); FcPublic void FcPatternDestroy (FcPattern *p); FcPublic FcBool FcPatternEqual (const FcPattern *pa, const FcPattern *pb); FcPublic FcBool FcPatternEqualSubset (const FcPattern *pa, const FcPattern *pb, const FcObjectSet *os); FcPublic FcChar32 FcPatternHash (const FcPattern *p); FcPublic FcBool FcPatternAdd (FcPattern *p, const char *object, FcValue value, FcBool append); FcPublic FcBool FcPatternAddWeak (FcPattern *p, const char *object, FcValue value, FcBool append); FcPublic FcResult FcPatternGet (const FcPattern *p, const char *object, int id, FcValue *v); FcPublic FcBool FcPatternDel (FcPattern *p, const char *object); FcPublic FcBool FcPatternRemove (FcPattern *p, const char *object, int id); FcPublic FcBool FcPatternAddInteger (FcPattern *p, const char *object, int i); FcPublic FcBool FcPatternAddDouble (FcPattern *p, const char *object, double d); FcPublic FcBool FcPatternAddString (FcPattern *p, const char *object, const FcChar8 *s); FcPublic FcBool FcPatternAddMatrix (FcPattern *p, const char *object, const FcMatrix *s); FcPublic FcBool FcPatternAddCharSet (FcPattern *p, const char *object, const FcCharSet *c); FcPublic FcBool FcPatternAddBool (FcPattern *p, const char *object, FcBool b); FcPublic FcBool FcPatternAddLangSet (FcPattern *p, const char *object, const FcLangSet *ls); FcPublic FcResult FcPatternGetInteger (const FcPattern *p, const char *object, int n, int *i); FcPublic FcResult FcPatternGetDouble (const FcPattern *p, const char *object, int n, double *d); FcPublic FcResult FcPatternGetString (const FcPattern *p, const char *object, int n, FcChar8 ** s); FcPublic FcResult FcPatternGetMatrix (const FcPattern *p, const char *object, int n, FcMatrix **s); FcPublic FcResult FcPatternGetCharSet (const FcPattern *p, const char *object, int n, FcCharSet **c); FcPublic FcResult 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 FcPattern * FcPatternVaBuild (FcPattern *p, va_list va); FcPublic FcPattern * FcPatternBuild (FcPattern *p, ...) FC_ATTRIBUTE_SENTINEL(0); FcPublic FcChar8 * FcPatternFormat (FcPattern *pat, const FcChar8 *format); /* fcstr.c */ FcPublic FcChar8 * FcStrCopy (const FcChar8 *s); FcPublic FcChar8 * FcStrCopyFilename (const FcChar8 *s); FcPublic FcChar8 * FcStrPlus (const FcChar8 *s1, const FcChar8 *s2); FcPublic void FcStrFree (FcChar8 *s); /* These are ASCII only, suitable only for pattern element names */ #define FcIsUpper(c) ((0101 <= (c) && (c) <= 0132)) #define FcIsLower(c) ((0141 <= (c) && (c) <= 0172)) #define FcToLower(c) (FcIsUpper(c) ? (c) - 0101 + 0141 : (c)) FcPublic FcChar8 * FcStrDowncase (const FcChar8 *s); FcPublic int FcStrCmpIgnoreCase (const FcChar8 *s1, const FcChar8 *s2); FcPublic int FcStrCmp (const FcChar8 *s1, const FcChar8 *s2); FcPublic const FcChar8 * FcStrStrIgnoreCase (const FcChar8 *s1, const FcChar8 *s2); FcPublic const FcChar8 * FcStrStr (const FcChar8 *s1, const FcChar8 *s2); FcPublic int FcUtf8ToUcs4 (const FcChar8 *src_orig, FcChar32 *dst, int len); FcPublic FcBool FcUtf8Len (const FcChar8 *string, int len, int *nchar, int *wchar); #define FC_UTF8_MAX_LEN 6 FcPublic int FcUcs4ToUtf8 (FcChar32 ucs4, FcChar8 dest[FC_UTF8_MAX_LEN]); FcPublic int FcUtf16ToUcs4 (const FcChar8 *src_orig, FcEndian endian, FcChar32 *dst, int len); /* in bytes */ FcPublic FcBool FcUtf16Len (const FcChar8 *string, FcEndian endian, int len, /* in bytes */ int *nchar, int *wchar); FcPublic FcChar8 * FcStrDirname (const FcChar8 *file); FcPublic FcChar8 * FcStrBasename (const FcChar8 *file); FcPublic FcStrSet * FcStrSetCreate (void); FcPublic FcBool FcStrSetMember (FcStrSet *set, const FcChar8 *s); FcPublic FcBool FcStrSetEqual (FcStrSet *sa, FcStrSet *sb); FcPublic FcBool FcStrSetAdd (FcStrSet *set, const FcChar8 *s); FcPublic FcBool FcStrSetAddFilename (FcStrSet *set, const FcChar8 *s); FcPublic FcBool FcStrSetDel (FcStrSet *set, const FcChar8 *s); FcPublic void FcStrSetDestroy (FcStrSet *set); FcPublic FcStrList * FcStrListCreate (FcStrSet *set); FcPublic void FcStrListFirst (FcStrList *list); FcPublic FcChar8 * FcStrListNext (FcStrList *list); FcPublic void FcStrListDone (FcStrList *list); /* fcxml.c */ FcPublic FcBool FcConfigParseAndLoad (FcConfig *config, const FcChar8 *file, FcBool complain); _FCFUNCPROTOEND #undef FC_ATTRIBUTE_SENTINEL #ifndef _FCINT_H_ /* * Deprecated functions are placed here to help users fix their code without * digging through documentation */ #define FcConfigGetRescanInverval FcConfigGetRescanInverval_REPLACE_BY_FcConfigGetRescanInterval #define FcConfigSetRescanInverval FcConfigSetRescanInverval_REPLACE_BY_FcConfigSetRescanInterval #endif #endif /* _FONTCONFIG_H_ */ fontconfig-2.11.1/fc-cache/0000775000076400007640000000000012313745412012376 500000000000000fontconfig-2.11.1/fc-cache/fc-cache.c0000664000076400007640000002520212267155333014121 00000000000000/* * fontconfig/fc-cache/fc-cache.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. */ #ifdef HAVE_CONFIG_H #include #else #ifdef linux #define HAVE_GETOPT_LONG 1 #endif #define HAVE_GETOPT 1 #endif #include #include #include #include #include #include #include #include #include #include #if defined (_WIN32) #define STRICT #include #define sleep(x) Sleep((x) * 1000) #undef STRICT #endif #ifndef O_BINARY #define O_BINARY 0 #endif #ifndef HAVE_GETOPT #define HAVE_GETOPT 0 #endif #ifndef HAVE_GETOPT_LONG #define HAVE_GETOPT_LONG 0 #endif #if HAVE_GETOPT_LONG #undef _GNU_SOURCE #define _GNU_SOURCE #include const struct option longopts[] = { {"force", 0, 0, 'f'}, {"really-force", 0, 0, 'r'}, {"sysroot", required_argument, 0, 'y'}, {"system-only", 0, 0, 's'}, {"version", 0, 0, 'V'}, {"verbose", 0, 0, 'v'}, {"help", 0, 0, 'h'}, {NULL,0,0,0}, }; #else #if HAVE_GETOPT extern char *optarg; extern int optind, opterr, optopt; #endif #endif static void usage (char *program, int error) { FILE *file = error ? stderr : stdout; #if HAVE_GETOPT_LONG 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 [-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, " -f, --force scan directories with apparently valid caches\n"); fprintf (file, " -r, --really-force erase all existing caches, then rescan\n"); fprintf (file, " -s, --system-only scan system-wide directories only\n"); fprintf (file, " -y, --sysroot=SYSROOT prepend SYSROOT to all paths for scanning\n"); fprintf (file, " -v, --verbose display status information while busy\n"); fprintf (file, " -V, --version display font config version and exit\n"); fprintf (file, " -h, --help display this help and exit\n"); #else fprintf (file, " -f (force) scan directories with apparently valid caches\n"); fprintf (file, " -r, (really force) erase all existing caches, then rescan\n"); fprintf (file, " -s (system) scan system-wide directories only\n"); fprintf (file, " -y SYSROOT (sysroot) prepend SYSROOT to all paths for scanning\n"); fprintf (file, " -v (verbose) display status information while busy\n"); fprintf (file, " -V (version) display font config version and exit\n"); fprintf (file, " -h (help) display this help and exit\n"); #endif exit (error); } static FcStrSet *processed_dirs; static int scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, FcBool verbose, FcBool recursive, int *changed, FcStrSet *updateDirs) { int ret = 0; const FcChar8 *dir; FcStrSet *subdirs; FcStrList *sublist; FcCache *cache; struct stat statb; FcBool was_valid; int i; /* * Now scan all of the directories into separate databases * and write out the results */ while ((dir = FcStrListNext (list))) { if (verbose) { if (!recursive) printf ("Re-scanning %s: ", dir); else printf ("%s: ", dir); fflush (stdout); } if (recursive && FcStrSetMember (processed_dirs, dir)) { if (verbose) printf ("skipping, looped directory detected\n"); continue; } if (stat ((char *) dir, &statb) == -1) { switch (errno) { case ENOENT: case ENOTDIR: if (verbose) printf ("skipping, no such directory\n"); break; default: fprintf (stderr, "\"%s\": ", dir); perror (""); ret++; break; } continue; } if (!S_ISDIR (statb.st_mode)) { fprintf (stderr, "\"%s\": not a directory, skipping\n", dir); continue; } if (really_force) FcDirCacheUnlink (dir, config); cache = NULL; was_valid = FcFalse; if (!force) { cache = FcDirCacheLoad (dir, config, NULL); if (cache) was_valid = FcTrue; } if (!cache) { if (!recursive) cache = FcDirCacheRescan (dir, config); else { (*changed)++; cache = FcDirCacheRead (dir, FcTrue, config); } if (!cache) { fprintf (stderr, "%s: error scanning\n", dir); ret++; continue; } } if (was_valid) { if (verbose) printf ("skipping, existing cache is valid: %d fonts, %d dirs\n", FcCacheNumFont (cache), FcCacheNumSubdir (cache)); } else { if (verbose) printf ("caching, new cache contents: %d fonts, %d dirs\n", FcCacheNumFont (cache), FcCacheNumSubdir (cache)); if (!FcDirCacheValid (dir)) { fprintf (stderr, "%s: failed to write cache\n", dir); (void) FcDirCacheUnlink (dir, config); ret++; } } if (recursive) { subdirs = FcStrSetCreate (); if (!subdirs) { fprintf (stderr, "%s: Can't create subdir set\n", dir); ret++; FcDirCacheUnload (cache); continue; } for (i = 0; i < FcCacheNumSubdir (cache); i++) FcStrSetAdd (subdirs, FcCacheSubdir (cache, i)); if (updateDirs && FcCacheNumSubdir (cache) > 0) FcStrSetAdd (updateDirs, dir); FcDirCacheUnload (cache); 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, updateDirs); FcStrListDone (sublist); } else FcDirCacheUnload (cache); } return ret; } static FcBool cleanCacheDirectories (FcConfig *config, FcBool verbose) { FcStrList *cache_dirs = FcConfigGetCacheDirs (config); FcChar8 *cache_dir; FcBool ret = FcTrue; if (!cache_dirs) return FcFalse; while ((cache_dir = FcStrListNext (cache_dirs))) { if (!FcDirCacheClean (cache_dir, verbose)) { ret = FcFalse; break; } } FcStrListDone (cache_dirs); return ret; } int main (int argc, char **argv) { FcStrSet *dirs, *updateDirs; FcStrList *list; FcBool verbose = FcFalse; FcBool force = FcFalse; FcBool really_force = FcFalse; FcBool systemOnly = FcFalse; FcConfig *config; FcChar8 *sysroot = NULL; int i; int changed; int ret; #if HAVE_GETOPT_LONG || HAVE_GETOPT int c; #if HAVE_GETOPT_LONG while ((c = getopt_long (argc, argv, "frsy:Vvh", longopts, NULL)) != -1) #else while ((c = getopt (argc, argv, "frsy:Vvh")) != -1) #endif { switch (c) { case 'r': really_force = FcTrue; /* fall through */ case 'f': force = FcTrue; break; case 's': systemOnly = FcTrue; break; case 'y': sysroot = FcStrCopy ((const FcChar8 *)optarg); break; case 'V': fprintf (stderr, "fontconfig version %d.%d.%d\n", FC_MAJOR, FC_MINOR, FC_REVISION); exit (0); case 'v': verbose = FcTrue; break; case 'h': usage (argv[0], 0); default: usage (argv[0], 1); } } i = optind; #else i = 1; #endif if (systemOnly) FcConfigEnableHome (FcFalse); if (sysroot) { FcConfigSetSysRoot (NULL, sysroot); FcStrFree (sysroot); config = FcConfigGetCurrent(); } else { config = FcInitLoadConfig (); } if (!config) { fprintf (stderr, "%s: Can't init font config library\n", argv[0]); return 1; } FcConfigSetCurrent (config); if (argv[i]) { dirs = FcStrSetCreate (); if (!dirs) { fprintf (stderr, "%s: Can't create list of directories\n", argv[0]); return 1; } while (argv[i]) { if (!FcStrSetAddFilename (dirs, (FcChar8 *) argv[i])) { fprintf (stderr, "%s: Can't add directory\n", argv[0]); return 1; } i++; } list = FcStrListCreate (dirs); FcStrSetDestroy (dirs); } else list = FcConfigGetConfigDirs (config); if ((processed_dirs = FcStrSetCreate()) == NULL) { fprintf(stderr, "Cannot malloc\n"); return 1; } updateDirs = FcStrSetCreate (); changed = 0; ret = scanDirs (list, config, force, really_force, verbose, FcTrue, &changed, updateDirs); /* Update the directory cache again to avoid the race condition as much as possible */ FcStrListDone (list); list = FcStrListCreate (updateDirs); if (list) { ret += scanDirs (list, config, FcTrue, really_force, verbose, FcFalse, &changed, NULL); FcStrListDone (list); } FcStrSetDestroy (updateDirs); /* * Try to create CACHEDIR.TAG anyway. * This expects the fontconfig cache directory already exists. * If it doesn't, it won't be simply created. */ FcCacheCreateTagFile (config); FcStrSetDestroy (processed_dirs); cleanCacheDirectories (config, verbose); FcConfigDestroy (config); FcFini (); /* * Now we need to sleep a second (or two, to be extra sure), to make * sure that timestamps for changes after this run of fc-cache are later * then any timestamps we wrote. We don't use gettimeofday() because * sleep(3) can't be interrupted by a signal here -- this isn't in the * library, and there aren't any signals flying around here. */ /* the resolution of mtime on FAT is 2 seconds */ if (changed) sleep (2); if (verbose) printf ("%s: %s\n", argv[0], ret ? "failed" : "succeeded"); return ret; } fontconfig-2.11.1/fc-cache/Makefile.am0000664000076400007640000000356312267155333014366 00000000000000# # fontconfig/fc-cache/Makefile.am # # 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. DOC2MAN = docbook2man FC_CACHE_SRC=${top_srcdir}/fc-cache SGML = ${FC_CACHE_SRC}/fc-cache.sgml if OS_WIN32 else install-data-local: -$(mkinstalldirs) "$(DESTDIR)$(fc_cachedir)" uninstall-local: -$(RM) -rf "$(DESTDIR)$(fc_cachedir)" endif AM_CPPFLAGS=-I${top_srcdir} -I${top_srcdir}/src $(WARN_CFLAGS) bin_PROGRAMS=fc-cache BUILT_MANS=fc-cache.1 if ENABLE_DOCS man_MANS=${BUILT_MANS} endif EXTRA_DIST=fc-cache.sgml $(BUILT_MANS) CLEANFILES = fc_cache_LDADD = ${top_builddir}/src/libfontconfig.la if USEDOCBOOK ${man_MANS}: ${SGML} $(AM_V_GEN) $(RM) $@; \ $(DOC2MAN) ${SGML}; \ $(RM) manpage.* all-local: $(man_MANS) CLEANFILES += ${man_MANS} else all-local: endif -include $(top_srcdir)/git.mk fontconfig-2.11.1/fc-cache/fc-cache.10000664000076400007640000000431412306310016014021 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FC-CACHE" "1" "Aug 13, 2008" "" "" .SH NAME fc-cache \- build font information cache files .SH SYNOPSIS .sp \fBfc-cache\fR [ \fB-frsvVh\fR ] [ \fB--force\fR ] [ \fB--really-force\fR ] [ \fB--system-only\fR ] [ \fB--verbose\fR ] [ \fB--version\fR ] [ \fB--help\fR ] [ \fB\fIdir\fB\fR\fI...\fR ] .SH "DESCRIPTION" .PP \fBfc-cache\fR scans the font directories on the system and builds font information cache files for applications using fontconfig for their font handling. .PP If directory arguments are not given, \fBfc-cache\fR uses each directory in the current font configuration. Each directory is scanned for font files readable by FreeType. A cache is created which contains properties of each font and the associated filename. This cache is used to speed up application startup when using the fontconfig library. .PP Note that \fBfc-cache\fR must be executed once per architecture to generate font information customized for that architecture. .SH "OPTIONS" .PP This program follows the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. .TP \fB-f\fR Force re-generation of apparently up-to-date cache files, overriding the timestamp checking. .TP \fB-r\fR Erase all existing cache files and rescan. .TP \fB-s\fR Only scan system-wide directories, omitting the places located in the user's home directory. .TP \fB-v\fR Display status information while busy. .TP \fB-h\fR Show summary of options. .TP \fB-V\fR Show version of the program and exit. .TP \fB\fIdir\fB\fR Directory to scan for fonts. .SH "FILES" .TP \fB\fI%cachdir%/*-%arch%\&.cache-2\fB\fR These files are generated by \fBfc-cache\fR and contain maps from file names to font properties. They are read by the fontconfig library at application startup to locate appropriate fonts. .SH "SEE ALSO" .PP \fBfc-cat\fR(1) \fBfc-list\fR(1) \fBfc-match\fR(1) \fBfc-pattern\fR(1) \fBfc-query\fR(1) \fBfc-scan\fR(1) .PP The fontconfig user's guide, in HTML format: \fI/usr/share/doc/fontconfig/fontconfig-user.html\fR\&. .SH "AUTHOR" .PP This manual page was written by Keith Packard and Josselin Mouette \&. fontconfig-2.11.1/fc-cache/fc-cache.sgml0000664000076400007640000001523612267155333014647 00000000000000 manpage.1'. You may view the manual page with: `docbook-to-man manpage.sgml | nroff -man | less'. A typical entry in a Makefile or Makefile.am is: manpage.1: manpage.sgml docbook-to-man $< > $@ The docbook-to-man binary is found in the docbook-to-man package. Please remember that if you create the nroff version in one of the debian/rules file targets (such as build), you will need to include docbook-to-man in your Build-Depends control field. --> Josselin"> Mouette"> Aug 13, 2008"> 1"> joss@debian.org"> fc-cache"> Debian"> GNU"> GPL"> ]>
&dhemail;
&dhfirstname; &dhsurname; 2003 &dhusername; &dhdate;
&dhucpackage; &dhsection; &dhpackage; build font information cache files &dhpackage; DESCRIPTION &dhpackage; scans the font directories on the system and builds font information cache files for applications using fontconfig for their font handling. If directory arguments are not given, &dhpackage; uses each directory in the current font configuration. Each directory is scanned for font files readable by FreeType. A cache is created which contains properties of each font and the associated filename. This cache is used to speed up application startup when using the fontconfig library. Note that &dhpackage; must be executed once per architecture to generate font information customized for that architecture. OPTIONS This program follows the usual &gnu; command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. Force re-generation of apparently up-to-date cache files, overriding the timestamp checking. Erase all existing cache files and rescan. Only scan system-wide directories, omitting the places located in the user's home directory. Display status information while busy. Show summary of options. Show version of the program and exit. Directory to scan for fonts. FILES %cachdir%/*-%arch%.cache-2 These files are generated by &dhpackage; and contain maps from file names to font properties. They are read by the fontconfig library at application startup to locate appropriate fonts. SEE ALSO fc-cat(1) fc-list(1) fc-match(1) fc-pattern(1) fc-query(1) fc-scan(1) The fontconfig user's guide, in HTML format: /usr/share/doc/fontconfig/fontconfig-user.html. AUTHOR This manual page was written by Keith Packard keithp@keithp.com and &dhusername; &dhemail;.
fontconfig-2.11.1/fc-cache/Makefile.in0000664000076400007640000006204612313745337014401 00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # fontconfig/fc-cache/Makefile.am # # Copyright © 2003 Keith Packard # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The authors make no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = fc-cache$(EXEEXT) @USEDOCBOOK_TRUE@am__append_1 = ${man_MANS} subdir = fc-cache DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" PROGRAMS = $(bin_PROGRAMS) fc_cache_SOURCES = fc-cache.c fc_cache_OBJECTS = fc-cache.$(OBJEXT) fc_cache_DEPENDENCIES = ${top_builddir}/src/libfontconfig.la AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = fc-cache.c DIST_SOURCES = fc-cache.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 NROFF = nroff MANS = $(man_MANS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASECONFIGDIR = @BASECONFIGDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CONFIGDIR = @CONFIGDIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DOCMAN3 = @DOCMAN3@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@ EXPAT_CFLAGS = @EXPAT_CFLAGS@ EXPAT_LIBS = @EXPAT_LIBS@ FC_ADD_FONTS = @FC_ADD_FONTS@ FC_CACHEDIR = @FC_CACHEDIR@ FC_DEFAULT_FONTS = @FC_DEFAULT_FONTS@ FC_FONTDATE = @FC_FONTDATE@ FC_FONTPATH = @FC_FONTPATH@ FGREP = @FGREP@ FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ FREETYPE_LIBS = @FREETYPE_LIBS@ GIT = @GIT@ GPERF = @GPERF@ GREP = @GREP@ HASDOCBOOK = @HASDOCBOOK@ HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@ ICONV_CFLAGS = @ICONV_CFLAGS@ ICONV_LIBS = @ICONV_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBT_CURRENT = @LIBT_CURRENT@ LIBT_CURRENT_MINUS_AGE = @LIBT_CURRENT_MINUS_AGE@ LIBT_REVISION = @LIBT_REVISION@ LIBT_VERSION_INFO = @LIBT_VERSION_INFO@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ RM = @RM@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TEMPLATEDIR = @TEMPLATEDIR@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XMLDIR = @XMLDIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ ax_pthread_config = @ax_pthread_config@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fc_cachedir = @fc_cachedir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ ms_librarian = @ms_librarian@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfigdir = @pkgconfigdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ DOC2MAN = docbook2man FC_CACHE_SRC = ${top_srcdir}/fc-cache SGML = ${FC_CACHE_SRC}/fc-cache.sgml AM_CPPFLAGS = -I${top_srcdir} -I${top_srcdir}/src $(WARN_CFLAGS) BUILT_MANS = fc-cache.1 @ENABLE_DOCS_TRUE@man_MANS = ${BUILT_MANS} EXTRA_DIST = fc-cache.sgml $(BUILT_MANS) CLEANFILES = $(am__append_1) fc_cache_LDADD = ${top_builddir}/src/libfontconfig.la all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fc-cache/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fc-cache/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ || test -f $$p1 \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list fc-cache$(EXEEXT): $(fc_cache_OBJECTS) $(fc_cache_DEPENDENCIES) $(EXTRA_fc_cache_DEPENDENCIES) @rm -f fc-cache$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fc_cache_OBJECTS) $(fc_cache_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fc-cache.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man1: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) $(MANS) all-local installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." @OS_WIN32_TRUE@uninstall-local: @OS_WIN32_TRUE@install-data-local: clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-local uninstall-man uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-data-local install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-man1 install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-binPROGRAMS uninstall-local \ uninstall-man uninstall-man1 @OS_WIN32_FALSE@install-data-local: @OS_WIN32_FALSE@ -$(mkinstalldirs) "$(DESTDIR)$(fc_cachedir)" @OS_WIN32_FALSE@uninstall-local: @OS_WIN32_FALSE@ -$(RM) -rf "$(DESTDIR)$(fc_cachedir)" @USEDOCBOOK_TRUE@${man_MANS}: ${SGML} @USEDOCBOOK_TRUE@ $(AM_V_GEN) $(RM) $@; \ @USEDOCBOOK_TRUE@ $(DOC2MAN) ${SGML}; \ @USEDOCBOOK_TRUE@ $(RM) manpage.* @USEDOCBOOK_TRUE@all-local: $(man_MANS) @USEDOCBOOK_FALSE@all-local: -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fontconfig-2.11.1/fontconfig.pc.in0000664000076400007640000000106712267155334013764 00000000000000prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ sysconfdir=@sysconfdir@ localstatedir=@localstatedir@ PACKAGE=@PACKAGE@ confdir=@BASECONFIGDIR@ cachedir=@fc_cachedir@ Name: Fontconfig Description: Font configuration and customization library Version: @VERSION@ Requires: @PKGCONFIG_REQUIRES@ Requires.private: @PKGCONFIG_REQUIRES_PRIVATELY@ Libs: -L${libdir} -lfontconfig Libs.private: @EXPAT_LIBS@ @FREETYPE_LIBS@ @ICONV_LIBS@ @LIBXML2_LIBS@ Cflags: -I${includedir} @EXPAT_CFLAGS@ @FREETYPE_CFLAGS@ @ICONV_CFLAGS@ @LIBXML2_CFLAGS@ fontconfig-2.11.1/fc-cat/0000775000076400007640000000000012313745412012102 500000000000000fontconfig-2.11.1/fc-cat/Makefile.am0000664000076400007640000000327212267155333014067 00000000000000# # fontconfig/fc-cat/Makefile.am # # 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. DOC2MAN = docbook2man FC_CAT_SRC=${top_srcdir}/fc-cat SGML = ${FC_CAT_SRC}/fc-cat.sgml AM_CPPFLAGS=-I${top_srcdir} $(WARN_CFLAGS) bin_PROGRAMS=fc-cat BUILT_MANS=fc-cat.1 if ENABLE_DOCS man_MANS=${BUILT_MANS} endif EXTRA_DIST=fc-cat.sgml ${BUILT_MANS} CLEANFILES = fc_cat_LDADD = ${top_builddir}/src/libfontconfig.la if USEDOCBOOK ${man_MANS}: ${SGML} $(AM_V_GEN) $(RM) $@; \ $(DOC2MAN) ${SGML}; \ $(RM) manpage.* all-local: $(man_MANS) CLEANFILES += ${man_MANS} else all-local: endif -include $(top_srcdir)/git.mk fontconfig-2.11.1/fc-cat/fc-cat.10000664000076400007640000000214412306310017013231 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FC-CAT" "1" "Aug 13, 2008" "" "" .SH NAME fc-cat \- read font information cache files .SH SYNOPSIS .sp \fBfc-cat\fR [ \fB-rvVh\fR ] [ \fB--recurse\fR ] [ \fB--verbose\fR ] [ \fB--version\fR ] [ \fB--help\fR ] [ \fB [ \fIfonts-cache-2-files\fB ] [ \fIdirs\fB ] \fR\fI...\fR ] .SH "DESCRIPTION" .PP \fBfc-cat\fR reads the font information from cache files or related to font directories and emits it in ASCII form. .SH "OPTIONS" .PP This program follows the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. .TP \fB-r\fR Recurse into subdirectories. .TP \fB-v\fR Be verbose. .TP \fB-h\fR Show summary of options. .TP \fB-V\fR Show version of the program and exit. .SH "SEE ALSO" .PP \fBfc-cache\fR(1) \fBfc-list\fR(1) \fBfc-match\fR(1) \fBfc-pattern\fR(1) \fBfc-query\fR(1) \fBfc-scan\fR(1) .PP The fontconfig user's guide, in HTML format: \fI/usr/share/doc/fontconfig/fontconfig-user.html\fR\&. .SH "AUTHOR" .PP This manual page was written by Patrick Lam \&. fontconfig-2.11.1/fc-cat/fc-cat.c0000664000076400007640000002146412267155333013337 00000000000000/* * fontconfig/fc-cat/fc-cat.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. */ #ifdef HAVE_CONFIG_H #include #else #ifdef linux #define HAVE_GETOPT_LONG 1 #endif #define HAVE_GETOPT 1 #endif #include #include "../src/fcarch.h" #include #include #include #include #include #include #include #ifndef HAVE_GETOPT #define HAVE_GETOPT 0 #endif #ifndef HAVE_GETOPT_LONG #define HAVE_GETOPT_LONG 0 #endif #if HAVE_GETOPT_LONG #undef _GNU_SOURCE #define _GNU_SOURCE #include const struct option longopts[] = { {"version", 0, 0, 'V'}, {"verbose", 0, 0, 'v'}, {"recurse", 0, 0, 'r'}, {"help", 0, 0, 'h'}, {NULL,0,0,0}, }; #else #if HAVE_GETOPT extern char *optarg; extern int optind, opterr, optopt; #endif #endif /* * POSIX has broken stdio so that putc must do thread-safe locking, * this is a serious performance problem for applications doing large * amounts of IO with putc (as is done here). If available, use * the putc_unlocked varient instead. */ #if defined(putc_unlocked) || defined(_IO_putc_unlocked) #define PUTC(c,f) putc_unlocked(c,f) #else #define PUTC(c,f) putc(c,f) #endif static FcBool write_chars (FILE *f, const FcChar8 *chars) { FcChar8 c; while ((c = *chars++)) { switch (c) { case '"': case '\\': if (PUTC ('\\', f) == EOF) return FcFalse; /* fall through */ default: if (PUTC (c, f) == EOF) return FcFalse; } } return FcTrue; } static FcBool write_ulong (FILE *f, unsigned long t) { int pow; unsigned long temp, digit; temp = t; pow = 1; while (temp >= 10) { temp /= 10; pow *= 10; } temp = t; while (pow) { digit = temp / pow; if (PUTC ((char) digit + '0', f) == EOF) return FcFalse; temp = temp - pow * digit; pow = pow / 10; } return FcTrue; } static FcBool write_int (FILE *f, int i) { return write_ulong (f, (unsigned long) i); } static FcBool write_string (FILE *f, const FcChar8 *string) { if (PUTC ('"', f) == EOF) return FcFalse; if (!write_chars (f, string)) return FcFalse; if (PUTC ('"', f) == EOF) return FcFalse; return FcTrue; } static void usage (char *program, int error) { FILE *file = error ? stderr : stdout; #if HAVE_GETOPT_LONG fprintf (file, "usage: %s [-rv] [--recurse] [--verbose] [*-%s" FC_CACHE_SUFFIX "|directory]...\n", program, FC_ARCHITECTURE); fprintf (file, " %s [-Vh] [--version] [--help]\n", program); #else fprintf (file, "usage: %s [-rvVh] [*-%s" FC_CACHE_SUFFIX "|directory]...\n", program, FC_ARCHITECTURE); #endif fprintf (file, "Reads font information cache from:\n"); fprintf (file, " 1) specified fontconfig cache file\n"); fprintf (file, " 2) related to a particular font directory\n"); fprintf (file, "\n"); #if HAVE_GETOPT_LONG fprintf (file, " -r, --recurse recurse into subdirectories\n"); fprintf (file, " -v, --verbose be verbose\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, " -r (recurse) recurse into subdirectories\n"); fprintf (file, " -v (verbose) be verbose\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); } /* * return the path from the directory containing 'cache' to 'file' */ static const FcChar8 * file_base_name (const FcChar8 *cache, const FcChar8 *file) { int cache_len = strlen ((char *) cache); if (!strncmp ((char *) cache, (char *) file, cache_len) && file[cache_len] == '/') return file + cache_len + 1; return file; } #define FC_FONT_FILE_DIR ((FcChar8 *) ".dir") static FcBool cache_print_set (FcFontSet *set, FcStrSet *dirs, const FcChar8 *base_name, FcBool verbose) { FcChar8 *dir; const FcChar8 *base; int n; int ndir = 0; FcStrList *list; list = FcStrListCreate (dirs); if (!list) goto bail2; while ((dir = FcStrListNext (list))) { base = file_base_name (base_name, dir); if (!write_string (stdout, base)) goto bail3; if (PUTC (' ', stdout) == EOF) goto bail3; if (!write_int (stdout, 0)) goto bail3; if (PUTC (' ', stdout) == EOF) goto bail3; if (!write_string (stdout, FC_FONT_FILE_DIR)) goto bail3; if (PUTC ('\n', stdout) == EOF) goto bail3; ndir++; } for (n = 0; n < set->nfont; n++) { FcPattern *font = set->fonts[n]; FcChar8 *s; s = FcPatternFormat (font, (const FcChar8 *) "%{=fccat}\n"); if (s) { printf ("%s", s); FcStrFree (s); } } if (verbose && !set->nfont && !ndir) printf ("\n"); FcStrListDone (list); return FcTrue; bail3: FcStrListDone (list); bail2: return FcFalse; } int main (int argc, char **argv) { int i; int ret = 0; FcFontSet *fs; FcStrSet *dirs; FcStrSet *args = NULL; FcStrList *arglist; FcCache *cache; FcConfig *config; FcChar8 *arg; int verbose = 0; int recurse = 0; FcBool first = FcTrue; #if HAVE_GETOPT_LONG || HAVE_GETOPT int c; #if HAVE_GETOPT_LONG while ((c = getopt_long (argc, argv, "Vvrh", longopts, NULL)) != -1) #else while ((c = getopt (argc, argv, "Vvrh")) != -1) #endif { switch (c) { case 'V': fprintf (stderr, "fontconfig version %d.%d.%d\n", FC_MAJOR, FC_MINOR, FC_REVISION); exit (0); case 'v': verbose++; break; case 'r': recurse++; break; case 'h': usage (argv[0], 0); default: usage (argv[0], 1); } } i = optind; #else i = 1; #endif config = FcInitLoadConfig (); if (!config) { fprintf (stderr, "%s: Can't init font config library\n", argv[0]); return 1; } FcConfigSetCurrent (config); args = FcStrSetCreate (); if (!args) { fprintf (stderr, "%s: malloc failure\n", argv[0]); return 1; } if (i < argc) { for (; i < argc; i++) { if (!FcStrSetAddFilename (args, (const FcChar8 *) argv[i])) { fprintf (stderr, "%s: malloc failure\n", argv[0]); return 1; } } arglist = FcStrListCreate (args); if (!arglist) { fprintf (stderr, "%s: malloc failure\n", argv[0]); return 1; } } else { recurse++; arglist = FcConfigGetFontDirs (config); while ((arg = FcStrListNext (arglist))) if (!FcStrSetAdd (args, arg)) { fprintf (stderr, "%s: malloc failure\n", argv[0]); return 1; } FcStrListDone (arglist); } arglist = FcStrListCreate (args); if (!arglist) { fprintf (stderr, "%s: malloc failure\n", argv[0]); return 1; } while ((arg = FcStrListNext (arglist))) { int j; FcChar8 *cache_file = NULL; struct stat file_stat; if (FcFileIsDir (arg)) cache = FcDirCacheLoad (arg, config, &cache_file); else cache = FcDirCacheLoadFile (arg, &file_stat); if (!cache) { perror ((char *) arg); ret++; continue; } dirs = FcStrSetCreate (); fs = FcCacheCopySet (cache); for (j = 0; j < FcCacheNumSubdir (cache); j++) { FcStrSetAdd (dirs, FcCacheSubdir (cache, j)); if (recurse) FcStrSetAdd (args, FcCacheSubdir (cache, j)); } if (verbose) { if (!first) printf ("\n"); printf ("Directory: %s\nCache: %s\n--------\n", FcCacheDir(cache), cache_file ? cache_file : arg); first = FcFalse; } cache_print_set (fs, dirs, FcCacheDir (cache), verbose); FcStrSetDestroy (dirs); FcFontSetDestroy (fs); FcDirCacheUnload (cache); if (cache_file) FcStrFree (cache_file); } FcFini (); return 0; } fontconfig-2.11.1/fc-cat/Makefile.in0000664000076400007640000006122412313745337014102 00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # fontconfig/fc-cat/Makefile.am # # Copyright © 2003 Keith Packard # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The authors make no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = fc-cat$(EXEEXT) @USEDOCBOOK_TRUE@am__append_1 = ${man_MANS} subdir = fc-cat DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" PROGRAMS = $(bin_PROGRAMS) fc_cat_SOURCES = fc-cat.c fc_cat_OBJECTS = fc-cat.$(OBJEXT) fc_cat_DEPENDENCIES = ${top_builddir}/src/libfontconfig.la AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = fc-cat.c DIST_SOURCES = fc-cat.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 NROFF = nroff MANS = $(man_MANS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASECONFIGDIR = @BASECONFIGDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CONFIGDIR = @CONFIGDIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DOCMAN3 = @DOCMAN3@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@ EXPAT_CFLAGS = @EXPAT_CFLAGS@ EXPAT_LIBS = @EXPAT_LIBS@ FC_ADD_FONTS = @FC_ADD_FONTS@ FC_CACHEDIR = @FC_CACHEDIR@ FC_DEFAULT_FONTS = @FC_DEFAULT_FONTS@ FC_FONTDATE = @FC_FONTDATE@ FC_FONTPATH = @FC_FONTPATH@ FGREP = @FGREP@ FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ FREETYPE_LIBS = @FREETYPE_LIBS@ GIT = @GIT@ GPERF = @GPERF@ GREP = @GREP@ HASDOCBOOK = @HASDOCBOOK@ HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@ ICONV_CFLAGS = @ICONV_CFLAGS@ ICONV_LIBS = @ICONV_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBT_CURRENT = @LIBT_CURRENT@ LIBT_CURRENT_MINUS_AGE = @LIBT_CURRENT_MINUS_AGE@ LIBT_REVISION = @LIBT_REVISION@ LIBT_VERSION_INFO = @LIBT_VERSION_INFO@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ RM = @RM@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TEMPLATEDIR = @TEMPLATEDIR@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XMLDIR = @XMLDIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ ax_pthread_config = @ax_pthread_config@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fc_cachedir = @fc_cachedir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ ms_librarian = @ms_librarian@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfigdir = @pkgconfigdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ DOC2MAN = docbook2man FC_CAT_SRC = ${top_srcdir}/fc-cat SGML = ${FC_CAT_SRC}/fc-cat.sgml AM_CPPFLAGS = -I${top_srcdir} $(WARN_CFLAGS) BUILT_MANS = fc-cat.1 @ENABLE_DOCS_TRUE@man_MANS = ${BUILT_MANS} EXTRA_DIST = fc-cat.sgml ${BUILT_MANS} CLEANFILES = $(am__append_1) fc_cat_LDADD = ${top_builddir}/src/libfontconfig.la all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fc-cat/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fc-cat/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ || test -f $$p1 \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list fc-cat$(EXEEXT): $(fc_cat_OBJECTS) $(fc_cat_DEPENDENCIES) $(EXTRA_fc_cat_DEPENDENCIES) @rm -f fc-cat$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fc_cat_OBJECTS) $(fc_cat_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fc-cat.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man1: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) $(MANS) all-local installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-man uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-man1 \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-man uninstall-man1 @USEDOCBOOK_TRUE@${man_MANS}: ${SGML} @USEDOCBOOK_TRUE@ $(AM_V_GEN) $(RM) $@; \ @USEDOCBOOK_TRUE@ $(DOC2MAN) ${SGML}; \ @USEDOCBOOK_TRUE@ $(RM) manpage.* @USEDOCBOOK_TRUE@all-local: $(man_MANS) @USEDOCBOOK_FALSE@all-local: -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fontconfig-2.11.1/fc-cat/fc-cat.sgml0000664000076400007640000001120012267155333014042 00000000000000 manpage.1'. You may view the manual page with: `docbook-to-man manpage.sgml | nroff -man | less'. A typical entry in a Makefile or Makefile.am is: manpage.1: manpage.sgml docbook-to-man $< > $@ The docbook-to-man binary is found in the docbook-to-man package. Please remember that if you create the nroff version in one of the debian/rules file targets (such as build), you will need to include docbook-to-man in your Build-Depends control field. --> Patrick"> Lam"> Aug 13, 2008"> 1"> plam@mit.edu"> fc-cat"> Debian"> GNU"> GPL"> ]>
&dhemail;
&dhfirstname; &dhsurname; 2005 &dhusername; &dhdate;
&dhucpackage; &dhsection; &dhpackage; read font information cache files &dhpackage; DESCRIPTION &dhpackage; reads the font information from cache files or related to font directories and emits it in ASCII form. OPTIONS This program follows the usual &gnu; command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. Recurse into subdirectories. Be verbose. Show summary of options. Show version of the program and exit. SEE ALSO fc-cache(1) fc-list(1) fc-match(1) fc-pattern(1) fc-query(1) fc-scan(1) The fontconfig user's guide, in HTML format: /usr/share/doc/fontconfig/fontconfig-user.html. AUTHOR This manual page was written by &dhusername; &dhemail;.
fontconfig-2.11.1/fc-scan/0000775000076400007640000000000012313745412012257 500000000000000fontconfig-2.11.1/fc-scan/Makefile.am0000664000076400007640000000332112267155334014240 00000000000000# # fontconfig/fc-scan/Makefile.am # # 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. bin_PROGRAMS=fc-scan DOC2MAN = docbook2man FC_SCAN_SRC=${top_srcdir}/fc-scan SGML = ${FC_SCAN_SRC}/fc-scan.sgml AM_CPPFLAGS=-I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) BUILT_MANS=fc-scan.1 if ENABLE_DOCS man_MANS=${BUILT_MANS} endif EXTRA_DIST=fc-scan.sgml $(BUILT_MANS) CLEANFILES = fc_scan_LDADD = ${top_builddir}/src/libfontconfig.la if USEDOCBOOK ${man_MANS}: ${SGML} $(AM_V_GEN) $(RM) $@; \ $(DOC2MAN) ${SGML}; \ $(RM) manpage.* all-local: $(man_MANS) CLEANFILES += ${man_MANS} else all-local: endif -include $(top_srcdir)/git.mk fontconfig-2.11.1/fc-scan/fc-scan.c0000664000076400007640000001050712267155334013666 00000000000000/* * fontconfig/fc-scan/fc-scan.c * * Copyright © 2003 Keith Packard * Copyright © 2008 Red Hat, Inc. * Red Hat Author(s): Behdad Esfahbod * * 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. */ #ifdef HAVE_CONFIG_H #include #else #ifdef linux #define HAVE_GETOPT_LONG 1 #endif #define HAVE_GETOPT 1 #endif #include #include #include #include #include #include #ifndef HAVE_GETOPT #define HAVE_GETOPT 0 #endif #ifndef HAVE_GETOPT_LONG #define HAVE_GETOPT_LONG 0 #endif #if HAVE_GETOPT_LONG #undef _GNU_SOURCE #define _GNU_SOURCE #include static const struct option longopts[] = { {"format", 1, 0, 'f'}, {"version", 0, 0, 'V'}, {"help", 0, 0, 'h'}, {NULL,0,0,0}, }; #else #if HAVE_GETOPT extern char *optarg; extern int optind, opterr, optopt; #endif #endif static void usage (char *program, int error) { FILE *file = error ? stderr : stdout; #if HAVE_GETOPT_LONG fprintf (file, "usage: %s [-Vh] [-f FORMAT] [--format FORMAT] [--version] [--help] font-file...\n", program); #else 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, " -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, " -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); } int main (int argc, char **argv) { FcChar8 *format = NULL; int i; FcFontSet *fs; #if HAVE_GETOPT_LONG || HAVE_GETOPT int c; #if HAVE_GETOPT_LONG while ((c = getopt_long (argc, argv, "f:Vh", longopts, NULL)) != -1) #else while ((c = getopt (argc, argv, "f:Vh")) != -1) #endif { switch (c) { case 'f': format = (FcChar8 *) strdup (optarg); break; case 'V': fprintf (stderr, "fontconfig version %d.%d.%d\n", FC_MAJOR, FC_MINOR, FC_REVISION); exit (0); case 'h': usage (argv[0], 0); default: usage (argv[0], 1); } } i = optind; #else i = 1; #endif if (i == argc) usage (argv[0], 1); fs = FcFontSetCreate (); for (; i < argc; i++) { const FcChar8 *file = (FcChar8*) argv[i]; if (!FcFileIsDir (file)) FcFileScan (fs, NULL, NULL, NULL, file, FcTrue); else { FcStrSet *dirs = FcStrSetCreate (); FcStrList *strlist = FcStrListCreate (dirs); do { FcDirScan (fs, dirs, NULL, NULL, file, FcTrue); } while ((file = FcStrListNext (strlist))); FcStrListDone (strlist); FcStrSetDestroy (dirs); } } for (i = 0; i < fs->nfont; i++) { FcPattern *pat; pat = fs->fonts[i]; if (format) { FcChar8 *s; s = FcPatternFormat (pat, format); if (s) { printf ("%s", s); FcStrFree (s); } } else { FcPatternPrint (pat); } } FcFontSetDestroy (fs); FcFini (); return i > 0 ? 0 : 1; } fontconfig-2.11.1/fc-scan/Makefile.in0000664000076400007640000006127512313745337014265 00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # fontconfig/fc-scan/Makefile.am # # Copyright © 2003 Keith Packard # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The authors make no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = fc-scan$(EXEEXT) @USEDOCBOOK_TRUE@am__append_1 = ${man_MANS} subdir = fc-scan DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" PROGRAMS = $(bin_PROGRAMS) fc_scan_SOURCES = fc-scan.c fc_scan_OBJECTS = fc-scan.$(OBJEXT) fc_scan_DEPENDENCIES = ${top_builddir}/src/libfontconfig.la AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = fc-scan.c DIST_SOURCES = fc-scan.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 NROFF = nroff MANS = $(man_MANS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASECONFIGDIR = @BASECONFIGDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CONFIGDIR = @CONFIGDIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DOCMAN3 = @DOCMAN3@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@ EXPAT_CFLAGS = @EXPAT_CFLAGS@ EXPAT_LIBS = @EXPAT_LIBS@ FC_ADD_FONTS = @FC_ADD_FONTS@ FC_CACHEDIR = @FC_CACHEDIR@ FC_DEFAULT_FONTS = @FC_DEFAULT_FONTS@ FC_FONTDATE = @FC_FONTDATE@ FC_FONTPATH = @FC_FONTPATH@ FGREP = @FGREP@ FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ FREETYPE_LIBS = @FREETYPE_LIBS@ GIT = @GIT@ GPERF = @GPERF@ GREP = @GREP@ HASDOCBOOK = @HASDOCBOOK@ HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@ ICONV_CFLAGS = @ICONV_CFLAGS@ ICONV_LIBS = @ICONV_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBT_CURRENT = @LIBT_CURRENT@ LIBT_CURRENT_MINUS_AGE = @LIBT_CURRENT_MINUS_AGE@ LIBT_REVISION = @LIBT_REVISION@ LIBT_VERSION_INFO = @LIBT_VERSION_INFO@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ RM = @RM@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TEMPLATEDIR = @TEMPLATEDIR@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XMLDIR = @XMLDIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ ax_pthread_config = @ax_pthread_config@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fc_cachedir = @fc_cachedir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ ms_librarian = @ms_librarian@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfigdir = @pkgconfigdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ DOC2MAN = docbook2man FC_SCAN_SRC = ${top_srcdir}/fc-scan SGML = ${FC_SCAN_SRC}/fc-scan.sgml AM_CPPFLAGS = -I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) BUILT_MANS = fc-scan.1 @ENABLE_DOCS_TRUE@man_MANS = ${BUILT_MANS} EXTRA_DIST = fc-scan.sgml $(BUILT_MANS) CLEANFILES = $(am__append_1) fc_scan_LDADD = ${top_builddir}/src/libfontconfig.la all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fc-scan/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fc-scan/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ || test -f $$p1 \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list fc-scan$(EXEEXT): $(fc_scan_OBJECTS) $(fc_scan_DEPENDENCIES) $(EXTRA_fc_scan_DEPENDENCIES) @rm -f fc-scan$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fc_scan_OBJECTS) $(fc_scan_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fc-scan.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man1: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) $(MANS) all-local installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-man uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-man1 \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-man uninstall-man1 @USEDOCBOOK_TRUE@${man_MANS}: ${SGML} @USEDOCBOOK_TRUE@ $(AM_V_GEN) $(RM) $@; \ @USEDOCBOOK_TRUE@ $(DOC2MAN) ${SGML}; \ @USEDOCBOOK_TRUE@ $(RM) manpage.* @USEDOCBOOK_TRUE@all-local: $(man_MANS) @USEDOCBOOK_FALSE@all-local: -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fontconfig-2.11.1/fc-scan/fc-scan.10000664000076400007640000000246112306310020013557 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FC-SCAN" "1" "Jan 15, 2009" "" "" .SH NAME fc-scan \- scan font files or directories .SH SYNOPSIS .sp \fBfc-scan\fR [ \fB-Vh\fR ] [ \fB [ -f \fIformat\fB ] [ --format \fIformat\fB ] \fR ] [ \fB--version\fR ] [ \fB--help\fR ] \fB\fIfile\fB\fR\fI...\fR .SH "DESCRIPTION" .PP \fBfc-scan\fR scans \fIfile\fR(s) recursively and prints out font pattern for each face found. .SH "OPTIONS" .PP This program follows the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. .TP \fB-f\fR Format output according to the format specifier \fIformat\fR\&. .TP \fB-V\fR Show version of the program and exit. .TP \fB-h\fR Show summary of options. .TP \fB\fIfile\fB\fR Scan \fIfile\fR recursively for font faces. .SH "RETURN CODES" .PP \fBfc-scan\fR returns error code 0 if at least one font was found or 1 otherwise. .SH "SEE ALSO" .PP \fBfc-query\fR(1) \fBFcFileScan\fR(3) \fBFcDirScan\fR(3) \fBFcPatternFormat\fR(3) \fBfc-cat\fR(1) \fBfc-cache\fR(1) \fBfc-list\fR(1) \fBfc-match\fR(1) \fBfc-pattern\fR(1) .PP The fontconfig user's guide, in HTML format: \fI/usr/share/doc/fontconfig/fontconfig-user.html\fR\&. .SH "AUTHOR" .PP This manual page was updated by Behdad Esfahbod \&. fontconfig-2.11.1/fc-scan/fc-scan.sgml0000664000076400007640000001203012267155334014377 00000000000000 manpage.1'. You may view the manual page with: `docbook-to-man manpage.sgml | nroff -man | less'. A typical entry in a Makefile or Makefile.am is: manpage.1: manpage.sgml docbook-to-man $< > $@ The docbook-to-man binary is found in the docbook-to-man package. Please remember that if you create the nroff version in one of the debian/rules file targets (such as build), you will need to include docbook-to-man in your Build-Depends control field. --> Behdad"> Esfahbod"> Jan 15, 2009"> 1"> behdad@behdad.org"> fc-scan"> GNU"> GPL"> ]>
&dhemail;
&dhfirstname; &dhsurname; 2008 &dhusername; &dhdate;
&dhucpackage; &dhsection; &dhpackage; scan font files or directories &dhpackage; DESCRIPTION &dhpackage; scans file(s) recursively and prints out font pattern for each face found. OPTIONS This program follows the usual &gnu; command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. Format output according to the format specifier format. Show version of the program and exit. Show summary of options. Scan file recursively for font faces. RETURN CODES fc-scan returns error code 0 if at least one font was found or 1 otherwise. SEE ALSO fc-query(1) FcFileScan(3) FcDirScan(3) FcPatternFormat(3) fc-cat(1) fc-cache(1) fc-list(1) fc-match(1) fc-pattern(1) The fontconfig user's guide, in HTML format: /usr/share/doc/fontconfig/fontconfig-user.html. AUTHOR This manual page was updated by &dhusername; &dhemail;.
fontconfig-2.11.1/install-sh0000755000076400007640000003325512177675036012713 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2011-11-20.07; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # 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. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # 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 $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: fontconfig-2.11.1/fc-match/0000775000076400007640000000000012313745412012427 500000000000000fontconfig-2.11.1/fc-match/Makefile.am0000664000076400007640000000331312267155334014411 00000000000000# # fontconfig/fc-match/Makefile.am # # 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. bin_PROGRAMS=fc-match DOC2MAN = docbook2man FC_MATCH_SRC=${top_srcdir}/fc-match SGML = ${FC_MATCH_SRC}/fc-match.sgml AM_CPPFLAGS=-I${top_srcdir} $(WARN_CFLAGS) BUILT_MANS=fc-match.1 if ENABLE_DOCS man_MANS=${BUILT_MANS} endif EXTRA_DIST=fc-match.sgml $(BUILT_MANS) CLEANFILES = fc_match_LDADD = ${top_builddir}/src/libfontconfig.la if USEDOCBOOK ${man_MANS}: ${SGML} $(AM_V_GEN) $(RM) $@; \ $(DOC2MAN) ${SGML}; \ $(RM) manpage.* all-local: $(man_MANS) CLEANFILES += ${man_MANS} else all-local: endif -include $(top_srcdir)/git.mk fontconfig-2.11.1/fc-match/fc-match.c0000664000076400007640000001365112267155334014211 00000000000000/* * fontconfig/fc-match/fc-match.c * * 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. */ #ifdef HAVE_CONFIG_H #include #else #ifdef linux #define HAVE_GETOPT_LONG 1 #endif #define HAVE_GETOPT 1 #endif #include #include #include #include #include #ifndef HAVE_GETOPT #define HAVE_GETOPT 0 #endif #ifndef HAVE_GETOPT_LONG #define HAVE_GETOPT_LONG 0 #endif #if HAVE_GETOPT_LONG #undef _GNU_SOURCE #define _GNU_SOURCE #include static const struct option longopts[] = { {"sort", 0, 0, 's'}, {"all", 0, 0, 'a'}, {"verbose", 0, 0, 'v'}, {"format", 1, 0, 'f'}, {"version", 0, 0, 'V'}, {"help", 0, 0, 'h'}, {NULL,0,0,0}, }; #else #if HAVE_GETOPT extern char *optarg; extern int optind, opterr, optopt; #endif #endif static void usage (char *program, int error) { FILE *file = error ? stderr : stdout; #if HAVE_GETOPT_LONG fprintf (file, "usage: %s [-savVh] [-f FORMAT] [--sort] [--all] [--verbose] [--format=FORMAT] [--version] [--help] [pattern] {element...}\n", program); #else fprintf (file, "usage: %s [-savVh] [-f FORMAT] [pattern] {element...}\n", program); #endif fprintf (file, "List best font matching [pattern]\n"); fprintf (file, "\n"); #if HAVE_GETOPT_LONG fprintf (file, " -s, --sort display sorted list of matches\n"); fprintf (file, " -a, --all display unpruned sorted list of matches\n"); fprintf (file, " -v, --verbose display entire font pattern verbosely\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, " -s, (sort) display sorted list of matches\n"); fprintf (file, " -a (all) display unpruned sorted list of matches\n"); fprintf (file, " -v (verbose) display entire font pattern verbosely\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); } int main (int argc, char **argv) { int verbose = 0; int sort = 0, all = 0; const FcChar8 *format = NULL; int i; FcObjectSet *os = 0; FcFontSet *fs; FcPattern *pat; FcResult result; #if HAVE_GETOPT_LONG || HAVE_GETOPT int c; #if HAVE_GETOPT_LONG while ((c = getopt_long (argc, argv, "asvf:Vh", longopts, NULL)) != -1) #else while ((c = getopt (argc, argv, "asvf:Vh")) != -1) #endif { switch (c) { case 'a': all = 1; break; case 's': sort = 1; break; case 'v': verbose = 1; break; case 'f': format = (FcChar8 *) strdup (optarg); break; case 'V': fprintf (stderr, "fontconfig version %d.%d.%d\n", FC_MAJOR, FC_MINOR, FC_REVISION); exit (0); case 'h': usage (argv[0], 0); default: usage (argv[0], 1); } } i = optind; #else i = 1; #endif if (argv[i]) { pat = FcNameParse ((FcChar8 *) argv[i]); if (!pat) { fputs ("Unable to parse the pattern\n", stderr); return 1; } while (argv[++i]) { if (!os) os = FcObjectSetCreate (); FcObjectSetAdd (os, argv[i]); } } else pat = FcPatternCreate (); if (!pat) return 1; FcConfigSubstitute (0, pat, FcMatchPattern); FcDefaultSubstitute (pat); fs = FcFontSetCreate (); if (sort || all) { FcFontSet *font_patterns; int j; font_patterns = FcFontSort (0, pat, all ? FcFalse : FcTrue, 0, &result); if (!font_patterns || font_patterns->nfont == 0) { fputs("No fonts installed on the system\n", stderr); return 1; } for (j = 0; j < font_patterns->nfont; j++) { FcPattern *font_pattern; font_pattern = FcFontRenderPrepare (NULL, pat, font_patterns->fonts[j]); if (font_pattern) FcFontSetAdd (fs, font_pattern); } FcFontSetSortDestroy (font_patterns); } else { FcPattern *match; match = FcFontMatch (0, pat, &result); if (match) FcFontSetAdd (fs, match); } FcPatternDestroy (pat); if (!format) { if (os) format = (const FcChar8 *) "%{=unparse}\n"; else format = (const FcChar8 *) "%{=fcmatch}\n"; } if (fs) { int j; for (j = 0; j < fs->nfont; j++) { FcPattern *font; font = FcPatternFilter (fs->fonts[j], os); if (verbose) { FcPatternPrint (font); } else { FcChar8 *s; s = FcPatternFormat (font, format); if (s) { printf ("%s", s); FcStrFree (s); } } FcPatternDestroy (font); } FcFontSetDestroy (fs); } if (os) FcObjectSetDestroy (os); FcFini (); return 0; } fontconfig-2.11.1/fc-match/fc-match.sgml0000664000076400007640000001521012267155334014722 00000000000000 manpage.1'. You may view the manual page with: `docbook-to-man manpage.sgml | nroff -man | less'. A typical entry in a Makefile or Makefile.am is: manpage.1: manpage.sgml docbook-to-man $< > $@ The docbook-to-man binary is found in the docbook-to-man package. Please remember that if you create the nroff version in one of the debian/rules file targets (such as build), you will need to include docbook-to-man in your Build-Depends control field. --> Patrick"> Lam"> Aug 13, 2008"> 1"> plam@csail.mit.edu"> fc-match"> Debian"> GNU"> GPL"> ]>
&dhemail;
&dhfirstname; &dhsurname; 2003 &dhusername; &dhdate;
&dhucpackage; &dhsection; &dhpackage; match available fonts &dhpackage; DESCRIPTION &dhpackage; matches pattern (empty pattern by default) using the normal fontconfig matching rules to find the best font available. If is given, the sorted list of best matching fonts is displayed. The option works like except that no pruning is done on the list of fonts. If any elements are specified, only those are printed. Otherwise short file name, family, and style are printed, unless verbose output is requested. OPTIONS This program follows the usual &gnu; command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. Displays sorted list of best matching fonts, but do not do any pruning on the list. Displays sorted list of best matching fonts. Print verbose output of the whole font pattern for each match, or elements if any is provided. Format output according to the format specifier format. Show version of the program and exit. Show summary of options. Displays fonts matching pattern (uses empty pattern by default). If set, the element property is displayed for matching fonts. SEE ALSO fc-list(1) FcFontMatch(3) FcFontSort(3) FcPatternFormat(3) fc-cat(1) fc-cache(1) fc-pattern(1) fc-query(1) fc-scan(1) The fontconfig user's guide, in HTML format: /usr/share/doc/fontconfig/fontconfig-user.html. AUTHOR This manual page was updated by &dhusername; &dhemail;.
fontconfig-2.11.1/fc-match/Makefile.in0000664000076400007640000006131112313745337014424 00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # fontconfig/fc-match/Makefile.am # # Copyright © 2003 Keith Packard # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The authors make no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = fc-match$(EXEEXT) @USEDOCBOOK_TRUE@am__append_1 = ${man_MANS} subdir = fc-match DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" PROGRAMS = $(bin_PROGRAMS) fc_match_SOURCES = fc-match.c fc_match_OBJECTS = fc-match.$(OBJEXT) fc_match_DEPENDENCIES = ${top_builddir}/src/libfontconfig.la AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = fc-match.c DIST_SOURCES = fc-match.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 NROFF = nroff MANS = $(man_MANS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASECONFIGDIR = @BASECONFIGDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CONFIGDIR = @CONFIGDIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DOCMAN3 = @DOCMAN3@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@ EXPAT_CFLAGS = @EXPAT_CFLAGS@ EXPAT_LIBS = @EXPAT_LIBS@ FC_ADD_FONTS = @FC_ADD_FONTS@ FC_CACHEDIR = @FC_CACHEDIR@ FC_DEFAULT_FONTS = @FC_DEFAULT_FONTS@ FC_FONTDATE = @FC_FONTDATE@ FC_FONTPATH = @FC_FONTPATH@ FGREP = @FGREP@ FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ FREETYPE_LIBS = @FREETYPE_LIBS@ GIT = @GIT@ GPERF = @GPERF@ GREP = @GREP@ HASDOCBOOK = @HASDOCBOOK@ HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@ ICONV_CFLAGS = @ICONV_CFLAGS@ ICONV_LIBS = @ICONV_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBT_CURRENT = @LIBT_CURRENT@ LIBT_CURRENT_MINUS_AGE = @LIBT_CURRENT_MINUS_AGE@ LIBT_REVISION = @LIBT_REVISION@ LIBT_VERSION_INFO = @LIBT_VERSION_INFO@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ RM = @RM@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TEMPLATEDIR = @TEMPLATEDIR@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XMLDIR = @XMLDIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ ax_pthread_config = @ax_pthread_config@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fc_cachedir = @fc_cachedir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ ms_librarian = @ms_librarian@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfigdir = @pkgconfigdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ DOC2MAN = docbook2man FC_MATCH_SRC = ${top_srcdir}/fc-match SGML = ${FC_MATCH_SRC}/fc-match.sgml AM_CPPFLAGS = -I${top_srcdir} $(WARN_CFLAGS) BUILT_MANS = fc-match.1 @ENABLE_DOCS_TRUE@man_MANS = ${BUILT_MANS} EXTRA_DIST = fc-match.sgml $(BUILT_MANS) CLEANFILES = $(am__append_1) fc_match_LDADD = ${top_builddir}/src/libfontconfig.la all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fc-match/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fc-match/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ || test -f $$p1 \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list fc-match$(EXEEXT): $(fc_match_OBJECTS) $(fc_match_DEPENDENCIES) $(EXTRA_fc_match_DEPENDENCIES) @rm -f fc-match$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fc_match_OBJECTS) $(fc_match_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fc-match.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man1: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) $(MANS) all-local installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-man uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-man1 \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-man uninstall-man1 @USEDOCBOOK_TRUE@${man_MANS}: ${SGML} @USEDOCBOOK_TRUE@ $(AM_V_GEN) $(RM) $@; \ @USEDOCBOOK_TRUE@ $(DOC2MAN) ${SGML}; \ @USEDOCBOOK_TRUE@ $(RM) manpage.* @USEDOCBOOK_TRUE@all-local: $(man_MANS) @USEDOCBOOK_FALSE@all-local: -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fontconfig-2.11.1/fc-match/fc-match.10000664000076400007640000000403012306310017014077 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FC-MATCH" "1" "Aug 13, 2008" "" "" .SH NAME fc-match \- match available fonts .SH SYNOPSIS .sp \fBfc-match\fR [ \fB-asvVh\fR ] [ \fB--all\fR ] [ \fB--sort\fR ] [ \fB--verbose\fR ] [ \fB [ -f \fIformat\fB ] [ --format \fIformat\fB ] \fR ] [ \fB--version\fR ] [ \fB--help\fR ] [ \fB\fIpattern\fB [ \fIelement\fB\fI...\fB ] \fR ] .SH "DESCRIPTION" .PP \fBfc-match\fR matches \fIpattern\fR (empty pattern by default) using the normal fontconfig matching rules to find the best font available. If \fB--sort\fR is given, the sorted list of best matching fonts is displayed. The \fB--all\fR option works like \fB--sort\fR except that no pruning is done on the list of fonts. .PP If any elements are specified, only those are printed. Otherwise short file name, family, and style are printed, unless verbose output is requested. .SH "OPTIONS" .PP This program follows the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. .TP \fB-a\fR Displays sorted list of best matching fonts, but do not do any pruning on the list. .TP \fB-s\fR Displays sorted list of best matching fonts. .TP \fB-v\fR Print verbose output of the whole font pattern for each match, or \fIelement\fRs if any is provided. .TP \fB-f\fR Format output according to the format specifier \fIformat\fR\&. .TP \fB-V\fR Show version of the program and exit. .TP \fB-h\fR Show summary of options. .TP \fB\fIpattern\fB\fR Displays fonts matching \fIpattern\fR (uses empty pattern by default). .TP \fB\fIelement\fB\fR If set, the \fIelement\fR property is displayed for matching fonts. .SH "SEE ALSO" .PP \fBfc-list\fR(1) \fBFcFontMatch\fR(3) \fBFcFontSort\fR(3) \fBFcPatternFormat\fR(3) \fBfc-cat\fR(1) \fBfc-cache\fR(1) \fBfc-pattern\fR(1) \fBfc-query\fR(1) \fBfc-scan\fR(1) .PP The fontconfig user's guide, in HTML format: \fI/usr/share/doc/fontconfig/fontconfig-user.html\fR\&. .SH "AUTHOR" .PP This manual page was updated by Patrick Lam \&. fontconfig-2.11.1/config-fixups.h0000664000076400007640000000307412267155333013630 00000000000000/* * Copyright 息 2006 Keith Packard * Copyright 息 2010 Behdad Esfahbod * * 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. */ /* This header file is supposed to be included in config.h */ /* just a hack to build the fat binaries: * https://bugs.freedesktop.org/show_bug.cgi?id=20208 */ #ifdef __APPLE__ # include # undef SIZEOF_VOID_P # undef ALIGNOF_DOUBLE # ifdef __LP64__ # define SIZEOF_VOID_P 8 # define ALIGNOF_DOUBLE 8 # else # define SIZEOF_VOID_P 4 # define ALIGNOF_DOUBLE 4 # endif #endif fontconfig-2.11.1/NEWS0000664000076400007640000000000011720341276011353 00000000000000fontconfig-2.11.1/fontconfig-zip.in0000775000076400007640000000113212267155334014157 00000000000000#!/bin/sh # Build distribution zipfiles for fontconfig on Win32. (This script # obviously needs to be run in Cygwin or similar.) Separate runtime # and developer zipfiles. ZIP=/tmp/fontconfig-@VERSION@.zip DEVZIP=/tmp/fontconfig-dev-@VERSION@.zip cd @prefix@ rm -f $ZIP zip $ZIP -@ < fontconfig-2.11.1/Tools.mk0000664000076400007640000000401612267155333012324 00000000000000# -*- encoding: utf-8 -*- # # Copyright © 2003 Keith Packard # Copyright © 2013 Google, Inc. # # 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. # # Google Author(s): Behdad Esfahbod DIR=fc-$(TAG) OUT=fc$(TAG) TMPL=$(OUT).tmpl.h TARG=$(OUT).h TSRC=$(DIR).c TOOL=./$(DIR)$(EXEEXT_FOR_BUILD) EXTRA_DIST = $(TARG) $(TMPL) $(TSRC) $(DIST) AM_CPPFLAGS = \ -I$(builddir) \ -I$(srcdir) \ -I$(top_builddir)/src \ -I$(top_srcdir)/src \ -I$(top_builddir) \ -I$(top_srcdir) \ -DHAVE_CONFIG_H \ $(WARN_CFLAGS) $(TOOL): $(TSRC) $(ALIAS_FILES) $(AM_V_GEN) $(CC_FOR_BUILD) -o $(TOOL) $< $(AM_CPPFLAGS) $(TARG): $(TMPL) $(TSRC) $(DEPS) $(AM_V_GEN) $(MAKE) $(TOOL) && \ $(RM) $(TARG) && \ $(TOOL) $(ARGS) < $< > $(TARG).tmp && \ mv $(TARG).tmp $(TARG) || ( $(RM) $(TARG).tmp && false ) noinst_HEADERS=$(TARG) ALIAS_FILES = fcalias.h fcaliastail.h BUILT_SOURCES = $(ALIAS_FILES) $(ALIAS_FILES): $(AM_V_GEN) touch $@ CLEANFILES = $(ALIAS_FILES) $(TOOL) MAINTAINERCLEANFILES = $(TARG) fontconfig-2.11.1/src/0000775000076400007640000000000012313745412011534 500000000000000fontconfig-2.11.1/src/fcmutex.h0000664000076400007640000001040712267155334013310 00000000000000/* * Atomic int and pointer operations. Originally copied from HarfBuzz. * * Copyright © 2007 Chris Wilson * Copyright © 2009,2010 Red Hat, Inc. * Copyright © 2011,2012,2013 Google, Inc. * * Permission is hereby granted, without written agreement and without * license or royalty fees, to use, copy, modify, and distribute this * software and its documentation for any purpose, provided that the * above copyright notice and the following two paragraphs appear in * all copies of this software. * * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. * * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. * * Contributor(s): * Chris Wilson * Red Hat Author(s): Behdad Esfahbod * Google Author(s): Behdad Esfahbod */ #ifndef _FCMUTEX_H_ #define _FCMUTEX_H_ #ifdef HAVE_CONFIG_H #include #endif #define FC_STMT_START do #define FC_STMT_END while (0) /* mutex */ /* We need external help for these */ #if 0 #elif !defined(FC_NO_MT) && defined(_MSC_VER) || defined(__MINGW32__) #include "fcwindows.h" typedef CRITICAL_SECTION fc_mutex_impl_t; #define FC_MUTEX_IMPL_INIT { NULL, 0, 0, NULL, NULL, 0 } #define fc_mutex_impl_init(M) InitializeCriticalSection (M) #define fc_mutex_impl_lock(M) EnterCriticalSection (M) #define fc_mutex_impl_unlock(M) LeaveCriticalSection (M) #define fc_mutex_impl_finish(M) DeleteCriticalSection (M) #elif !defined(FC_NO_MT) && (defined(HAVE_PTHREAD) || defined(__APPLE__)) #include typedef pthread_mutex_t fc_mutex_impl_t; #define FC_MUTEX_IMPL_INIT PTHREAD_MUTEX_INITIALIZER #define fc_mutex_impl_init(M) pthread_mutex_init (M, NULL) #define fc_mutex_impl_lock(M) pthread_mutex_lock (M) #define fc_mutex_impl_unlock(M) pthread_mutex_unlock (M) #define fc_mutex_impl_finish(M) pthread_mutex_destroy (M) #elif !defined(FC_NO_MT) && defined(HAVE_INTEL_ATOMIC_PRIMITIVES) #if defined(HAVE_SCHED_H) && defined(HAVE_SCHED_YIELD) # include # define FC_SCHED_YIELD() sched_yield () #else # define FC_SCHED_YIELD() FC_STMT_START {} FC_STMT_END #endif /* This actually is not a totally awful implementation. */ typedef volatile int fc_mutex_impl_t; #define FC_MUTEX_IMPL_INIT 0 #define fc_mutex_impl_init(M) *(M) = 0 #define fc_mutex_impl_lock(M) FC_STMT_START { while (__sync_lock_test_and_set((M), 1)) FC_SCHED_YIELD (); } FC_STMT_END #define fc_mutex_impl_unlock(M) __sync_lock_release (M) #define fc_mutex_impl_finish(M) FC_STMT_START {} FC_STMT_END #elif !defined(FC_NO_MT) #if defined(HAVE_SCHED_H) && defined(HAVE_SCHED_YIELD) # include # define FC_SCHED_YIELD() sched_yield () #else # define FC_SCHED_YIELD() FC_STMT_START {} FC_STMT_END #endif #define FC_MUTEX_INT_NIL 1 /* Warn that fallback implementation is in use. */ typedef volatile int fc_mutex_impl_t; #define FC_MUTEX_IMPL_INIT 0 #define fc_mutex_impl_init(M) *(M) = 0 #define fc_mutex_impl_lock(M) FC_STMT_START { while (*(M)) FC_SCHED_YIELD (); (*(M))++; } FC_STMT_END #define fc_mutex_impl_unlock(M) (*(M))--; #define fc_mutex_impl_finish(M) FC_STMT_START {} FC_STMT_END #else /* FC_NO_MT */ typedef int fc_mutex_impl_t; #define FC_MUTEX_IMPL_INIT 0 #define fc_mutex_impl_init(M) FC_STMT_START {} FC_STMT_END #define fc_mutex_impl_lock(M) FC_STMT_START {} FC_STMT_END #define fc_mutex_impl_unlock(M) FC_STMT_START {} FC_STMT_END #define fc_mutex_impl_finish(M) FC_STMT_START {} FC_STMT_END #endif #define FC_MUTEX_INIT {FC_MUTEX_IMPL_INIT} typedef fc_mutex_impl_t FcMutex; static inline void FcMutexInit (FcMutex *m) { fc_mutex_impl_init (m); } static inline void FcMutexLock (FcMutex *m) { fc_mutex_impl_lock (m); } static inline void FcMutexUnlock (FcMutex *m) { fc_mutex_impl_unlock (m); } static inline void FcMutexFinish (FcMutex *m) { fc_mutex_impl_finish (m); } #endif /* _FCMUTEX_H_ */ fontconfig-2.11.1/src/fcobjshash.gperf0000664000076400007640000000320712267711646014627 00000000000000%{ %} %struct-type %language=ANSI-C %includes %enum %readonly-tables %define slot-name name %define hash-function-name FcObjectTypeHash %define lookup-function-name FcObjectTypeLookup %pic %define string-pool-name FcObjectTypeNamePool struct FcObjectTypeInfo { int name; int id; }; %% "family",FC_FAMILY_OBJECT "familylang",FC_FAMILYLANG_OBJECT "style",FC_STYLE_OBJECT "stylelang",FC_STYLELANG_OBJECT "fullname",FC_FULLNAME_OBJECT "fullnamelang",FC_FULLNAMELANG_OBJECT "slant",FC_SLANT_OBJECT "weight",FC_WEIGHT_OBJECT "width",FC_WIDTH_OBJECT "size",FC_SIZE_OBJECT "aspect",FC_ASPECT_OBJECT "pixelsize",FC_PIXEL_SIZE_OBJECT "spacing",FC_SPACING_OBJECT "foundry",FC_FOUNDRY_OBJECT "antialias",FC_ANTIALIAS_OBJECT "hintstyle",FC_HINT_STYLE_OBJECT "hinting",FC_HINTING_OBJECT "verticallayout",FC_VERTICAL_LAYOUT_OBJECT "autohint",FC_AUTOHINT_OBJECT "globaladvance",FC_GLOBAL_ADVANCE_OBJECT "file",FC_FILE_OBJECT "index",FC_INDEX_OBJECT "rasterizer",FC_RASTERIZER_OBJECT "outline",FC_OUTLINE_OBJECT "scalable",FC_SCALABLE_OBJECT "dpi",FC_DPI_OBJECT "rgba",FC_RGBA_OBJECT "scale",FC_SCALE_OBJECT "minspace",FC_MINSPACE_OBJECT "charwidth",FC_CHAR_WIDTH_OBJECT "charheight",FC_CHAR_HEIGHT_OBJECT "matrix",FC_MATRIX_OBJECT "charset",FC_CHARSET_OBJECT "lang",FC_LANG_OBJECT "fontversion",FC_FONTVERSION_OBJECT "capability",FC_CAPABILITY_OBJECT "fontformat",FC_FONTFORMAT_OBJECT "embolden",FC_EMBOLDEN_OBJECT "embeddedbitmap",FC_EMBEDDED_BITMAP_OBJECT "decorative",FC_DECORATIVE_OBJECT "lcdfilter",FC_LCD_FILTER_OBJECT "namelang",FC_NAMELANG_OBJECT "fontfeatures",FC_FONT_FEATURES_OBJECT "prgname",FC_PRGNAME_OBJECT "hash",FC_HASH_OBJECT "postscriptname",FC_POSTSCRIPT_NAME_OBJECT fontconfig-2.11.1/src/fcblanks.c0000664000076400007640000000432512267155334013415 00000000000000/* * fontconfig/src/fcblanks.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" FcBlanks * FcBlanksCreate (void) { FcBlanks *b; b = malloc (sizeof (FcBlanks)); if (!b) return 0; b->nblank = 0; b->sblank = 0; b->blanks = 0; return b; } void FcBlanksDestroy (FcBlanks *b) { if (b->blanks) free (b->blanks); free (b); } FcBool FcBlanksAdd (FcBlanks *b, FcChar32 ucs4) { FcChar32 *c; int sblank; for (sblank = 0; sblank < b->nblank; sblank++) if (b->blanks[sblank] == ucs4) return FcTrue; if (b->nblank == b->sblank) { sblank = b->sblank + 32; if (b->blanks) c = (FcChar32 *) realloc (b->blanks, sblank * sizeof (FcChar32)); else c = (FcChar32 *) malloc (sblank * sizeof (FcChar32)); if (!c) return FcFalse; b->sblank = sblank; b->blanks = c; } b->blanks[b->nblank++] = ucs4; return FcTrue; } FcBool FcBlanksIsMember (FcBlanks *b, FcChar32 ucs4) { int i; for (i = 0; i < b->nblank; i++) if (b->blanks[i] == ucs4) return FcTrue; return FcFalse; } #define __fcblanks__ #include "fcaliastail.h" #undef __fcblanks__ fontconfig-2.11.1/src/fcarch.c0000664000076400007640000000504112267155334013054 00000000000000/* * Copyright © 2002 Keith Packard * Copyright © 2010 Behdad Esfahbod * * 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 #include "fcint.h" #include "fcarch.h" FC_ASSERT_STATIC (1 == sizeof (char)); FC_ASSERT_STATIC (2 == sizeof (FcChar16)); FC_ASSERT_STATIC (4 == sizeof (int)); FC_ASSERT_STATIC (4 == sizeof (FcChar32)); FC_ASSERT_STATIC (4 == sizeof (FcObject)); FC_ASSERT_STATIC (4 == sizeof (FcValueBinding)); FC_ASSERT_STATIC (8 == sizeof (FcAlign)); FC_ASSERT_STATIC (0x20 == sizeof (FcCharLeaf)); FC_ASSERT_STATIC (SIZEOF_VOID_P == sizeof (intptr_t)); FC_ASSERT_STATIC (SIZEOF_VOID_P == sizeof (FcPatternEltPtr)); FC_ASSERT_STATIC (SIZEOF_VOID_P == sizeof (FcValueListPtr)); FC_ASSERT_STATIC (SIZEOF_VOID_P == sizeof (char *)); FC_ASSERT_STATIC (SIZEOF_VOID_P == sizeof (struct FcPatternElt *)); FC_ASSERT_STATIC (SIZEOF_VOID_P == sizeof (FcValueList *)); FC_ASSERT_STATIC (SIZEOF_VOID_P == sizeof (FcStrSet *)); FC_ASSERT_STATIC (SIZEOF_VOID_P == sizeof (FcCharLeaf **)); FC_ASSERT_STATIC (SIZEOF_VOID_P == sizeof (FcChar16 *)); FC_ASSERT_STATIC (0x08 + 1*FC_MAX(SIZEOF_VOID_P,ALIGNOF_DOUBLE) == sizeof (FcValue)); FC_ASSERT_STATIC (0x00 + 2*SIZEOF_VOID_P == sizeof (FcPatternElt)); FC_ASSERT_STATIC (0x08 + 2*SIZEOF_VOID_P == sizeof (FcPattern)); FC_ASSERT_STATIC (0x08 + 2*SIZEOF_VOID_P == sizeof (FcCharSet)); FC_ASSERT_STATIC (0x08 + 6*SIZEOF_VOID_P == sizeof (FcCache)); int main (int argc FC_UNUSED, char **argv FC_UNUSED) { printf ("%s\n", FC_ARCHITECTURE); return 0; } fontconfig-2.11.1/src/fclang.c0000664000076400007640000005514512267155334013072 00000000000000/* * fontconfig/src/fclang.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" #include "fcftint.h" /* Objects MT-safe for readonly access. */ typedef struct { const FcChar8 lang[8]; const FcCharSet charset; } FcLangCharSet; typedef struct { int begin; int end; } FcLangCharSetRange; #include "../fc-lang/fclang.h" struct _FcLangSet { FcStrSet *extra; FcChar32 map_size; FcChar32 map[NUM_LANG_SET_MAP]; }; static int FcLangSetIndex (const FcChar8 *lang); static void FcLangSetBitSet (FcLangSet *ls, unsigned int id) { unsigned int bucket; id = fcLangCharSetIndices[id]; bucket = id >> 5; if (bucket >= ls->map_size) return; /* shouldn't happen really */ ls->map[bucket] |= ((FcChar32) 1 << (id & 0x1f)); } static FcBool FcLangSetBitGet (const FcLangSet *ls, unsigned int id) { unsigned int bucket; id = fcLangCharSetIndices[id]; bucket = id >> 5; if (bucket >= ls->map_size) return FcFalse; return ((ls->map[bucket] >> (id & 0x1f)) & 1) ? FcTrue : FcFalse; } static void FcLangSetBitReset (FcLangSet *ls, unsigned int id) { unsigned int bucket; id = fcLangCharSetIndices[id]; bucket = id >> 5; if (bucket >= ls->map_size) return; /* shouldn't happen really */ ls->map[bucket] &= ~((FcChar32) 1 << (id & 0x1f)); } FcLangSet * FcFreeTypeLangSet (const FcCharSet *charset, const FcChar8 *exclusiveLang) { int i, j; FcChar32 missing; const FcCharSet *exclusiveCharset = 0; FcLangSet *ls; if (exclusiveLang) exclusiveCharset = FcLangGetCharSet (exclusiveLang); ls = FcLangSetCreate (); if (!ls) return 0; if (FcDebug() & FC_DBG_LANGSET) { printf ("font charset"); FcCharSetPrint (charset); printf ("\n"); } for (i = 0; i < NUM_LANG_CHAR_SET; i++) { if (FcDebug() & FC_DBG_LANGSET) { printf ("%s charset", fcLangCharSets[i].lang); FcCharSetPrint (&fcLangCharSets[i].charset); printf ("\n"); } /* * Check for Han charsets to make fonts * which advertise support for a single language * not support other Han languages */ if (exclusiveCharset && FcFreeTypeIsExclusiveLang (fcLangCharSets[i].lang)) { if (fcLangCharSets[i].charset.num != exclusiveCharset->num) continue; for (j = 0; j < fcLangCharSets[i].charset.num; j++) if (FcCharSetLeaf(&fcLangCharSets[i].charset, j) != FcCharSetLeaf(exclusiveCharset, j)) continue; } missing = FcCharSetSubtractCount (&fcLangCharSets[i].charset, charset); if (FcDebug() & FC_DBG_SCANV) { if (missing && missing < 10) { FcCharSet *missed = FcCharSetSubtract (&fcLangCharSets[i].charset, charset); FcChar32 ucs4; FcChar32 map[FC_CHARSET_MAP_SIZE]; FcChar32 next; printf ("\n%s(%u) ", fcLangCharSets[i].lang, missing); printf ("{"); for (ucs4 = FcCharSetFirstPage (missed, map, &next); ucs4 != FC_CHARSET_DONE; ucs4 = FcCharSetNextPage (missed, map, &next)) { int i, j; for (i = 0; i < FC_CHARSET_MAP_SIZE; i++) if (map[i]) { for (j = 0; j < 32; j++) if (map[i] & (1 << j)) printf (" %04x", ucs4 + i * 32 + j); } } printf (" }\n\t"); FcCharSetDestroy (missed); } else printf ("%s(%u) ", fcLangCharSets[i].lang, missing); } if (!missing) FcLangSetBitSet (ls, i); } if (FcDebug() & FC_DBG_SCANV) printf ("\n"); return ls; } FcChar8 * FcLangNormalize (const FcChar8 *lang) { FcChar8 *result = NULL, *s, *orig; char *territory, *encoding, *modifier; size_t llen, tlen = 0, mlen = 0; if (!lang || !*lang) return NULL; if (FcStrCmpIgnoreCase (lang, (const FcChar8 *)"C") == 0 || FcStrCmpIgnoreCase (lang, (const FcChar8 *)"POSIX") == 0) { result = FcStrCopy ((const FcChar8 *)"en"); goto bail; } s = FcStrCopy (lang); if (!s) goto bail; /* from the comments in glibc: * * LOCALE can consist of up to four recognized parts for the XPG syntax: * * language[_territory[.codeset]][@modifier] * * Beside the first all of them are allowed to be missing. If the * full specified locale is not found, the less specific one are * looked for. The various part will be stripped off according to * the following order: * (1) codeset * (2) normalized codeset * (3) territory * (4) modifier * * So since we don't take care of the codeset part here, what patterns * we need to deal with is: * * 1. language_territory@modifier * 2. language@modifier * 3. language * * then. and maybe no need to try language_territory here. */ modifier = strchr ((const char *) s, '@'); if (modifier) { *modifier = 0; modifier++; mlen = strlen (modifier); } encoding = strchr ((const char *) s, '.'); if (encoding) { *encoding = 0; encoding++; if (modifier) { memmove (encoding, modifier, mlen + 1); modifier = encoding; } } territory = strchr ((const char *) s, '_'); if (!territory) territory = strchr ((const char *) s, '-'); if (territory) { *territory = 0; territory++; tlen = strlen (territory); } llen = strlen ((const char *) s); if (llen < 2 || llen > 3) { fprintf (stderr, "Fontconfig warning: ignoring %s: not a valid language tag\n", lang); goto bail0; } if (territory && (tlen < 2 || tlen > 3)) { fprintf (stderr, "Fontconfig warning: ignoring %s: not a valid region tag\n", lang); goto bail0; } if (territory) territory[-1] = '-'; if (modifier) modifier[-1] = '@'; orig = FcStrDowncase (s); if (!orig) goto bail0; if (territory) { if (FcDebug () & FC_DBG_LANGSET) printf("Checking the existence of %s.orth\n", s); if (FcLangSetIndex (s) < 0) { memmove (territory - 1, territory + tlen, (mlen > 0 ? mlen + 1 : 0) + 1); if (modifier) modifier = territory; } else { result = s; /* we'll miss the opportunity to reduce the correct size * of the allocated memory for the string after that. */ s = NULL; goto bail1; } } if (modifier) { if (FcDebug () & FC_DBG_LANGSET) printf("Checking the existence of %s.orth\n", s); if (FcLangSetIndex (s) < 0) modifier[-1] = 0; else { result = s; /* we'll miss the opportunity to reduce the correct size * of the allocated memory for the string after that. */ s = NULL; goto bail1; } } if (FcDebug () & FC_DBG_LANGSET) printf("Checking the existence of %s.orth\n", s); if (FcLangSetIndex (s) < 0) { /* there seems no languages matched in orth. * add the language as is for fallback. */ result = orig; orig = NULL; } else { result = s; /* we'll miss the opportunity to reduce the correct size * of the allocated memory for the string after that. */ s = NULL; } bail1: if (orig) FcStrFree (orig); bail0: if (s) free (s); bail: if (FcDebug () & FC_DBG_LANGSET) { if (result) printf ("normalized: %s -> %s\n", lang, result); else printf ("Unable to normalize %s\n", lang); } return result; } #define FcLangEnd(c) ((c) == '-' || (c) == '\0') FcLangResult FcLangCompare (const FcChar8 *s1, const FcChar8 *s2) { FcChar8 c1, c2; FcLangResult result = FcLangDifferentLang; for (;;) { c1 = *s1++; c2 = *s2++; c1 = FcToLower (c1); c2 = FcToLower (c2); if (c1 != c2) { if (FcLangEnd (c1) && FcLangEnd (c2)) result = FcLangDifferentTerritory; return result; } else if (!c1) return FcLangEqual; else if (c1 == '-') result = FcLangDifferentTerritory; } } /* * Return FcTrue when super contains sub. * * super contains sub if super and sub have the same * language and either the same country or one * is missing the country */ static FcBool FcLangContains (const FcChar8 *super, const FcChar8 *sub) { FcChar8 c1, c2; for (;;) { c1 = *super++; c2 = *sub++; c1 = FcToLower (c1); c2 = FcToLower (c2); if (c1 != c2) { /* see if super has a country while sub is mising one */ if (c1 == '-' && c2 == '\0') return FcTrue; /* see if sub has a country while super is mising one */ if (c1 == '\0' && c2 == '-') return FcTrue; return FcFalse; } else if (!c1) return FcTrue; } } const FcCharSet * FcLangGetCharSet (const FcChar8 *lang) { int i; int country = -1; for (i = 0; i < NUM_LANG_CHAR_SET; i++) { switch (FcLangCompare (lang, fcLangCharSets[i].lang)) { case FcLangEqual: return &fcLangCharSets[i].charset; case FcLangDifferentTerritory: if (country == -1) country = i; case FcLangDifferentLang: default: break; } } if (country == -1) return 0; return &fcLangCharSets[country].charset; } FcStrSet * FcGetLangs (void) { FcStrSet *langs; int i; langs = FcStrSetCreate(); if (!langs) return 0; for (i = 0; i < NUM_LANG_CHAR_SET; i++) FcStrSetAdd (langs, fcLangCharSets[i].lang); return langs; } FcLangSet * FcLangSetCreate (void) { FcLangSet *ls; ls = malloc (sizeof (FcLangSet)); if (!ls) return 0; memset (ls->map, '\0', sizeof (ls->map)); ls->map_size = NUM_LANG_SET_MAP; ls->extra = 0; return ls; } void FcLangSetDestroy (FcLangSet *ls) { if (ls->extra) FcStrSetDestroy (ls->extra); free (ls); } FcLangSet * FcLangSetCopy (const FcLangSet *ls) { FcLangSet *new; new = FcLangSetCreate (); if (!new) goto bail0; memset (new->map, '\0', sizeof (new->map)); memcpy (new->map, ls->map, FC_MIN (sizeof (new->map), ls->map_size * sizeof (ls->map[0]))); if (ls->extra) { FcStrList *list; FcChar8 *extra; new->extra = FcStrSetCreate (); if (!new->extra) goto bail1; list = FcStrListCreate (ls->extra); if (!list) goto bail1; while ((extra = FcStrListNext (list))) if (!FcStrSetAdd (new->extra, extra)) { FcStrListDone (list); goto bail1; } FcStrListDone (list); } return new; bail1: FcLangSetDestroy (new); bail0: return 0; } static int FcLangSetIndex (const FcChar8 *lang) { int low, high, mid = 0; int cmp = 0; FcChar8 firstChar = FcToLower(lang[0]); FcChar8 secondChar = firstChar ? FcToLower(lang[1]) : '\0'; if (firstChar < 'a') { low = 0; high = fcLangCharSetRanges[0].begin; } else if(firstChar > 'z') { low = fcLangCharSetRanges[25].begin; high = NUM_LANG_CHAR_SET - 1; } else { low = fcLangCharSetRanges[firstChar - 'a'].begin; high = fcLangCharSetRanges[firstChar - 'a'].end; /* no matches */ if (low > high) return -low; /* next entry after where it would be */ } while (low <= high) { mid = (high + low) >> 1; if(fcLangCharSets[mid].lang[0] != firstChar) cmp = FcStrCmpIgnoreCase(fcLangCharSets[mid].lang, lang); else { /* fast path for resolving 2-letter languages (by far the most common) after * finding the first char (probably already true because of the hash table) */ cmp = fcLangCharSets[mid].lang[1] - secondChar; if (cmp == 0 && (fcLangCharSets[mid].lang[2] != '\0' || lang[2] != '\0')) { cmp = FcStrCmpIgnoreCase(fcLangCharSets[mid].lang+2, lang+2); } } if (cmp == 0) return mid; if (cmp < 0) low = mid + 1; else high = mid - 1; } if (cmp < 0) mid++; return -(mid + 1); } FcBool FcLangSetAdd (FcLangSet *ls, const FcChar8 *lang) { int id; id = FcLangSetIndex (lang); if (id >= 0) { FcLangSetBitSet (ls, id); return FcTrue; } if (!ls->extra) { ls->extra = FcStrSetCreate (); if (!ls->extra) return FcFalse; } return FcStrSetAdd (ls->extra, lang); } FcBool FcLangSetDel (FcLangSet *ls, const FcChar8 *lang) { int id; id = FcLangSetIndex (lang); if (id >= 0) { FcLangSetBitReset (ls, id); } else if (ls->extra) { FcStrSetDel (ls->extra, lang); } return FcTrue; } FcLangResult FcLangSetHasLang (const FcLangSet *ls, const FcChar8 *lang) { int id; FcLangResult best, r; int i; id = FcLangSetIndex (lang); if (id < 0) id = -id - 1; else if (FcLangSetBitGet (ls, id)) return FcLangEqual; best = FcLangDifferentLang; for (i = id - 1; i >= 0; i--) { r = FcLangCompare (lang, fcLangCharSets[i].lang); if (r == FcLangDifferentLang) break; if (FcLangSetBitGet (ls, i) && r < best) best = r; } for (i = id; i < NUM_LANG_CHAR_SET; i++) { r = FcLangCompare (lang, fcLangCharSets[i].lang); if (r == FcLangDifferentLang) break; if (FcLangSetBitGet (ls, i) && r < best) best = r; } if (ls->extra) { FcStrList *list = FcStrListCreate (ls->extra); FcChar8 *extra; if (list) { while (best > FcLangEqual && (extra = FcStrListNext (list))) { r = FcLangCompare (lang, extra); if (r < best) best = r; } FcStrListDone (list); } } return best; } static FcLangResult FcLangSetCompareStrSet (const FcLangSet *ls, FcStrSet *set) { FcStrList *list = FcStrListCreate (set); FcLangResult r, best = FcLangDifferentLang; FcChar8 *extra; if (list) { while (best > FcLangEqual && (extra = FcStrListNext (list))) { r = FcLangSetHasLang (ls, extra); if (r < best) best = r; } FcStrListDone (list); } return best; } FcLangResult FcLangSetCompare (const FcLangSet *lsa, const FcLangSet *lsb) { int i, j, count; FcLangResult best, r; count = FC_MIN (lsa->map_size, lsb->map_size); count = FC_MIN (NUM_LANG_SET_MAP, count); for (i = 0; i < count; i++) if (lsa->map[i] & lsb->map[i]) return FcLangEqual; best = FcLangDifferentLang; for (j = 0; j < NUM_COUNTRY_SET; j++) for (i = 0; i < count; i++) if ((lsa->map[i] & fcLangCountrySets[j][i]) && (lsb->map[i] & fcLangCountrySets[j][i])) { best = FcLangDifferentTerritory; break; } if (lsa->extra) { r = FcLangSetCompareStrSet (lsb, lsa->extra); if (r < best) best = r; } if (best > FcLangEqual && lsb->extra) { r = FcLangSetCompareStrSet (lsa, lsb->extra); if (r < best) best = r; } return best; } /* * Used in computing values -- mustn't allocate any storage */ FcLangSet * FcLangSetPromote (const FcChar8 *lang, FcValuePromotionBuffer *vbuf) { int id; typedef struct { FcLangSet ls; FcStrSet strs; FcChar8 *str; } FcLangSetPromotionBuffer; FcLangSetPromotionBuffer *buf = (FcLangSetPromotionBuffer *) vbuf; FC_ASSERT_STATIC (sizeof (FcLangSetPromotionBuffer) <= sizeof (FcValuePromotionBuffer)); memset (buf->ls.map, '\0', sizeof (buf->ls.map)); buf->ls.map_size = NUM_LANG_SET_MAP; buf->ls.extra = 0; id = FcLangSetIndex (lang); if (id > 0) { 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; } FcChar32 FcLangSetHash (const FcLangSet *ls) { FcChar32 h = 0; int i, count; count = FC_MIN (ls->map_size, NUM_LANG_SET_MAP); for (i = 0; i < count; i++) h ^= ls->map[i]; if (ls->extra) h ^= ls->extra->num; return h; } FcLangSet * FcNameParseLangSet (const FcChar8 *string) { FcChar8 lang[32], c = 0; int i; FcLangSet *ls; ls = FcLangSetCreate (); if (!ls) goto bail0; for(;;) { for(i = 0; i < 31;i++) { c = *string++; if(c == '\0' || c == '|') break; /* end of this code */ lang[i] = c; } lang[i] = '\0'; if (!FcLangSetAdd (ls, lang)) goto bail1; if(c == '\0') break; } return ls; bail1: FcLangSetDestroy (ls); bail0: return 0; } FcBool FcNameUnparseLangSet (FcStrBuf *buf, const FcLangSet *ls) { int i, bit, count; FcChar32 bits; FcBool first = FcTrue; count = FC_MIN (ls->map_size, NUM_LANG_SET_MAP); for (i = 0; i < count; i++) { if ((bits = ls->map[i])) { for (bit = 0; bit <= 31; bit++) if (bits & (1 << bit)) { int id = (i << 5) | bit; if (!first) if (!FcStrBufChar (buf, '|')) return FcFalse; if (!FcStrBufString (buf, fcLangCharSets[fcLangCharSetIndicesInv[id]].lang)) return FcFalse; first = FcFalse; } } } if (ls->extra) { FcStrList *list = FcStrListCreate (ls->extra); FcChar8 *extra; if (!list) return FcFalse; while ((extra = FcStrListNext (list))) { if (!first) if (!FcStrBufChar (buf, '|')) { FcStrListDone (list); return FcFalse; } if (!FcStrBufString (buf, extra)) { FcStrListDone (list); return FcFalse; } first = FcFalse; } FcStrListDone (list); } return FcTrue; } FcBool FcLangSetEqual (const FcLangSet *lsa, const FcLangSet *lsb) { int i, count; count = FC_MIN (lsa->map_size, lsb->map_size); count = FC_MIN (NUM_LANG_SET_MAP, count); for (i = 0; i < count; i++) { if (lsa->map[i] != lsb->map[i]) return FcFalse; } if (!lsa->extra && !lsb->extra) return FcTrue; if (lsa->extra && lsb->extra) return FcStrSetEqual (lsa->extra, lsb->extra); return FcFalse; } static FcBool FcLangSetContainsLang (const FcLangSet *ls, const FcChar8 *lang) { int id; int i; id = FcLangSetIndex (lang); if (id < 0) id = -id - 1; else if (FcLangSetBitGet (ls, id)) return FcTrue; /* * search up and down among equal languages for a match */ for (i = id - 1; i >= 0; i--) { if (FcLangCompare (fcLangCharSets[i].lang, lang) == FcLangDifferentLang) break; if (FcLangSetBitGet (ls, i) && FcLangContains (fcLangCharSets[i].lang, lang)) return FcTrue; } for (i = id; i < NUM_LANG_CHAR_SET; i++) { if (FcLangCompare (fcLangCharSets[i].lang, lang) == FcLangDifferentLang) break; if (FcLangSetBitGet (ls, i) && FcLangContains (fcLangCharSets[i].lang, lang)) return FcTrue; } if (ls->extra) { FcStrList *list = FcStrListCreate (ls->extra); FcChar8 *extra; if (list) { while ((extra = FcStrListNext (list))) { if (FcLangContains (extra, lang)) break; } FcStrListDone (list); if (extra) return FcTrue; } } return FcFalse; } /* * return FcTrue if lsa contains every language in lsb */ FcBool FcLangSetContains (const FcLangSet *lsa, const FcLangSet *lsb) { int i, j, count; FcChar32 missing; if (FcDebug() & FC_DBG_MATCHV) { printf ("FcLangSet "); FcLangSetPrint (lsa); printf (" contains "); FcLangSetPrint (lsb); printf ("\n"); } /* * check bitmaps for missing language support */ count = FC_MIN (lsa->map_size, lsb->map_size); count = FC_MIN (NUM_LANG_SET_MAP, count); for (i = 0; i < count; i++) { missing = lsb->map[i] & ~lsa->map[i]; if (missing) { for (j = 0; j < 32; j++) if (missing & (1 << j)) { if (!FcLangSetContainsLang (lsa, fcLangCharSets[fcLangCharSetIndicesInv[i*32 + j]].lang)) { if (FcDebug() & FC_DBG_MATCHV) printf ("\tMissing bitmap %s\n", fcLangCharSets[fcLangCharSetIndicesInv[i*32+j]].lang); return FcFalse; } } } } if (lsb->extra) { FcStrList *list = FcStrListCreate (lsb->extra); FcChar8 *extra; if (list) { while ((extra = FcStrListNext (list))) { if (!FcLangSetContainsLang (lsa, extra)) { if (FcDebug() & FC_DBG_MATCHV) printf ("\tMissing string %s\n", extra); break; } } FcStrListDone (list); if (extra) return FcFalse; } } return FcTrue; } FcBool FcLangSetSerializeAlloc (FcSerialize *serialize, const FcLangSet *l) { if (!FcSerializeAlloc (serialize, l, sizeof (FcLangSet))) return FcFalse; return FcTrue; } FcLangSet * FcLangSetSerialize(FcSerialize *serialize, const FcLangSet *l) { FcLangSet *l_serialize = FcSerializePtr (serialize, l); if (!l_serialize) return NULL; memset (l_serialize->map, '\0', sizeof (l_serialize->map)); memcpy (l_serialize->map, l->map, FC_MIN (sizeof (l_serialize->map), l->map_size * sizeof (l->map[0]))); l_serialize->map_size = NUM_LANG_SET_MAP; l_serialize->extra = NULL; /* We don't serialize ls->extra */ return l_serialize; } FcStrSet * FcLangSetGetLangs (const FcLangSet *ls) { FcStrSet *langs; int i; langs = FcStrSetCreate(); if (!langs) return 0; for (i = 0; i < NUM_LANG_CHAR_SET; i++) if (FcLangSetBitGet (ls, i)) FcStrSetAdd (langs, fcLangCharSets[i].lang); if (ls->extra) { FcStrList *list = FcStrListCreate (ls->extra); FcChar8 *extra; if (list) { while ((extra = FcStrListNext (list))) FcStrSetAdd (langs, extra); FcStrListDone (list); } } return langs; } static FcLangSet * FcLangSetOperate(const FcLangSet *a, const FcLangSet *b, FcBool (*func) (FcLangSet *ls, const FcChar8 *s)) { FcLangSet *langset = FcLangSetCopy (a); FcStrSet *set = FcLangSetGetLangs (b); FcStrList *sl = FcStrListCreate (set); FcChar8 *str; FcStrSetDestroy (set); while ((str = FcStrListNext (sl))) { func (langset, str); } FcStrListDone (sl); return langset; } FcLangSet * FcLangSetUnion (const FcLangSet *a, const FcLangSet *b) { return FcLangSetOperate(a, b, FcLangSetAdd); } FcLangSet * FcLangSetSubtract (const FcLangSet *a, const FcLangSet *b) { return FcLangSetOperate(a, b, FcLangSetDel); } #define __fclang__ #include "fcaliastail.h" #include "fcftaliastail.h" #undef __fclang__ fontconfig-2.11.1/src/Makefile.am0000664000076400007640000001307512267155334013524 00000000000000# # fontconfig/src/Makefile.am # # 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. EXTRA_DIST = if OS_WIN32 export_symbols = -export-symbols fontconfig.def fontconfig_def_dependency = fontconfig.def # gcc import library install/uninstall install-libtool-import-lib: libfontconfig.la $(MKDIR_P) $(DESTDIR)$(libdir) $(INSTALL) .libs/libfontconfig.dll.a $(DESTDIR)$(libdir)/libfontconfig.dll.a $(INSTALL) fontconfig.def $(DESTDIR)$(libdir)/fontconfig.def uninstall-libtool-import-lib: $(RM) $(DESTDIR)$(libdir)/libfontconfig.dll.a $(DESTDIR)$(libdir)/fontconfig.def else install-libtool-import-lib: uninstall-libtool-import-lib: fontconfig_def_dependency = endif if MS_LIB_AVAILABLE # Microsoft import library install/uninstall noinst_DATA = fontconfig.lib fontconfig.lib : libfontconfig.la lib -name:libfontconfig-@LIBT_CURRENT_MINUS_AGE@.dll -def:fontconfig.def -out:$@ install-ms-import-lib: $(INSTALL) fontconfig.lib $(DESTDIR)$(libdir) uninstall-ms-import-lib: $(RM) $(DESTDIR)$(libdir)/fontconfig.lib else install-ms-import-lib: uninstall-ms-import-lib: endif AM_CPPFLAGS = \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ $(FREETYPE_CFLAGS) \ $(ICONV_CFLAGS) \ $(LIBXML2_CFLAGS) \ $(EXPAT_CFLAGS) \ $(WARN_CFLAGS) \ -DFC_CACHEDIR='"$(FC_CACHEDIR)"' \ -DFONTCONFIG_PATH='"$(BASECONFIGDIR)"' EXTRA_DIST += makealias noinst_HEADERS=fcint.h fcftint.h fcdeprecate.h fcstdint.h ALIAS_FILES = fcalias.h fcaliastail.h fcftalias.h fcftaliastail.h BUILT_SOURCES = $(ALIAS_FILES) \ ../fc-case/fccase.h \ ../fc-glyphname/fcglyphname.h \ ../fc-lang/fclang.h \ stamp-fcstdint \ fcobjshash.h \ fcobjshash.gperf noinst_PROGRAMS = fcarch ../fc-case/fccase.h: cd ../fc-case && $(MAKE) $(AM_MAKEFLAGS) fccase.h ../fc-glyphname/fcglyphname.h: cd ../fc-glyphname && $(MAKE) $(AM_MAKEFLAGS) fcglyphname.h ../fc-lang/fclang.h: cd ../fc-lang && $(MAKE) $(AM_MAKEFLAGS) fclang.h fcobjshash.gperf: fcobjshash.gperf.h fcobjs.h $(AM_V_GEN) $(CPP) -I$(top_srcdir) $< | \ $(SED) 's/^ *//;s/ *, */,/' | \ $(GREP) '^[^#]' | \ awk ' \ /CUT_OUT_BEGIN/ { no_write=1; next; }; \ /CUT_OUT_END/ { no_write=0; next; }; \ { if (!no_write) print; next; }; \ ' - > $@.tmp && \ mv -f $@.tmp $@ || ( $(RM) $@.tmp && false ) fcobjshash.h: fcobjshash.gperf $(AM_V_GEN) $(GPERF) -m 100 $< > $@.tmp && \ mv -f $@.tmp $@ || ( $(RM) $@.tmp && false ) EXTRA_DIST += \ fcobjshash.gperf.h \ fcobjshash.gperf \ fcobjshash.h libfontconfig_la_SOURCES = \ fcarch.h \ fcatomic.c \ fcatomic.h \ fcblanks.c \ fccache.c \ fccfg.c \ fccharset.c \ fccompat.c \ fcdbg.c \ fcdefault.c \ fcdir.c \ fcformat.c \ fcfreetype.c \ fcfs.c \ fchash.c \ fcinit.c \ fclang.c \ fclist.c \ fcmatch.c \ fcmatrix.c \ fcmutex.h \ fcname.c \ fcobjs.c \ fcobjs.h \ fcobjshash.h \ fcpat.c \ fcserialize.c \ fcstat.c \ fcstr.c \ fcwindows.h \ fcxml.c \ ftglue.h \ ftglue.c lib_LTLIBRARIES = libfontconfig.la libfontconfig_la_LDFLAGS = \ -version-info @LIBT_VERSION_INFO@ -no-undefined $(export_symbols) libfontconfig_la_LIBADD = $(ICONV_LIBS) $(FREETYPE_LIBS) $(LIBXML2_LIBS) $(EXPAT_LIBS) libfontconfig_la_DEPENDENCIES = $(fontconfig_def_dependency) if ENABLE_SHARED install-data-local: install-ms-import-lib install-libtool-import-lib uninstall-local: uninstall-ms-import-lib uninstall-libtool-import-lib endif PUBLIC_FILES = \ $(top_srcdir)/fontconfig/fontconfig.h \ $(top_srcdir)/src/fcdeprecate.h \ $(top_srcdir)/fontconfig/fcprivate.h PUBLIC_FT_FILES = \ $(top_srcdir)/fontconfig/fcfreetype.h fcaliastail.h: fcalias.h fcalias.h: $(top_srcdir)/src/makealias $(PUBLIC_FILES) $(AM_V_GEN) sh $(top_srcdir)/src/makealias "$(top_srcdir)/src" fcalias.h fcaliastail.h $(PUBLIC_FILES) fcftaliastail.h: fcftalias.h fcftalias.h: $(top_srcdir)/src/makealias $(PUBLIC_FT_FILES) $(AM_V_GEN) sh $(top_srcdir)/src/makealias "$(top_srcdir)/src" fcftalias.h fcftaliastail.h $(PUBLIC_FT_FILES) stamp-fcstdint: $(top_builddir)/config.status $(AM_V_GEN) cd $(top_builddir) && \ $(SHELL) ./config.status src/fcstdint.h @touch $@ CLEANFILES = $(ALIAS_FILES) fontconfig.def DISTCLEANFILES = stamp-fcstdint fcstdint.h fontconfig.def: $(PUBLIC_FILES) $(PUBLIC_FT_FILES) echo Generating $@ (echo EXPORTS; \ (cat $(PUBLIC_FILES) $(PUBLIC_FT_FILES) || echo 'FcERROR ()' ) | \ $(GREP) '^Fc[^ ]* *(' | $(SED) -e 's/ *(.*$$//' -e 's/^/ /' | \ sort; \ echo LIBRARY libfontconfig-@LIBT_CURRENT_MINUS_AGE@.dll; \ echo VERSION @LIBT_CURRENT@.@LIBT_REVISION@) >$@ @ ! $(GREP) -q FcERROR $@ || ($(RM) $@; false) -include $(top_srcdir)/git.mk fontconfig-2.11.1/src/fcarch.h0000664000076400007640000000522712267155334013067 00000000000000/* * Copyright © 2006 Keith Packard * Copyright © 2010 Behdad Esfahbod * * 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. */ #ifndef _FCARCH_H_ #define _FCARCH_H_ #ifdef HAVE_CONFIG_H #include #endif /* * Each unique machine architecture needs an entry in this file * So far the differences boil down to: endianness, 32 vs 64 bit pointers, * and on 32bit ones, whether double is aligned to one word or two words. * Those result in the 6 formats listed below. * * If any of the assertion errors in fcarch.c fail, you need to add a new * architecture. Contact the fontconfig mailing list in that case. * * name endianness pointer-size double-alignment * * le32d4 4321 4 4 * le32d8 4321 4 8 * le64 4321 8 8 * be32d4 1234 4 4 * be32d8 1234 4 8 * be64 1234 8 8 */ #if defined(__DARWIN_BYTE_ORDER) && __DARWIN_BYTE_ORDER == __DARWIN_LITTLE_ENDIAN # define FC_ARCH_ENDIAN "le" #elif defined(__DARWIN_BYTE_ORDER) && __DARWIN_BYTE_ORDER == __DARWIN_BIG_ENDIAN # define FC_ARCH_ENDIAN "be" #elif defined(__DARWIN_BYTE_ORDER) && __DARWIN_BYTE_ORDER == __DARWIN_PDP_ENDIAN # define FC_ARCH_ENDIAN "pe" #elif defined(WORDS_BIGENDIAN) && WORDS_BIGENDIAN # define FC_ARCH_ENDIAN "be" #else # define FC_ARCH_ENDIAN "le" #endif #if SIZEOF_VOID_P == 4 # if ALIGNOF_DOUBLE == 4 # define FC_ARCH_SIZE_ALIGN "32d4" # else /* ALIGNOF_DOUBLE != 4 */ # define FC_ARCH_SIZE_ALIGN "32d8" # endif #else /* SIZEOF_VOID_P != 4 */ # define FC_ARCH_SIZE_ALIGN "64" #endif /* config.h might override this */ #ifndef FC_ARCHITECTURE # define FC_ARCHITECTURE FC_ARCH_ENDIAN FC_ARCH_SIZE_ALIGN #endif #endif /* _FCARCH_H_ */ fontconfig-2.11.1/src/fcint.h0000664000076400007640000007155612267155334012754 00000000000000/* * fontconfig/src/fcint.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. */ #ifndef _FCINT_H_ #define _FCINT_H_ #ifdef HAVE_CONFIG_H #include #endif #include "fcstdint.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "fcdeprecate.h" #include "fcmutex.h" #include "fcatomic.h" #ifndef FC_CONFIG_PATH #define FC_CONFIG_PATH "fonts.conf" #endif #ifdef _WIN32 # include "fcwindows.h" typedef UINT (WINAPI *pfnGetSystemWindowsDirectory)(LPSTR, UINT); typedef HRESULT (WINAPI *pfnSHGetFolderPathA)(HWND, int, HANDLE, DWORD, LPSTR); extern pfnGetSystemWindowsDirectory pGetSystemWindowsDirectory; extern pfnSHGetFolderPathA pSHGetFolderPathA; # define FC_SEARCH_PATH_SEPARATOR ';' # define FC_DIR_SEPARATOR '\\' # define FC_DIR_SEPARATOR_S "\\" #else # define FC_SEARCH_PATH_SEPARATOR ':' # define FC_DIR_SEPARATOR '/' # define FC_DIR_SEPARATOR_S "/" #endif #if __GNUC__ >= 4 #define FC_UNUSED __attribute__((unused)) #else #define FC_UNUSED #endif #define FC_DBG_MATCH 1 #define FC_DBG_MATCHV 2 #define FC_DBG_EDIT 4 #define FC_DBG_FONTSET 8 #define FC_DBG_CACHE 16 #define FC_DBG_CACHEV 32 #define FC_DBG_PARSE 64 #define FC_DBG_SCAN 128 #define FC_DBG_SCANV 256 #define FC_DBG_CONFIG 1024 #define FC_DBG_LANGSET 2048 #define _FC_ASSERT_STATIC1(_line, _cond) typedef int _static_assert_on_line_##_line##_failed[(_cond)?1:-1] FC_UNUSED #define _FC_ASSERT_STATIC0(_line, _cond) _FC_ASSERT_STATIC1 (_line, (_cond)) #define FC_ASSERT_STATIC(_cond) _FC_ASSERT_STATIC0 (__LINE__, (_cond)) #define FC_MIN(a,b) ((a) < (b) ? (a) : (b)) #define FC_MAX(a,b) ((a) > (b) ? (a) : (b)) #define FC_ABS(a) ((a) < 0 ? -(a) : (a)) /* slim_internal.h */ #if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) && defined(__ELF__) && !defined(__sun) #define FcPrivate __attribute__((__visibility__("hidden"))) #define HAVE_GNUC_ATTRIBUTE 1 #include "fcalias.h" #elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) #define FcPrivate __hidden #else /* not gcc >= 3.3 and not Sun Studio >= 8 */ #define FcPrivate #endif FC_ASSERT_STATIC (sizeof (FcRef) == sizeof (int)); typedef enum _FcValueBinding { FcValueBindingWeak, FcValueBindingStrong, FcValueBindingSame, /* to make sure sizeof (FcValueBinding) == 4 even with -fshort-enums */ FcValueBindingEnd = INT_MAX } FcValueBinding; #define FcStrdup(s) ((FcChar8 *) strdup ((const char *) (s))) #define FcFree(s) (free ((FcChar8 *) (s))) /* * Serialized data structures use only offsets instead of pointers * A low bit of 1 indicates an offset. */ /* Is the provided pointer actually an offset? */ #define FcIsEncodedOffset(p) ((((intptr_t) (p)) & 1) != 0) /* Encode offset in a pointer of type t */ #define FcOffsetEncode(o,t) ((t *) ((o) | 1)) /* Decode a pointer into an offset */ #define FcOffsetDecode(p) (((intptr_t) (p)) & ~1) /* Compute pointer offset */ #define FcPtrToOffset(b,p) ((intptr_t) (p) - (intptr_t) (b)) /* Given base address, offset and type, return a pointer */ #define FcOffsetToPtr(b,o,t) ((t *) ((intptr_t) (b) + (o))) /* Given base address, encoded offset and type, return a pointer */ #define FcEncodedOffsetToPtr(b,p,t) FcOffsetToPtr(b,FcOffsetDecode(p),t) /* Given base address, pointer and type, return an encoded offset */ #define FcPtrToEncodedOffset(b,p,t) FcOffsetEncode(FcPtrToOffset(b,p),t) /* Given a structure, offset member and type, return pointer */ #define FcOffsetMember(s,m,t) FcOffsetToPtr(s,(s)->m,t) /* Given a structure, encoded offset member and type, return pointer to member */ #define FcEncodedOffsetMember(s,m,t) FcOffsetToPtr(s,FcOffsetDecode((s)->m), t) /* Given a structure, member and type, convert the member to a pointer */ #define FcPointerMember(s,m,t) (FcIsEncodedOffset((s)->m) ? \ FcEncodedOffsetMember (s,m,t) : \ (s)->m) /* * Serialized values may hold strings, charsets and langsets as pointers, * unfortunately FcValue is an exposed type so we can't just always use * offsets */ #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) typedef struct _FcValueList *FcValueListPtr; typedef struct _FcValueList { struct _FcValueList *next; FcValue value; FcValueBinding binding; } FcValueList; #define FcValueListNext(vl) FcPointerMember(vl,next,FcValueList) typedef int FcObject; /* The 1024 is to leave some room for future added internal objects, such * that caches from newer fontconfig can still be used with older fontconfig * without getting confused. */ #define FC_EXT_OBJ_INDEX 1024 #define FC_OBJ_ID(_n_) ((_n_) & (~FC_EXT_OBJ_INDEX)) typedef struct _FcPatternElt *FcPatternEltPtr; /* * Pattern elts are stuck in a structure connected to the pattern, * so they get moved around when the pattern is resized. Hence, the * values field must be a pointer/offset instead of just an offset */ typedef struct _FcPatternElt { FcObject object; FcValueList *values; } FcPatternElt; #define FcPatternEltValues(pe) FcPointerMember(pe,values,FcValueList) struct _FcPattern { int num; int size; intptr_t elts_offset; FcRef ref; }; #define FcPatternElts(p) FcOffsetMember(p,elts_offset,FcPatternElt) #define FcFontSetFonts(fs) FcPointerMember(fs,fonts,FcPattern *) #define FcFontSetFont(fs,i) (FcIsEncodedOffset((fs)->fonts) ? \ FcEncodedOffsetToPtr(fs, \ FcFontSetFonts(fs)[i], \ FcPattern) : \ fs->fonts[i]) typedef enum _FcOp { FcOpInteger, FcOpDouble, FcOpString, FcOpMatrix, FcOpRange, FcOpBool, FcOpCharSet, FcOpLangSet, FcOpNil, FcOpField, FcOpConst, FcOpAssign, FcOpAssignReplace, FcOpPrependFirst, FcOpPrepend, FcOpAppend, FcOpAppendLast, FcOpDelete, FcOpDeleteAll, FcOpQuest, FcOpOr, FcOpAnd, FcOpEqual, FcOpNotEqual, FcOpContains, FcOpListing, FcOpNotContains, FcOpLess, FcOpLessEqual, FcOpMore, FcOpMoreEqual, FcOpPlus, FcOpMinus, FcOpTimes, FcOpDivide, FcOpNot, FcOpComma, FcOpFloor, FcOpCeil, FcOpRound, FcOpTrunc, FcOpInvalid } FcOp; typedef enum _FcOpFlags { FcOpFlagIgnoreBlanks = 1 << 0 } FcOpFlags; #define FC_OP_GET_OP(_x_) ((_x_) & 0xffff) #define FC_OP_GET_FLAGS(_x_) (((_x_) & 0xffff0000) >> 16) #define FC_OP(_x_,_f_) (FC_OP_GET_OP (_x_) | ((_f_) << 16)) typedef struct _FcExprMatrix { struct _FcExpr *xx, *xy, *yx, *yy; } FcExprMatrix; typedef struct _FcExprName { FcObject object; FcMatchKind kind; } FcExprName; typedef struct _FcExpr { FcOp op; union { int ival; double dval; const FcChar8 *sval; FcExprMatrix *mexpr; FcBool bval; FcCharSet *cval; FcLangSet *lval; FcExprName name; const FcChar8 *constant; struct { struct _FcExpr *left, *right; } tree; } u; } FcExpr; typedef struct _FcExprPage FcExprPage; struct _FcExprPage { FcExprPage *next_page; FcExpr *next; FcExpr exprs[(1024 - 2/* two pointers */ - 2/* malloc overhead */) * sizeof (void *) / sizeof (FcExpr)]; FcExpr end[FLEXIBLE_ARRAY_MEMBER]; }; typedef enum _FcQual { FcQualAny, FcQualAll, FcQualFirst, FcQualNotFirst } FcQual; #define FcMatchDefault ((FcMatchKind) -1) typedef struct _FcTest { FcMatchKind kind; FcQual qual; FcObject object; FcOp op; FcExpr *expr; } FcTest; typedef struct _FcEdit { FcObject object; FcOp op; FcExpr *expr; FcValueBinding binding; } FcEdit; typedef enum _FcRuleType { FcRuleUnknown, FcRuleTest, FcRuleEdit } FcRuleType; typedef struct _FcRule { struct _FcRule *next; FcRuleType type; union { FcTest *test; FcEdit *edit; } u; } FcRule; typedef struct _FcSubst { struct _FcSubst *next; FcRule *rule; } FcSubst; typedef struct _FcCharLeaf { FcChar32 map[256/32]; } FcCharLeaf; struct _FcCharSet { FcRef ref; /* reference count */ int num; /* size of leaves and numbers arrays */ intptr_t leaves_offset; intptr_t numbers_offset; }; #define FcCharSetLeaves(c) FcOffsetMember(c,leaves_offset,intptr_t) #define FcCharSetLeaf(c,i) (FcOffsetToPtr(FcCharSetLeaves(c), \ FcCharSetLeaves(c)[i], \ FcCharLeaf)) #define FcCharSetNumbers(c) FcOffsetMember(c,numbers_offset,FcChar16) struct _FcStrSet { FcRef ref; /* reference count */ int num; int size; FcChar8 **strs; }; struct _FcStrList { FcStrSet *set; int n; }; typedef struct _FcStrBuf { FcChar8 *buf; FcBool allocated; FcBool failed; int len; int size; FcChar8 buf_static[16 * sizeof (void *)]; } FcStrBuf; struct _FcCache { unsigned int magic; /* FC_CACHE_MAGIC_MMAP or FC_CACHE_ALLOC */ 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 */ }; #undef FcCacheDir #undef FcCacheSubdir #define FcCacheDir(c) FcOffsetMember(c,dir,FcChar8) #define FcCacheDirs(c) FcOffsetMember(c,dirs,intptr_t) #define FcCacheSet(c) FcOffsetMember(c,set,FcFontSet) #define FcCacheSubdir(c,i) FcOffsetToPtr (FcCacheDirs(c),\ FcCacheDirs(c)[i], \ FcChar8) /* * Used while constructing a directory cache object */ #define FC_SERIALIZE_HASH_SIZE 8191 typedef union _FcAlign { double d; int i; intptr_t ip; FcBool b; void *p; } FcAlign; typedef struct _FcSerializeBucket { struct _FcSerializeBucket *next; const void *object; intptr_t offset; } FcSerializeBucket; typedef struct _FcCharSetFreezer FcCharSetFreezer; typedef struct _FcSerialize { intptr_t size; FcCharSetFreezer *cs_freezer; void *linear; FcSerializeBucket *buckets[FC_SERIALIZE_HASH_SIZE]; } FcSerialize; /* * To map adobe glyph names to unicode values, a precomputed hash * table is used */ typedef struct _FcGlyphName { FcChar32 ucs; /* unicode value */ FcChar8 name[1]; /* name extends beyond struct */ } FcGlyphName; /* * To perform case-insensitive string comparisons, a table * is used which holds three different kinds of folding data. * * The first is a range of upper case values mapping to a range * of their lower case equivalents. Within each range, the offset * between upper and lower case is constant. * * The second is a range of upper case values which are interleaved * with their lower case equivalents. * * The third is a set of raw unicode values mapping to a list * of unicode values for comparison purposes. This allows conversion * of ß to "ss" so that SS, ss and ß all match. A separate array * holds the list of unicode values for each entry. * * These are packed into a single table. Using a binary search, * the appropriate entry can be located. */ #define FC_CASE_FOLD_RANGE 0 #define FC_CASE_FOLD_EVEN_ODD 1 #define FC_CASE_FOLD_FULL 2 typedef struct _FcCaseFold { FcChar32 upper; FcChar16 method : 2; FcChar16 count : 14; short offset; /* lower - upper for RANGE, table id for FULL */ } FcCaseFold; #define FC_MAX_FILE_LEN 4096 #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 */ FcChar8 *new; /* temp file name -- write data here */ FcChar8 *lck; /* lockfile name (used for locking) */ FcChar8 *tmp; /* tmpfile name (used for locking) */ }; struct _FcBlanks { int nblank; int sblank; FcChar32 *blanks; }; struct _FcConfig { /* * File names loaded from the configuration -- saved here as the * cache file must be consulted before the directories are scanned, * and those directives may occur in any order */ FcStrSet *configDirs; /* directories to scan for fonts */ /* * Set of allowed blank chars -- used to * trim fonts of bogus glyphs */ FcBlanks *blanks; /* * List of directories containing fonts, * built by recursively scanning the set * of configured directories */ FcStrSet *fontDirs; /* * List of directories containing cache files. */ FcStrSet *cacheDirs; /* * Names of all of the configuration files used * to create this configuration */ FcStrSet *configFiles; /* config files loaded */ /* * Substitution instructions for patterns and fonts; * maxObjects is used to allocate appropriate intermediate storage * while performing a whole set of substitutions */ FcSubst *substPattern; /* substitutions for patterns */ FcSubst *substFont; /* substitutions for fonts */ FcSubst *substScan; /* substitutions for scanned fonts */ int maxObjects; /* maximum number of tests in all substs */ /* * List of patterns used to control font file selection */ FcStrSet *acceptGlobs; FcStrSet *rejectGlobs; FcFontSet *acceptPatterns; FcFontSet *rejectPatterns; /* * The set of fonts loaded from the listed directories; the * order within the set does not determine the font selection, * except in the case of identical matches in which case earlier fonts * match preferrentially */ FcFontSet *fonts[FcSetApplication + 1]; /* * Fontconfig can periodically rescan the system configuration * and font directories. This rescanning occurs when font * listing requests are made, but no more often than rescanInterval * seconds apart. */ time_t rescanTime; /* last time information was scanned */ int rescanInterval; /* interval between scans */ FcRef ref; /* reference count */ FcExprPage *expr_pool; /* pool of FcExpr's */ FcChar8 *sysRoot; /* override the system root directory */ }; typedef struct _FcFileTime { time_t time; FcBool set; } FcFileTime; typedef struct _FcCharMap FcCharMap; typedef struct _FcRange FcRange; struct _FcRange { FcChar32 begin; FcChar32 end; }; typedef struct _FcStatFS FcStatFS; struct _FcStatFS { FcBool is_remote_fs; FcBool is_mtime_broken; }; typedef struct _FcValuePromotionBuffer FcValuePromotionBuffer; struct _FcValuePromotionBuffer { union { double d; int i; long l; char c[256]; /* Enlarge as needed */ } u; }; /* fcblanks.c */ /* fccache.c */ FcPrivate FcCache * 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); FcPrivate FcBool FcDirCacheCreateTagFile (const FcChar8 *cache_dir); FcPrivate void FcCacheObjectReference (void *object); FcPrivate void FcCacheObjectDereference (void *object); FcPrivate void FcCacheFini (void); FcPrivate void FcDirCacheReference (FcCache *cache, int nref); /* fccfg.c */ FcPrivate FcBool FcConfigInit (void); FcPrivate void FcConfigFini (void); FcPrivate FcChar8 * FcConfigXdgCacheHome (void); FcPrivate FcChar8 * FcConfigXdgConfigHome (void); FcPrivate FcChar8 * FcConfigXdgDataHome (void); FcPrivate FcExpr * FcConfigAllocExpr (FcConfig *config); FcPrivate FcBool FcConfigAddConfigDir (FcConfig *config, const FcChar8 *d); FcPrivate FcBool FcConfigAddFontDir (FcConfig *config, const FcChar8 *d); FcPrivate FcBool FcConfigAddDir (FcConfig *config, const FcChar8 *d); FcPrivate FcBool FcConfigAddCacheDir (FcConfig *config, const FcChar8 *d); FcPrivate FcBool FcConfigAddConfigFile (FcConfig *config, const FcChar8 *f); FcPrivate FcBool FcConfigAddBlank (FcConfig *config, FcChar32 blank); FcBool FcConfigAddRule (FcConfig *config, FcRule *rule, FcMatchKind kind); FcPrivate void FcConfigSetFonts (FcConfig *config, FcFontSet *fonts, FcSetName set); FcPrivate FcBool FcConfigCompareValue (const FcValue *m, unsigned int op_, const FcValue *v); FcPrivate FcBool FcConfigGlobAdd (FcConfig *config, const FcChar8 *glob, FcBool accept); FcPrivate FcBool FcConfigAcceptFilename (FcConfig *config, const FcChar8 *filename); FcPrivate FcBool FcConfigPatternsAdd (FcConfig *config, FcPattern *pattern, FcBool accept); FcPrivate FcBool FcConfigAcceptFont (FcConfig *config, const FcPattern *font); FcPrivate FcFileTime FcConfigModifiedTime (FcConfig *config); FcPrivate FcBool FcConfigAddCache (FcConfig *config, FcCache *cache, FcSetName set, FcStrSet *dirSet); /* fcserialize.c */ FcPrivate intptr_t FcAlignSize (intptr_t size); FcPrivate FcSerialize * FcSerializeCreate (void); FcPrivate void FcSerializeDestroy (FcSerialize *serialize); FcPrivate FcBool FcSerializeAlloc (FcSerialize *serialize, const void *object, int size); FcPrivate intptr_t FcSerializeReserve (FcSerialize *serialize, int size); FcPrivate intptr_t FcSerializeOffset (FcSerialize *serialize, const void *object); FcPrivate void * FcSerializePtr (FcSerialize *serialize, const void *object); FcPrivate FcBool FcLangSetSerializeAlloc (FcSerialize *serialize, const FcLangSet *l); FcPrivate FcLangSet * FcLangSetSerialize(FcSerialize *serialize, const FcLangSet *l); /* fccharset.c */ FcPrivate void FcLangCharSetPopulate (void); FcPrivate FcCharSetFreezer * FcCharSetFreezerCreate (void); FcPrivate const FcCharSet * FcCharSetFreeze (FcCharSetFreezer *freezer, const FcCharSet *fcs); FcPrivate void FcCharSetFreezerDestroy (FcCharSetFreezer *freezer); FcPrivate FcBool FcNameUnparseCharSet (FcStrBuf *buf, const FcCharSet *c); FcPrivate FcCharSet * FcNameParseCharSet (FcChar8 *string); FcPrivate FcBool FcNameUnparseValue (FcStrBuf *buf, FcValue *v0, FcChar8 *escape); FcPrivate FcBool FcNameUnparseValueList (FcStrBuf *buf, FcValueListPtr v, FcChar8 *escape); FcPrivate FcCharLeaf * FcCharSetFindLeafCreate (FcCharSet *fcs, FcChar32 ucs4); FcPrivate FcBool FcCharSetSerializeAlloc(FcSerialize *serialize, const FcCharSet *cs); FcPrivate FcCharSet * FcCharSetSerialize(FcSerialize *serialize, const FcCharSet *cs); FcPrivate FcChar16 * FcCharSetGetNumbers(const FcCharSet *c); /* fccompat.c */ FcPrivate int FcOpen(const char *pathname, int flags, ...); FcPrivate int FcMakeTempfile (char *template); FcPrivate int32_t FcRandom (void); FcPrivate FcBool FcMakeDirectory (const FcChar8 *dir); /* fcdbg.c */ FcPrivate void FcValuePrintFile (FILE *f, const FcValue v); FcPrivate void FcValuePrintWithPosition (const FcValue v, FcBool show_pos_mark); FcPrivate void FcValueListPrintWithPosition (FcValueListPtr l, const FcValueListPtr pos); FcPrivate void FcValueListPrint (FcValueListPtr l); FcPrivate void FcLangSetPrint (const FcLangSet *ls); FcPrivate void FcOpPrint (FcOp op); FcPrivate void FcTestPrint (const FcTest *test); FcPrivate void FcExprPrint (const FcExpr *expr); FcPrivate void FcEditPrint (const FcEdit *edit); FcPrivate void FcSubstPrint (const FcSubst *subst); FcPrivate void FcCharSetPrint (const FcCharSet *c); extern FcPrivate int FcDebugVal; #define FcDebug() (FcDebugVal) FcPrivate void FcInitDebug (void); /* fcdefault.c */ FcPrivate FcChar8 * FcGetDefaultLang (void); FcPrivate FcChar8 * FcGetPrgname (void); FcPrivate void FcDefaultFini (void); /* fcdir.c */ FcPrivate FcBool FcFileIsLink (const FcChar8 *file); FcPrivate FcBool FcFileIsFile (const FcChar8 *file); FcPrivate FcBool FcFileScanConfig (FcFontSet *set, FcStrSet *dirs, FcBlanks *blanks, const FcChar8 *file, FcConfig *config); FcPrivate FcBool FcDirScanConfig (FcFontSet *set, FcStrSet *dirs, FcBlanks *blanks, const FcChar8 *dir, FcBool force, FcConfig *config); /* fcfont.c */ FcPrivate int FcFontDebug (void); /* fcfs.c */ FcPrivate FcBool 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 * FcInitLoadOwnConfig (FcConfig *config); FcPrivate FcConfig * FcInitLoadOwnConfigAndFonts (FcConfig *config); /* fcxml.c */ FcPrivate void FcTestDestroy (FcTest *test); FcPrivate void FcEditDestroy (FcEdit *e); void FcRuleDestroy (FcRule *rule); /* fclang.c */ FcPrivate FcLangSet * FcFreeTypeLangSet (const FcCharSet *charset, const FcChar8 *exclusiveLang); FcPrivate FcLangResult FcLangCompare (const FcChar8 *s1, const FcChar8 *s2); FcPrivate FcLangSet * FcLangSetPromote (const FcChar8 *lang, FcValuePromotionBuffer *buf); FcPrivate FcLangSet * FcNameParseLangSet (const FcChar8 *string); FcPrivate FcBool FcNameUnparseLangSet (FcStrBuf *buf, const FcLangSet *ls); FcPrivate FcChar8 * FcNameUnparseEscaped (FcPattern *pat, FcBool escape); /* fclist.c */ FcPrivate FcBool FcListPatternMatchAny (const FcPattern *p, const FcPattern *font); /* fcmatch.c */ /* fcname.c */ enum { FC_INVALID_OBJECT = 0, #define FC_OBJECT(NAME, Type, Cmp) FC_##NAME##_OBJECT, #include "fcobjs.h" #undef FC_OBJECT FC_ONE_AFTER_MAX_BASE_OBJECT #define FC_MAX_BASE_OBJECT (FC_ONE_AFTER_MAX_BASE_OBJECT - 1) }; FcPrivate FcBool FcNameBool (const FcChar8 *v, FcBool *result); FcPrivate FcBool FcObjectValidType (FcObject object, FcType type); FcPrivate FcObject FcObjectFromName (const char * name); FcPrivate const char * FcObjectName (FcObject object); FcPrivate FcObjectSet * FcObjectGetSet (void); #define FcObjectCompare(a, b) ((int) a - (int) b) /* fcpat.c */ FcPrivate FcValue FcValueCanonicalize (const FcValue *v); FcPrivate FcValueListPtr FcValueListCreate (void); FcPrivate void FcValueListDestroy (FcValueListPtr l); FcPrivate FcValueListPtr FcValueListPrepend (FcValueListPtr vallist, FcValue value, FcValueBinding binding); FcPrivate FcValueListPtr FcValueListAppend (FcValueListPtr vallist, FcValue value, FcValueBinding binding); FcPrivate FcValueListPtr FcValueListDuplicate(FcValueListPtr orig); FcPrivate FcPatternElt * FcPatternObjectFindElt (const FcPattern *p, FcObject object); FcPrivate FcPatternElt * FcPatternObjectInsertElt (FcPattern *p, FcObject object); FcPrivate FcBool FcPatternObjectListAdd (FcPattern *p, FcObject object, FcValueListPtr list, FcBool append); FcPrivate FcBool FcPatternObjectAddWithBinding (FcPattern *p, FcObject object, FcValue value, FcValueBinding binding, FcBool append); FcPrivate FcBool FcPatternObjectAdd (FcPattern *p, FcObject object, FcValue value, FcBool append); FcPrivate FcBool FcPatternObjectAddWeak (FcPattern *p, FcObject object, FcValue value, FcBool append); FcPrivate FcResult FcPatternObjectGet (const FcPattern *p, FcObject object, int id, FcValue *v); FcPrivate FcBool FcPatternObjectDel (FcPattern *p, FcObject object); FcPrivate FcBool FcPatternObjectRemove (FcPattern *p, FcObject object, int id); FcPrivate FcBool FcPatternObjectAddInteger (FcPattern *p, FcObject object, int i); FcPrivate FcBool FcPatternObjectAddDouble (FcPattern *p, FcObject object, double d); FcPrivate FcBool FcPatternObjectAddString (FcPattern *p, FcObject object, const FcChar8 *s); FcPrivate FcBool FcPatternObjectAddMatrix (FcPattern *p, FcObject object, const FcMatrix *s); FcPrivate FcBool FcPatternObjectAddCharSet (FcPattern *p, FcObject object, const FcCharSet *c); FcPrivate FcBool FcPatternObjectAddBool (FcPattern *p, FcObject object, FcBool b); FcPrivate FcBool FcPatternObjectAddLangSet (FcPattern *p, FcObject object, const FcLangSet *ls); FcPrivate FcResult FcPatternObjectGetInteger (const FcPattern *p, FcObject object, int n, int *i); FcPrivate FcResult FcPatternObjectGetDouble (const FcPattern *p, FcObject object, int n, double *d); FcPrivate FcResult FcPatternObjectGetString (const FcPattern *p, FcObject object, int n, FcChar8 ** s); FcPrivate FcResult FcPatternObjectGetMatrix (const FcPattern *p, FcObject object, int n, FcMatrix **s); FcPrivate FcResult FcPatternObjectGetCharSet (const FcPattern *p, FcObject object, int n, FcCharSet **c); FcPrivate FcResult FcPatternObjectGetBool (const FcPattern *p, FcObject object, int n, FcBool *b); FcPrivate FcResult FcPatternObjectGetLangSet (const FcPattern *p, FcObject object, int n, FcLangSet **ls); FcPrivate FcBool FcPatternAppend (FcPattern *p, FcPattern *s); FcPrivate FcChar32 FcStringHash (const FcChar8 *s); FcPrivate FcBool FcPatternSerializeAlloc (FcSerialize *serialize, const FcPattern *pat); FcPrivate FcPattern * FcPatternSerialize (FcSerialize *serialize, const FcPattern *pat); FcPrivate FcBool FcValueListSerializeAlloc (FcSerialize *serialize, const FcValueList *pat); FcPrivate FcValueList * FcValueListSerialize (FcSerialize *serialize, const FcValueList *pat); /* fcrender.c */ /* fcmatrix.c */ extern FcPrivate const FcMatrix FcIdentityMatrix; FcPrivate void FcMatrixFree (FcMatrix *mat); /* fcstat.c */ FcPrivate int FcStat (const FcChar8 *file, struct stat *statb); FcPrivate int FcStatChecksum (const FcChar8 *file, struct stat *statb); FcPrivate FcBool FcIsFsMmapSafe (int fd); FcPrivate FcBool FcIsFsMtimeBroken (const FcChar8 *dir); /* fcstr.c */ FcPrivate FcBool FcStrSetAddLangs (FcStrSet *strs, const char *languages); FcPrivate void FcStrSetSort (FcStrSet * set); FcPrivate void FcStrBufInit (FcStrBuf *buf, FcChar8 *init, int size); FcPrivate void FcStrBufDestroy (FcStrBuf *buf); FcPrivate FcChar8 * FcStrBufDone (FcStrBuf *buf); FcPrivate FcChar8 * FcStrBufDoneStatic (FcStrBuf *buf); FcPrivate FcBool FcStrBufChar (FcStrBuf *buf, FcChar8 c); FcPrivate FcBool FcStrBufString (FcStrBuf *buf, const FcChar8 *s); FcPrivate FcBool FcStrBufData (FcStrBuf *buf, const FcChar8 *s, int len); FcPrivate int 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); FcPrivate const FcChar8 * FcStrContainsIgnoreCase (const FcChar8 *s1, const FcChar8 *s2); FcPrivate const FcChar8 * FcStrContainsWord (const FcChar8 *s1, const FcChar8 *s2); FcPrivate int FcStrMatchIgnoreCaseAndDelims (const FcChar8 *s1, const FcChar8 *s2, const FcChar8 *delims); FcPrivate FcBool FcStrGlobMatch (const FcChar8 *glob, const FcChar8 *string); FcPrivate FcBool FcStrUsesHome (const FcChar8 *s); FcPrivate FcChar8 * FcStrBuildFilename (const FcChar8 *path, ...); FcPrivate FcChar8 * FcStrLastSlash (const FcChar8 *path); FcPrivate FcChar32 FcStrHashIgnoreCase (const FcChar8 *s); FcPrivate FcChar8 * FcStrCanonFilename (const FcChar8 *s); FcPrivate FcBool FcStrSerializeAlloc (FcSerialize *serialize, const FcChar8 *str); FcPrivate FcChar8 * FcStrSerialize (FcSerialize *serialize, const FcChar8 *str); /* fcobjs.c */ FcPrivate FcObject FcObjectLookupIdByName (const char *str); FcPrivate FcObject FcObjectLookupBuiltinIdByName (const char *str); FcPrivate const char * FcObjectLookupOtherNameById (FcObject id); FcPrivate const FcObjectType * FcObjectLookupOtherTypeById (FcObject id); FcPrivate const FcObjectType * FcObjectLookupOtherTypeByName (const char *str); #endif /* _FC_INT_H_ */ fontconfig-2.11.1/src/fcobjshash.h0000664000076400007640000003364012267711646013757 00000000000000/* ANSI-C code produced by gperf version 3.0.4 */ /* Command-line: gperf -m 100 fcobjshash.gperf */ /* Computed positions: -k'2-3' */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) /* The character set is not based on ISO-646. */ #error "gperf generated tables don't work with this execution character set. Please report a bug to ." #endif #line 1 "fcobjshash.gperf" #line 13 "fcobjshash.gperf" struct FcObjectTypeInfo { int name; int id; }; #include /* maximum key range = 52, duplicates = 0 */ #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static unsigned int FcObjectTypeHash (register const char *str, register unsigned int len) { static const unsigned char asso_values[] = { 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 17, 12, 1, 35, 0, 56, 27, 15, 0, 56, 56, 0, 7, 7, 0, 22, 56, 21, 10, 13, 0, 56, 56, 0, 26, 1, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56 }; return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[1]]; } struct FcObjectTypeNamePool_t { char FcObjectTypeNamePool_str4[sizeof("file")]; char FcObjectTypeNamePool_str5[sizeof("size")]; char FcObjectTypeNamePool_str6[sizeof("weight")]; char FcObjectTypeNamePool_str7[sizeof("foundry")]; char FcObjectTypeNamePool_str8[sizeof("fullname")]; char FcObjectTypeNamePool_str9[sizeof("pixelsize")]; char FcObjectTypeNamePool_str11[sizeof("decorative")]; char FcObjectTypeNamePool_str12[sizeof("fullnamelang")]; char FcObjectTypeNamePool_str13[sizeof("globaladvance")]; char FcObjectTypeNamePool_str14[sizeof("hinting")]; char FcObjectTypeNamePool_str15[sizeof("minspace")]; char FcObjectTypeNamePool_str16[sizeof("hintstyle")]; char FcObjectTypeNamePool_str17[sizeof("fontformat")]; char FcObjectTypeNamePool_str18[sizeof("fontversion")]; char FcObjectTypeNamePool_str19[sizeof("fontfeatures")]; char FcObjectTypeNamePool_str20[sizeof("outline")]; char FcObjectTypeNamePool_str21[sizeof("autohint")]; char FcObjectTypeNamePool_str22[sizeof("slant")]; char FcObjectTypeNamePool_str23[sizeof("scale")]; char FcObjectTypeNamePool_str24[sizeof("postscriptname")]; char FcObjectTypeNamePool_str25[sizeof("dpi")]; char FcObjectTypeNamePool_str26[sizeof("scalable")]; char FcObjectTypeNamePool_str27[sizeof("embolden")]; char FcObjectTypeNamePool_str28[sizeof("lang")]; char FcObjectTypeNamePool_str29[sizeof("antialias")]; char FcObjectTypeNamePool_str30[sizeof("family")]; char FcObjectTypeNamePool_str31[sizeof("hash")]; char FcObjectTypeNamePool_str32[sizeof("namelang")]; char FcObjectTypeNamePool_str33[sizeof("embeddedbitmap")]; char FcObjectTypeNamePool_str34[sizeof("familylang")]; char FcObjectTypeNamePool_str35[sizeof("verticallayout")]; char FcObjectTypeNamePool_str36[sizeof("matrix")]; char FcObjectTypeNamePool_str37[sizeof("rasterizer")]; char FcObjectTypeNamePool_str38[sizeof("aspect")]; char FcObjectTypeNamePool_str39[sizeof("charset")]; char FcObjectTypeNamePool_str40[sizeof("width")]; char FcObjectTypeNamePool_str41[sizeof("charwidth")]; char FcObjectTypeNamePool_str42[sizeof("charheight")]; char FcObjectTypeNamePool_str43[sizeof("rgba")]; char FcObjectTypeNamePool_str44[sizeof("style")]; char FcObjectTypeNamePool_str45[sizeof("lcdfilter")]; char FcObjectTypeNamePool_str46[sizeof("spacing")]; char FcObjectTypeNamePool_str47[sizeof("index")]; char FcObjectTypeNamePool_str48[sizeof("stylelang")]; char FcObjectTypeNamePool_str49[sizeof("capability")]; char FcObjectTypeNamePool_str55[sizeof("prgname")]; }; static const struct FcObjectTypeNamePool_t FcObjectTypeNamePool_contents = { "file", "size", "weight", "foundry", "fullname", "pixelsize", "decorative", "fullnamelang", "globaladvance", "hinting", "minspace", "hintstyle", "fontformat", "fontversion", "fontfeatures", "outline", "autohint", "slant", "scale", "postscriptname", "dpi", "scalable", "embolden", "lang", "antialias", "family", "hash", "namelang", "embeddedbitmap", "familylang", "verticallayout", "matrix", "rasterizer", "aspect", "charset", "width", "charwidth", "charheight", "rgba", "style", "lcdfilter", "spacing", "index", "stylelang", "capability", "prgname" }; #define FcObjectTypeNamePool ((const char *) &FcObjectTypeNamePool_contents) #ifdef __GNUC__ __inline #if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ __attribute__ ((__gnu_inline__)) #endif #endif const struct FcObjectTypeInfo * FcObjectTypeLookup (register const char *str, register unsigned int len) { enum { TOTAL_KEYWORDS = 46, MIN_WORD_LENGTH = 3, MAX_WORD_LENGTH = 14, MIN_HASH_VALUE = 4, MAX_HASH_VALUE = 55 }; static const struct FcObjectTypeInfo wordlist[] = { {-1}, {-1}, {-1}, {-1}, #line 38 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str4,FC_FILE_OBJECT}, #line 27 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str5,FC_SIZE_OBJECT}, #line 25 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str6,FC_WEIGHT_OBJECT}, #line 31 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str7,FC_FOUNDRY_OBJECT}, #line 22 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str8,FC_FULLNAME_OBJECT}, #line 29 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str9,FC_PIXEL_SIZE_OBJECT}, {-1}, #line 57 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str11,FC_DECORATIVE_OBJECT}, #line 23 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str12,FC_FULLNAMELANG_OBJECT}, #line 37 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str13,FC_GLOBAL_ADVANCE_OBJECT}, #line 34 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str14,FC_HINTING_OBJECT}, #line 46 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str15,FC_MINSPACE_OBJECT}, #line 33 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str16,FC_HINT_STYLE_OBJECT}, #line 54 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str17,FC_FONTFORMAT_OBJECT}, #line 52 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str18,FC_FONTVERSION_OBJECT}, #line 60 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str19,FC_FONT_FEATURES_OBJECT}, #line 41 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str20,FC_OUTLINE_OBJECT}, #line 36 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str21,FC_AUTOHINT_OBJECT}, #line 24 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str22,FC_SLANT_OBJECT}, #line 45 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str23,FC_SCALE_OBJECT}, #line 63 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str24,FC_POSTSCRIPT_NAME_OBJECT}, #line 43 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str25,FC_DPI_OBJECT}, #line 42 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str26,FC_SCALABLE_OBJECT}, #line 55 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str27,FC_EMBOLDEN_OBJECT}, #line 51 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str28,FC_LANG_OBJECT}, #line 32 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str29,FC_ANTIALIAS_OBJECT}, #line 18 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str30,FC_FAMILY_OBJECT}, #line 62 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str31,FC_HASH_OBJECT}, #line 59 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str32,FC_NAMELANG_OBJECT}, #line 56 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str33,FC_EMBEDDED_BITMAP_OBJECT}, #line 19 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str34,FC_FAMILYLANG_OBJECT}, #line 35 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str35,FC_VERTICAL_LAYOUT_OBJECT}, #line 49 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str36,FC_MATRIX_OBJECT}, #line 40 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str37,FC_RASTERIZER_OBJECT}, #line 28 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str38,FC_ASPECT_OBJECT}, #line 50 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str39,FC_CHARSET_OBJECT}, #line 26 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str40,FC_WIDTH_OBJECT}, #line 47 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str41,FC_CHAR_WIDTH_OBJECT}, #line 48 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str42,FC_CHAR_HEIGHT_OBJECT}, #line 44 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str43,FC_RGBA_OBJECT}, #line 20 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str44,FC_STYLE_OBJECT}, #line 58 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str45,FC_LCD_FILTER_OBJECT}, #line 30 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str46,FC_SPACING_OBJECT}, #line 39 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str47,FC_INDEX_OBJECT}, #line 21 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str48,FC_STYLELANG_OBJECT}, #line 53 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str49,FC_CAPABILITY_OBJECT}, {-1}, {-1}, {-1}, {-1}, {-1}, #line 61 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str55,FC_PRGNAME_OBJECT} }; if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { register int key = FcObjectTypeHash (str, len); if (key <= MAX_HASH_VALUE && key >= 0) { register int o = wordlist[key].name; if (o >= 0) { register const char *s = o + FcObjectTypeNamePool; if (*str == *s && !strcmp (str + 1, s + 1)) return &wordlist[key]; } } } return 0; } fontconfig-2.11.1/src/fcwindows.h0000664000076400007640000000277712267155335013654 00000000000000/* * fontconfig/src/fcwindows.h * * Copyright © 2013 Google, Inc. * * 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. * * Google Author(s): Behdad Esfahbod */ #ifndef _FCWINDOWS_H_ #define _FCWINDOWS_H_ #ifdef HAVE_CONFIG_H #include #endif #ifdef _WIN32 # ifndef _WIN32_WINNT # define _WIN32_WINNT 0x0500 # endif # define WIN32_LEAN_AND_MEAN # define WIN32_EXTRA_LEAN # define STRICT # include #endif #endif /* _FCWINDOWS_H_ */ fontconfig-2.11.1/src/fcdeprecate.h0000664000076400007640000000276612267155334014113 00000000000000/* * Copyright © 2007 Keith Packard * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * the above copyright notice appear in all copies and that both that copyright * notice and this permission notice appear in supporting documentation, and * that the name of the copyright holders not be used in advertising or * publicity pertaining to distribution of the software without specific, * written prior permission. The copyright holders make no representations * about the suitability of this software for any purpose. It is provided "as * is" without express or implied warranty. * * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE * OF THIS SOFTWARE. */ /* * These APIs are deprecated; still exported by the library, but not * declared in the public header file */ #ifndef _FCDEPRECATE_H_ #define _FCDEPRECATE_H_ FcPublic int FcConfigGetRescanInverval (FcConfig *config); FcPublic FcBool FcConfigSetRescanInverval (FcConfig *config, int rescanInterval); #endif /* _FCDEPRECATE_H_ */ fontconfig-2.11.1/src/fccompat.c0000664000076400007640000001271512275105647013431 00000000000000/* * fontconfig/src/fccompat.c * * Copyright © 2012 Red Hat, Inc. * * 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 #if HAVE_SYS_TYPES_H #include #endif #if HAVE_SYS_STAT_H #include #endif #if HAVE_FCNTL_H #include #endif #include #include #include #include #ifdef O_CLOEXEC #define FC_O_CLOEXEC O_CLOEXEC #else #define FC_O_CLOEXEC 0 #endif #ifdef O_LARGEFILE #define FC_O_LARGEFILE O_LARGEFILE #else #define FC_O_LARGEFILE 0 #endif #ifdef O_BINARY #define FC_O_BINARY O_BINARY #else #define FC_O_BINARY 0 #endif #ifdef O_TEMPORARY #define FC_O_TEMPORARY O_TEMPORARY #else #define FC_O_TEMPORARY 0 #endif #ifdef O_NOINHERIT #define FC_O_NOINHERIT O_NOINHERIT #else #define FC_O_NOINHERIT 0 #endif #if !defined (HAVE_MKOSTEMP) && !defined(HAVE_MKSTEMP) && !defined(HAVE__MKTEMP_S) static int mkstemp (char *template) { static const char s[] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; int fd, i; size_t l; if (template == NULL) { errno = EINVAL; return -1; } l = strlen (template); if (l < 6 || strcmp (&template[l - 6], "XXXXXX") != 0) { errno = EINVAL; return -1; } do { errno = 0; for (i = l - 6; i < l; i++) { int r = FcRandom (); template[i] = s[r % 62]; } fd = FcOpen (template, FC_O_BINARY | O_CREAT | O_EXCL | FC_O_TEMPORARY | FC_O_NOINHERIT | O_RDWR, 0600); } while (fd < 0 && errno == EEXIST); if (fd >= 0) errno = 0; return fd; } #define HAVE_MKSTEMP 1 #endif int FcOpen(const char *pathname, int flags, ...) { int fd = -1; if (flags & O_CREAT) { va_list ap; mode_t mode; va_start(ap, flags); mode = (mode_t) va_arg(ap, int); va_end(ap); fd = open(pathname, flags | FC_O_CLOEXEC | FC_O_LARGEFILE, mode); } else { fd = open(pathname, flags | FC_O_CLOEXEC | FC_O_LARGEFILE); } return fd; } int FcMakeTempfile (char *template) { int fd = -1; #if HAVE_MKOSTEMP fd = mkostemp (template, FC_O_CLOEXEC); #elif HAVE_MKSTEMP fd = mkstemp (template); # ifdef F_DUPFD_CLOEXEC if (fd != -1) { int newfd = fcntl(fd, F_DUPFD_CLOEXEC, STDIN_FILENO); close(fd); fd = newfd; } # elif defined(FD_CLOEXEC) if (fd != -1) { fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC); } # endif #elif HAVE__MKTEMP_S if (_mktemp_s(template, strlen(template) + 1) != 0) return -1; fd = FcOpen(template, O_RDWR | O_EXCL | O_CREAT, 0600); #endif return fd; } int32_t FcRandom(void) { int32_t result; #if HAVE_RANDOM_R static struct random_data fcrandbuf; static char statebuf[256]; static FcBool initialized = FcFalse; #ifdef _AIX static char *retval; long res; #endif if (initialized != FcTrue) { #ifdef _AIX initstate_r (time (NULL), statebuf, 256, &retval, &fcrandbuf); #else initstate_r (time (NULL), statebuf, 256, &fcrandbuf); #endif initialized = FcTrue; } #ifdef _AIX random_r (&res, &fcrandbuf); result = (int32_t)res; #else random_r (&fcrandbuf, &result); #endif #elif HAVE_RANDOM static char statebuf[256]; char *state; static FcBool initialized = FcFalse; if (initialized != FcTrue) { state = initstate (time (NULL), statebuf, 256); initialized = FcTrue; } else state = setstate (statebuf); result = random (); setstate (state); #elif HAVE_LRAND48 result = lrand48 (); #elif HAVE_RAND_R static unsigned int seed = time (NULL); result = rand_r (&seed); #elif HAVE_RAND static FcBool initialized = FcFalse; if (initialized != FcTrue) { srand (time (NULL)); initialized = FcTrue; } result = rand (); #else # error no random number generator function available. #endif return result; } #ifdef _WIN32 #include #define mkdir(path,mode) _mkdir(path) #endif FcBool FcMakeDirectory (const FcChar8 *dir) { FcChar8 *parent; FcBool ret; if (strlen ((char *) dir) == 0) return FcFalse; parent = FcStrDirname (dir); if (!parent) return FcFalse; if (access ((char *) parent, F_OK) == 0) ret = mkdir ((char *) dir, 0755) == 0 && chmod ((char *) dir, 0755) == 0; else if (access ((char *) parent, F_OK) == -1) ret = FcMakeDirectory (parent) && (mkdir ((char *) dir, 0755) == 0) && chmod ((char *) dir, 0755) == 0; else ret = FcFalse; FcStrFree (parent); return ret; } fontconfig-2.11.1/src/fcatomic.c0000664000076400007640000001312112267155334013411 00000000000000/* * fontconfig/src/fcatomic.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. */ /* * fcatomic.c * * Lock cache and configuration files for atomic update * * Uses only regular filesystem calls so it should * work even in the absense of functioning file locking * * On Unix, four files are used: * file - the data file accessed by other apps. * new - a new version of the data file while it's being written * lck - the lock file * tmp - a temporary file made unique with mkstemp * * Here's how it works: * Create 'tmp' and store our PID in it * Attempt to link it to 'lck' * Unlink 'tmp' * If the link succeeded, the lock is held * * On Windows, where there are no links, no tmp file is used, and lck * is a directory that's mkdir'ed. If the mkdir succeeds, the lock is * held. */ #include "fcint.h" #include #include #include #include #include #ifdef _WIN32 #include #define mkdir(path,mode) _mkdir(path) #endif #define NEW_NAME ".NEW" #define LCK_NAME ".LCK" #define TMP_NAME ".TMP-XXXXXX" FcAtomic * FcAtomicCreate (const FcChar8 *file) { int file_len = strlen ((char *) file); int new_len = file_len + sizeof (NEW_NAME); int lck_len = file_len + sizeof (LCK_NAME); int tmp_len = file_len + sizeof (TMP_NAME); int total_len = (sizeof (FcAtomic) + file_len + 1 + new_len + 1 + lck_len + 1 + tmp_len + 1); FcAtomic *atomic = malloc (total_len); if (!atomic) return 0; atomic->file = (FcChar8 *) (atomic + 1); strcpy ((char *) atomic->file, (char *) file); atomic->new = atomic->file + file_len + 1; strcpy ((char *) atomic->new, (char *) file); strcat ((char *) atomic->new, NEW_NAME); atomic->lck = atomic->new + new_len + 1; strcpy ((char *) atomic->lck, (char *) file); strcat ((char *) atomic->lck, LCK_NAME); atomic->tmp = atomic->lck + lck_len + 1; return atomic; } FcBool FcAtomicLock (FcAtomic *atomic) { int ret; struct stat lck_stat; #ifdef HAVE_LINK int fd = -1; FILE *f = 0; FcBool no_link = FcFalse; strcpy ((char *) atomic->tmp, (char *) atomic->file); strcat ((char *) atomic->tmp, TMP_NAME); fd = FcMakeTempfile ((char *) atomic->tmp); if (fd < 0) return FcFalse; f = fdopen (fd, "w"); if (!f) { close (fd); unlink ((char *) atomic->tmp); return FcFalse; } ret = fprintf (f, "%ld\n", (long)getpid()); if (ret <= 0) { fclose (f); unlink ((char *) atomic->tmp); return FcFalse; } if (fclose (f) == EOF) { unlink ((char *) atomic->tmp); return FcFalse; } ret = link ((char *) atomic->tmp, (char *) atomic->lck); if (ret < 0 && errno == EPERM) { /* the filesystem where atomic->lck points to may not supports * the hard link. so better try to fallback */ ret = mkdir ((char *) atomic->lck, 0600); no_link = FcTrue; } (void) unlink ((char *) atomic->tmp); #else ret = mkdir ((char *) atomic->lck, 0600); #endif if (ret < 0) { /* * If the file is around and old (> 10 minutes), * assume the lock is stale. This assumes that any * machines sharing the same filesystem will have clocks * reasonably close to each other. */ if (FcStat (atomic->lck, &lck_stat) >= 0) { time_t now = time (0); if ((long int) (now - lck_stat.st_mtime) > 10 * 60) { #ifdef HAVE_LINK if (no_link) { if (rmdir ((char *) atomic->lck) == 0) return FcAtomicLock (atomic); } else { if (unlink ((char *) atomic->lck) == 0) return FcAtomicLock (atomic); } #else if (rmdir ((char *) atomic->lck) == 0) return FcAtomicLock (atomic); #endif } } return FcFalse; } (void) unlink ((char *) atomic->new); return FcTrue; } FcChar8 * FcAtomicNewFile (FcAtomic *atomic) { return atomic->new; } FcChar8 * FcAtomicOrigFile (FcAtomic *atomic) { return atomic->file; } FcBool FcAtomicReplaceOrig (FcAtomic *atomic) { #ifdef _WIN32 unlink ((const char *) atomic->file); #endif if (rename ((char *) atomic->new, (char *) atomic->file) < 0) return FcFalse; return FcTrue; } void FcAtomicDeleteNew (FcAtomic *atomic) { unlink ((char *) atomic->new); } void FcAtomicUnlock (FcAtomic *atomic) { #ifdef HAVE_LINK if (unlink ((char *) atomic->lck) == -1) rmdir ((char *) atomic->lck); #else rmdir ((char *) atomic->lck); #endif } void FcAtomicDestroy (FcAtomic *atomic) { free (atomic); } #define __fcatomic__ #include "fcaliastail.h" #undef __fcatomic__ fontconfig-2.11.1/src/fcname.c0000664000076400007640000003457112267155334013071 00000000000000/* * fontconfig/src/fcname.c * * 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. */ #include "fcint.h" #include #include #include #include static const FcObjectType FcObjects[] = { #define FC_OBJECT(NAME, Type, Cmp) { FC_##NAME, Type }, #include "fcobjs.h" #undef FC_OBJECT }; #define NUM_OBJECT_TYPES ((int) (sizeof FcObjects / sizeof FcObjects[0])) static const FcObjectType * FcObjectFindById (FcObject object) { if (1 <= object && object <= NUM_OBJECT_TYPES) return &FcObjects[object - 1]; return FcObjectLookupOtherTypeById (object); } FcBool FcNameRegisterObjectTypes (const FcObjectType *types, int ntypes) { /* Deprecated. */ return FcFalse; } FcBool FcNameUnregisterObjectTypes (const FcObjectType *types, int ntypes) { /* Deprecated. */ return FcFalse; } const FcObjectType * FcNameGetObjectType (const char *object) { int id = FcObjectLookupBuiltinIdByName (object); if (!id) return FcObjectLookupOtherTypeByName (object); return &FcObjects[id - 1]; } FcBool FcObjectValidType (FcObject object, FcType type) { const FcObjectType *t = FcObjectFindById (object); if (t) { switch ((int) t->type) { case FcTypeUnknown: return FcTrue; case FcTypeDouble: case FcTypeInteger: if (type == FcTypeDouble || type == FcTypeInteger) return FcTrue; break; case FcTypeLangSet: if (type == FcTypeLangSet || type == FcTypeString) return FcTrue; break; default: if (type == t->type) return FcTrue; break; } return FcFalse; } return FcTrue; } FcObject FcObjectFromName (const char * name) { return FcObjectLookupIdByName (name); } FcObjectSet * FcObjectGetSet (void) { int i; FcObjectSet *os = NULL; os = FcObjectSetCreate (); for (i = 0; i < NUM_OBJECT_TYPES; i++) FcObjectSetAdd (os, FcObjects[i].object); return os; } const char * FcObjectName (FcObject object) { const FcObjectType *o = FcObjectFindById (object); if (o) return o->object; return FcObjectLookupOtherNameById (object); } static const FcConstant _FcBaseConstants[] = { { (FcChar8 *) "thin", "weight", FC_WEIGHT_THIN, }, { (FcChar8 *) "extralight", "weight", FC_WEIGHT_EXTRALIGHT, }, { (FcChar8 *) "ultralight", "weight", FC_WEIGHT_EXTRALIGHT, }, { (FcChar8 *) "light", "weight", FC_WEIGHT_LIGHT, }, { (FcChar8 *) "book", "weight", FC_WEIGHT_BOOK, }, { (FcChar8 *) "regular", "weight", FC_WEIGHT_REGULAR, }, { (FcChar8 *) "medium", "weight", FC_WEIGHT_MEDIUM, }, { (FcChar8 *) "demibold", "weight", FC_WEIGHT_DEMIBOLD, }, { (FcChar8 *) "semibold", "weight", FC_WEIGHT_DEMIBOLD, }, { (FcChar8 *) "bold", "weight", FC_WEIGHT_BOLD, }, { (FcChar8 *) "extrabold", "weight", FC_WEIGHT_EXTRABOLD, }, { (FcChar8 *) "ultrabold", "weight", FC_WEIGHT_EXTRABOLD, }, { (FcChar8 *) "black", "weight", FC_WEIGHT_BLACK, }, { (FcChar8 *) "heavy", "weight", FC_WEIGHT_HEAVY, }, { (FcChar8 *) "roman", "slant", FC_SLANT_ROMAN, }, { (FcChar8 *) "italic", "slant", FC_SLANT_ITALIC, }, { (FcChar8 *) "oblique", "slant", FC_SLANT_OBLIQUE, }, { (FcChar8 *) "ultracondensed", "width", FC_WIDTH_ULTRACONDENSED }, { (FcChar8 *) "extracondensed", "width", FC_WIDTH_EXTRACONDENSED }, { (FcChar8 *) "condensed", "width", FC_WIDTH_CONDENSED }, { (FcChar8 *) "semicondensed", "width", FC_WIDTH_SEMICONDENSED }, { (FcChar8 *) "normal", "width", FC_WIDTH_NORMAL }, { (FcChar8 *) "semiexpanded", "width", FC_WIDTH_SEMIEXPANDED }, { (FcChar8 *) "expanded", "width", FC_WIDTH_EXPANDED }, { (FcChar8 *) "extraexpanded", "width", FC_WIDTH_EXTRAEXPANDED }, { (FcChar8 *) "ultraexpanded", "width", FC_WIDTH_ULTRAEXPANDED }, { (FcChar8 *) "proportional", "spacing", FC_PROPORTIONAL, }, { (FcChar8 *) "dual", "spacing", FC_DUAL, }, { (FcChar8 *) "mono", "spacing", FC_MONO, }, { (FcChar8 *) "charcell", "spacing", FC_CHARCELL, }, { (FcChar8 *) "unknown", "rgba", FC_RGBA_UNKNOWN }, { (FcChar8 *) "rgb", "rgba", FC_RGBA_RGB, }, { (FcChar8 *) "bgr", "rgba", FC_RGBA_BGR, }, { (FcChar8 *) "vrgb", "rgba", FC_RGBA_VRGB }, { (FcChar8 *) "vbgr", "rgba", FC_RGBA_VBGR }, { (FcChar8 *) "none", "rgba", FC_RGBA_NONE }, { (FcChar8 *) "hintnone", "hintstyle", FC_HINT_NONE }, { (FcChar8 *) "hintslight", "hintstyle", FC_HINT_SLIGHT }, { (FcChar8 *) "hintmedium", "hintstyle", FC_HINT_MEDIUM }, { (FcChar8 *) "hintfull", "hintstyle", FC_HINT_FULL }, { (FcChar8 *) "antialias", "antialias", FcTrue }, { (FcChar8 *) "hinting", "hinting", FcTrue }, { (FcChar8 *) "verticallayout", "verticallayout", FcTrue }, { (FcChar8 *) "autohint", "autohint", FcTrue }, { (FcChar8 *) "globaladvance", "globaladvance", FcTrue }, /* deprecated */ { (FcChar8 *) "outline", "outline", FcTrue }, { (FcChar8 *) "scalable", "scalable", FcTrue }, { (FcChar8 *) "minspace", "minspace", FcTrue }, { (FcChar8 *) "embolden", "embolden", FcTrue }, { (FcChar8 *) "embeddedbitmap", "embeddedbitmap", FcTrue }, { (FcChar8 *) "decorative", "decorative", FcTrue }, { (FcChar8 *) "lcdnone", "lcdfilter", FC_LCD_NONE }, { (FcChar8 *) "lcddefault", "lcdfilter", FC_LCD_DEFAULT }, { (FcChar8 *) "lcdlight", "lcdfilter", FC_LCD_LIGHT }, { (FcChar8 *) "lcdlegacy", "lcdfilter", FC_LCD_LEGACY }, }; #define NUM_FC_CONSTANTS (sizeof _FcBaseConstants/sizeof _FcBaseConstants[0]) FcBool FcNameRegisterConstants (const FcConstant *consts, int nconsts) { /* Deprecated. */ return FcFalse; } FcBool FcNameUnregisterConstants (const FcConstant *consts, int nconsts) { /* Deprecated. */ return FcFalse; } const FcConstant * FcNameGetConstant (const FcChar8 *string) { unsigned int i; for (i = 0; i < NUM_FC_CONSTANTS; i++) if (!FcStrCmpIgnoreCase (string, _FcBaseConstants[i].name)) return &_FcBaseConstants[i]; return 0; } FcBool FcNameConstant (const FcChar8 *string, int *result) { const FcConstant *c; if ((c = FcNameGetConstant(string))) { *result = c->value; return FcTrue; } return FcFalse; } FcBool FcNameBool (const FcChar8 *v, FcBool *result) { char c0, c1; c0 = *v; c0 = FcToLower (c0); if (c0 == 't' || c0 == 'y' || c0 == '1') { *result = FcTrue; return FcTrue; } if (c0 == 'f' || c0 == 'n' || c0 == '0') { *result = FcFalse; return FcTrue; } if (c0 == 'o') { c1 = v[1]; c1 = FcToLower (c1); if (c1 == 'n') { *result = FcTrue; return FcTrue; } if (c1 == 'f') { *result = FcFalse; return FcTrue; } } return FcFalse; } static FcValue FcNameConvert (FcType type, FcChar8 *string) { FcValue v; FcMatrix m; v.type = type; switch ((int) v.type) { case FcTypeInteger: if (!FcNameConstant (string, &v.u.i)) v.u.i = atoi ((char *) string); break; case FcTypeString: v.u.s = FcStrdup (string); if (!v.u.s) v.type = FcTypeVoid; break; case FcTypeBool: if (!FcNameBool (string, &v.u.b)) v.u.b = FcFalse; break; case FcTypeDouble: v.u.d = strtod ((char *) string, 0); break; case FcTypeMatrix: FcMatrixInit (&m); sscanf ((char *) string, "%lg %lg %lg %lg", &m.xx, &m.xy, &m.yx, &m.yy); v.u.m = FcMatrixCopy (&m); break; case FcTypeCharSet: v.u.c = FcNameParseCharSet (string); if (!v.u.c) v.type = FcTypeVoid; break; case FcTypeLangSet: v.u.l = FcNameParseLangSet (string); if (!v.u.l) v.type = FcTypeVoid; break; default: break; } return v; } static const FcChar8 * FcNameFindNext (const FcChar8 *cur, const char *delim, FcChar8 *save, FcChar8 *last) { FcChar8 c; while ((c = *cur)) { if (!isspace (c)) break; ++cur; } while ((c = *cur)) { if (c == '\\') { ++cur; if (!(c = *cur)) break; } else if (strchr (delim, c)) break; ++cur; *save++ = c; } *save = 0; *last = *cur; if (*cur) cur++; return cur; } FcPattern * FcNameParse (const FcChar8 *name) { FcChar8 *save; FcPattern *pat; double d; FcChar8 *e; FcChar8 delim; FcValue v; const FcObjectType *t; const FcConstant *c; /* freed below */ save = malloc (strlen ((char *) name) + 1); if (!save) goto bail0; pat = FcPatternCreate (); if (!pat) goto bail1; for (;;) { name = FcNameFindNext (name, "-,:", save, &delim); if (save[0]) { if (!FcPatternAddString (pat, FC_FAMILY, save)) goto bail2; } if (delim != ',') break; } if (delim == '-') { for (;;) { name = FcNameFindNext (name, "-,:", save, &delim); d = strtod ((char *) save, (char **) &e); if (e != save) { if (!FcPatternAddDouble (pat, FC_SIZE, d)) goto bail2; } if (delim != ',') break; } } while (delim == ':') { name = FcNameFindNext (name, "=_:", save, &delim); if (save[0]) { if (delim == '=' || delim == '_') { t = FcNameGetObjectType ((char *) save); for (;;) { name = FcNameFindNext (name, ":,", save, &delim); if (t) { v = FcNameConvert (t->type, save); if (!FcPatternAdd (pat, t->object, v, FcTrue)) { FcValueDestroy (v); goto bail2; } FcValueDestroy (v); } if (delim != ',') break; } } else { if ((c = FcNameGetConstant (save))) { t = FcNameGetObjectType ((char *) c->object); if (t == NULL) goto bail2; switch ((int) t->type) { case FcTypeInteger: case FcTypeDouble: if (!FcPatternAddInteger (pat, c->object, c->value)) goto bail2; break; case FcTypeBool: if (!FcPatternAddBool (pat, c->object, c->value)) goto bail2; break; default: break; } } } } } free (save); return pat; bail2: FcPatternDestroy (pat); bail1: free (save); bail0: return 0; } static FcBool FcNameUnparseString (FcStrBuf *buf, const FcChar8 *string, const FcChar8 *escape) { FcChar8 c; while ((c = *string++)) { if (escape && strchr ((char *) escape, (char) c)) { if (!FcStrBufChar (buf, escape[0])) return FcFalse; } if (!FcStrBufChar (buf, c)) return FcFalse; } return FcTrue; } FcBool FcNameUnparseValue (FcStrBuf *buf, FcValue *v0, FcChar8 *escape) { FcChar8 temp[1024]; FcValue v = FcValueCanonicalize(v0); switch (v.type) { case FcTypeUnknown: case FcTypeVoid: return FcTrue; case FcTypeInteger: sprintf ((char *) temp, "%d", v.u.i); return FcNameUnparseString (buf, temp, 0); case FcTypeDouble: sprintf ((char *) temp, "%g", v.u.d); return FcNameUnparseString (buf, temp, 0); case FcTypeString: return FcNameUnparseString (buf, v.u.s, escape); case FcTypeBool: return FcNameUnparseString (buf, v.u.b ? (FcChar8 *) "True" : (FcChar8 *) "False", 0); case FcTypeMatrix: sprintf ((char *) temp, "%g %g %g %g", v.u.m->xx, v.u.m->xy, v.u.m->yx, v.u.m->yy); return FcNameUnparseString (buf, temp, 0); case FcTypeCharSet: return FcNameUnparseCharSet (buf, v.u.c); case FcTypeLangSet: return FcNameUnparseLangSet (buf, v.u.l); case FcTypeFTFace: return FcTrue; } return FcFalse; } FcBool FcNameUnparseValueList (FcStrBuf *buf, FcValueListPtr v, FcChar8 *escape) { while (v) { if (!FcNameUnparseValue (buf, &v->value, escape)) return FcFalse; if ((v = FcValueListNext(v)) != NULL) if (!FcNameUnparseString (buf, (FcChar8 *) ",", 0)) return FcFalse; } return FcTrue; } #define FC_ESCAPE_FIXED "\\-:," #define FC_ESCAPE_VARIABLE "\\=_:," FcChar8 * FcNameUnparse (FcPattern *pat) { return FcNameUnparseEscaped (pat, FcTrue); } FcChar8 * FcNameUnparseEscaped (FcPattern *pat, FcBool escape) { FcStrBuf buf; FcChar8 buf_static[8192]; int i; FcPatternElt *e; FcStrBufInit (&buf, buf_static, sizeof (buf_static)); e = FcPatternObjectFindElt (pat, FC_FAMILY_OBJECT); if (e) { if (!FcNameUnparseValueList (&buf, FcPatternEltValues(e), escape ? (FcChar8 *) FC_ESCAPE_FIXED : 0)) goto bail0; } e = FcPatternObjectFindElt (pat, FC_SIZE_OBJECT); if (e) { if (!FcNameUnparseString (&buf, (FcChar8 *) "-", 0)) goto bail0; if (!FcNameUnparseValueList (&buf, FcPatternEltValues(e), escape ? (FcChar8 *) FC_ESCAPE_FIXED : 0)) goto bail0; } for (i = 0; i < NUM_OBJECT_TYPES; i++) { FcObject id = i + 1; const FcObjectType *o; o = &FcObjects[i]; if (!strcmp (o->object, FC_FAMILY) || !strcmp (o->object, FC_SIZE)) continue; e = FcPatternObjectFindElt (pat, id); if (e) { if (!FcNameUnparseString (&buf, (FcChar8 *) ":", 0)) goto bail0; if (!FcNameUnparseString (&buf, (FcChar8 *) o->object, escape ? (FcChar8 *) FC_ESCAPE_VARIABLE : 0)) goto bail0; if (!FcNameUnparseString (&buf, (FcChar8 *) "=", 0)) goto bail0; if (!FcNameUnparseValueList (&buf, FcPatternEltValues(e), escape ? (FcChar8 *) FC_ESCAPE_VARIABLE : 0)) goto bail0; } } return FcStrBufDone (&buf); bail0: FcStrBufDestroy (&buf); return 0; } #define __fcname__ #include "fcaliastail.h" #undef __fcname__ fontconfig-2.11.1/src/fccfg.c0000664000076400007640000014012012267155334012674 00000000000000/* * fontconfig/src/fccfg.c * * 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. */ /* Objects MT-safe for readonly access. */ #include "fcint.h" #include #include #if defined (_WIN32) && !defined (R_OK) #define R_OK 4 #endif static FcConfig *_fcConfig; /* MT-safe */ static FcConfig * FcConfigEnsure (void) { FcConfig *config; retry: config = fc_atomic_ptr_get (&_fcConfig); if (!config) { config = FcInitLoadConfigAndFonts (); if (!fc_atomic_ptr_cmpexch (&_fcConfig, NULL, config)) { FcConfigDestroy (config); goto retry; } } return config; } FcBool FcConfigInit (void) { return FcConfigEnsure () ? FcTrue : FcFalse; } void FcConfigFini (void) { FcConfig *cfg = fc_atomic_ptr_get (&_fcConfig); if (cfg && fc_atomic_ptr_cmpexch (&_fcConfig, cfg, NULL)) FcConfigDestroy (cfg); } FcConfig * FcConfigCreate (void) { FcSetName set; FcConfig *config; config = malloc (sizeof (FcConfig)); if (!config) goto bail0; config->configDirs = FcStrSetCreate (); if (!config->configDirs) goto bail1; config->configFiles = FcStrSetCreate (); if (!config->configFiles) goto bail2; config->fontDirs = FcStrSetCreate (); if (!config->fontDirs) goto bail3; config->acceptGlobs = FcStrSetCreate (); if (!config->acceptGlobs) goto bail4; config->rejectGlobs = FcStrSetCreate (); if (!config->rejectGlobs) goto bail5; config->acceptPatterns = FcFontSetCreate (); if (!config->acceptPatterns) goto bail6; config->rejectPatterns = FcFontSetCreate (); if (!config->rejectPatterns) goto bail7; config->cacheDirs = FcStrSetCreate (); if (!config->cacheDirs) goto bail8; config->blanks = 0; config->substPattern = 0; config->substFont = 0; config->substScan = 0; config->maxObjects = 0; for (set = FcSetSystem; set <= FcSetApplication; set++) config->fonts[set] = 0; config->rescanTime = time(0); config->rescanInterval = 30; config->expr_pool = NULL; config->sysRoot = NULL; FcRefInit (&config->ref, 1); return config; bail8: FcFontSetDestroy (config->rejectPatterns); bail7: FcFontSetDestroy (config->acceptPatterns); bail6: FcStrSetDestroy (config->rejectGlobs); bail5: FcStrSetDestroy (config->acceptGlobs); bail4: FcStrSetDestroy (config->fontDirs); bail3: FcStrSetDestroy (config->configFiles); bail2: FcStrSetDestroy (config->configDirs); bail1: free (config); bail0: return 0; } static FcFileTime FcConfigNewestFile (FcStrSet *files) { FcStrList *list = FcStrListCreate (files); FcFileTime newest = { 0, FcFalse }; FcChar8 *file; struct stat statb; if (list) { while ((file = FcStrListNext (list))) if (FcStat (file, &statb) == 0) if (!newest.set || statb.st_mtime - newest.time > 0) { newest.set = FcTrue; newest.time = statb.st_mtime; } FcStrListDone (list); } return newest; } FcBool FcConfigUptoDate (FcConfig *config) { FcFileTime config_time, config_dir_time, font_time; time_t now = time(0); if (!config) { config = FcConfigGetCurrent (); if (!config) return FcFalse; } config_time = FcConfigNewestFile (config->configFiles); config_dir_time = FcConfigNewestFile (config->configDirs); font_time = FcConfigNewestFile (config->fontDirs); if ((config_time.set && config_time.time - config->rescanTime > 0) || (config_dir_time.set && (config_dir_time.time - config->rescanTime) > 0) || (font_time.set && (font_time.time - config->rescanTime) > 0)) { /* We need to check for potential clock problems here (OLPC ticket #6046) */ if ((config_time.set && (config_time.time - now) > 0) || (config_dir_time.set && (config_dir_time.time - now) > 0) || (font_time.set && (font_time.time - now) > 0)) { fprintf (stderr, "Fontconfig warning: Directory/file mtime in the future. New fonts may not be detected.\n"); config->rescanTime = now; return FcTrue; } else return FcFalse; } config->rescanTime = now; return FcTrue; } static void FcSubstDestroy (FcSubst *s) { FcSubst *n; while (s) { n = s->next; if (s->rule) FcRuleDestroy (s->rule); free (s); s = n; } } FcExpr * FcConfigAllocExpr (FcConfig *config) { if (!config->expr_pool || config->expr_pool->next == config->expr_pool->end) { FcExprPage *new_page; new_page = malloc (sizeof (FcExprPage)); if (!new_page) return 0; new_page->next_page = config->expr_pool; new_page->next = new_page->exprs; config->expr_pool = new_page; } return config->expr_pool->next++; } FcConfig * FcConfigReference (FcConfig *config) { if (!config) { config = FcConfigGetCurrent (); if (!config) return 0; } FcRefInc (&config->ref); return config; } void FcConfigDestroy (FcConfig *config) { FcSetName set; FcExprPage *page; if (FcRefDec (&config->ref) != 1) return; (void) fc_atomic_ptr_cmpexch (&_fcConfig, config, NULL); FcStrSetDestroy (config->configDirs); FcStrSetDestroy (config->fontDirs); FcStrSetDestroy (config->cacheDirs); FcStrSetDestroy (config->configFiles); FcStrSetDestroy (config->acceptGlobs); FcStrSetDestroy (config->rejectGlobs); FcFontSetDestroy (config->acceptPatterns); FcFontSetDestroy (config->rejectPatterns); if (config->blanks) FcBlanksDestroy (config->blanks); FcSubstDestroy (config->substPattern); FcSubstDestroy (config->substFont); FcSubstDestroy (config->substScan); for (set = FcSetSystem; set <= FcSetApplication; set++) if (config->fonts[set]) FcFontSetDestroy (config->fonts[set]); page = config->expr_pool; while (page) { FcExprPage *next = page->next_page; free (page); page = next; } if (config->sysRoot) FcStrFree (config->sysRoot); free (config); } /* * Add cache to configuration, adding fonts and directories */ FcBool FcConfigAddCache (FcConfig *config, FcCache *cache, FcSetName set, FcStrSet *dirSet) { FcFontSet *fs; intptr_t *dirs; int i; /* * Add fonts */ fs = FcCacheSet (cache); if (fs) { int nref = 0; for (i = 0; i < fs->nfont; i++) { FcPattern *font = FcFontSetFont (fs, i); FcChar8 *font_file; /* * Check to see if font is banned by filename */ if (FcPatternObjectGetString (font, FC_FILE_OBJECT, 0, &font_file) == FcResultMatch && !FcConfigAcceptFilename (config, font_file)) { continue; } /* * Check to see if font is banned by pattern */ if (!FcConfigAcceptFont (config, font)) continue; if (FcFontSetAdd (config->fonts[set], font)) nref++; } FcDirCacheReference (cache, nref); } /* * Add directories */ dirs = FcCacheDirs (cache); if (dirs) { for (i = 0; i < cache->dirs_count; i++) { FcChar8 *dir = FcOffsetToPtr (dirs, dirs[i], FcChar8); if (FcConfigAcceptFilename (config, dir)) FcStrSetAddFilename (dirSet, dir); } } return FcTrue; } static FcBool FcConfigAddDirList (FcConfig *config, FcSetName set, FcStrSet *dirSet) { FcStrList *dirlist; FcChar8 *dir; FcCache *cache; dirlist = FcStrListCreate (dirSet); if (!dirlist) return FcFalse; while ((dir = FcStrListNext (dirlist))) { if (FcDebug () & FC_DBG_FONTSET) printf ("adding fonts from%s\n", dir); cache = FcDirCacheRead (dir, FcFalse, config); if (!cache) continue; FcConfigAddCache (config, cache, set, dirSet); FcDirCacheUnload (cache); } FcStrListDone (dirlist); return FcTrue; } /* * Scan the current list of directories in the configuration * and build the set of available fonts. */ FcBool FcConfigBuildFonts (FcConfig *config) { FcFontSet *fonts; if (!config) { config = FcConfigGetCurrent (); if (!config) return FcFalse; } fonts = FcFontSetCreate (); if (!fonts) return FcFalse; FcConfigSetFonts (config, fonts, FcSetSystem); if (!FcConfigAddDirList (config, FcSetSystem, config->fontDirs)) return FcFalse; if (FcDebug () & FC_DBG_FONTSET) FcFontSetPrint (fonts); return FcTrue; } FcBool FcConfigSetCurrent (FcConfig *config) { FcConfig *cfg; retry: cfg = fc_atomic_ptr_get (&_fcConfig); if (config == cfg) return FcTrue; if (config && !config->fonts[FcSetSystem]) if (!FcConfigBuildFonts (config)) return FcFalse; if (!fc_atomic_ptr_cmpexch (&_fcConfig, cfg, config)) goto retry; if (cfg) FcConfigDestroy (cfg); return FcTrue; } FcConfig * FcConfigGetCurrent (void) { return FcConfigEnsure (); } FcBool FcConfigAddConfigDir (FcConfig *config, const FcChar8 *d) { return FcStrSetAddFilename (config->configDirs, d); } FcStrList * FcConfigGetConfigDirs (FcConfig *config) { if (!config) { config = FcConfigGetCurrent (); if (!config) return 0; } return FcStrListCreate (config->configDirs); } FcBool FcConfigAddFontDir (FcConfig *config, const FcChar8 *d) { return FcStrSetAddFilename (config->fontDirs, d); } FcBool FcConfigAddDir (FcConfig *config, const FcChar8 *d) { return (FcConfigAddConfigDir (config, d) && FcConfigAddFontDir (config, d)); } FcStrList * FcConfigGetFontDirs (FcConfig *config) { if (!config) { config = FcConfigGetCurrent (); if (!config) return 0; } return FcStrListCreate (config->fontDirs); } FcBool FcConfigAddCacheDir (FcConfig *config, const FcChar8 *d) { return FcStrSetAddFilename (config->cacheDirs, d); } FcStrList * FcConfigGetCacheDirs (const FcConfig *config) { if (!config) { config = FcConfigGetCurrent (); if (!config) return 0; } return FcStrListCreate (config->cacheDirs); } FcBool FcConfigAddConfigFile (FcConfig *config, const FcChar8 *f) { FcBool ret; FcChar8 *file = FcConfigFilename (f); if (!file) return FcFalse; ret = FcStrSetAdd (config->configFiles, file); FcStrFree (file); return ret; } FcStrList * FcConfigGetConfigFiles (FcConfig *config) { if (!config) { config = FcConfigGetCurrent (); if (!config) return 0; } return FcStrListCreate (config->configFiles); } FcChar8 * FcConfigGetCache (FcConfig *config FC_UNUSED) { return NULL; } FcFontSet * FcConfigGetFonts (FcConfig *config, FcSetName set) { if (!config) { config = FcConfigGetCurrent (); if (!config) return 0; } return config->fonts[set]; } void FcConfigSetFonts (FcConfig *config, FcFontSet *fonts, FcSetName set) { if (config->fonts[set]) FcFontSetDestroy (config->fonts[set]); config->fonts[set] = fonts; } FcBlanks * FcConfigGetBlanks (FcConfig *config) { if (!config) { config = FcConfigGetCurrent (); if (!config) return 0; } return config->blanks; } FcBool FcConfigAddBlank (FcConfig *config, FcChar32 blank) { FcBlanks *b, *freeme = 0; b = config->blanks; if (!b) { freeme = b = FcBlanksCreate (); if (!b) return FcFalse; } if (!FcBlanksAdd (b, blank)) { if (freeme) FcBlanksDestroy (freeme); return FcFalse; } config->blanks = b; return FcTrue; } int FcConfigGetRescanInterval (FcConfig *config) { if (!config) { config = FcConfigGetCurrent (); if (!config) return 0; } return config->rescanInterval; } FcBool FcConfigSetRescanInterval (FcConfig *config, int rescanInterval) { if (!config) { config = FcConfigGetCurrent (); if (!config) return FcFalse; } config->rescanInterval = rescanInterval; return FcTrue; } /* * A couple of typos escaped into the library */ int FcConfigGetRescanInverval (FcConfig *config) { return FcConfigGetRescanInterval (config); } FcBool FcConfigSetRescanInverval (FcConfig *config, int rescanInterval) { return FcConfigSetRescanInterval (config, rescanInterval); } FcBool FcConfigAddRule (FcConfig *config, FcRule *rule, FcMatchKind kind) { FcSubst *subst, **prev; FcRule *r; int n = 0; if (!rule) return FcFalse; switch (kind) { case FcMatchPattern: prev = &config->substPattern; break; case FcMatchFont: prev = &config->substFont; break; case FcMatchScan: prev = &config->substScan; break; default: return FcFalse; } subst = (FcSubst *) malloc (sizeof (FcSubst)); if (!subst) return FcFalse; for (; *prev; prev = &(*prev)->next); *prev = subst; subst->next = NULL; subst->rule = rule; for (r = rule; r; r = r->next) { switch (r->type) { case FcRuleTest: if (r->u.test && r->u.test->kind == FcMatchDefault) r->u.test->kind = kind; if (n < r->u.test->object) n = r->u.test->object; break; case FcRuleEdit: if (n < r->u.edit->object) n = r->u.edit->object; break; default: break; } } n = FC_OBJ_ID (n) - FC_MAX_BASE_OBJECT; if (config->maxObjects < n) config->maxObjects = n; if (FcDebug () & FC_DBG_EDIT) { printf ("Add Subst "); FcSubstPrint (subst); } return FcTrue; } static FcValue FcConfigPromote (FcValue v, FcValue u, FcValuePromotionBuffer *buf) { if (v.type == FcTypeInteger) { v.type = FcTypeDouble; v.u.d = (double) v.u.i; } else if (v.type == FcTypeVoid && u.type == FcTypeMatrix) { v.u.m = &FcIdentityMatrix; v.type = FcTypeMatrix; } else if (buf && v.type == FcTypeString && u.type == FcTypeLangSet) { v.u.l = FcLangSetPromote (v.u.s, buf); v.type = FcTypeLangSet; } return v; } FcBool FcConfigCompareValue (const FcValue *left_o, unsigned int op_, const FcValue *right_o) { FcValue left = FcValueCanonicalize(left_o); FcValue right = FcValueCanonicalize(right_o); FcBool ret = FcFalse; FcOp op = FC_OP_GET_OP (op_); int flags = FC_OP_GET_FLAGS (op_); FcValuePromotionBuffer buf1, buf2; left = FcConfigPromote (left, right, &buf1); right = FcConfigPromote (right, left, &buf2); if (left.type == right.type) { switch (left.type) { case FcTypeUnknown: break; /* No way to guess how to compare for this object */ case FcTypeInteger: break; /* FcConfigPromote prevents this from happening */ case FcTypeDouble: switch ((int) op) { case FcOpEqual: case FcOpContains: case FcOpListing: ret = left.u.d == right.u.d; break; case FcOpNotEqual: case FcOpNotContains: ret = left.u.d != right.u.d; break; case FcOpLess: ret = left.u.d < right.u.d; break; case FcOpLessEqual: ret = left.u.d <= right.u.d; break; case FcOpMore: ret = left.u.d > right.u.d; break; case FcOpMoreEqual: ret = left.u.d >= right.u.d; break; default: break; } break; case FcTypeBool: switch ((int) op) { case FcOpEqual: case FcOpContains: case FcOpListing: ret = left.u.b == right.u.b; break; case FcOpNotEqual: case FcOpNotContains: ret = left.u.b != right.u.b; break; default: break; } break; case FcTypeString: switch ((int) op) { case FcOpEqual: case FcOpListing: if (flags & FcOpFlagIgnoreBlanks) ret = FcStrCmpIgnoreBlanksAndCase (left.u.s, right.u.s) == 0; else ret = FcStrCmpIgnoreCase (left.u.s, right.u.s) == 0; break; case FcOpContains: ret = FcStrStrIgnoreCase (left.u.s, right.u.s) != 0; break; case FcOpNotEqual: if (flags & FcOpFlagIgnoreBlanks) ret = FcStrCmpIgnoreBlanksAndCase (left.u.s, right.u.s) != 0; else ret = FcStrCmpIgnoreCase (left.u.s, right.u.s) != 0; break; case FcOpNotContains: ret = FcStrStrIgnoreCase (left.u.s, right.u.s) == 0; break; default: break; } break; case FcTypeMatrix: switch ((int) op) { case FcOpEqual: case FcOpContains: case FcOpListing: ret = FcMatrixEqual (left.u.m, right.u.m); break; case FcOpNotEqual: case FcOpNotContains: ret = !FcMatrixEqual (left.u.m, right.u.m); break; default: break; } break; case FcTypeCharSet: switch ((int) op) { case FcOpContains: case FcOpListing: /* left contains right if right is a subset of left */ ret = FcCharSetIsSubset (right.u.c, left.u.c); break; case FcOpNotContains: /* left contains right if right is a subset of left */ ret = !FcCharSetIsSubset (right.u.c, left.u.c); break; case FcOpEqual: ret = FcCharSetEqual (left.u.c, right.u.c); break; case FcOpNotEqual: ret = !FcCharSetEqual (left.u.c, right.u.c); break; default: break; } break; case FcTypeLangSet: switch ((int) op) { case FcOpContains: case FcOpListing: ret = FcLangSetContains (left.u.l, right.u.l); break; case FcOpNotContains: ret = !FcLangSetContains (left.u.l, right.u.l); break; case FcOpEqual: ret = FcLangSetEqual (left.u.l, right.u.l); break; case FcOpNotEqual: ret = !FcLangSetEqual (left.u.l, right.u.l); break; default: break; } break; case FcTypeVoid: switch ((int) op) { case FcOpEqual: case FcOpContains: case FcOpListing: ret = FcTrue; break; default: break; } break; case FcTypeFTFace: switch ((int) op) { case FcOpEqual: case FcOpContains: case FcOpListing: ret = left.u.f == right.u.f; break; case FcOpNotEqual: case FcOpNotContains: ret = left.u.f != right.u.f; break; default: break; } break; } } else { if (op == FcOpNotEqual || op == FcOpNotContains) ret = FcTrue; } return ret; } #define _FcDoubleFloor(d) ((int) (d)) #define _FcDoubleCeil(d) ((double) (int) (d) == (d) ? (int) (d) : (int) ((d) + 1)) #define FcDoubleFloor(d) ((d) >= 0 ? _FcDoubleFloor(d) : -_FcDoubleCeil(-(d))) #define FcDoubleCeil(d) ((d) >= 0 ? _FcDoubleCeil(d) : -_FcDoubleFloor(-(d))) #define FcDoubleRound(d) FcDoubleFloor ((d) + 0.5) #define FcDoubleTrunc(d) ((d) >= 0 ? _FcDoubleFloor (d) : -_FcDoubleFloor (-(d))) static FcValue FcConfigEvaluate (FcPattern *p, FcPattern *p_pat, FcMatchKind kind, FcExpr *e) { FcValue v, vl, vr; FcMatrix *m; FcChar8 *str; FcOp op = FC_OP_GET_OP (e->op); switch ((int) op) { case FcOpInteger: v.type = FcTypeInteger; v.u.i = e->u.ival; break; case FcOpDouble: v.type = FcTypeDouble; v.u.d = e->u.dval; break; case FcOpString: v.type = FcTypeString; v.u.s = e->u.sval; v = FcValueSave (v); break; case FcOpMatrix: { FcMatrix m; FcValue xx, xy, yx, yy; v.type = FcTypeMatrix; xx = FcConfigPromote (FcConfigEvaluate (p, p_pat, kind, e->u.mexpr->xx), v, NULL); xy = FcConfigPromote (FcConfigEvaluate (p, p_pat, kind, e->u.mexpr->xy), v, NULL); yx = FcConfigPromote (FcConfigEvaluate (p, p_pat, kind, e->u.mexpr->yx), v, NULL); yy = FcConfigPromote (FcConfigEvaluate (p, p_pat, kind, e->u.mexpr->yy), v, NULL); if (xx.type == FcTypeDouble && xy.type == FcTypeDouble && yx.type == FcTypeDouble && yy.type == FcTypeDouble) { m.xx = xx.u.d; m.xy = xy.u.d; m.yx = yx.u.d; m.yy = yy.u.d; v.u.m = &m; } else v.type = FcTypeVoid; v = FcValueSave (v); } break; case FcOpCharSet: v.type = FcTypeCharSet; v.u.c = e->u.cval; v = FcValueSave (v); break; case FcOpLangSet: v.type = FcTypeLangSet; v.u.l = e->u.lval; v = FcValueSave (v); break; case FcOpBool: v.type = FcTypeBool; v.u.b = e->u.bval; break; case FcOpField: if (kind == FcMatchFont && e->u.name.kind == FcMatchPattern) { if (FcResultMatch != FcPatternObjectGet (p_pat, e->u.name.object, 0, &v)) v.type = FcTypeVoid; } else if (kind == FcMatchPattern && e->u.name.kind == FcMatchFont) { fprintf (stderr, "Fontconfig warning: tag has target=\"font\" in a .\n"); v.type = FcTypeVoid; } else { if (FcResultMatch != FcPatternObjectGet (p, e->u.name.object, 0, &v)) v.type = FcTypeVoid; } v = FcValueSave (v); break; case FcOpConst: if (FcNameConstant (e->u.constant, &v.u.i)) v.type = FcTypeInteger; else v.type = FcTypeVoid; break; case FcOpQuest: vl = FcConfigEvaluate (p, p_pat, kind, e->u.tree.left); if (vl.type == FcTypeBool) { if (vl.u.b) v = FcConfigEvaluate (p, p_pat, kind, e->u.tree.right->u.tree.left); else v = FcConfigEvaluate (p, p_pat, kind, e->u.tree.right->u.tree.right); } else v.type = FcTypeVoid; FcValueDestroy (vl); break; case FcOpEqual: case FcOpNotEqual: case FcOpLess: case FcOpLessEqual: case FcOpMore: case FcOpMoreEqual: case FcOpContains: case FcOpNotContains: case FcOpListing: vl = FcConfigEvaluate (p, p_pat, kind, e->u.tree.left); vr = FcConfigEvaluate (p, p_pat, kind, e->u.tree.right); v.type = FcTypeBool; v.u.b = FcConfigCompareValue (&vl, e->op, &vr); FcValueDestroy (vl); FcValueDestroy (vr); break; case FcOpOr: case FcOpAnd: case FcOpPlus: case FcOpMinus: case FcOpTimes: case FcOpDivide: vl = FcConfigEvaluate (p, p_pat, kind, e->u.tree.left); vr = FcConfigEvaluate (p, p_pat, kind, e->u.tree.right); vl = FcConfigPromote (vl, vr, NULL); vr = FcConfigPromote (vr, vl, NULL); if (vl.type == vr.type) { switch ((int) vl.type) { case FcTypeDouble: switch ((int) op) { case FcOpPlus: v.type = FcTypeDouble; v.u.d = vl.u.d + vr.u.d; break; case FcOpMinus: v.type = FcTypeDouble; v.u.d = vl.u.d - vr.u.d; break; case FcOpTimes: v.type = FcTypeDouble; v.u.d = vl.u.d * vr.u.d; break; case FcOpDivide: v.type = FcTypeDouble; v.u.d = vl.u.d / vr.u.d; break; default: v.type = FcTypeVoid; break; } if (v.type == FcTypeDouble && v.u.d == (double) (int) v.u.d) { v.type = FcTypeInteger; v.u.i = (int) v.u.d; } break; case FcTypeBool: switch ((int) op) { case FcOpOr: v.type = FcTypeBool; v.u.b = vl.u.b || vr.u.b; break; case FcOpAnd: v.type = FcTypeBool; v.u.b = vl.u.b && vr.u.b; break; default: v.type = FcTypeVoid; break; } break; case FcTypeString: switch ((int) op) { case FcOpPlus: v.type = FcTypeString; str = FcStrPlus (vl.u.s, vr.u.s); v.u.s = FcStrdup (str); FcStrFree (str); if (!v.u.s) v.type = FcTypeVoid; break; default: v.type = FcTypeVoid; break; } break; case FcTypeMatrix: switch ((int) op) { case FcOpTimes: v.type = FcTypeMatrix; m = malloc (sizeof (FcMatrix)); if (m) { FcMatrixMultiply (m, vl.u.m, vr.u.m); v.u.m = m; } else { v.type = FcTypeVoid; } break; default: v.type = FcTypeVoid; break; } break; case FcTypeCharSet: switch ((int) op) { case FcOpPlus: v.type = FcTypeCharSet; 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 (vl.u.c, vr.u.c); if (!v.u.c) v.type = FcTypeVoid; break; default: v.type = FcTypeVoid; break; } break; case FcTypeLangSet: switch ((int) op) { case FcOpPlus: v.type = FcTypeLangSet; 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 (vl.u.l, vr.u.l); if (!v.u.l) v.type = FcTypeVoid; break; default: v.type = FcTypeVoid; break; } break; default: v.type = FcTypeVoid; break; } } else v.type = FcTypeVoid; FcValueDestroy (vl); FcValueDestroy (vr); break; case FcOpNot: vl = FcConfigEvaluate (p, p_pat, kind, e->u.tree.left); switch ((int) vl.type) { case FcTypeBool: v.type = FcTypeBool; v.u.b = !vl.u.b; break; default: v.type = FcTypeVoid; break; } FcValueDestroy (vl); break; case FcOpFloor: vl = FcConfigEvaluate (p, p_pat, kind, e->u.tree.left); switch ((int) vl.type) { case FcTypeInteger: v = vl; break; case FcTypeDouble: v.type = FcTypeInteger; v.u.i = FcDoubleFloor (vl.u.d); break; default: v.type = FcTypeVoid; break; } FcValueDestroy (vl); break; case FcOpCeil: vl = FcConfigEvaluate (p, p_pat, kind, e->u.tree.left); switch ((int) vl.type) { case FcTypeInteger: v = vl; break; case FcTypeDouble: v.type = FcTypeInteger; v.u.i = FcDoubleCeil (vl.u.d); break; default: v.type = FcTypeVoid; break; } FcValueDestroy (vl); break; case FcOpRound: vl = FcConfigEvaluate (p, p_pat, kind, e->u.tree.left); switch ((int) vl.type) { case FcTypeInteger: v = vl; break; case FcTypeDouble: v.type = FcTypeInteger; v.u.i = FcDoubleRound (vl.u.d); break; default: v.type = FcTypeVoid; break; } FcValueDestroy (vl); break; case FcOpTrunc: vl = FcConfigEvaluate (p, p_pat, kind, e->u.tree.left); switch ((int) vl.type) { case FcTypeInteger: v = vl; break; case FcTypeDouble: v.type = FcTypeInteger; v.u.i = FcDoubleTrunc (vl.u.d); break; default: v.type = FcTypeVoid; break; } FcValueDestroy (vl); break; default: v.type = FcTypeVoid; break; } return v; } static FcValueList * FcConfigMatchValueList (FcPattern *p, FcPattern *p_pat, FcMatchKind kind, FcTest *t, FcValueList *values) { FcValueList *ret = 0; FcExpr *e = t->expr; FcValue value; FcValueList *v; while (e) { /* Compute the value of the match expression */ if (FC_OP_GET_OP (e->op) == FcOpComma) { value = FcConfigEvaluate (p, p_pat, kind, e->u.tree.left); e = e->u.tree.right; } else { value = FcConfigEvaluate (p, p_pat, kind, e); e = 0; } for (v = values; v; v = FcValueListNext(v)) { /* Compare the pattern value to the match expression value */ if (FcConfigCompareValue (&v->value, t->op, &value)) { if (!ret) ret = v; } else { if (t->qual == FcQualAll) { ret = 0; break; } } } FcValueDestroy (value); } return ret; } static FcValueList * FcConfigValues (FcPattern *p, FcPattern *p_pat, FcMatchKind kind, FcExpr *e, FcValueBinding binding) { FcValueList *l; if (!e) return 0; l = (FcValueList *) malloc (sizeof (FcValueList)); if (!l) return 0; if (FC_OP_GET_OP (e->op) == FcOpComma) { l->value = FcConfigEvaluate (p, p_pat, kind, e->u.tree.left); l->next = FcConfigValues (p, p_pat, kind, e->u.tree.right, binding); } else { l->value = FcConfigEvaluate (p, p_pat, kind, e); l->next = NULL; } l->binding = binding; if (l->value.type == FcTypeVoid) { FcValueList *next = FcValueListNext(l); free (l); l = next; } return l; } static FcBool FcConfigAdd (FcValueListPtr *head, FcValueList *position, FcBool append, FcValueList *new, FcObject object) { FcValueListPtr *prev, l, last, v; FcValueBinding sameBinding; /* * Make sure the stored type is valid for built-in objects */ for (l = new; l != NULL; l = FcValueListNext (l)) { if (!FcObjectValidType (object, l->value.type)) { fprintf (stderr, "Fontconfig warning: FcPattern object %s does not accept value", FcObjectName (object)); FcValuePrintFile (stderr, l->value); fprintf (stderr, "\n"); if (FcDebug () & FC_DBG_EDIT) { printf ("Not adding\n"); } return FcFalse; } } if (position) sameBinding = position->binding; else sameBinding = FcValueBindingWeak; for (v = new; v != NULL; v = FcValueListNext(v)) if (v->binding == FcValueBindingSame) v->binding = sameBinding; if (append) { if (position) prev = &position->next; else for (prev = head; *prev != NULL; prev = &(*prev)->next) ; } else { if (position) { for (prev = head; *prev != NULL; prev = &(*prev)->next) { if (*prev == position) break; } } else prev = head; if (FcDebug () & FC_DBG_EDIT) { if (*prev == NULL) printf ("position not on list\n"); } } if (FcDebug () & FC_DBG_EDIT) { printf ("%s list before ", append ? "Append" : "Prepend"); FcValueListPrintWithPosition (*head, *prev); printf ("\n"); } if (new) { last = new; while (last->next != NULL) last = last->next; last->next = *prev; *prev = new; } if (FcDebug () & FC_DBG_EDIT) { printf ("%s list after ", append ? "Append" : "Prepend"); FcValueListPrint (*head); printf ("\n"); } return FcTrue; } static void FcConfigDel (FcValueListPtr *head, FcValueList *position) { FcValueListPtr *prev; for (prev = head; *prev != NULL; prev = &(*prev)->next) { if (*prev == position) { *prev = position->next; position->next = NULL; FcValueListDestroy (position); break; } } } static void FcConfigPatternAdd (FcPattern *p, FcObject object, FcValueList *list, FcBool append) { if (list) { FcPatternElt *e = FcPatternObjectInsertElt (p, object); if (!e) return; FcConfigAdd (&e->values, 0, append, list, object); } } /* * Delete all values associated with a field */ static void FcConfigPatternDel (FcPattern *p, FcObject object) { FcPatternElt *e = FcPatternObjectFindElt (p, object); if (!e) return; while (e->values != NULL) FcConfigDel (&e->values, e->values); } static void FcConfigPatternCanon (FcPattern *p, FcObject object) { FcPatternElt *e = FcPatternObjectFindElt (p, object); if (!e) return; if (e->values == NULL) FcPatternObjectDel (p, object); } FcBool FcConfigSubstituteWithPat (FcConfig *config, FcPattern *p, FcPattern *p_pat, FcMatchKind kind) { FcValue v; FcSubst *s; FcRule *r; FcValueList *l, **value = NULL, *vl; FcPattern *m; FcStrSet *strs; FcObject object = FC_INVALID_OBJECT; FcPatternElt **elt = NULL, *e; int i, nobjs; FcBool retval = FcTrue; FcTest **tst = NULL; if (!config) { config = FcConfigGetCurrent (); if (!config) return FcFalse; } switch (kind) { case FcMatchPattern: s = config->substPattern; strs = FcGetDefaultLangs (); if (strs) { FcStrList *l = FcStrListCreate (strs); FcChar8 *lang; FcValue v; FcStrSetDestroy (strs); while (l && (lang = FcStrListNext (l))) { v.type = FcTypeString; v.u.s = lang; FcPatternObjectAddWithBinding (p, FC_LANG_OBJECT, v, FcValueBindingWeak, FcTrue); } FcStrListDone (l); } if (FcPatternObjectGet (p, FC_PRGNAME_OBJECT, 0, &v) == FcResultNoMatch) { FcChar8 *prgname = FcGetPrgname (); if (prgname) FcPatternObjectAddString (p, FC_PRGNAME_OBJECT, prgname); } break; case FcMatchFont: s = config->substFont; break; case FcMatchScan: s = config->substScan; break; default: return FcFalse; } nobjs = FC_MAX_BASE_OBJECT + config->maxObjects + 2; value = (FcValueList **) malloc (SIZEOF_VOID_P * nobjs); if (!value) { retval = FcFalse; goto bail1; } elt = (FcPatternElt **) malloc (SIZEOF_VOID_P * nobjs); if (!elt) { retval = FcFalse; goto bail1; } tst = (FcTest **) malloc (SIZEOF_VOID_P * nobjs); if (!tst) { retval = FcFalse; goto bail1; } if (FcDebug () & FC_DBG_EDIT) { printf ("FcConfigSubstitute "); FcPatternPrint (p); } for (; s; s = s->next) { r = s->rule; for (i = 0; i < nobjs; i++) { elt[i] = NULL; value[i] = NULL; tst[i] = NULL; } for (; r; r = r->next) { switch (r->type) { case FcRuleUnknown: /* shouldn't be reached */ break; case FcRuleTest: object = FC_OBJ_ID (r->u.test->object); /* * Check the tests to see if * they all match the pattern */ if (FcDebug () & FC_DBG_EDIT) { printf ("FcConfigSubstitute test "); FcTestPrint (r->u.test); } if (kind == FcMatchFont && r->u.test->kind == FcMatchPattern) m = p_pat; else m = p; if (m) e = FcPatternObjectFindElt (m, r->u.test->object); else e = NULL; /* different 'kind' won't be the target of edit */ if (!elt[object] && kind == r->u.test->kind) { elt[object] = e; tst[object] = r->u.test; } /* * If there's no such field in the font, * then FcQualAll matches while FcQualAny does not */ if (!e) { if (r->u.test->qual == FcQualAll) { value[object] = NULL; continue; } else { if (FcDebug () & FC_DBG_EDIT) printf ("No match\n"); goto bail; } } /* * Check to see if there is a match, mark the location * to apply match-relative edits */ vl = FcConfigMatchValueList (m, p_pat, kind, r->u.test, e->values); /* different 'kind' won't be the target of edit */ if (!value[object] && kind == r->u.test->kind) value[object] = vl; if (!vl || (r->u.test->qual == FcQualFirst && vl != e->values) || (r->u.test->qual == FcQualNotFirst && vl == e->values)) { if (FcDebug () & FC_DBG_EDIT) printf ("No match\n"); goto bail; } break; case FcRuleEdit: object = FC_OBJ_ID (r->u.edit->object); if (FcDebug () & FC_DBG_EDIT) { printf ("Substitute "); FcEditPrint (r->u.edit); printf ("\n\n"); } /* * Evaluate the list of expressions */ l = FcConfigValues (p, p_pat,kind, r->u.edit->expr, r->u.edit->binding); if (tst[object] && (tst[object]->kind == FcMatchFont || kind == FcMatchPattern)) elt[object] = FcPatternObjectFindElt (p, tst[object]->object); switch (FC_OP_GET_OP (r->u.edit->op)) { case FcOpAssign: /* * If there was a test, then replace the matched * value with the new list of values */ if (value[object]) { FcValueList *thisValue = value[object]; FcValueList *nextValue = l; /* * Append the new list of values after the current value */ FcConfigAdd (&elt[object]->values, thisValue, FcTrue, l, r->u.edit->object); /* * Delete the marked value */ if (thisValue) FcConfigDel (&elt[object]->values, thisValue); /* * Adjust a pointer into the value list to ensure * future edits occur at the same place */ value[object] = nextValue; break; } /* fall through ... */ case FcOpAssignReplace: /* * Delete all of the values and insert * the new set */ FcConfigPatternDel (p, r->u.edit->object); FcConfigPatternAdd (p, r->u.edit->object, l, FcTrue); /* * Adjust a pointer into the value list as they no * longer point to anything valid */ value[object] = NULL; break; case FcOpPrepend: if (value[object]) { FcConfigAdd (&elt[object]->values, value[object], FcFalse, l, r->u.edit->object); break; } /* fall through ... */ case FcOpPrependFirst: FcConfigPatternAdd (p, r->u.edit->object, l, FcFalse); break; case FcOpAppend: if (value[object]) { FcConfigAdd (&elt[object]->values, value[object], FcTrue, l, r->u.edit->object); break; } /* fall through ... */ case FcOpAppendLast: FcConfigPatternAdd (p, r->u.edit->object, l, FcTrue); break; case FcOpDelete: if (value[object]) { FcConfigDel (&elt[object]->values, value[object]); break; } /* fall through ... */ case FcOpDeleteAll: FcConfigPatternDel (p, r->u.edit->object); break; default: FcValueListDestroy (l); break; } /* * Now go through the pattern and eliminate * any properties without data */ FcConfigPatternCanon (p, r->u.edit->object); if (FcDebug () & FC_DBG_EDIT) { printf ("FcConfigSubstitute edit"); FcPatternPrint (p); } break; } } bail:; } if (FcDebug () & FC_DBG_EDIT) { printf ("FcConfigSubstitute done"); FcPatternPrint (p); } bail1: if (elt) free (elt); if (value) free (value); if (tst) free (tst); return retval; } FcBool FcConfigSubstitute (FcConfig *config, FcPattern *p, FcMatchKind kind) { return FcConfigSubstituteWithPat (config, p, 0, kind); } #if defined (_WIN32) static FcChar8 fontconfig_path[1000] = ""; /* MT-dontcare */ # if (defined (PIC) || defined (DLL_EXPORT)) BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved); BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { FcChar8 *p; switch (fdwReason) { case DLL_PROCESS_ATTACH: if (!GetModuleFileName ((HMODULE) hinstDLL, (LPCH) fontconfig_path, sizeof (fontconfig_path))) break; /* If the fontconfig DLL is in a "bin" or "lib" subfolder, * assume it's a Unix-style installation tree, and use * "etc/fonts" in there as FONTCONFIG_PATH. Otherwise use the * folder where the DLL is as FONTCONFIG_PATH. */ p = (FcChar8 *) strrchr ((const char *) fontconfig_path, '\\'); if (p) { *p = '\0'; p = (FcChar8 *) strrchr ((const char *) fontconfig_path, '\\'); if (p && (FcStrCmpIgnoreCase (p + 1, (const FcChar8 *) "bin") == 0 || FcStrCmpIgnoreCase (p + 1, (const FcChar8 *) "lib") == 0)) *p = '\0'; strcat ((char *) fontconfig_path, "\\etc\\fonts"); } else fontconfig_path[0] = '\0'; break; } return TRUE; } # endif /* !PIC */ #undef FONTCONFIG_PATH #define FONTCONFIG_PATH fontconfig_path #endif /* !_WIN32 */ #ifndef FONTCONFIG_FILE #define FONTCONFIG_FILE "fonts.conf" #endif static FcChar8 * FcConfigFileExists (const FcChar8 *dir, const FcChar8 *file) { FcChar8 *path; int size, osize; if (!dir) dir = (FcChar8 *) ""; osize = strlen ((char *) dir) + 1 + strlen ((char *) file) + 1; /* * workaround valgrind warning because glibc takes advantage of how it knows memory is * allocated to implement strlen by reading in groups of 4 */ size = (osize + 3) & ~3; path = malloc (size); if (!path) return 0; strcpy ((char *) path, (const char *) dir); /* make sure there's a single separator */ #ifdef _WIN32 if ((!path[0] || (path[strlen((char *) path)-1] != '/' && path[strlen((char *) path)-1] != '\\')) && !(file[0] == '/' || file[0] == '\\' || (isalpha (file[0]) && file[1] == ':' && (file[2] == '/' || file[2] == '\\')))) strcat ((char *) path, "\\"); #else if ((!path[0] || path[strlen((char *) path)-1] != '/') && file[0] != '/') strcat ((char *) path, "/"); else osize--; #endif strcat ((char *) path, (char *) file); if (access ((char *) path, R_OK) == 0) return path; FcStrFree (path); return 0; } static FcChar8 ** FcConfigGetPath (void) { FcChar8 **path; FcChar8 *env, *e, *colon; FcChar8 *dir; int npath; int i; npath = 2; /* default dir + null */ env = (FcChar8 *) getenv ("FONTCONFIG_PATH"); if (env) { e = env; npath++; while (*e) if (*e++ == FC_SEARCH_PATH_SEPARATOR) npath++; } path = calloc (npath, sizeof (FcChar8 *)); if (!path) goto bail0; i = 0; if (env) { e = env; while (*e) { colon = (FcChar8 *) strchr ((char *) e, FC_SEARCH_PATH_SEPARATOR); if (!colon) colon = e + strlen ((char *) e); path[i] = malloc (colon - e + 1); if (!path[i]) goto bail1; strncpy ((char *) path[i], (const char *) e, colon - e); path[i][colon - e] = '\0'; if (*colon) e = colon + 1; else e = colon; i++; } } #ifdef _WIN32 if (fontconfig_path[0] == '\0') { char *p; if(!GetModuleFileName(NULL, (LPCH) fontconfig_path, sizeof(fontconfig_path))) goto bail1; p = strrchr ((const char *) fontconfig_path, '\\'); if (p) *p = '\0'; strcat ((char *) fontconfig_path, "\\fonts"); } #endif dir = (FcChar8 *) FONTCONFIG_PATH; path[i] = malloc (strlen ((char *) dir) + 1); if (!path[i]) goto bail1; strcpy ((char *) path[i], (const char *) dir); return path; bail1: for (i = 0; path[i]; i++) free (path[i]); free (path); bail0: return 0; } static void FcConfigFreePath (FcChar8 **path) { FcChar8 **p; for (p = path; *p; p++) free (*p); free (path); } static FcBool _FcConfigHomeEnabled = FcTrue; /* MT-goodenough */ FcChar8 * FcConfigHome (void) { if (_FcConfigHomeEnabled) { char *home = getenv ("HOME"); #ifdef _WIN32 if (home == NULL) home = getenv ("USERPROFILE"); #endif return (FcChar8 *) home; } return 0; } FcChar8 * FcConfigXdgCacheHome (void) { const char *env = getenv ("XDG_CACHE_HOME"); FcChar8 *ret = NULL; if (env) ret = FcStrCopy ((const FcChar8 *)env); else { const FcChar8 *home = FcConfigHome (); size_t len = home ? strlen ((const char *)home) : 0; ret = malloc (len + 7 + 1); if (ret) { memcpy (ret, home, len); memcpy (&ret[len], FC_DIR_SEPARATOR_S ".cache", 7); ret[len + 7] = 0; } } return ret; } FcChar8 * FcConfigXdgConfigHome (void) { const char *env = getenv ("XDG_CONFIG_HOME"); FcChar8 *ret = NULL; if (env) ret = FcStrCopy ((const FcChar8 *)env); else { const FcChar8 *home = FcConfigHome (); size_t len = home ? strlen ((const char *)home) : 0; ret = malloc (len + 8 + 1); if (ret) { memcpy (ret, home, len); memcpy (&ret[len], FC_DIR_SEPARATOR_S ".config", 8); ret[len + 8] = 0; } } return ret; } FcChar8 * FcConfigXdgDataHome (void) { const char *env = getenv ("XDG_DATA_HOME"); FcChar8 *ret = NULL; if (env) ret = FcStrCopy ((const FcChar8 *)env); else { const FcChar8 *home = FcConfigHome (); size_t len = home ? strlen ((const char *)home) : 0; ret = malloc (len + 13 + 1); if (ret) { memcpy (ret, home, len); memcpy (&ret[len], FC_DIR_SEPARATOR_S ".local" FC_DIR_SEPARATOR_S "share", 13); ret[len + 13] = 0; } } return ret; } FcBool FcConfigEnableHome (FcBool enable) { FcBool prev = _FcConfigHomeEnabled; _FcConfigHomeEnabled = enable; return prev; } FcChar8 * FcConfigFilename (const FcChar8 *url) { FcChar8 *file, *dir, **path, **p; if (!url || !*url) { url = (FcChar8 *) getenv ("FONTCONFIG_FILE"); if (!url) url = (FcChar8 *) FONTCONFIG_FILE; } file = 0; #ifdef _WIN32 if (isalpha (*url) && url[1] == ':' && (url[2] == '/' || url[2] == '\\')) goto absolute_path; #endif switch (*url) { case '~': dir = FcConfigHome (); if (dir) file = FcConfigFileExists (dir, url + 1); else file = 0; break; #ifdef _WIN32 case '\\': absolute_path: #endif case '/': file = FcConfigFileExists (0, url); break; default: path = FcConfigGetPath (); if (!path) return NULL; for (p = path; *p; p++) { file = FcConfigFileExists (*p, url); if (file) break; } FcConfigFreePath (path); break; } return file; } /* * Manage the application-specific fonts */ FcBool FcConfigAppFontAddFile (FcConfig *config, const FcChar8 *file) { FcFontSet *set; FcStrSet *subdirs; FcStrList *sublist; FcChar8 *subdir; if (!config) { config = FcConfigGetCurrent (); if (!config) return FcFalse; } subdirs = FcStrSetCreate (); if (!subdirs) return FcFalse; set = FcConfigGetFonts (config, FcSetApplication); if (!set) { set = FcFontSetCreate (); if (!set) { FcStrSetDestroy (subdirs); return FcFalse; } FcConfigSetFonts (config, set, FcSetApplication); } if (!FcFileScanConfig (set, subdirs, config->blanks, file, config)) { FcStrSetDestroy (subdirs); return FcFalse; } if ((sublist = FcStrListCreate (subdirs))) { while ((subdir = FcStrListNext (sublist))) { FcConfigAppFontAddDir (config, subdir); } FcStrListDone (sublist); } FcStrSetDestroy (subdirs); return FcTrue; } FcBool FcConfigAppFontAddDir (FcConfig *config, const FcChar8 *dir) { FcFontSet *set; FcStrSet *dirs; if (!config) { config = FcConfigGetCurrent (); if (!config) return FcFalse; } dirs = FcStrSetCreate (); if (!dirs) return FcFalse; set = FcConfigGetFonts (config, FcSetApplication); if (!set) { set = FcFontSetCreate (); if (!set) { FcStrSetDestroy (dirs); return FcFalse; } FcConfigSetFonts (config, set, FcSetApplication); } FcStrSetAddFilename (dirs, dir); if (!FcConfigAddDirList (config, FcSetApplication, dirs)) { FcStrSetDestroy (dirs); return FcFalse; } FcStrSetDestroy (dirs); return FcTrue; } void FcConfigAppFontClear (FcConfig *config) { if (!config) { config = FcConfigGetCurrent (); if (!config) return; } FcConfigSetFonts (config, 0, FcSetApplication); } /* * Manage filename-based font source selectors */ FcBool FcConfigGlobAdd (FcConfig *config, const FcChar8 *glob, FcBool accept) { FcStrSet *set = accept ? config->acceptGlobs : config->rejectGlobs; return FcStrSetAdd (set, glob); } static FcBool FcConfigGlobsMatch (const FcStrSet *globs, const FcChar8 *string) { int i; for (i = 0; i < globs->num; i++) if (FcStrGlobMatch (globs->strs[i], string)) return FcTrue; return FcFalse; } FcBool FcConfigAcceptFilename (FcConfig *config, const FcChar8 *filename) { if (FcConfigGlobsMatch (config->acceptGlobs, filename)) return FcTrue; if (FcConfigGlobsMatch (config->rejectGlobs, filename)) return FcFalse; return FcTrue; } /* * Manage font-pattern based font source selectors */ FcBool FcConfigPatternsAdd (FcConfig *config, FcPattern *pattern, FcBool accept) { FcFontSet *set = accept ? config->acceptPatterns : config->rejectPatterns; return FcFontSetAdd (set, pattern); } static FcBool FcConfigPatternsMatch (const FcFontSet *patterns, const FcPattern *font) { int i; for (i = 0; i < patterns->nfont; i++) if (FcListPatternMatchAny (patterns->fonts[i], font)) return FcTrue; return FcFalse; } FcBool FcConfigAcceptFont (FcConfig *config, const FcPattern *font) { if (FcConfigPatternsMatch (config->acceptPatterns, font)) return FcTrue; if (FcConfigPatternsMatch (config->rejectPatterns, font)) return FcFalse; return FcTrue; } const FcChar8 * FcConfigGetSysRoot (const FcConfig *config) { if (!config) { config = FcConfigGetCurrent (); if (!config) return NULL; } return config->sysRoot; } void FcConfigSetSysRoot (FcConfig *config, const FcChar8 *sysroot) { FcChar8 *s; FcBool init = FcFalse; if (!config) { /* We can't use FcConfigGetCurrent() here to ensure * the sysroot is set prior to initialize FcConfig, * to avoid loading caches from non-sysroot dirs. * So postpone the initialization later. */ config = fc_atomic_ptr_get (&_fcConfig); if (!config) { config = FcConfigCreate (); if (!config) return; init = FcTrue; } } s = FcStrCopyFilename (sysroot); if (!s) return; if (config->sysRoot) FcStrFree (config->sysRoot); config->sysRoot = s; if (init) { config = FcInitLoadOwnConfigAndFonts (config); FcConfigSetCurrent (config); } } #define __fccfg__ #include "fcaliastail.h" #undef __fccfg__ fontconfig-2.11.1/src/fcmatrix.c0000664000076400007640000000541112267155334013444 00000000000000/* * fontconfig/src/fcmatrix.c * * Copyright © 2000 Tuomas J. Lukka * * 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 Tuomas Lukka not be used in * advertising or publicity pertaining to distribution of the software without * specific, written prior permission. Tuomas Lukka makes no * representations about the suitability of this software for any purpose. It * is provided "as is" without express or implied warranty. * * TUOMAS LUKKA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO * EVENT SHALL TUOMAS LUKKA 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 #include #include const FcMatrix FcIdentityMatrix = { 1, 0, 0, 1 }; FcMatrix * FcMatrixCopy (const FcMatrix *mat) { FcMatrix *r; if(!mat) return 0; r = (FcMatrix *) malloc (sizeof (*r) ); if (!r) return 0; *r = *mat; return r; } void FcMatrixFree (FcMatrix *mat) { if (mat != &FcIdentityMatrix) free (mat); } FcBool FcMatrixEqual (const FcMatrix *mat1, const FcMatrix *mat2) { if(mat1 == mat2) return FcTrue; if(mat1 == 0 || mat2 == 0) return FcFalse; return mat1->xx == mat2->xx && mat1->xy == mat2->xy && mat1->yx == mat2->yx && mat1->yy == mat2->yy; } void FcMatrixMultiply (FcMatrix *result, const FcMatrix *a, const FcMatrix *b) { FcMatrix r; r.xx = a->xx * b->xx + a->xy * b->yx; r.xy = a->xx * b->xy + a->xy * b->yy; r.yx = a->yx * b->xx + a->yy * b->yx; r.yy = a->yx * b->xy + a->yy * b->yy; *result = r; } void FcMatrixRotate (FcMatrix *m, double c, double s) { FcMatrix r; /* * X Coordinate system is upside down, swap to make * rotations counterclockwise */ r.xx = c; r.xy = -s; r.yx = s; r.yy = c; FcMatrixMultiply (m, &r, m); } void FcMatrixScale (FcMatrix *m, double sx, double sy) { FcMatrix r; r.xx = sx; r.xy = 0; r.yx = 0; r.yy = sy; FcMatrixMultiply (m, &r, m); } void FcMatrixShear (FcMatrix *m, double sh, double sv) { FcMatrix r; r.xx = 1; r.xy = sh; r.yx = sv; r.yy = 1; FcMatrixMultiply (m, &r, m); } #define __fcmatrix__ #include "fcaliastail.h" #undef __fcmatrix__ fontconfig-2.11.1/src/fcdir.c0000664000076400007640000001744712267155334012732 00000000000000/* * fontconfig/src/fcdir.c * * 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. */ #include "fcint.h" #include FcBool FcFileIsDir (const FcChar8 *file) { struct stat statb; if (FcStat (file, &statb) != 0) return FcFalse; return S_ISDIR(statb.st_mode); } FcBool FcFileIsLink (const FcChar8 *file) { #if HAVE_LSTAT struct stat statb; if (lstat ((const char *)file, &statb) != 0) return FcFalse; return S_ISLNK (statb.st_mode); #else return FcFalse; #endif } FcBool FcFileIsFile (const FcChar8 *file) { struct stat statb; if (FcStat (file, &statb) != 0) return FcFalse; return S_ISREG (statb.st_mode); } static FcBool FcFileScanFontConfig (FcFontSet *set, FcBlanks *blanks, const FcChar8 *file, FcConfig *config) { FcPattern *font; FcBool ret = FcTrue; int id; int count = 0; id = 0; do { font = 0; /* * Nothing in the cache, scan the file */ if (FcDebug () & FC_DBG_SCAN) { printf ("\tScanning file %s...", file); fflush (stdout); } font = FcFreeTypeQuery (file, id, blanks, &count); if (FcDebug () & FC_DBG_SCAN) printf ("done\n"); /* * Edit pattern with user-defined rules */ if (font && config && !FcConfigSubstitute (config, font, FcMatchScan)) { FcPatternDestroy (font); font = NULL; ret = FcFalse; } /* * Add the font */ if (font) { if (FcDebug() & FC_DBG_SCANV) { printf ("Final font pattern:\n"); FcPatternPrint (font); } if (!FcFontSetAdd (set, font)) { FcPatternDestroy (font); font = NULL; ret = FcFalse; } } else if (font) FcPatternDestroy (font); id++; } while (font && ret && id < count); return ret; } FcBool FcFileScanConfig (FcFontSet *set, FcStrSet *dirs, FcBlanks *blanks, const FcChar8 *file, FcConfig *config) { if (FcFileIsDir (file)) return FcStrSetAdd (dirs, file); else { if (set) return FcFileScanFontConfig (set, blanks, file, config); else return FcTrue; } } FcBool FcFileScan (FcFontSet *set, FcStrSet *dirs, FcFileCache *cache FC_UNUSED, FcBlanks *blanks, const FcChar8 *file, FcBool force FC_UNUSED) { return FcFileScanConfig (set, dirs, blanks, file, FcConfigGetCurrent ()); } /* * Strcmp helper that takes pointers to pointers, copied from qsort(3) manpage */ static int cmpstringp(const void *p1, const void *p2) { return strcmp(* (char **) p1, * (char **) p2); } FcBool FcDirScanConfig (FcFontSet *set, FcStrSet *dirs, FcBlanks *blanks, const FcChar8 *dir, FcBool force, /* XXX unused */ FcConfig *config) { DIR *d; struct dirent *e; FcStrSet *files; FcChar8 *file; FcChar8 *base; FcBool ret = FcTrue; int i; if (!force) return FcFalse; if (!set && !dirs) return FcTrue; if (!blanks) blanks = FcConfigGetBlanks (config); /* freed below */ file = (FcChar8 *) malloc (strlen ((char *) dir) + 1 + FC_MAX_FILE_LEN + 1); if (!file) { ret = FcFalse; goto bail; } strcpy ((char *) file, (char *) dir); strcat ((char *) file, "/"); base = file + strlen ((char *) file); if (FcDebug () & FC_DBG_SCAN) printf ("\tScanning dir %s\n", dir); d = opendir ((char *) dir); if (!d) { /* Don't complain about missing directories */ if (errno != ENOENT) ret = FcFalse; goto bail; } files = FcStrSetCreate (); if (!files) { ret = FcFalse; goto bail1; } while ((e = readdir (d))) { if (e->d_name[0] != '.' && strlen (e->d_name) < FC_MAX_FILE_LEN) { strcpy ((char *) base, (char *) e->d_name); if (!FcStrSetAdd (files, file)) { ret = FcFalse; goto bail2; } } } /* * Sort files to make things prettier */ qsort(files->strs, files->num, sizeof(FcChar8 *), cmpstringp); /* * Scan file files to build font patterns */ for (i = 0; i < files->num; i++) FcFileScanConfig (set, dirs, blanks, files->strs[i], config); bail2: FcStrSetDestroy (files); bail1: closedir (d); bail: if (file) free (file); return ret; } FcBool FcDirScan (FcFontSet *set, FcStrSet *dirs, FcFileCache *cache, /* XXX unused */ FcBlanks *blanks, const FcChar8 *dir, FcBool force /* XXX unused */) { if (cache || !force) return FcFalse; return FcDirScanConfig (set, dirs, blanks, dir, force, FcConfigGetCurrent ()); } /* * Scan the specified directory and construct a cache of its contents */ FcCache * FcDirCacheScan (const FcChar8 *dir, FcConfig *config) { FcStrSet *dirs; FcFontSet *set; FcCache *cache = NULL; struct stat dir_stat; if (FcDebug () & FC_DBG_FONTSET) printf ("cache scan dir %s\n", dir); if (FcStatChecksum (dir, &dir_stat) < 0) goto bail; set = FcFontSetCreate(); if (!set) goto bail; dirs = FcStrSetCreate (); if (!dirs) goto bail1; /* * Scan the dir */ if (!FcDirScanConfig (set, dirs, NULL, dir, FcTrue, config)) goto bail2; /* * Build the cache object */ cache = FcDirCacheBuild (set, dir, &dir_stat, dirs); if (!cache) goto bail2; /* * Write out the cache file, ignoring any troubles */ FcDirCacheWrite (cache, config); bail2: FcStrSetDestroy (dirs); bail1: FcFontSetDestroy (set); bail: return cache; } FcCache * FcDirCacheRescan (const FcChar8 *dir, FcConfig *config) { FcCache *cache = FcDirCacheLoad (dir, config, NULL); FcCache *new = NULL; struct stat dir_stat; FcStrSet *dirs; if (!cache) return NULL; if (FcStatChecksum (dir, &dir_stat) < 0) goto bail; dirs = FcStrSetCreate (); if (!dirs) goto bail; /* * Scan the dir */ if (!FcDirScanConfig (NULL, dirs, NULL, dir, 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: FcStrSetDestroy (dirs); bail: return new; } /* * Read (or construct) the cache for a directory */ FcCache * FcDirCacheRead (const FcChar8 *dir, FcBool force, FcConfig *config) { FcCache *cache = NULL; /* Try to use existing cache file */ if (!force) cache = FcDirCacheLoad (dir, config, NULL); /* Not using existing cache file, construct new cache */ if (!cache) cache = FcDirCacheScan (dir, config); return cache; } FcBool FcDirSave (FcFontSet *set FC_UNUSED, FcStrSet * dirs FC_UNUSED, const FcChar8 *dir FC_UNUSED) { return FcFalse; /* XXX deprecated */ } #define __fcdir__ #include "fcaliastail.h" #undef __fcdir__ fontconfig-2.11.1/src/fcatomic.h0000664000076400007640000001220512267155334013420 00000000000000/* * Mutex operations. Originally copied from HarfBuzz. * * Copyright © 2007 Chris Wilson * Copyright © 2009,2010 Red Hat, Inc. * Copyright © 2011,2012,2013 Google, Inc. * * Permission is hereby granted, without written agreement and without * license or royalty fees, to use, copy, modify, and distribute this * software and its documentation for any purpose, provided that the * above copyright notice and the following two paragraphs appear in * all copies of this software. * * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. * * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. * * Contributor(s): * Chris Wilson * Red Hat Author(s): Behdad Esfahbod * Google Author(s): Behdad Esfahbod */ #ifndef _FCATOMIC_H_ #define _FCATOMIC_H_ #ifdef HAVE_CONFIG_H #include #endif /* atomic_int */ /* We need external help for these */ #if 0 #elif !defined(FC_NO_MT) && defined(_MSC_VER) || defined(__MINGW32__) #include "fcwindows.h" /* mingw32 does not have MemoryBarrier. * MemoryBarrier may be defined as a macro or a function. * Just make a failsafe version for ourselves. */ #ifdef MemoryBarrier #define HBMemoryBarrier MemoryBarrier #else static inline void HBMemoryBarrier (void) { long dummy = 0; InterlockedExchange (&dummy, 1); } #endif typedef LONG fc_atomic_int_t; #define fc_atomic_int_add(AI, V) InterlockedExchangeAdd (&(AI), (V)) #define fc_atomic_ptr_get(P) (HBMemoryBarrier (), (void *) *(P)) #define fc_atomic_ptr_cmpexch(P,O,N) (InterlockedCompareExchangePointer ((void **) (P), (void *) (N), (void *) (O)) == (void *) (O)) #elif !defined(FC_NO_MT) && defined(__APPLE__) #include #ifdef __MAC_OS_X_MIN_REQUIRED #include #elif defined(__IPHONE_OS_MIN_REQUIRED) #include #endif typedef int fc_atomic_int_t; #define fc_atomic_int_add(AI, V) (OSAtomicAdd32Barrier ((V), &(AI)) - (V)) #define fc_atomic_ptr_get(P) (OSMemoryBarrier (), (void *) *(P)) #if (MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_4 || __IPHONE_VERSION_MIN_REQUIRED >= 20100) #define fc_atomic_ptr_cmpexch(P,O,N) OSAtomicCompareAndSwapPtrBarrier ((void *) (O), (void *) (N), (void **) (P)) #else #if __ppc64__ || __x86_64__ #define fc_atomic_ptr_cmpexch(P,O,N) OSAtomicCompareAndSwap64Barrier ((int64_t) (O), (int64_t) (N), (int64_t*) (P)) #else #define fc_atomic_ptr_cmpexch(P,O,N) OSAtomicCompareAndSwap32Barrier ((int32_t) (O), (int32_t) (N), (int32_t*) (P)) #endif #endif #elif !defined(FC_NO_MT) && defined(HAVE_INTEL_ATOMIC_PRIMITIVES) typedef int fc_atomic_int_t; #define fc_atomic_int_add(AI, V) __sync_fetch_and_add (&(AI), (V)) #define fc_atomic_ptr_get(P) (void *) (__sync_synchronize (), *(P)) #define fc_atomic_ptr_cmpexch(P,O,N) __sync_bool_compare_and_swap ((P), (O), (N)) #elif !defined(FC_NO_MT) && defined(HAVE_SOLARIS_ATOMIC_OPS) #include #include typedef unsigned int fc_atomic_int_t; #define fc_atomic_int_add(AI, V) ( ({__machine_rw_barrier ();}), atomic_add_int_nv (&(AI), (V)) - (V)) #define fc_atomic_ptr_get(P) ( ({__machine_rw_barrier ();}), (void *) *(P)) #define fc_atomic_ptr_cmpexch(P,O,N) ( ({__machine_rw_barrier ();}), atomic_cas_ptr ((P), (O), (N)) == (void *) (O) ? FcTrue : FcFalse) #elif !defined(FC_NO_MT) #define FC_ATOMIC_INT_NIL 1 /* Warn that fallback implementation is in use. */ typedef volatile int fc_atomic_int_t; #define fc_atomic_int_add(AI, V) (((AI) += (V)) - (V)) #define fc_atomic_ptr_get(P) ((void *) *(P)) #define fc_atomic_ptr_cmpexch(P,O,N) (* (void * volatile *) (P) == (void *) (O) ? (* (void * volatile *) (P) = (void *) (N), FcTrue) : FcFalse) #else /* FC_NO_MT */ typedef int fc_atomic_int_t; #define fc_atomic_int_add(AI, V) (((AI) += (V)) - (V)) #define fc_atomic_ptr_get(P) ((void *) *(P)) #define fc_atomic_ptr_cmpexch(P,O,N) (* (void **) (P) == (void *) (O) ? (* (void **) (P) = (void *) (N), FcTrue) : FcFalse) #endif /* reference count */ #define FC_REF_CONSTANT_VALUE ((fc_atomic_int_t) -1) #define FC_REF_CONSTANT {FC_REF_CONSTANT_VALUE} typedef struct _FcRef { fc_atomic_int_t count; } FcRef; static inline void FcRefInit (FcRef *r, int v) { r->count = v; } static inline int FcRefInc (FcRef *r) { return fc_atomic_int_add (r->count, +1); } static inline int FcRefDec (FcRef *r) { return fc_atomic_int_add (r->count, -1); } static inline int FcRefAdd (FcRef *r, int v) { return fc_atomic_int_add (r->count, v); } static inline void FcRefSetConst (FcRef *r) { r->count = FC_REF_CONSTANT_VALUE; } static inline FcBool FcRefIsConst (const FcRef *r) { return r->count == FC_REF_CONSTANT_VALUE; } #endif /* _FCATOMIC_H_ */ fontconfig-2.11.1/src/fcxml.c0000664000076400007640000021457012310253637012742 00000000000000/* * fontconfig/src/fcxml.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" #include #include #include #ifdef ENABLE_LIBXML2 #include #define XML_Char xmlChar #define XML_Parser xmlParserCtxtPtr #define XML_ParserFree xmlFreeParserCtxt #define XML_GetCurrentLineNumber xmlSAX2GetLineNumber #define XML_GetErrorCode xmlCtxtGetLastError #define XML_ErrorString(Error) (Error)->message #else /* ENABLE_LIBXML2 */ #ifndef HAVE_XMLPARSE_H #define HAVE_XMLPARSE_H 0 #endif #if HAVE_XMLPARSE_H #include #else #include #endif #endif /* ENABLE_LIBXML2 */ #ifdef _WIN32 #include #endif static void FcExprDestroy (FcExpr *e); void FcTestDestroy (FcTest *test) { FcExprDestroy (test->expr); free (test); } void FcRuleDestroy (FcRule *rule) { FcRule *n = rule->next; switch (rule->type) { case FcRuleTest: FcTestDestroy (rule->u.test); break; case FcRuleEdit: FcEditDestroy (rule->u.edit); break; default: break; } free (rule); if (n) FcRuleDestroy (n); } static FcExpr * FcExprCreateInteger (FcConfig *config, int i) { FcExpr *e = FcConfigAllocExpr (config); if (e) { e->op = FcOpInteger; e->u.ival = i; } return e; } static FcExpr * FcExprCreateDouble (FcConfig *config, double d) { FcExpr *e = FcConfigAllocExpr (config); if (e) { e->op = FcOpDouble; e->u.dval = d; } return e; } static FcExpr * FcExprCreateString (FcConfig *config, const FcChar8 *s) { FcExpr *e = FcConfigAllocExpr (config); if (e) { e->op = FcOpString; e->u.sval = FcStrdup (s); } return e; } static FcExprMatrix * FcExprMatrixCopyShallow (const FcExprMatrix *matrix) { FcExprMatrix *m = malloc (sizeof (FcExprMatrix)); if (m) { *m = *matrix; } return m; } static void FcExprMatrixFreeShallow (FcExprMatrix *m) { if (!m) return; free (m); } static void FcExprMatrixFree (FcExprMatrix *m) { if (!m) return; FcExprDestroy (m->xx); FcExprDestroy (m->xy); FcExprDestroy (m->yx); FcExprDestroy (m->yy); free (m); } static FcExpr * FcExprCreateMatrix (FcConfig *config, const FcExprMatrix *matrix) { FcExpr *e = FcConfigAllocExpr (config); if (e) { e->op = FcOpMatrix; e->u.mexpr = FcExprMatrixCopyShallow (matrix); } return e; } static FcExpr * FcExprCreateBool (FcConfig *config, FcBool b) { FcExpr *e = FcConfigAllocExpr (config); if (e) { e->op = FcOpBool; e->u.bval = b; } return e; } static FcExpr * FcExprCreateCharSet (FcConfig *config, FcCharSet *charset) { FcExpr *e = FcConfigAllocExpr (config); if (e) { e->op = FcOpCharSet; e->u.cval = FcCharSetCopy (charset); } return e; } static FcExpr * FcExprCreateLangSet (FcConfig *config, FcLangSet *langset) { FcExpr *e = FcConfigAllocExpr (config); if (e) { e->op = FcOpLangSet; e->u.lval = FcLangSetCopy (langset); } return e; } static FcExpr * FcExprCreateName (FcConfig *config, FcExprName name) { FcExpr *e = FcConfigAllocExpr (config); if (e) { e->op = FcOpField; e->u.name = name; } return e; } static FcExpr * FcExprCreateConst (FcConfig *config, const FcChar8 *constant) { FcExpr *e = FcConfigAllocExpr (config); if (e) { e->op = FcOpConst; e->u.constant = FcStrdup (constant); } return e; } static FcExpr * FcExprCreateOp (FcConfig *config, FcExpr *left, FcOp op, FcExpr *right) { FcExpr *e = FcConfigAllocExpr (config); if (e) { e->op = op; e->u.tree.left = left; e->u.tree.right = right; } return e; } static void FcExprDestroy (FcExpr *e) { if (!e) return; switch (FC_OP_GET_OP (e->op)) { case FcOpInteger: break; case FcOpDouble: break; case FcOpString: FcFree (e->u.sval); break; case FcOpMatrix: FcExprMatrixFree (e->u.mexpr); break; case FcOpRange: break; case FcOpCharSet: FcCharSetDestroy (e->u.cval); break; case FcOpLangSet: FcLangSetDestroy (e->u.lval); break; case FcOpBool: break; case FcOpField: break; case FcOpConst: FcFree (e->u.constant); break; case FcOpAssign: case FcOpAssignReplace: case FcOpPrepend: case FcOpPrependFirst: case FcOpAppend: case FcOpAppendLast: case FcOpDelete: case FcOpDeleteAll: break; case FcOpOr: case FcOpAnd: case FcOpEqual: case FcOpNotEqual: case FcOpLess: case FcOpLessEqual: case FcOpMore: case FcOpMoreEqual: case FcOpContains: case FcOpListing: case FcOpNotContains: case FcOpPlus: case FcOpMinus: case FcOpTimes: case FcOpDivide: case FcOpQuest: case FcOpComma: FcExprDestroy (e->u.tree.right); /* fall through */ case FcOpNot: case FcOpFloor: case FcOpCeil: case FcOpRound: case FcOpTrunc: FcExprDestroy (e->u.tree.left); break; case FcOpNil: case FcOpInvalid: break; } e->op = FcOpNil; } void FcEditDestroy (FcEdit *e) { if (e->expr) FcExprDestroy (e->expr); free (e); } typedef enum _FcElement { FcElementNone, FcElementFontconfig, FcElementDir, FcElementCacheDir, FcElementCache, FcElementInclude, FcElementConfig, FcElementMatch, FcElementAlias, FcElementBlank, FcElementRescan, FcElementPrefer, FcElementAccept, FcElementDefault, FcElementFamily, FcElementSelectfont, FcElementAcceptfont, FcElementRejectfont, FcElementGlob, FcElementPattern, FcElementPatelt, FcElementTest, FcElementEdit, FcElementInt, FcElementDouble, FcElementString, FcElementMatrix, FcElementRange, FcElementBool, FcElementCharSet, FcElementLangSet, FcElementName, FcElementConst, FcElementOr, FcElementAnd, FcElementEq, FcElementNotEq, FcElementLess, FcElementLessEq, FcElementMore, FcElementMoreEq, FcElementContains, FcElementNotContains, FcElementPlus, FcElementMinus, FcElementTimes, FcElementDivide, FcElementNot, FcElementIf, FcElementFloor, FcElementCeil, FcElementRound, FcElementTrunc, FcElementUnknown } FcElement; static const struct { const char name[16]; FcElement element; } fcElementMap[] = { { "fontconfig", FcElementFontconfig }, { "dir", FcElementDir }, { "cachedir", FcElementCacheDir }, { "cache", FcElementCache }, { "include", FcElementInclude }, { "config", FcElementConfig }, { "match", FcElementMatch }, { "alias", FcElementAlias }, { "blank", FcElementBlank }, { "rescan", FcElementRescan }, { "prefer", FcElementPrefer }, { "accept", FcElementAccept }, { "default", FcElementDefault }, { "family", FcElementFamily }, { "selectfont", FcElementSelectfont }, { "acceptfont", FcElementAcceptfont }, { "rejectfont", FcElementRejectfont }, { "glob", FcElementGlob }, { "pattern", FcElementPattern }, { "patelt", FcElementPatelt }, { "test", FcElementTest }, { "edit", FcElementEdit }, { "int", FcElementInt }, { "double", FcElementDouble }, { "string", FcElementString }, { "matrix", FcElementMatrix }, { "range", FcElementRange }, { "bool", FcElementBool }, { "charset", FcElementCharSet }, { "langset", FcElementLangSet }, { "name", FcElementName }, { "const", FcElementConst }, { "or", FcElementOr }, { "and", FcElementAnd }, { "eq", FcElementEq }, { "not_eq", FcElementNotEq }, { "less", FcElementLess }, { "less_eq", FcElementLessEq }, { "more", FcElementMore }, { "more_eq", FcElementMoreEq }, { "contains", FcElementContains }, { "not_contains", FcElementNotContains }, { "plus", FcElementPlus }, { "minus", FcElementMinus }, { "times", FcElementTimes }, { "divide", FcElementDivide }, { "not", FcElementNot }, { "if", FcElementIf }, { "floor", FcElementFloor }, { "ceil", FcElementCeil }, { "round", FcElementRound }, { "trunc", FcElementTrunc }, }; #define NUM_ELEMENT_MAPS (int) (sizeof fcElementMap / sizeof fcElementMap[0]) static FcElement FcElementMap (const XML_Char *name) { int i; for (i = 0; i < NUM_ELEMENT_MAPS; i++) if (!strcmp ((char *) name, fcElementMap[i].name)) return fcElementMap[i].element; return FcElementUnknown; } typedef struct _FcPStack { struct _FcPStack *prev; FcElement element; FcChar8 **attr; FcStrBuf str; FcChar8 *attr_buf_static[16]; } FcPStack; typedef enum _FcVStackTag { FcVStackNone, FcVStackString, FcVStackFamily, FcVStackConstant, FcVStackGlob, FcVStackName, FcVStackPattern, FcVStackPrefer, FcVStackAccept, FcVStackDefault, FcVStackInteger, FcVStackDouble, FcVStackMatrix, FcVStackRange, FcVStackBool, FcVStackCharSet, FcVStackLangSet, FcVStackTest, FcVStackExpr, FcVStackEdit } FcVStackTag; typedef struct _FcVStack { struct _FcVStack *prev; FcPStack *pstack; /* related parse element */ FcVStackTag tag; union { FcChar8 *string; int integer; double _double; FcExprMatrix *matrix; FcRange range; FcBool bool_; FcCharSet *charset; FcLangSet *langset; FcExprName name; FcTest *test; FcQual qual; FcOp op; FcExpr *expr; FcEdit *edit; FcPattern *pattern; } u; } FcVStack; typedef struct _FcConfigParse { FcPStack *pstack; FcVStack *vstack; FcBool error; const FcChar8 *name; FcConfig *config; XML_Parser parser; unsigned int pstack_static_used; FcPStack pstack_static[8]; unsigned int vstack_static_used; FcVStack vstack_static[64]; } FcConfigParse; typedef enum _FcConfigSeverity { FcSevereInfo, FcSevereWarning, FcSevereError } FcConfigSeverity; static void FcConfigMessage (FcConfigParse *parse, FcConfigSeverity severe, const char *fmt, ...) { const char *s = "unknown"; va_list args; va_start (args, fmt); switch (severe) { case FcSevereInfo: s = "info"; break; case FcSevereWarning: s = "warning"; break; case FcSevereError: s = "error"; break; } if (parse) { if (parse->name) fprintf (stderr, "Fontconfig %s: \"%s\", line %d: ", s, parse->name, (int)XML_GetCurrentLineNumber (parse->parser)); else fprintf (stderr, "Fontconfig %s: line %d: ", s, (int)XML_GetCurrentLineNumber (parse->parser)); if (severe >= FcSevereError) parse->error = FcTrue; } else fprintf (stderr, "Fontconfig %s: ", s); vfprintf (stderr, fmt, args); fprintf (stderr, "\n"); va_end (args); } static FcExpr * FcPopExpr (FcConfigParse *parse); static const char * FcTypeName (FcType type) { switch (type) { case FcTypeVoid: return "void"; case FcTypeInteger: case FcTypeDouble: return "number"; case FcTypeString: return "string"; case FcTypeBool: return "bool"; case FcTypeMatrix: return "matrix"; case FcTypeCharSet: return "charset"; case FcTypeFTFace: return "FT_Face"; case FcTypeLangSet: return "langset"; default: return "unknown"; } } static void FcTypecheckValue (FcConfigParse *parse, FcType value, FcType type) { if (value == FcTypeInteger) value = FcTypeDouble; if (type == FcTypeInteger) type = FcTypeDouble; if (value != type) { if ((value == FcTypeLangSet && type == FcTypeString) || (value == FcTypeString && type == FcTypeLangSet)) return; if (type == FcTypeUnknown) return; /* It's perfectly fine to use user-define elements in expressions, * so don't warn in that case. */ if (value == FcTypeUnknown) return; FcConfigMessage (parse, FcSevereWarning, "saw %s, expected %s", FcTypeName (value), FcTypeName (type)); } } static void FcTypecheckExpr (FcConfigParse *parse, FcExpr *expr, FcType type) { const FcObjectType *o; const FcConstant *c; /* If parsing the expression failed, some nodes may be NULL */ if (!expr) return; switch (FC_OP_GET_OP (expr->op)) { case FcOpInteger: case FcOpDouble: FcTypecheckValue (parse, FcTypeDouble, type); break; case FcOpString: FcTypecheckValue (parse, FcTypeString, type); break; case FcOpMatrix: FcTypecheckValue (parse, FcTypeMatrix, type); break; case FcOpBool: FcTypecheckValue (parse, FcTypeBool, type); break; case FcOpCharSet: FcTypecheckValue (parse, FcTypeCharSet, type); break; case FcOpLangSet: FcTypecheckValue (parse, FcTypeLangSet, type); break; case FcOpNil: break; case FcOpField: o = FcNameGetObjectType (FcObjectName (expr->u.name.object)); if (o) FcTypecheckValue (parse, o->type, type); break; case FcOpConst: c = FcNameGetConstant (expr->u.constant); if (c) { o = FcNameGetObjectType (c->object); if (o) FcTypecheckValue (parse, o->type, type); } else FcConfigMessage (parse, FcSevereWarning, "invalid constant used : %s", expr->u.constant); break; case FcOpQuest: FcTypecheckExpr (parse, expr->u.tree.left, FcTypeBool); FcTypecheckExpr (parse, expr->u.tree.right->u.tree.left, type); FcTypecheckExpr (parse, expr->u.tree.right->u.tree.right, type); break; case FcOpAssign: case FcOpAssignReplace: break; case FcOpEqual: case FcOpNotEqual: case FcOpLess: case FcOpLessEqual: case FcOpMore: case FcOpMoreEqual: case FcOpContains: case FcOpNotContains: case FcOpListing: FcTypecheckValue (parse, FcTypeBool, type); break; case FcOpComma: case FcOpOr: case FcOpAnd: case FcOpPlus: case FcOpMinus: case FcOpTimes: case FcOpDivide: FcTypecheckExpr (parse, expr->u.tree.left, type); FcTypecheckExpr (parse, expr->u.tree.right, type); break; case FcOpNot: FcTypecheckValue (parse, FcTypeBool, type); FcTypecheckExpr (parse, expr->u.tree.left, FcTypeBool); break; case FcOpFloor: case FcOpCeil: case FcOpRound: case FcOpTrunc: FcTypecheckValue (parse, FcTypeDouble, type); FcTypecheckExpr (parse, expr->u.tree.left, FcTypeDouble); break; default: break; } } static FcTest * FcTestCreate (FcConfigParse *parse, FcMatchKind kind, FcQual qual, const FcChar8 *field, unsigned int compare, FcExpr *expr) { FcTest *test = (FcTest *) malloc (sizeof (FcTest)); if (test) { const FcObjectType *o; test->kind = kind; test->qual = qual; test->object = FcObjectFromName ((const char *) field); test->op = compare; test->expr = expr; o = FcNameGetObjectType (FcObjectName (test->object)); if (o) FcTypecheckExpr (parse, expr, o->type); } return test; } static FcEdit * FcEditCreate (FcConfigParse *parse, FcObject object, FcOp op, FcExpr *expr, FcValueBinding binding) { FcEdit *e = (FcEdit *) malloc (sizeof (FcEdit)); if (e) { const FcObjectType *o; e->object = object; e->op = op; e->expr = expr; e->binding = binding; o = FcNameGetObjectType (FcObjectName (e->object)); if (o) FcTypecheckExpr (parse, expr, o->type); } return e; } static FcRule * FcRuleCreate (FcRuleType type, void *p) { FcRule *r = (FcRule *) malloc (sizeof (FcRule)); if (!r) return NULL; r->next = NULL; r->type = type; switch (type) { case FcRuleTest: r->u.test = (FcTest *) p; break; case FcRuleEdit: r->u.edit = (FcEdit *) p; break; default: free (r); r = NULL; break; } return r; } static FcVStack * FcVStackCreateAndPush (FcConfigParse *parse) { FcVStack *new; if (parse->vstack_static_used < sizeof (parse->vstack_static) / sizeof (parse->vstack_static[0])) new = &parse->vstack_static[parse->vstack_static_used++]; else { new = malloc (sizeof (FcVStack)); if (!new) return 0; } new->tag = FcVStackNone; new->prev = 0; new->prev = parse->vstack; new->pstack = parse->pstack ? parse->pstack->prev : 0; parse->vstack = new; return new; } static FcBool FcVStackPushString (FcConfigParse *parse, FcVStackTag tag, FcChar8 *string) { FcVStack *vstack = FcVStackCreateAndPush (parse); if (!vstack) return FcFalse; vstack->u.string = string; vstack->tag = tag; return FcTrue; } static FcBool FcVStackPushInteger (FcConfigParse *parse, int integer) { FcVStack *vstack = FcVStackCreateAndPush (parse); if (!vstack) return FcFalse; vstack->u.integer = integer; vstack->tag = FcVStackInteger; return FcTrue; } static FcBool FcVStackPushDouble (FcConfigParse *parse, double _double) { FcVStack *vstack = FcVStackCreateAndPush (parse); if (!vstack) return FcFalse; vstack->u._double = _double; vstack->tag = FcVStackDouble; return FcTrue; } static FcBool FcVStackPushMatrix (FcConfigParse *parse, FcExprMatrix *matrix) { FcVStack *vstack; vstack = FcVStackCreateAndPush (parse); if (!vstack) return FcFalse; vstack->u.matrix = FcExprMatrixCopyShallow (matrix); vstack->tag = FcVStackMatrix; return FcTrue; } static FcBool FcVStackPushRange (FcConfigParse *parse, FcRange *range) { FcVStack *vstack = FcVStackCreateAndPush (parse); if (!vstack) return FcFalse; vstack->u.range.begin = range->begin; vstack->u.range.end = range->end; vstack->tag = FcVStackRange; return FcTrue; } static FcBool FcVStackPushBool (FcConfigParse *parse, FcBool bool_) { FcVStack *vstack = FcVStackCreateAndPush (parse); if (!vstack) return FcFalse; vstack->u.bool_ = bool_; vstack->tag = FcVStackBool; return FcTrue; } static FcBool FcVStackPushCharSet (FcConfigParse *parse, FcCharSet *charset) { FcVStack *vstack; if (!charset) return FcFalse; vstack = FcVStackCreateAndPush (parse); if (!vstack) return FcFalse; vstack->u.charset = charset; vstack->tag = FcVStackCharSet; return FcTrue; } static FcBool FcVStackPushLangSet (FcConfigParse *parse, FcLangSet *langset) { FcVStack *vstack; if (!langset) return FcFalse; vstack = FcVStackCreateAndPush (parse); if (!vstack) return FcFalse; vstack->u.langset = langset; vstack->tag = FcVStackLangSet; return FcTrue; } static FcBool FcVStackPushName (FcConfigParse *parse, FcMatchKind kind, FcObject object) { FcVStack *vstack = FcVStackCreateAndPush (parse); if (!vstack) return FcFalse; vstack->u.name.object = object; vstack->u.name.kind = kind; vstack->tag = FcVStackName; return FcTrue; } static FcBool FcVStackPushTest (FcConfigParse *parse, FcTest *test) { FcVStack *vstack = FcVStackCreateAndPush (parse); if (!vstack) return FcFalse; vstack->u.test = test; vstack->tag = FcVStackTest; return FcTrue; } static FcBool FcVStackPushExpr (FcConfigParse *parse, FcVStackTag tag, FcExpr *expr) { FcVStack *vstack = FcVStackCreateAndPush (parse); if (!vstack) return FcFalse; vstack->u.expr = expr; vstack->tag = tag; return FcTrue; } static FcBool FcVStackPushEdit (FcConfigParse *parse, FcEdit *edit) { FcVStack *vstack = FcVStackCreateAndPush (parse); if (!vstack) return FcFalse; vstack->u.edit = edit; vstack->tag = FcVStackEdit; return FcTrue; } static FcBool FcVStackPushPattern (FcConfigParse *parse, FcPattern *pattern) { FcVStack *vstack = FcVStackCreateAndPush (parse); if (!vstack) return FcFalse; vstack->u.pattern = pattern; vstack->tag = FcVStackPattern; return FcTrue; } static FcVStack * FcVStackFetch (FcConfigParse *parse, int off) { FcVStack *vstack; for (vstack = parse->vstack; vstack && off-- > 0; vstack = vstack->prev); return vstack; } static FcVStack * FcVStackPeek (FcConfigParse *parse) { FcVStack *vstack = parse->vstack; return vstack && vstack->pstack == parse->pstack ? vstack : 0; } static void FcVStackPopAndDestroy (FcConfigParse *parse) { FcVStack *vstack = parse->vstack; if (!vstack || vstack->pstack != parse->pstack) return; parse->vstack = vstack->prev; switch (vstack->tag) { case FcVStackNone: break; case FcVStackName: break; case FcVStackFamily: break; case FcVStackString: case FcVStackConstant: case FcVStackGlob: FcStrFree (vstack->u.string); break; case FcVStackPattern: FcPatternDestroy (vstack->u.pattern); break; case FcVStackInteger: case FcVStackDouble: break; case FcVStackMatrix: FcExprMatrixFreeShallow (vstack->u.matrix); break; case FcVStackRange: case FcVStackBool: break; case FcVStackCharSet: FcCharSetDestroy (vstack->u.charset); break; case FcVStackLangSet: FcLangSetDestroy (vstack->u.langset); break; case FcVStackTest: FcTestDestroy (vstack->u.test); break; case FcVStackExpr: case FcVStackPrefer: case FcVStackAccept: case FcVStackDefault: FcExprDestroy (vstack->u.expr); break; case FcVStackEdit: FcEditDestroy (vstack->u.edit); break; } if (vstack == &parse->vstack_static[parse->vstack_static_used - 1]) parse->vstack_static_used--; else free (vstack); } static void FcVStackClear (FcConfigParse *parse) { while (FcVStackPeek (parse)) FcVStackPopAndDestroy (parse); } static int FcVStackElements (FcConfigParse *parse) { int h = 0; FcVStack *vstack = parse->vstack; while (vstack && vstack->pstack == parse->pstack) { h++; vstack = vstack->prev; } return h; } static FcChar8 ** FcConfigSaveAttr (const XML_Char **attr, FcChar8 **buf, int size_bytes) { int slen; int i; FcChar8 **new; FcChar8 *s; if (!attr) return 0; slen = 0; for (i = 0; attr[i]; i++) slen += strlen ((char *) attr[i]) + 1; if (i == 0) return 0; slen += (i + 1) * sizeof (FcChar8 *); if (slen <= size_bytes) new = buf; else { new = malloc (slen); if (!new) { FcConfigMessage (0, FcSevereError, "out of memory"); return 0; } } s = (FcChar8 *) (new + (i + 1)); for (i = 0; attr[i]; i++) { new[i] = s; strcpy ((char *) s, (char *) attr[i]); s += strlen ((char *) s) + 1; } new[i] = 0; return new; } static FcBool FcPStackPush (FcConfigParse *parse, FcElement element, const XML_Char **attr) { FcPStack *new; if (parse->pstack_static_used < sizeof (parse->pstack_static) / sizeof (parse->pstack_static[0])) new = &parse->pstack_static[parse->pstack_static_used++]; else { new = malloc (sizeof (FcPStack)); if (!new) return FcFalse; } new->prev = parse->pstack; new->element = element; new->attr = FcConfigSaveAttr (attr, new->attr_buf_static, sizeof (new->attr_buf_static)); FcStrBufInit (&new->str, 0, 0); parse->pstack = new; return FcTrue; } static FcBool FcPStackPop (FcConfigParse *parse) { FcPStack *old; if (!parse->pstack) { FcConfigMessage (parse, FcSevereError, "mismatching element"); return FcFalse; } if (parse->pstack->attr) { /* Warn about unused attrs. */ FcChar8 **attrs = parse->pstack->attr; while (*attrs) { if (attrs[0][0]) { FcConfigMessage (parse, FcSevereError, "invalid attribute '%s'", attrs[0]); } attrs += 2; } } FcVStackClear (parse); old = parse->pstack; parse->pstack = old->prev; FcStrBufDestroy (&old->str); if (old->attr && old->attr != old->attr_buf_static) free (old->attr); if (old == &parse->pstack_static[parse->pstack_static_used - 1]) parse->pstack_static_used--; else free (old); return FcTrue; } static FcBool FcConfigParseInit (FcConfigParse *parse, const FcChar8 *name, FcConfig *config, XML_Parser parser) { parse->pstack = 0; parse->pstack_static_used = 0; parse->vstack = 0; parse->vstack_static_used = 0; parse->error = FcFalse; parse->name = name; parse->config = config; parse->parser = parser; return FcTrue; } static void FcConfigCleanup (FcConfigParse *parse) { while (parse->pstack) FcPStackPop (parse); } static const FcChar8 * FcConfigGetAttribute (FcConfigParse *parse, const char *attr) { FcChar8 **attrs; if (!parse->pstack) return 0; attrs = parse->pstack->attr; if (!attrs) return 0; while (*attrs) { if (!strcmp ((char *) *attrs, attr)) { attrs[0][0] = '\0'; /* Mark as used. */ return attrs[1]; } attrs += 2; } return 0; } static void FcStartElement(void *userData, const XML_Char *name, const XML_Char **attr) { FcConfigParse *parse = userData; FcElement element; element = FcElementMap (name); if (element == FcElementUnknown) FcConfigMessage (parse, FcSevereWarning, "unknown element \"%s\"", name); if (!FcPStackPush (parse, element, attr)) { FcConfigMessage (parse, FcSevereError, "out of memory"); return; } return; } static void FcParseBlank (FcConfigParse *parse) { int n = FcVStackElements (parse); FcChar32 i; while (n-- > 0) { FcVStack *v = FcVStackFetch (parse, n); if (!parse->config->blanks) { parse->config->blanks = FcBlanksCreate (); if (!parse->config->blanks) goto bail; } switch ((int) v->tag) { case FcVStackInteger: if (!FcBlanksAdd (parse->config->blanks, v->u.integer)) goto bail; break; case FcVStackRange: if (v->u.range.begin <= v->u.range.end) { for (i = v->u.range.begin; i <= v->u.range.end; i++) { if (!FcBlanksAdd (parse->config->blanks, i)) goto bail; } } break; default: FcConfigMessage (parse, FcSevereError, "invalid element in blank"); break; } } return; bail: FcConfigMessage (parse, FcSevereError, "out of memory"); } static void FcParseRescan (FcConfigParse *parse) { int n = FcVStackElements (parse); while (n-- > 0) { FcVStack *v = FcVStackFetch (parse, n); if (v->tag != FcVStackInteger) FcConfigMessage (parse, FcSevereWarning, "non-integer rescan"); else parse->config->rescanInterval = v->u.integer; } } static void FcParseInt (FcConfigParse *parse) { FcChar8 *s, *end; int l; if (!parse->pstack) return; s = FcStrBufDoneStatic (&parse->pstack->str); if (!s) { FcConfigMessage (parse, FcSevereError, "out of memory"); return; } end = 0; l = (int) strtol ((char *) s, (char **)&end, 0); if (end != s + strlen ((char *) s)) FcConfigMessage (parse, FcSevereError, "\"%s\": not a valid integer", s); else FcVStackPushInteger (parse, l); FcStrBufDestroy (&parse->pstack->str); } /* * idea copied from glib g_ascii_strtod with * permission of the author (Alexander Larsson) */ #include static double FcStrtod (char *s, char **end) { struct lconv *locale_data; char *dot; double v; /* * Have to swap the decimal point to match the current locale * if that locale doesn't use 0x2e */ if ((dot = strchr (s, 0x2e)) && (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)) { if (end) *end = s; v = 0; } else { char *buf_end; /* mantissa */ strncpy (buf, s, 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; v = strtod (buf, &buf_end); if (buf_end) { buf_end = s + (buf_end - buf); if (buf_end > dot) buf_end -= dlen - 1; } if (end) *end = buf_end; } } else v = strtod (s, end); return v; } static void FcParseDouble (FcConfigParse *parse) { FcChar8 *s, *end; double d; if (!parse->pstack) return; s = FcStrBufDoneStatic (&parse->pstack->str); if (!s) { FcConfigMessage (parse, FcSevereError, "out of memory"); return; } end = 0; d = FcStrtod ((char *) s, (char **)&end); if (end != s + strlen ((char *) s)) FcConfigMessage (parse, FcSevereError, "\"%s\": not a valid double", s); else FcVStackPushDouble (parse, d); FcStrBufDestroy (&parse->pstack->str); } static void FcParseString (FcConfigParse *parse, FcVStackTag tag) { FcChar8 *s; if (!parse->pstack) return; s = FcStrBufDone (&parse->pstack->str); if (!s) { FcConfigMessage (parse, FcSevereError, "out of memory"); return; } if (!FcVStackPushString (parse, tag, s)) FcStrFree (s); } static void FcParseName (FcConfigParse *parse) { const FcChar8 *kind_string; FcMatchKind kind; FcChar8 *s; FcObject object; kind_string = FcConfigGetAttribute (parse, "target"); if (!kind_string) kind = FcMatchDefault; else { if (!strcmp ((char *) kind_string, "pattern")) kind = FcMatchPattern; else if (!strcmp ((char *) kind_string, "font")) kind = FcMatchFont; else if (!strcmp ((char *) kind_string, "default")) kind = FcMatchDefault; else { FcConfigMessage (parse, FcSevereWarning, "invalid name target \"%s\"", kind_string); return; } } if (!parse->pstack) return; s = FcStrBufDone (&parse->pstack->str); if (!s) { FcConfigMessage (parse, FcSevereError, "out of memory"); return; } object = FcObjectFromName ((const char *) s); FcVStackPushName (parse, kind, object); FcStrFree (s); } static void FcParseMatrix (FcConfigParse *parse) { FcExprMatrix m; m.yy = FcPopExpr (parse); m.yx = FcPopExpr (parse); m.xy = FcPopExpr (parse); m.xx = FcPopExpr (parse); if (FcPopExpr (parse)) FcConfigMessage (parse, FcSevereError, "wrong number of matrix elements"); else FcVStackPushMatrix (parse, &m); } static void FcParseRange (FcConfigParse *parse) { FcVStack *vstack; FcRange r = {0, 0}; FcChar32 n; int count = 1; while ((vstack = FcVStackPeek (parse))) { if (count < 0) { FcConfigMessage (parse, FcSevereError, "too many elements in range"); return; } switch ((int) vstack->tag) { case FcVStackInteger: n = vstack->u.integer; break; default: FcConfigMessage (parse, FcSevereError, "invalid element in range"); n = 0; break; } if (count == 1) r.end = n; else r.begin = n; count--; FcVStackPopAndDestroy (parse); } if (count < 0) { if (r.begin > r.end) { FcConfigMessage (parse, FcSevereError, "invalid range"); return; } FcVStackPushRange (parse, &r); } else FcConfigMessage (parse, FcSevereError, "invalid range"); } static FcBool FcConfigLexBool (FcConfigParse *parse, const FcChar8 *bool_) { FcBool result = FcFalse; if (!FcNameBool (bool_, &result)) FcConfigMessage (parse, FcSevereWarning, "\"%s\" is not known boolean", bool_); return result; } static void FcParseBool (FcConfigParse *parse) { FcChar8 *s; if (!parse->pstack) return; s = FcStrBufDoneStatic (&parse->pstack->str); if (!s) { FcConfigMessage (parse, FcSevereError, "out of memory"); return; } FcVStackPushBool (parse, FcConfigLexBool (parse, s)); FcStrBufDestroy (&parse->pstack->str); } static void FcParseCharSet (FcConfigParse *parse) { FcVStack *vstack; FcCharSet *charset = FcCharSetCreate (); FcChar32 i; int n = 0; while ((vstack = FcVStackPeek (parse))) { switch ((int) vstack->tag) { case FcVStackInteger: if (!FcCharSetAddChar (charset, vstack->u.integer)) { FcConfigMessage (parse, FcSevereWarning, "invalid character: 0x%04x", vstack->u.integer); } else n++; break; case FcVStackRange: if (vstack->u.range.begin <= vstack->u.range.end) { for (i = vstack->u.range.begin; i <= vstack->u.range.end; i++) { if (!FcCharSetAddChar (charset, i)) { FcConfigMessage (parse, FcSevereWarning, "invalid character: 0x%04x", i); } else n++; } } break; default: FcConfigMessage (parse, FcSevereError, "invalid element in charset"); break; } FcVStackPopAndDestroy (parse); } if (n > 0) FcVStackPushCharSet (parse, charset); else FcCharSetDestroy (charset); } static void FcParseLangSet (FcConfigParse *parse) { FcVStack *vstack; FcLangSet *langset = FcLangSetCreate (); int n = 0; while ((vstack = FcVStackPeek (parse))) { switch ((int) vstack->tag) { case FcVStackString: if (!FcLangSetAdd (langset, vstack->u.string)) { FcConfigMessage (parse, FcSevereWarning, "invalid langset: %s", vstack->u.string); } else n++; break; default: FcConfigMessage (parse, FcSevereError, "invalid element in langset"); break; } FcVStackPopAndDestroy (parse); } if (n > 0) FcVStackPushLangSet (parse, langset); else FcLangSetDestroy (langset); } static FcBool FcConfigLexBinding (FcConfigParse *parse, const FcChar8 *binding_string, FcValueBinding *binding_ret) { FcValueBinding binding; if (!binding_string) binding = FcValueBindingWeak; else { if (!strcmp ((char *) binding_string, "weak")) binding = FcValueBindingWeak; else if (!strcmp ((char *) binding_string, "strong")) binding = FcValueBindingStrong; else if (!strcmp ((char *) binding_string, "same")) binding = FcValueBindingSame; else { FcConfigMessage (parse, FcSevereWarning, "invalid binding \"%s\"", binding_string); return FcFalse; } } *binding_ret = binding; return FcTrue; } static void FcParseFamilies (FcConfigParse *parse, FcVStackTag tag) { FcVStack *vstack; FcExpr *left, *expr = 0, *new; while ((vstack = FcVStackPeek (parse))) { if (vstack->tag != FcVStackFamily) { FcConfigMessage (parse, FcSevereWarning, "non-family"); FcVStackPopAndDestroy (parse); continue; } left = vstack->u.expr; vstack->tag = FcVStackNone; FcVStackPopAndDestroy (parse); if (expr) { new = FcExprCreateOp (parse->config, left, FcOpComma, expr); if (!new) { FcConfigMessage (parse, FcSevereError, "out of memory"); FcExprDestroy (left); FcExprDestroy (expr); break; } expr = new; } else expr = left; } if (expr) { if (!FcVStackPushExpr (parse, tag, expr)) { FcConfigMessage (parse, FcSevereError, "out of memory"); FcExprDestroy (expr); } } } static void FcParseFamily (FcConfigParse *parse) { FcChar8 *s; FcExpr *expr; if (!parse->pstack) return; s = FcStrBufDoneStatic (&parse->pstack->str); if (!s) { FcConfigMessage (parse, FcSevereError, "out of memory"); return; } expr = FcExprCreateString (parse->config, s); FcStrBufDestroy (&parse->pstack->str); if (expr) FcVStackPushExpr (parse, FcVStackFamily, expr); } static void FcParseAlias (FcConfigParse *parse) { FcExpr *family = 0, *accept = 0, *prefer = 0, *def = 0, *new = 0; FcEdit *edit = 0; FcVStack *vstack; FcRule *rule = NULL, *r; FcValueBinding binding; if (!FcConfigLexBinding (parse, FcConfigGetAttribute (parse, "binding"), &binding)) return; while ((vstack = FcVStackPeek (parse))) { switch ((int) vstack->tag) { case FcVStackFamily: if (family) { FcConfigMessage (parse, FcSevereWarning, "Having multiple in isn't supported and may not work as expected"); new = FcExprCreateOp (parse->config, vstack->u.expr, FcOpComma, family); if (!new) FcConfigMessage (parse, FcSevereError, "out of memory"); else family = new; } else new = vstack->u.expr; if (new) { family = new; vstack->tag = FcVStackNone; } break; case FcVStackPrefer: if (prefer) FcExprDestroy (prefer); prefer = vstack->u.expr; vstack->tag = FcVStackNone; break; case FcVStackAccept: if (accept) FcExprDestroy (accept); accept = vstack->u.expr; vstack->tag = FcVStackNone; break; case FcVStackDefault: if (def) FcExprDestroy (def); def = vstack->u.expr; vstack->tag = FcVStackNone; break; case FcVStackTest: if (rule) { r = FcRuleCreate (FcRuleTest, vstack->u.test); r->next = rule; rule = r; } else rule = FcRuleCreate (FcRuleTest, vstack->u.test); vstack->tag = FcVStackNone; break; default: FcConfigMessage (parse, FcSevereWarning, "bad alias"); break; } FcVStackPopAndDestroy (parse); } if (!family) { FcConfigMessage (parse, FcSevereError, "missing family in alias"); if (prefer) FcExprDestroy (prefer); if (accept) FcExprDestroy (accept); if (def) FcExprDestroy (def); if (rule) FcRuleDestroy (rule); return; } if (!prefer && !accept && !def) { FcExprDestroy (family); return; } else { FcTest *t = FcTestCreate (parse, FcMatchPattern, FcQualAny, (FcChar8 *) FC_FAMILY, FC_OP (FcOpEqual, FcOpFlagIgnoreBlanks), family); if (rule) { for (r = rule; r->next; r = r->next); r->next = FcRuleCreate (FcRuleTest, t); r = r->next; } else { r = rule = FcRuleCreate (FcRuleTest, t); } } if (prefer) { edit = FcEditCreate (parse, FC_FAMILY_OBJECT, FcOpPrepend, prefer, binding); if (!edit) FcExprDestroy (prefer); else { r->next = FcRuleCreate (FcRuleEdit, edit); r = r->next; } } if (accept) { edit = FcEditCreate (parse, FC_FAMILY_OBJECT, FcOpAppend, accept, binding); if (!edit) FcExprDestroy (accept); else { r->next = FcRuleCreate (FcRuleEdit, edit); r = r->next; } } if (def) { edit = FcEditCreate (parse, FC_FAMILY_OBJECT, FcOpAppendLast, def, binding); if (!edit) FcExprDestroy (def); else { r->next = FcRuleCreate (FcRuleEdit, edit); r = r->next; } } if (!FcConfigAddRule (parse->config, rule, FcMatchPattern)) FcRuleDestroy (rule); } static FcExpr * FcPopExpr (FcConfigParse *parse) { FcVStack *vstack = FcVStackPeek (parse); FcExpr *expr = 0; if (!vstack) return 0; switch ((int) vstack->tag) { case FcVStackNone: break; case FcVStackString: case FcVStackFamily: expr = FcExprCreateString (parse->config, vstack->u.string); break; case FcVStackName: expr = FcExprCreateName (parse->config, vstack->u.name); break; case FcVStackConstant: expr = FcExprCreateConst (parse->config, vstack->u.string); break; case FcVStackGlob: /* XXX: What's the correct action here? (CDW) */ break; case FcVStackPrefer: case FcVStackAccept: case FcVStackDefault: expr = vstack->u.expr; vstack->tag = FcVStackNone; break; case FcVStackInteger: expr = FcExprCreateInteger (parse->config, vstack->u.integer); break; case FcVStackDouble: expr = FcExprCreateDouble (parse->config, vstack->u._double); break; case FcVStackMatrix: expr = FcExprCreateMatrix (parse->config, vstack->u.matrix); break; case FcVStackRange: break; case FcVStackBool: expr = FcExprCreateBool (parse->config, vstack->u.bool_); break; case FcVStackCharSet: expr = FcExprCreateCharSet (parse->config, vstack->u.charset); break; case FcVStackLangSet: expr = FcExprCreateLangSet (parse->config, vstack->u.langset); break; case FcVStackTest: break; case FcVStackExpr: expr = vstack->u.expr; vstack->tag = FcVStackNone; break; case FcVStackEdit: break; default: break; } FcVStackPopAndDestroy (parse); return expr; } /* * This builds a tree of binary operations. Note * that every operator is defined so that if only * a single operand is contained, the value of the * whole expression is the value of the operand. * * This code reduces in that case to returning that * operand. */ static FcExpr * FcPopBinary (FcConfigParse *parse, FcOp op) { FcExpr *left, *expr = 0, *new; while ((left = FcPopExpr (parse))) { if (expr) { new = FcExprCreateOp (parse->config, left, op, expr); if (!new) { FcConfigMessage (parse, FcSevereError, "out of memory"); FcExprDestroy (left); FcExprDestroy (expr); return 0; } expr = new; } else expr = left; } return expr; } static void FcParseBinary (FcConfigParse *parse, FcOp op) { FcExpr *expr = FcPopBinary (parse, op); if (expr) FcVStackPushExpr (parse, FcVStackExpr, expr); } /* * This builds a a unary operator, it consumes only * a single operand */ static FcExpr * FcPopUnary (FcConfigParse *parse, FcOp op) { FcExpr *operand, *new = 0; if ((operand = FcPopExpr (parse))) { new = FcExprCreateOp (parse->config, operand, op, 0); if (!new) { FcExprDestroy (operand); FcConfigMessage (parse, FcSevereError, "out of memory"); } } return new; } static void FcParseUnary (FcConfigParse *parse, FcOp op) { FcExpr *expr = FcPopUnary (parse, op); if (expr) FcVStackPushExpr (parse, FcVStackExpr, expr); } static void FcParseDir (FcConfigParse *parse) { const FcChar8 *attr, *data; FcChar8 *prefix = NULL, *p; #ifdef _WIN32 FcChar8 buffer[1000]; #endif attr = FcConfigGetAttribute (parse, "prefix"); if (attr && FcStrCmp (attr, (const FcChar8 *)"xdg") == 0) prefix = FcConfigXdgDataHome (); data = FcStrBufDoneStatic (&parse->pstack->str); if (!data) { FcConfigMessage (parse, FcSevereError, "out of memory"); data = prefix; goto bail; } if (prefix) { size_t plen = strlen ((const char *)prefix); size_t dlen = strlen ((const char *)data); p = realloc (prefix, plen + 1 + dlen + 1); if (!p) { FcConfigMessage (parse, FcSevereError, "out of memory"); goto bail; } prefix = p; prefix[plen] = FC_DIR_SEPARATOR; memcpy (&prefix[plen + 1], data, dlen); prefix[plen + 1 + dlen] = 0; data = prefix; } #ifdef _WIN32 if (strcmp ((const char *) data, "CUSTOMFONTDIR") == 0) { FcChar8 *p; data = buffer; if (!GetModuleFileName (NULL, (LPCH) buffer, sizeof (buffer) - 20)) { FcConfigMessage (parse, FcSevereError, "GetModuleFileName failed"); goto bail; } /* * Must use the multi-byte aware function to search * for backslash because East Asian double-byte code * pages have characters with backslash as the second * byte. */ p = _mbsrchr (data, '\\'); if (p) *p = '\0'; strcat ((char *) data, "\\fonts"); } else if (strcmp ((const char *) data, "APPSHAREFONTDIR") == 0) { FcChar8 *p; data = buffer; if (!GetModuleFileName (NULL, (LPCH) buffer, sizeof (buffer) - 20)) { FcConfigMessage (parse, FcSevereError, "GetModuleFileName failed"); goto bail; } p = _mbsrchr (data, '\\'); if (p) *p = '\0'; strcat ((char *) data, "\\..\\share\\fonts"); } else if (strcmp ((const char *) data, "WINDOWSFONTDIR") == 0) { int rc; data = buffer; rc = pGetSystemWindowsDirectory ((LPSTR) buffer, sizeof (buffer) - 20); if (rc == 0 || rc > sizeof (buffer) - 20) { FcConfigMessage (parse, FcSevereError, "GetSystemWindowsDirectory failed"); goto bail; } if (data [strlen ((const char *) data) - 1] != '\\') strcat ((char *) data, "\\"); strcat ((char *) data, "fonts"); } #endif if (strlen ((char *) data) == 0) FcConfigMessage (parse, FcSevereWarning, "empty font directory name ignored"); else if (!FcStrUsesHome (data) || FcConfigHome ()) { if (!FcConfigAddDir (parse->config, data)) FcConfigMessage (parse, FcSevereError, "out of memory; cannot add directory %s", data); } FcStrBufDestroy (&parse->pstack->str); bail: if (prefix) FcStrFree (prefix); } static void FcParseCacheDir (FcConfigParse *parse) { const FcChar8 *attr; FcChar8 *prefix = NULL, *p, *data; attr = FcConfigGetAttribute (parse, "prefix"); if (attr && FcStrCmp (attr, (const FcChar8 *)"xdg") == 0) prefix = FcConfigXdgCacheHome (); data = FcStrBufDone (&parse->pstack->str); if (!data) { FcConfigMessage (parse, FcSevereError, "out of memory"); goto bail; } if (prefix) { size_t plen = strlen ((const char *)prefix); size_t dlen = strlen ((const char *)data); p = realloc (prefix, plen + 1 + dlen + 1); if (!p) { FcConfigMessage (parse, FcSevereError, "out of memory"); data = prefix; goto bail; } prefix = p; prefix[plen] = FC_DIR_SEPARATOR; memcpy (&prefix[plen + 1], data, dlen); prefix[plen + 1 + dlen] = 0; FcStrFree (data); data = prefix; } #ifdef _WIN32 if (strcmp ((const char *) data, "WINDOWSTEMPDIR_FONTCONFIG_CACHE") == 0) { int rc; FcStrFree (data); data = malloc (1000); if (!data) { FcConfigMessage (parse, FcSevereError, "out of memory"); goto bail; } rc = GetTempPath (800, (LPSTR) data); if (rc == 0 || rc > 800) { FcConfigMessage (parse, FcSevereError, "GetTempPath failed"); goto bail; } if (data [strlen ((const char *) data) - 1] != '\\') strcat ((char *) data, "\\"); strcat ((char *) data, "fontconfig\\cache"); } else if (strcmp ((const char *) data, "LOCAL_APPDATA_FONTCONFIG_CACHE") == 0) { char szFPath[MAX_PATH + 1]; size_t len; if (!(pSHGetFolderPathA && SUCCEEDED(pSHGetFolderPathA(NULL, /* CSIDL_LOCAL_APPDATA */ 28, NULL, 0, szFPath)))) { FcConfigMessage (parse, FcSevereError, "SHGetFolderPathA failed"); goto bail; } strncat(szFPath, "\\fontconfig\\cache", MAX_PATH - 1 - strlen(szFPath)); len = strlen(szFPath) + 1; FcStrFree (data); data = malloc(len); if (!data) { FcConfigMessage (parse, FcSevereError, "out of memory"); goto bail; } strncpy((char *) data, szFPath, len); } #endif if (strlen ((char *) data) == 0) FcConfigMessage (parse, FcSevereWarning, "empty cache directory name ignored"); else if (!FcStrUsesHome (data) || FcConfigHome ()) { if (!FcConfigAddCacheDir (parse->config, data)) FcConfigMessage (parse, FcSevereError, "out of memory; cannot add cache directory %s", data); } FcStrBufDestroy (&parse->pstack->str); bail: if (data) FcStrFree (data); } static void FcParseInclude (FcConfigParse *parse) { FcChar8 *s; const FcChar8 *attr; FcBool ignore_missing = FcFalse; FcBool deprecated = FcFalse; FcChar8 *prefix = NULL, *p; static FcChar8 *userdir = NULL; static FcChar8 *userconf = NULL; s = FcStrBufDoneStatic (&parse->pstack->str); if (!s) { FcConfigMessage (parse, FcSevereError, "out of memory"); goto bail; } attr = FcConfigGetAttribute (parse, "ignore_missing"); if (attr && FcConfigLexBool (parse, (FcChar8 *) attr) == FcTrue) ignore_missing = FcTrue; attr = FcConfigGetAttribute (parse, "deprecated"); if (attr && FcConfigLexBool (parse, (FcChar8 *) attr) == FcTrue) deprecated = FcTrue; attr = FcConfigGetAttribute (parse, "prefix"); if (attr && FcStrCmp (attr, (const FcChar8 *)"xdg") == 0) prefix = FcConfigXdgConfigHome (); if (prefix) { size_t plen = strlen ((const char *)prefix); size_t dlen = strlen ((const char *)s); p = realloc (prefix, plen + 1 + dlen + 1); if (!p) { FcConfigMessage (parse, FcSevereError, "out of memory"); goto bail; } prefix = p; prefix[plen] = FC_DIR_SEPARATOR; memcpy (&prefix[plen + 1], s, dlen); prefix[plen + 1 + dlen] = 0; s = prefix; if (FcFileIsDir (s)) { userdir: if (!userdir) userdir = FcStrdup (s); } else if (FcFileIsFile (s)) { userconf: if (!userconf) userconf = FcStrdup (s); } else { /* No config dir nor file on the XDG directory spec compliant place * so need to guess what it is supposed to be. */ if (FcStrStr (s, (const FcChar8 *)"conf.d") != NULL) goto userdir; else goto userconf; } } if (!FcConfigParseAndLoad (parse->config, s, !ignore_missing)) parse->error = FcTrue; #ifndef _WIN32 else { FcChar8 *filename; static FcBool warn_conf = FcFalse, warn_confd = FcFalse; filename = FcConfigFilename(s); if (deprecated == FcTrue && filename != NULL && !FcFileIsLink (filename)) { if (FcFileIsDir (filename)) { FcChar8 *parent = FcStrDirname (userdir); if (!FcFileIsDir (parent)) FcMakeDirectory (parent); FcStrFree (parent); if (FcFileIsDir (userdir) || rename ((const char *)filename, (const char *)userdir) != 0 || symlink ((const char *)userdir, (const char *)filename) != 0) { if (!warn_confd) { FcConfigMessage (parse, FcSevereWarning, "reading configurations from %s is deprecated. please move it to %s manually", s, userdir); warn_confd = FcTrue; } } } else { FcChar8 *parent = FcStrDirname (userconf); if (!FcFileIsDir (parent)) FcMakeDirectory (parent); FcStrFree (parent); if (FcFileIsFile (userconf) || rename ((const char *)filename, (const char *)userconf) != 0 || symlink ((const char *)userconf, (const char *)filename) != 0) { if (!warn_conf) { FcConfigMessage (parse, FcSevereWarning, "reading configurations from %s is deprecated. please move it to %s manually", s, userconf); warn_conf = FcTrue; } } } } if(filename) FcStrFree(filename); } #endif FcStrBufDestroy (&parse->pstack->str); bail: if (prefix) FcStrFree (prefix); } typedef struct _FcOpMap { char name[16]; FcOp op; } FcOpMap; static FcOp FcConfigLexOp (const FcChar8 *op, const FcOpMap *map, int nmap) { int i; for (i = 0; i < nmap; i++) if (!strcmp ((char *) op, map[i].name)) return map[i].op; return FcOpInvalid; } static const FcOpMap fcCompareOps[] = { { "eq", FcOpEqual }, { "not_eq", FcOpNotEqual }, { "less", FcOpLess }, { "less_eq", FcOpLessEqual }, { "more", FcOpMore }, { "more_eq", FcOpMoreEqual }, { "contains", FcOpContains }, { "not_contains", FcOpNotContains } }; #define NUM_COMPARE_OPS (int) (sizeof fcCompareOps / sizeof fcCompareOps[0]) static FcOp FcConfigLexCompare (const FcChar8 *compare) { return FcConfigLexOp (compare, fcCompareOps, NUM_COMPARE_OPS); } static void FcParseTest (FcConfigParse *parse) { const FcChar8 *kind_string; FcMatchKind kind; const FcChar8 *qual_string; FcQual qual; const FcChar8 *name; const FcChar8 *compare_string; FcOp compare; FcExpr *expr; FcTest *test; const FcChar8 *iblanks_string; int flags = 0; kind_string = FcConfigGetAttribute (parse, "target"); if (!kind_string) kind = FcMatchDefault; else { if (!strcmp ((char *) kind_string, "pattern")) kind = FcMatchPattern; else if (!strcmp ((char *) kind_string, "font")) kind = FcMatchFont; else if (!strcmp ((char *) kind_string, "scan")) kind = FcMatchScan; else if (!strcmp ((char *) kind_string, "default")) kind = FcMatchDefault; else { FcConfigMessage (parse, FcSevereWarning, "invalid test target \"%s\"", kind_string); return; } } qual_string = FcConfigGetAttribute (parse, "qual"); if (!qual_string) qual = FcQualAny; else { if (!strcmp ((char *) qual_string, "any")) qual = FcQualAny; else if (!strcmp ((char *) qual_string, "all")) qual = FcQualAll; else if (!strcmp ((char *) qual_string, "first")) qual = FcQualFirst; else if (!strcmp ((char *) qual_string, "not_first")) qual = FcQualNotFirst; else { FcConfigMessage (parse, FcSevereWarning, "invalid test qual \"%s\"", qual_string); return; } } name = FcConfigGetAttribute (parse, "name"); if (!name) { FcConfigMessage (parse, FcSevereWarning, "missing test name"); return; } compare_string = FcConfigGetAttribute (parse, "compare"); if (!compare_string) compare = FcOpEqual; else { compare = FcConfigLexCompare (compare_string); if (compare == FcOpInvalid) { FcConfigMessage (parse, FcSevereWarning, "invalid test compare \"%s\"", compare_string); return; } } iblanks_string = FcConfigGetAttribute (parse, "ignore-blanks"); if (iblanks_string) { FcBool f = FcFalse; if (!FcNameBool (iblanks_string, &f)) { FcConfigMessage (parse, FcSevereWarning, "invalid test ignore-blanks \"%s\"", iblanks_string); } if (f) flags |= FcOpFlagIgnoreBlanks; } expr = FcPopBinary (parse, FcOpComma); if (!expr) { FcConfigMessage (parse, FcSevereWarning, "missing test expression"); return; } if (expr->op == FcOpComma) { FcConfigMessage (parse, FcSevereWarning, "Having multiple values in isn't supported and may not work as expected"); } test = FcTestCreate (parse, kind, qual, name, FC_OP (compare, flags), expr); if (!test) { FcConfigMessage (parse, FcSevereError, "out of memory"); return; } FcVStackPushTest (parse, test); } static const FcOpMap fcModeOps[] = { { "assign", FcOpAssign }, { "assign_replace", FcOpAssignReplace }, { "prepend", FcOpPrepend }, { "prepend_first", FcOpPrependFirst }, { "append", FcOpAppend }, { "append_last", FcOpAppendLast }, { "delete", FcOpDelete }, { "delete_all", FcOpDeleteAll }, }; #define NUM_MODE_OPS (int) (sizeof fcModeOps / sizeof fcModeOps[0]) static FcOp FcConfigLexMode (const FcChar8 *mode) { return FcConfigLexOp (mode, fcModeOps, NUM_MODE_OPS); } static void FcParseEdit (FcConfigParse *parse) { const FcChar8 *name; const FcChar8 *mode_string; FcOp mode; FcValueBinding binding; FcExpr *expr; FcEdit *edit; name = FcConfigGetAttribute (parse, "name"); if (!name) { FcConfigMessage (parse, FcSevereWarning, "missing edit name"); return; } mode_string = FcConfigGetAttribute (parse, "mode"); if (!mode_string) mode = FcOpAssign; else { mode = FcConfigLexMode (mode_string); if (mode == FcOpInvalid) { FcConfigMessage (parse, FcSevereWarning, "invalid edit mode \"%s\"", mode_string); return; } } if (!FcConfigLexBinding (parse, FcConfigGetAttribute (parse, "binding"), &binding)) return; expr = FcPopBinary (parse, FcOpComma); if ((mode == FcOpDelete || mode == FcOpDeleteAll) && expr != NULL) { FcConfigMessage (parse, FcSevereWarning, "Expression doesn't take any effects for delete and delete_all"); FcExprDestroy (expr); expr = NULL; } edit = FcEditCreate (parse, FcObjectFromName ((char *) name), mode, expr, binding); if (!edit) { FcConfigMessage (parse, FcSevereError, "out of memory"); FcExprDestroy (expr); return; } if (!FcVStackPushEdit (parse, edit)) FcEditDestroy (edit); } static void FcParseMatch (FcConfigParse *parse) { const FcChar8 *kind_name; FcMatchKind kind; FcVStack *vstack; FcRule *rule = NULL, *r; kind_name = FcConfigGetAttribute (parse, "target"); if (!kind_name) kind = FcMatchPattern; else { if (!strcmp ((char *) kind_name, "pattern")) kind = FcMatchPattern; else if (!strcmp ((char *) kind_name, "font")) kind = FcMatchFont; else if (!strcmp ((char *) kind_name, "scan")) kind = FcMatchScan; else { FcConfigMessage (parse, FcSevereWarning, "invalid match target \"%s\"", kind_name); return; } } while ((vstack = FcVStackPeek (parse))) { switch ((int) vstack->tag) { case FcVStackTest: r = FcRuleCreate (FcRuleTest, vstack->u.test); if (rule) r->next = rule; rule = r; vstack->tag = FcVStackNone; break; case FcVStackEdit: if (kind == FcMatchScan && vstack->u.edit->object > FC_MAX_BASE_OBJECT) { FcConfigMessage (parse, FcSevereError, " cannot edit user-defined object \"%s\"", FcObjectName(vstack->u.edit->object)); if (rule) FcRuleDestroy (rule); return; } r = FcRuleCreate (FcRuleEdit, vstack->u.edit); if (rule) r->next = rule; rule = r; vstack->tag = FcVStackNone; break; default: FcConfigMessage (parse, FcSevereWarning, "invalid match element"); break; } FcVStackPopAndDestroy (parse); } if (!rule) { FcConfigMessage (parse, FcSevereWarning, "No nor elements in "); return; } if (!FcConfigAddRule (parse->config, rule, kind)) FcConfigMessage (parse, FcSevereError, "out of memory"); } static void FcParseAcceptRejectFont (FcConfigParse *parse, FcElement element) { FcVStack *vstack; while ((vstack = FcVStackPeek (parse))) { switch ((int) vstack->tag) { case FcVStackGlob: if (!FcConfigGlobAdd (parse->config, vstack->u.string, element == FcElementAcceptfont)) { FcConfigMessage (parse, FcSevereError, "out of memory"); } break; case FcVStackPattern: if (!FcConfigPatternsAdd (parse->config, vstack->u.pattern, element == FcElementAcceptfont)) { FcConfigMessage (parse, FcSevereError, "out of memory"); } else vstack->tag = FcVStackNone; break; default: FcConfigMessage (parse, FcSevereWarning, "bad font selector"); break; } FcVStackPopAndDestroy (parse); } } static FcValue FcPopValue (FcConfigParse *parse) { FcVStack *vstack = FcVStackPeek (parse); FcValue value; value.type = FcTypeVoid; if (!vstack) return value; switch ((int) vstack->tag) { case FcVStackString: value.u.s = FcStrdup (vstack->u.string); if (value.u.s) value.type = FcTypeString; break; case FcVStackConstant: if (FcNameConstant (vstack->u.string, &value.u.i)) value.type = FcTypeInteger; break; case FcVStackInteger: value.u.i = vstack->u.integer; value.type = FcTypeInteger; break; case FcVStackDouble: value.u.d = vstack->u._double; value.type = FcTypeDouble; break; case FcVStackBool: value.u.b = vstack->u.bool_; value.type = FcTypeBool; break; case FcVStackCharSet: value.u.c = FcCharSetCopy (vstack->u.charset); if (value.u.c) value.type = FcTypeCharSet; break; case FcVStackLangSet: value.u.l = FcLangSetCopy (vstack->u.langset); if (value.u.l) value.type = FcTypeLangSet; break; default: FcConfigMessage (parse, FcSevereWarning, "unknown pattern element %d", vstack->tag); break; } FcVStackPopAndDestroy (parse); return value; } static void FcParsePatelt (FcConfigParse *parse) { FcValue value; FcPattern *pattern = FcPatternCreate (); const char *name; if (!pattern) { FcConfigMessage (parse, FcSevereError, "out of memory"); return; } name = (char *) FcConfigGetAttribute (parse, "name"); if (!name) { FcConfigMessage (parse, FcSevereWarning, "missing pattern element name"); FcPatternDestroy (pattern); return; } for (;;) { value = FcPopValue (parse); if (value.type == FcTypeVoid) break; if (!FcPatternAdd (pattern, name, value, FcTrue)) { FcConfigMessage (parse, FcSevereError, "out of memory"); FcValueDestroy(value); break; } FcValueDestroy(value); } FcVStackPushPattern (parse, pattern); } static void FcParsePattern (FcConfigParse *parse) { FcVStack *vstack; FcPattern *pattern = FcPatternCreate (); if (!pattern) { FcConfigMessage (parse, FcSevereError, "out of memory"); return; } while ((vstack = FcVStackPeek (parse))) { switch ((int) vstack->tag) { case FcVStackPattern: if (!FcPatternAppend (pattern, vstack->u.pattern)) { FcConfigMessage (parse, FcSevereError, "out of memory"); FcPatternDestroy (pattern); return; } break; default: FcConfigMessage (parse, FcSevereWarning, "unknown pattern element"); break; } FcVStackPopAndDestroy (parse); } FcVStackPushPattern (parse, pattern); } static void FcEndElement(void *userData, const XML_Char *name FC_UNUSED) { FcConfigParse *parse = userData; FcChar8 *data; if (!parse->pstack) return; switch (parse->pstack->element) { case FcElementNone: break; case FcElementFontconfig: break; case FcElementDir: FcParseDir (parse); break; case FcElementCacheDir: FcParseCacheDir (parse); break; case FcElementCache: data = FcStrBufDoneStatic (&parse->pstack->str); if (!data) { FcConfigMessage (parse, FcSevereError, "out of memory"); break; } /* discard this data; no longer used */ FcStrBufDestroy (&parse->pstack->str); break; case FcElementInclude: FcParseInclude (parse); break; case FcElementConfig: break; case FcElementMatch: FcParseMatch (parse); break; case FcElementAlias: FcParseAlias (parse); break; case FcElementBlank: FcParseBlank (parse); break; case FcElementRescan: FcParseRescan (parse); break; case FcElementPrefer: FcParseFamilies (parse, FcVStackPrefer); break; case FcElementAccept: FcParseFamilies (parse, FcVStackAccept); break; case FcElementDefault: FcParseFamilies (parse, FcVStackDefault); break; case FcElementFamily: FcParseFamily (parse); break; case FcElementTest: FcParseTest (parse); break; case FcElementEdit: FcParseEdit (parse); break; case FcElementInt: FcParseInt (parse); break; case FcElementDouble: FcParseDouble (parse); break; case FcElementString: FcParseString (parse, FcVStackString); break; case FcElementMatrix: FcParseMatrix (parse); break; case FcElementRange: FcParseRange (parse); break; case FcElementBool: FcParseBool (parse); break; case FcElementCharSet: FcParseCharSet (parse); break; case FcElementLangSet: FcParseLangSet (parse); break; case FcElementSelectfont: break; case FcElementAcceptfont: case FcElementRejectfont: FcParseAcceptRejectFont (parse, parse->pstack->element); break; case FcElementGlob: FcParseString (parse, FcVStackGlob); break; case FcElementPattern: FcParsePattern (parse); break; case FcElementPatelt: FcParsePatelt (parse); break; case FcElementName: FcParseName (parse); break; case FcElementConst: FcParseString (parse, FcVStackConstant); break; case FcElementOr: FcParseBinary (parse, FcOpOr); break; case FcElementAnd: FcParseBinary (parse, FcOpAnd); break; case FcElementEq: FcParseBinary (parse, FcOpEqual); break; case FcElementNotEq: FcParseBinary (parse, FcOpNotEqual); break; case FcElementLess: FcParseBinary (parse, FcOpLess); break; case FcElementLessEq: FcParseBinary (parse, FcOpLessEqual); break; case FcElementMore: FcParseBinary (parse, FcOpMore); break; case FcElementMoreEq: FcParseBinary (parse, FcOpMoreEqual); break; case FcElementContains: FcParseBinary (parse, FcOpContains); break; case FcElementNotContains: FcParseBinary (parse, FcOpNotContains); break; case FcElementPlus: FcParseBinary (parse, FcOpPlus); break; case FcElementMinus: FcParseBinary (parse, FcOpMinus); break; case FcElementTimes: FcParseBinary (parse, FcOpTimes); break; case FcElementDivide: FcParseBinary (parse, FcOpDivide); break; case FcElementNot: FcParseUnary (parse, FcOpNot); break; case FcElementIf: FcParseBinary (parse, FcOpQuest); break; case FcElementFloor: FcParseUnary (parse, FcOpFloor); break; case FcElementCeil: FcParseUnary (parse, FcOpCeil); break; case FcElementRound: FcParseUnary (parse, FcOpRound); break; case FcElementTrunc: FcParseUnary (parse, FcOpTrunc); break; case FcElementUnknown: break; } (void) FcPStackPop (parse); } static void FcCharacterData (void *userData, const XML_Char *s, int len) { FcConfigParse *parse = userData; if (!parse->pstack) return; if (!FcStrBufData (&parse->pstack->str, (FcChar8 *) s, len)) FcConfigMessage (parse, FcSevereError, "out of memory"); } static void FcStartDoctypeDecl (void *userData, const XML_Char *doctypeName, const XML_Char *sysid FC_UNUSED, const XML_Char *pubid FC_UNUSED, int has_internal_subset FC_UNUSED) { FcConfigParse *parse = userData; if (strcmp ((char *) doctypeName, "fontconfig") != 0) FcConfigMessage (parse, FcSevereError, "invalid doctype \"%s\"", doctypeName); } #ifdef ENABLE_LIBXML2 static void FcInternalSubsetDecl (void *userData, const XML_Char *doctypeName, const XML_Char *sysid, const XML_Char *pubid) { FcStartDoctypeDecl (userData, doctypeName, sysid, pubid, 1); } static void FcExternalSubsetDecl (void *userData, const XML_Char *doctypeName, const XML_Char *sysid, const XML_Char *pubid) { FcStartDoctypeDecl (userData, doctypeName, sysid, pubid, 0); } #else /* ENABLE_LIBXML2 */ static void FcEndDoctypeDecl (void *userData FC_UNUSED) { } #endif /* ENABLE_LIBXML2 */ static int FcSortCmpStr (const void *a, const void *b) { const FcChar8 *as = *((FcChar8 **) a); const FcChar8 *bs = *((FcChar8 **) b); return FcStrCmp (as, bs); } static FcBool FcConfigParseAndLoadDir (FcConfig *config, const FcChar8 *name, const FcChar8 *dir, FcBool complain) { DIR *d; struct dirent *e; FcBool ret = FcTrue; FcChar8 *file; FcChar8 *base; FcStrSet *files; d = opendir ((char *) dir); if (!d) { if (complain) FcConfigMessage (0, FcSevereError, "Cannot open config dir \"%s\"", name); ret = FcFalse; goto bail0; } /* freed below */ file = (FcChar8 *) malloc (strlen ((char *) dir) + 1 + FC_MAX_FILE_LEN + 1); if (!file) { ret = FcFalse; goto bail1; } strcpy ((char *) file, (char *) dir); strcat ((char *) file, "/"); base = file + strlen ((char *) file); files = FcStrSetCreate (); if (!files) { ret = FcFalse; goto bail2; } if (FcDebug () & FC_DBG_CONFIG) printf ("\tScanning config dir %s\n", dir); while (ret && (e = readdir (d))) { int d_len; #define TAIL ".conf" #define TAIL_LEN 5 /* * Add all files of the form [0-9]*.conf */ if ('0' <= e->d_name[0] && e->d_name[0] <= '9' && (d_len = strlen (e->d_name)) < FC_MAX_FILE_LEN && d_len > TAIL_LEN && strcmp (e->d_name + d_len - TAIL_LEN, TAIL) == 0) { strcpy ((char *) base, (char *) e->d_name); if (!FcStrSetAdd (files, file)) { ret = FcFalse; goto bail3; } } } if (ret) { int i; qsort (files->strs, files->num, sizeof (FcChar8 *), (int (*)(const void *, const void *)) FcSortCmpStr); for (i = 0; ret && i < files->num; i++) ret = FcConfigParseAndLoad (config, files->strs[i], complain); } bail3: FcStrSetDestroy (files); bail2: free (file); bail1: closedir (d); bail0: return ret || !complain; } #ifdef _WIN32 pfnGetSystemWindowsDirectory pGetSystemWindowsDirectory = NULL; pfnSHGetFolderPathA pSHGetFolderPathA = NULL; #endif FcBool FcConfigParseAndLoad (FcConfig *config, const FcChar8 *name, FcBool complain) { XML_Parser p; FcChar8 *filename; int fd; int len; FcConfigParse parse; FcBool error = FcTrue; #ifdef ENABLE_LIBXML2 xmlSAXHandler sax; char buf[BUFSIZ]; #else void *buf; #endif #ifdef _WIN32 if (!pGetSystemWindowsDirectory) { HMODULE hk32 = GetModuleHandleA("kernel32.dll"); if (!(pGetSystemWindowsDirectory = (pfnGetSystemWindowsDirectory) GetProcAddress(hk32, "GetSystemWindowsDirectoryA"))) pGetSystemWindowsDirectory = (pfnGetSystemWindowsDirectory) GetWindowsDirectory; } if (!pSHGetFolderPathA) { HMODULE hSh = LoadLibraryA("shfolder.dll"); /* the check is done later, because there is no provided fallback */ if (hSh) pSHGetFolderPathA = (pfnSHGetFolderPathA) GetProcAddress(hSh, "SHGetFolderPathA"); } #endif filename = FcConfigFilename (name); if (!filename) goto bail0; if (FcStrSetMember (config->configFiles, filename)) { FcStrFree (filename); return FcTrue; } if (!FcStrSetAdd (config->configFiles, filename)) { FcStrFree (filename); goto bail0; } if (FcFileIsDir (filename)) { FcBool ret = FcConfigParseAndLoadDir (config, name, filename, complain); FcStrFree (filename); return ret; } if (FcDebug () & FC_DBG_CONFIG) printf ("\tLoading config file %s\n", filename); fd = FcOpen ((char *) filename, O_RDONLY); if (fd == -1) { FcStrFree (filename); goto bail0; } #ifdef ENABLE_LIBXML2 memset(&sax, 0, sizeof(sax)); sax.internalSubset = FcInternalSubsetDecl; sax.externalSubset = FcExternalSubsetDecl; sax.startElement = FcStartElement; sax.endElement = FcEndElement; sax.characters = FcCharacterData; p = xmlCreatePushParserCtxt (&sax, &parse, NULL, 0, (const char *) filename); #else p = XML_ParserCreate ("UTF-8"); #endif FcStrFree (filename); if (!p) goto bail1; if (!FcConfigParseInit (&parse, name, config, p)) goto bail2; #ifndef ENABLE_LIBXML2 XML_SetUserData (p, &parse); XML_SetDoctypeDeclHandler (p, FcStartDoctypeDecl, FcEndDoctypeDecl); XML_SetElementHandler (p, FcStartElement, FcEndElement); XML_SetCharacterDataHandler (p, FcCharacterData); #endif /* ENABLE_LIBXML2 */ do { #ifndef ENABLE_LIBXML2 buf = XML_GetBuffer (p, BUFSIZ); if (!buf) { FcConfigMessage (&parse, FcSevereError, "cannot get parse buffer"); goto bail3; } #endif len = read (fd, buf, BUFSIZ); if (len < 0) { FcConfigMessage (&parse, FcSevereError, "failed reading config file"); goto bail3; } #ifdef ENABLE_LIBXML2 if (xmlParseChunk (p, buf, len, len == 0)) #else if (!XML_ParseBuffer (p, len, len == 0)) #endif { FcConfigMessage (&parse, FcSevereError, "%s", XML_ErrorString (XML_GetErrorCode (p))); goto bail3; } } while (len != 0); error = parse.error; bail3: FcConfigCleanup (&parse); bail2: XML_ParserFree (p); bail1: close (fd); fd = -1; bail0: if (error && complain) { if (name) FcConfigMessage (0, FcSevereError, "Cannot load config file \"%s\"", name); else FcConfigMessage (0, FcSevereError, "Cannot load default config file"); return FcFalse; } return FcTrue; } #define __fcxml__ #include "fcaliastail.h" #undef __fcxml__ fontconfig-2.11.1/src/fcftint.h0000664000076400007640000000403312267155334013270 00000000000000/* * Copyright © 2007 Keith Packard * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * the above copyright notice appear in all copies and that both that copyright * notice and this permission notice appear in supporting documentation, and * that the name of the copyright holders not be used in advertising or * publicity pertaining to distribution of the software without specific, * written prior permission. The copyright holders make no representations * about the suitability of this software for any purpose. It is provided "as * is" without express or implied warranty. * * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE * OF THIS SOFTWARE. */ #ifndef _FCFTINT_H_ #define _FCFTINT_H_ #include #if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) && defined(__ELF__) && !defined(__sun) #define FcPrivate __attribute__((__visibility__("hidden"))) #define HAVE_GNUC_ATTRIBUTE 1 #include "fcftalias.h" #elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) #define FcPrivate __hidden #else /* not gcc >= 3.3 and not Sun Studio >= 8 */ #define FcPrivate #endif /* fcfreetype.c */ FcPrivate FcBool FcFreeTypeIsExclusiveLang (const FcChar8 *lang); FcPrivate FcBool FcFreeTypeHasLang (FcPattern *pattern, const FcChar8 *lang); FcPrivate FcChar32 FcFreeTypeUcs4ToPrivate (FcChar32 ucs4, const FcCharMap *map); FcPrivate FcChar32 FcFreeTypePrivateToUcs4 (FcChar32 private, const FcCharMap *map); FcPrivate const FcCharMap * FcFreeTypeGetPrivateMap (FT_Encoding encoding); #endif /* _FCFTINT_H_ */ fontconfig-2.11.1/src/fcdbg.c0000664000076400007640000003031512267155334012675 00000000000000/* * fontconfig/src/fcdbg.c * * 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. */ #include "fcint.h" #include #include static void _FcValuePrintFile (FILE *f, const FcValue v) { switch (v.type) { case FcTypeUnknown: fprintf (f, ""); break; case FcTypeVoid: fprintf (f, ""); break; case FcTypeInteger: fprintf (f, "%d(i)", v.u.i); break; case FcTypeDouble: fprintf (f, "%g(f)", v.u.d); break; case FcTypeString: fprintf (f, "\"%s\"", v.u.s); break; case FcTypeBool: fprintf (f, "%s", v.u.b ? "True" : "False"); break; case FcTypeMatrix: fprintf (f, "[%g %g; %g %g]", v.u.m->xx, v.u.m->xy, v.u.m->yx, v.u.m->yy); break; case FcTypeCharSet: /* XXX */ if (f == stdout) FcCharSetPrint (v.u.c); break; case FcTypeLangSet: FcLangSetPrint (v.u.l); break; case FcTypeFTFace: fprintf (f, "face"); break; } } void FcValuePrintFile (FILE *f, const FcValue v) { fprintf (f, " "); _FcValuePrintFile (f, v); } void FcValuePrint (const FcValue v) { printf (" "); _FcValuePrintFile (stdout, v); } void FcValuePrintWithPosition (const FcValue v, FcBool show_pos_mark) { if (show_pos_mark) printf (" [marker] "); else printf (" "); _FcValuePrintFile (stdout, v); } static void FcValueBindingPrint (const FcValueListPtr l) { switch (l->binding) { case FcValueBindingWeak: printf ("(w)"); break; case FcValueBindingStrong: printf ("(s)"); break; case FcValueBindingSame: printf ("(=)"); break; default: /* shouldn't be reached */ printf ("(?)"); break; } } void FcValueListPrintWithPosition (FcValueListPtr l, const FcValueListPtr pos) { for (; l != NULL; l = FcValueListNext(l)) { FcValuePrintWithPosition (FcValueCanonicalize (&l->value), pos != NULL && l == pos); FcValueBindingPrint (l); } if (!pos) printf (" [marker]"); } void FcValueListPrint (FcValueListPtr l) { for (; l != NULL; l = FcValueListNext(l)) { FcValuePrint (FcValueCanonicalize (&l->value)); FcValueBindingPrint (l); } } void FcLangSetPrint (const FcLangSet *ls) { FcStrBuf buf; FcChar8 init_buf[1024]; FcStrBufInit (&buf, init_buf, sizeof (init_buf)); if (FcNameUnparseLangSet (&buf, ls) && FcStrBufChar (&buf,'\0')) printf ("%s", buf.buf); else printf ("langset (alloc error)"); FcStrBufDestroy (&buf); } void FcCharSetPrint (const FcCharSet *c) { int i, j; intptr_t *leaves = FcCharSetLeaves (c); FcChar16 *numbers = FcCharSetNumbers (c); #if 0 printf ("CharSet 0x%x\n", (intptr_t) c); printf ("Leaves: +%d = 0x%x\n", c->leaves_offset, (intptr_t) leaves); printf ("Numbers: +%d = 0x%x\n", c->numbers_offset, (intptr_t) numbers); for (i = 0; i < c->num; i++) { printf ("Page %d: %04x +%d = 0x%x\n", i, numbers[i], leaves[i], (intptr_t) FcOffsetToPtr (leaves, leaves[i], FcCharLeaf)); } #endif printf ("\n"); for (i = 0; i < c->num; i++) { intptr_t leaf_offset = leaves[i]; FcCharLeaf *leaf = FcOffsetToPtr (leaves, leaf_offset, FcCharLeaf); printf ("\t"); printf ("%04x:", numbers[i]); for (j = 0; j < 256/32; j++) printf (" %08x", leaf->map[j]); printf ("\n"); } } void FcPatternPrint (const FcPattern *p) { int i; FcPatternElt *e; if (!p) { printf ("Null pattern\n"); return; } printf ("Pattern has %d elts (size %d)\n", p->num, p->size); for (i = 0; i < p->num; i++) { e = &FcPatternElts(p)[i]; printf ("\t%s:", FcObjectName(e->object)); FcValueListPrint (FcPatternEltValues(e)); printf ("\n"); } printf ("\n"); } #define FcOpFlagsPrint(_o_) \ { \ int f = FC_OP_GET_FLAGS (_o_); \ if (f & FcOpFlagIgnoreBlanks) \ printf ("(ignore blanks)"); \ } void FcOpPrint (FcOp op_) { FcOp op = FC_OP_GET_OP (op_); switch (op) { case FcOpInteger: printf ("Integer"); break; case FcOpDouble: printf ("Double"); break; case FcOpString: printf ("String"); break; case FcOpMatrix: printf ("Matrix"); break; case FcOpRange: printf ("Range"); break; case FcOpBool: printf ("Bool"); break; case FcOpCharSet: printf ("CharSet"); break; case FcOpLangSet: printf ("LangSet"); break; case FcOpField: printf ("Field"); break; case FcOpConst: printf ("Const"); break; case FcOpAssign: printf ("Assign"); break; case FcOpAssignReplace: printf ("AssignReplace"); break; case FcOpPrepend: printf ("Prepend"); break; case FcOpPrependFirst: printf ("PrependFirst"); break; case FcOpAppend: printf ("Append"); break; case FcOpAppendLast: printf ("AppendLast"); break; case FcOpDelete: printf ("Delete"); break; case FcOpDeleteAll: printf ("DeleteAll"); break; case FcOpQuest: printf ("Quest"); break; case FcOpOr: printf ("Or"); break; case FcOpAnd: printf ("And"); break; case FcOpEqual: printf ("Equal"); FcOpFlagsPrint (op_); break; case FcOpNotEqual: printf ("NotEqual"); FcOpFlagsPrint (op_); break; case FcOpLess: printf ("Less"); break; case FcOpLessEqual: printf ("LessEqual"); break; case FcOpMore: printf ("More"); break; case FcOpMoreEqual: printf ("MoreEqual"); break; case FcOpContains: printf ("Contains"); break; case FcOpNotContains: printf ("NotContains"); break; case FcOpPlus: printf ("Plus"); break; case FcOpMinus: printf ("Minus"); break; case FcOpTimes: printf ("Times"); break; case FcOpDivide: printf ("Divide"); break; case FcOpNot: printf ("Not"); break; case FcOpNil: printf ("Nil"); break; case FcOpComma: printf ("Comma"); break; case FcOpFloor: printf ("Floor"); break; case FcOpCeil: printf ("Ceil"); break; case FcOpRound: printf ("Round"); break; case FcOpTrunc: printf ("Trunc"); break; case FcOpListing: printf ("Listing"); FcOpFlagsPrint (op_); break; case FcOpInvalid: printf ("Invalid"); break; } } void FcExprPrint (const FcExpr *expr) { if (!expr) printf ("none"); else switch (FC_OP_GET_OP (expr->op)) { case FcOpInteger: printf ("%d", expr->u.ival); break; case FcOpDouble: printf ("%g", expr->u.dval); break; case FcOpString: printf ("\"%s\"", expr->u.sval); break; case FcOpMatrix: printf ("["); FcExprPrint (expr->u.mexpr->xx); printf (" "); FcExprPrint (expr->u.mexpr->xy); printf ("; "); FcExprPrint (expr->u.mexpr->yx); printf (" "); FcExprPrint (expr->u.mexpr->yy); printf ("]"); break; case FcOpRange: break; case FcOpBool: printf ("%s", expr->u.bval ? "true" : "false"); break; case FcOpCharSet: printf ("charset\n"); break; case FcOpLangSet: printf ("langset:"); FcLangSetPrint(expr->u.lval); printf ("\n"); break; case FcOpNil: printf ("nil\n"); break; case FcOpField: printf ("%s ", FcObjectName(expr->u.name.object)); switch ((int) expr->u.name.kind) { case FcMatchPattern: printf ("(pattern) "); break; case FcMatchFont: printf ("(font) "); break; } break; case FcOpConst: printf ("%s", expr->u.constant); break; case FcOpQuest: FcExprPrint (expr->u.tree.left); printf (" quest "); FcExprPrint (expr->u.tree.right->u.tree.left); printf (" colon "); FcExprPrint (expr->u.tree.right->u.tree.right); break; case FcOpAssign: case FcOpAssignReplace: case FcOpPrependFirst: case FcOpPrepend: case FcOpAppend: case FcOpAppendLast: case FcOpOr: case FcOpAnd: case FcOpEqual: case FcOpNotEqual: case FcOpLess: case FcOpLessEqual: case FcOpMore: case FcOpMoreEqual: case FcOpContains: case FcOpListing: case FcOpNotContains: case FcOpPlus: case FcOpMinus: case FcOpTimes: case FcOpDivide: case FcOpComma: FcExprPrint (expr->u.tree.left); printf (" "); switch (FC_OP_GET_OP (expr->op)) { case FcOpAssign: printf ("Assign"); break; case FcOpAssignReplace: printf ("AssignReplace"); break; case FcOpPrependFirst: printf ("PrependFirst"); break; case FcOpPrepend: printf ("Prepend"); break; case FcOpAppend: printf ("Append"); break; case FcOpAppendLast: printf ("AppendLast"); break; case FcOpOr: printf ("Or"); break; case FcOpAnd: printf ("And"); break; case FcOpEqual: printf ("Equal"); FcOpFlagsPrint (expr->op); break; case FcOpNotEqual: printf ("NotEqual"); FcOpFlagsPrint (expr->op); break; case FcOpLess: printf ("Less"); break; case FcOpLessEqual: printf ("LessEqual"); break; case FcOpMore: printf ("More"); break; case FcOpMoreEqual: printf ("MoreEqual"); break; case FcOpContains: printf ("Contains"); break; case FcOpListing: printf ("Listing"); FcOpFlagsPrint (expr->op); break; case FcOpNotContains: printf ("NotContains"); break; case FcOpPlus: printf ("Plus"); break; case FcOpMinus: printf ("Minus"); break; case FcOpTimes: printf ("Times"); break; case FcOpDivide: printf ("Divide"); break; case FcOpComma: printf ("Comma"); break; default: break; } printf (" "); FcExprPrint (expr->u.tree.right); break; case FcOpNot: printf ("Not "); FcExprPrint (expr->u.tree.left); break; case FcOpFloor: printf ("Floor "); FcExprPrint (expr->u.tree.left); break; case FcOpCeil: printf ("Ceil "); FcExprPrint (expr->u.tree.left); break; case FcOpRound: printf ("Round "); FcExprPrint (expr->u.tree.left); break; case FcOpTrunc: printf ("Trunc "); FcExprPrint (expr->u.tree.left); break; case FcOpInvalid: printf ("Invalid"); break; } } void FcTestPrint (const FcTest *test) { switch (test->kind) { case FcMatchPattern: printf ("pattern "); break; case FcMatchFont: printf ("font "); break; case FcMatchScan: printf ("scan "); break; } switch (test->qual) { case FcQualAny: printf ("any "); break; case FcQualAll: printf ("all "); break; case FcQualFirst: printf ("first "); break; case FcQualNotFirst: printf ("not_first "); break; } printf ("%s ", FcObjectName (test->object)); FcOpPrint (test->op); printf (" "); FcExprPrint (test->expr); printf ("\n"); } void FcEditPrint (const FcEdit *edit) { printf ("Edit %s ", FcObjectName (edit->object)); FcOpPrint (edit->op); printf (" "); FcExprPrint (edit->expr); } void FcSubstPrint (const FcSubst *subst) { FcRule *r; FcRuleType last_type = FcRuleUnknown; printf ("match\n"); for (r = subst->rule; r; r = r->next) { if (last_type != r->type) { switch (r->type) { case FcRuleTest: printf ("[test]\n"); break; case FcRuleEdit: printf ("[edit]\n"); break; default: break; } last_type = r->type; } printf ("\t"); switch (r->type) { case FcRuleTest: FcTestPrint (r->u.test); break; case FcRuleEdit: FcEditPrint (r->u.edit); printf (";\n"); break; default: break; } } printf ("\n"); } void FcFontSetPrint (const FcFontSet *s) { int i; printf ("FontSet %d of %d\n", s->nfont, s->sfont); for (i = 0; i < s->nfont; i++) { printf ("Font %d ", i); FcPatternPrint (s->fonts[i]); } } int FcDebugVal; void FcInitDebug (void) { if (!FcDebugVal) { char *e; e = getenv ("FC_DEBUG"); if (e) { printf ("FC_DEBUG=%s\n", e); FcDebugVal = atoi (e); if (FcDebugVal < 0) FcDebugVal = 0; } } } #define __fcdbg__ #include "fcaliastail.h" #undef __fcdbg__ fontconfig-2.11.1/src/ftglue.h0000664000076400007640000000735412267155335013133 00000000000000/* ftglue.c: Glue code for compiling the OpenType code from * FreeType 1 using only the public API of FreeType 2 * * By David Turner, The FreeType Project (www.freetype.org) * * This code is explicitely put in the public domain * * ========================================================================== * * the OpenType parser codes was originally written as an extension to * FreeType 1.x. As such, its source code was embedded within the library, * and used many internal FreeType functions to deal with memory and * stream i/o. * * When it was 'salvaged' for Pango and Qt, the code was "ported" to FreeType 2, * which basically means that some macro tricks were performed in order to * directly access FT2 _internal_ functions. * * these functions were never part of FT2 public API, and _did_ change between * various releases. This created chaos for many users: when they upgraded the * FreeType library on their system, they couldn't run Gnome anymore since * Pango refused to link. * * Very fortunately, it's possible to completely avoid this problem because * the FT_StreamRec and FT_MemoryRec structure types, which describe how * memory and stream implementations interface with the rest of the font * library, have always been part of the public API, and never changed. * * What we do thus is re-implement, within the OpenType parser, the few * functions that depend on them. This only adds one or two kilobytes of * code, and ensures that the parser can work with _any_ version * of FreeType installed on your system. How sweet... ! * * Note that we assume that Pango doesn't use any other internal functions * from FreeType. It used to in old versions, but this should no longer * be the case. (crossing my fingers). * * - David Turner * - The FreeType Project (www.freetype.org) * * PS: This "glue" code is explicitely put in the public domain */ #ifndef __OPENTYPE_FTGLUE_H__ #define __OPENTYPE_FTGLUE_H__ #include "fcint.h" #include #include FT_FREETYPE_H FT_BEGIN_HEADER #define SET_ERR(c) ( (error = (c)) != 0 ) #ifndef FTGLUE_API #define FTGLUE_API(x) extern FcPrivate x #endif #ifndef FTGLUE_APIDEF #define FTGLUE_APIDEF(x) x #endif /* stream macros used by the OpenType parser */ #define FILE_Pos() ftglue_stream_pos( stream ) #define FILE_Seek(pos) SET_ERR( ftglue_stream_seek( stream, pos ) ) #define ACCESS_Frame(size) SET_ERR( ftglue_stream_frame_enter( stream, size ) ) #define FORGET_Frame() ftglue_stream_frame_exit( stream ) #define GET_Byte() (*stream->cursor++) #define GET_Short() (stream->cursor += 2, (FT_Short)( \ (*(((FT_Byte*)stream->cursor)-2) << 8) | \ *(((FT_Byte*)stream->cursor)-1) \ )) #define GET_Long() (stream->cursor += 4, (FT_Long)( \ (*(((FT_Byte*)stream->cursor)-4) << 24) | \ (*(((FT_Byte*)stream->cursor)-3) << 16) | \ (*(((FT_Byte*)stream->cursor)-2) << 8) | \ *(((FT_Byte*)stream->cursor)-1) \ )) #define GET_Char() ((FT_Char)GET_Byte()) #define GET_UShort() ((FT_UShort)GET_Short()) #define GET_ULong() ((FT_ULong)GET_Long()) #define GET_Tag4() GET_ULong() #define FT_SET_ERROR( expression ) \ ( ( error = (expression) ) != 0 ) FTGLUE_API( FT_Long ) ftglue_stream_pos( FT_Stream stream ); FTGLUE_API( FT_Error ) ftglue_stream_seek( FT_Stream stream, FT_Long pos ); FTGLUE_API( FT_Error ) ftglue_stream_frame_enter( FT_Stream stream, FT_ULong size ); FTGLUE_API( void ) ftglue_stream_frame_exit( FT_Stream stream ); FTGLUE_API( FT_Error ) ftglue_face_goto_table( FT_Face face, FT_ULong tag, FT_Stream stream ); FT_END_HEADER #endif /* __OPENTYPE_FTGLUE_H__ */ fontconfig-2.11.1/src/fccharset.c0000664000076400007640000007745312267155334013610 00000000000000/* * fontconfig/src/fccharset.c * * Copyright © 2001 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" #include /* #define CHECK */ FcCharSet * FcCharSetCreate (void) { FcCharSet *fcs; fcs = (FcCharSet *) malloc (sizeof (FcCharSet)); if (!fcs) return 0; FcRefInit (&fcs->ref, 1); fcs->num = 0; fcs->leaves_offset = 0; fcs->numbers_offset = 0; return fcs; } FcCharSet * FcCharSetNew (void) { return FcCharSetCreate (); } void FcCharSetDestroy (FcCharSet *fcs) { int i; if (fcs) { if (FcRefIsConst (&fcs->ref)) { FcCacheObjectDereference (fcs); return; } if (FcRefDec (&fcs->ref) != 1) return; for (i = 0; i < fcs->num; i++) free (FcCharSetLeaf (fcs, i)); if (fcs->num) { free (FcCharSetLeaves (fcs)); free (FcCharSetNumbers (fcs)); } free (fcs); } } /* * Search for the leaf containing with the specified num. * Return its index if it exists, otherwise return negative of * the (position + 1) where it should be inserted */ static int FcCharSetFindLeafForward (const FcCharSet *fcs, int start, FcChar16 num) { FcChar16 *numbers = FcCharSetNumbers(fcs); FcChar16 page; int low = start; int high = fcs->num - 1; if (!numbers) return -1; while (low <= high) { int mid = (low + high) >> 1; page = numbers[mid]; if (page == num) return mid; if (page < num) low = mid + 1; else high = mid - 1; } if (high < 0 || (high < fcs->num && numbers[high] < num)) high++; return -(high + 1); } /* * Locate the leaf containing the specified char, return * its index if it exists, otherwise return negative of * the (position + 1) where it should be inserted */ static int FcCharSetFindLeafPos (const FcCharSet *fcs, FcChar32 ucs4) { return FcCharSetFindLeafForward (fcs, 0, ucs4 >> 8); } static FcCharLeaf * FcCharSetFindLeaf (const FcCharSet *fcs, FcChar32 ucs4) { int pos = FcCharSetFindLeafPos (fcs, ucs4); if (pos >= 0) return FcCharSetLeaf(fcs, pos); return 0; } #define FC_IS_ZERO_OR_POWER_OF_TWO(x) (!((x) & ((x)-1))) static FcBool FcCharSetPutLeaf (FcCharSet *fcs, FcChar32 ucs4, FcCharLeaf *leaf, int pos) { intptr_t *leaves = FcCharSetLeaves (fcs); FcChar16 *numbers = FcCharSetNumbers (fcs); ucs4 >>= 8; if (ucs4 >= 0x10000) return FcFalse; if (FC_IS_ZERO_OR_POWER_OF_TWO (fcs->num)) { if (!fcs->num) { unsigned int alloced = 8; leaves = malloc (alloced * sizeof (*leaves)); numbers = malloc (alloced * sizeof (*numbers)); } else { unsigned int alloced = fcs->num; intptr_t *new_leaves, distance; alloced *= 2; new_leaves = realloc (leaves, alloced * sizeof (*leaves)); numbers = realloc (numbers, alloced * sizeof (*numbers)); distance = (intptr_t) new_leaves - (intptr_t) leaves; if (new_leaves && distance) { int i; for (i = 0; i < fcs->num; i++) new_leaves[i] -= distance; } leaves = new_leaves; } if (!leaves || !numbers) return FcFalse; fcs->leaves_offset = FcPtrToOffset (fcs, leaves); fcs->numbers_offset = FcPtrToOffset (fcs, numbers); } memmove (leaves + pos + 1, leaves + pos, (fcs->num - pos) * sizeof (*leaves)); memmove (numbers + pos + 1, numbers + pos, (fcs->num - pos) * sizeof (*numbers)); numbers[pos] = (FcChar16) ucs4; leaves[pos] = FcPtrToOffset (leaves, leaf); fcs->num++; return FcTrue; } /* * Locate the leaf containing the specified char, creating it * if desired */ FcCharLeaf * FcCharSetFindLeafCreate (FcCharSet *fcs, FcChar32 ucs4) { int pos; FcCharLeaf *leaf; pos = FcCharSetFindLeafPos (fcs, ucs4); if (pos >= 0) return FcCharSetLeaf(fcs, pos); leaf = calloc (1, sizeof (FcCharLeaf)); if (!leaf) return 0; pos = -pos - 1; if (!FcCharSetPutLeaf (fcs, ucs4, leaf, pos)) { free (leaf); return 0; } return leaf; } static FcBool FcCharSetInsertLeaf (FcCharSet *fcs, FcChar32 ucs4, FcCharLeaf *leaf) { int pos; pos = FcCharSetFindLeafPos (fcs, ucs4); if (pos >= 0) { free (FcCharSetLeaf (fcs, pos)); FcCharSetLeaves(fcs)[pos] = FcPtrToOffset (FcCharSetLeaves(fcs), leaf); return FcTrue; } pos = -pos - 1; return FcCharSetPutLeaf (fcs, ucs4, leaf, pos); } FcBool FcCharSetAddChar (FcCharSet *fcs, FcChar32 ucs4) { FcCharLeaf *leaf; FcChar32 *b; if (fcs == NULL || FcRefIsConst (&fcs->ref)) return FcFalse; leaf = FcCharSetFindLeafCreate (fcs, ucs4); if (!leaf) return FcFalse; b = &leaf->map[(ucs4 & 0xff) >> 5]; *b |= (1 << (ucs4 & 0x1f)); return FcTrue; } FcBool FcCharSetDelChar (FcCharSet *fcs, FcChar32 ucs4) { FcCharLeaf *leaf; FcChar32 *b; if (fcs == NULL || FcRefIsConst (&fcs->ref)) return FcFalse; leaf = FcCharSetFindLeaf (fcs, ucs4); if (!leaf) return FcTrue; b = &leaf->map[(ucs4 & 0xff) >> 5]; *b &= ~(1 << (ucs4 & 0x1f)); /* We don't bother removing the leaf if it's empty */ return FcTrue; } /* * An iterator for the leaves of a charset */ typedef struct _fcCharSetIter { FcCharLeaf *leaf; FcChar32 ucs4; int pos; } FcCharSetIter; /* * Set iter->leaf to the leaf containing iter->ucs4 or higher */ static void FcCharSetIterSet (const FcCharSet *fcs, FcCharSetIter *iter) { int pos = FcCharSetFindLeafPos (fcs, iter->ucs4); if (pos < 0) { pos = -pos - 1; if (pos == fcs->num) { iter->ucs4 = ~0; iter->leaf = 0; return; } iter->ucs4 = (FcChar32) FcCharSetNumbers(fcs)[pos] << 8; } iter->leaf = FcCharSetLeaf(fcs, pos); iter->pos = pos; } static void FcCharSetIterNext (const FcCharSet *fcs, FcCharSetIter *iter) { int pos = iter->pos + 1; if (pos >= fcs->num) { iter->ucs4 = ~0; iter->leaf = 0; } else { iter->ucs4 = (FcChar32) FcCharSetNumbers(fcs)[pos] << 8; iter->leaf = FcCharSetLeaf(fcs, pos); iter->pos = pos; } } static void FcCharSetIterStart (const FcCharSet *fcs, FcCharSetIter *iter) { iter->ucs4 = 0; iter->pos = 0; FcCharSetIterSet (fcs, iter); } FcCharSet * FcCharSetCopy (FcCharSet *src) { if (src) { if (!FcRefIsConst (&src->ref)) FcRefInc (&src->ref); else FcCacheObjectReference (src); } return src; } FcBool FcCharSetEqual (const FcCharSet *a, const FcCharSet *b) { FcCharSetIter ai, bi; int i; if (a == b) return FcTrue; if (!a || !b) return FcFalse; for (FcCharSetIterStart (a, &ai), FcCharSetIterStart (b, &bi); ai.leaf && bi.leaf; FcCharSetIterNext (a, &ai), FcCharSetIterNext (b, &bi)) { if (ai.ucs4 != bi.ucs4) return FcFalse; for (i = 0; i < 256/32; i++) if (ai.leaf->map[i] != bi.leaf->map[i]) return FcFalse; } return ai.leaf == bi.leaf; } static FcBool FcCharSetAddLeaf (FcCharSet *fcs, FcChar32 ucs4, FcCharLeaf *leaf) { FcCharLeaf *new = FcCharSetFindLeafCreate (fcs, ucs4); if (!new) return FcFalse; *new = *leaf; return FcTrue; } static FcCharSet * FcCharSetOperate (const FcCharSet *a, const FcCharSet *b, FcBool (*overlap) (FcCharLeaf *result, const FcCharLeaf *al, const FcCharLeaf *bl), FcBool aonly, FcBool bonly) { FcCharSet *fcs; FcCharSetIter ai, bi; if (!a || !b) goto bail0; fcs = FcCharSetCreate (); if (!fcs) goto bail0; FcCharSetIterStart (a, &ai); FcCharSetIterStart (b, &bi); while ((ai.leaf || (bonly && bi.leaf)) && (bi.leaf || (aonly && ai.leaf))) { if (ai.ucs4 < bi.ucs4) { if (aonly) { if (!FcCharSetAddLeaf (fcs, ai.ucs4, ai.leaf)) goto bail1; FcCharSetIterNext (a, &ai); } else { ai.ucs4 = bi.ucs4; FcCharSetIterSet (a, &ai); } } else if (bi.ucs4 < ai.ucs4 ) { if (bonly) { if (!FcCharSetAddLeaf (fcs, bi.ucs4, bi.leaf)) goto bail1; FcCharSetIterNext (b, &bi); } else { bi.ucs4 = ai.ucs4; FcCharSetIterSet (b, &bi); } } else { FcCharLeaf leaf; if ((*overlap) (&leaf, ai.leaf, bi.leaf)) { if (!FcCharSetAddLeaf (fcs, ai.ucs4, &leaf)) goto bail1; } FcCharSetIterNext (a, &ai); FcCharSetIterNext (b, &bi); } } return fcs; bail1: FcCharSetDestroy (fcs); bail0: return 0; } static FcBool FcCharSetIntersectLeaf (FcCharLeaf *result, const FcCharLeaf *al, const FcCharLeaf *bl) { int i; FcBool nonempty = FcFalse; for (i = 0; i < 256/32; i++) if ((result->map[i] = al->map[i] & bl->map[i])) nonempty = FcTrue; return nonempty; } FcCharSet * FcCharSetIntersect (const FcCharSet *a, const FcCharSet *b) { return FcCharSetOperate (a, b, FcCharSetIntersectLeaf, FcFalse, FcFalse); } static FcBool FcCharSetUnionLeaf (FcCharLeaf *result, const FcCharLeaf *al, const FcCharLeaf *bl) { int i; for (i = 0; i < 256/32; i++) result->map[i] = al->map[i] | bl->map[i]; return FcTrue; } FcCharSet * FcCharSetUnion (const FcCharSet *a, const FcCharSet *b) { return FcCharSetOperate (a, b, FcCharSetUnionLeaf, FcTrue, FcTrue); } FcBool FcCharSetMerge (FcCharSet *a, const FcCharSet *b, FcBool *changed) { int ai = 0, bi = 0; FcChar16 an, bn; if (!a || !b) return FcFalse; if (FcRefIsConst (&a->ref)) { if (changed) *changed = FcFalse; return FcFalse; } if (changed) { *changed = !FcCharSetIsSubset(b, a); if (!*changed) return FcTrue; } while (bi < b->num) { an = ai < a->num ? FcCharSetNumbers(a)[ai] : ~0; bn = FcCharSetNumbers(b)[bi]; if (an < bn) { ai = FcCharSetFindLeafForward (a, ai + 1, bn); if (ai < 0) ai = -ai - 1; } else { FcCharLeaf *bl = FcCharSetLeaf(b, bi); if (bn < an) { if (!FcCharSetAddLeaf (a, bn << 8, bl)) return FcFalse; } else { FcCharLeaf *al = FcCharSetLeaf(a, ai); FcCharSetUnionLeaf (al, al, bl); } ai++; bi++; } } return FcTrue; } static FcBool FcCharSetSubtractLeaf (FcCharLeaf *result, const FcCharLeaf *al, const FcCharLeaf *bl) { int i; FcBool nonempty = FcFalse; for (i = 0; i < 256/32; i++) if ((result->map[i] = al->map[i] & ~bl->map[i])) nonempty = FcTrue; return nonempty; } FcCharSet * FcCharSetSubtract (const FcCharSet *a, const FcCharSet *b) { return FcCharSetOperate (a, b, FcCharSetSubtractLeaf, FcTrue, FcFalse); } FcBool FcCharSetHasChar (const FcCharSet *fcs, FcChar32 ucs4) { FcCharLeaf *leaf; if (!fcs) return FcFalse; leaf = FcCharSetFindLeaf (fcs, ucs4); if (!leaf) return FcFalse; return (leaf->map[(ucs4 & 0xff) >> 5] & (1 << (ucs4 & 0x1f))) != 0; } static FcChar32 FcCharSetPopCount (FcChar32 c1) { #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) return __builtin_popcount (c1); #else /* hackmem 169 */ FcChar32 c2 = (c1 >> 1) & 033333333333; c2 = c1 - c2 - ((c2 >> 1) & 033333333333); return (((c2 + (c2 >> 3)) & 030707070707) % 077); #endif } FcChar32 FcCharSetIntersectCount (const FcCharSet *a, const FcCharSet *b) { FcCharSetIter ai, bi; FcChar32 count = 0; if (a && b) { FcCharSetIterStart (a, &ai); FcCharSetIterStart (b, &bi); while (ai.leaf && bi.leaf) { if (ai.ucs4 == bi.ucs4) { FcChar32 *am = ai.leaf->map; FcChar32 *bm = bi.leaf->map; int i = 256/32; while (i--) count += FcCharSetPopCount (*am++ & *bm++); FcCharSetIterNext (a, &ai); } else if (ai.ucs4 < bi.ucs4) { ai.ucs4 = bi.ucs4; FcCharSetIterSet (a, &ai); } if (bi.ucs4 < ai.ucs4) { bi.ucs4 = ai.ucs4; FcCharSetIterSet (b, &bi); } } } return count; } FcChar32 FcCharSetCount (const FcCharSet *a) { FcCharSetIter ai; FcChar32 count = 0; if (a) { for (FcCharSetIterStart (a, &ai); ai.leaf; FcCharSetIterNext (a, &ai)) { int i = 256/32; FcChar32 *am = ai.leaf->map; while (i--) count += FcCharSetPopCount (*am++); } } return count; } FcChar32 FcCharSetSubtractCount (const FcCharSet *a, const FcCharSet *b) { FcCharSetIter ai, bi; FcChar32 count = 0; if (a && b) { FcCharSetIterStart (a, &ai); FcCharSetIterStart (b, &bi); while (ai.leaf) { if (ai.ucs4 <= bi.ucs4) { FcChar32 *am = ai.leaf->map; int i = 256/32; if (ai.ucs4 == bi.ucs4) { FcChar32 *bm = bi.leaf->map; while (i--) count += FcCharSetPopCount (*am++ & ~*bm++); } else { while (i--) count += FcCharSetPopCount (*am++); } FcCharSetIterNext (a, &ai); } else if (bi.leaf) { bi.ucs4 = ai.ucs4; FcCharSetIterSet (b, &bi); } } } return count; } /* * return FcTrue iff a is a subset of b */ FcBool FcCharSetIsSubset (const FcCharSet *a, const FcCharSet *b) { int ai, bi; FcChar16 an, bn; if (a == b) return FcTrue; if (!a || !b) return FcFalse; bi = 0; ai = 0; while (ai < a->num && bi < b->num) { an = FcCharSetNumbers(a)[ai]; bn = FcCharSetNumbers(b)[bi]; /* * Check matching pages */ if (an == bn) { FcChar32 *am = FcCharSetLeaf(a, ai)->map; FcChar32 *bm = FcCharSetLeaf(b, bi)->map; if (am != bm) { int i = 256/32; /* * Does am have any bits not in bm? */ while (i--) if (*am++ & ~*bm++) return FcFalse; } ai++; bi++; } /* * Does a have any pages not in b? */ else if (an < bn) return FcFalse; else { bi = FcCharSetFindLeafForward (b, bi + 1, an); if (bi < 0) bi = -bi - 1; } } /* * did we look at every page? */ return ai >= a->num; } /* * These two functions efficiently walk the entire charmap for * other software (like pango) that want their own copy */ FcChar32 FcCharSetNextPage (const FcCharSet *a, FcChar32 map[FC_CHARSET_MAP_SIZE], FcChar32 *next) { FcCharSetIter ai; FcChar32 page; if (!a) return FC_CHARSET_DONE; ai.ucs4 = *next; FcCharSetIterSet (a, &ai); if (!ai.leaf) return FC_CHARSET_DONE; /* * Save current information */ page = ai.ucs4; memcpy (map, ai.leaf->map, sizeof (ai.leaf->map)); /* * Step to next page */ FcCharSetIterNext (a, &ai); *next = ai.ucs4; return page; } FcChar32 FcCharSetFirstPage (const FcCharSet *a, FcChar32 map[FC_CHARSET_MAP_SIZE], FcChar32 *next) { *next = 0; return FcCharSetNextPage (a, map, next); } /* * old coverage API, rather hard to use correctly */ FcChar32 FcCharSetCoverage (const FcCharSet *a, FcChar32 page, FcChar32 *result) { FcCharSetIter ai; ai.ucs4 = page; FcCharSetIterSet (a, &ai); if (!ai.leaf) { memset (result, '\0', 256 / 8); page = 0; } else { memcpy (result, ai.leaf->map, sizeof (ai.leaf->map)); FcCharSetIterNext (a, &ai); page = ai.ucs4; } return page; } /* * ASCII representation of charsets. * * Each leaf is represented as 9 32-bit values, the code of the first character followed * by 8 32 bit values for the leaf itself. Each value is encoded as 5 ASCII characters, * only 85 different values are used to avoid control characters as well as the other * characters used to encode font names. 85**5 > 2^32 so things work out, but * it's not exactly human readable output. As a special case, 0 is encoded as a space */ static const unsigned char charToValue[256] = { /* "" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* "\b" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* "\020" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* "\030" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* " " */ 0xff, 0x00, 0xff, 0x01, 0x02, 0x03, 0x04, 0xff, /* "(" */ 0x05, 0x06, 0x07, 0x08, 0xff, 0xff, 0x09, 0x0a, /* "0" */ 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, /* "8" */ 0x13, 0x14, 0xff, 0x15, 0x16, 0xff, 0x17, 0x18, /* "@" */ 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, /* "H" */ 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, /* "P" */ 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, /* "X" */ 0x31, 0x32, 0x33, 0x34, 0xff, 0x35, 0x36, 0xff, /* "`" */ 0xff, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, /* "h" */ 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, /* "p" */ 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, /* "x" */ 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0xff, /* "\200" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* "\210" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* "\220" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* "\230" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* "\240" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* "\250" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* "\260" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* "\270" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* "\300" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* "\310" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* "\320" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* "\330" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* "\340" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* "\350" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* "\360" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* "\370" */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, }; static const FcChar8 valueToChar[0x55] = { /* 0x00 */ '!', '#', '$', '%', '&', '(', ')', '*', /* 0x08 */ '+', '.', '/', '0', '1', '2', '3', '4', /* 0x10 */ '5', '6', '7', '8', '9', ';', '<', '>', /* 0x18 */ '?', '@', 'A', 'B', 'C', 'D', 'E', 'F', /* 0x20 */ 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', /* 0x28 */ 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', /* 0x30 */ 'W', 'X', 'Y', 'Z', '[', ']', '^', 'a', /* 0x38 */ 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', /* 0x40 */ 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', /* 0x48 */ 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', /* 0x50 */ 'z', '{', '|', '}', '~', }; static FcChar8 * FcCharSetParseValue (FcChar8 *string, FcChar32 *value) { int i; FcChar32 v; FcChar32 c; if (*string == ' ') { v = 0; string++; } else { v = 0; for (i = 0; i < 5; i++) { if (!(c = (FcChar32) (unsigned char) *string++)) return 0; c = charToValue[c]; if (c == 0xff) return 0; v = v * 85 + c; } } *value = v; return string; } static FcBool FcCharSetUnparseValue (FcStrBuf *buf, FcChar32 value) { 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 ucs4; FcCharLeaf *leaf; FcCharLeaf temp; FcChar32 bits; int i; c = FcCharSetCreate (); if (!c) goto bail0; while (*string) { string = FcCharSetParseValue (string, &ucs4); if (!string) goto bail1; bits = 0; for (i = 0; i < 256/32; i++) { string = FcCharSetParseValue (string, &temp.map[i]); if (!string) goto bail1; bits |= temp.map[i]; } if (bits) { leaf = malloc (sizeof (FcCharLeaf)); if (!leaf) goto bail1; *leaf = temp; if (!FcCharSetInsertLeaf (c, ucs4, leaf)) goto bail1; } } return c; bail1: if (c->num) { free (FcCharSetLeaves (c)); } if (c->num) { free (FcCharSetNumbers (c)); } free (c); bail0: return NULL; } FcBool FcNameUnparseCharSet (FcStrBuf *buf, const FcCharSet *c) { FcCharSetIter ci; int i; #ifdef CHECK int len = buf->len; #endif for (FcCharSetIterStart (c, &ci); ci.leaf; FcCharSetIterNext (c, &ci)) { if (!FcCharSetUnparseValue (buf, ci.ucs4)) return FcFalse; for (i = 0; i < 256/32; i++) if (!FcCharSetUnparseValue (buf, ci.leaf->map[i])) return FcFalse; } #ifdef CHECK { FcCharSet *check; FcChar32 missing; FcCharSetIter ci, checki; /* null terminate for parser */ FcStrBufChar (buf, '\0'); /* step back over null for life after test */ buf->len--; check = FcNameParseCharSet (buf->buf + len); FcCharSetIterStart (c, &ci); FcCharSetIterStart (check, &checki); while (ci.leaf || checki.leaf) { if (ci.ucs4 < checki.ucs4) { printf ("Missing leaf node at 0x%x\n", ci.ucs4); FcCharSetIterNext (c, &ci); } else if (checki.ucs4 < ci.ucs4) { printf ("Extra leaf node at 0x%x\n", checki.ucs4); FcCharSetIterNext (check, &checki); } else { int i = 256/32; FcChar32 *cm = ci.leaf->map; FcChar32 *checkm = checki.leaf->map; for (i = 0; i < 256; i += 32) { if (*cm != *checkm) printf ("Mismatching sets at 0x%08x: 0x%08x != 0x%08x\n", ci.ucs4 + i, *cm, *checkm); cm++; checkm++; } FcCharSetIterNext (c, &ci); FcCharSetIterNext (check, &checki); } } if ((missing = FcCharSetSubtractCount (c, check))) printf ("%d missing in reparsed result\n", missing); if ((missing = FcCharSetSubtractCount (check, c))) printf ("%d extra in reparsed result\n", missing); FcCharSetDestroy (check); } #endif return FcTrue; } typedef struct _FcCharLeafEnt FcCharLeafEnt; struct _FcCharLeafEnt { FcCharLeafEnt *next; FcChar32 hash; FcCharLeaf leaf; }; #define FC_CHAR_LEAF_BLOCK (4096 / sizeof (FcCharLeafEnt)) #define FC_CHAR_LEAF_HASH_SIZE 257 typedef struct _FcCharSetEnt FcCharSetEnt; struct _FcCharSetEnt { FcCharSetEnt *next; FcChar32 hash; FcCharSet set; }; typedef struct _FcCharSetOrigEnt FcCharSetOrigEnt; struct _FcCharSetOrigEnt { FcCharSetOrigEnt *next; const FcCharSet *orig; const FcCharSet *frozen; }; #define FC_CHAR_SET_HASH_SIZE 67 struct _FcCharSetFreezer { FcCharLeafEnt *leaf_hash_table[FC_CHAR_LEAF_HASH_SIZE]; FcCharLeafEnt **leaf_blocks; int leaf_block_count; FcCharSetEnt *set_hash_table[FC_CHAR_SET_HASH_SIZE]; FcCharSetOrigEnt *orig_hash_table[FC_CHAR_SET_HASH_SIZE]; FcCharLeafEnt *current_block; int leaf_remain; int leaves_seen; int charsets_seen; int leaves_allocated; int charsets_allocated; }; static FcCharLeafEnt * FcCharLeafEntCreate (FcCharSetFreezer *freezer) { if (!freezer->leaf_remain) { FcCharLeafEnt **newBlocks; freezer->leaf_block_count++; newBlocks = realloc (freezer->leaf_blocks, freezer->leaf_block_count * sizeof (FcCharLeafEnt *)); if (!newBlocks) return 0; freezer->leaf_blocks = newBlocks; freezer->current_block = freezer->leaf_blocks[freezer->leaf_block_count-1] = malloc (FC_CHAR_LEAF_BLOCK * sizeof (FcCharLeafEnt)); if (!freezer->current_block) return 0; freezer->leaf_remain = FC_CHAR_LEAF_BLOCK; } freezer->leaf_remain--; freezer->leaves_allocated++; return freezer->current_block++; } static FcChar32 FcCharLeafHash (FcCharLeaf *leaf) { FcChar32 hash = 0; int i; for (i = 0; i < 256/32; i++) hash = ((hash << 1) | (hash >> 31)) ^ leaf->map[i]; return hash; } static FcCharLeaf * FcCharSetFreezeLeaf (FcCharSetFreezer *freezer, FcCharLeaf *leaf) { FcChar32 hash = FcCharLeafHash (leaf); FcCharLeafEnt **bucket = &freezer->leaf_hash_table[hash % FC_CHAR_LEAF_HASH_SIZE]; FcCharLeafEnt *ent; for (ent = *bucket; ent; ent = ent->next) { if (ent->hash == hash && !memcmp (&ent->leaf, leaf, sizeof (FcCharLeaf))) return &ent->leaf; } ent = FcCharLeafEntCreate(freezer); if (!ent) return 0; ent->leaf = *leaf; ent->hash = hash; ent->next = *bucket; *bucket = ent; return &ent->leaf; } static FcChar32 FcCharSetHash (FcCharSet *fcs) { FcChar32 hash = 0; int i; /* hash in leaves */ for (i = 0; i < fcs->num; i++) hash = ((hash << 1) | (hash >> 31)) ^ FcCharLeafHash (FcCharSetLeaf(fcs,i)); /* hash in numbers */ for (i = 0; i < fcs->num; i++) hash = ((hash << 1) | (hash >> 31)) ^ *FcCharSetNumbers(fcs); return hash; } static FcBool FcCharSetFreezeOrig (FcCharSetFreezer *freezer, const FcCharSet *orig, const FcCharSet *frozen) { FcCharSetOrigEnt **bucket = &freezer->orig_hash_table[((uintptr_t) orig) & FC_CHAR_SET_HASH_SIZE]; FcCharSetOrigEnt *ent; ent = malloc (sizeof (FcCharSetOrigEnt)); if (!ent) return FcFalse; ent->orig = orig; ent->frozen = frozen; ent->next = *bucket; *bucket = ent; return FcTrue; } static FcCharSet * FcCharSetFreezeBase (FcCharSetFreezer *freezer, FcCharSet *fcs) { FcChar32 hash = FcCharSetHash (fcs); FcCharSetEnt **bucket = &freezer->set_hash_table[hash % FC_CHAR_SET_HASH_SIZE]; FcCharSetEnt *ent; int size; int i; for (ent = *bucket; ent; ent = ent->next) { if (ent->hash == hash && ent->set.num == fcs->num && !memcmp (FcCharSetNumbers(&ent->set), FcCharSetNumbers(fcs), fcs->num * sizeof (FcChar16))) { FcBool ok = FcTrue; int i; for (i = 0; i < fcs->num; i++) if (FcCharSetLeaf(&ent->set, i) != FcCharSetLeaf(fcs, i)) ok = FcFalse; if (ok) return &ent->set; } } size = (sizeof (FcCharSetEnt) + fcs->num * sizeof (FcCharLeaf *) + fcs->num * sizeof (FcChar16)); ent = malloc (size); if (!ent) return 0; freezer->charsets_allocated++; FcRefSetConst (&ent->set.ref); ent->set.num = fcs->num; if (fcs->num) { intptr_t *ent_leaves; ent->set.leaves_offset = sizeof (ent->set); ent->set.numbers_offset = (ent->set.leaves_offset + fcs->num * sizeof (intptr_t)); ent_leaves = FcCharSetLeaves (&ent->set); for (i = 0; i < fcs->num; i++) ent_leaves[i] = FcPtrToOffset (ent_leaves, FcCharSetLeaf (fcs, i)); memcpy (FcCharSetNumbers (&ent->set), FcCharSetNumbers (fcs), fcs->num * sizeof (FcChar16)); } else { ent->set.leaves_offset = 0; ent->set.numbers_offset = 0; } ent->hash = hash; ent->next = *bucket; *bucket = ent; return &ent->set; } static const FcCharSet * FcCharSetFindFrozen (FcCharSetFreezer *freezer, const FcCharSet *orig) { FcCharSetOrigEnt **bucket = &freezer->orig_hash_table[((uintptr_t) orig) & FC_CHAR_SET_HASH_SIZE]; FcCharSetOrigEnt *ent; for (ent = *bucket; ent; ent = ent->next) if (ent->orig == orig) return ent->frozen; return NULL; } const FcCharSet * FcCharSetFreeze (FcCharSetFreezer *freezer, const FcCharSet *fcs) { FcCharSet *b; const FcCharSet *n = 0; FcCharLeaf *l; int i; b = FcCharSetCreate (); if (!b) goto bail0; for (i = 0; i < fcs->num; i++) { l = FcCharSetFreezeLeaf (freezer, FcCharSetLeaf(fcs, i)); if (!l) goto bail1; if (!FcCharSetInsertLeaf (b, FcCharSetNumbers(fcs)[i] << 8, l)) goto bail1; } n = FcCharSetFreezeBase (freezer, b); if (!FcCharSetFreezeOrig (freezer, fcs, n)) { n = NULL; goto bail1; } freezer->charsets_seen++; freezer->leaves_seen += fcs->num; bail1: if (b->num) free (FcCharSetLeaves (b)); if (b->num) free (FcCharSetNumbers (b)); free (b); bail0: return n; } FcCharSetFreezer * FcCharSetFreezerCreate (void) { FcCharSetFreezer *freezer; freezer = calloc (1, sizeof (FcCharSetFreezer)); return freezer; } void FcCharSetFreezerDestroy (FcCharSetFreezer *freezer) { int i; if (FcDebug() & FC_DBG_CACHE) { printf ("\ncharsets %d -> %d leaves %d -> %d\n", freezer->charsets_seen, freezer->charsets_allocated, freezer->leaves_seen, freezer->leaves_allocated); } for (i = 0; i < FC_CHAR_SET_HASH_SIZE; i++) { FcCharSetEnt *ent, *next; for (ent = freezer->set_hash_table[i]; ent; ent = next) { next = ent->next; free (ent); } } for (i = 0; i < FC_CHAR_SET_HASH_SIZE; i++) { FcCharSetOrigEnt *ent, *next; for (ent = freezer->orig_hash_table[i]; ent; ent = next) { next = ent->next; free (ent); } } for (i = 0; i < freezer->leaf_block_count; i++) free (freezer->leaf_blocks[i]); free (freezer->leaf_blocks); free (freezer); } FcBool FcCharSetSerializeAlloc (FcSerialize *serialize, const FcCharSet *cs) { intptr_t *leaves; FcChar16 *numbers; int i; if (!FcRefIsConst (&cs->ref)) { if (!serialize->cs_freezer) { serialize->cs_freezer = FcCharSetFreezerCreate (); if (!serialize->cs_freezer) return FcFalse; } if (FcCharSetFindFrozen (serialize->cs_freezer, cs)) return FcTrue; cs = FcCharSetFreeze (serialize->cs_freezer, cs); } leaves = FcCharSetLeaves (cs); numbers = FcCharSetNumbers (cs); if (!FcSerializeAlloc (serialize, cs, sizeof (FcCharSet))) return FcFalse; if (!FcSerializeAlloc (serialize, leaves, cs->num * sizeof (intptr_t))) return FcFalse; if (!FcSerializeAlloc (serialize, numbers, cs->num * sizeof (FcChar16))) return FcFalse; for (i = 0; i < cs->num; i++) if (!FcSerializeAlloc (serialize, FcCharSetLeaf(cs, i), sizeof (FcCharLeaf))) return FcFalse; return FcTrue; } FcCharSet * FcCharSetSerialize(FcSerialize *serialize, const FcCharSet *cs) { FcCharSet *cs_serialized; intptr_t *leaves, *leaves_serialized; FcChar16 *numbers, *numbers_serialized; FcCharLeaf *leaf, *leaf_serialized; int i; if (!FcRefIsConst (&cs->ref) && serialize->cs_freezer) { cs = FcCharSetFindFrozen (serialize->cs_freezer, cs); if (!cs) return NULL; } cs_serialized = FcSerializePtr (serialize, cs); if (!cs_serialized) return NULL; FcRefSetConst (&cs_serialized->ref); cs_serialized->num = cs->num; if (cs->num) { leaves = FcCharSetLeaves (cs); leaves_serialized = FcSerializePtr (serialize, leaves); if (!leaves_serialized) return NULL; cs_serialized->leaves_offset = FcPtrToOffset (cs_serialized, leaves_serialized); numbers = FcCharSetNumbers (cs); numbers_serialized = FcSerializePtr (serialize, numbers); if (!numbers) return NULL; cs_serialized->numbers_offset = FcPtrToOffset (cs_serialized, numbers_serialized); for (i = 0; i < cs->num; i++) { leaf = FcCharSetLeaf (cs, i); leaf_serialized = FcSerializePtr (serialize, leaf); if (!leaf_serialized) return NULL; *leaf_serialized = *leaf; leaves_serialized[i] = FcPtrToOffset (leaves_serialized, leaf_serialized); numbers_serialized[i] = numbers[i]; } } else { cs_serialized->leaves_offset = 0; cs_serialized->numbers_offset = 0; } return cs_serialized; } #define __fccharset__ #include "fcaliastail.h" #undef __fccharset__ fontconfig-2.11.1/src/fcfreetype.c0000664000076400007640000026357512272602375014002 00000000000000/* * fontconfig/src/fcfreetype.c * * Copyright © 2001 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. */ /* Copyright © 2002-2003 by Juliusz Chroboczek Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "fcint.h" #include "fcftint.h" #include #include #include #include #include FT_FREETYPE_H #include FT_TRUETYPE_TABLES_H #include FT_SFNT_NAMES_H #include FT_TRUETYPE_IDS_H #include FT_TYPE1_TABLES_H #if HAVE_FT_GET_X11_FONT_FORMAT #include FT_XFREE86_H #endif #if HAVE_FT_GET_BDF_PROPERTY #include FT_BDF_H #include FT_MODULE_H #endif #include "ftglue.h" #if HAVE_WARNING_CPP_DIRECTIVE #if !HAVE_FT_GET_BDF_PROPERTY #warning "No FT_Get_BDF_Property: Please install freetype 2.1.4 or later" #endif #if !HAVE_FT_GET_PS_FONT_INFO #warning "No FT_Get_PS_Font_Info: Please install freetype 2.1.1 or later" #endif #endif /* * Keep Han languages separated by eliminating languages * that the codePageRange bits says aren't supported */ static const struct { char bit; const FcChar8 lang[6]; } FcCodePageRange[] = { { 17, "ja" }, { 18, "zh-cn" }, { 19, "ko" }, { 20, "zh-tw" }, }; #define NUM_CODE_PAGE_RANGE (int) (sizeof FcCodePageRange / sizeof FcCodePageRange[0]) FcBool FcFreeTypeIsExclusiveLang (const FcChar8 *lang) { int i; for (i = 0; i < NUM_CODE_PAGE_RANGE; i++) { if (FcLangCompare (lang, FcCodePageRange[i].lang) == FcLangEqual) return FcTrue; } return FcFalse; } typedef struct { const FT_UShort platform_id; const FT_UShort encoding_id; const char fromcode[12]; } FcFtEncoding; #define TT_ENCODING_DONT_CARE 0xffff #define FC_ENCODING_MAC_ROMAN "MACINTOSH" static const FcFtEncoding fcFtEncoding[] = { { TT_PLATFORM_APPLE_UNICODE, TT_ENCODING_DONT_CARE, "UTF-16BE" }, { TT_PLATFORM_MACINTOSH, TT_MAC_ID_ROMAN, "MACINTOSH" }, { TT_PLATFORM_MACINTOSH, TT_MAC_ID_JAPANESE, "SJIS" }, { TT_PLATFORM_MICROSOFT, TT_MS_ID_SYMBOL_CS, "UTF-16BE" }, { TT_PLATFORM_MICROSOFT, TT_MS_ID_UNICODE_CS, "UTF-16BE" }, { TT_PLATFORM_MICROSOFT, TT_MS_ID_SJIS, "SJIS-WIN" }, { TT_PLATFORM_MICROSOFT, TT_MS_ID_GB2312, "GB2312" }, { TT_PLATFORM_MICROSOFT, TT_MS_ID_BIG_5, "BIG-5" }, { TT_PLATFORM_MICROSOFT, TT_MS_ID_WANSUNG, "Wansung" }, { TT_PLATFORM_MICROSOFT, TT_MS_ID_JOHAB, "Johab" }, { TT_PLATFORM_MICROSOFT, TT_MS_ID_UCS_4, "UTF-16BE" }, { TT_PLATFORM_ISO, TT_ISO_ID_7BIT_ASCII, "ASCII" }, { TT_PLATFORM_ISO, TT_ISO_ID_10646, "UTF-16BE" }, { TT_PLATFORM_ISO, TT_ISO_ID_8859_1, "ISO-8859-1" }, }; #define NUM_FC_FT_ENCODING (int) (sizeof (fcFtEncoding) / sizeof (fcFtEncoding[0])) typedef struct { const FT_UShort platform_id; const FT_UShort language_id; const char lang[8]; } FcFtLanguage; #define TT_LANGUAGE_DONT_CARE 0xffff static const FcFtLanguage fcFtLanguage[] = { { TT_PLATFORM_APPLE_UNICODE, TT_LANGUAGE_DONT_CARE, "" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_ENGLISH, "en" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_FRENCH, "fr" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_GERMAN, "de" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_ITALIAN, "it" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_DUTCH, "nl" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_SWEDISH, "sv" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_SPANISH, "es" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_DANISH, "da" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_PORTUGUESE, "pt" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_NORWEGIAN, "no" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_HEBREW, "he" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_JAPANESE, "ja" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_ARABIC, "ar" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_FINNISH, "fi" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_GREEK, "el" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_ICELANDIC, "is" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_MALTESE, "mt" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_TURKISH, "tr" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_CROATIAN, "hr" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_CHINESE_TRADITIONAL, "zh-tw" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_URDU, "ur" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_HINDI, "hi" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_THAI, "th" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_KOREAN, "ko" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_LITHUANIAN, "lt" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_POLISH, "pl" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_HUNGARIAN, "hu" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_ESTONIAN, "et" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_LETTISH, "lv" }, /* { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_SAAMISK, ??? */ { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_FAEROESE, "fo" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_FARSI, "fa" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_RUSSIAN, "ru" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_CHINESE_SIMPLIFIED, "zh-cn" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_FLEMISH, "nl" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_IRISH, "ga" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_ALBANIAN, "sq" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_ROMANIAN, "ro" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_CZECH, "cs" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_SLOVAK, "sk" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_SLOVENIAN, "sl" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_YIDDISH, "yi" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_SERBIAN, "sr" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_MACEDONIAN, "mk" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_BULGARIAN, "bg" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_UKRAINIAN, "uk" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_BYELORUSSIAN, "be" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_UZBEK, "uz" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_KAZAKH, "kk" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_AZERBAIJANI, "az" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_AZERBAIJANI_CYRILLIC_SCRIPT, "az" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_AZERBAIJANI_ARABIC_SCRIPT, "ar" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_ARMENIAN, "hy" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_GEORGIAN, "ka" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_MOLDAVIAN, "mo" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_KIRGHIZ, "ky" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_TAJIKI, "tg" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_TURKMEN, "tk" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_MONGOLIAN, "mo" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_MONGOLIAN_MONGOLIAN_SCRIPT,"mo" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_MONGOLIAN_CYRILLIC_SCRIPT, "mo" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_PASHTO, "ps" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_KURDISH, "ku" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_KASHMIRI, "ks" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_SINDHI, "sd" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_TIBETAN, "bo" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_NEPALI, "ne" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_SANSKRIT, "sa" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_MARATHI, "mr" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_BENGALI, "bn" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_ASSAMESE, "as" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_GUJARATI, "gu" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_PUNJABI, "pa" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_ORIYA, "or" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_MALAYALAM, "ml" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_KANNADA, "kn" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_TAMIL, "ta" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_TELUGU, "te" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_SINHALESE, "si" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_BURMESE, "my" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_KHMER, "km" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_LAO, "lo" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_VIETNAMESE, "vi" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_INDONESIAN, "id" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_TAGALOG, "tl" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_MALAY_ROMAN_SCRIPT, "ms" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_MALAY_ARABIC_SCRIPT, "ms" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_AMHARIC, "am" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_TIGRINYA, "ti" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_GALLA, "om" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_SOMALI, "so" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_SWAHILI, "sw" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_RUANDA, "rw" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_RUNDI, "rn" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_CHEWA, "ny" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_MALAGASY, "mg" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_ESPERANTO, "eo" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_WELSH, "cy" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_BASQUE, "eu" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_CATALAN, "ca" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_LATIN, "la" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_QUECHUA, "qu" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_GUARANI, "gn" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_AYMARA, "ay" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_TATAR, "tt" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_UIGHUR, "ug" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_DZONGKHA, "dz" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_JAVANESE, "jw" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_SUNDANESE, "su" }, #if 0 /* these seem to be errors that have been dropped */ { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_SCOTTISH_GAELIC }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_IRISH_GAELIC }, #endif /* The following codes are new as of 2000-03-10 */ { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_GALICIAN, "gl" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_AFRIKAANS, "af" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_BRETON, "br" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_INUKTITUT, "iu" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_SCOTTISH_GAELIC, "gd" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_MANX_GAELIC, "gv" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_IRISH_GAELIC, "ga" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_TONGAN, "to" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_GREEK_POLYTONIC, "el" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_GREELANDIC, "ik" }, { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_AZERBAIJANI_ROMAN_SCRIPT,"az" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ARABIC_SAUDI_ARABIA, "ar" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ARABIC_IRAQ, "ar" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ARABIC_EGYPT, "ar" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ARABIC_LIBYA, "ar" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ARABIC_ALGERIA, "ar" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ARABIC_MOROCCO, "ar" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ARABIC_TUNISIA, "ar" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ARABIC_OMAN, "ar" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ARABIC_YEMEN, "ar" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ARABIC_SYRIA, "ar" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ARABIC_JORDAN, "ar" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ARABIC_LEBANON, "ar" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ARABIC_KUWAIT, "ar" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ARABIC_UAE, "ar" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ARABIC_BAHRAIN, "ar" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ARABIC_QATAR, "ar" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_BULGARIAN_BULGARIA, "bg" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_CATALAN_SPAIN, "ca" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_CHINESE_TAIWAN, "zh-tw" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_CHINESE_PRC, "zh-cn" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_CHINESE_HONG_KONG, "zh-hk" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_CHINESE_SINGAPORE, "zh-sg" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_CHINESE_MACAU, "zh-mo" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_CZECH_CZECH_REPUBLIC, "cs" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_DANISH_DENMARK, "da" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_GERMAN_GERMANY, "de" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_GERMAN_SWITZERLAND, "de" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_GERMAN_AUSTRIA, "de" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_GERMAN_LUXEMBOURG, "de" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_GERMAN_LIECHTENSTEI, "de" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_GREEK_GREECE, "el" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ENGLISH_UNITED_STATES, "en" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ENGLISH_UNITED_KINGDOM, "en" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ENGLISH_AUSTRALIA, "en" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ENGLISH_CANADA, "en" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ENGLISH_NEW_ZEALAND, "en" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ENGLISH_IRELAND, "en" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ENGLISH_SOUTH_AFRICA, "en" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ENGLISH_JAMAICA, "en" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ENGLISH_CARIBBEAN, "en" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ENGLISH_BELIZE, "en" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ENGLISH_TRINIDAD, "en" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ENGLISH_ZIMBABWE, "en" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ENGLISH_PHILIPPINES, "en" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SPANISH_SPAIN_TRADITIONAL_SORT,"es" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SPANISH_MEXICO, "es" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SPANISH_SPAIN_INTERNATIONAL_SORT,"es" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SPANISH_GUATEMALA, "es" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SPANISH_COSTA_RICA, "es" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SPANISH_PANAMA, "es" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SPANISH_DOMINICAN_REPUBLIC,"es" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SPANISH_VENEZUELA, "es" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SPANISH_COLOMBIA, "es" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SPANISH_PERU, "es" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SPANISH_ARGENTINA, "es" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SPANISH_ECUADOR, "es" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SPANISH_CHILE, "es" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SPANISH_URUGUAY, "es" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SPANISH_PARAGUAY, "es" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SPANISH_BOLIVIA, "es" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SPANISH_EL_SALVADOR, "es" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SPANISH_HONDURAS, "es" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SPANISH_NICARAGUA, "es" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SPANISH_PUERTO_RICO, "es" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_FINNISH_FINLAND, "fi" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_FRENCH_FRANCE, "fr" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_FRENCH_BELGIUM, "fr" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_FRENCH_CANADA, "fr" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_FRENCH_SWITZERLAND, "fr" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_FRENCH_LUXEMBOURG, "fr" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_FRENCH_MONACO, "fr" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_HEBREW_ISRAEL, "he" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_HUNGARIAN_HUNGARY, "hu" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ICELANDIC_ICELAND, "is" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ITALIAN_ITALY, "it" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ITALIAN_SWITZERLAND, "it" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_JAPANESE_JAPAN, "ja" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_KOREAN_EXTENDED_WANSUNG_KOREA,"ko" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_KOREAN_JOHAB_KOREA, "ko" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_DUTCH_NETHERLANDS, "nl" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_DUTCH_BELGIUM, "nl" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_NORWEGIAN_NORWAY_BOKMAL, "no" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_NORWEGIAN_NORWAY_NYNORSK, "nn" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_POLISH_POLAND, "pl" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_PORTUGUESE_BRAZIL, "pt" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_PORTUGUESE_PORTUGAL, "pt" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_RHAETO_ROMANIC_SWITZERLAND,"rm" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ROMANIAN_ROMANIA, "ro" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_MOLDAVIAN_MOLDAVIA, "mo" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_RUSSIAN_RUSSIA, "ru" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_RUSSIAN_MOLDAVIA, "ru" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_CROATIAN_CROATIA, "hr" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SERBIAN_SERBIA_LATIN, "sr" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SERBIAN_SERBIA_CYRILLIC, "sr" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SLOVAK_SLOVAKIA, "sk" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ALBANIAN_ALBANIA, "sq" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SWEDISH_SWEDEN, "sv" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SWEDISH_FINLAND, "sv" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_THAI_THAILAND, "th" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_TURKISH_TURKEY, "tr" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_URDU_PAKISTAN, "ur" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_INDONESIAN_INDONESIA, "id" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_UKRAINIAN_UKRAINE, "uk" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_BELARUSIAN_BELARUS, "be" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SLOVENE_SLOVENIA, "sl" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ESTONIAN_ESTONIA, "et" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_LATVIAN_LATVIA, "lv" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_LITHUANIAN_LITHUANIA, "lt" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_CLASSIC_LITHUANIAN_LITHUANIA,"lt" }, #ifdef TT_MS_LANGID_MAORI_NEW_ZELAND /* this seems to be an error that have been dropped */ { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_MAORI_NEW_ZEALAND, "mi" }, #endif { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_FARSI_IRAN, "fa" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_VIETNAMESE_VIET_NAM, "vi" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ARMENIAN_ARMENIA, "hy" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_AZERI_AZERBAIJAN_LATIN, "az" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_AZERI_AZERBAIJAN_CYRILLIC, "az" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_BASQUE_SPAIN, "eu" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SORBIAN_GERMANY, "wen" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_MACEDONIAN_MACEDONIA, "mk" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SUTU_SOUTH_AFRICA, "st" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_TSONGA_SOUTH_AFRICA, "ts" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_TSWANA_SOUTH_AFRICA, "tn" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_VENDA_SOUTH_AFRICA, "ven" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_XHOSA_SOUTH_AFRICA, "xh" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ZULU_SOUTH_AFRICA, "zu" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_AFRIKAANS_SOUTH_AFRICA, "af" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_GEORGIAN_GEORGIA, "ka" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_FAEROESE_FAEROE_ISLANDS, "fo" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_HINDI_INDIA, "hi" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_MALTESE_MALTA, "mt" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SAAMI_LAPONIA, "se" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SCOTTISH_GAELIC_UNITED_KINGDOM,"gd" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_IRISH_GAELIC_IRELAND, "ga" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_MALAY_MALAYSIA, "ms" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_MALAY_BRUNEI_DARUSSALAM, "ms" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_KAZAK_KAZAKSTAN, "kk" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SWAHILI_KENYA, "sw" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_UZBEK_UZBEKISTAN_LATIN, "uz" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_UZBEK_UZBEKISTAN_CYRILLIC, "uz" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_TATAR_TATARSTAN, "tt" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_BENGALI_INDIA, "bn" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_PUNJABI_INDIA, "pa" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_GUJARATI_INDIA, "gu" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ORIYA_INDIA, "or" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_TAMIL_INDIA, "ta" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_TELUGU_INDIA, "te" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_KANNADA_INDIA, "kn" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_MALAYALAM_INDIA, "ml" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ASSAMESE_INDIA, "as" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_MARATHI_INDIA, "mr" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SANSKRIT_INDIA, "sa" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_KONKANI_INDIA, "kok" }, /* new as of 2001-01-01 */ { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ARABIC_GENERAL, "ar" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_CHINESE_GENERAL, "zh" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ENGLISH_GENERAL, "en" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_FRENCH_WEST_INDIES, "fr" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_FRENCH_REUNION, "fr" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_FRENCH_CONGO, "fr" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_FRENCH_SENEGAL, "fr" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_FRENCH_CAMEROON, "fr" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_FRENCH_COTE_D_IVOIRE, "fr" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_FRENCH_MALI, "fr" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_BOSNIAN_BOSNIA_HERZEGOVINA,"bs" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_URDU_INDIA, "ur" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_TAJIK_TAJIKISTAN, "tg" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_YIDDISH_GERMANY, "yi" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_KIRGHIZ_KIRGHIZSTAN, "ky" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_TURKMEN_TURKMENISTAN, "tk" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_MONGOLIAN_MONGOLIA, "mn" }, /* the following seems to be inconsistent; here is the current "official" way: */ { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_TIBETAN_BHUTAN, "bo" }, /* and here is what is used by Passport SDK */ { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_TIBETAN_CHINA, "bo" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_DZONGHKA_BHUTAN, "dz" }, /* end of inconsistency */ { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_WELSH_WALES, "cy" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_KHMER_CAMBODIA, "km" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_LAO_LAOS, "lo" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_BURMESE_MYANMAR, "my" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_GALICIAN_SPAIN, "gl" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_MANIPURI_INDIA, "mni" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SINDHI_INDIA, "sd" }, /* the following one is only encountered in Microsoft RTF specification */ { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_KASHMIRI_PAKISTAN, "ks" }, /* the following one is not in the Passport list, looks like an omission */ { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_KASHMIRI_INDIA, "ks" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_NEPALI_NEPAL, "ne" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_NEPALI_INDIA, "ne" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_FRISIAN_NETHERLANDS, "fy" }, /* new as of 2001-03-01 (from Office Xp) */ { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ENGLISH_HONG_KONG, "en" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ENGLISH_INDIA, "en" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ENGLISH_MALAYSIA, "en" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_ENGLISH_SINGAPORE, "en" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SYRIAC_SYRIA, "syr" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SINHALESE_SRI_LANKA, "si" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_CHEROKEE_UNITED_STATES, "chr" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_INUKTITUT_CANADA, "iu" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_AMHARIC_ETHIOPIA, "am" }, #if 0 { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_TAMAZIGHT_MOROCCO }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_TAMAZIGHT_MOROCCO_LATIN }, #endif { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_PASHTO_AFGHANISTAN, "ps" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_FILIPINO_PHILIPPINES, "phi" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_DHIVEHI_MALDIVES, "div" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_OROMO_ETHIOPIA, "om" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_TIGRIGNA_ETHIOPIA, "ti" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_TIGRIGNA_ERYTHREA, "ti" }, /* New additions from Windows Xp/Passport SDK 2001-11-10. */ /* don't ask what this one means... It is commented out currently. */ #if 0 { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_GREEK_GREECE2 }, #endif { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SPANISH_UNITED_STATES, "es" }, /* The following two IDs blatantly violate MS specs by using a */ /* sublanguage >,. */ { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SPANISH_LATIN_AMERICA, "es" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_FRENCH_NORTH_AFRICA, "fr" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_FRENCH_MOROCCO, "fr" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_FRENCH_HAITI, "fr" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_BENGALI_BANGLADESH, "bn" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_PUNJABI_ARABIC_PAKISTAN, "ar" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_MONGOLIAN_MONGOLIA_MONGOLIAN,"mn" }, #if 0 { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_EDO_NIGERIA }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_FULFULDE_NIGERIA }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_IBIBIO_NIGERIA }, #endif { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_HAUSA_NIGERIA, "ha" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_YORUBA_NIGERIA, "yo" }, /* language codes from, to, are (still) unknown. */ { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_IGBO_NIGERIA, "ibo" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_KANURI_NIGERIA, "kau" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_GUARANI_PARAGUAY, "gn" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_HAWAIIAN_UNITED_STATES, "haw" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_LATIN, "la" }, { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_SOMALI_SOMALIA, "so" }, #if 0 /* Note: Yi does not have a (proper) ISO 639-2 code, since it is mostly */ /* not written (but OTOH the peculiar writing system is worth */ /* studying). */ { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_YI_CHINA }, #endif { TT_PLATFORM_MICROSOFT, TT_MS_LANGID_PAPIAMENTU_NETHERLANDS_ANTILLES,"pap" }, }; #define NUM_FC_FT_LANGUAGE (int) (sizeof (fcFtLanguage) / sizeof (fcFtLanguage[0])) typedef struct { FT_UShort language_id; char fromcode[12]; } FcMacRomanFake; static const FcMacRomanFake fcMacRomanFake[] = { { TT_MS_LANGID_JAPANESE_JAPAN, "SJIS-WIN" }, { TT_MS_LANGID_ENGLISH_UNITED_STATES, "ASCII" }, }; static FcChar8 * FcFontCapabilities(FT_Face face); #define NUM_FC_MAC_ROMAN_FAKE (int) (sizeof (fcMacRomanFake) / sizeof (fcMacRomanFake[0])) #if USE_ICONV #include #endif /* * A shift-JIS will have many high bits turned on */ static FcBool FcLooksLikeSJIS (FcChar8 *string, int len) { int nhigh = 0, nlow = 0; while (len-- > 0) { if (*string++ & 0x80) nhigh++; else nlow++; } /* * Heuristic -- if more than 1/3 of the bytes have the high-bit set, * this is likely to be SJIS and not ROMAN */ if (nhigh * 2 > nlow) return FcTrue; return FcFalse; } static FcChar8 * FcSfntNameTranscode (FT_SfntName *sname) { int i; const char *fromcode; #if USE_ICONV iconv_t cd; #endif FcChar8 *utf8; for (i = 0; i < NUM_FC_FT_ENCODING; i++) if (fcFtEncoding[i].platform_id == sname->platform_id && (fcFtEncoding[i].encoding_id == TT_ENCODING_DONT_CARE || fcFtEncoding[i].encoding_id == sname->encoding_id)) break; if (i == NUM_FC_FT_ENCODING) return 0; fromcode = fcFtEncoding[i].fromcode; /* * Many names encoded for TT_PLATFORM_MACINTOSH are broken * in various ways. Kludge around them. */ if (!strcmp (fromcode, FC_ENCODING_MAC_ROMAN)) { if (sname->language_id == TT_MAC_LANGID_ENGLISH && FcLooksLikeSJIS (sname->string, sname->string_len)) { fromcode = "SJIS"; } else if (sname->language_id >= 0x100) { /* * "real" Mac language IDs are all less than 150. * Names using one of the MS language IDs are assumed * to use an associated encoding (Yes, this is a kludge) */ int f; fromcode = NULL; for (f = 0; f < NUM_FC_MAC_ROMAN_FAKE; f++) if (fcMacRomanFake[f].language_id == sname->language_id) { fromcode = fcMacRomanFake[f].fromcode; break; } if (!fromcode) return 0; } } if (!strcmp (fromcode, "UCS-2BE") || !strcmp (fromcode, "UTF-16BE")) { FcChar8 *src = sname->string; int src_len = sname->string_len; int len; int wchar; int ilen, olen; FcChar8 *u8; FcChar32 ucs4; /* * Convert Utf16 to Utf8 */ if (!FcUtf16Len (src, FcEndianBig, src_len, &len, &wchar)) return 0; /* * Allocate plenty of space. Freed below */ utf8 = malloc (len * FC_UTF8_MAX_LEN + 1); if (!utf8) return 0; u8 = utf8; while ((ilen = FcUtf16ToUcs4 (src, FcEndianBig, &ucs4, src_len)) > 0) { src_len -= ilen; src += ilen; olen = FcUcs4ToUtf8 (ucs4, u8); u8 += olen; } *u8 = '\0'; goto done; } if (!strcmp (fromcode, "ASCII") || !strcmp (fromcode, "ISO-8859-1")) { 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 * 2 + 1); if (!utf8) return 0; u8 = utf8; while (src_len > 0) { ucs4 = *src++; 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)) { size_t in_bytes_left = sname->string_len; size_t out_bytes_left = sname->string_len * FC_UTF8_MAX_LEN; char *inbuf, *outbuf; utf8 = malloc (out_bytes_left + 1); if (!utf8) { iconv_close (cd); return 0; } outbuf = (char *) utf8; inbuf = (char *) sname->string; while (in_bytes_left) { size_t did = iconv (cd, &inbuf, &in_bytes_left, &outbuf, &out_bytes_left); if (did == (size_t) (-1)) { iconv_close (cd); free (utf8); return 0; } } iconv_close (cd); *outbuf = '\0'; goto done; } #endif return 0; done: if (FcStrCmpIgnoreBlanksAndCase (utf8, (FcChar8 *) "") == 0) { free (utf8); return 0; } return utf8; } static const FcChar8 * FcSfntNameLanguage (FT_SfntName *sname) { int i; FT_UShort platform_id = sname->platform_id; FT_UShort language_id = sname->language_id; /* * Many names encoded for TT_PLATFORM_MACINTOSH are broken * in various ways. Kludge around them. */ if (platform_id == TT_PLATFORM_MACINTOSH && sname->encoding_id == TT_MAC_ID_ROMAN && FcLooksLikeSJIS (sname->string, sname->string_len)) { language_id = TT_MAC_LANGID_JAPANESE; } for (i = 0; i < NUM_FC_FT_LANGUAGE; i++) if (fcFtLanguage[i].platform_id == platform_id && (fcFtLanguage[i].language_id == TT_LANGUAGE_DONT_CARE || fcFtLanguage[i].language_id == language_id)) { if (fcFtLanguage[i].lang[0] == '\0') return NULL; else return (FcChar8 *) fcFtLanguage[i].lang; } return 0; } /* Order is significant. For example, some B&H fonts are hinted by URW++, and both strings appear in the notice. */ static const char *FcNoticeFoundries[][2] = { {"Adobe", "adobe"}, {"Bigelow", "b&h"}, {"Bitstream", "bitstream"}, {"Gnat", "culmus"}, {"Iorsh", "culmus"}, {"HanYang System", "hanyang"}, {"Font21", "hwan"}, {"IBM", "ibm"}, {"International Typeface Corporation", "itc"}, {"Linotype", "linotype"}, {"LINOTYPE-HELL", "linotype"}, {"Microsoft", "microsoft"}, {"Monotype", "monotype"}, {"Omega", "omega"}, {"Tiro Typeworks", "tiro"}, {"URW", "urw"}, {"XFree86", "xfree86"}, {"Xorg", "xorg"}, }; #define NUM_NOTICE_FOUNDRIES (int) (sizeof (FcNoticeFoundries) / sizeof (FcNoticeFoundries[0])) static const FcChar8 * FcNoticeFoundry(const FT_String *notice) { int i; if (notice) for(i = 0; i < NUM_NOTICE_FOUNDRIES; i++) { const char *n = FcNoticeFoundries[i][0]; const char *f = FcNoticeFoundries[i][1]; if (strstr ((const char *) notice, n)) return (const FcChar8 *) f; } 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; } FcStringConst; static int FcStringIsConst (const FcChar8 *string, const FcStringConst *c, int nc) { int i; for (i = 0; i < nc; i++) if (FcStrCmpIgnoreBlanksAndCase (string, c[i].name) == 0) return c[i].value; return -1; } static int FcStringContainsConst (const FcChar8 *string, const FcStringConst *c, int nc) { int i; for (i = 0; i < nc; i++) { if (c[i].name[0] == '<') { if (FcStrContainsWord (string, c[i].name + 1)) return c[i].value; } else { if (FcStrContainsIgnoreBlanksAndCase (string, c[i].name)) return c[i].value; } } return -1; } typedef FcChar8 *FC8; static const FcStringConst weightConsts[] = { { (FC8) "thin", FC_WEIGHT_THIN }, { (FC8) "extralight", FC_WEIGHT_EXTRALIGHT }, { (FC8) "ultralight", FC_WEIGHT_ULTRALIGHT }, { (FC8) "light", FC_WEIGHT_LIGHT }, { (FC8) "book", FC_WEIGHT_BOOK }, { (FC8) "regular", FC_WEIGHT_REGULAR }, { (FC8) "normal", FC_WEIGHT_NORMAL }, { (FC8) "medium", FC_WEIGHT_MEDIUM }, { (FC8) "demibold", FC_WEIGHT_DEMIBOLD }, { (FC8) "demi", FC_WEIGHT_DEMIBOLD }, { (FC8) "semibold", FC_WEIGHT_SEMIBOLD }, { (FC8) "extrabold", FC_WEIGHT_EXTRABOLD }, { (FC8) "superbold", FC_WEIGHT_EXTRABOLD }, { (FC8) "ultrabold", FC_WEIGHT_ULTRABOLD }, { (FC8) "bold", FC_WEIGHT_BOLD }, { (FC8) "ultrablack", FC_WEIGHT_ULTRABLACK }, { (FC8) "superblack", FC_WEIGHT_EXTRABLACK }, { (FC8) "extrablack", FC_WEIGHT_EXTRABLACK }, { (FC8) "num_fixed_sizes == 1) { BDF_PropertyRec prop; int rc; rc = FT_Get_BDF_Property (face, "PIXEL_SIZE", &prop); if (rc == 0 && prop.type == BDF_PROPERTY_TYPE_INTEGER) return (double) prop.u.integer; } #endif #if HAVE_FT_BITMAP_SIZE_Y_PPEM return (double) face->available_sizes[i].y_ppem / 64.0; #else return (double) face->available_sizes[i].height; #endif } static FcBool FcStringInPatternElement (FcPattern *pat, const char *elt, FcChar8 *string) { int e; FcChar8 *old; for (e = 0; FcPatternGetString (pat, elt, e, &old) == FcResultMatch; e++) if (!FcStrCmpIgnoreBlanksAndCase (old, string)) { return FcTrue; } return FcFalse; } static const FT_UShort platform_order[] = { TT_PLATFORM_MICROSOFT, TT_PLATFORM_APPLE_UNICODE, TT_PLATFORM_MACINTOSH, }; #define NUM_PLATFORM_ORDER (sizeof (platform_order) / sizeof (platform_order[0])) static const FT_UShort nameid_order[] = { #ifdef TT_NAME_ID_WWS_FAMILY TT_NAME_ID_WWS_FAMILY, #endif TT_NAME_ID_PREFERRED_FAMILY, TT_NAME_ID_FONT_FAMILY, TT_NAME_ID_MAC_FULL_NAME, TT_NAME_ID_FULL_NAME, #ifdef TT_NAME_ID_WWS_SUBFAMILY TT_NAME_ID_WWS_SUBFAMILY, #endif TT_NAME_ID_PREFERRED_SUBFAMILY, TT_NAME_ID_FONT_SUBFAMILY, TT_NAME_ID_TRADEMARK, TT_NAME_ID_MANUFACTURER, }; #define NUM_NAMEID_ORDER (sizeof (nameid_order) / sizeof (nameid_order[0])) FcPattern * FcFreeTypeQueryFace (const FT_Face face, const FcChar8 *file, int id, FcBlanks *blanks) { FcPattern *pat; int slant = -1; int weight = -1; int width = -1; FcBool decorative = FcFalse; int i; FcCharSet *cs; FcLangSet *ls; #if 0 FcChar8 *family = 0; #endif FcChar8 *complex_; const FcChar8 *foundry = 0; int spacing; TT_OS2 *os2; #if HAVE_FT_GET_PS_FONT_INFO PS_FontInfoRec psfontinfo; #endif #if HAVE_FT_GET_BDF_PROPERTY BDF_PropertyRec prop; #endif TT_Header *head; const FcChar8 *exclusiveLang = 0; FT_SfntName sname; FT_UInt snamei, snamec; int nfamily = 0; int nfamily_lang = 0; int nstyle = 0; int nstyle_lang = 0; int nfullname = 0; int nfullname_lang = 0; unsigned int p, n; int platform, nameid; FcChar8 *style = 0; int st; char psname[256]; const char *tmp; FcChar8 *hashstr = NULL; FT_Error err; FT_ULong len = 0, alen; pat = FcPatternCreate (); if (!pat) goto bail0; if (!FcPatternAddBool (pat, FC_OUTLINE, (face->face_flags & FT_FACE_FLAG_SCALABLE) != 0)) goto bail1; if (!FcPatternAddBool (pat, FC_SCALABLE, (face->face_flags & FT_FACE_FLAG_SCALABLE) != 0)) goto bail1; /* * Get the OS/2 table */ os2 = (TT_OS2 *) FT_Get_Sfnt_Table (face, ft_sfnt_os2); /* * Look first in the OS/2 table for the foundry, if * not found here, the various notices will be searched for * that information, either from the sfnt name tables or * the Postscript FontInfo dictionary. Finally, the * BDF properties will queried. */ if (os2 && os2->version >= 0x0001 && os2->version != 0xffff) foundry = FcVendorFoundry(os2->achVendID); if (FcDebug () & FC_DBG_SCANV) printf ("\n"); /* * Grub through the name table looking for family * and style names. FreeType makes quite a hash * of them */ snamec = FT_Get_Sfnt_Name_Count (face); for (p = 0; p <= NUM_PLATFORM_ORDER; p++) { if (p < NUM_PLATFORM_ORDER) platform = platform_order[p]; else platform = 0xffff; /* * Order nameids so preferred names appear first * in the resulting list */ for (n = 0; n < NUM_NAMEID_ORDER; n++) { nameid = nameid_order[n]; for (snamei = 0; snamei < snamec; snamei++) { FcChar8 *utf8, *pp; const FcChar8 *lang; const char *elt = 0, *eltlang = 0; int *np = 0, *nlangp = 0; size_t len; if (FT_Get_Sfnt_Name (face, snamei, &sname) != 0) continue; if (sname.name_id != nameid) continue; /* * Sort platforms in preference order, accepting * all other platforms last */ if (p < NUM_PLATFORM_ORDER) { if (sname.platform_id != platform) continue; } else { unsigned int sp; for (sp = 0; sp < NUM_PLATFORM_ORDER; sp++) if (sname.platform_id == platform_order[sp]) break; if (sp != NUM_PLATFORM_ORDER) continue; } utf8 = FcSfntNameTranscode (&sname); lang = FcSfntNameLanguage (&sname); if (!utf8) continue; switch (sname.name_id) { #ifdef TT_NAME_ID_WWS_FAMILY case TT_NAME_ID_WWS_FAMILY: #endif case TT_NAME_ID_PREFERRED_FAMILY: case TT_NAME_ID_FONT_FAMILY: #if 0 case TT_NAME_ID_UNIQUE_ID: #endif if (FcDebug () & FC_DBG_SCANV) printf ("found family (n %2d p %d e %d l 0x%04x) %s\n", sname.name_id, sname.platform_id, sname.encoding_id, sname.language_id, utf8); elt = FC_FAMILY; eltlang = FC_FAMILYLANG; np = &nfamily; nlangp = &nfamily_lang; break; case TT_NAME_ID_MAC_FULL_NAME: case TT_NAME_ID_FULL_NAME: if (FcDebug () & FC_DBG_SCANV) printf ("found full (n %2d p %d e %d l 0x%04x) %s\n", sname.name_id, sname.platform_id, sname.encoding_id, sname.language_id, utf8); elt = FC_FULLNAME; eltlang = FC_FULLNAMELANG; np = &nfullname; nlangp = &nfullname_lang; break; #ifdef TT_NAME_ID_WWS_SUBFAMILY case TT_NAME_ID_WWS_SUBFAMILY: #endif case TT_NAME_ID_PREFERRED_SUBFAMILY: case TT_NAME_ID_FONT_SUBFAMILY: if (utf8) { pp = utf8; while (*pp == ' ') pp++; len = strlen ((const char *) pp); memmove (utf8, pp, len + 1); pp = utf8 + len - 1; while (*pp == ' ') pp--; *(pp + 1) = 0; } if (FcDebug () & FC_DBG_SCANV) printf ("found style (n %2d p %d e %d l 0x%04x) %s\n", sname.name_id, sname.platform_id, sname.encoding_id, sname.language_id, utf8); elt = FC_STYLE; eltlang = FC_STYLELANG; np = &nstyle; nlangp = &nstyle_lang; break; case TT_NAME_ID_TRADEMARK: case TT_NAME_ID_MANUFACTURER: /* If the foundry wasn't found in the OS/2 table, look here */ if(!foundry) foundry = FcNoticeFoundry((FT_String *) utf8); break; } if (elt) { if (FcStringInPatternElement (pat, elt, utf8)) { free (utf8); continue; } /* add new element */ if (!FcPatternAddString (pat, elt, utf8)) { free (utf8); goto bail1; } free (utf8); if (lang) { /* pad lang list with 'xx' to line up with elt */ while (*nlangp < *np) { if (!FcPatternAddString (pat, eltlang, (FcChar8 *) "xx")) goto bail1; ++*nlangp; } if (!FcPatternAddString (pat, eltlang, lang)) goto bail1; ++*nlangp; } ++*np; } else free (utf8); } } } if (!nfamily && face->family_name && FcStrCmpIgnoreBlanksAndCase ((FcChar8 *) face->family_name, (FcChar8 *) "") != 0) { if (FcDebug () & FC_DBG_SCANV) printf ("using FreeType family \"%s\"\n", face->family_name); if (!FcPatternAddString (pat, FC_FAMILY, (FcChar8 *) face->family_name)) goto bail1; ++nfamily; } if (!nstyle && face->style_name && FcStrCmpIgnoreBlanksAndCase ((FcChar8 *) face->style_name, (FcChar8 *) "") != 0) { if (FcDebug () & FC_DBG_SCANV) printf ("using FreeType style \"%s\"\n", face->style_name); if (!FcPatternAddString (pat, FC_STYLE, (FcChar8 *) face->style_name)) goto bail1; ++nstyle; } if (!nfamily) { FcChar8 *start, *end; FcChar8 *family; start = (FcChar8 *) strrchr ((char *) file, '/'); if (start) start++; else start = (FcChar8 *) file; end = (FcChar8 *) strrchr ((char *) start, '.'); if (!end) end = start + strlen ((char *) start); /* freed below */ family = malloc (end - start + 1); strncpy ((char *) family, (char *) start, end - start); family[end - start] = '\0'; if (FcDebug () & FC_DBG_SCANV) printf ("using filename for family %s\n", family); if (!FcPatternAddString (pat, FC_FAMILY, family)) { free (family); goto bail1; } free (family); ++nfamily; } /* Add the PostScript name into the cache */ tmp = FT_Get_Postscript_Name (face); if (!tmp) { FcChar8 *family, *familylang = NULL; size_t len; int n = 0; /* Workaround when FT_Get_Postscript_Name didn't give any name. * try to find out the English family name and convert. */ while (FcPatternObjectGetString (pat, FC_FAMILYLANG_OBJECT, n, &familylang) == FcResultMatch) { if (FcStrCmp (familylang, (const FcChar8 *)"en") == 0) break; n++; familylang = NULL; } if (!familylang) n = 0; if (FcPatternObjectGetString (pat, FC_FAMILY_OBJECT, n, &family) != FcResultMatch) goto bail1; len = strlen ((const char *)family); /* the literal name in PostScript Language is limited to 127 characters though, * It is the architectural limit. so assuming 255 characters may works enough. */ for (i = 0; i < len && i < 255; i++) { /* those characters are not allowed to be the literal name in PostScript */ static const char exclusive_chars[] = "\x04()/<>[]{}\t\f\r\n "; if (strchr(exclusive_chars, family[i]) != NULL) psname[i] = '-'; else psname[i] = family[i]; } psname[i] = 0; } else { strcpy (psname, tmp); } if (!FcPatternAddString (pat, FC_POSTSCRIPT_NAME, (const FcChar8 *)psname)) goto bail1; if (!FcPatternAddString (pat, FC_FILE, file)) goto bail1; if (!FcPatternAddInteger (pat, FC_INDEX, id)) goto bail1; #if 0 /* * don't even try this -- CJK 'monospace' fonts are really * dual width, and most other fonts don't bother to set * the attribute. Sigh. */ if ((face->face_flags & FT_FACE_FLAG_FIXED_WIDTH) != 0) if (!FcPatternAddInteger (pat, FC_SPACING, FC_MONO)) goto bail1; #endif /* * Find the font revision (if available) */ head = (TT_Header *) FT_Get_Sfnt_Table (face, ft_sfnt_head); if (head) { if (!FcPatternAddInteger (pat, FC_FONTVERSION, head->Font_Revision)) goto bail1; } else { if (!FcPatternAddInteger (pat, FC_FONTVERSION, 0)) goto bail1; } if (os2 && os2->version >= 0x0001 && os2->version != 0xffff) { for (i = 0; i < NUM_CODE_PAGE_RANGE; i++) { FT_ULong bits; int bit; if (FcCodePageRange[i].bit < 32) { bits = os2->ulCodePageRange1; bit = FcCodePageRange[i].bit; } else { bits = os2->ulCodePageRange2; bit = FcCodePageRange[i].bit - 32; } if (bits & (1 << bit)) { /* * If the font advertises support for multiple * "exclusive" languages, then include support * for any language found to have coverage */ if (exclusiveLang) { exclusiveLang = 0; break; } exclusiveLang = FcCodePageRange[i].lang; } } } if (os2 && os2->version != 0xffff) { if (os2->usWeightClass == 0) ; else if (os2->usWeightClass < 150) weight = FC_WEIGHT_THIN; else if (os2->usWeightClass < 250) weight = FC_WEIGHT_EXTRALIGHT; else if (os2->usWeightClass < 350) weight = FC_WEIGHT_LIGHT; else if (os2->usWeightClass < 450) weight = FC_WEIGHT_REGULAR; else if (os2->usWeightClass < 550) weight = FC_WEIGHT_MEDIUM; else if (os2->usWeightClass < 650) weight = FC_WEIGHT_SEMIBOLD; else if (os2->usWeightClass < 750) weight = FC_WEIGHT_BOLD; else if (os2->usWeightClass < 850) weight = FC_WEIGHT_EXTRABOLD; else if (os2->usWeightClass < 925) weight = FC_WEIGHT_BLACK; else if (os2->usWeightClass < 1000) weight = FC_WEIGHT_EXTRABLACK; if ((FcDebug() & FC_DBG_SCANV) && weight != -1) printf ("\tos2 weight class %d maps to weight %d\n", os2->usWeightClass, weight); switch (os2->usWidthClass) { case 1: width = FC_WIDTH_ULTRACONDENSED; break; case 2: width = FC_WIDTH_EXTRACONDENSED; break; case 3: width = FC_WIDTH_CONDENSED; break; case 4: width = FC_WIDTH_SEMICONDENSED; break; case 5: width = FC_WIDTH_NORMAL; break; case 6: width = FC_WIDTH_SEMIEXPANDED; break; case 7: width = FC_WIDTH_EXPANDED; break; case 8: width = FC_WIDTH_EXTRAEXPANDED; break; case 9: width = FC_WIDTH_ULTRAEXPANDED; break; } if ((FcDebug() & FC_DBG_SCANV) && width != -1) printf ("\tos2 width class %d maps to width %d\n", os2->usWidthClass, width); } if (os2 && (complex_ = FcFontCapabilities(face))) { if (!FcPatternAddString (pat, FC_CAPABILITY, complex_)) { free (complex_); goto bail1; } free (complex_); } /* * Type 1: Check for FontInfo dictionary information * Code from g2@magestudios.net (Gerard Escalante) */ #if HAVE_FT_GET_PS_FONT_INFO if (FT_Get_PS_Font_Info(face, &psfontinfo) == 0) { if (weight == -1 && psfontinfo.weight) { weight = FcIsWeight ((FcChar8 *) psfontinfo.weight); if (FcDebug() & FC_DBG_SCANV) printf ("\tType1 weight %s maps to %d\n", psfontinfo.weight, weight); } #if 0 /* * Don't bother with italic_angle; FreeType already extracts that * information for us and sticks it into style_flags */ if (psfontinfo.italic_angle) slant = FC_SLANT_ITALIC; else slant = FC_SLANT_ROMAN; #endif if(!foundry) foundry = FcNoticeFoundry(psfontinfo.notice); } #endif /* HAVE_FT_GET_PS_FONT_INFO */ #if HAVE_FT_GET_BDF_PROPERTY /* * Finally, look for a FOUNDRY BDF property if no other * mechanism has managed to locate a foundry */ if (!foundry) { int rc; rc = FT_Get_BDF_Property(face, "FOUNDRY", &prop); if(rc == 0 && prop.type == BDF_PROPERTY_TYPE_ATOM) foundry = (FcChar8 *) prop.u.atom; } if (width == -1) { if (FT_Get_BDF_Property(face, "RELATIVE_SETWIDTH", &prop) == 0 && (prop.type == BDF_PROPERTY_TYPE_INTEGER || prop.type == BDF_PROPERTY_TYPE_CARDINAL)) { FT_Int32 value; if (prop.type == BDF_PROPERTY_TYPE_INTEGER) value = prop.u.integer; else value = (FT_Int32) prop.u.cardinal; switch ((value + 5) / 10) { case 1: width = FC_WIDTH_ULTRACONDENSED; break; case 2: width = FC_WIDTH_EXTRACONDENSED; break; case 3: width = FC_WIDTH_CONDENSED; break; case 4: width = FC_WIDTH_SEMICONDENSED; break; case 5: width = FC_WIDTH_NORMAL; break; case 6: width = FC_WIDTH_SEMIEXPANDED; break; case 7: width = FC_WIDTH_EXPANDED; break; case 8: width = FC_WIDTH_EXTRAEXPANDED; break; case 9: width = FC_WIDTH_ULTRAEXPANDED; break; } } if (width == -1 && FT_Get_BDF_Property (face, "SETWIDTH_NAME", &prop) == 0 && prop.type == BDF_PROPERTY_TYPE_ATOM && prop.u.atom != NULL) { width = FcIsWidth ((FcChar8 *) prop.u.atom); if (FcDebug () & FC_DBG_SCANV) printf ("\tsetwidth %s maps to %d\n", prop.u.atom, width); } } #endif /* * Look for weight, width and slant names in the style value */ for (st = 0; FcPatternGetString (pat, FC_STYLE, st, &style) == FcResultMatch; st++) { if (weight == -1) { weight = FcContainsWeight (style); if (FcDebug() & FC_DBG_SCANV) printf ("\tStyle %s maps to weight %d\n", style, weight); } if (width == -1) { width = FcContainsWidth (style); if (FcDebug() & FC_DBG_SCANV) printf ("\tStyle %s maps to width %d\n", style, width); } if (slant == -1) { slant = FcContainsSlant (style); if (FcDebug() & FC_DBG_SCANV) printf ("\tStyle %s maps to slant %d\n", style, slant); } if (decorative == FcFalse) { decorative = FcContainsDecorative (style) > 0; if (FcDebug() & FC_DBG_SCANV) printf ("\tStyle %s maps to decorative %d\n", style, decorative); } } /* * Pull default values from the FreeType flags if more * specific values not found above */ if (slant == -1) { slant = FC_SLANT_ROMAN; if (face->style_flags & FT_STYLE_FLAG_ITALIC) slant = FC_SLANT_ITALIC; } if (weight == -1) { weight = FC_WEIGHT_MEDIUM; if (face->style_flags & FT_STYLE_FLAG_BOLD) weight = FC_WEIGHT_BOLD; } if (width == -1) width = FC_WIDTH_NORMAL; if (foundry == 0) foundry = (FcChar8 *) "unknown"; if (!FcPatternAddInteger (pat, FC_SLANT, slant)) goto bail1; if (!FcPatternAddInteger (pat, FC_WEIGHT, weight)) goto bail1; if (!FcPatternAddInteger (pat, FC_WIDTH, width)) goto bail1; if (!FcPatternAddString (pat, FC_FOUNDRY, foundry)) goto bail1; 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 */ cs = FcFreeTypeCharSetAndSpacing (face, blanks, &spacing); if (!cs) 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) { 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")) spacing = FC_MONO; else if(!strcmp(prop.u.atom, "p") || !strcmp(prop.u.atom, "P")) spacing = FC_PROPORTIONAL; } #endif /* * Skip over PCF fonts that have no encoded characters; they're * usually just Unicode fonts transcoded to some legacy encoding * FT forces us to approximate whether a font is a PCF font * or not by whether it has any BDF properties. Try PIXEL_SIZE; * I don't know how to get a list of BDF properties on the font. -PL */ if (FcCharSetCount (cs) == 0) { #if HAVE_FT_GET_BDF_PROPERTY if(FT_Get_BDF_Property(face, "PIXEL_SIZE", &prop) == 0) goto bail2; #endif } if (!FcPatternAddCharSet (pat, FC_CHARSET, cs)) goto bail2; ls = FcFreeTypeLangSet (cs, exclusiveLang); if (!ls) goto bail2; if (!FcPatternAddLangSet (pat, FC_LANG, ls)) { FcLangSetDestroy (ls); goto bail2; } FcLangSetDestroy (ls); if (spacing != FC_PROPORTIONAL) if (!FcPatternAddInteger (pat, FC_SPACING, spacing)) goto bail2; if (!(face->face_flags & FT_FACE_FLAG_SCALABLE)) { for (i = 0; i < face->num_fixed_sizes; i++) if (!FcPatternAddDouble (pat, FC_PIXEL_SIZE, FcGetPixelSize (face, i))) goto bail2; if (!FcPatternAddBool (pat, FC_ANTIALIAS, FcFalse)) goto bail2; } #if HAVE_FT_GET_X11_FONT_FORMAT /* * Use the (not well documented or supported) X-specific function * from FreeType to figure out the font format */ { const char *font_format = FT_Get_X11_Font_Format (face); if (font_format) if (!FcPatternAddString (pat, FC_FONTFORMAT, (FcChar8 *) font_format)) goto bail2; } #endif /* * Drop our reference to the charset */ FcCharSetDestroy (cs); return pat; bail2: FcCharSetDestroy (cs); bail1: FcPatternDestroy (pat); bail0: return NULL; } FcPattern * FcFreeTypeQuery(const FcChar8 *file, int id, FcBlanks *blanks, int *count) { FT_Face face; FT_Library ftLibrary; FcPattern *pat = NULL; if (FT_Init_FreeType (&ftLibrary)) return NULL; if (FT_New_Face (ftLibrary, (char *) file, id, &face)) goto bail; *count = face->num_faces; pat = FcFreeTypeQueryFace (face, file, id, blanks); FT_Done_Face (face); bail: FT_Done_FreeType (ftLibrary); return pat; } /* * For our purposes, this approximation is sufficient */ #if !HAVE_FT_GET_NEXT_CHAR #define FT_Get_Next_Char(face, ucs4, gi) ((ucs4) >= 0xffffff ? \ (*(gi) = 0), 0 : \ (*(gi) = 1), (ucs4) + 1) #warning "No FT_Get_Next_Char: Please install freetype version 2.1.0 or newer" #endif typedef struct _FcCharEnt { FcChar16 bmp; unsigned char encode; } FcCharEnt; struct _FcCharMap { const FcCharEnt *ent; int nent; }; typedef struct _FcFontDecode { FT_Encoding encoding; const FcCharMap *map; FcChar32 max; } FcFontDecode; static const FcCharEnt AdobeSymbolEnt[] = { { 0x0020, 0x20 }, /* SPACE # space */ { 0x0021, 0x21 }, /* EXCLAMATION MARK # exclam */ { 0x0023, 0x23 }, /* NUMBER SIGN # numbersign */ { 0x0025, 0x25 }, /* PERCENT SIGN # percent */ { 0x0026, 0x26 }, /* AMPERSAND # ampersand */ { 0x0028, 0x28 }, /* LEFT PARENTHESIS # parenleft */ { 0x0029, 0x29 }, /* RIGHT PARENTHESIS # parenright */ { 0x002B, 0x2B }, /* PLUS SIGN # plus */ { 0x002C, 0x2C }, /* COMMA # comma */ { 0x002E, 0x2E }, /* FULL STOP # period */ { 0x002F, 0x2F }, /* SOLIDUS # slash */ { 0x0030, 0x30 }, /* DIGIT ZERO # zero */ { 0x0031, 0x31 }, /* DIGIT ONE # one */ { 0x0032, 0x32 }, /* DIGIT TWO # two */ { 0x0033, 0x33 }, /* DIGIT THREE # three */ { 0x0034, 0x34 }, /* DIGIT FOUR # four */ { 0x0035, 0x35 }, /* DIGIT FIVE # five */ { 0x0036, 0x36 }, /* DIGIT SIX # six */ { 0x0037, 0x37 }, /* DIGIT SEVEN # seven */ { 0x0038, 0x38 }, /* DIGIT EIGHT # eight */ { 0x0039, 0x39 }, /* DIGIT NINE # nine */ { 0x003A, 0x3A }, /* COLON # colon */ { 0x003B, 0x3B }, /* SEMICOLON # semicolon */ { 0x003C, 0x3C }, /* LESS-THAN SIGN # less */ { 0x003D, 0x3D }, /* EQUALS SIGN # equal */ { 0x003E, 0x3E }, /* GREATER-THAN SIGN # greater */ { 0x003F, 0x3F }, /* QUESTION MARK # question */ { 0x005B, 0x5B }, /* LEFT SQUARE BRACKET # bracketleft */ { 0x005D, 0x5D }, /* RIGHT SQUARE BRACKET # bracketright */ { 0x005F, 0x5F }, /* LOW LINE # underscore */ { 0x007B, 0x7B }, /* LEFT CURLY BRACKET # braceleft */ { 0x007C, 0x7C }, /* VERTICAL LINE # bar */ { 0x007D, 0x7D }, /* RIGHT CURLY BRACKET # braceright */ { 0x00A0, 0x20 }, /* NO-BREAK SPACE # space */ { 0x00AC, 0xD8 }, /* NOT SIGN # logicalnot */ { 0x00B0, 0xB0 }, /* DEGREE SIGN # degree */ { 0x00B1, 0xB1 }, /* PLUS-MINUS SIGN # plusminus */ { 0x00B5, 0x6D }, /* MICRO SIGN # mu */ { 0x00D7, 0xB4 }, /* MULTIPLICATION SIGN # multiply */ { 0x00F7, 0xB8 }, /* DIVISION SIGN # divide */ { 0x0192, 0xA6 }, /* LATIN SMALL LETTER F WITH HOOK # florin */ { 0x0391, 0x41 }, /* GREEK CAPITAL LETTER ALPHA # Alpha */ { 0x0392, 0x42 }, /* GREEK CAPITAL LETTER BETA # Beta */ { 0x0393, 0x47 }, /* GREEK CAPITAL LETTER GAMMA # Gamma */ { 0x0394, 0x44 }, /* GREEK CAPITAL LETTER DELTA # Delta */ { 0x0395, 0x45 }, /* GREEK CAPITAL LETTER EPSILON # Epsilon */ { 0x0396, 0x5A }, /* GREEK CAPITAL LETTER ZETA # Zeta */ { 0x0397, 0x48 }, /* GREEK CAPITAL LETTER ETA # Eta */ { 0x0398, 0x51 }, /* GREEK CAPITAL LETTER THETA # Theta */ { 0x0399, 0x49 }, /* GREEK CAPITAL LETTER IOTA # Iota */ { 0x039A, 0x4B }, /* GREEK CAPITAL LETTER KAPPA # Kappa */ { 0x039B, 0x4C }, /* GREEK CAPITAL LETTER LAMDA # Lambda */ { 0x039C, 0x4D }, /* GREEK CAPITAL LETTER MU # Mu */ { 0x039D, 0x4E }, /* GREEK CAPITAL LETTER NU # Nu */ { 0x039E, 0x58 }, /* GREEK CAPITAL LETTER XI # Xi */ { 0x039F, 0x4F }, /* GREEK CAPITAL LETTER OMICRON # Omicron */ { 0x03A0, 0x50 }, /* GREEK CAPITAL LETTER PI # Pi */ { 0x03A1, 0x52 }, /* GREEK CAPITAL LETTER RHO # Rho */ { 0x03A3, 0x53 }, /* GREEK CAPITAL LETTER SIGMA # Sigma */ { 0x03A4, 0x54 }, /* GREEK CAPITAL LETTER TAU # Tau */ { 0x03A5, 0x55 }, /* GREEK CAPITAL LETTER UPSILON # Upsilon */ { 0x03A6, 0x46 }, /* GREEK CAPITAL LETTER PHI # Phi */ { 0x03A7, 0x43 }, /* GREEK CAPITAL LETTER CHI # Chi */ { 0x03A8, 0x59 }, /* GREEK CAPITAL LETTER PSI # Psi */ { 0x03A9, 0x57 }, /* GREEK CAPITAL LETTER OMEGA # Omega */ { 0x03B1, 0x61 }, /* GREEK SMALL LETTER ALPHA # alpha */ { 0x03B2, 0x62 }, /* GREEK SMALL LETTER BETA # beta */ { 0x03B3, 0x67 }, /* GREEK SMALL LETTER GAMMA # gamma */ { 0x03B4, 0x64 }, /* GREEK SMALL LETTER DELTA # delta */ { 0x03B5, 0x65 }, /* GREEK SMALL LETTER EPSILON # epsilon */ { 0x03B6, 0x7A }, /* GREEK SMALL LETTER ZETA # zeta */ { 0x03B7, 0x68 }, /* GREEK SMALL LETTER ETA # eta */ { 0x03B8, 0x71 }, /* GREEK SMALL LETTER THETA # theta */ { 0x03B9, 0x69 }, /* GREEK SMALL LETTER IOTA # iota */ { 0x03BA, 0x6B }, /* GREEK SMALL LETTER KAPPA # kappa */ { 0x03BB, 0x6C }, /* GREEK SMALL LETTER LAMDA # lambda */ { 0x03BC, 0x6D }, /* GREEK SMALL LETTER MU # mu */ { 0x03BD, 0x6E }, /* GREEK SMALL LETTER NU # nu */ { 0x03BE, 0x78 }, /* GREEK SMALL LETTER XI # xi */ { 0x03BF, 0x6F }, /* GREEK SMALL LETTER OMICRON # omicron */ { 0x03C0, 0x70 }, /* GREEK SMALL LETTER PI # pi */ { 0x03C1, 0x72 }, /* GREEK SMALL LETTER RHO # rho */ { 0x03C2, 0x56 }, /* GREEK SMALL LETTER FINAL SIGMA # sigma1 */ { 0x03C3, 0x73 }, /* GREEK SMALL LETTER SIGMA # sigma */ { 0x03C4, 0x74 }, /* GREEK SMALL LETTER TAU # tau */ { 0x03C5, 0x75 }, /* GREEK SMALL LETTER UPSILON # upsilon */ { 0x03C6, 0x66 }, /* GREEK SMALL LETTER PHI # phi */ { 0x03C7, 0x63 }, /* GREEK SMALL LETTER CHI # chi */ { 0x03C8, 0x79 }, /* GREEK SMALL LETTER PSI # psi */ { 0x03C9, 0x77 }, /* GREEK SMALL LETTER OMEGA # omega */ { 0x03D1, 0x4A }, /* GREEK THETA SYMBOL # theta1 */ { 0x03D2, 0xA1 }, /* GREEK UPSILON WITH HOOK SYMBOL # Upsilon1 */ { 0x03D5, 0x6A }, /* GREEK PHI SYMBOL # phi1 */ { 0x03D6, 0x76 }, /* GREEK PI SYMBOL # omega1 */ { 0x2022, 0xB7 }, /* BULLET # bullet */ { 0x2026, 0xBC }, /* HORIZONTAL ELLIPSIS # ellipsis */ { 0x2032, 0xA2 }, /* PRIME # minute */ { 0x2033, 0xB2 }, /* DOUBLE PRIME # second */ { 0x2044, 0xA4 }, /* FRACTION SLASH # fraction */ { 0x20AC, 0xA0 }, /* EURO SIGN # Euro */ { 0x2111, 0xC1 }, /* BLACK-LETTER CAPITAL I # Ifraktur */ { 0x2118, 0xC3 }, /* SCRIPT CAPITAL P # weierstrass */ { 0x211C, 0xC2 }, /* BLACK-LETTER CAPITAL R # Rfraktur */ { 0x2126, 0x57 }, /* OHM SIGN # Omega */ { 0x2135, 0xC0 }, /* ALEF SYMBOL # aleph */ { 0x2190, 0xAC }, /* LEFTWARDS ARROW # arrowleft */ { 0x2191, 0xAD }, /* UPWARDS ARROW # arrowup */ { 0x2192, 0xAE }, /* RIGHTWARDS ARROW # arrowright */ { 0x2193, 0xAF }, /* DOWNWARDS ARROW # arrowdown */ { 0x2194, 0xAB }, /* LEFT RIGHT ARROW # arrowboth */ { 0x21B5, 0xBF }, /* DOWNWARDS ARROW WITH CORNER LEFTWARDS # carriagereturn */ { 0x21D0, 0xDC }, /* LEFTWARDS DOUBLE ARROW # arrowdblleft */ { 0x21D1, 0xDD }, /* UPWARDS DOUBLE ARROW # arrowdblup */ { 0x21D2, 0xDE }, /* RIGHTWARDS DOUBLE ARROW # arrowdblright */ { 0x21D3, 0xDF }, /* DOWNWARDS DOUBLE ARROW # arrowdbldown */ { 0x21D4, 0xDB }, /* LEFT RIGHT DOUBLE ARROW # arrowdblboth */ { 0x2200, 0x22 }, /* FOR ALL # universal */ { 0x2202, 0xB6 }, /* PARTIAL DIFFERENTIAL # partialdiff */ { 0x2203, 0x24 }, /* THERE EXISTS # existential */ { 0x2205, 0xC6 }, /* EMPTY SET # emptyset */ { 0x2206, 0x44 }, /* INCREMENT # Delta */ { 0x2207, 0xD1 }, /* NABLA # gradient */ { 0x2208, 0xCE }, /* ELEMENT OF # element */ { 0x2209, 0xCF }, /* NOT AN ELEMENT OF # notelement */ { 0x220B, 0x27 }, /* CONTAINS AS MEMBER # suchthat */ { 0x220F, 0xD5 }, /* N-ARY PRODUCT # product */ { 0x2211, 0xE5 }, /* N-ARY SUMMATION # summation */ { 0x2212, 0x2D }, /* MINUS SIGN # minus */ { 0x2215, 0xA4 }, /* DIVISION SLASH # fraction */ { 0x2217, 0x2A }, /* ASTERISK OPERATOR # asteriskmath */ { 0x221A, 0xD6 }, /* SQUARE ROOT # radical */ { 0x221D, 0xB5 }, /* PROPORTIONAL TO # proportional */ { 0x221E, 0xA5 }, /* INFINITY # infinity */ { 0x2220, 0xD0 }, /* ANGLE # angle */ { 0x2227, 0xD9 }, /* LOGICAL AND # logicaland */ { 0x2228, 0xDA }, /* LOGICAL OR # logicalor */ { 0x2229, 0xC7 }, /* INTERSECTION # intersection */ { 0x222A, 0xC8 }, /* UNION # union */ { 0x222B, 0xF2 }, /* INTEGRAL # integral */ { 0x2234, 0x5C }, /* THEREFORE # therefore */ { 0x223C, 0x7E }, /* TILDE OPERATOR # similar */ { 0x2245, 0x40 }, /* APPROXIMATELY EQUAL TO # congruent */ { 0x2248, 0xBB }, /* ALMOST EQUAL TO # approxequal */ { 0x2260, 0xB9 }, /* NOT EQUAL TO # notequal */ { 0x2261, 0xBA }, /* IDENTICAL TO # equivalence */ { 0x2264, 0xA3 }, /* LESS-THAN OR EQUAL TO # lessequal */ { 0x2265, 0xB3 }, /* GREATER-THAN OR EQUAL TO # greaterequal */ { 0x2282, 0xCC }, /* SUBSET OF # propersubset */ { 0x2283, 0xC9 }, /* SUPERSET OF # propersuperset */ { 0x2284, 0xCB }, /* NOT A SUBSET OF # notsubset */ { 0x2286, 0xCD }, /* SUBSET OF OR EQUAL TO # reflexsubset */ { 0x2287, 0xCA }, /* SUPERSET OF OR EQUAL TO # reflexsuperset */ { 0x2295, 0xC5 }, /* CIRCLED PLUS # circleplus */ { 0x2297, 0xC4 }, /* CIRCLED TIMES # circlemultiply */ { 0x22A5, 0x5E }, /* UP TACK # perpendicular */ { 0x22C5, 0xD7 }, /* DOT OPERATOR # dotmath */ { 0x2320, 0xF3 }, /* TOP HALF INTEGRAL # integraltp */ { 0x2321, 0xF5 }, /* BOTTOM HALF INTEGRAL # integralbt */ { 0x2329, 0xE1 }, /* LEFT-POINTING ANGLE BRACKET # angleleft */ { 0x232A, 0xF1 }, /* RIGHT-POINTING ANGLE BRACKET # angleright */ { 0x25CA, 0xE0 }, /* LOZENGE # lozenge */ { 0x2660, 0xAA }, /* BLACK SPADE SUIT # spade */ { 0x2663, 0xA7 }, /* BLACK CLUB SUIT # club */ { 0x2665, 0xA9 }, /* BLACK HEART SUIT # heart */ { 0x2666, 0xA8 }, /* BLACK DIAMOND SUIT # diamond */ { 0xF6D9, 0xD3 }, /* COPYRIGHT SIGN SERIF # copyrightserif (CUS) */ { 0xF6DA, 0xD2 }, /* REGISTERED SIGN SERIF # registerserif (CUS) */ { 0xF6DB, 0xD4 }, /* TRADE MARK SIGN SERIF # trademarkserif (CUS) */ { 0xF8E5, 0x60 }, /* RADICAL EXTENDER # radicalex (CUS) */ { 0xF8E6, 0xBD }, /* VERTICAL ARROW EXTENDER # arrowvertex (CUS) */ { 0xF8E7, 0xBE }, /* HORIZONTAL ARROW EXTENDER # arrowhorizex (CUS) */ { 0xF8E8, 0xE2 }, /* REGISTERED SIGN SANS SERIF # registersans (CUS) */ { 0xF8E9, 0xE3 }, /* COPYRIGHT SIGN SANS SERIF # copyrightsans (CUS) */ { 0xF8EA, 0xE4 }, /* TRADE MARK SIGN SANS SERIF # trademarksans (CUS) */ { 0xF8EB, 0xE6 }, /* LEFT PAREN TOP # parenlefttp (CUS) */ { 0xF8EC, 0xE7 }, /* LEFT PAREN EXTENDER # parenleftex (CUS) */ { 0xF8ED, 0xE8 }, /* LEFT PAREN BOTTOM # parenleftbt (CUS) */ { 0xF8EE, 0xE9 }, /* LEFT SQUARE BRACKET TOP # bracketlefttp (CUS) */ { 0xF8EF, 0xEA }, /* LEFT SQUARE BRACKET EXTENDER # bracketleftex (CUS) */ { 0xF8F0, 0xEB }, /* LEFT SQUARE BRACKET BOTTOM # bracketleftbt (CUS) */ { 0xF8F1, 0xEC }, /* LEFT CURLY BRACKET TOP # bracelefttp (CUS) */ { 0xF8F2, 0xED }, /* LEFT CURLY BRACKET MID # braceleftmid (CUS) */ { 0xF8F3, 0xEE }, /* LEFT CURLY BRACKET BOTTOM # braceleftbt (CUS) */ { 0xF8F4, 0xEF }, /* CURLY BRACKET EXTENDER # braceex (CUS) */ { 0xF8F5, 0xF4 }, /* INTEGRAL EXTENDER # integralex (CUS) */ { 0xF8F6, 0xF6 }, /* RIGHT PAREN TOP # parenrighttp (CUS) */ { 0xF8F7, 0xF7 }, /* RIGHT PAREN EXTENDER # parenrightex (CUS) */ { 0xF8F8, 0xF8 }, /* RIGHT PAREN BOTTOM # parenrightbt (CUS) */ { 0xF8F9, 0xF9 }, /* RIGHT SQUARE BRACKET TOP # bracketrighttp (CUS) */ { 0xF8FA, 0xFA }, /* RIGHT SQUARE BRACKET EXTENDER # bracketrightex (CUS) */ { 0xF8FB, 0xFB }, /* RIGHT SQUARE BRACKET BOTTOM # bracketrightbt (CUS) */ { 0xF8FC, 0xFC }, /* RIGHT CURLY BRACKET TOP # bracerighttp (CUS) */ { 0xF8FD, 0xFD }, /* RIGHT CURLY BRACKET MID # bracerightmid (CUS) */ { 0xF8FE, 0xFE }, /* RIGHT CURLY BRACKET BOTTOM # bracerightbt (CUS) */ }; static const 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" static FcChar32 FcHashGlyphName (const FcChar8 *name) { FcChar32 h = 0; FcChar8 c; while ((c = *name++)) { h = ((h << 1) | (h >> 31)) ^ c; } return h; } #if HAVE_FT_HAS_PS_GLYPH_NAMES /* * Use Type1 glyph names for fonts which have reliable names * and which export an Adobe Custom mapping */ static FcBool FcFreeTypeUseNames (FT_Face face) { FT_Int map; if (!FT_Has_PS_Glyph_Names (face)) return FcFalse; for (map = 0; map < face->num_charmaps; map++) if (face->charmaps[map]->encoding == ft_encoding_adobe_custom) return FcTrue; return FcFalse; } static const FcChar8 * FcUcs4ToGlyphName (FcChar32 ucs4) { int i = (int) (ucs4 % FC_GLYPHNAME_HASH); int r = 0; FcGlyphId gn; while ((gn = _fc_ucs_to_name[i]) != -1) { if (_fc_glyph_names[gn].ucs == ucs4) return _fc_glyph_names[gn].name; if (!r) { r = (int) (ucs4 % FC_GLYPHNAME_REHASH); if (!r) r = 1; } i += r; if (i >= FC_GLYPHNAME_HASH) i -= FC_GLYPHNAME_HASH; } return 0; } static FcChar32 FcGlyphNameToUcs4 (FcChar8 *name) { FcChar32 h = FcHashGlyphName (name); int i = (int) (h % FC_GLYPHNAME_HASH); int r = 0; FcGlyphId gn; while ((gn = _fc_name_to_ucs[i]) != -1) { if (!strcmp ((char *) name, (char *) _fc_glyph_names[gn].name)) return _fc_glyph_names[gn].ucs; if (!r) { r = (int) (h % FC_GLYPHNAME_REHASH); if (!r) r = 1; } i += r; if (i >= FC_GLYPHNAME_HASH) i -= FC_GLYPHNAME_HASH; } return 0xffff; } /* * Work around a bug in some FreeType versions which fail * to correctly bounds check glyph name buffers and overwrite * the stack. As Postscript names have a limit of 127 characters, * this should be sufficient. */ #if FC_GLYPHNAME_MAXLEN < 127 # define FC_GLYPHNAME_BUFLEN 127 #else # define FC_GLYPHNAME_BUFLEN FC_GLYPHNAME_MAXLEN #endif /* * Search through a font for a glyph by name. This is * currently a linear search as there doesn't appear to be * any defined order within the font */ static FT_UInt FcFreeTypeGlyphNameIndex (FT_Face face, const FcChar8 *name) { FT_UInt gindex; FcChar8 name_buf[FC_GLYPHNAME_BUFLEN + 2]; for (gindex = 0; gindex < (FT_UInt) face->num_glyphs; gindex++) { if (FT_Get_Glyph_Name (face, gindex, name_buf, FC_GLYPHNAME_BUFLEN+1) == 0) if (!strcmp ((char *) name, (char *) name_buf)) return gindex; } return 0; } #endif /* * Map a UCS4 glyph to a glyph index. Use all available encoding * tables to try and find one that works. This information is expected * to be cached by higher levels, so performance isn't critical */ FT_UInt FcFreeTypeCharIndex (FT_Face face, FcChar32 ucs4) { int initial, offset, decode; FT_UInt glyphindex; FcChar32 charcode; int p; initial = 0; if (!face) return 0; /* * Find the current encoding */ if (face->charmap) { for (; initial < NUM_DECODE; initial++) 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 != fcFontDecoders[decode].encoding) if (FT_Select_Charmap (face, fcFontDecoders[decode].encoding) != 0) continue; if (fcFontDecoders[decode].map) { charcode = FcFreeTypeUcs4ToPrivate (ucs4, fcFontDecoders[decode].map); if (charcode == ~0U) continue; } else charcode = ucs4; glyphindex = FT_Get_Char_Index (face, (FT_ULong) charcode); if (glyphindex) return glyphindex; } #if HAVE_FT_HAS_PS_GLYPH_NAMES /* * Check postscript name table if present */ if (FcFreeTypeUseNames (face)) { const FcChar8 *name = FcUcs4ToGlyphName (ucs4); if (name) { glyphindex = FcFreeTypeGlyphNameIndex (face, name); if (glyphindex) return glyphindex; } } #endif return 0; } static FcBool FcFreeTypeCheckGlyph (FT_Face face, FcChar32 ucs4, FT_UInt glyph, FcBlanks *blanks, FT_Pos *advance, FcBool using_strike) { FT_Int load_flags = FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH | FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING; FT_GlyphSlot slot; if (using_strike) load_flags &= ~FT_LOAD_NO_SCALE; /* * When using scalable fonts, only report those glyphs * which can be scaled; otherwise those fonts will * only be available at some sizes, and never when * transformed. Avoid this by simply reporting bitmap-only * glyphs as missing */ if (face->face_flags & FT_FACE_FLAG_SCALABLE) load_flags |= FT_LOAD_NO_BITMAP; if (FT_Load_Glyph (face, glyph, load_flags)) return FcFalse; slot = face->glyph; if (!glyph) return FcFalse; *advance = slot->metrics.horiAdvance; switch ((int) slot->format) { case ft_glyph_format_bitmap: /* * Bitmaps are assumed to be reasonable; if * this proves to be a rash assumption, this * code can be easily modified */ return FcTrue; case ft_glyph_format_outline: /* * Glyphs with contours are always OK */ if (slot->outline.n_contours != 0) return FcTrue; /* * Glyphs with no contours are only OK if * they're members of the Blanks set specified * in the configuration. If blanks isn't set, * then allow any glyph to be blank */ if (!blanks || FcBlanksIsMember (blanks, ucs4)) return FcTrue; /* fall through ... */ default: break; } return FcFalse; } #define APPROXIMATELY_EQUAL(x,y) (FC_ABS ((x) - (y)) <= FC_MAX (FC_ABS (x), FC_ABS (y)) / 33) static FcCharSet * FcFreeTypeCharSetAndSpacingForSize (FT_Face face, FcBlanks *blanks, int *spacing, FT_Int strike_index) { FcChar32 page, off, ucs4; #ifdef CHECK FcChar32 font_max = 0; #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; FcBool using_strike = FcFalse; fcs = FcCharSetCreate (); if (!fcs) goto bail0; #if HAVE_FT_SELECT_SIZE if (strike_index >= 0) { if (FT_Select_Size (face, strike_index) != FT_Err_Ok) goto bail1; using_strike = FcTrue; } #endif #ifdef CHECK printf ("Family %s style %s\n", face->family_name, face->style_name); #endif for (o = 0; o < NUM_DECODE; o++) { 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; ucs4 = FT_Get_First_Char (face, &glyph); while (glyph != 0) { if (FcFreeTypeCheckGlyph (face, ucs4, glyph, blanks, &advance, using_strike)) { 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; } } if ((ucs4 >> 8) != page) { page = (ucs4 >> 8); leaf = FcCharSetFindLeafCreate (fcs, ucs4); if (!leaf) goto bail1; } off = ucs4 & 0xff; leaf->map[off >> 5] |= (1 << (off & 0x1f)); #ifdef CHECK if (ucs4 > font_max) font_max = ucs4; #endif } ucs4 = FT_Get_Next_Char (face, ucs4, &glyph); } #ifdef CHECK for (ucs4 = 0; ucs4 < 0x10000; ucs4++) { FcBool FT_Has, FC_Has; FT_Has = FT_Get_Char_Index (face, ucs4) != 0; FC_Has = FcCharSetHasChar (fcs, ucs4); if (FT_Has != FC_Has) { printf ("0x%08x FT says %d FC says %d\n", ucs4, FT_Has, FC_Has); } } #endif } } #if HAVE_FT_HAS_PS_GLYPH_NAMES /* * Add mapping from PS glyph names if available */ if (FcFreeTypeUseNames (face)) { FcChar8 name_buf[FC_GLYPHNAME_BUFLEN + 2]; for (glyph = 0; glyph < (FT_UInt) face->num_glyphs; glyph++) { if (FT_Get_Glyph_Name (face, glyph, name_buf, FC_GLYPHNAME_BUFLEN+1) == 0) { ucs4 = FcGlyphNameToUcs4 (name_buf); if (ucs4 != 0xffff && FcFreeTypeCheckGlyph (face, ucs4, glyph, blanks, &advance, using_strike)) { 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 } } } } #endif #ifdef CHECK printf ("%d glyphs %d encoded\n", (int) face->num_glyphs, FcCharSetCount (fcs)); for (ucs4 = 0; ucs4 <= font_max; ucs4++) { FcBool has_char = (glyph = FcFreeTypeCharIndex (face, ucs4)) != 0; FcBool has_bit = FcCharSetHasChar (fcs, ucs4); if (has_char && !has_bit) { if (!FcFreeTypeCheckGlyph (face, ucs4, glyph, blanks, &advance, using_strike)) printf ("Bitmap missing broken char 0x%x\n", ucs4); else printf ("Bitmap missing char 0x%x\n", ucs4); } else if (!has_char && has_bit) printf ("Bitmap extra char 0x%x\n", ucs4); } #endif if (fixed_advance) *spacing = FC_MONO; else if (dual_advance && APPROXIMATELY_EQUAL (2 * FC_MIN (advance_one, advance_two), FC_MAX (advance_one, advance_two))) *spacing = FC_DUAL; else *spacing = FC_PROPORTIONAL; return fcs; bail1: FcCharSetDestroy (fcs); bail0: return 0; } FcCharSet * FcFreeTypeCharSetAndSpacing (FT_Face face, FcBlanks *blanks, int *spacing) { FcCharSet *cs; /* * Check for bitmap-only ttf fonts that are missing the glyf table. * In that case, pick a size and look for glyphs in that size instead */ if (!(face->face_flags & FT_FACE_FLAG_SCALABLE) && face->num_fixed_sizes > 0 && FT_Get_Sfnt_Table (face, ft_sfnt_head)) { FT_Int strike_index = 0; int i; /* Select the face closest to 16 pixels tall */ for (i = 1; i < face->num_fixed_sizes; i++) { if (abs (face->available_sizes[i].height - 16) < abs (face->available_sizes[strike_index].height - 16)) strike_index = i; } cs = FcFreeTypeCharSetAndSpacingForSize (face, blanks, spacing, strike_index); } else cs = FcFreeTypeCharSetAndSpacingForSize (face, blanks, spacing, -1); return cs; } FcCharSet * FcFreeTypeCharSet (FT_Face face, FcBlanks *blanks) { int spacing; return FcFreeTypeCharSetAndSpacing (face, blanks, &spacing); } #define TTAG_GPOS FT_MAKE_TAG( 'G', 'P', 'O', 'S' ) #define TTAG_GSUB FT_MAKE_TAG( 'G', 'S', 'U', 'B' ) #define TTAG_SILF FT_MAKE_TAG( 'S', 'i', 'l', 'f') #define OTLAYOUT_HEAD "otlayout:" #define OTLAYOUT_HEAD_LEN 9 #define OTLAYOUT_ID_LEN 4 /* space + head + id */ #define OTLAYOUT_LEN (1 + OTLAYOUT_HEAD_LEN + OTLAYOUT_ID_LEN) /* * This is a bit generous; the registry has only lower case and space * except for 'DFLT'. */ #define FcIsSpace(x) (040 == (x)) #define FcIsDigit(c) (('0' <= (c) && (c) <= '9')) #define FcIsValidScript(x) (FcIsLower(x) || FcIsUpper (x) || FcIsDigit(x) || FcIsSpace(x)) static void addtag(FcChar8 *complex_, FT_ULong tag) { FcChar8 tagstring[OTLAYOUT_ID_LEN + 1]; tagstring[0] = (FcChar8)(tag >> 24), tagstring[1] = (FcChar8)(tag >> 16), tagstring[2] = (FcChar8)(tag >> 8), tagstring[3] = (FcChar8)(tag); tagstring[4] = '\0'; /* skip tags which aren't alphanumeric, under the assumption that * they're probably broken */ if (!FcIsValidScript(tagstring[0]) || !FcIsValidScript(tagstring[1]) || !FcIsValidScript(tagstring[2]) || !FcIsValidScript(tagstring[3])) return; if (*complex_ != '\0') strcat ((char *) complex_, " "); strcat ((char *) complex_, OTLAYOUT_HEAD); strcat ((char *) complex_, (char *) tagstring); } static int compareulong (const void *a, const void *b) { const FT_ULong *ua = (const FT_ULong *) a; const FT_ULong *ub = (const FT_ULong *) b; return *ua - *ub; } static int GetScriptTags(FT_Face face, FT_ULong tabletag, FT_ULong **stags) { FT_ULong cur_offset, new_offset, base_offset; FT_Stream stream = face->stream; FT_Error error; FT_UShort n, p; int script_count; if (!stream) return 0; if (( error = ftglue_face_goto_table( face, tabletag, stream ) )) return 0; base_offset = ftglue_stream_pos ( stream ); /* skip version */ if ( ftglue_stream_seek ( stream, base_offset + 4L ) || ftglue_stream_frame_enter( stream, 2L ) ) return 0; new_offset = GET_UShort() + base_offset; ftglue_stream_frame_exit( stream ); cur_offset = ftglue_stream_pos( stream ); if ( ftglue_stream_seek( stream, new_offset ) != FT_Err_Ok ) return 0; base_offset = ftglue_stream_pos( stream ); if ( ftglue_stream_frame_enter( stream, 2L ) ) return 0; script_count = GET_UShort (); ftglue_stream_frame_exit( stream ); *stags = malloc(script_count * sizeof (FT_ULong)); if (!stags) return 0; p = 0; for ( n = 0; n < script_count; n++ ) { if ( ftglue_stream_frame_enter( stream, 6L ) ) goto Fail; (*stags)[p] = GET_ULong (); new_offset = GET_UShort () + base_offset; ftglue_stream_frame_exit( stream ); cur_offset = ftglue_stream_pos( stream ); error = ftglue_stream_seek( stream, new_offset ); if ( error == FT_Err_Ok ) p++; (void)ftglue_stream_seek( stream, cur_offset ); } if (!p) goto Fail; /* sort the tag list before returning it */ qsort(*stags, script_count, sizeof(FT_ULong), compareulong); return script_count; Fail: free(*stags); *stags = NULL; return 0; } static FcChar8 * FcFontCapabilities(FT_Face face) { FcBool issilgraphitefont = 0; FT_Error err; FT_ULong len = 0; FT_ULong *gsubtags=NULL, *gpostags=NULL; FT_UShort gsub_count=0, gpos_count=0; FT_ULong maxsize; FcChar8 *complex_ = NULL; int indx1 = 0, indx2 = 0; err = FT_Load_Sfnt_Table(face, TTAG_SILF, 0, 0, &len); issilgraphitefont = ( err == FT_Err_Ok); gpos_count = GetScriptTags(face, TTAG_GPOS, &gpostags); gsub_count = GetScriptTags(face, TTAG_GSUB, &gsubtags); if (!issilgraphitefont && !gsub_count && !gpos_count) goto bail; maxsize = (((FT_ULong) gpos_count + (FT_ULong) gsub_count) * OTLAYOUT_LEN + (issilgraphitefont ? 13 : 0)); complex_ = malloc (sizeof (FcChar8) * maxsize); if (!complex_) goto bail; complex_[0] = '\0'; if (issilgraphitefont) strcpy((char *) complex_, "ttable:Silf "); while ((indx1 < gsub_count) || (indx2 < gpos_count)) { if (indx1 == gsub_count) { addtag(complex_, gpostags[indx2]); indx2++; } else if ((indx2 == gpos_count) || (gsubtags[indx1] < gpostags[indx2])) { addtag(complex_, gsubtags[indx1]); indx1++; } else if (gsubtags[indx1] == gpostags[indx2]) { addtag(complex_, gsubtags[indx1]); indx1++; indx2++; } else { addtag(complex_, gpostags[indx2]); indx2++; } } if (FcDebug () & FC_DBG_SCANV) printf("complex_ features in this font: %s\n", complex_); bail: free(gsubtags); free(gpostags); return complex_; } #define __fcfreetype__ #include "fcaliastail.h" #include "fcftaliastail.h" #undef __fcfreetype__ fontconfig-2.11.1/src/fcstdint.h0000664000076400007640000000044412313745333013447 00000000000000#ifndef _FONTCONFIG_SRC_FCSTDINT_H #define _FONTCONFIG_SRC_FCSTDINT_H 1 #ifndef _GENERATED_STDINT_H #define _GENERATED_STDINT_H "fontconfig 2.11.1" /* generated using gnu compiler gcc (GCC) 4.8.2 20131212 (Red Hat 4.8.2-7) */ #define _STDINT_HAVE_STDINT_H 1 #include #endif #endif fontconfig-2.11.1/src/fcobjs.h0000664000076400007640000000657312267155334013114 00000000000000/* * 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) FC_OBJECT (STYLE, FcTypeString, FcCompareString) FC_OBJECT (STYLELANG, FcTypeString, NULL) FC_OBJECT (FULLNAME, FcTypeString, NULL) FC_OBJECT (FULLNAMELANG, FcTypeString, NULL) FC_OBJECT (SLANT, FcTypeInteger, FcCompareNumber) FC_OBJECT (WEIGHT, FcTypeInteger, FcCompareNumber) FC_OBJECT (WIDTH, FcTypeInteger, FcCompareNumber) FC_OBJECT (SIZE, FcTypeDouble, NULL) FC_OBJECT (ASPECT, FcTypeDouble, NULL) FC_OBJECT (PIXEL_SIZE, FcTypeDouble, FcCompareSize) FC_OBJECT (SPACING, FcTypeInteger, FcCompareNumber) FC_OBJECT (FOUNDRY, FcTypeString, FcCompareString) FC_OBJECT (ANTIALIAS, FcTypeBool, FcCompareBool) FC_OBJECT (HINT_STYLE, FcTypeInteger, NULL) FC_OBJECT (HINTING, FcTypeBool, NULL) FC_OBJECT (VERTICAL_LAYOUT, FcTypeBool, NULL) FC_OBJECT (AUTOHINT, FcTypeBool, NULL) FC_OBJECT (GLOBAL_ADVANCE, FcTypeBool, NULL) /* deprecated */ FC_OBJECT (FILE, FcTypeString, FcCompareFilename) FC_OBJECT (INDEX, FcTypeInteger, NULL) FC_OBJECT (RASTERIZER, FcTypeString, FcCompareString) FC_OBJECT (OUTLINE, FcTypeBool, FcCompareBool) FC_OBJECT (SCALABLE, FcTypeBool, FcCompareBool) FC_OBJECT (DPI, FcTypeDouble, NULL) FC_OBJECT (RGBA, FcTypeInteger, NULL) FC_OBJECT (SCALE, FcTypeDouble, NULL) FC_OBJECT (MINSPACE, FcTypeBool, NULL) FC_OBJECT (CHAR_WIDTH, FcTypeInteger, NULL) FC_OBJECT (CHAR_HEIGHT, FcTypeInteger, NULL) FC_OBJECT (MATRIX, FcTypeMatrix, NULL) FC_OBJECT (CHARSET, FcTypeCharSet, FcCompareCharSet) FC_OBJECT (LANG, FcTypeLangSet, FcCompareLang) FC_OBJECT (FONTVERSION, FcTypeInteger, FcCompareNumber) FC_OBJECT (CAPABILITY, FcTypeString, NULL) FC_OBJECT (FONTFORMAT, FcTypeString, FcCompareString) FC_OBJECT (EMBOLDEN, FcTypeBool, NULL) FC_OBJECT (EMBEDDED_BITMAP, FcTypeBool, NULL) FC_OBJECT (DECORATIVE, FcTypeBool, FcCompareBool) FC_OBJECT (LCD_FILTER, FcTypeInteger, NULL) FC_OBJECT (NAMELANG, FcTypeString, NULL) FC_OBJECT (FONT_FEATURES, FcTypeString, NULL) FC_OBJECT (PRGNAME, FcTypeString, NULL) FC_OBJECT (HASH, FcTypeString, FcCompareHash) FC_OBJECT (POSTSCRIPT_NAME, FcTypeString, FcComparePostScript) /* ^-------------- Add new objects here. */ fontconfig-2.11.1/src/fchash.c0000664000076400007640000001771012267155334013070 00000000000000/* * 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 #include #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); } fontconfig-2.11.1/src/fccache.c0000664000076400007640000010640512305566456013214 00000000000000/* * Copyright © 2000 Keith Packard * Copyright © 2005 Patrick Lam * * 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 "fcarch.h" #include #include #include #include #include #include #include #include #if defined(HAVE_MMAP) || defined(__CYGWIN__) # include # include #endif #ifndef O_BINARY #define O_BINARY 0 #endif struct MD5Context { FcChar32 buf[4]; FcChar32 bits[2]; unsigned char in[64]; }; static void MD5Init(struct MD5Context *ctx); static void MD5Update(struct MD5Context *ctx, const unsigned char *buf, unsigned len); static void MD5Final(unsigned char digest[16], struct MD5Context *ctx); static void MD5Transform(FcChar32 buf[4], FcChar32 in[16]); #define CACHEBASE_LEN (1 + 32 + 1 + sizeof (FC_ARCHITECTURE) + sizeof (FC_CACHE_SUFFIX)) static FcBool FcCacheIsMmapSafe (int fd) { enum { MMAP_NOT_INITIALIZED = 0, MMAP_USE, MMAP_DONT_USE, MMAP_CHECK_FS, } status; static void *static_status; status = (intptr_t) fc_atomic_ptr_get (&static_status); if (status == MMAP_NOT_INITIALIZED) { const char *env = getenv ("FONTCONFIG_USE_MMAP"); FcBool use; if (env && FcNameBool ((const FcChar8 *) env, &use)) status = use ? MMAP_USE : MMAP_DONT_USE; else status = MMAP_CHECK_FS; (void) fc_atomic_ptr_cmpexch (&static_status, NULL, (void *) status); } if (status == MMAP_CHECK_FS) return FcIsFsMmapSafe (fd); else return status == MMAP_USE; } static const char bin2hex[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; static FcChar8 * FcDirCacheBasename (const FcChar8 * dir, FcChar8 cache_base[CACHEBASE_LEN]) { unsigned char hash[16]; FcChar8 *hex_hash; int cnt; struct MD5Context ctx; MD5Init (&ctx); MD5Update (&ctx, (const unsigned char *)dir, strlen ((const char *) dir)); MD5Final (hash, &ctx); cache_base[0] = '/'; hex_hash = cache_base + 1; for (cnt = 0; cnt < 16; ++cnt) { hex_hash[2*cnt ] = bin2hex[hash[cnt] >> 4]; hex_hash[2*cnt+1] = bin2hex[hash[cnt] & 0xf]; } hex_hash[2*cnt] = 0; strcat ((char *) cache_base, "-" FC_ARCHITECTURE FC_CACHE_SUFFIX); return cache_base; } FcBool FcDirCacheUnlink (const FcChar8 *dir, FcConfig *config) { FcChar8 *cache_hashed = NULL; FcChar8 cache_base[CACHEBASE_LEN]; FcStrList *list; FcChar8 *cache_dir; const FcChar8 *sysroot = FcConfigGetSysRoot (config); FcDirCacheBasename (dir, cache_base); list = FcStrListCreate (config->cacheDirs); if (!list) return FcFalse; 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; (void) unlink ((char *) cache_hashed); FcStrFree (cache_hashed); } FcStrListDone (list); /* return FcFalse if something went wrong */ if (cache_dir) return FcFalse; return FcTrue; } static int FcDirCacheOpenFile (const FcChar8 *cache_file, struct stat *file_stat) { int fd; #ifdef _WIN32 if (FcStat (cache_file, file_stat) < 0) return -1; #endif fd = FcOpen((char *) cache_file, O_RDONLY | O_BINARY); if (fd < 0) return fd; #ifndef _WIN32 if (fstat (fd, file_stat) < 0) { close (fd); return -1; } #endif return fd; } /* * Look for a cache file for the specified dir. Attempt * to use each one we find, stopping when the callback * indicates success */ static FcBool FcDirCacheProcess (FcConfig *config, const FcChar8 *dir, 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; struct stat file_stat, dir_stat; FcBool ret = FcFalse; if (FcStatChecksum (dir, &dir_stat) < 0) return FcFalse; FcDirCacheBasename (dir, cache_base); list = FcStrListCreate (config->cacheDirs); if (!list) return FcFalse; while ((cache_dir = FcStrListNext (list))) { const FcChar8 *sysroot = FcConfigGetSysRoot (config); FcChar8 *cache_hashed; if (sysroot) cache_hashed = FcStrBuildFilename (sysroot, cache_dir, cache_base, NULL); else cache_hashed = FcStrBuildFilename (cache_dir, cache_base, NULL); if (!cache_hashed) break; fd = FcDirCacheOpenFile (cache_hashed, &file_stat); if (fd >= 0) { ret = (*callback) (fd, &file_stat, &dir_stat, closure); close (fd); if (ret) { if (cache_file_ret) *cache_file_ret = cache_hashed; else FcStrFree (cache_hashed); break; } } FcStrFree (cache_hashed); } FcStrListDone (list); return ret; } #define FC_CACHE_MIN_MMAP 1024 /* * Skip list element, make sure the 'next' pointer is the last thing * in the structure, it will be allocated large enough to hold all * of the necessary pointers */ typedef struct _FcCacheSkip FcCacheSkip; struct _FcCacheSkip { FcCache *cache; FcRef ref; intptr_t size; dev_t cache_dev; ino_t cache_ino; time_t cache_mtime; FcCacheSkip *next[1]; }; /* * The head of the skip list; pointers for every possible level * in the skip list, plus the largest level in the list */ #define FC_CACHE_MAX_LEVEL 16 /* Protected by cache_lock below */ static FcCacheSkip *fcCacheChains[FC_CACHE_MAX_LEVEL]; static int fcCacheMaxLevel; static FcMutex *cache_lock; static void lock_cache (void) { FcMutex *lock; retry: lock = fc_atomic_ptr_get (&cache_lock); if (!lock) { lock = (FcMutex *) malloc (sizeof (FcMutex)); FcMutexInit (lock); if (!fc_atomic_ptr_cmpexch (&cache_lock, NULL, lock)) { FcMutexFinish (lock); goto retry; } FcMutexLock (lock); /* Initialize random state */ FcRandom (); return; } FcMutexLock (lock); } static void unlock_cache (void) { FcMutexUnlock (cache_lock); } static void free_lock (void) { FcMutex *lock; lock = fc_atomic_ptr_get (&cache_lock); if (lock && fc_atomic_ptr_cmpexch (&cache_lock, lock, NULL)) { FcMutexFinish (lock); free (lock); } } /* * Generate a random level number, distributed * so that each level is 1/4 as likely as the one before * * Note that level numbers run 1 <= level <= MAX_LEVEL */ static int random_level (void) { /* tricky bit -- each bit is '1' 75% of the time */ long int bits = FcRandom () | FcRandom (); int level = 0; while (++level < FC_CACHE_MAX_LEVEL) { if (bits & 1) break; bits >>= 1; } return level; } /* * Insert cache into the list */ static FcBool FcCacheInsert (FcCache *cache, struct stat *cache_stat) { FcCacheSkip **update[FC_CACHE_MAX_LEVEL]; FcCacheSkip *s, **next; int i, level; lock_cache (); /* * Find links along each chain */ next = fcCacheChains; for (i = fcCacheMaxLevel; --i >= 0; ) { for (; (s = next[i]); next = s->next) if (s->cache > cache) break; update[i] = &next[i]; } /* * Create new list element */ level = random_level (); if (level > fcCacheMaxLevel) { level = fcCacheMaxLevel + 1; update[fcCacheMaxLevel] = &fcCacheChains[fcCacheMaxLevel]; fcCacheMaxLevel = level; } s = malloc (sizeof (FcCacheSkip) + (level - 1) * sizeof (FcCacheSkip *)); if (!s) return FcFalse; s->cache = cache; s->size = cache->size; FcRefInit (&s->ref, 1); if (cache_stat) { s->cache_dev = cache_stat->st_dev; s->cache_ino = cache_stat->st_ino; s->cache_mtime = cache_stat->st_mtime; } else { s->cache_dev = 0; s->cache_ino = 0; s->cache_mtime = 0; } /* * Insert into all fcCacheChains */ for (i = 0; i < level; i++) { s->next[i] = *update[i]; *update[i] = s; } unlock_cache (); return FcTrue; } static FcCacheSkip * FcCacheFindByAddrUnlocked (void *object) { int i; FcCacheSkip **next = fcCacheChains; FcCacheSkip *s; if (!object) return NULL; /* * Walk chain pointers one level at a time */ for (i = fcCacheMaxLevel; --i >= 0;) while (next[i] && (char *) object >= ((char *) next[i]->cache + next[i]->size)) next = next[i]->next; /* * Here we are */ s = next[0]; if (s && (char *) object < ((char *) s->cache + s->size)) return s; return NULL; } static FcCacheSkip * FcCacheFindByAddr (void *object) { FcCacheSkip *ret; lock_cache (); ret = FcCacheFindByAddrUnlocked (object); unlock_cache (); return ret; } static void FcCacheRemoveUnlocked (FcCache *cache) { FcCacheSkip **update[FC_CACHE_MAX_LEVEL]; FcCacheSkip *s, **next; int i; /* * Find links along each chain */ next = fcCacheChains; for (i = fcCacheMaxLevel; --i >= 0; ) { for (; (s = next[i]); next = s->next) if (s->cache >= cache) break; update[i] = &next[i]; } s = next[0]; for (i = 0; i < fcCacheMaxLevel && *update[i] == s; i++) *update[i] = s->next[i]; while (fcCacheMaxLevel > 0 && fcCacheChains[fcCacheMaxLevel - 1] == NULL) fcCacheMaxLevel--; free (s); } static FcCache * FcCacheFindByStat (struct stat *cache_stat) { FcCacheSkip *s; lock_cache (); for (s = fcCacheChains[0]; s; s = s->next[0]) if (s->cache_dev == cache_stat->st_dev && s->cache_ino == cache_stat->st_ino && s->cache_mtime == cache_stat->st_mtime) { FcRefInc (&s->ref); unlock_cache (); return s->cache; } unlock_cache (); return NULL; } static void FcDirCacheDisposeUnlocked (FcCache *cache) { FcCacheRemoveUnlocked (cache); switch (cache->magic) { case FC_CACHE_MAGIC_ALLOC: free (cache); break; case FC_CACHE_MAGIC_MMAP: #if defined(HAVE_MMAP) || defined(__CYGWIN__) munmap (cache, cache->size); #elif defined(_WIN32) UnmapViewOfFile (cache); #endif break; } } void FcCacheObjectReference (void *object) { FcCacheSkip *skip = FcCacheFindByAddr (object); if (skip) FcRefInc (&skip->ref); } void FcCacheObjectDereference (void *object) { FcCacheSkip *skip; lock_cache (); skip = FcCacheFindByAddrUnlocked (object); if (skip) { if (FcRefDec (&skip->ref) == 1) FcDirCacheDisposeUnlocked (skip->cache); } unlock_cache (); } void FcCacheFini (void) { int i; for (i = 0; i < FC_CACHE_MAX_LEVEL; i++) assert (fcCacheChains[i] == NULL); assert (fcCacheMaxLevel == 0); free_lock (); } static FcBool FcCacheTimeValid (FcCache *cache, struct stat *dir_stat) { struct stat dir_static; if (!dir_stat) { if (FcStatChecksum (FcCacheDir (cache), &dir_static) < 0) return FcFalse; dir_stat = &dir_static; } 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); return cache->checksum == (int) dir_stat->st_mtime; } /* * Map a cache file into memory */ static FcCache * FcDirCacheMapFd (int fd, struct stat *fd_stat, struct stat *dir_stat) { FcCache *cache; FcBool allocated = FcFalse; if (fd_stat->st_size < (int) sizeof (FcCache)) return NULL; cache = FcCacheFindByStat (fd_stat); if (cache) { if (FcCacheTimeValid (cache, dir_stat)) return cache; FcDirCacheUnload (cache); cache = NULL; } /* * Large cache files are mmap'ed, smaller cache files are read. This * balances the system cost of mmap against per-process memory usage. */ if (FcCacheIsMmapSafe (fd) && fd_stat->st_size >= FC_CACHE_MIN_MMAP) { #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) posix_fadvise (fd, 0, fd_stat->st_size, POSIX_FADV_WILLNEED); #endif if (cache == MAP_FAILED) cache = NULL; #elif defined(_WIN32) { HANDLE hFileMap; cache = NULL; hFileMap = CreateFileMapping((HANDLE) _get_osfhandle(fd), NULL, PAGE_READONLY, 0, 0, NULL); if (hFileMap != NULL) { cache = MapViewOfFile (hFileMap, FILE_MAP_READ, 0, 0, fd_stat->st_size); CloseHandle (hFileMap); } } #endif } if (!cache) { cache = malloc (fd_stat->st_size); if (!cache) return NULL; if (read (fd, cache, fd_stat->st_size) != fd_stat->st_size) { free (cache); return NULL; } allocated = FcTrue; } if (cache->magic != FC_CACHE_MAGIC_MMAP || cache->version < FC_CACHE_CONTENT_VERSION || cache->size != (intptr_t) fd_stat->st_size || !FcCacheTimeValid (cache, dir_stat) || !FcCacheInsert (cache, fd_stat)) { if (allocated) free (cache); else { #if defined(HAVE_MMAP) || defined(__CYGWIN__) munmap (cache, fd_stat->st_size); #elif defined(_WIN32) UnmapViewOfFile (cache); #endif } return NULL; } /* Mark allocated caches so they're freed rather than unmapped */ if (allocated) cache->magic = FC_CACHE_MAGIC_ALLOC; return cache; } void FcDirCacheReference (FcCache *cache, int nref) { FcCacheSkip *skip = FcCacheFindByAddr (cache); if (skip) FcRefAdd (&skip->ref, nref); } void FcDirCacheUnload (FcCache *cache) { FcCacheObjectDereference (cache); } static FcBool FcDirCacheMapHelper (int fd, struct stat *fd_stat, struct stat *dir_stat, void *closure) { FcCache *cache = FcDirCacheMapFd (fd, fd_stat, dir_stat); if (!cache) return FcFalse; *((FcCache **) closure) = cache; return FcTrue; } FcCache * FcDirCacheLoad (const FcChar8 *dir, FcConfig *config, FcChar8 **cache_file) { FcCache *cache = NULL; if (!FcDirCacheProcess (config, dir, FcDirCacheMapHelper, &cache, cache_file)) return NULL; return cache; } FcCache * FcDirCacheLoadFile (const FcChar8 *cache_file, struct stat *file_stat) { int fd; FcCache *cache; struct stat my_file_stat; if (!file_stat) file_stat = &my_file_stat; fd = FcDirCacheOpenFile (cache_file, file_stat); if (fd < 0) return NULL; cache = FcDirCacheMapFd (fd, file_stat, NULL); close (fd); return cache; } /* * Validate a cache file by reading the header and checking * the magic number and the size field */ static FcBool FcDirCacheValidateHelper (int fd, struct stat *fd_stat, struct stat *dir_stat, void *closure FC_UNUSED) { FcBool ret = FcTrue; FcCache c; if (read (fd, &c, sizeof (FcCache)) != sizeof (FcCache)) ret = FcFalse; else if (c.magic != FC_CACHE_MAGIC_MMAP) ret = FcFalse; 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; return ret; } static FcBool FcDirCacheValidConfig (const FcChar8 *dir, FcConfig *config) { return FcDirCacheProcess (config, dir, FcDirCacheValidateHelper, NULL, NULL); } FcBool FcDirCacheValid (const FcChar8 *dir) { FcConfig *config; config = FcConfigGetCurrent (); if (!config) return FcFalse; return FcDirCacheValidConfig (dir, config); } /* * Build a cache structure from the given contents */ FcCache * FcDirCacheBuild (FcFontSet *set, const FcChar8 *dir, struct stat *dir_stat, FcStrSet *dirs) { FcSerialize *serialize = FcSerializeCreate (); FcCache *cache; int i; FcChar8 *dir_serialize; intptr_t *dirs_serialize; FcFontSet *set_serialize; if (!serialize) return NULL; /* * Space for cache structure */ FcSerializeReserve (serialize, sizeof (FcCache)); /* * Directory name */ if (!FcStrSerializeAlloc (serialize, dir)) goto bail1; /* * Subdirs */ FcSerializeAlloc (serialize, dirs, dirs->num * sizeof (FcChar8 *)); for (i = 0; i < dirs->num; i++) if (!FcStrSerializeAlloc (serialize, dirs->strs[i])) goto bail1; /* * Patterns */ if (!FcFontSetSerializeAlloc (serialize, set)) goto bail1; /* Serialize layout complete. Now allocate space and fill it */ cache = malloc (serialize->size); if (!cache) goto bail1; /* shut up valgrind */ memset (cache, 0, serialize->size); serialize->linear = cache; cache->magic = FC_CACHE_MAGIC_ALLOC; cache->version = FC_CACHE_CONTENT_VERSION; cache->size = serialize->size; cache->checksum = (int) dir_stat->st_mtime; /* * Serialize directory name */ dir_serialize = FcStrSerialize (serialize, dir); if (!dir_serialize) goto bail2; cache->dir = FcPtrToOffset (cache, dir_serialize); /* * Serialize sub dirs */ dirs_serialize = FcSerializePtr (serialize, dirs); if (!dirs_serialize) goto bail2; cache->dirs = FcPtrToOffset (cache, dirs_serialize); cache->dirs_count = dirs->num; for (i = 0; i < dirs->num; i++) { FcChar8 *d_serialize = FcStrSerialize (serialize, dirs->strs[i]); if (!d_serialize) goto bail2; dirs_serialize[i] = FcPtrToOffset (dirs_serialize, d_serialize); } /* * Serialize font set */ set_serialize = FcFontSetSerialize (serialize, set); if (!set_serialize) goto bail2; cache->set = FcPtrToOffset (cache, set_serialize); FcSerializeDestroy (serialize); FcCacheInsert (cache, NULL); return cache; bail2: free (cache); bail1: FcSerializeDestroy (serialize); 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) { FcChar8 *dir = FcCacheDir (cache); FcChar8 cache_base[CACHEBASE_LEN]; FcChar8 *cache_hashed; int fd; FcAtomic *atomic; FcStrList *list; FcChar8 *cache_dir = NULL; FcChar8 *test_dir, *d = NULL; FcCacheSkip *skip; struct stat cache_stat; unsigned int magic; int written; const FcChar8 *sysroot = FcConfigGetSysRoot (config); /* * Write it to the first directory in the list which is writable */ list = FcStrListCreate (config->cacheDirs); if (!list) return FcFalse; while ((test_dir = FcStrListNext (list))) { if (d) FcStrFree (d); if (sysroot) d = FcStrBuildFilename (sysroot, test_dir, NULL); else d = FcStrCopyFilename (test_dir); if (access ((char *) d, W_OK) == 0) { cache_dir = FcStrCopyFilename (d); break; } else { /* * If the directory doesn't exist, try to create it */ if (access ((char *) d, F_OK) == -1) { if (FcMakeDirectory (d)) { cache_dir = FcStrCopyFilename (d); /* Create CACHEDIR.TAG */ FcDirCacheCreateTagFile (d); break; } } /* * Otherwise, try making it writable */ else if (chmod ((char *) d, 0755) == 0) { cache_dir = FcStrCopyFilename (d); /* Try to create CACHEDIR.TAG too */ FcDirCacheCreateTagFile (d); break; } } } if (d) FcStrFree (d); FcStrListDone (list); if (!cache_dir) return FcFalse; FcDirCacheBasename (dir, cache_base); cache_hashed = FcStrBuildFilename (cache_dir, cache_base, NULL); if (!cache_hashed) return FcFalse; FcStrFree (cache_dir); if (FcDebug () & FC_DBG_CACHE) printf ("FcDirCacheWriteDir dir \"%s\" file \"%s\"\n", dir, cache_hashed); atomic = FcAtomicCreate ((FcChar8 *)cache_hashed); if (!atomic) goto bail1; if (!FcAtomicLock (atomic)) goto bail3; fd = FcOpen((char *)FcAtomicNewFile (atomic), O_RDWR | O_CREAT | O_BINARY, 0666); if (fd == -1) goto bail4; /* Temporarily switch magic to MMAP while writing to file */ magic = cache->magic; if (magic != FC_CACHE_MAGIC_MMAP) cache->magic = FC_CACHE_MAGIC_MMAP; /* * Write cache contents to file */ written = write (fd, cache, cache->size); /* Switch magic back */ if (magic != FC_CACHE_MAGIC_MMAP) cache->magic = magic; if (written != cache->size) { perror ("write cache"); goto bail5; } close(fd); if (!FcAtomicReplaceOrig(atomic)) goto bail4; /* If the file is small, update the cache chain entry such that the * new cache file is not read again. If it's large, we don't do that * such that we reload it, using mmap, which is shared across processes. */ if (cache->size < FC_CACHE_MIN_MMAP && FcStat (cache_hashed, &cache_stat)) { lock_cache (); if ((skip = FcCacheFindByAddrUnlocked (cache))) { skip->cache_dev = cache_stat.st_dev; skip->cache_ino = cache_stat.st_ino; skip->cache_mtime = cache_stat.st_mtime; } unlock_cache (); } FcStrFree (cache_hashed); FcAtomicUnlock (atomic); FcAtomicDestroy (atomic); return FcTrue; bail5: close (fd); bail4: FcAtomicUnlock (atomic); bail3: FcAtomicDestroy (atomic); bail1: FcStrFree (cache_hashed); return FcFalse; } FcBool FcDirCacheClean (const FcChar8 *cache_dir, FcBool verbose) { DIR *d; struct dirent *ent; FcChar8 *dir; FcBool ret = FcTrue; FcBool remove; FcCache *cache; struct stat target_stat; const FcChar8 *sysroot; /* FIXME: this API needs to support non-current FcConfig */ sysroot = FcConfigGetSysRoot (NULL); if (sysroot) dir = FcStrBuildFilename (sysroot, cache_dir, NULL); else dir = FcStrCopyFilename (cache_dir); if (!dir) { fprintf (stderr, "Fontconfig error: %s: out of memory\n", cache_dir); return FcFalse; } if (access ((char *) dir, W_OK) != 0) { if (verbose || FcDebug () & FC_DBG_CACHE) printf ("%s: not cleaning %s cache directory\n", dir, access ((char *) dir, F_OK) == 0 ? "unwritable" : "non-existent"); goto bail0; } if (verbose || FcDebug () & FC_DBG_CACHE) printf ("%s: cleaning cache directory\n", dir); d = opendir ((char *) dir); if (!d) { perror ((char *) dir); ret = FcFalse; goto bail0; } while ((ent = readdir (d))) { FcChar8 *file_name; const FcChar8 *target_dir; if (ent->d_name[0] == '.') continue; /* skip cache files for different architectures and */ /* files which are not cache files at all */ if (strlen(ent->d_name) != 32 + strlen ("-" FC_ARCHITECTURE FC_CACHE_SUFFIX) || strcmp(ent->d_name + 32, "-" FC_ARCHITECTURE FC_CACHE_SUFFIX)) continue; file_name = FcStrBuildFilename (dir, (FcChar8 *)ent->d_name, NULL); if (!file_name) { fprintf (stderr, "Fontconfig error: %s: allocation failure\n", dir); ret = FcFalse; break; } remove = FcFalse; cache = FcDirCacheLoadFile (file_name, NULL); if (!cache) { if (verbose || FcDebug () & FC_DBG_CACHE) printf ("%s: invalid cache file: %s\n", dir, ent->d_name); remove = FcTrue; } else { target_dir = FcCacheDir (cache); 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, target_dir); remove = FcTrue; } FcDirCacheUnload (cache); } if (remove) { if (unlink ((char *) file_name) < 0) { perror ((char *) file_name); ret = FcFalse; } } FcStrFree (file_name); } closedir (d); bail0: FcStrFree (dir); return ret; } /* * Hokey little macro trick to permit the definitions of C functions * with the same name as CPP macros */ #define args1(x) (x) #define args2(x,y) (x,y) const FcChar8 * FcCacheDir args1(const FcCache *c) { return FcCacheDir (c); } FcFontSet * FcCacheCopySet args1(const FcCache *c) { FcFontSet *old = FcCacheSet (c); FcFontSet *new = FcFontSetCreate (); int i; if (!new) return NULL; for (i = 0; i < old->nfont; i++) { FcPattern *font = FcFontSetFont (old, i); FcPatternReference (font); if (!FcFontSetAdd (new, font)) { FcFontSetDestroy (new); return NULL; } } return new; } const FcChar8 * FcCacheSubdir args2(const FcCache *c, int i) { return FcCacheSubdir (c, i); } int FcCacheNumSubdir args1(const FcCache *c) { return c->dirs_count; } int FcCacheNumFont args1(const FcCache *c) { return FcCacheSet(c)->nfont; } /* * This code implements the MD5 message-digest algorithm. * The algorithm is due to Ron Rivest. This code was * written by Colin Plumb in 1993, no copyright is claimed. * This code is in the public domain; do with it what you wish. * * Equivalent code is available from RSA Data Security, Inc. * This code has been tested against that, and is equivalent, * except that you don't need to include two pages of legalese * with every copy. * * To compute the message digest of a chunk of bytes, declare an * MD5Context structure, pass it to MD5Init, call MD5Update as * needed on buffers full of bytes, and then call MD5Final, which * will fill a supplied 16-byte array with the digest. */ #ifndef HIGHFIRST #define byteReverse(buf, len) /* Nothing */ #else /* * Note: this code is harmless on little-endian machines. */ void byteReverse(unsigned char *buf, unsigned longs) { FcChar32 t; do { t = (FcChar32) ((unsigned) buf[3] << 8 | buf[2]) << 16 | ((unsigned) buf[1] << 8 | buf[0]); *(FcChar32 *) buf = t; buf += 4; } while (--longs); } #endif /* * Start MD5 accumulation. Set bit count to 0 and buffer to mysterious * initialization constants. */ static void MD5Init(struct MD5Context *ctx) { ctx->buf[0] = 0x67452301; ctx->buf[1] = 0xefcdab89; ctx->buf[2] = 0x98badcfe; ctx->buf[3] = 0x10325476; ctx->bits[0] = 0; ctx->bits[1] = 0; } /* * Update context to reflect the concatenation of another buffer full * of bytes. */ static void MD5Update(struct MD5Context *ctx, const unsigned char *buf, unsigned len) { FcChar32 t; /* Update bitcount */ t = ctx->bits[0]; if ((ctx->bits[0] = t + ((FcChar32) len << 3)) < t) ctx->bits[1]++; /* Carry from low to high */ ctx->bits[1] += len >> 29; t = (t >> 3) & 0x3f; /* Bytes already in shsInfo->data */ /* Handle any leading odd-sized chunks */ if (t) { unsigned char *p = (unsigned char *) ctx->in + t; t = 64 - t; if (len < t) { memcpy(p, buf, len); return; } memcpy(p, buf, t); byteReverse(ctx->in, 16); MD5Transform(ctx->buf, (FcChar32 *) ctx->in); buf += t; len -= t; } /* Process data in 64-byte chunks */ while (len >= 64) { memcpy(ctx->in, buf, 64); byteReverse(ctx->in, 16); MD5Transform(ctx->buf, (FcChar32 *) ctx->in); buf += 64; len -= 64; } /* Handle any remaining bytes of data. */ memcpy(ctx->in, buf, len); } /* * Final wrapup - pad to 64-byte boundary with the bit pattern * 1 0* (64-bit count of bits processed, MSB-first) */ static void MD5Final(unsigned char digest[16], struct MD5Context *ctx) { unsigned count; unsigned char *p; /* Compute number of bytes mod 64 */ count = (ctx->bits[0] >> 3) & 0x3F; /* Set the first char of padding to 0x80. This is safe since there is always at least one byte free */ p = ctx->in + count; *p++ = 0x80; /* Bytes of padding needed to make 64 bytes */ count = 64 - 1 - count; /* Pad out to 56 mod 64 */ if (count < 8) { /* Two lots of padding: Pad the first block to 64 bytes */ memset(p, 0, count); byteReverse(ctx->in, 16); MD5Transform(ctx->buf, (FcChar32 *) ctx->in); /* Now fill the next block with 56 bytes */ memset(ctx->in, 0, 56); } else { /* Pad block to 56 bytes */ memset(p, 0, count - 8); } byteReverse(ctx->in, 14); /* Append length in bits and transform */ ((FcChar32 *) ctx->in)[14] = ctx->bits[0]; ((FcChar32 *) ctx->in)[15] = ctx->bits[1]; MD5Transform(ctx->buf, (FcChar32 *) ctx->in); byteReverse((unsigned char *) ctx->buf, 4); memcpy(digest, ctx->buf, 16); memset(ctx, 0, sizeof(*ctx)); /* In case it's sensitive */ } /* The four core functions - F1 is optimized somewhat */ /* #define F1(x, y, z) (x & y | ~x & z) */ #define F1(x, y, z) (z ^ (x & (y ^ z))) #define F2(x, y, z) F1(z, x, y) #define F3(x, y, z) (x ^ y ^ z) #define F4(x, y, z) (y ^ (x | ~z)) /* This is the central step in the MD5 algorithm. */ #define MD5STEP(f, w, x, y, z, data, s) \ ( w += f(x, y, z) + data, w = w<>(32-s), w += x ) /* * The core of the MD5 algorithm, this alters an existing MD5 hash to * reflect the addition of 16 longwords of new data. MD5Update blocks * the data and converts bytes into longwords for this routine. */ static void MD5Transform(FcChar32 buf[4], FcChar32 in[16]) { register FcChar32 a, b, c, d; a = buf[0]; b = buf[1]; c = buf[2]; d = buf[3]; MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7); MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12); MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17); MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22); MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7); MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12); MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17); MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22); MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7); MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12); MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17); MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22); MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7); MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12); MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17); MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22); MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5); MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9); MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14); MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20); MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5); MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9); MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14); MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20); MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5); MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9); MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14); MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20); MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5); MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9); MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14); MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20); MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4); MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11); MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16); MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23); MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4); MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11); MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16); MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23); MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4); MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11); MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16); MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23); MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4); MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11); MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16); MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23); MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6); MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10); MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15); MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21); MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6); MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10); MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15); MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21); MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6); MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10); MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15); MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21); MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6); MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10); MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15); MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21); buf[0] += a; buf[1] += b; buf[2] += c; buf[3] += d; } FcBool FcDirCacheCreateTagFile (const FcChar8 *cache_dir) { FcChar8 *cache_tag; int fd; FILE *fp; FcAtomic *atomic; static const FcChar8 cache_tag_contents[] = "Signature: 8a477f597d28d172789f06886806bc55\n" "# This file is a cache directory tag created by fontconfig.\n" "# For information about cache directory tags, see:\n" "# http://www.brynosaurus.com/cachedir/\n"; static size_t cache_tag_contents_size = sizeof (cache_tag_contents) - 1; FcBool ret = FcFalse; if (!cache_dir) return FcFalse; if (access ((char *) cache_dir, W_OK) == 0) { /* Create CACHEDIR.TAG */ cache_tag = FcStrBuildFilename (cache_dir, "CACHEDIR.TAG", NULL); if (!cache_tag) return FcFalse; atomic = FcAtomicCreate ((FcChar8 *)cache_tag); if (!atomic) goto bail1; if (!FcAtomicLock (atomic)) goto bail2; fd = FcOpen((char *)FcAtomicNewFile (atomic), O_RDWR | O_CREAT, 0644); if (fd == -1) goto bail3; fp = fdopen(fd, "wb"); if (fp == NULL) goto bail3; fwrite(cache_tag_contents, cache_tag_contents_size, sizeof (FcChar8), fp); fclose(fp); if (!FcAtomicReplaceOrig(atomic)) goto bail3; ret = FcTrue; bail3: FcAtomicUnlock (atomic); bail2: FcAtomicDestroy (atomic); bail1: FcStrFree (cache_tag); } if (FcDebug () & FC_DBG_CACHE) { if (ret) printf ("Created CACHEDIR.TAG at %s\n", cache_dir); else printf ("Unable to create CACHEDIR.TAG at %s\n", cache_dir); } return ret; } void FcCacheCreateTagFile (const FcConfig *config) { FcChar8 *cache_dir = NULL, *d = NULL; FcStrList *list; const FcChar8 *sysroot = FcConfigGetSysRoot (config); list = FcConfigGetCacheDirs (config); if (!list) return; while ((cache_dir = FcStrListNext (list))) { if (d) FcStrFree (d); if (sysroot) d = FcStrBuildFilename (sysroot, cache_dir, NULL); else d = FcStrCopyFilename (cache_dir); if (FcDirCacheCreateTagFile (d)) break; } if (d) FcStrFree (d); FcStrListDone (list); } #define __fccache__ #include "fcaliastail.h" #undef __fccache__ fontconfig-2.11.1/src/fcobjshash.gperf.h0000664000076400007640000000316212267155334015051 00000000000000/* * 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 CUT_OUT_END %} %struct-type %language=ANSI-C %includes %enum %readonly-tables %define slot-name name %define hash-function-name FcObjectTypeHash %define lookup-function-name FcObjectTypeLookup %pic %define string-pool-name FcObjectTypeNamePool struct FcObjectTypeInfo { int name; int id; }; %% #define FC_OBJECT(NAME, Type, Cmp) FC_##NAME, FC_##NAME##_OBJECT #include "fcobjs.h" #undef FC_OBJECT fontconfig-2.11.1/src/fcfs.c0000664000076400007640000000712212267155334012551 00000000000000/* * fontconfig/src/fcfs.c * * 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. */ #include "fcint.h" #include FcFontSet * FcFontSetCreate (void) { FcFontSet *s; s = (FcFontSet *) malloc (sizeof (FcFontSet)); if (!s) return 0; s->nfont = 0; s->sfont = 0; s->fonts = 0; return s; } void FcFontSetDestroy (FcFontSet *s) { int i; for (i = 0; i < s->nfont; i++) FcPatternDestroy (s->fonts[i]); if (s->fonts) free (s->fonts); free (s); } FcBool FcFontSetAdd (FcFontSet *s, FcPattern *font) { FcPattern **f; int sfont; if (s->nfont == s->sfont) { sfont = s->sfont + 32; if (s->fonts) f = (FcPattern **) realloc (s->fonts, sfont * sizeof (FcPattern *)); else f = (FcPattern **) malloc (sfont * sizeof (FcPattern *)); if (!f) return FcFalse; s->sfont = sfont; s->fonts = f; } s->fonts[s->nfont++] = font; return FcTrue; } FcBool FcFontSetSerializeAlloc (FcSerialize *serialize, const FcFontSet *s) { int i; if (!FcSerializeAlloc (serialize, s, sizeof (FcFontSet))) return FcFalse; if (!FcSerializeAlloc (serialize, s->fonts, s->nfont * sizeof (FcPattern *))) return FcFalse; for (i = 0; i < s->nfont; i++) { if (!FcPatternSerializeAlloc (serialize, s->fonts[i])) return FcFalse; } return FcTrue; } FcFontSet * FcFontSetSerialize (FcSerialize *serialize, const FcFontSet * s) { int i; FcFontSet *s_serialize; FcPattern **fonts_serialize; FcPattern *p_serialize; s_serialize = FcSerializePtr (serialize, s); if (!s_serialize) return NULL; *s_serialize = *s; s_serialize->sfont = s_serialize->nfont; fonts_serialize = FcSerializePtr (serialize, s->fonts); if (!fonts_serialize) return NULL; s_serialize->fonts = FcPtrToEncodedOffset (s_serialize, fonts_serialize, FcPattern *); for (i = 0; i < s->nfont; i++) { p_serialize = FcPatternSerialize (serialize, s->fonts[i]); if (!p_serialize) return NULL; fonts_serialize[i] = FcPtrToEncodedOffset (s_serialize, p_serialize, FcPattern); } 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__ fontconfig-2.11.1/src/fcserialize.c0000664000076400007640000001047612267155334014136 00000000000000/* * Copyright © 2006 Keith Packard * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * the above copyright notice appear in all copies and that both that copyright * notice and this permission notice appear in supporting documentation, and * that the name of the copyright holders not be used in advertising or * publicity pertaining to distribution of the software without specific, * written prior permission. The copyright holders make no representations * about the suitability of this software for any purpose. It is provided "as * is" without express or implied warranty. * * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE * OF THIS SOFTWARE. */ #include "fcint.h" intptr_t FcAlignSize (intptr_t size) { intptr_t rem = size % sizeof (FcAlign); if (rem) size += sizeof (FcAlign) - rem; return size; } /* * Serialization helper object -- allocate space in the * yet-to-be-created linear array for a serialized font set */ FcSerialize * FcSerializeCreate (void) { FcSerialize *serialize; serialize = malloc (sizeof (FcSerialize)); if (!serialize) return NULL; serialize->size = 0; serialize->linear = NULL; serialize->cs_freezer = NULL; memset (serialize->buckets, '\0', sizeof (serialize->buckets)); return serialize; } void FcSerializeDestroy (FcSerialize *serialize) { uintptr_t bucket; for (bucket = 0; bucket < FC_SERIALIZE_HASH_SIZE; bucket++) { FcSerializeBucket *buck, *next; for (buck = serialize->buckets[bucket]; buck; buck = next) { next = buck->next; free (buck); } } if (serialize->cs_freezer) FcCharSetFreezerDestroy (serialize->cs_freezer); free (serialize); } /* * Allocate space for an object in the serialized array. Keep track * of where the object is placed and only allocate one copy of each object */ FcBool FcSerializeAlloc (FcSerialize *serialize, const void *object, int size) { uintptr_t bucket = ((uintptr_t) object) % FC_SERIALIZE_HASH_SIZE; FcSerializeBucket *buck; for (buck = serialize->buckets[bucket]; buck; buck = buck->next) if (buck->object == object) return FcTrue; buck = malloc (sizeof (FcSerializeBucket)); if (!buck) return FcFalse; buck->object = object; buck->offset = serialize->size; buck->next = serialize->buckets[bucket]; serialize->buckets[bucket] = buck; serialize->size += FcAlignSize (size); return FcTrue; } /* * Reserve space in the serialization array */ intptr_t FcSerializeReserve (FcSerialize *serialize, int size) { intptr_t offset = serialize->size; serialize->size += FcAlignSize (size); return offset; } /* * Given an object, return the offset in the serialized array where * the serialized copy of the object is stored */ intptr_t FcSerializeOffset (FcSerialize *serialize, const void *object) { uintptr_t bucket = ((uintptr_t) object) % FC_SERIALIZE_HASH_SIZE; FcSerializeBucket *buck; for (buck = serialize->buckets[bucket]; buck; buck = buck->next) if (buck->object == object) return buck->offset; return 0; } /* * Given a cache and an object, return a pointer to where * the serialized copy of the object is stored */ void * FcSerializePtr (FcSerialize *serialize, const void *object) { intptr_t offset = FcSerializeOffset (serialize, object); if (!offset) return NULL; return (void *) ((char *) serialize->linear + offset); } FcBool FcStrSerializeAlloc (FcSerialize *serialize, const FcChar8 *str) { return FcSerializeAlloc (serialize, str, strlen ((const char *) str) + 1); } FcChar8 * FcStrSerialize (FcSerialize *serialize, const FcChar8 *str) { FcChar8 *str_serialize = FcSerializePtr (serialize, str); if (!str_serialize) return NULL; strcpy ((char *) str_serialize, (const char *) str); return str_serialize; } #include "fcaliastail.h" #undef __fcserialize__ fontconfig-2.11.1/src/fcobjs.c0000664000076400007640000000701612267155334013100 00000000000000/* * fontconfig/src/fclist.c * * 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. */ #include "fcint.h" static unsigned int FcObjectTypeHash (register const char *str, register unsigned int len); static const struct FcObjectTypeInfo * FcObjectTypeLookup (register const char *str, register unsigned int len); #include "fcobjshash.h" #include /* The 1000 is to leave some room for future added internal objects, such * that caches from newer fontconfig can still be used with older fontconfig * without getting confused. */ static fc_atomic_int_t next_id = FC_MAX_BASE_OBJECT + FC_EXT_OBJ_INDEX; struct FcObjectOtherTypeInfo { struct FcObjectOtherTypeInfo *next; FcObjectType object; FcObject id; } *other_types; static FcObjectType * _FcObjectLookupOtherTypeByName (const char *str, FcObject *id) { struct FcObjectOtherTypeInfo *ots, *ot; retry: ots = fc_atomic_ptr_get (&other_types); for (ot = ots; ot; ot = ot->next) if (0 == strcmp (ot->object.object, str)) break; if (!ot) { ot = malloc (sizeof (*ot)); if (!ot) return NULL; ot->object.object = (const char *) FcStrdup (str); ot->object.type = FcTypeUnknown; ot->id = fc_atomic_int_add (next_id, +1); ot->next = ots; if (!fc_atomic_ptr_cmpexch (&other_types, ots, ot)) { free (ot); goto retry; } } if (id) *id = ot->id; return &ot->object; } FcObject FcObjectLookupBuiltinIdByName (const char *str) { const struct FcObjectTypeInfo *o = FcObjectTypeLookup (str, strlen (str)); if (o) return o->id; return 0; } FcObject FcObjectLookupIdByName (const char *str) { const struct FcObjectTypeInfo *o = FcObjectTypeLookup (str, strlen (str)); FcObject id; if (o) return o->id; if (_FcObjectLookupOtherTypeByName (str, &id)) return id; return 0; } const char * FcObjectLookupOtherNameById (FcObject id) { struct FcObjectOtherTypeInfo *ot; for (ot = fc_atomic_ptr_get (&other_types); ot; ot = ot->next) if (ot->id == id) return ot->object.object; return NULL; } const FcObjectType * FcObjectLookupOtherTypeByName (const char *str) { return _FcObjectLookupOtherTypeByName (str, NULL); } FcPrivate const FcObjectType * FcObjectLookupOtherTypeById (FcObject id) { struct FcObjectOtherTypeInfo *ot; for (ot = fc_atomic_ptr_get (&other_types); ot; ot = ot->next) if (ot->id == id) return &ot->object; return NULL; } #include "fcaliastail.h" #undef __fcobjs__ fontconfig-2.11.1/src/fclist.c0000664000076400007640000003264612267716733013133 00000000000000/* * fontconfig/src/fclist.c * * 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. */ #include "fcint.h" #include FcObjectSet * FcObjectSetCreate (void) { FcObjectSet *os; os = (FcObjectSet *) malloc (sizeof (FcObjectSet)); if (!os) return 0; os->nobject = 0; os->sobject = 0; os->objects = 0; return os; } FcBool FcObjectSetAdd (FcObjectSet *os, const char *object) { int s; const char **objects; int high, low, mid, c; if (os->nobject == os->sobject) { s = os->sobject + 4; if (os->objects) objects = (const char **) realloc ((void *) os->objects, s * sizeof (const char *)); else objects = (const char **) malloc (s * sizeof (const char *)); if (!objects) return FcFalse; os->objects = objects; os->sobject = s; } high = os->nobject - 1; low = 0; mid = 0; c = 1; object = strdup (object); while (low <= high) { mid = (low + high) >> 1; c = os->objects[mid] - object; if (c == 0) { FcFree (object); return FcTrue; } if (c < 0) low = mid + 1; else high = mid - 1; } if (c < 0) mid++; memmove (os->objects + mid + 1, os->objects + mid, (os->nobject - mid) * sizeof (const char *)); os->objects[mid] = object; os->nobject++; return FcTrue; } void FcObjectSetDestroy (FcObjectSet *os) { int i; if (os->objects) { for (i = 0; i < os->nobject; i++) FcFree (os->objects[i]); free ((void *) os->objects); } free (os); } FcObjectSet * FcObjectSetVaBuild (const char *first, va_list va) { FcObjectSet *ret; FcObjectSetVapBuild (ret, first, va); return ret; } FcObjectSet * FcObjectSetBuild (const char *first, ...) { va_list va; FcObjectSet *os; va_start (va, first); FcObjectSetVapBuild (os, first, va); va_end (va); return os; } /* * Font must have a containing value for every value in the pattern */ static FcBool FcListValueListMatchAny (FcValueListPtr patOrig, /* pattern */ FcValueListPtr fntOrig) /* font */ { FcValueListPtr pat, fnt; for (pat = patOrig; pat != NULL; pat = FcValueListNext(pat)) { for (fnt = fntOrig; fnt != NULL; fnt = FcValueListNext(fnt)) { /* * make sure the font 'contains' the pattern. * (OpListing is OpContains except for strings * where it requires an exact match) */ if (FcConfigCompareValue (&fnt->value, FC_OP (FcOpListing, FcOpFlagIgnoreBlanks), &pat->value)) break; } if (fnt == NULL) return FcFalse; } return FcTrue; } static FcBool FcListValueListEqual (FcValueListPtr v1orig, FcValueListPtr v2orig) { FcValueListPtr v1, v2; for (v1 = v1orig; v1 != NULL; v1 = FcValueListNext(v1)) { for (v2 = v2orig; v2 != NULL; v2 = FcValueListNext(v2)) if (FcValueEqual (FcValueCanonicalize(&(v1)->value), FcValueCanonicalize(&(v2)->value))) break; if (v2 == NULL) return FcFalse; } for (v2 = v2orig; v2 != NULL; v2 = FcValueListNext(v2)) { for (v1 = v1orig; v1 != NULL; v1 = FcValueListNext(v1)) if (FcValueEqual (FcValueCanonicalize(&v1->value), FcValueCanonicalize(&v2->value))) break; if (v1 == NULL) return FcFalse; } return FcTrue; } static FcBool FcListPatternEqual (FcPattern *p1, FcPattern *p2, FcObjectSet *os) { int i; FcPatternElt *e1, *e2; for (i = 0; i < os->nobject; i++) { e1 = FcPatternObjectFindElt (p1, FcObjectFromName (os->objects[i])); e2 = FcPatternObjectFindElt (p2, FcObjectFromName (os->objects[i])); if (!e1 && !e2) continue; if (!e1 || !e2) return FcFalse; if (!FcListValueListEqual (FcPatternEltValues(e1), FcPatternEltValues(e2))) return FcFalse; } return FcTrue; } /* * FcTrue iff all objects in "p" match "font" */ FcBool FcListPatternMatchAny (const FcPattern *p, const FcPattern *font) { int i; if (!p) return FcFalse; for (i = 0; i < p->num; i++) { FcPatternElt *pe = &FcPatternElts(p)[i]; FcPatternElt *fe; if (pe->object == FC_NAMELANG_OBJECT) { /* "namelang" object is the alias object to change "familylang", * "stylelang" and "fullnamelang" object alltogether. it won't be * available on the font pattern. so checking its availability * causes no results. we should ignore it here. */ continue; } fe = FcPatternObjectFindElt (font, pe->object); if (!fe) return FcFalse; if (!FcListValueListMatchAny (FcPatternEltValues(pe), /* pat elts */ FcPatternEltValues(fe))) /* font elts */ return FcFalse; } return FcTrue; } static FcChar32 FcListMatrixHash (const FcMatrix *m) { int xx = (int) (m->xx * 100), xy = (int) (m->xy * 100), yx = (int) (m->yx * 100), yy = (int) (m->yy * 100); return ((FcChar32) xx) ^ ((FcChar32) xy) ^ ((FcChar32) yx) ^ ((FcChar32) yy); } static FcChar32 FcListValueHash (FcValue *value) { FcValue v = FcValueCanonicalize(value); switch (v.type) { case FcTypeUnknown: case FcTypeVoid: return 0; case FcTypeInteger: return (FcChar32) v.u.i; case FcTypeDouble: return (FcChar32) (int) v.u.d; case FcTypeString: return FcStrHashIgnoreCase (v.u.s); case FcTypeBool: return (FcChar32) v.u.b; case FcTypeMatrix: return FcListMatrixHash (v.u.m); case FcTypeCharSet: return FcCharSetCount (v.u.c); case FcTypeFTFace: return (long) v.u.f; case FcTypeLangSet: return FcLangSetHash (v.u.l); } return 0; } static FcChar32 FcListValueListHash (FcValueListPtr list) { FcChar32 h = 0; while (list != NULL) { h = h ^ FcListValueHash (&list->value); list = FcValueListNext(list); } return h; } static FcChar32 FcListPatternHash (FcPattern *font, FcObjectSet *os) { int n; FcPatternElt *e; FcChar32 h = 0; for (n = 0; n < os->nobject; n++) { e = FcPatternObjectFindElt (font, FcObjectFromName (os->objects[n])); if (e) h = h ^ FcListValueListHash (FcPatternEltValues(e)); } return h; } typedef struct _FcListBucket { struct _FcListBucket *next; FcChar32 hash; FcPattern *pattern; } FcListBucket; #define FC_LIST_HASH_SIZE 4099 typedef struct _FcListHashTable { int entries; FcListBucket *buckets[FC_LIST_HASH_SIZE]; } FcListHashTable; static void FcListHashTableInit (FcListHashTable *table) { table->entries = 0; memset (table->buckets, '\0', sizeof (table->buckets)); } static void FcListHashTableCleanup (FcListHashTable *table) { int i; FcListBucket *bucket, *next; for (i = 0; i < FC_LIST_HASH_SIZE; i++) { for (bucket = table->buckets[i]; bucket; bucket = next) { next = bucket->next; FcPatternDestroy (bucket->pattern); free (bucket); } table->buckets[i] = 0; } table->entries = 0; } static int FcGetDefaultObjectLangIndex (FcPattern *font, FcObject object, const FcChar8 *lang) { FcPatternElt *e = FcPatternObjectFindElt (font, object); FcValueListPtr v; FcValue value; int idx = -1; int defidx = -1; int i; if (e) { for (v = FcPatternEltValues(e), i = 0; v; v = FcValueListNext(v), ++i) { value = FcValueCanonicalize (&v->value); if (value.type == FcTypeString) { FcLangResult res = FcLangCompare (value.u.s, lang); if (res == FcLangEqual) return i; if (res == FcLangDifferentCountry && idx < 0) idx = i; if (defidx < 0) { /* workaround for fonts that has non-English value * at the head of values. */ res = FcLangCompare (value.u.s, (FcChar8 *)"en"); if (res == FcLangEqual) defidx = i; } } } } return (idx > 0) ? idx : (defidx > 0) ? defidx : 0; } static FcBool FcListAppend (FcListHashTable *table, FcPattern *font, FcObjectSet *os, const FcChar8 *lang) { int o; FcPatternElt *e; FcValueListPtr v; FcChar32 hash; FcListBucket **prev, *bucket; int familyidx = -1; int fullnameidx = -1; int styleidx = -1; int defidx = 0; int idx; hash = FcListPatternHash (font, os); for (prev = &table->buckets[hash % FC_LIST_HASH_SIZE]; (bucket = *prev); prev = &(bucket->next)) { if (bucket->hash == hash && FcListPatternEqual (bucket->pattern, font, os)) return FcTrue; } bucket = (FcListBucket *) malloc (sizeof (FcListBucket)); if (!bucket) goto bail0; bucket->next = 0; bucket->hash = hash; bucket->pattern = FcPatternCreate (); if (!bucket->pattern) goto bail1; for (o = 0; o < os->nobject; o++) { if (!strcmp (os->objects[o], FC_FAMILY) || !strcmp (os->objects[o], FC_FAMILYLANG)) { if (familyidx < 0) familyidx = FcGetDefaultObjectLangIndex (font, FC_FAMILYLANG_OBJECT, lang); defidx = familyidx; } else if (!strcmp (os->objects[o], FC_FULLNAME) || !strcmp (os->objects[o], FC_FULLNAMELANG)) { if (fullnameidx < 0) fullnameidx = FcGetDefaultObjectLangIndex (font, FC_FULLNAMELANG_OBJECT, lang); defidx = fullnameidx; } else if (!strcmp (os->objects[o], FC_STYLE) || !strcmp (os->objects[o], FC_STYLELANG)) { if (styleidx < 0) styleidx = FcGetDefaultObjectLangIndex (font, FC_STYLELANG_OBJECT, lang); defidx = styleidx; } else defidx = 0; e = FcPatternObjectFindElt (font, FcObjectFromName (os->objects[o])); if (e) { for (v = FcPatternEltValues(e), idx = 0; v; v = FcValueListNext(v), ++idx) { if (!FcPatternAdd (bucket->pattern, os->objects[o], FcValueCanonicalize(&v->value), defidx != idx)) goto bail2; } } } *prev = bucket; ++table->entries; return FcTrue; bail2: FcPatternDestroy (bucket->pattern); bail1: free (bucket); bail0: return FcFalse; } FcFontSet * FcFontSetList (FcConfig *config, FcFontSet **sets, int nsets, FcPattern *p, FcObjectSet *os) { FcFontSet *ret; FcFontSet *s; int f; int set; FcListHashTable table; int i; FcListBucket *bucket; int destroy_os = 0; if (!config) { if (!FcInitBringUptoDate ()) goto bail0; config = FcConfigGetCurrent (); if (!config) goto bail0; } FcListHashTableInit (&table); if (!os) { os = FcObjectGetSet (); destroy_os = 1; } /* * Walk all available fonts adding those that * match to the hash table */ for (set = 0; set < nsets; set++) { s = sets[set]; if (!s) continue; for (f = 0; f < s->nfont; f++) if (FcListPatternMatchAny (p, /* pattern */ s->fonts[f])) /* font */ { FcChar8 *lang; if (FcPatternObjectGetString (p, FC_NAMELANG_OBJECT, 0, &lang) != FcResultMatch) { lang = FcGetDefaultLang (); } if (!FcListAppend (&table, s->fonts[f], os, lang)) goto bail1; } } #if 0 { int max = 0; int full = 0; int ents = 0; int len; for (i = 0; i < FC_LIST_HASH_SIZE; i++) { if ((bucket = table.buckets[i])) { len = 0; for (; bucket; bucket = bucket->next) { ents++; len++; } if (len > max) max = len; full++; } } printf ("used: %d max: %d avg: %g\n", full, max, (double) ents / FC_LIST_HASH_SIZE); } #endif /* * Walk the hash table and build * a font set */ ret = FcFontSetCreate (); if (!ret) goto bail0; for (i = 0; i < FC_LIST_HASH_SIZE; i++) while ((bucket = table.buckets[i])) { if (!FcFontSetAdd (ret, bucket->pattern)) goto bail2; table.buckets[i] = bucket->next; free (bucket); } return ret; bail2: FcFontSetDestroy (ret); bail1: FcListHashTableCleanup (&table); bail0: if (destroy_os) FcObjectSetDestroy (os); return 0; } FcFontSet * FcFontList (FcConfig *config, FcPattern *p, FcObjectSet *os) { FcFontSet *sets[2]; int nsets; if (!config) { if (!FcInitBringUptoDate ()) return 0; config = FcConfigGetCurrent (); if (!config) return 0; } nsets = 0; if (config->fonts[FcSetSystem]) sets[nsets++] = config->fonts[FcSetSystem]; if (config->fonts[FcSetApplication]) sets[nsets++] = config->fonts[FcSetApplication]; return FcFontSetList (config, sets, nsets, p, os); } #define __fclist__ #include "fcaliastail.h" #undef __fclist__ fontconfig-2.11.1/src/fcpat.c0000664000076400007640000006515512267155334012737 00000000000000/* * 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. */ #include "fcint.h" #include "fcftint.h" /* Objects MT-safe for readonly access. */ FcPattern * FcPatternCreate (void) { FcPattern *p; 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); FcRefInit (&p->ref, 1); return p; } void FcValueDestroy (FcValue v) { switch ((int) v.type) { case FcTypeString: FcFree (v.u.s); break; case FcTypeMatrix: FcMatrixFree ((FcMatrix *) v.u.m); break; case FcTypeCharSet: FcCharSetDestroy ((FcCharSet *) v.u.c); break; case FcTypeLangSet: FcLangSetDestroy ((FcLangSet *) v.u.l); break; default: break; } } FcValue FcValueCanonicalize (const FcValue *v) { FcValue new; switch ((int) v->type) { case FcTypeString: new.u.s = FcValueString(v); new.type = FcTypeString; break; case FcTypeCharSet: new.u.c = FcValueCharSet(v); new.type = FcTypeCharSet; break; case FcTypeLangSet: new.u.l = FcValueLangSet(v); new.type = FcTypeLangSet; break; default: new = *v; break; } return new; } FcValue FcValueSave (FcValue v) { switch ((int) v.type) { case FcTypeString: v.u.s = FcStrdup (v.u.s); if (!v.u.s) v.type = FcTypeVoid; break; case FcTypeMatrix: v.u.m = FcMatrixCopy (v.u.m); if (!v.u.m) v.type = FcTypeVoid; break; case FcTypeCharSet: v.u.c = FcCharSetCopy ((FcCharSet *) v.u.c); if (!v.u.c) v.type = FcTypeVoid; break; case FcTypeLangSet: v.u.l = FcLangSetCopy (v.u.l); if (!v.u.l) v.type = FcTypeVoid; break; default: break; } return v; } FcValueListPtr FcValueListCreate (void) { return calloc (1, sizeof (FcValueList)); } void FcValueListDestroy (FcValueListPtr l) { FcValueListPtr next; for (; l; l = next) { switch ((int) l->value.type) { case FcTypeString: FcFree (l->value.u.s); break; case FcTypeMatrix: FcMatrixFree ((FcMatrix *)l->value.u.m); break; case FcTypeCharSet: FcCharSetDestroy ((FcCharSet *) (l->value.u.c)); break; case FcTypeLangSet: FcLangSetDestroy ((FcLangSet *) (l->value.u.l)); break; default: break; } next = FcValueListNext(l); free(l); } } FcValueListPtr FcValueListPrepend (FcValueListPtr vallist, FcValue value, FcValueBinding binding) { FcValueListPtr new; if (value.type == FcTypeVoid) return vallist; new = FcValueListCreate (); if (!new) return vallist; new->value = FcValueSave (value); new->binding = binding; new->next = vallist; return new; } FcValueListPtr FcValueListAppend (FcValueListPtr vallist, FcValue value, FcValueBinding binding) { FcValueListPtr new, last; if (value.type == FcTypeVoid) return vallist; new = FcValueListCreate (); if (!new) return vallist; new->value = FcValueSave (value); new->binding = binding; new->next = NULL; if (vallist) { for (last = vallist; FcValueListNext (last); last = FcValueListNext (last)); last->next = new; } else vallist = new; return vallist; } FcValueListPtr FcValueListDuplicate(FcValueListPtr orig) { FcValueListPtr new = NULL, l, t = NULL; FcValue v; for (l = orig; l != NULL; l = FcValueListNext (l)) { if (!new) { t = new = FcValueListCreate(); } else { t->next = FcValueListCreate(); t = FcValueListNext (t); } v = FcValueCanonicalize (&l->value); t->value = FcValueSave (v); t->binding = l->binding; t->next = NULL; } return new; } FcBool FcValueEqual (FcValue va, FcValue vb) { if (va.type != vb.type) { if (va.type == FcTypeInteger) { va.type = FcTypeDouble; va.u.d = va.u.i; } if (vb.type == FcTypeInteger) { vb.type = FcTypeDouble; vb.u.d = vb.u.i; } if (va.type != vb.type) return FcFalse; } switch (va.type) { case FcTypeUnknown: return FcFalse; /* don't know how to compare this object */ case FcTypeVoid: return FcTrue; case FcTypeInteger: return va.u.i == vb.u.i; case FcTypeDouble: return va.u.d == vb.u.d; case FcTypeString: return FcStrCmpIgnoreCase (va.u.s, vb.u.s) == 0; case FcTypeBool: return va.u.b == vb.u.b; case FcTypeMatrix: return FcMatrixEqual (va.u.m, vb.u.m); case FcTypeCharSet: return FcCharSetEqual (va.u.c, vb.u.c); case FcTypeFTFace: return va.u.f == vb.u.f; case FcTypeLangSet: return FcLangSetEqual (va.u.l, vb.u.l); } return FcFalse; } static FcChar32 FcDoubleHash (double d) { if (d < 0) d = -d; if (d > 0xffffffff) d = 0xffffffff; return (FcChar32) d; } FcChar32 FcStringHash (const FcChar8 *s) { FcChar8 c; FcChar32 h = 0; if (s) while ((c = *s++)) h = ((h << 1) | (h >> 31)) ^ c; return h; } static FcChar32 FcValueHash (const FcValue *v) { switch (v->type) { case FcTypeUnknown: case FcTypeVoid: return 0; case FcTypeInteger: return (FcChar32) v->u.i; case FcTypeDouble: return FcDoubleHash (v->u.d); case FcTypeString: return FcStringHash (FcValueString(v)); case FcTypeBool: return (FcChar32) v->u.b; case FcTypeMatrix: return (FcDoubleHash (v->u.m->xx) ^ FcDoubleHash (v->u.m->xy) ^ FcDoubleHash (v->u.m->yx) ^ FcDoubleHash (v->u.m->yy)); case FcTypeCharSet: return (FcChar32) FcValueCharSet(v)->num; case FcTypeFTFace: return FcStringHash ((const FcChar8 *) ((FT_Face) v->u.f)->family_name) ^ FcStringHash ((const FcChar8 *) ((FT_Face) v->u.f)->style_name); case FcTypeLangSet: return FcLangSetHash (FcValueLangSet(v)); } return 0; } static FcBool FcValueListEqual (FcValueListPtr la, FcValueListPtr lb) { if (la == lb) return FcTrue; while (la && lb) { if (!FcValueEqual (la->value, lb->value)) return FcFalse; la = FcValueListNext(la); lb = FcValueListNext(lb); } if (la || lb) return FcFalse; return FcTrue; } static FcChar32 FcValueListHash (FcValueListPtr l) { FcChar32 hash = 0; for (; l; l = FcValueListNext(l)) { hash = ((hash << 1) | (hash >> 31)) ^ FcValueHash (&l->value); } return hash; } void FcPatternDestroy (FcPattern *p) { int i; FcPatternElt *elts; if (!p) return; if (FcRefIsConst (&p->ref)) { FcCacheObjectDereference (p); return; } if (FcRefDec (&p->ref) != 1) return; elts = FcPatternElts (p); for (i = 0; i < p->num; i++) FcValueListDestroy (FcPatternEltValues(&elts[i])); free (elts); free (p); } static int FcPatternObjectPosition (const FcPattern *p, FcObject object) { int low, high, mid, c; FcPatternElt *elts = FcPatternElts(p); low = 0; high = p->num - 1; c = 1; mid = 0; while (low <= high) { mid = (low + high) >> 1; c = elts[mid].object - object; if (c == 0) return mid; if (c < 0) low = mid + 1; else high = mid - 1; } if (c < 0) mid++; return -(mid + 1); } FcPatternElt * FcPatternObjectFindElt (const FcPattern *p, FcObject object) { int i = FcPatternObjectPosition (p, object); if (i < 0) return 0; return &FcPatternElts(p)[i]; } FcPatternElt * FcPatternObjectInsertElt (FcPattern *p, FcObject object) { int i; FcPatternElt *e; i = FcPatternObjectPosition (p, object); if (i < 0) { i = -i - 1; /* reallocate array */ if (p->num + 1 >= p->size) { int s = p->size + 16; if (p->size) { FcPatternElt *e0 = FcPatternElts(p); e = (FcPatternElt *) realloc (e0, s * sizeof (FcPatternElt)); if (!e) /* maybe it was mmapped */ { e = malloc(s * sizeof (FcPatternElt)); if (e) memcpy(e, e0, p->num * sizeof (FcPatternElt)); } } else e = (FcPatternElt *) malloc (s * sizeof (FcPatternElt)); if (!e) return FcFalse; p->elts_offset = FcPtrToOffset (p, e); while (p->size < s) { e[p->size].object = 0; e[p->size].values = NULL; p->size++; } } e = FcPatternElts(p); /* move elts up */ memmove (e + i + 1, e + i, sizeof (FcPatternElt) * (p->num - i)); /* bump count */ p->num++; e[i].object = object; e[i].values = NULL; } return FcPatternElts(p) + i; } FcBool FcPatternEqual (const FcPattern *pa, const FcPattern *pb) { int i; FcPatternElt *pae, *pbe; if (pa == pb) return FcTrue; if (pa->num != pb->num) return FcFalse; pae = FcPatternElts(pa); pbe = FcPatternElts(pb); for (i = 0; i < pa->num; i++) { if (pae[i].object != pbe[i].object) return FcFalse; if (!FcValueListEqual (FcPatternEltValues(&pae[i]), FcPatternEltValues(&pbe[i]))) return FcFalse; } return FcTrue; } FcChar32 FcPatternHash (const FcPattern *p) { int i; FcChar32 h = 0; FcPatternElt *pe = FcPatternElts(p); for (i = 0; i < p->num; i++) { h = (((h << 1) | (h >> 31)) ^ pe[i].object ^ FcValueListHash (FcPatternEltValues(&pe[i]))); } return h; } FcBool FcPatternEqualSubset (const FcPattern *pai, const FcPattern *pbi, const FcObjectSet *os) { FcPatternElt *ea, *eb; int i; for (i = 0; i < os->nobject; i++) { FcObject object = FcObjectFromName (os->objects[i]); ea = FcPatternObjectFindElt (pai, object); eb = FcPatternObjectFindElt (pbi, object); if (ea) { if (!eb) return FcFalse; if (!FcValueListEqual (FcPatternEltValues(ea), FcPatternEltValues(eb))) return FcFalse; } else { if (eb) return FcFalse; } } return FcTrue; } FcBool FcPatternObjectListAdd (FcPattern *p, FcObject object, FcValueListPtr list, FcBool append) { FcPatternElt *e; FcValueListPtr l, *prev; if (FcRefIsConst (&p->ref)) goto bail0; /* * Make sure the stored type is valid for built-in objects */ for (l = list; l != NULL; l = FcValueListNext (l)) { if (!FcObjectValidType (object, l->value.type)) { fprintf (stderr, "Fontconfig warning: FcPattern object %s does not accept value", FcObjectName (object)); FcValuePrintFile (stderr, l->value); fprintf (stderr, "\n"); goto bail0; } } e = FcPatternObjectInsertElt (p, object); if (!e) goto bail0; if (append) { for (prev = &e->values; *prev; prev = &(*prev)->next) ; *prev = list; } else { for (prev = &list; *prev; prev = &(*prev)->next) ; *prev = e->values; e->values = list; } return FcTrue; bail0: return FcFalse; } FcBool FcPatternObjectAddWithBinding (FcPattern *p, FcObject object, FcValue value, FcValueBinding binding, FcBool append) { FcPatternElt *e; FcValueListPtr new, *prev; if (FcRefIsConst (&p->ref)) goto bail0; new = FcValueListCreate (); if (!new) goto bail0; value = FcValueSave (value); if (value.type == FcTypeVoid) goto bail1; /* * Make sure the stored type is valid for built-in objects */ if (!FcObjectValidType (object, value.type)) { fprintf (stderr, "Fontconfig warning: FcPattern object %s does not accept value", FcObjectName (object)); FcValuePrintFile (stderr, value); fprintf (stderr, "\n"); goto bail1; } new->value = value; new->binding = binding; new->next = NULL; e = FcPatternObjectInsertElt (p, object); if (!e) goto bail2; if (append) { for (prev = &e->values; *prev; prev = &(*prev)->next) ; *prev = new; } else { new->next = e->values; e->values = new; } return FcTrue; bail2: FcValueDestroy (value); bail1: free (new); bail0: return FcFalse; } FcBool FcPatternObjectAdd (FcPattern *p, FcObject object, FcValue value, FcBool append) { return FcPatternObjectAddWithBinding (p, object, value, FcValueBindingStrong, append); } FcBool FcPatternAdd (FcPattern *p, const char *object, FcValue value, FcBool append) { return FcPatternObjectAddWithBinding (p, FcObjectFromName (object), value, FcValueBindingStrong, append); } FcBool FcPatternAddWeak (FcPattern *p, const char *object, FcValue value, FcBool append) { return FcPatternObjectAddWithBinding (p, FcObjectFromName (object), value, FcValueBindingWeak, append); } FcBool FcPatternObjectDel (FcPattern *p, FcObject object) { FcPatternElt *e; e = FcPatternObjectFindElt (p, object); if (!e) return FcFalse; /* destroy value */ FcValueListDestroy (e->values); /* shuffle existing ones down */ memmove (e, e+1, (FcPatternElts(p) + p->num - (e + 1)) * sizeof (FcPatternElt)); p->num--; e = FcPatternElts(p) + p->num; e->object = 0; e->values = NULL; return FcTrue; } FcBool FcPatternDel (FcPattern *p, const char *object) { return FcPatternObjectDel (p, FcObjectFromName (object)); } FcBool FcPatternRemove (FcPattern *p, const char *object, int id) { FcPatternElt *e; FcValueListPtr *prev, l; e = FcPatternObjectFindElt (p, FcObjectFromName (object)); if (!e) return FcFalse; for (prev = &e->values; (l = *prev); prev = &l->next) { if (!id) { *prev = l->next; l->next = NULL; FcValueListDestroy (l); if (!e->values) FcPatternDel (p, object); return FcTrue; } id--; } return FcFalse; } FcBool FcPatternObjectAddInteger (FcPattern *p, FcObject object, int i) { FcValue v; v.type = FcTypeInteger; v.u.i = i; return FcPatternObjectAdd (p, object, v, FcTrue); } FcBool FcPatternAddInteger (FcPattern *p, const char *object, int i) { return FcPatternObjectAddInteger (p, FcObjectFromName (object), i); } FcBool FcPatternObjectAddDouble (FcPattern *p, FcObject object, double d) { FcValue v; v.type = FcTypeDouble; v.u.d = d; return FcPatternObjectAdd (p, object, v, FcTrue); } FcBool FcPatternAddDouble (FcPattern *p, const char *object, double d) { return FcPatternObjectAddDouble (p, FcObjectFromName (object), d); } FcBool FcPatternObjectAddString (FcPattern *p, FcObject object, const FcChar8 *s) { FcValue v; if (!s) { v.type = FcTypeVoid; v.u.s = 0; return FcPatternObjectAdd (p, object, v, FcTrue); } v.type = FcTypeString; v.u.s = s; return FcPatternObjectAdd (p, object, v, FcTrue); } FcBool FcPatternAddString (FcPattern *p, const char *object, const FcChar8 *s) { return FcPatternObjectAddString (p, FcObjectFromName (object), s); } FcBool FcPatternAddMatrix (FcPattern *p, const char *object, const FcMatrix *s) { FcValue v; v.type = FcTypeMatrix; v.u.m = s; return FcPatternAdd (p, object, v, FcTrue); } FcBool FcPatternObjectAddBool (FcPattern *p, FcObject object, FcBool b) { FcValue v; v.type = FcTypeBool; v.u.b = b; return FcPatternObjectAdd (p, object, v, FcTrue); } FcBool FcPatternAddBool (FcPattern *p, const char *object, FcBool b) { return FcPatternObjectAddBool (p, FcObjectFromName (object), b); } FcBool FcPatternAddCharSet (FcPattern *p, const char *object, const FcCharSet *c) { FcValue v; v.type = FcTypeCharSet; v.u.c = (FcCharSet *)c; return FcPatternAdd (p, object, v, FcTrue); } FcBool FcPatternAddFTFace (FcPattern *p, const char *object, const FT_Face f) { FcValue v; v.type = FcTypeFTFace; v.u.f = (void *) f; return FcPatternAdd (p, object, v, FcTrue); } FcBool FcPatternAddLangSet (FcPattern *p, const char *object, const FcLangSet *ls) { FcValue v; v.type = FcTypeLangSet; v.u.l = (FcLangSet *)ls; return FcPatternAdd (p, object, v, FcTrue); } FcResult FcPatternObjectGet (const FcPattern *p, FcObject object, int id, FcValue *v) { FcPatternElt *e; FcValueListPtr l; if (!p) return FcResultNoMatch; e = FcPatternObjectFindElt (p, object); if (!e) return FcResultNoMatch; for (l = FcPatternEltValues(e); l; l = FcValueListNext(l)) { if (!id) { *v = FcValueCanonicalize(&l->value); return FcResultMatch; } id--; } return FcResultNoId; } FcResult FcPatternGet (const FcPattern *p, const char *object, int id, FcValue *v) { return FcPatternObjectGet (p, FcObjectFromName (object), id, v); } FcResult FcPatternObjectGetInteger (const FcPattern *p, FcObject object, int id, int *i) { FcValue v; FcResult r; r = FcPatternObjectGet (p, object, id, &v); if (r != FcResultMatch) return r; switch ((int) v.type) { case FcTypeDouble: *i = (int) v.u.d; break; case FcTypeInteger: *i = v.u.i; break; default: return FcResultTypeMismatch; } return FcResultMatch; } FcResult FcPatternGetInteger (const FcPattern *p, const char *object, int id, int *i) { return FcPatternObjectGetInteger (p, FcObjectFromName (object), id, i); } FcResult FcPatternObjectGetDouble (const FcPattern *p, FcObject object, int id, double *d) { FcValue v; FcResult r; r = FcPatternObjectGet (p, object, id, &v); if (r != FcResultMatch) return r; switch ((int) v.type) { case FcTypeDouble: *d = v.u.d; break; case FcTypeInteger: *d = (double) v.u.i; break; default: return FcResultTypeMismatch; } return FcResultMatch; } FcResult FcPatternGetDouble (const FcPattern *p, const char *object, int id, double *d) { return FcPatternObjectGetDouble (p, FcObjectFromName (object), id, d); } FcResult FcPatternObjectGetString (const FcPattern *p, FcObject object, int id, FcChar8 ** s) { FcValue v; FcResult r; r = FcPatternObjectGet (p, object, id, &v); if (r != FcResultMatch) return r; if (v.type != FcTypeString) return FcResultTypeMismatch; *s = (FcChar8 *) v.u.s; return FcResultMatch; } FcResult FcPatternGetString (const FcPattern *p, const char *object, int id, FcChar8 ** s) { return FcPatternObjectGetString (p, FcObjectFromName (object), id, s); } FcResult FcPatternGetMatrix(const FcPattern *p, const char *object, int id, FcMatrix **m) { FcValue v; FcResult r; r = FcPatternGet (p, object, id, &v); if (r != FcResultMatch) return r; if (v.type != FcTypeMatrix) return FcResultTypeMismatch; *m = (FcMatrix *)v.u.m; return FcResultMatch; } FcResult FcPatternGetBool(const FcPattern *p, const char *object, int id, FcBool *b) { FcValue v; FcResult r; r = FcPatternGet (p, object, id, &v); if (r != FcResultMatch) return r; if (v.type != FcTypeBool) return FcResultTypeMismatch; *b = v.u.b; return FcResultMatch; } FcResult FcPatternGetCharSet(const FcPattern *p, const char *object, int id, FcCharSet **c) { FcValue v; FcResult r; r = FcPatternGet (p, object, id, &v); if (r != FcResultMatch) return r; if (v.type != FcTypeCharSet) return FcResultTypeMismatch; *c = (FcCharSet *)v.u.c; return FcResultMatch; } FcResult FcPatternGetFTFace(const FcPattern *p, const char *object, int id, FT_Face *f) { FcValue v; FcResult r; r = FcPatternGet (p, object, id, &v); if (r != FcResultMatch) return r; if (v.type != FcTypeFTFace) return FcResultTypeMismatch; *f = (FT_Face) v.u.f; return FcResultMatch; } FcResult FcPatternGetLangSet(const FcPattern *p, const char *object, int id, FcLangSet **ls) { FcValue v; FcResult r; r = FcPatternGet (p, object, id, &v); if (r != FcResultMatch) return r; if (v.type != FcTypeLangSet) return FcResultTypeMismatch; *ls = (FcLangSet *)v.u.l; return FcResultMatch; } FcPattern * FcPatternDuplicate (const FcPattern *orig) { FcPattern *new; FcPatternElt *e; int i; FcValueListPtr l; new = FcPatternCreate (); if (!new) goto bail0; e = FcPatternElts(orig); for (i = 0; i < orig->num; i++) { for (l = FcPatternEltValues(e + i); l; l = FcValueListNext(l)) { if (!FcPatternObjectAddWithBinding (new, e[i].object, FcValueCanonicalize(&l->value), l->binding, FcTrue)) goto bail1; } } return new; bail1: FcPatternDestroy (new); bail0: return 0; } void FcPatternReference (FcPattern *p) { if (!FcRefIsConst (&p->ref)) FcRefInc (&p->ref); else FcCacheObjectReference (p); } FcPattern * FcPatternVaBuild (FcPattern *p, va_list va) { FcPattern *ret; FcPatternVapBuild (ret, p, va); return ret; } FcPattern * FcPatternBuild (FcPattern *p, ...) { va_list va; va_start (va, p); FcPatternVapBuild (p, p, va); va_end (va); return p; } /* * Add all of the elements in 's' to 'p' */ FcBool FcPatternAppend (FcPattern *p, FcPattern *s) { int i; FcPatternElt *e; FcValueListPtr v; for (i = 0; i < s->num; i++) { e = FcPatternElts(s)+i; for (v = FcPatternEltValues(e); v; v = FcValueListNext(v)) { if (!FcPatternObjectAddWithBinding (p, e->object, FcValueCanonicalize(&v->value), v->binding, FcTrue)) return FcFalse; } } return FcTrue; } FcPattern * FcPatternFilter (FcPattern *p, const FcObjectSet *os) { int i; FcPattern *ret; FcPatternElt *e; FcValueListPtr v; if (!os) return FcPatternDuplicate (p); ret = FcPatternCreate (); if (!ret) return NULL; for (i = 0; i < os->nobject; i++) { FcObject object = FcObjectFromName (os->objects[i]); e = FcPatternObjectFindElt (p, object); if (e) { for (v = FcPatternEltValues(e); v; v = FcValueListNext(v)) { if (!FcPatternObjectAddWithBinding (ret, e->object, FcValueCanonicalize(&v->value), v->binding, FcTrue)) goto bail0; } } } return ret; bail0: FcPatternDestroy (ret); return NULL; } FcBool FcPatternSerializeAlloc (FcSerialize *serialize, const FcPattern *pat) { int i; FcPatternElt *elts = FcPatternElts(pat); if (!FcSerializeAlloc (serialize, pat, sizeof (FcPattern))) return FcFalse; if (!FcSerializeAlloc (serialize, elts, pat->num * sizeof (FcPatternElt))) return FcFalse; for (i = 0; i < pat->num; i++) if (!FcValueListSerializeAlloc (serialize, FcPatternEltValues(elts+i))) return FcFalse; return FcTrue; } FcPattern * FcPatternSerialize (FcSerialize *serialize, const FcPattern *pat) { FcPattern *pat_serialized; FcPatternElt *elts = FcPatternElts (pat); FcPatternElt *elts_serialized; FcValueList *values_serialized; int i; pat_serialized = FcSerializePtr (serialize, pat); if (!pat_serialized) return NULL; *pat_serialized = *pat; pat_serialized->size = pat->num; FcRefSetConst (&pat_serialized->ref); elts_serialized = FcSerializePtr (serialize, elts); if (!elts_serialized) return NULL; pat_serialized->elts_offset = FcPtrToOffset (pat_serialized, elts_serialized); for (i = 0; i < pat->num; i++) { values_serialized = FcValueListSerialize (serialize, FcPatternEltValues (elts+i)); if (!values_serialized) return NULL; elts_serialized[i].object = elts[i].object; elts_serialized[i].values = FcPtrToEncodedOffset (&elts_serialized[i], values_serialized, FcValueList); } if (FcDebug() & FC_DBG_CACHEV) { printf ("Raw pattern:\n"); FcPatternPrint (pat); printf ("Serialized pattern:\n"); FcPatternPrint (pat_serialized); printf ("\n"); } return pat_serialized; } FcBool FcValueListSerializeAlloc (FcSerialize *serialize, const FcValueList *vl) { while (vl) { if (!FcSerializeAlloc (serialize, vl, sizeof (FcValueList))) return FcFalse; switch ((int) vl->value.type) { case FcTypeString: if (!FcStrSerializeAlloc (serialize, vl->value.u.s)) return FcFalse; break; case FcTypeCharSet: if (!FcCharSetSerializeAlloc (serialize, vl->value.u.c)) return FcFalse; break; case FcTypeLangSet: if (!FcLangSetSerializeAlloc (serialize, vl->value.u.l)) return FcFalse; break; default: break; } vl = vl->next; } return FcTrue; } FcValueList * FcValueListSerialize (FcSerialize *serialize, const FcValueList *vl) { FcValueList *vl_serialized; FcChar8 *s_serialized; FcCharSet *c_serialized; FcLangSet *l_serialized; FcValueList *head_serialized = NULL; FcValueList *prev_serialized = NULL; while (vl) { vl_serialized = FcSerializePtr (serialize, vl); if (!vl_serialized) return NULL; if (prev_serialized) prev_serialized->next = FcPtrToEncodedOffset (prev_serialized, vl_serialized, FcValueList); else head_serialized = vl_serialized; vl_serialized->next = NULL; vl_serialized->value.type = vl->value.type; switch ((int) vl->value.type) { case FcTypeInteger: vl_serialized->value.u.i = vl->value.u.i; break; case FcTypeDouble: vl_serialized->value.u.d = vl->value.u.d; break; case FcTypeString: s_serialized = FcStrSerialize (serialize, vl->value.u.s); if (!s_serialized) return NULL; vl_serialized->value.u.s = FcPtrToEncodedOffset (&vl_serialized->value, s_serialized, FcChar8); break; case FcTypeBool: vl_serialized->value.u.b = vl->value.u.b; break; case FcTypeMatrix: /* can't happen */ break; case FcTypeCharSet: c_serialized = FcCharSetSerialize (serialize, vl->value.u.c); if (!c_serialized) return NULL; vl_serialized->value.u.c = FcPtrToEncodedOffset (&vl_serialized->value, c_serialized, FcCharSet); break; case FcTypeFTFace: /* can't happen */ break; case FcTypeLangSet: l_serialized = FcLangSetSerialize (serialize, vl->value.u.l); if (!l_serialized) return NULL; vl_serialized->value.u.l = FcPtrToEncodedOffset (&vl_serialized->value, l_serialized, FcLangSet); break; default: break; } prev_serialized = vl_serialized; vl = vl->next; } return head_serialized; } #define __fcpat__ #include "fcaliastail.h" #include "fcftaliastail.h" #undef __fcpat__ fontconfig-2.11.1/src/fcstr.c0000664000076400007640000006144712272601721012753 00000000000000/* * fontconfig/src/fcstr.c * * 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. */ #include "fcint.h" #include #include #include #ifdef HAVE_REGEX_H #include #endif /* Objects MT-safe for readonly access. */ FcChar8 * FcStrCopy (const FcChar8 *s) { return FcStrdup (s); } FcChar8 * FcStrPlus (const FcChar8 *s1, const FcChar8 *s2) { int s1l = strlen ((char *) s1); int s2l = strlen ((char *) s2); int l = s1l + s2l + 1; FcChar8 *s = malloc (l); if (!s) return 0; memcpy (s, s1, s1l); memcpy (s + s1l, s2, s2l + 1); return s; } void FcStrFree (FcChar8 *s) { free (s); } #include "../fc-case/fccase.h" #define FcCaseFoldUpperCount(cf) \ ((cf)->method == FC_CASE_FOLD_FULL ? 1 : (cf)->count) typedef struct _FcCaseWalker { const FcChar8 *read; const FcChar8 *src; FcChar8 utf8[FC_MAX_CASE_FOLD_CHARS + 1]; } FcCaseWalker; static void FcStrCaseWalkerInit (const FcChar8 *src, FcCaseWalker *w) { w->src = src; w->read = 0; } static FcChar8 FcStrCaseWalkerLong (FcCaseWalker *w, FcChar8 r) { FcChar32 ucs4; int slen; int len = strlen((char*)w->src); slen = FcUtf8ToUcs4 (w->src - 1, &ucs4, len + 1); if (slen <= 0) return r; if (FC_MIN_FOLD_CHAR <= ucs4 && ucs4 <= FC_MAX_FOLD_CHAR) { int min = 0; int max = FC_NUM_CASE_FOLD; while (min <= max) { int mid = (min + max) >> 1; FcChar32 low = fcCaseFold[mid].upper; FcChar32 high = low + FcCaseFoldUpperCount (&fcCaseFold[mid]); if (high <= ucs4) min = mid + 1; else if (ucs4 < low) max = mid - 1; else { const FcCaseFold *fold = &fcCaseFold[mid]; int dlen; switch (fold->method) { case FC_CASE_FOLD_EVEN_ODD: if ((ucs4 & 1) != (fold->upper & 1)) return r; /* fall through ... */ default: dlen = FcUcs4ToUtf8 (ucs4 + fold->offset, w->utf8); break; case FC_CASE_FOLD_FULL: dlen = fold->count; memcpy (w->utf8, fcCaseFoldChars + fold->offset, dlen); break; } /* consume rest of src utf-8 bytes */ w->src += slen - 1; /* read from temp buffer */ w->utf8[dlen] = '\0'; w->read = w->utf8; return *w->read++; } } } return r; } static FcChar8 FcStrCaseWalkerNext (FcCaseWalker *w, const char *delims) { FcChar8 r; if (w->read) { if ((r = *w->read++)) return r; w->read = 0; } do { r = *w->src++; } while (r != 0 && delims && strchr (delims, r)); if ((r & 0xc0) == 0xc0) return FcStrCaseWalkerLong (w, r); if ('A' <= r && r <= 'Z') r = r - 'A' + 'a'; return r; } FcChar8 * FcStrDowncase (const FcChar8 *s) { FcCaseWalker w; int len = 0; FcChar8 *dst, *d; FcStrCaseWalkerInit (s, &w); while (FcStrCaseWalkerNext (&w, NULL)) len++; d = dst = malloc (len + 1); if (!d) return 0; FcStrCaseWalkerInit (s, &w); while ((*d++ = FcStrCaseWalkerNext (&w, NULL))); return dst; } int FcStrCmpIgnoreCase (const FcChar8 *s1, const FcChar8 *s2) { FcCaseWalker w1, w2; FcChar8 c1, c2; if (s1 == s2) return 0; FcStrCaseWalkerInit (s1, &w1); FcStrCaseWalkerInit (s2, &w2); for (;;) { c1 = FcStrCaseWalkerNext (&w1, NULL); c2 = FcStrCaseWalkerNext (&w2, NULL); if (!c1 || (c1 != c2)) break; } return (int) c1 - (int) c2; } int FcStrCmpIgnoreBlanksAndCase (const FcChar8 *s1, const FcChar8 *s2) { return FcStrCmpIgnoreCaseAndDelims (s1, s2, (const FcChar8 *)" "); } int FcStrCmpIgnoreCaseAndDelims (const FcChar8 *s1, const FcChar8 *s2, const FcChar8 *delims) { FcCaseWalker w1, w2; FcChar8 c1, c2; if (s1 == s2) return 0; FcStrCaseWalkerInit (s1, &w1); FcStrCaseWalkerInit (s2, &w2); for (;;) { c1 = FcStrCaseWalkerNext (&w1, (const char *)delims); c2 = FcStrCaseWalkerNext (&w2, (const char *)delims); if (!c1 || (c1 != c2)) break; } return (int) c1 - (int) c2; } int FcStrCmp (const FcChar8 *s1, const FcChar8 *s2) { FcChar8 c1, c2; if (s1 == s2) return 0; for (;;) { c1 = *s1++; c2 = *s2++; if (!c1 || c1 != c2) break; } return (int) c1 - (int) c2; } #ifdef USE_REGEX static FcBool _FcStrRegexCmp (const FcChar8 *s, const FcChar8 *regex, int cflags, int eflags) { int ret = -1; regex_t reg; if ((ret = regcomp (®, (const char *)regex, cflags)) != 0) { if (FcDebug () & FC_DBG_MATCHV) { char buf[512]; regerror (ret, ®, buf, 512); printf("Regexp compile error: %s\n", buf); } return FcFalse; } ret = regexec (®, (const char *)s, 0, NULL, eflags); if (ret != 0) { if (FcDebug () & FC_DBG_MATCHV) { char buf[512]; regerror (ret, ®, buf, 512); printf("Regexp exec error: %s\n", buf); } } regfree (®); return ret == 0 ? FcTrue : FcFalse; } #else # define _FcStrRegexCmp(_s_, _regex_, _cflags_, _eflags_) (FcFalse) #endif FcBool FcStrRegexCmp (const FcChar8 *s, const FcChar8 *regex) { return _FcStrRegexCmp (s, regex, REG_EXTENDED | REG_NOSUB, 0); } FcBool FcStrRegexCmpIgnoreCase (const FcChar8 *s, const FcChar8 *regex) { return _FcStrRegexCmp (s, regex, REG_EXTENDED | REG_NOSUB | REG_ICASE, 0); } /* * Return a hash value for a string */ FcChar32 FcStrHashIgnoreCase (const FcChar8 *s) { FcChar32 h = 0; FcCaseWalker w; FcChar8 c; FcStrCaseWalkerInit (s, &w); while ((c = FcStrCaseWalkerNext (&w, NULL))) h = ((h << 3) ^ (h >> 3)) ^ c; return h; } /* * Is the head of s1 equal to s2? */ static FcBool FcStrIsAtIgnoreBlanksAndCase (const FcChar8 *s1, const FcChar8 *s2) { FcCaseWalker w1, w2; FcChar8 c1, c2; FcStrCaseWalkerInit (s1, &w1); FcStrCaseWalkerInit (s2, &w2); for (;;) { c1 = FcStrCaseWalkerNext (&w1, " "); c2 = FcStrCaseWalkerNext (&w2, " "); if (!c1 || (c1 != c2)) break; } return c1 == c2 || !c2; } /* * Does s1 contain an instance of s2 (ignoring blanks and case)? */ const FcChar8 * FcStrContainsIgnoreBlanksAndCase (const FcChar8 *s1, const FcChar8 *s2) { while (*s1) { if (FcStrIsAtIgnoreBlanksAndCase (s1, s2)) return s1; s1++; } return 0; } static FcBool FcCharIsPunct (const FcChar8 c) { if (c < '0') return FcTrue; if (c <= '9') return FcFalse; if (c < 'A') return FcTrue; if (c <= 'Z') return FcFalse; if (c < 'a') return FcTrue; if (c <= 'z') return FcFalse; if (c <= '~') return FcTrue; return FcFalse; } /* * Is the head of s1 equal to s2? */ static FcBool FcStrIsAtIgnoreCase (const FcChar8 *s1, const FcChar8 *s2) { FcCaseWalker w1, w2; FcChar8 c1, c2; FcStrCaseWalkerInit (s1, &w1); FcStrCaseWalkerInit (s2, &w2); for (;;) { c1 = FcStrCaseWalkerNext (&w1, NULL); c2 = FcStrCaseWalkerNext (&w2, NULL); if (!c1 || (c1 != c2)) break; } return c1 == c2 || !c2; } /* * Does s1 contain an instance of s2 (ignoring blanks and case)? */ const FcChar8 * FcStrContainsIgnoreCase (const FcChar8 *s1, const FcChar8 *s2) { while (*s1) { if (FcStrIsAtIgnoreCase (s1, s2)) return s1; s1++; } return 0; } /* * Does s1 contain an instance of s2 on a word boundary (ignoring case)? */ const FcChar8 * FcStrContainsWord (const FcChar8 *s1, const FcChar8 *s2) { FcBool wordStart = FcTrue; int s1len = strlen ((char *) s1); int s2len = strlen ((char *) s2); while (s1len >= s2len) { if (wordStart && FcStrIsAtIgnoreCase (s1, s2) && (s1len == s2len || FcCharIsPunct (s1[s2len]))) { return s1; } wordStart = FcFalse; if (FcCharIsPunct (*s1)) wordStart = FcTrue; s1++; s1len--; } return 0; } /* * returns the number of strings (ignoring delimitors and case) being matched */ int FcStrMatchIgnoreCaseAndDelims (const FcChar8 *s1, const FcChar8 *s2, const FcChar8 *delims) { FcCaseWalker w1, w2; FcChar8 c1, c2; if (s1 == s2) return 0; FcStrCaseWalkerInit (s1, &w1); FcStrCaseWalkerInit (s2, &w2); for (;;) { c1 = FcStrCaseWalkerNext (&w1, (const char *)delims); c2 = FcStrCaseWalkerNext (&w2, (const char *)delims); if (!c1 || (c1 != c2)) break; } return w1.src - s1 - 1; } FcBool FcStrGlobMatch (const FcChar8 *glob, const FcChar8 *string) { FcChar8 c; while ((c = *glob++)) { switch (c) { case '*': /* short circuit common case */ if (!*glob) return FcTrue; /* short circuit another common case */ if (strchr ((char *) glob, '*') == 0) { size_t l1, l2; l1 = strlen ((char *) string); l2 = strlen ((char *) glob); if (l1 < l2) return FcFalse; string += (l1 - l2); } while (*string) { if (FcStrGlobMatch (glob, string)) return FcTrue; string++; } return FcFalse; case '?': if (*string++ == '\0') return FcFalse; break; default: if (*string++ != c) return FcFalse; break; } } return *string == '\0'; } const FcChar8 * FcStrStrIgnoreCase (const FcChar8 *s1, const FcChar8 *s2) { FcCaseWalker w1, w2; FcChar8 c1, c2; const FcChar8 *cur; if (!s1 || !s2) return 0; if (s1 == s2) return s1; FcStrCaseWalkerInit (s1, &w1); FcStrCaseWalkerInit (s2, &w2); c2 = FcStrCaseWalkerNext (&w2, NULL); for (;;) { cur = w1.src; c1 = FcStrCaseWalkerNext (&w1, NULL); if (!c1) break; if (c1 == c2) { FcCaseWalker w1t = w1; FcCaseWalker w2t = w2; FcChar8 c1t, c2t; for (;;) { c1t = FcStrCaseWalkerNext (&w1t, NULL); c2t = FcStrCaseWalkerNext (&w2t, NULL); if (!c2t) return cur; if (c2t != c1t) break; } } } return 0; } const FcChar8 * FcStrStr (const FcChar8 *s1, const FcChar8 *s2) { FcChar8 c1, c2; const FcChar8 * p = s1; const FcChar8 * b = s2; if (!s1 || !s2) return 0; if (s1 == s2) return s1; again: c2 = *s2++; if (!c2) return 0; for (;;) { p = s1; c1 = *s1++; if (!c1 || c1 == c2) break; } if (c1 != c2) return 0; for (;;) { c1 = *s1; c2 = *s2; if (c1 && c2 && c1 != c2) { s1 = p + 1; s2 = b; goto again; } if (!c2) return p; if (!c1) return 0; ++ s1; ++ s2; } /* never reached. */ } int FcUtf8ToUcs4 (const FcChar8 *src_orig, FcChar32 *dst, int len) { const FcChar8 *src = src_orig; FcChar8 s; int extra; FcChar32 result; if (len == 0) return 0; s = *src++; len--; if (!(s & 0x80)) { result = s; extra = 0; } else if (!(s & 0x40)) { return -1; } else if (!(s & 0x20)) { result = s & 0x1f; extra = 1; } else if (!(s & 0x10)) { result = s & 0xf; extra = 2; } else if (!(s & 0x08)) { result = s & 0x07; extra = 3; } else if (!(s & 0x04)) { result = s & 0x03; extra = 4; } else if ( ! (s & 0x02)) { result = s & 0x01; extra = 5; } else { return -1; } if (extra > len) return -1; while (extra--) { result <<= 6; s = *src++; if ((s & 0xc0) != 0x80) return -1; result |= s & 0x3f; } *dst = result; return src - src_orig; } FcBool FcUtf8Len (const FcChar8 *string, int len, int *nchar, int *wchar) { int n; int clen; FcChar32 c; FcChar32 max; n = 0; max = 0; while (len) { clen = FcUtf8ToUcs4 (string, &c, len); if (clen <= 0) /* malformed UTF8 string */ return FcFalse; if (c > max) max = c; string += clen; len -= clen; n++; } *nchar = n; if (max >= 0x10000) *wchar = 4; else if (max > 0x100) *wchar = 2; else *wchar = 1; return FcTrue; } int FcUcs4ToUtf8 (FcChar32 ucs4, FcChar8 dest[FC_UTF8_MAX_LEN]) { int bits; FcChar8 *d = dest; if (ucs4 < 0x80) { *d++= ucs4; bits= -6; } else if (ucs4 < 0x800) { *d++= ((ucs4 >> 6) & 0x1F) | 0xC0; bits= 0; } else if (ucs4 < 0x10000) { *d++= ((ucs4 >> 12) & 0x0F) | 0xE0; bits= 6; } else if (ucs4 < 0x200000) { *d++= ((ucs4 >> 18) & 0x07) | 0xF0; bits= 12; } else if (ucs4 < 0x4000000) { *d++= ((ucs4 >> 24) & 0x03) | 0xF8; bits= 18; } else if (ucs4 < 0x80000000) { *d++= ((ucs4 >> 30) & 0x01) | 0xFC; bits= 24; } else return 0; for ( ; bits >= 0; bits-= 6) { *d++= ((ucs4 >> bits) & 0x3F) | 0x80; } return d - dest; } #define GetUtf16(src,endian) \ ((FcChar16) ((src)[endian == FcEndianBig ? 0 : 1] << 8) | \ (FcChar16) ((src)[endian == FcEndianBig ? 1 : 0])) int FcUtf16ToUcs4 (const FcChar8 *src_orig, FcEndian endian, FcChar32 *dst, int len) /* in bytes */ { const FcChar8 *src = src_orig; FcChar16 a, b; FcChar32 result; if (len < 2) return 0; a = GetUtf16 (src, endian); src += 2; len -= 2; /* * Check for surrogate */ if ((a & 0xfc00) == 0xd800) { if (len < 2) return 0; b = GetUtf16 (src, endian); src += 2; len -= 2; /* * Check for invalid surrogate sequence */ if ((b & 0xfc00) != 0xdc00) return 0; result = ((((FcChar32) a & 0x3ff) << 10) | ((FcChar32) b & 0x3ff)) + 0x10000; } else result = a; *dst = result; return src - src_orig; } FcBool FcUtf16Len (const FcChar8 *string, FcEndian endian, int len, /* in bytes */ int *nchar, int *wchar) { int n; int clen; FcChar32 c; FcChar32 max; n = 0; max = 0; while (len) { clen = FcUtf16ToUcs4 (string, endian, &c, len); if (clen <= 0) /* malformed UTF8 string */ return FcFalse; if (c > max) max = c; string += clen; len -= clen; n++; } *nchar = n; if (max >= 0x10000) *wchar = 4; else if (max > 0x100) *wchar = 2; else *wchar = 1; return FcTrue; } void FcStrBufInit (FcStrBuf *buf, FcChar8 *init, int size) { if (init) { buf->buf = init; buf->size = size; } else { buf->buf = buf->buf_static; buf->size = sizeof (buf->buf_static); } buf->allocated = FcFalse; buf->failed = FcFalse; buf->len = 0; } void FcStrBufDestroy (FcStrBuf *buf) { if (buf->allocated) { free (buf->buf); FcStrBufInit (buf, 0, 0); } } FcChar8 * FcStrBufDone (FcStrBuf *buf) { FcChar8 *ret; if (buf->failed) ret = NULL; else ret = malloc (buf->len + 1); if (ret) { memcpy (ret, buf->buf, buf->len); ret[buf->len] = '\0'; } FcStrBufDestroy (buf); return ret; } FcChar8 * FcStrBufDoneStatic (FcStrBuf *buf) { FcStrBufChar (buf, '\0'); if (buf->failed) return NULL; return buf->buf; } FcBool FcStrBufChar (FcStrBuf *buf, FcChar8 c) { if (buf->len == buf->size) { FcChar8 *new; int size; if (buf->failed) return FcFalse; if (buf->allocated) { size = buf->size * 2; new = realloc (buf->buf, size); } else { size = buf->size + 64; new = malloc (size); if (new) { buf->allocated = FcTrue; memcpy (new, buf->buf, buf->len); } } if (!new) { buf->failed = FcTrue; return FcFalse; } buf->size = size; buf->buf = new; } buf->buf[buf->len++] = c; return FcTrue; } FcBool FcStrBufString (FcStrBuf *buf, const FcChar8 *s) { FcChar8 c; while ((c = *s++)) if (!FcStrBufChar (buf, c)) return FcFalse; return FcTrue; } FcBool FcStrBufData (FcStrBuf *buf, const FcChar8 *s, int len) { while (len-- > 0) if (!FcStrBufChar (buf, *s++)) return FcFalse; return FcTrue; } FcBool FcStrUsesHome (const FcChar8 *s) { return *s == '~'; } FcChar8 * FcStrBuildFilename (const FcChar8 *path, ...) { va_list ap; FcStrSet *sset; FcStrList *list; FcChar8 *s, *ret = NULL, *p; size_t len = 0; if (!path) return NULL; sset = FcStrSetCreate (); if (!sset) return NULL; if (!FcStrSetAdd (sset, path)) goto bail0; va_start (ap, path); while (1) { s = (FcChar8 *)va_arg (ap, FcChar8 *); if (!s) break; if (!FcStrSetAdd (sset, s)) goto bail1; } list = FcStrListCreate (sset); while ((s = FcStrListNext (list))) { len += strlen ((const char *)s) + 1; } list->n = 0; ret = malloc (sizeof (FcChar8) * (len + 1)); if (!ret) goto bail2; p = ret; while ((s = FcStrListNext (list))) { if (p != ret) { p[0] = FC_DIR_SEPARATOR; p++; } len = strlen ((const char *)s); memcpy (p, s, len); p += len; } *p = 0; bail2: FcStrListDone (list); bail1: va_end (ap); bail0: FcStrSetDestroy (sset); return ret; } FcChar8 * FcStrCopyFilename (const FcChar8 *s) { FcChar8 *new; if (*s == '~') { FcChar8 *home = FcConfigHome (); FcChar8 *full; int size; if (!home) return NULL; size = strlen ((char *) home) + strlen ((char *) s); full = (FcChar8 *) malloc (size); if (!full) return NULL; strcpy ((char *) full, (char *) home); strcat ((char *) full, (char *) s + 1); new = FcStrCanonFilename (full); free (full); } else new = FcStrCanonFilename (s); return new; } FcChar8 * FcStrLastSlash (const FcChar8 *path) { FcChar8 *slash; slash = (FcChar8 *) strrchr ((const char *) path, '/'); #ifdef _WIN32 { FcChar8 *backslash; backslash = (FcChar8 *) strrchr ((const char *) path, '\\'); if (!slash || (backslash && backslash > slash)) slash = backslash; } #endif return slash; } FcChar8 * FcStrDirname (const FcChar8 *file) { FcChar8 *slash; FcChar8 *dir; slash = FcStrLastSlash (file); if (!slash) return FcStrCopy ((FcChar8 *) "."); dir = malloc ((slash - file) + 1); if (!dir) return 0; strncpy ((char *) dir, (const char *) file, slash - file); dir[slash - file] = '\0'; return dir; } FcChar8 * FcStrBasename (const FcChar8 *file) { FcChar8 *slash; slash = FcStrLastSlash (file); if (!slash) return FcStrCopy (file); return FcStrCopy (slash + 1); } static FcChar8 * FcStrCanonAbsoluteFilename (const FcChar8 *s) { FcChar8 *file; FcChar8 *f; const FcChar8 *slash; int size; size = strlen ((char *) s) + 1; file = malloc (size); if (!file) return NULL; slash = NULL; f = file; #ifdef _WIN32 if (*s == '/' && *(s+1) == '/') /* Network path, do not squash // */ *f++ = *s++; #endif for (;;) { if (*s == '/' || *s == '\0') { if (slash) { switch (s - slash) { case 1: f -= 1; /* squash // and trim final / from file */ break; case 2: if (!strncmp ((char *) slash, "/.", 2)) { f -= 2; /* trim /. from file */ } break; case 3: if (!strncmp ((char *) slash, "/..", 3)) { f -= 3; /* trim /.. from file */ while (f > file) { if (*--f == '/') break; } } break; } } slash = s; } if (!(*f++ = *s++)) break; } return file; } #ifdef _WIN32 /* * Convert '\\' to '/' , remove double '/' */ static void FcConvertDosPath (char *str) { size_t len = strlen (str); char *p = str; char *dest = str; char *end = str + len; char last = 0; if (*p == '\\') { *p = '/'; p++; dest++; } while (p < end) { if (*p == '\\') *p = '/'; if (*p != '/' || last != '/') { *dest++ = *p; } last = *p; p++; } *dest = 0; } #endif FcChar8 * FcStrCanonFilename (const FcChar8 *s) { #ifdef _WIN32 FcChar8 full[FC_MAX_FILE_LEN + 2]; int size = GetFullPathName ((LPCSTR) s, sizeof (full) -1, (LPSTR) full, NULL); if (size == 0) perror ("GetFullPathName"); FcConvertDosPath ((char *) full); return FcStrCanonAbsoluteFilename (full); #else if (s[0] == '/') return FcStrCanonAbsoluteFilename (s); else { FcChar8 *full; FcChar8 *file; FcChar8 cwd[FC_MAX_FILE_LEN + 2]; if (getcwd ((char *) cwd, FC_MAX_FILE_LEN) == NULL) return NULL; full = FcStrBuildFilename (cwd, s, NULL); file = FcStrCanonAbsoluteFilename (full); FcStrFree (full); return file; } #endif } FcStrSet * FcStrSetCreate (void) { FcStrSet *set = malloc (sizeof (FcStrSet)); if (!set) return 0; FcRefInit (&set->ref, 1); set->num = 0; set->size = 0; set->strs = 0; return set; } static FcBool _FcStrSetAppend (FcStrSet *set, FcChar8 *s) { if (FcStrSetMember (set, s)) { FcStrFree (s); return FcTrue; } if (set->num == set->size) { 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; return FcTrue; } FcBool FcStrSetMember (FcStrSet *set, const FcChar8 *s) { int i; for (i = 0; i < set->num; i++) if (!FcStrCmp (set->strs[i], s)) return FcTrue; return FcFalse; } FcBool FcStrSetEqual (FcStrSet *sa, FcStrSet *sb) { int i; if (sa->num != sb->num) return FcFalse; for (i = 0; i < sa->num; i++) if (!FcStrSetMember (sb, sa->strs[i])) return FcFalse; return FcTrue; } FcBool FcStrSetAdd (FcStrSet *set, const FcChar8 *s) { FcChar8 *new = FcStrCopy (s); if (!new) return FcFalse; if (!_FcStrSetAppend (set, new)) { FcStrFree (new); return FcFalse; } return FcTrue; } FcBool FcStrSetAddFilename (FcStrSet *set, const FcChar8 *s) { FcChar8 *new = FcStrCopyFilename (s); if (!new) return FcFalse; if (!_FcStrSetAppend (set, new)) { FcStrFree (new); return FcFalse; } return FcTrue; } FcBool FcStrSetAddLangs (FcStrSet *strs, const char *languages) { const char *p = languages, *next; FcChar8 lang[128] = {0}, *normalized_lang; size_t len; FcBool ret = FcFalse; if (!languages) return FcFalse; while ((next = strchr (p, ':'))) { len = next - p; len = FC_MIN (len, 127); strncpy ((char *) lang, p, len); lang[len] = 0; /* ignore an empty item */ if (*lang) { normalized_lang = FcLangNormalize ((const FcChar8 *) lang); if (normalized_lang) { FcStrSetAdd (strs, normalized_lang); FcStrFree (normalized_lang); ret = FcTrue; } } p = next + 1; } if (*p) { normalized_lang = FcLangNormalize ((const FcChar8 *) p); if (normalized_lang) { FcStrSetAdd (strs, normalized_lang); FcStrFree (normalized_lang); ret = FcTrue; } } return ret; } FcBool FcStrSetDel (FcStrSet *set, const FcChar8 *s) { int i; for (i = 0; i < set->num; i++) if (!FcStrCmp (set->strs[i], s)) { FcStrFree (set->strs[i]); /* * copy remaining string pointers and trailing * NULL */ memmove (&set->strs[i], &set->strs[i+1], (set->num - i) * sizeof (FcChar8 *)); set->num--; return FcTrue; } return FcFalse; } /* TODO Make public */ static FcStrSet * FcStrSetReference (FcStrSet *set) { if (FcRefIsConst (&set->ref)) return set; FcRefInc (&set->ref); return set; } void FcStrSetDestroy (FcStrSet *set) { int i; /* We rely on this in FcGetDefaultLangs for caching. */ if (FcRefIsConst (&set->ref)) return; if (FcRefDec (&set->ref) != 1) return; for (i = 0; i < set->num; i++) FcStrFree (set->strs[i]); if (set->strs) free (set->strs); free (set); } FcStrList * FcStrListCreate (FcStrSet *set) { FcStrList *list; list = malloc (sizeof (FcStrList)); if (!list) return 0; list->set = set; FcStrSetReference (set); list->n = 0; return list; } void FcStrListFirst (FcStrList *list) { list->n = 0; } FcChar8 * FcStrListNext (FcStrList *list) { if (list->n >= list->set->num) return 0; return list->set->strs[list->n++]; } void FcStrListDone (FcStrList *list) { FcStrSetDestroy (list->set); free (list); } #define __fcstr__ #include "fcaliastail.h" #undef __fcstr__ fontconfig-2.11.1/src/fcstat.c0000664000076400007640000002110512305567016013106 00000000000000/* * Copyright © 2000 Keith Packard * Copyright © 2005 Patrick Lam * * 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 "fcarch.h" #include #include #include #include #include #ifdef HAVE_SYS_VFS_H #include #endif #ifdef HAVE_SYS_STATVFS_H #include #endif #ifdef HAVE_SYS_STATFS_H #include #endif #ifdef HAVE_SYS_PARAM_H #include #endif #ifdef HAVE_SYS_MOUNT_H #include #endif #ifdef _WIN32 #ifdef __GNUC__ typedef long long INT64; #define EPOCH_OFFSET 11644473600ll #else #define EPOCH_OFFSET 11644473600i64 typedef __int64 INT64; #endif /* Workaround for problems in the stat() in the Microsoft C library: * * 1) stat() uses FindFirstFile() to get the file * attributes. Unfortunately this API doesn't return correct values * for modification time of a directory until some time after a file * or subdirectory has been added to the directory. (This causes * run-test.sh to fail, for instance.) GetFileAttributesEx() is * better, it returns the updated timestamp right away. * * 2) stat() does some strange things related to backward * compatibility with the local time timestamps on FAT volumes and * daylight saving time. This causes problems after the switches * to/from daylight saving time. See * http://bugzilla.gnome.org/show_bug.cgi?id=154968 , especially * comment #30, and http://www.codeproject.com/datetime/dstbugs.asp . * We don't need any of that, FAT and Win9x are as good as dead. So * just use the UTC timestamps from NTFS, converted to the Unix epoch. */ int FcStat (const FcChar8 *file, struct stat *statb) { WIN32_FILE_ATTRIBUTE_DATA wfad; char full_path_name[MAX_PATH]; char *basename; DWORD rc; if (!GetFileAttributesEx ((LPCSTR) file, GetFileExInfoStandard, &wfad)) return -1; statb->st_dev = 0; /* Calculate a pseudo inode number as a hash of the full path name. * Call GetLongPathName() to get the spelling of the path name as it * is on disk. */ rc = GetFullPathName ((LPCSTR) file, sizeof (full_path_name), full_path_name, &basename); if (rc == 0 || rc > sizeof (full_path_name)) return -1; rc = GetLongPathName (full_path_name, full_path_name, sizeof (full_path_name)); statb->st_ino = FcStringHash ((const FcChar8 *) full_path_name); statb->st_mode = _S_IREAD | _S_IWRITE; statb->st_mode |= (statb->st_mode >> 3) | (statb->st_mode >> 6); if (wfad.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) statb->st_mode |= _S_IFDIR; else statb->st_mode |= _S_IFREG; statb->st_nlink = 1; statb->st_uid = statb->st_gid = 0; statb->st_rdev = 0; if (wfad.nFileSizeHigh > 0) return -1; statb->st_size = wfad.nFileSizeLow; statb->st_atime = (*(INT64 *)&wfad.ftLastAccessTime)/10000000 - EPOCH_OFFSET; statb->st_mtime = (*(INT64 *)&wfad.ftLastWriteTime)/10000000 - EPOCH_OFFSET; statb->st_ctime = statb->st_mtime; return 0; } #else int FcStat (const FcChar8 *file, struct stat *statb) { return stat ((char *) file, statb); } /* Adler-32 checksum implementation */ struct Adler32 { int a; int b; }; static void Adler32Init (struct Adler32 *ctx) { ctx->a = 1; ctx->b = 0; } static void Adler32Update (struct Adler32 *ctx, const char *data, int data_len) { while (data_len--) { ctx->a = (ctx->a + *data++) % 65521; ctx->b = (ctx->b + ctx->a) % 65521; } } static int Adler32Finish (struct Adler32 *ctx) { return ctx->a + (ctx->b << 16); } #ifdef HAVE_STRUCT_DIRENT_D_TYPE /* dirent.d_type can be relied upon on FAT filesystem */ static FcBool FcDirChecksumScandirFilter(const struct dirent *entry) { return entry->d_type != DT_DIR; } #endif #ifdef HAVE_SCANDIR static int FcDirChecksumScandirSorter(const struct dirent **lhs, const struct dirent **rhs) { return strcmp((*lhs)->d_name, (*rhs)->d_name); } #elif HAVE_SCANDIR_VOID_P static int FcDirChecksumScandirSorter(const void *a, const void *b) { const struct dirent *lhs = a, *rhs = b; return strcmp(lhs->d_name, rhs->d_name); } #endif static int FcDirChecksum (const FcChar8 *dir, time_t *checksum) { struct Adler32 ctx; struct dirent **files; int n; int ret = 0; size_t len = strlen ((const char *)dir); Adler32Init (&ctx); n = scandir ((const char *)dir, &files, #ifdef HAVE_STRUCT_DIRENT_D_TYPE &FcDirChecksumScandirFilter, #else NULL, #endif &FcDirChecksumScandirSorter); if (n == -1) return -1; while (n--) { size_t dlen = strlen (files[n]->d_name); int dtype; #ifdef HAVE_STRUCT_DIRENT_D_TYPE dtype = files[n]->d_type; if (dtype == DT_UNKNOWN) { #endif struct stat statb; char f[PATH_MAX + 1]; memcpy (f, dir, len); f[len] = FC_DIR_SEPARATOR; memcpy (&f[len + 1], files[n]->d_name, dlen); f[len + 1 + dlen] = 0; if (lstat (f, &statb) < 0) { ret = -1; goto bail; } if (S_ISDIR (statb.st_mode)) 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)); bail: free (files[n]); } free (files); if (ret == -1) return -1; *checksum = Adler32Finish (&ctx); return 0; } #endif /* _WIN32 */ int FcStatChecksum (const FcChar8 *file, struct stat *statb) { if (FcStat (file, statb) == -1) return -1; #ifndef _WIN32 /* We have a workaround of the broken stat() in FcStat() for Win32. * No need to do something further more. */ if (FcIsFsMtimeBroken (file)) { if (FcDirChecksum (file, &statb->st_mtime) == -1) return -1; } #endif return 0; } static int FcFStatFs (int fd, FcStatFS *statb) { const char *p = NULL; int ret = -1; FcBool flag = FcFalse; #if defined(HAVE_FSTATVFS) && (defined(HAVE_STRUCT_STATVFS_F_BASETYPE) || defined(HAVE_STRUCT_STATVFS_F_FSTYPENAME)) struct statvfs buf; memset (statb, 0, sizeof (FcStatFS)); if ((ret = fstatvfs (fd, &buf)) == 0) { # if defined(HAVE_STRUCT_STATVFS_F_BASETYPE) p = buf.f_basetype; # elif defined(HAVE_STRUCT_STATVFS_F_FSTYPENAME) p = buf.f_fstypename; # endif } #elif defined(HAVE_FSTATFS) && (defined(HAVE_STRUCT_STATFS_F_FLAGS) || defined(HAVE_STRUCT_STATFS_F_FSTYPENAME) || defined(__linux__)) struct statfs buf; memset (statb, 0, sizeof (FcStatFS)); if ((ret = fstatfs (fd, &buf)) == 0) { # if defined(HAVE_STRUCT_STATFS_F_FLAGS) && defined(MNT_LOCAL) statb->is_remote_fs = !(buf.f_flags & MNT_LOCAL); flag = FcTrue; # endif # if defined(HAVE_STRUCT_STATFS_F_FSTYPENAME) p = buf.f_fstypename; # elif defined(__linux__) switch (buf.f_type) { case 0x6969: /* nfs */ statb->is_remote_fs = FcTrue; break; case 0x4d44: /* fat */ statb->is_mtime_broken = FcTrue; break; default: break; } return ret; # else # error "BUG: No way to figure out with fstatfs()" # endif } #endif if (p) { if (!flag && strcmp (p, "nfs") == 0) statb->is_remote_fs = FcTrue; if (strcmp (p, "msdosfs") == 0 || strcmp (p, "pcfs") == 0) statb->is_mtime_broken = FcTrue; } return ret; } FcBool FcIsFsMmapSafe (int fd) { FcStatFS statb; if (FcFStatFs (fd, &statb) < 0) return FcTrue; return !statb.is_remote_fs; } FcBool FcIsFsMtimeBroken (const FcChar8 *dir) { int fd = FcOpen ((const char *) dir, O_RDONLY); if (fd != -1) { FcStatFS statb; int ret = FcFStatFs (fd, &statb); close (fd); if (ret < 0) return FcFalse; return statb.is_mtime_broken; } return FcFalse; } fontconfig-2.11.1/src/fcinit.c0000664000076400007640000001156012267155334013105 00000000000000/* * fontconfig/src/fcinit.c * * Copyright © 2001 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" #include #if defined(FC_ATOMIC_INT_NIL) #pragma message("Could not find any system to define atomic_int macros, library may NOT be thread-safe.") #endif #if defined(FC_MUTEX_IMPL_NIL) #pragma message("Could not find any system to define mutex macros, library may NOT be thread-safe.") #endif #if defined(FC_ATOMIC_INT_NIL) || defined(FC_MUTEX_IMPL_NIL) #pragma message("To suppress these warnings, define FC_NO_MT.") #endif static FcConfig * FcInitFallbackConfig (void) { FcConfig *config; config = FcConfigCreate (); if (!config) goto bail0; if (!FcConfigAddDir (config, (FcChar8 *) FC_DEFAULT_FONTS)) goto bail1; if (!FcConfigAddCacheDir (config, (FcChar8 *) FC_CACHEDIR)) goto bail1; return config; bail1: FcConfigDestroy (config); bail0: return 0; } int FcGetVersion (void) { return FC_VERSION; } /* * Load the configuration files */ FcConfig * FcInitLoadOwnConfig (FcConfig *config) { if (!config) { config = FcConfigCreate (); if (!config) return NULL; } FcInitDebug (); if (!FcConfigParseAndLoad (config, 0, FcTrue)) { FcConfigDestroy (config); return FcInitFallbackConfig (); } if (config->cacheDirs && config->cacheDirs->num == 0) { FcChar8 *prefix, *p; size_t plen; fprintf (stderr, "Fontconfig warning: no elements found. Check configuration.\n"); fprintf (stderr, "Fontconfig warning: adding %s\n", FC_CACHEDIR); prefix = FcConfigXdgCacheHome (); if (!prefix) goto bail; plen = strlen ((const char *)prefix); p = realloc (prefix, plen + 12); if (!p) goto bail; prefix = p; memcpy (&prefix[plen], FC_DIR_SEPARATOR_S "fontconfig", 11); prefix[plen + 11] = 0; fprintf (stderr, "Fontconfig warning: adding fontconfig\n"); if (!FcConfigAddCacheDir (config, (FcChar8 *) FC_CACHEDIR) || !FcConfigAddCacheDir (config, (FcChar8 *) prefix)) { bail: fprintf (stderr, "Fontconfig error: out of memory"); if (prefix) FcStrFree (prefix); FcConfigDestroy (config); return FcInitFallbackConfig (); } FcStrFree (prefix); } return config; } FcConfig * FcInitLoadConfig (void) { return FcInitLoadOwnConfig (NULL); } /* * Load the configuration files and scan for available fonts */ FcConfig * FcInitLoadOwnConfigAndFonts (FcConfig *config) { config = FcInitLoadOwnConfig (config); if (!config) return 0; if (!FcConfigBuildFonts (config)) { FcConfigDestroy (config); return 0; } return config; } FcConfig * FcInitLoadConfigAndFonts (void) { return FcInitLoadOwnConfigAndFonts (NULL); } /* * Initialize the default library configuration */ FcBool FcInit (void) { return FcConfigInit (); } /* * Free all library-allocated data structures. */ void FcFini (void) { FcConfigFini (); FcCacheFini (); FcDefaultFini (); } /* * Reread the configuration and available font lists */ FcBool FcInitReinitialize (void) { FcConfig *config; config = FcInitLoadConfigAndFonts (); if (!config) return FcFalse; return FcConfigSetCurrent (config); } FcBool FcInitBringUptoDate (void) { FcConfig *config = FcConfigGetCurrent (); time_t now; /* * rescanInterval == 0 disables automatic up to date */ if (config->rescanInterval == 0) return FcTrue; /* * Check no more often than rescanInterval seconds */ now = time (0); if (config->rescanTime + config->rescanInterval - now > 0) return FcTrue; /* * If up to date, don't reload configuration */ if (FcConfigUptoDate (0)) return FcTrue; return FcInitReinitialize (); } #define __fcinit__ #include "fcaliastail.h" #undef __fcinit__ fontconfig-2.11.1/src/Makefile.in0000664000076400007640000007343412313745337013542 00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # fontconfig/src/Makefile.am # # Copyright © 2003 Keith Packard # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The authors make no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = fcarch$(EXEEXT) subdir = src DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = am_libfontconfig_la_OBJECTS = fcatomic.lo fcblanks.lo fccache.lo \ fccfg.lo fccharset.lo fccompat.lo fcdbg.lo fcdefault.lo \ fcdir.lo fcformat.lo fcfreetype.lo fcfs.lo fchash.lo fcinit.lo \ fclang.lo fclist.lo fcmatch.lo fcmatrix.lo fcname.lo fcobjs.lo \ fcpat.lo fcserialize.lo fcstat.lo fcstr.lo fcxml.lo ftglue.lo libfontconfig_la_OBJECTS = $(am_libfontconfig_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libfontconfig_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libfontconfig_la_LDFLAGS) $(LDFLAGS) \ -o $@ PROGRAMS = $(noinst_PROGRAMS) fcarch_SOURCES = fcarch.c fcarch_OBJECTS = fcarch.$(OBJEXT) fcarch_LDADD = $(LDADD) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libfontconfig_la_SOURCES) fcarch.c DIST_SOURCES = $(libfontconfig_la_SOURCES) fcarch.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DATA = $(noinst_DATA) HEADERS = $(noinst_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASECONFIGDIR = @BASECONFIGDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CONFIGDIR = @CONFIGDIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DOCMAN3 = @DOCMAN3@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@ EXPAT_CFLAGS = @EXPAT_CFLAGS@ EXPAT_LIBS = @EXPAT_LIBS@ FC_ADD_FONTS = @FC_ADD_FONTS@ FC_CACHEDIR = @FC_CACHEDIR@ FC_DEFAULT_FONTS = @FC_DEFAULT_FONTS@ FC_FONTDATE = @FC_FONTDATE@ FC_FONTPATH = @FC_FONTPATH@ FGREP = @FGREP@ FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ FREETYPE_LIBS = @FREETYPE_LIBS@ GIT = @GIT@ GPERF = @GPERF@ GREP = @GREP@ HASDOCBOOK = @HASDOCBOOK@ HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@ ICONV_CFLAGS = @ICONV_CFLAGS@ ICONV_LIBS = @ICONV_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBT_CURRENT = @LIBT_CURRENT@ LIBT_CURRENT_MINUS_AGE = @LIBT_CURRENT_MINUS_AGE@ LIBT_REVISION = @LIBT_REVISION@ LIBT_VERSION_INFO = @LIBT_VERSION_INFO@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ RM = @RM@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TEMPLATEDIR = @TEMPLATEDIR@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XMLDIR = @XMLDIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ ax_pthread_config = @ax_pthread_config@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fc_cachedir = @fc_cachedir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ ms_librarian = @ms_librarian@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfigdir = @pkgconfigdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = makealias fcobjshash.gperf.h fcobjshash.gperf \ fcobjshash.h @OS_WIN32_TRUE@export_symbols = -export-symbols fontconfig.def @OS_WIN32_FALSE@fontconfig_def_dependency = @OS_WIN32_TRUE@fontconfig_def_dependency = fontconfig.def # Microsoft import library install/uninstall @MS_LIB_AVAILABLE_TRUE@noinst_DATA = fontconfig.lib AM_CPPFLAGS = \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ $(FREETYPE_CFLAGS) \ $(ICONV_CFLAGS) \ $(LIBXML2_CFLAGS) \ $(EXPAT_CFLAGS) \ $(WARN_CFLAGS) \ -DFC_CACHEDIR='"$(FC_CACHEDIR)"' \ -DFONTCONFIG_PATH='"$(BASECONFIGDIR)"' noinst_HEADERS = fcint.h fcftint.h fcdeprecate.h fcstdint.h ALIAS_FILES = fcalias.h fcaliastail.h fcftalias.h fcftaliastail.h BUILT_SOURCES = $(ALIAS_FILES) \ ../fc-case/fccase.h \ ../fc-glyphname/fcglyphname.h \ ../fc-lang/fclang.h \ stamp-fcstdint \ fcobjshash.h \ fcobjshash.gperf libfontconfig_la_SOURCES = \ fcarch.h \ fcatomic.c \ fcatomic.h \ fcblanks.c \ fccache.c \ fccfg.c \ fccharset.c \ fccompat.c \ fcdbg.c \ fcdefault.c \ fcdir.c \ fcformat.c \ fcfreetype.c \ fcfs.c \ fchash.c \ fcinit.c \ fclang.c \ fclist.c \ fcmatch.c \ fcmatrix.c \ fcmutex.h \ fcname.c \ fcobjs.c \ fcobjs.h \ fcobjshash.h \ fcpat.c \ fcserialize.c \ fcstat.c \ fcstr.c \ fcwindows.h \ fcxml.c \ ftglue.h \ ftglue.c lib_LTLIBRARIES = libfontconfig.la libfontconfig_la_LDFLAGS = \ -version-info @LIBT_VERSION_INFO@ -no-undefined $(export_symbols) libfontconfig_la_LIBADD = $(ICONV_LIBS) $(FREETYPE_LIBS) $(LIBXML2_LIBS) $(EXPAT_LIBS) libfontconfig_la_DEPENDENCIES = $(fontconfig_def_dependency) PUBLIC_FILES = \ $(top_srcdir)/fontconfig/fontconfig.h \ $(top_srcdir)/src/fcdeprecate.h \ $(top_srcdir)/fontconfig/fcprivate.h PUBLIC_FT_FILES = \ $(top_srcdir)/fontconfig/fcfreetype.h CLEANFILES = $(ALIAS_FILES) fontconfig.def DISTCLEANFILES = stamp-fcstdint fcstdint.h all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libfontconfig.la: $(libfontconfig_la_OBJECTS) $(libfontconfig_la_DEPENDENCIES) $(EXTRA_libfontconfig_la_DEPENDENCIES) $(AM_V_CCLD)$(libfontconfig_la_LINK) -rpath $(libdir) $(libfontconfig_la_OBJECTS) $(libfontconfig_la_LIBADD) $(LIBS) clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list fcarch$(EXEEXT): $(fcarch_OBJECTS) $(fcarch_DEPENDENCIES) $(EXTRA_fcarch_DEPENDENCIES) @rm -f fcarch$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fcarch_OBJECTS) $(fcarch_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcarch.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcatomic.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcblanks.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fccache.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fccfg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fccharset.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fccompat.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcdbg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcdefault.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcdir.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcformat.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcfreetype.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcfs.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchash.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcinit.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fclang.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fclist.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcmatch.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcmatrix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcname.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcobjs.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcpat.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcserialize.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcstat.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcstr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcxml.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftglue.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) @ENABLE_SHARED_FALSE@install-data-local: @ENABLE_SHARED_FALSE@uninstall-local: clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstPROGRAMS mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES uninstall-local .MAKE: all check install install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool clean-noinstPROGRAMS \ cscopelist-am ctags ctags-am distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-data-local install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES \ uninstall-local # gcc import library install/uninstall @OS_WIN32_TRUE@install-libtool-import-lib: libfontconfig.la @OS_WIN32_TRUE@ $(MKDIR_P) $(DESTDIR)$(libdir) @OS_WIN32_TRUE@ $(INSTALL) .libs/libfontconfig.dll.a $(DESTDIR)$(libdir)/libfontconfig.dll.a @OS_WIN32_TRUE@ $(INSTALL) fontconfig.def $(DESTDIR)$(libdir)/fontconfig.def @OS_WIN32_TRUE@uninstall-libtool-import-lib: @OS_WIN32_TRUE@ $(RM) $(DESTDIR)$(libdir)/libfontconfig.dll.a $(DESTDIR)$(libdir)/fontconfig.def @OS_WIN32_FALSE@install-libtool-import-lib: @OS_WIN32_FALSE@uninstall-libtool-import-lib: @MS_LIB_AVAILABLE_TRUE@fontconfig.lib : libfontconfig.la @MS_LIB_AVAILABLE_TRUE@ lib -name:libfontconfig-@LIBT_CURRENT_MINUS_AGE@.dll -def:fontconfig.def -out:$@ @MS_LIB_AVAILABLE_TRUE@install-ms-import-lib: @MS_LIB_AVAILABLE_TRUE@ $(INSTALL) fontconfig.lib $(DESTDIR)$(libdir) @MS_LIB_AVAILABLE_TRUE@uninstall-ms-import-lib: @MS_LIB_AVAILABLE_TRUE@ $(RM) $(DESTDIR)$(libdir)/fontconfig.lib @MS_LIB_AVAILABLE_FALSE@install-ms-import-lib: @MS_LIB_AVAILABLE_FALSE@uninstall-ms-import-lib: ../fc-case/fccase.h: cd ../fc-case && $(MAKE) $(AM_MAKEFLAGS) fccase.h ../fc-glyphname/fcglyphname.h: cd ../fc-glyphname && $(MAKE) $(AM_MAKEFLAGS) fcglyphname.h ../fc-lang/fclang.h: cd ../fc-lang && $(MAKE) $(AM_MAKEFLAGS) fclang.h fcobjshash.gperf: fcobjshash.gperf.h fcobjs.h $(AM_V_GEN) $(CPP) -I$(top_srcdir) $< | \ $(SED) 's/^ *//;s/ *, */,/' | \ $(GREP) '^[^#]' | \ awk ' \ /CUT_OUT_BEGIN/ { no_write=1; next; }; \ /CUT_OUT_END/ { no_write=0; next; }; \ { if (!no_write) print; next; }; \ ' - > $@.tmp && \ mv -f $@.tmp $@ || ( $(RM) $@.tmp && false ) fcobjshash.h: fcobjshash.gperf $(AM_V_GEN) $(GPERF) -m 100 $< > $@.tmp && \ mv -f $@.tmp $@ || ( $(RM) $@.tmp && false ) @ENABLE_SHARED_TRUE@install-data-local: install-ms-import-lib install-libtool-import-lib @ENABLE_SHARED_TRUE@uninstall-local: uninstall-ms-import-lib uninstall-libtool-import-lib fcaliastail.h: fcalias.h fcalias.h: $(top_srcdir)/src/makealias $(PUBLIC_FILES) $(AM_V_GEN) sh $(top_srcdir)/src/makealias "$(top_srcdir)/src" fcalias.h fcaliastail.h $(PUBLIC_FILES) fcftaliastail.h: fcftalias.h fcftalias.h: $(top_srcdir)/src/makealias $(PUBLIC_FT_FILES) $(AM_V_GEN) sh $(top_srcdir)/src/makealias "$(top_srcdir)/src" fcftalias.h fcftaliastail.h $(PUBLIC_FT_FILES) stamp-fcstdint: $(top_builddir)/config.status $(AM_V_GEN) cd $(top_builddir) && \ $(SHELL) ./config.status src/fcstdint.h @touch $@ fontconfig.def: $(PUBLIC_FILES) $(PUBLIC_FT_FILES) echo Generating $@ (echo EXPORTS; \ (cat $(PUBLIC_FILES) $(PUBLIC_FT_FILES) || echo 'FcERROR ()' ) | \ $(GREP) '^Fc[^ ]* *(' | $(SED) -e 's/ *(.*$$//' -e 's/^/ /' | \ sort; \ echo LIBRARY libfontconfig-@LIBT_CURRENT_MINUS_AGE@.dll; \ echo VERSION @LIBT_CURRENT@.@LIBT_REVISION@) >$@ @ ! $(GREP) -q FcERROR $@ || ($(RM) $@; false) -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fontconfig-2.11.1/src/fcmatch.c0000664000076400007640000005417712267155334013251 00000000000000/* * fontconfig/src/fcmatch.c * * 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. */ #include "fcint.h" static double FcCompareNumber (FcValue *value1, FcValue *value2) { double v1, v2, v; switch ((int) value1->type) { case FcTypeInteger: v1 = (double) value1->u.i; break; case FcTypeDouble: v1 = value1->u.d; break; default: return -1.0; } switch ((int) value2->type) { case FcTypeInteger: v2 = (double) value2->u.i; break; case FcTypeDouble: v2 = value2->u.d; break; default: return -1.0; } v = v2 - v1; if (v < 0) v = -v; return v; } static double FcCompareString (FcValue *v1, FcValue *v2) { return (double) FcStrCmpIgnoreCase (FcValueString(v1), FcValueString(v2)) != 0; } static double FcCompareFamily (FcValue *v1, FcValue *v2) { /* rely on the guarantee in FcPatternObjectAddWithBinding that * families are always FcTypeString. */ const FcChar8* v1_string = FcValueString(v1); const FcChar8* v2_string = FcValueString(v2); if (FcToLower(*v1_string) != FcToLower(*v2_string) && *v1_string != ' ' && *v2_string != ' ') return 1.0; return (double) FcStrCmpIgnoreBlanksAndCase (v1_string, v2_string) != 0; } static double FcComparePostScript (FcValue *v1, FcValue *v2) { const FcChar8 *v1_string = FcValueString (v1); const FcChar8 *v2_string = FcValueString (v2); int n; size_t len; if (FcToLower (*v1_string) != FcToLower (*v2_string) && *v1_string != ' ' && *v2_string != ' ') return 1.0; n = FcStrMatchIgnoreCaseAndDelims (v1_string, v2_string, (const FcChar8 *)" -"); len = strlen ((const char *)v1_string); return (double)(len - n) / (double)len; } static double FcCompareLang (FcValue *v1, FcValue *v2) { FcLangResult result; FcValue value1 = FcValueCanonicalize(v1), value2 = FcValueCanonicalize(v2); switch ((int) value1.type) { case FcTypeLangSet: switch ((int) value2.type) { case FcTypeLangSet: result = FcLangSetCompare (value1.u.l, value2.u.l); break; case FcTypeString: result = FcLangSetHasLang (value1.u.l, value2.u.s); break; default: return -1.0; } break; case FcTypeString: switch ((int) value2.type) { case FcTypeLangSet: result = FcLangSetHasLang (value2.u.l, value1.u.s); break; case FcTypeString: result = FcLangCompare (value1.u.s, value2.u.s); break; default: return -1.0; } break; default: return -1.0; } switch (result) { case FcLangEqual: return 0; case FcLangDifferentCountry: return 1; case FcLangDifferentLang: default: return 2; } } static double FcCompareBool (FcValue *v1, FcValue *v2) { if (v2->type != FcTypeBool || v1->type != FcTypeBool) return -1.0; return (double) v2->u.b != v1->u.b; } static double FcCompareCharSet (FcValue *v1, FcValue *v2) { return (double) FcCharSetSubtractCount (FcValueCharSet(v1), FcValueCharSet(v2)); } static double FcCompareSize (FcValue *value1, FcValue *value2) { double v1, v2, v; switch ((int) value1->type) { case FcTypeInteger: v1 = value1->u.i; break; case FcTypeDouble: v1 = value1->u.d; break; default: return -1; } switch ((int) value2->type) { case FcTypeInteger: v2 = value2->u.i; break; case FcTypeDouble: v2 = value2->u.d; break; default: return -1; } if (v2 == 0) return 0; v = v2 - v1; if (v < 0) v = -v; return v; } static double FcCompareFilename (FcValue *v1, FcValue *v2) { const FcChar8 *s1 = FcValueString (v1), *s2 = FcValueString (v2); if (FcStrCmp (s1, s2) == 0) return 0.0; else if (FcStrCmpIgnoreCase (s1, s2) == 0) return 1.0; else if (FcStrGlobMatch (s1, s2)) return 2.0; else return 3.0; } static double FcCompareHash (FcValue *v1, FcValue *v2) { const FcChar8 *s1 = FcValueString (v1), *s2 = FcValueString (v2); /* 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, \ PRI_ ## n ## _WEAK = -1, #define PRI1(n) #define PRI_FcCompareFamily(n) PRI1(n) #define PRI_FcCompareString(n) PRI1(n) #define PRI_FcCompareNumber(n) PRI1(n) #define PRI_FcCompareSize(n) PRI1(n) #define PRI_FcCompareBool(n) PRI1(n) #define PRI_FcCompareFilename(n) PRI1(n) #define PRI_FcCompareCharSet(n) PRI1(n) #define PRI_FcCompareLang(n) PRI1(n) #define PRI_FcComparePostScript(n) PRI1(n) #define PRI_FcCompareHash(n) PRI1(n) #define FC_OBJECT(NAME, Type, Cmp) PRI_##Cmp(NAME) typedef enum _FcMatcherPriorityDummy { #include "fcobjs.h" } FcMatcherPriorityDummy; #undef FC_OBJECT #undef PRI1 #define PRI1(n) \ PRI_ ## n, \ PRI_ ## n ## _STRONG = PRI_ ## n, \ PRI_ ## n ## _WEAK = PRI_ ## n typedef enum _FcMatcherPriority { PRI1(HASH), PRI1(FILE), PRI1(FONTFORMAT), PRI1(SCALABLE), PRI1(FOUNDRY), PRI1(CHARSET), PRI_FAMILY_STRONG, PRI_POSTSCRIPT_NAME_STRONG, PRI1(LANG), PRI_FAMILY_WEAK, PRI_POSTSCRIPT_NAME_WEAK, PRI1(SPACING), PRI1(PIXEL_SIZE), PRI1(STYLE), PRI1(SLANT), PRI1(WEIGHT), PRI1(WIDTH), PRI1(DECORATIVE), PRI1(ANTIALIAS), PRI1(RASTERIZER), PRI1(OUTLINE), PRI1(FONTVERSION), PRI_END } FcMatcherPriority; #undef PRI1 typedef struct _FcMatcher { FcObject object; double (*compare) (FcValue *value1, FcValue *value2); int strong, weak; } FcMatcher; /* * Order is significant, it defines the precedence of * each value, earlier values are more significant than * later values */ #define FC_OBJECT(NAME, Type, Cmp) { FC_##NAME##_OBJECT, Cmp, PRI_##NAME##_STRONG, PRI_##NAME##_WEAK }, static const FcMatcher _FcMatchers [] = { { FC_INVALID_OBJECT, NULL, -1, -1 }, #include "fcobjs.h" }; #undef FC_OBJECT static const FcMatcher* FcObjectToMatcher (FcObject object, FcBool include_lang) { if (include_lang) { switch (object) { case FC_FAMILYLANG_OBJECT: case FC_STYLELANG_OBJECT: case FC_FULLNAMELANG_OBJECT: object = FC_LANG_OBJECT; break; } } if (object > FC_MAX_BASE_OBJECT || !_FcMatchers[object].compare || _FcMatchers[object].strong == -1 || _FcMatchers[object].weak == -1) return NULL; return _FcMatchers + object; } static FcBool FcCompareValueList (FcObject object, const FcMatcher *match, FcValueListPtr v1orig, /* pattern */ FcValueListPtr v2orig, /* target */ FcValue *bestValue, double *value, int *n, FcResult *result) { FcValueListPtr v1, v2; double v, best, bestStrong, bestWeak; int j, k, pos = 0; if (!match) { if (bestValue) *bestValue = FcValueCanonicalize(&v2orig->value); if (n) *n = 0; return FcTrue; } best = 1e99; bestStrong = 1e99; bestWeak = 1e99; j = 1; for (v1 = v1orig; v1; v1 = FcValueListNext(v1)) { for (v2 = v2orig, k = 0; v2; v2 = FcValueListNext(v2), k++) { v = (match->compare) (&v1->value, &v2->value); if (v < 0) { *result = FcResultTypeMismatch; return FcFalse; } v = v * 1000 + j; if (v < best) { if (bestValue) *bestValue = FcValueCanonicalize(&v2->value); best = v; pos = k; } if (v1->binding == FcValueBindingStrong) { if (v < bestStrong) bestStrong = v; } else { if (v < bestWeak) bestWeak = v; } } j++; } if (FcDebug () & FC_DBG_MATCHV) { printf (" %s: %g ", FcObjectName (object), best); FcValueListPrint (v1orig); printf (", "); FcValueListPrint (v2orig); printf ("\n"); } if (value) { int weak = match->weak; int strong = match->strong; if (weak == strong) value[strong] += best; else { value[weak] += bestWeak; value[strong] += bestStrong; } } if (n) *n = pos; return FcTrue; } /* * Return a value indicating the distance between the two lists of * values */ static FcBool FcCompare (FcPattern *pat, FcPattern *fnt, double *value, FcResult *result) { int i, i1, i2; for (i = 0; i < PRI_END; i++) value[i] = 0.0; i1 = 0; i2 = 0; while (i1 < pat->num && i2 < fnt->num) { FcPatternElt *elt_i1 = &FcPatternElts(pat)[i1]; FcPatternElt *elt_i2 = &FcPatternElts(fnt)[i2]; i = FcObjectCompare(elt_i1->object, elt_i2->object); if (i > 0) i2++; else if (i < 0) i1++; else { const FcMatcher *match = FcObjectToMatcher (elt_i1->object, FcFalse); if (!FcCompareValueList (elt_i1->object, match, FcPatternEltValues(elt_i1), FcPatternEltValues(elt_i2), NULL, value, NULL, result)) return FcFalse; i1++; i2++; } } return FcTrue; } FcPattern * FcFontRenderPrepare (FcConfig *config, FcPattern *pat, FcPattern *font) { FcPattern *new; int i; FcPatternElt *fe, *pe, *fel, *pel; FcValue v; FcResult result; assert (pat != NULL); assert (font != NULL); new = FcPatternCreate (); if (!new) return NULL; for (i = 0; i < font->num; i++) { fe = &FcPatternElts(font)[i]; if (fe->object == FC_FAMILYLANG_OBJECT || fe->object == FC_STYLELANG_OBJECT || fe->object == FC_FULLNAMELANG_OBJECT) { /* ignore those objects. we need to deal with them * another way */ continue; } if (fe->object == FC_FAMILY_OBJECT || fe->object == FC_STYLE_OBJECT || fe->object == FC_FULLNAME_OBJECT) { 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) { int n = 1, j; FcValueListPtr l1, l2, ln = NULL, ll = NULL; match = FcObjectToMatcher (pel->object, FcTrue); if (!FcCompareValueList (pel->object, match, FcPatternEltValues (pel), FcPatternEltValues (fel), NULL, NULL, &n, &result)) { FcPatternDestroy (new); return NULL; } for (j = 0, l1 = FcPatternEltValues (fe), l2 = FcPatternEltValues (fel); l1 != NULL || l2 != NULL; j++, l1 = l1 ? FcValueListNext (l1) : NULL, l2 = l2 ? FcValueListNext (l2) : NULL) { if (j == n) { if (l1) ln = FcValueListPrepend (ln, FcValueCanonicalize (&l1->value), FcValueBindingStrong); if (l2) ll = FcValueListPrepend (ll, FcValueCanonicalize (&l2->value), FcValueBindingStrong); } else { if (l1) ln = FcValueListAppend (ln, FcValueCanonicalize (&l1->value), FcValueBindingStrong); if (l2) ll = FcValueListAppend (ll, FcValueCanonicalize (&l2->value), FcValueBindingStrong); } } FcPatternObjectListAdd (new, fe->object, ln, FcFalse); FcPatternObjectListAdd (new, fel->object, ll, FcFalse); continue; } else if (fel) { FcValueListPtr l1, l2; copy_lang: l1 = FcValueListDuplicate (FcPatternEltValues (fe)); l2 = FcValueListDuplicate (FcPatternEltValues (fel)); FcPatternObjectListAdd (new, fe->object, l1, FcFalse); FcPatternObjectListAdd (new, fel->object, l2, FcFalse); continue; } FcPatternObjectAdd (new, fe->object, v, FcFalse); } else { if (fel) goto copy_lang; FcPatternObjectListAdd (new, fe->object, FcValueListDuplicate (FcPatternEltValues (fe)), FcTrue); } } for (i = 0; i < pat->num; i++) { pe = &FcPatternElts(pat)[i]; fe = FcPatternObjectFindElt (font, pe->object); if (!fe && pe->object != FC_FAMILYLANG_OBJECT && pe->object != FC_STYLELANG_OBJECT && pe->object != FC_FULLNAMELANG_OBJECT) { FcPatternObjectListAdd (new, pe->object, FcValueListDuplicate (FcPatternEltValues(pe)), FcFalse); } } FcConfigSubstituteWithPat (config, new, pat, FcMatchFont); return new; } static FcPattern * FcFontSetMatchInternal (FcFontSet **sets, int nsets, FcPattern *p, FcResult *result) { double score[PRI_END], bestscore[PRI_END]; int f; FcFontSet *s; FcPattern *best; int i; int set; for (i = 0; i < PRI_END; i++) bestscore[i] = 0; best = 0; if (FcDebug () & FC_DBG_MATCH) { printf ("Match "); FcPatternPrint (p); } for (set = 0; set < nsets; set++) { s = sets[set]; if (!s) continue; for (f = 0; f < s->nfont; f++) { if (FcDebug () & FC_DBG_MATCHV) { printf ("Font %d ", f); FcPatternPrint (s->fonts[f]); } if (!FcCompare (p, s->fonts[f], score, result)) return 0; if (FcDebug () & FC_DBG_MATCHV) { printf ("Score"); for (i = 0; i < PRI_END; i++) { printf (" %g", score[i]); } printf ("\n"); } for (i = 0; i < PRI_END; i++) { if (best && bestscore[i] < score[i]) break; if (!best || score[i] < bestscore[i]) { for (i = 0; i < PRI_END; i++) bestscore[i] = score[i]; best = s->fonts[f]; break; } } } } if (FcDebug () & FC_DBG_MATCH) { printf ("Best score"); for (i = 0; i < PRI_END; i++) printf (" %g", bestscore[i]); printf ("\n"); FcPatternPrint (best); } /* assuming that 'result' is initialized with FcResultNoMatch * outside this function */ if (best) *result = FcResultMatch; return best; } FcPattern * FcFontSetMatch (FcConfig *config, FcFontSet **sets, int nsets, FcPattern *p, FcResult *result) { FcPattern *best; assert (sets != NULL); assert (p != NULL); assert (result != NULL); *result = FcResultNoMatch; if (!config) { config = FcConfigGetCurrent (); if (!config) return 0; } best = FcFontSetMatchInternal (sets, nsets, p, result); if (best) return FcFontRenderPrepare (config, p, best); else return NULL; } FcPattern * FcFontMatch (FcConfig *config, FcPattern *p, FcResult *result) { FcFontSet *sets[2]; int nsets; FcPattern *best; assert (p != NULL); assert (result != NULL); *result = FcResultNoMatch; if (!config) { config = FcConfigGetCurrent (); if (!config) return 0; } nsets = 0; if (config->fonts[FcSetSystem]) sets[nsets++] = config->fonts[FcSetSystem]; if (config->fonts[FcSetApplication]) sets[nsets++] = config->fonts[FcSetApplication]; best = FcFontSetMatchInternal (sets, nsets, p, result); if (best) return FcFontRenderPrepare (config, p, best); else return NULL; } typedef struct _FcSortNode { FcPattern *pattern; double score[PRI_END]; } FcSortNode; static int FcSortCompare (const void *aa, const void *ab) { FcSortNode *a = *(FcSortNode **) aa; FcSortNode *b = *(FcSortNode **) ab; double *as = &a->score[0]; double *bs = &b->score[0]; double ad = 0, bd = 0; int i; i = PRI_END; while (i-- && (ad = *as++) == (bd = *bs++)) ; return ad < bd ? -1 : ad > bd ? 1 : 0; } static FcBool FcSortWalk (FcSortNode **n, int nnode, FcFontSet *fs, FcCharSet **csp, FcBool trim) { FcBool ret = FcFalse; FcCharSet *cs; int i; cs = 0; if (trim || csp) { cs = FcCharSetCreate (); if (cs == NULL) goto bail; } for (i = 0; i < nnode; i++) { FcSortNode *node = *n++; FcBool adds_chars = FcFalse; /* * Only fetch node charset if we'd need it */ if (cs) { FcCharSet *ncs; if (FcPatternGetCharSet (node->pattern, FC_CHARSET, 0, &ncs) != FcResultMatch) continue; if (!FcCharSetMerge (cs, ncs, &adds_chars)) goto bail; } /* * If this font isn't a subset of the previous fonts, * add it to the list */ if (!i || !trim || adds_chars) { FcPatternReference (node->pattern); if (FcDebug () & FC_DBG_MATCHV) { printf ("Add "); FcPatternPrint (node->pattern); } if (!FcFontSetAdd (fs, node->pattern)) { FcPatternDestroy (node->pattern); goto bail; } } } if (csp) { *csp = cs; cs = 0; } ret = FcTrue; bail: if (cs) FcCharSetDestroy (cs); return ret; } void FcFontSetSortDestroy (FcFontSet *fs) { FcFontSetDestroy (fs); } FcFontSet * FcFontSetSort (FcConfig *config FC_UNUSED, FcFontSet **sets, int nsets, FcPattern *p, FcBool trim, FcCharSet **csp, FcResult *result) { FcFontSet *ret; FcFontSet *s; FcSortNode *nodes; FcSortNode **nodeps, **nodep; int nnodes; FcSortNode *new; int set; int f; int i; int nPatternLang; FcBool *patternLangSat; FcValue patternLang; assert (sets != NULL); assert (p != NULL); assert (result != NULL); /* There are some implementation that relying on the result of * "result" to check if the return value of FcFontSetSort * is valid or not. * So we should initialize it to the conservative way since * this function doesn't return NULL anymore. */ if (result) *result = FcResultNoMatch; if (FcDebug () & FC_DBG_MATCH) { printf ("Sort "); FcPatternPrint (p); } nnodes = 0; for (set = 0; set < nsets; set++) { s = sets[set]; if (!s) continue; nnodes += s->nfont; } if (!nnodes) return FcFontSetCreate (); for (nPatternLang = 0; FcPatternGet (p, FC_LANG, nPatternLang, &patternLang) == FcResultMatch; nPatternLang++) ; /* freed below */ nodes = malloc (nnodes * sizeof (FcSortNode) + nnodes * sizeof (FcSortNode *) + nPatternLang * sizeof (FcBool)); if (!nodes) goto bail0; nodeps = (FcSortNode **) (nodes + nnodes); patternLangSat = (FcBool *) (nodeps + nnodes); new = nodes; nodep = nodeps; for (set = 0; set < nsets; set++) { s = sets[set]; if (!s) continue; for (f = 0; f < s->nfont; f++) { if (FcDebug () & FC_DBG_MATCHV) { printf ("Font %d ", f); FcPatternPrint (s->fonts[f]); } new->pattern = s->fonts[f]; if (!FcCompare (p, new->pattern, new->score, result)) goto bail1; if (FcDebug () & FC_DBG_MATCHV) { printf ("Score"); for (i = 0; i < PRI_END; i++) { printf (" %g", new->score[i]); } printf ("\n"); } *nodep = new; new++; nodep++; } } nnodes = new - nodes; qsort (nodeps, nnodes, sizeof (FcSortNode *), FcSortCompare); for (i = 0; i < nPatternLang; i++) patternLangSat[i] = FcFalse; for (f = 0; f < nnodes; f++) { FcBool satisfies = FcFalse; /* * If this node matches any language, go check * which ones and satisfy those entries */ if (nodeps[f]->score[PRI_LANG] < 2000) { for (i = 0; i < nPatternLang; i++) { FcValue nodeLang; if (!patternLangSat[i] && FcPatternGet (p, FC_LANG, i, &patternLang) == FcResultMatch && FcPatternGet (nodeps[f]->pattern, FC_LANG, 0, &nodeLang) == FcResultMatch) { double compare = FcCompareLang (&patternLang, &nodeLang); if (compare >= 0 && compare < 2) { if (FcDebug () & FC_DBG_MATCHV) { FcChar8 *family; FcChar8 *style; if (FcPatternGetString (nodeps[f]->pattern, FC_FAMILY, 0, &family) == FcResultMatch && FcPatternGetString (nodeps[f]->pattern, FC_STYLE, 0, &style) == FcResultMatch) printf ("Font %s:%s matches language %d\n", family, style, i); } patternLangSat[i] = FcTrue; satisfies = FcTrue; break; } } } } if (!satisfies) { nodeps[f]->score[PRI_LANG] = 10000.0; } } /* * Re-sort once the language issues have been settled */ qsort (nodeps, nnodes, sizeof (FcSortNode *), FcSortCompare); ret = FcFontSetCreate (); if (!ret) goto bail1; if (!FcSortWalk (nodeps, nnodes, ret, csp, trim)) goto bail2; free (nodes); if (FcDebug() & FC_DBG_MATCH) { printf ("First font "); FcPatternPrint (ret->fonts[0]); } if (ret->nfont > 0) *result = FcResultMatch; return ret; bail2: FcFontSetDestroy (ret); bail1: free (nodes); bail0: return 0; } FcFontSet * FcFontSort (FcConfig *config, FcPattern *p, FcBool trim, FcCharSet **csp, FcResult *result) { FcFontSet *sets[2]; int nsets; assert (p != NULL); assert (result != NULL); *result = FcResultNoMatch; if (!config) { config = FcConfigGetCurrent (); if (!config) return 0; } nsets = 0; if (config->fonts[FcSetSystem]) sets[nsets++] = config->fonts[FcSetSystem]; if (config->fonts[FcSetApplication]) sets[nsets++] = config->fonts[FcSetApplication]; return FcFontSetSort (config, sets, nsets, p, trim, csp, result); } #define __fcmatch__ #include "fcaliastail.h" #undef __fcmatch__ fontconfig-2.11.1/src/ftglue.c0000664000076400007640000001302012267155335013111 00000000000000/* ftglue.c: Glue code for compiling the OpenType code from * FreeType 1 using only the public API of FreeType 2 * * By David Turner, The FreeType Project (www.freetype.org) * * This code is explicitely put in the public domain * * See ftglue.h for more information. */ #include "ftglue.h" #if 0 #include #define LOG(x) ftglue_log x static void ftglue_log( const char* format, ... ) { va_list ap; va_start( ap, format ); vfprintf( stderr, format, ap ); va_end( ap ); } #else #define LOG(x) do {} while (0) #endif /* only used internally */ static FT_Pointer ftglue_qalloc( FT_Memory memory, FT_ULong size, FT_Error *perror ) { FT_Error error = 0; FT_Pointer block = NULL; if ( size > 0 ) { block = memory->alloc( memory, size ); if ( !block ) error = FT_Err_Out_Of_Memory; } *perror = error; return block; } #undef QALLOC /* just in case */ #define QALLOC(ptr,size) ( (ptr) = ftglue_qalloc( memory, (size), &error ), error != 0 ) #define FREE(_ptr) \ do { \ if ( (_ptr) ) \ { \ ftglue_free( memory, _ptr ); \ _ptr = NULL; \ } \ } while (0) static void ftglue_free( FT_Memory memory, FT_Pointer block ) { if ( block ) memory->free( memory, block ); } FTGLUE_APIDEF( FT_Long ) ftglue_stream_pos( FT_Stream stream ) { LOG(( "ftglue:stream:pos() -> %ld\n", stream->pos )); return stream->pos; } FTGLUE_APIDEF( FT_Error ) ftglue_stream_seek( FT_Stream stream, FT_Long pos ) { FT_Error error = 0; if ( stream->read ) { if ( stream->read( stream, pos, 0, 0 ) ) error = FT_Err_Invalid_Stream_Operation; } else if ( pos < 0 || (FT_ULong) pos > stream->size ) error = FT_Err_Invalid_Stream_Operation; if ( !error ) stream->pos = pos; LOG(( "ftglue:stream:seek(%ld) -> %d\n", pos, error )); return error; } FTGLUE_APIDEF( FT_Error ) ftglue_stream_frame_enter( FT_Stream stream, FT_ULong count ) { FT_Error error = FT_Err_Ok; FT_ULong read_bytes; if ( stream->read ) { /* allocate the frame in memory */ FT_Memory memory = stream->memory; if ( QALLOC( stream->base, count ) ) goto Exit; /* read it */ read_bytes = stream->read( stream, stream->pos, stream->base, count ); if ( read_bytes < count ) { FREE( stream->base ); error = FT_Err_Invalid_Stream_Operation; } stream->cursor = stream->base; stream->limit = stream->cursor + count; stream->pos += read_bytes; } else { /* check current and new position */ if ( stream->pos >= stream->size || stream->pos + count > stream->size ) { error = FT_Err_Invalid_Stream_Operation; goto Exit; } /* set cursor */ stream->cursor = stream->base + stream->pos; stream->limit = stream->cursor + count; stream->pos += count; } Exit: LOG(( "ftglue:stream:frame_enter(%ld) -> %d\n", count, error )); return error; } FTGLUE_APIDEF( void ) ftglue_stream_frame_exit( FT_Stream stream ) { if ( stream->read ) { FT_Memory memory = stream->memory; FREE( stream->base ); } stream->cursor = 0; stream->limit = 0; LOG(( "ftglue:stream:frame_exit()\n" )); } FTGLUE_APIDEF( FT_Error ) ftglue_face_goto_table( FT_Face face, FT_ULong the_tag, FT_Stream stream ) { FT_Error error; LOG(( "ftglue_face_goto_table( %p, %c%c%c%c, %p )\n", face, (int)((the_tag >> 24) & 0xFF), (int)((the_tag >> 16) & 0xFF), (int)((the_tag >> 8) & 0xFF), (int)(the_tag & 0xFF), stream )); if ( !FT_IS_SFNT(face) ) { LOG(( "not a SFNT face !!\n" )); error = FT_Err_Invalid_Face_Handle; } else { /* parse the directory table directly, without using * FreeType's built-in data structures */ FT_ULong offset = 0, sig; FT_UInt count, nn; if ( FILE_Seek( 0 ) || ACCESS_Frame( 4 ) ) goto Exit; sig = GET_Tag4(); FORGET_Frame(); if ( sig == FT_MAKE_TAG( 't', 't', 'c', 'f' ) ) { /* deal with TrueType collections */ LOG(( ">> This is a TrueType Collection\n" )); if ( FILE_Seek( 12 + face->face_index*4 ) || ACCESS_Frame( 4 ) ) goto Exit; offset = GET_ULong(); FORGET_Frame(); } LOG(( "TrueType offset = %ld\n", offset )); if ( FILE_Seek( offset+4 ) || ACCESS_Frame( 2 ) ) goto Exit; count = GET_UShort(); FORGET_Frame(); if ( FILE_Seek( offset+12 ) || ACCESS_Frame( count*16 ) ) goto Exit; for ( nn = 0; nn < count; nn++ ) { FT_ULong tag = GET_ULong(); FT_ULong checksum = GET_ULong(); FT_ULong start = GET_ULong(); FT_ULong size = GET_ULong(); FT_UNUSED(checksum); FT_UNUSED(size); if ( tag == the_tag ) { LOG(( "TrueType table (start: %ld) (size: %ld)\n", start, size )); error = ftglue_stream_seek( stream, start ); goto FoundIt; } } error = FT_Err_Table_Missing; FoundIt: FORGET_Frame(); } Exit: LOG(( "TrueType error=%d\n", error )); return error; } #undef QALLOC #include "fcaliastail.h" #undef __ftglue__ fontconfig-2.11.1/src/makealias0000775000076400007640000000177312267155335013350 00000000000000#!/bin/sh SRCDIR=$1 shift HEAD=$1 shift TAIL=$1 shift rm -f $HEAD $TAIL echo "#if HAVE_GNUC_ATTRIBUTE" >> $TAIL cat "$@" | grep '^Fc[^ ]* *(' | sed -e 's/ *(.*$//' | while read name; do case $name in FcCacheDir|FcCacheSubdir) ;; *) alias="IA__$name" hattr='__attribute((visibility("hidden")))' echo "extern __typeof ($name) $alias $hattr;" >> $HEAD echo "#define $name $alias" >> $HEAD ifdef=`grep -l '^'$name'[ (]' "$SRCDIR"/*.c | sed -n 1p | sed -e 's/^.*\/\([^.]*\)\.c/__\1__/'` if [ -z "$ifdef" ] ; then echo "error: could not locate $name in src/*.c" 1>&2 exit 1 fi if [ "$ifdef" != "$last" ] ; then [ -n "$last" ] && echo "#endif /* $last */" >> $TAIL echo "#ifdef $ifdef" >> $TAIL last=$ifdef fi echo "# undef $name" >> $TAIL cattr='__attribute((alias("'$alias'"), visibility("default")))' echo "extern __typeof ($name) $name $cattr;" >> $TAIL ;; esac done [ $? -ne 0 ] && exit 1 echo "#endif /* $ifdef */" >> $TAIL echo "#endif /* HAVE_GNUC_ATTRIBUTE */" >> $TAIL fontconfig-2.11.1/src/fcdefault.c0000664000076400007640000002165112267155334013570 00000000000000/* * fontconfig/src/fcdefault.c * * Copyright © 2001 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" #include #include /* MT-safe */ static const struct { FcObject field; FcBool value; } FcBoolDefaults[] = { { FC_HINTING_OBJECT, FcTrue }, /* !FT_LOAD_NO_HINTING */ { FC_VERTICAL_LAYOUT_OBJECT, FcFalse }, /* FC_LOAD_VERTICAL_LAYOUT */ { FC_AUTOHINT_OBJECT, FcFalse }, /* FC_LOAD_FORCE_AUTOHINT */ { FC_GLOBAL_ADVANCE_OBJECT, FcTrue }, /* !FC_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH */ { FC_EMBEDDED_BITMAP_OBJECT, FcTrue }, /* !FC_LOAD_NO_BITMAP */ { FC_DECORATIVE_OBJECT, FcFalse }, }; #define NUM_FC_BOOL_DEFAULTS (int) (sizeof FcBoolDefaults / sizeof FcBoolDefaults[0]) FcStrSet *default_langs; FcStrSet * FcGetDefaultLangs (void) { FcStrSet *result; retry: result = (FcStrSet *) fc_atomic_ptr_get (&default_langs); if (!result) { char *langs; result = FcStrSetCreate (); langs = getenv ("FC_LANG"); if (!langs || !langs[0]) langs = getenv ("LC_ALL"); if (!langs || !langs[0]) langs = getenv ("LC_CTYPE"); if (!langs || !langs[0]) langs = getenv ("LANG"); if (langs && langs[0]) { if (!FcStrSetAddLangs (result, langs)) FcStrSetAdd (result, (const FcChar8 *) "en"); } else FcStrSetAdd (result, (const FcChar8 *) "en"); FcRefSetConst (&result->ref); if (!fc_atomic_ptr_cmpexch (&default_langs, NULL, result)) { FcRefInit (&result->ref, 1); FcStrSetDestroy (result); goto retry; } } return result; } static FcChar8 *default_lang; /* MT-safe */ FcChar8 * FcGetDefaultLang (void) { FcChar8 *lang; retry: lang = fc_atomic_ptr_get (&default_lang); if (!lang) { FcStrSet *langs = FcGetDefaultLangs (); lang = FcStrdup (langs->strs[0]); FcStrSetDestroy (langs); if (!fc_atomic_ptr_cmpexch (&default_lang, NULL, lang)) { free (lang); goto retry; } } return lang; } static FcChar8 *default_prgname; FcChar8 * FcGetPrgname (void) { FcChar8 *prgname; retry: prgname = fc_atomic_ptr_get (&default_prgname); if (!prgname) { #ifdef _WIN32 char buf[MAX_PATH+1]; /* TODO This is ASCII-only; fix it. */ if (GetModuleFileNameA (GetModuleHandle (NULL), buf, sizeof (buf) / sizeof (buf[0])) > 0) { char *p; unsigned int len; p = strrchr (buf, '\\'); if (p) p++; else p = buf; len = strlen (p); if (len > 4 && 0 == strcmp (p + len - 4, ".exe")) { len -= 4; buf[len] = '\0'; } prgname = FcStrdup (p); } #elif defined (HAVE_GETPROGNAME) const char *q = getprogname (); if (q) prgname = FcStrdup (q); else prgname = FcStrdup (""); #else # if defined (HAVE_GETEXECNAME) const char *p = getexecname (); # elif defined (HAVE_READLINK) char buf[PATH_MAX + 1]; int len; char *p = NULL; len = readlink ("/proc/self/exe", buf, sizeof (buf) - 1); if (len != -1) { buf[len] = '\0'; p = buf; } # else char *p = NULL; # endif if (p) { char *r = strrchr (p, '/'); if (r) r++; else r = p; prgname = FcStrdup (r); } if (!prgname) prgname = FcStrdup (""); #endif if (!fc_atomic_ptr_cmpexch (&default_prgname, NULL, prgname)) { free (prgname); goto retry; } } if (prgname && !prgname[0]) return NULL; return prgname; } void FcDefaultFini (void) { FcChar8 *lang; FcStrSet *langs; FcChar8 *prgname; lang = fc_atomic_ptr_get (&default_lang); if (lang && fc_atomic_ptr_cmpexch (&default_lang, lang, NULL)) { free (lang); } langs = fc_atomic_ptr_get (&default_langs); if (langs && fc_atomic_ptr_cmpexch (&default_langs, langs, NULL)) { FcRefInit (&langs->ref, 1); FcStrSetDestroy (langs); } prgname = fc_atomic_ptr_get (&default_prgname); if (prgname && fc_atomic_ptr_cmpexch (&default_prgname, prgname, NULL)) { free (prgname); } } void FcDefaultSubstitute (FcPattern *pattern) { FcValue v, namelang, v2; int i; if (FcPatternObjectGet (pattern, FC_WEIGHT_OBJECT, 0, &v) == FcResultNoMatch ) FcPatternObjectAddInteger (pattern, FC_WEIGHT_OBJECT, FC_WEIGHT_NORMAL); if (FcPatternObjectGet (pattern, FC_SLANT_OBJECT, 0, &v) == FcResultNoMatch) FcPatternObjectAddInteger (pattern, FC_SLANT_OBJECT, FC_SLANT_ROMAN); if (FcPatternObjectGet (pattern, FC_WIDTH_OBJECT, 0, &v) == FcResultNoMatch) FcPatternObjectAddInteger (pattern, FC_WIDTH_OBJECT, FC_WIDTH_NORMAL); for (i = 0; i < NUM_FC_BOOL_DEFAULTS; i++) if (FcPatternObjectGet (pattern, FcBoolDefaults[i].field, 0, &v) == FcResultNoMatch) FcPatternObjectAddBool (pattern, FcBoolDefaults[i].field, FcBoolDefaults[i].value); if (FcPatternObjectGet (pattern, FC_PIXEL_SIZE_OBJECT, 0, &v) == FcResultNoMatch) { double dpi, size, scale; if (FcPatternObjectGetDouble (pattern, FC_SIZE_OBJECT, 0, &size) != FcResultMatch) { size = 12.0; (void) FcPatternObjectDel (pattern, FC_SIZE_OBJECT); FcPatternObjectAddDouble (pattern, FC_SIZE_OBJECT, size); } if (FcPatternObjectGetDouble (pattern, FC_SCALE_OBJECT, 0, &scale) != FcResultMatch) { scale = 1.0; (void) FcPatternObjectDel (pattern, FC_SCALE_OBJECT); FcPatternObjectAddDouble (pattern, FC_SCALE_OBJECT, scale); } size *= scale; if (FcPatternObjectGetDouble (pattern, FC_DPI_OBJECT, 0, &dpi) != FcResultMatch) { dpi = 75.0; (void) FcPatternObjectDel (pattern, FC_DPI_OBJECT); FcPatternObjectAddDouble (pattern, FC_DPI_OBJECT, dpi); } size *= dpi / 72.0; FcPatternObjectAddDouble (pattern, FC_PIXEL_SIZE_OBJECT, size); } if (FcPatternObjectGet (pattern, FC_FONTVERSION_OBJECT, 0, &v) == FcResultNoMatch) { FcPatternObjectAddInteger (pattern, FC_FONTVERSION_OBJECT, 0x7fffffff); } if (FcPatternObjectGet (pattern, FC_HINT_STYLE_OBJECT, 0, &v) == FcResultNoMatch) { FcPatternObjectAddInteger (pattern, FC_HINT_STYLE_OBJECT, FC_HINT_FULL); } if (FcPatternObjectGet (pattern, FC_NAMELANG_OBJECT, 0, &v) == FcResultNoMatch) { FcPatternObjectAddString (pattern, FC_NAMELANG_OBJECT, FcGetDefaultLang ()); } /* shouldn't be failed. */ FcPatternObjectGet (pattern, FC_NAMELANG_OBJECT, 0, &namelang); /* Add a fallback to ensure the english name when the requested language * isn't available. this would helps for the fonts that have non-English * name at the beginning. */ /* Set "en-us" instead of "en" to avoid giving higher score to "en". * This is a hack for the case that the orth is not like ll-cc, because, * if no namelang isn't explicitly set, it will has something like ll-cc * according to current locale. which may causes FcLangDifferentTerritory * at FcLangCompare(). thus, the English name is selected so that * exact matched "en" has higher score than ll-cc. */ v2.type = FcTypeString; v2.u.s = (FcChar8 *) "en-us"; if (FcPatternObjectGet (pattern, FC_FAMILYLANG_OBJECT, 0, &v) == FcResultNoMatch) { FcPatternObjectAdd (pattern, FC_FAMILYLANG_OBJECT, namelang, FcTrue); FcPatternObjectAddWithBinding (pattern, FC_FAMILYLANG_OBJECT, v2, FcValueBindingWeak, FcTrue); } if (FcPatternObjectGet (pattern, FC_STYLELANG_OBJECT, 0, &v) == FcResultNoMatch) { FcPatternObjectAdd (pattern, FC_STYLELANG_OBJECT, namelang, FcTrue); FcPatternObjectAddWithBinding (pattern, FC_STYLELANG_OBJECT, v2, FcValueBindingWeak, FcTrue); } if (FcPatternObjectGet (pattern, FC_FULLNAMELANG_OBJECT, 0, &v) == FcResultNoMatch) { FcPatternObjectAdd (pattern, FC_FULLNAMELANG_OBJECT, namelang, FcTrue); FcPatternObjectAddWithBinding (pattern, FC_FULLNAMELANG_OBJECT, v2, FcValueBindingWeak, FcTrue); } if (FcPatternObjectGet (pattern, FC_PRGNAME_OBJECT, 0, &v) == FcResultNoMatch) { FcChar8 *prgname = FcGetPrgname (); if (prgname) FcPatternObjectAddString (pattern, FC_PRGNAME_OBJECT, prgname); } } #define __fcdefault__ #include "fcaliastail.h" #undef __fcdefault__ fontconfig-2.11.1/src/fcformat.c0000664000076400007640000005752612267155334013446 00000000000000/* * Copyright © 2008,2009 Red Hat, Inc. * * Red Hat Author(s): Behdad Esfahbod * * 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 #include #include /* The language is documented in doc/fcformat.fncs * These are the features implemented: * * simple %{elt} * width %width{elt} * index %{elt[idx]} * name= %{elt=} * :name= %{:elt} * default %{elt:-word} * count %{#elt} * subexpr %{{expr}} * filter-out %{-elt1,elt2,elt3{expr}} * filter-in %{+elt1,elt2,elt3{expr}} * conditional %{?elt1,elt2,!elt3{}{}} * enumerate %{[]elt1,elt2{expr}} * langset langset enumeration using the same syntax * builtin %{=blt} * convert %{elt|conv1|conv2|conv3} * * converters: * basename FcStrBasename * dirname FcStrDirname * downcase FcStrDowncase * shescape * cescape * xmlescape * delete delete chars * escape escape chars * translate translate chars * * builtins: * unparse FcNameUnparse * fcmatch fc-match default * fclist fc-list default * fccat fc-cat default * pkgkit PackageKit package tag format * * * Some ideas for future syntax extensions: * * - verbose builtin that is like FcPatternPrint * - allow indexing subexprs using '%{[idx]elt1,elt2{subexpr}}' * - allow indexing in +, -, ? filtering? * - conditional/filtering/deletion on binding (using '(w)'/'(s)'/'(=)' notation) */ #define FCCAT_FORMAT "\"%{file|basename|cescape}\" %{index} \"%{-file{%{=unparse|cescape}}}\"" #define FCMATCH_FORMAT "%{file:-|basename}: \"%{family[0]:-}\" \"%{style[0]:-}\"" #define FCLIST_FORMAT "%{?file{%{file}: }}%{-file{%{=unparse}}}" #define PKGKIT_FORMAT "%{[]family{font(%{family|downcase|delete( )})\n}}%{[]lang{font(:lang=%{lang|downcase|translate(_,-)})\n}}" static void message (const char *fmt, ...) { va_list args; va_start (args, fmt); fprintf (stderr, "Fontconfig: Pattern format error: "); vfprintf (stderr, fmt, args); fprintf (stderr, ".\n"); va_end (args); } typedef struct _FcFormatContext { const FcChar8 *format_orig; const FcChar8 *format; int format_len; FcChar8 *word; FcBool word_allocated; } FcFormatContext; static FcBool FcFormatContextInit (FcFormatContext *c, const FcChar8 *format, FcChar8 *scratch, int scratch_len) { c->format_orig = c->format = format; c->format_len = strlen ((const char *) format); if (c->format_len < scratch_len) { c->word = scratch; c->word_allocated = FcFalse; } else { c->word = malloc (c->format_len + 1); c->word_allocated = FcTrue; } return c->word != NULL; } static void FcFormatContextDone (FcFormatContext *c) { if (c && c->word_allocated) { free (c->word); } } static FcBool consume_char (FcFormatContext *c, FcChar8 term) { if (*c->format != term) return FcFalse; c->format++; return FcTrue; } static FcBool expect_char (FcFormatContext *c, FcChar8 term) { FcBool res = consume_char (c, term); if (!res) { if (c->format == c->format_orig + c->format_len) message ("format ended while expecting '%c'", term); else message ("expected '%c' at %d", term, c->format - c->format_orig + 1); } return res; } static FcBool FcCharIsPunct (const FcChar8 c) { if (c < '0') return FcTrue; if (c <= '9') return FcFalse; if (c < 'A') return FcTrue; if (c <= 'Z') return FcFalse; if (c < 'a') return FcTrue; if (c <= 'z') return FcFalse; if (c <= '~') return FcTrue; return FcFalse; } static char escaped_char(const char ch) { switch (ch) { case 'a': return '\a'; case 'b': return '\b'; case 'f': return '\f'; case 'n': return '\n'; case 'r': return '\r'; case 't': return '\t'; case 'v': return '\v'; default: return ch; } } static FcBool read_word (FcFormatContext *c) { FcChar8 *p; p = c->word; while (*c->format) { if (*c->format == '\\') { c->format++; if (*c->format) *p++ = escaped_char (*c->format++); continue; } else if (FcCharIsPunct (*c->format)) break; *p++ = *c->format++; } *p = '\0'; if (p == c->word) { message ("expected identifier at %d", c->format - c->format_orig + 1); return FcFalse; } return FcTrue; } static FcBool read_chars (FcFormatContext *c, FcChar8 term) { FcChar8 *p; p = c->word; while (*c->format && *c->format != '}' && *c->format != term) { if (*c->format == '\\') { c->format++; if (*c->format) *p++ = escaped_char (*c->format++); continue; } *p++ = *c->format++; } *p = '\0'; if (p == c->word) { message ("expected character data at %d", c->format - c->format_orig + 1); return FcFalse; } return FcTrue; } static FcBool FcPatternFormatToBuf (FcPattern *pat, const FcChar8 *format, FcStrBuf *buf); static FcBool interpret_builtin (FcFormatContext *c, FcPattern *pat, FcStrBuf *buf) { FcChar8 *new_str; FcBool ret; if (!expect_char (c, '=') || !read_word (c)) return FcFalse; /* try simple builtins first */ if (0) { } #define BUILTIN(name, func) \ else if (0 == strcmp ((const char *) c->word, name))\ do { new_str = func (pat); ret = FcTrue; } while (0) BUILTIN ("unparse", FcNameUnparse); /* BUILTIN ("verbose", FcPatternPrint); XXX */ #undef BUILTIN else ret = FcFalse; if (ret) { if (new_str) { FcStrBufString (buf, new_str); FcStrFree (new_str); return FcTrue; } else return FcFalse; } /* now try our custom formats */ if (0) { } #define BUILTIN(name, format) \ else if (0 == strcmp ((const char *) c->word, name))\ ret = FcPatternFormatToBuf (pat, (const FcChar8 *) format, buf) BUILTIN ("fccat", FCCAT_FORMAT); BUILTIN ("fcmatch", FCMATCH_FORMAT); BUILTIN ("fclist", FCLIST_FORMAT); BUILTIN ("pkgkit", PKGKIT_FORMAT); #undef BUILTIN else ret = FcFalse; if (!ret) message ("unknown builtin \"%s\"", c->word); return ret; } static FcBool interpret_expr (FcFormatContext *c, FcPattern *pat, FcStrBuf *buf, FcChar8 term); static FcBool interpret_subexpr (FcFormatContext *c, FcPattern *pat, FcStrBuf *buf) { return expect_char (c, '{') && interpret_expr (c, pat, buf, '}') && expect_char (c, '}'); } static FcBool maybe_interpret_subexpr (FcFormatContext *c, FcPattern *pat, FcStrBuf *buf) { return (*c->format == '{') ? interpret_subexpr (c, pat, buf) : FcTrue; } static FcBool skip_subexpr (FcFormatContext *c); static FcBool skip_percent (FcFormatContext *c) { if (!expect_char (c, '%')) return FcFalse; /* skip an optional width specifier */ if (strtol ((const char *) c->format, (char **) &c->format, 10)) {/* don't care */} if (!expect_char (c, '{')) return FcFalse; while(*c->format && *c->format != '}') { switch (*c->format) { case '\\': c->format++; /* skip over '\\' */ if (*c->format) c->format++; continue; case '{': if (!skip_subexpr (c)) return FcFalse; continue; } c->format++; } return expect_char (c, '}'); } static FcBool skip_expr (FcFormatContext *c) { while(*c->format && *c->format != '}') { switch (*c->format) { case '\\': c->format++; /* skip over '\\' */ if (*c->format) c->format++; continue; case '%': if (!skip_percent (c)) return FcFalse; continue; } c->format++; } return FcTrue; } static FcBool skip_subexpr (FcFormatContext *c) { return expect_char (c, '{') && skip_expr (c) && expect_char (c, '}'); } static FcBool maybe_skip_subexpr (FcFormatContext *c) { return (*c->format == '{') ? skip_subexpr (c) : FcTrue; } static FcBool interpret_filter_in (FcFormatContext *c, FcPattern *pat, FcStrBuf *buf) { FcObjectSet *os; FcPattern *subpat; if (!expect_char (c, '+')) return FcFalse; os = FcObjectSetCreate (); if (!os) return FcFalse; do { /* XXX binding */ if (!read_word (c) || !FcObjectSetAdd (os, (const char *) c->word)) { FcObjectSetDestroy (os); return FcFalse; } } while (consume_char (c, ',')); subpat = FcPatternFilter (pat, os); FcObjectSetDestroy (os); if (!subpat || !interpret_subexpr (c, subpat, buf)) return FcFalse; FcPatternDestroy (subpat); return FcTrue; } static FcBool interpret_filter_out (FcFormatContext *c, FcPattern *pat, FcStrBuf *buf) { FcPattern *subpat; if (!expect_char (c, '-')) return FcFalse; subpat = FcPatternDuplicate (pat); if (!subpat) return FcFalse; do { if (!read_word (c)) { FcPatternDestroy (subpat); return FcFalse; } FcPatternDel (subpat, (const char *) c->word); } while (consume_char (c, ',')); if (!interpret_subexpr (c, subpat, buf)) return FcFalse; FcPatternDestroy (subpat); return FcTrue; } static FcBool interpret_cond (FcFormatContext *c, FcPattern *pat, FcStrBuf *buf) { FcBool pass; if (!expect_char (c, '?')) return FcFalse; pass = FcTrue; do { FcBool negate; FcValue v; negate = consume_char (c, '!'); if (!read_word (c)) return FcFalse; pass = pass && (negate ^ (FcResultMatch == FcPatternGet (pat, (const char *) c->word, 0, &v))); } while (consume_char (c, ',')); if (pass) { if (!interpret_subexpr (c, pat, buf) || !maybe_skip_subexpr (c)) return FcFalse; } else { if (!skip_subexpr (c) || !maybe_interpret_subexpr (c, pat, buf)) return FcFalse; } return FcTrue; } static FcBool interpret_count (FcFormatContext *c, FcPattern *pat, FcStrBuf *buf) { int count; FcPatternElt *e; FcChar8 buf_static[64]; if (!expect_char (c, '#')) return FcFalse; if (!read_word (c)) return FcFalse; count = 0; e = FcPatternObjectFindElt (pat, FcObjectFromName ((const char *) c->word)); if (e) { FcValueListPtr l; count++; for (l = FcPatternEltValues(e); l->next; l = l->next) count++; } snprintf ((char *) buf_static, sizeof (buf_static), "%d", count); FcStrBufString (buf, buf_static); return FcTrue; } static FcBool interpret_enumerate (FcFormatContext *c, FcPattern *pat, FcStrBuf *buf) { FcObjectSet *os; FcPattern *subpat; const FcChar8 *format_save; int idx; FcBool ret, done; FcStrList *lang_strs; if (!expect_char (c, '[') || !expect_char (c, ']')) return FcFalse; os = FcObjectSetCreate (); if (!os) return FcFalse; ret = FcTrue; do { if (!read_word (c) || !FcObjectSetAdd (os, (const char *) c->word)) { FcObjectSetDestroy (os); return FcFalse; } } while (consume_char (c, ',')); /* If we have one element and it's of type FcLangSet, we want * to enumerate the languages in it. */ lang_strs = NULL; if (os->nobject == 1) { FcLangSet *langset; if (FcResultMatch == FcPatternGetLangSet (pat, os->objects[0], 0, &langset)) { FcStrSet *ss; if (!(ss = FcLangSetGetLangs (langset)) || !(lang_strs = FcStrListCreate (ss))) goto bail0; } } subpat = FcPatternDuplicate (pat); if (!subpat) goto bail0; format_save = c->format; idx = 0; do { int i; done = FcTrue; if (lang_strs) { FcChar8 *lang; FcPatternDel (subpat, os->objects[0]); if ((lang = FcStrListNext (lang_strs))) { /* XXX binding? */ FcPatternAddString (subpat, os->objects[0], lang); done = FcFalse; } } else { for (i = 0; i < os->nobject; i++) { FcValue v; /* XXX this can be optimized by accessing valuelist linked lists * directly and remembering where we were. Most (all) value lists * in normal uses are pretty short though (language tags are * stored as a LangSet, not separate values.). */ FcPatternDel (subpat, os->objects[i]); if (FcResultMatch == FcPatternGet (pat, os->objects[i], idx, &v)) { /* XXX binding */ FcPatternAdd (subpat, os->objects[i], v, FcFalse); done = FcFalse; } } } if (!done) { c->format = format_save; ret = interpret_subexpr (c, subpat, buf); if (!ret) goto bail; } idx++; } while (!done); if (c->format == format_save) skip_subexpr (c); bail: FcPatternDestroy (subpat); bail0: if (lang_strs) FcStrListDone (lang_strs); FcObjectSetDestroy (os); return ret; } static FcBool interpret_simple (FcFormatContext *c, FcPattern *pat, FcStrBuf *buf) { FcPatternElt *e; FcBool add_colon = FcFalse; FcBool add_elt_name = FcFalse; int idx; FcChar8 *else_string; if (consume_char (c, ':')) add_colon = FcTrue; if (!read_word (c)) return FcFalse; idx = -1; if (consume_char (c, '[')) { idx = strtol ((const char *) c->format, (char **) &c->format, 10); if (idx < 0) { message ("expected non-negative number at %d", c->format-1 - c->format_orig + 1); return FcFalse; } if (!expect_char (c, ']')) return FcFalse; } if (consume_char (c, '=')) add_elt_name = FcTrue; /* modifiers */ else_string = NULL; if (consume_char (c, ':')) { FcChar8 *orig; /* divert the c->word for now */ orig = c->word; c->word = c->word + strlen ((const char *) c->word) + 1; /* for now we just support 'default value' */ if (!expect_char (c, '-') || !read_chars (c, '|')) { c->word = orig; return FcFalse; } else_string = c->word; c->word = orig; } e = FcPatternObjectFindElt (pat, FcObjectFromName ((const char *) c->word)); if (e || else_string) { FcValueListPtr l = NULL; if (add_colon) FcStrBufChar (buf, ':'); if (add_elt_name) { FcStrBufString (buf, c->word); FcStrBufChar (buf, '='); } if (e) l = FcPatternEltValues(e); if (idx != -1) { while (l && idx > 0) { l = FcValueListNext(l); idx--; } if (l && idx == 0) { if (!FcNameUnparseValue (buf, &l->value, '\0')) return FcFalse; } else goto notfound; } else if (l) { FcNameUnparseValueList (buf, l, '\0'); } else { notfound: if (else_string) FcStrBufString (buf, else_string); } } return FcTrue; } static FcBool cescape (FcFormatContext *c FC_UNUSED, const FcChar8 *str, FcStrBuf *buf) { /* XXX escape \n etc? */ while(*str) { switch (*str) { case '\\': case '"': FcStrBufChar (buf, '\\'); break; } FcStrBufChar (buf, *str++); } return FcTrue; } static FcBool shescape (FcFormatContext *c FC_UNUSED, const FcChar8 *str, FcStrBuf *buf) { FcStrBufChar (buf, '\''); while(*str) { if (*str == '\'') FcStrBufString (buf, (const FcChar8 *) "'\\''"); else FcStrBufChar (buf, *str); str++; } FcStrBufChar (buf, '\''); return FcTrue; } static FcBool xmlescape (FcFormatContext *c FC_UNUSED, const FcChar8 *str, FcStrBuf *buf) { /* XXX escape \n etc? */ while(*str) { switch (*str) { case '&': FcStrBufString (buf, (const FcChar8 *) "&"); break; case '<': FcStrBufString (buf, (const FcChar8 *) "<"); break; case '>': FcStrBufString (buf, (const FcChar8 *) ">"); break; default: FcStrBufChar (buf, *str); break; } str++; } return FcTrue; } static FcBool delete_chars (FcFormatContext *c, const FcChar8 *str, FcStrBuf *buf) { /* XXX not UTF-8 aware */ if (!expect_char (c, '(') || !read_chars (c, ')') || !expect_char (c, ')')) return FcFalse; while(*str) { FcChar8 *p; p = (FcChar8 *) strpbrk ((const char *) str, (const char *) c->word); if (p) { FcStrBufData (buf, str, p - str); str = p + 1; } else { FcStrBufString (buf, str); break; } } return FcTrue; } static FcBool escape_chars (FcFormatContext *c, const FcChar8 *str, FcStrBuf *buf) { /* XXX not UTF-8 aware */ if (!expect_char (c, '(') || !read_chars (c, ')') || !expect_char (c, ')')) return FcFalse; while(*str) { FcChar8 *p; p = (FcChar8 *) strpbrk ((const char *) str, (const char *) c->word); if (p) { FcStrBufData (buf, str, p - str); FcStrBufChar (buf, c->word[0]); FcStrBufChar (buf, *p); str = p + 1; } else { FcStrBufString (buf, str); break; } } return FcTrue; } static FcBool translate_chars (FcFormatContext *c, const FcChar8 *str, FcStrBuf *buf) { char *from, *to, repeat; int from_len, to_len; /* XXX not UTF-8 aware */ if (!expect_char (c, '(') || !read_chars (c, ',') || !expect_char (c, ',')) return FcFalse; from = (char *) c->word; from_len = strlen (from); to = from + from_len + 1; /* hack: we temporarily divert c->word */ c->word = (FcChar8 *) to; if (!read_chars (c, ')')) { c->word = (FcChar8 *) from; return FcFalse; } c->word = (FcChar8 *) from; to_len = strlen (to); repeat = to[to_len - 1]; if (!expect_char (c, ')')) return FcFalse; while(*str) { FcChar8 *p; p = (FcChar8 *) strpbrk ((const char *) str, (const char *) from); if (p) { int i; FcStrBufData (buf, str, p - str); i = strchr (from, *p) - from; FcStrBufChar (buf, i < to_len ? to[i] : repeat); str = p + 1; } else { FcStrBufString (buf, str); break; } } return FcTrue; } static FcBool interpret_convert (FcFormatContext *c, FcStrBuf *buf, int start) { const FcChar8 *str; FcChar8 *new_str; FcStrBuf new_buf; FcChar8 buf_static[8192]; FcBool ret; if (!expect_char (c, '|') || !read_word (c)) return FcFalse; /* prepare the buffer */ FcStrBufChar (buf, '\0'); if (buf->failed) return FcFalse; str = buf->buf + start; buf->len = start; /* try simple converters first */ if (0) { } #define CONVERTER(name, func) \ else if (0 == strcmp ((const char *) c->word, name))\ do { new_str = func (str); ret = FcTrue; } while (0) CONVERTER ("downcase", FcStrDowncase); CONVERTER ("basename", FcStrBasename); CONVERTER ("dirname", FcStrDirname); #undef CONVERTER else ret = FcFalse; if (ret) { if (new_str) { FcStrBufString (buf, new_str); FcStrFree (new_str); return FcTrue; } else return FcFalse; } FcStrBufInit (&new_buf, buf_static, sizeof (buf_static)); /* now try our custom converters */ if (0) { } #define CONVERTER(name, func) \ else if (0 == strcmp ((const char *) c->word, name))\ ret = func (c, str, &new_buf) CONVERTER ("cescape", cescape); CONVERTER ("shescape", shescape); CONVERTER ("xmlescape", xmlescape); CONVERTER ("delete", delete_chars); CONVERTER ("escape", escape_chars); CONVERTER ("translate", translate_chars); #undef CONVERTER else ret = FcFalse; if (ret) { FcStrBufChar (&new_buf, '\0'); FcStrBufString (buf, new_buf.buf); } else message ("unknown converter \"%s\"", c->word); FcStrBufDestroy (&new_buf); return ret; } static FcBool maybe_interpret_converts (FcFormatContext *c, FcStrBuf *buf, int start) { while (*c->format == '|') if (!interpret_convert (c, buf, start)) return FcFalse; return FcTrue; } static FcBool align_to_width (FcStrBuf *buf, int start, int width) { int len; if (buf->failed) return FcFalse; len = buf->len - start; if (len < -width) { /* left align */ while (len++ < -width) FcStrBufChar (buf, ' '); } else if (len < width) { int old_len; old_len = len; /* right align */ while (len++ < width) FcStrBufChar (buf, ' '); if (buf->failed) return FcFalse; len = old_len; memmove (buf->buf + buf->len - len, buf->buf + buf->len - width, len); memset (buf->buf + buf->len - width, ' ', width - len); } return !buf->failed; } static FcBool interpret_percent (FcFormatContext *c, FcPattern *pat, FcStrBuf *buf) { int width, start; FcBool ret; if (!expect_char (c, '%')) return FcFalse; if (consume_char (c, '%')) /* "%%" */ { FcStrBufChar (buf, '%'); return FcTrue; } /* parse an optional width specifier */ width = strtol ((const char *) c->format, (char **) &c->format, 10); if (!expect_char (c, '{')) return FcFalse; start = buf->len; switch (*c->format) { case '=': ret = interpret_builtin (c, pat, buf); break; case '{': ret = interpret_subexpr (c, pat, buf); break; case '+': ret = interpret_filter_in (c, pat, buf); break; case '-': ret = interpret_filter_out (c, pat, buf); break; case '?': ret = interpret_cond (c, pat, buf); break; case '#': ret = interpret_count (c, pat, buf); break; case '[': ret = interpret_enumerate (c, pat, buf); break; default: ret = interpret_simple (c, pat, buf); break; } return ret && maybe_interpret_converts (c, buf, start) && align_to_width (buf, start, width) && expect_char (c, '}'); } static FcBool interpret_expr (FcFormatContext *c, FcPattern *pat, FcStrBuf *buf, FcChar8 term) { while (*c->format && *c->format != term) { switch (*c->format) { case '\\': c->format++; /* skip over '\\' */ if (*c->format) FcStrBufChar (buf, escaped_char (*c->format++)); continue; case '%': if (!interpret_percent (c, pat, buf)) return FcFalse; continue; } FcStrBufChar (buf, *c->format++); } return FcTrue; } static FcBool FcPatternFormatToBuf (FcPattern *pat, const FcChar8 *format, FcStrBuf *buf) { FcFormatContext c; FcChar8 word_static[1024]; FcBool ret; if (!FcFormatContextInit (&c, format, word_static, sizeof (word_static))) return FcFalse; ret = interpret_expr (&c, pat, buf, '\0'); FcFormatContextDone (&c); return ret; } FcChar8 * FcPatternFormat (FcPattern *pat, const FcChar8 *format) { FcStrBuf buf; FcChar8 buf_static[8192 - 1024]; FcPattern *alloced = NULL; FcBool ret; if (!pat) alloced = pat = FcPatternCreate (); FcStrBufInit (&buf, buf_static, sizeof (buf_static)); ret = FcPatternFormatToBuf (pat, format, &buf); if (alloced) FcPatternDestroy (alloced); if (ret) return FcStrBufDone (&buf); else { FcStrBufDestroy (&buf); return NULL; } } #define __fcformat__ #include "fcaliastail.h" #undef __fcformat__ fontconfig-2.11.1/README0000664000076400007640000017250512313745240011556 00000000000000 Fontconfig Font configuration and customization library Version 2.11.1 2014-03-24 Check INSTALL for compilation and installation instructions. Report bugs to https://bugs.freedesktop.org in the fontconfig module. 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 nor elements in 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 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 to LOCAL_APPDATA_FONTCONFIG_CACHE for Win32 build Ross Burton (1): fc-cache: --sysroot option takes an argument 2.11 Akira TAGOH (15): Do not create a config dir for migration when no config files nor dirs Add a test case of the migration for config place Fix memory leaks in FcFreeTypeQueryFace Bug 68955 - Deprecate / remove FC_RASTERIZER Copy all values from the font to the pattern if the pattern doesn't have the element Fix a crash when FcPattern is set to null on FcFontSetList() and FcFontList() Add the description of -q option to the man page avoid reading config.h twice clean up Add the relative path for to fonts.conf if the parent path is same to fonts.conf Workaround the race condition issue on updating cache exit with the error code when FcNameParse() failed Add missing doc for FcStrListFirst and fix a typo Bump libtool revision Update CaseFolding.txt to Unicode 6.3 Jan Alexander Steffens (heftig) (1): Further changes to 30-metric-aliases.conf W. Trevor King (1): doc/fccharset.fncs: Describe the map format in more detail 2.10.95 (2.11 RC5) Akira TAGOH (2): Fix a typo Fix a crash 2.10.94 (2.11 RC4) Akira TAGOH (25): Bug 64906 - FcNameParse() should ignore leading whitespace in parameters Fix a comparison of constant warning with clang Fix a shift count overflow on 32bit box Fix a incompatible pointer warning on NetBSD Add FcTypeUnknown to FcType to avoid comparison of constant -1 Fix the behavior of intermixed tests end edits in match Ignore scandir() check on mingw Use INT_MAX instead of unreliable hardcoding value Add FC_UNUSED to FC_ASSERT_STATIC macro to avoid compiler warning Rework to apply the intermixed test and edit elements in one-pass trivial code optimization Correct fontconfig.pc to add certain dependencies for build Correct fontconfig.pc to add certain dependencies for static build Fix wrong edit position Bug 67809 - Invalid read/write with valgrind when assigning something twice warn deprecated only when migration failed Bug 67845 - Match on FC_SCALABLE Bug 16818 - fontformat in match pattern is not respected? Bug 68340 - More metric compat fonts Bug 63399 - Add default aliases for Georgia, Garamond, Palatino Linotype, Trebuchet MS Fix a typo Fix a crash when non-builtin objects are edited Fix a wrong edit position when 'kind' is different Bug 68587 - copy qu.orth to quz.orth Add quz.orth to Makefile.am Behdad Esfahbod (2): Minor Fix assertion 2.10.93 (2.11 RC3) Akira TAGOH (10): Bug 62980 - matching native fonts with even :lang=en Ensure closing fp on error Obtain fonts data via FT_Face instead of opening a file directly Revert the previous change and rework to not export freetype API outside fcfreetype.c documented FC_HASH and FC_POSTSCRIPT_NAME Bug 63329 - make check fails: .. contents:: :depth: 2 Use the glob matching for filename Bug 63452 - conf.d/README outdated Fix missing OSAtomicCompareAndSwapPtrBarrier() on Mac OS X 10.4 Bug 63922 - FcFreeTypeQueryFace fails on postscripts fonts loaded from memory Sebastian Freundt (1): build-chain, replace INCLUDES directive by AM_CPPFLAGS 2.10.92 (2.11 RC2) Akira TAGOH (33): Fix the build fail on MinGW Bug 50497 - RFE: Add OpenType feature tags support Improve FcGetPrgname() to work on BSD Better fix for 2fe5ddfd Add missing file descriptor to F_DUPFD_CLOEXEC Fix mkstemp absence for some platform Fix installation on MinGW32 Add another approach to FC_PRGNAME for Solaris 10 or before remove the unnecessary code Bug 59385 - Do the right thing for intermixed edit and test elements Bug 23757 - Add mode="delete" to Modernize configure.ac Use AM_MISSING_PROG instead of hardcoding missing Revert "test: Use SH_LOG_COMPILER and AM_TESTS_ENVIRONMENT" Use AM_MISSING_PROG instead of hardcoding missing Bug 50733 - Add font-file hash? Bug 60312 - DIST_SUBDIRS should never appear in a conditional Update _FcMatchers definition logic Bump the cache version to 4 Add Culmus foundry to the vendor list Bug 60748 - broken conf.d/10-autohint.conf and conf.d/10-unhinted.conf Bug 60783 - Add Liberation Sans Narrow to 30-metric-aliases.conf Fix a typo Fix a crash when the object is non-builtin object Fix broken sort order with FcFontSort() Fix a memory leak Bug 59456 - Adding a --sysroot like option to fc-cache Do not copy FC_*LANG_OBJECT even if it's not available on the pattern Fix a SIGSEGV on FcPatternGet* with NULL pattern Bug 38737 - Wishlist: support FC_POSTSCRIPT_NAME Minor cleanup Bump libtool revision Minor fix Behdad Esfahbod (12): Resepct $NOCONFIGURE Ensure we find the uninstalled fontconfig header Copy all values from pattern to font if the font doesn't have the element Minor Bug 59379 - FC_PRGNAME Remove unused checks for common functions Minor Fix fc-cache crash caused by looking up NULL object incorrectly Fix FC_PRGNAME default Fix readlink failure Accept digits as part of OpenType script tags Fix crash with FcConfigSetCurrent(NULL) Christoph J. Thompson (1): Use the PKG_INSTALLDIR macro. Colin Walters (1): build: Only use PKG_INSTALLDIR if available Quentin Glidic (2): test: Use SH_LOG_COMPILER and AM_TESTS_ENVIRONMENT Use LOG_COMPILER and AM_TESTS_ENVIRONMENT 2.10.91 (2.11 RC1) Akira TAGOH (19): Fix a potability issue about stdint.h Fix build issues on clean tree Do not show the deprecation warning if it is a symlink Fix a typo Fix the wrong estimation for the memory usage information in fontconfig Remove the duplicate null-check Remove the dead code clean up Fix a typo that accessing to the out of array Fix a memory leak Check the system font to be initialized Missing header file for _mkdir declaration Clean up the unused variable Bug 47705 - Using O_CLOEXEC missing header file to declare _mkdir Fix a build fail on mingw Fix a typo in the manpages template Bug 29312 - RFE: feature to indicate which characters are missing to satisfy the language support Update the date in README properly Behdad Esfahbod (73): Fix typo Parse matrices of expressions Fix compiler warnings Fix unused-parameter warnings Fix more warnings Fix sign-compare warnings Fix warning Fix more warnings Fixup from 4f6767470f52b287a2923e7e6d8de5fae1993f67 Remove memory accounting and reporting Allow target="font/pattern/default" in elements Don't warn if an unknown element is used in an expression Unbreak build when FC_ARCHITECTURE is defined Remove unneeded stuff Enable fcarch assert checks even when FC_ARCHITECTURE is explicitly given Make tests run on Windows Initialize matrix during name parsing Adjust docs for recent changes Warn if appears in Make FC_DBG_OBJTYPES debug messages into warnings Refuse to set value to unsupported types during config too Add NULL check Don't crash in FcPatternDestroy with NULL pattern Don't crash in FcPatternFormat() with NULL pattern Minor Whitespace Deprecate FcName(Un)RegisterObjectTypes / FcName(Un)RegisterConstants Use a static perfect hash table for object-name lookup Switch .gitignore to git.mk Remove shared-str pool Fix build stuff Add build stuff for threadsafety primitives Add thread-safety primitives Make refcounts, patterns, charsets, strings, and FcLang thread-safe Make FcGetDefaultLang and FcGetDefaultLangs thread-safe Make FcInitDebug() idempotent Make FcDefaultFini() threadsafe Refactor; contain default config in fccfg.c Minor Make default-FcConfig threadsafe Minor Make FcCacheIsMmapSafe() threadsafe Minor Make cache refcounting threadsafe Add a big cache lock Make random-state initialization threadsafe Make cache hash threadsafe Make FcDirCacheDispose() threadsafe Make fcobjs.c thread-safe Warn about undefined/invalid attributes during config parsing Fixup fcobjs.c Remove FcSharedStr* Fix compiler warnings Minor Fix build and warnings on win32 Use CC_FOR_BUILD to generate source files Fix more warnings. Trying to fix distcheck Fix build around true/false Work around Sun CPP Really fix cross-compiling and building of tools this time Second try to make Sun CPP happy Ugh, add Tools.mk Minor Don't use blanks for fc-query Remove FcInit() calls from tools Add 10-scale-bitmap-fonts.conf and enable by default Oops, add the actual file Fix pthreads setup Fix memory corruption! Add pthread test Add atomic ops for Solaris Make linker happy Jon TURNEY (1): Fix build when srcdir != builddir 2.10.2 Akira TAGOH (13): Bug 53585 - Two highly-visible typos in src/fcxml.c Fix for libtoolize's warnings Bug 54138 - X_OK permission is invalid for win32 access(..) calls Bug 52573 - patch required to build 2.10.x with oldish GNU C library headers deal with warnings as errors for the previous change Fix wrongly squashing for the network path on Win32. Fix syntax errors in fonts.dtd. autogen.sh: Add -I option to tell aclocal a place for external m4 files Use automake variable instead of cleaning files in clean-local Bug 56531 - autogen.sh fails due to missing 'm4' directory Bug 57114 - regression on FcFontMatch with namelang Update CaseFolding.txt to Unicode 6.2 Bug 57286 - Remove UnBatang and Baekmuk Batang from monospace in 65-nonlatin.conf Behdad Esfahbod (1): Fix N'ko orthography Jeremy Huddleston Sequoia (1): Remove _CONFIG_FIXUPS_H_ guards, so multiple includes of "config.h" result in the correct values 2.10.1 Akira TAGOH (2): Fix a typo in fontconfig.pc Install config files first 2.10.0 Akira TAGOH (5): Bug 34266 - configs silently ignored if libxml2 doesn't support SAX1 interface Update CaseFolding.txt to Unicode 6.1 Fix a build fail with gcc 2.95, not supporting the flexible array members. Bump libtool revision Update INSTALL 2.9.92 (2.10 RC2) Akira TAGOH (9): Bug 50835 - Deprecate FC_GLOBAL_ADVANCE Fix a typo and build fail. Fix a build fail on MINGW Fix the fail of make install with --disable-shared on Win32 clean up the lock file properly on even hardlink-not-supported filesystem. Rename configure.in to configure.ac Bug 18726 - RFE: help write locale-specific tests Bump libtool revision Update INSTALL Marius Tolzmann (2): Fix newline in warning about deprecated config includes Fix warning about deprecated, non-existent config includes 2.9.91 (2.10 RC1) Akira TAGOH (60): [doc] Update the path for cache files and the version. [doc] Update for cachedir. Revert "Fix a build fail on some environment." Revert "Fix a build fail on some environment" Fix a build issue due to the use of non-portable variables Get rid of the prerequisites from the sufix rules Bug 39914 - Please tag the cache directory with CACHEDIR.TAG fc-cache: improvement of the fix for Bug#39914. fcmatch: Set FcResultMatch at the end if the return value is valid. Bug 47703 - SimSun default family Bug 17722 - Don't overwrite user's configurations in default config Fix a memory leak in FcDirScanConfig() Bug 17832 - Memory leaks due to FcStrStaticName use for external patterns fcpat: Increase the number of buckets in the shared string hash table Fix the hardcoded cache file suffix Move workaround macros for fat binaries into the separate header file Bug 48020 - Fix for src/makealias on Solaris 10 Bug 24729 - [ne_NP] Fix ortho file doc: Add contains and not_contains operators and elements Use AC_HELP_STRING instead of formatting manually Use pkgconfig to check builddeps Bug 29341 - Make some fontconfig paths configurable Bug 22862 - ignores s Bug 26830 - Add search for libiconv non-default directory Bug 28491 - Allow matching on FC_FILE Bug 48573 - platform without regex do not have also REG_XXX defines Bug 27526 - Compatibility fix for old windows sytems Add --with-expat, --with-expat-includes and --with-expat-lib back. doc: Fix a typo of the environment variable name. Bug 25151 - Move cleanCacheDirectory() from fc-cache.c into Rework to avoid adding the unexpected value to ICONV_CFLAGS and ICONV_LIBS Fix a build issue again when no regex functions available C++11 requires a space between literal and identifier Bug 47721 - Add ChromeOS fonts to 30-metric-aliases.conf Create CACHEDIR.TAG when fc-cache is run or only when the cache directory is created at the runtime. Add --enable-iconv option to configure Bug 27765 - FcMatch() returns style in wrong language Disable iconv support anyway... Bug 39278 - make usage of mmap optional Output more verbose debugging log to show where to insert the element into the value list fonts.conf: keeps same binding for alternatives fcarch.c: get rid of the duplicate definition of FC_MAX Bug 19128 - Handling whitespace in aliases Bug 20411 - fontconfig doesn't match FreeDesktop directories specs Correct the example Bug 33644 - Fontconfig doesn't match correctly in fcatomic: fallback to create a directory with FcAtomicLock Move statfs/statvfs wrapper to fcstat.c and add a test for the mtime broken fs Fix the build fail on Solaris Fix a typo and polish the previous change Fix the wrong estimation for the memory usage information in fontconfig Bug 32853 - Export API to get the default language fcdefault: fallback if the environment variables are empty Add the default language to the pattern prior to do build the substitution fcdefault: no need to set FC_LANG in FcDefaultSubstitute() anymore fcdefault: Add the lang object at FcConfigSubstituteWithPat() only when kind is FcMatchPattern Bug 50525 - superfluous whitespace in the style Bump libtool revision doc: Fix distcheck error again... Generate bzip2-compressed tarball too Jeremy Huddleston (1): fcarch: Check for architecture signature at compile time rather than configure time Keith Packard (3): Use posix_fadvise to speed startup Extra ',' in AC_ARG_WITH(arch causes arch to never be autodetected Deal with architectures where ALIGNOF_DOUBLE < 4 Mark Brand (1): fix building for WIN32 Mikhail Gusarov (2): Move FcStat to separate compilation unit Fix cache aging for fonts on FAT filesystem under Linux 2.9 Akira TAGOH (28): Add charset editing feature. add some document for range and charset. Add the range support in blank element Add editing langset feature. add some documents Bug 24744 - No n'ko orthography Remove the unnecessary comment in ks.orth Bug 32965 - Asturian (ast-ES) language matching missing ḷḷḥ Add a missing file Bug 35517 - Remove Apple Roman cmap support Bug 40452 - Running 'fc-match --all' core dumps when no fonts are installed Get rid of the unexpected family name Bug 44826 - must contain only a single Bug 46169 - Pointer error in FcConfigGlobMatch Do not update stream->pos when seeking is failed. Bug 27385 - lcdfilter settings for freetype-2.3.12 not available in fontconfig-2.8.0 Add brx.orth and sat.orth Bug 41694 - FcCache functions have random-number-generator side effects Bug 23336 - unable to display bitmap-only (SFNT) TrueType or OpenType Check null value for given object to avoid possibly segfaulting Bug 19128 - Handling whitespace in aliases Fix distcheck error Update the version info Update to detect the uncommited changes properly Fix a build issue Fix a build fail on some environment Fix a build fail on some environment. Get rid of $< from Makefile.am Alan Coopersmith (1): Fix compiler warnings Behdad Esfahbod (54): [fc-cache] Document -r argument in man page [doc] Fix typo Bug 25508 configure assumes bash > 2.0 is on system Update INSTALL Add note about autogen.sh to INSTALL Fix doc typo More doc typo fixes Bug 18886 installation crashes if fontconfig already installed Bug 26157 Solaris/Sun C 5.8: compilation of 2.8.0 and 2.7.3 fails Bug 25152 Don't sleep(2) if all caches were uptodate Don't include unistd.h in fontconfig.h Accept TT_PLATFORM_MICROSOFT, TT_MS_ID_SYMBOL_CS from name table Whitespace More whitespace Remove all training whitespaces Fix comment Add fc-pattern cmdline tool Bug 29338 - fc-pattern.sgml, open para tag Add comments Bug 29995 - fc-cat does not invoke FcFini() Add new public API: FcCharSetDelChar() [fc-lang] Support excluding characters Bug 24729 - [ne_NP] Fix ortho file Add more copyright owners Cleanup copyright notices to replace "Keith Packard" with "the author(s)" Fix returned value Bug 28958 - lang=en matches other langs Make most generated-files cross-compiling-safe Make fc-arch stuff cross-compiling-safe Bump version Allow editing charset and lang in target="scan" Add support for into the DTD Skip elements with begin > end Doc nit Fix assertion failure on le32d4 Remove AM_MAINTAINER_MODE Update CaseFolding.txt to Unicode 6.0 Remove --enable-maintainer-mode from autogen.sh Bug 20113 - Uighur (ug) orthography incomplete Bug 30566 - fcformat.c:interpret_enumerate() passes uninitialized idx to FcPatternGetLangSet() Mark constant strings as constant More doc typo fixes Always define FcStat as a function Fix warning Bug 35587 - Add padding to make valgrind and glibc not hate each other [.gitignore] Update Bug 36577 - Updating cache with no-bitmaps disables bitmap fonts... Bug 26718 - "fc-match sans file" doesn't work Switch fc-match to use FcPatternFormat() Switch fc-cat to use FcPatternFormat() Fix stupid bug in FcFontSort() Bug 41171 - Invalid use of memset Fix parallel build Add FcPublic to FcLangSetUnion and FcLangSetSubtract Brad Hards (1): Documentation fixes Jeremy Huddleston (2): fontconfig.pc: Add variables for confdir and cachedir fontconfig.pc.in: Add sysconfdir, localstatedir, and PACKAGE Jinkyu Yi (1): Bug 42423 - make default Korean font from Un to Nanum MINAMI Hirokazu (1): Bug 43406 - typo of Japanese font name in conf.d/65-nonlatin.conf Mike Frysinger (9): FcStrPlus: optimize a little delete unused variables FcStat: change to FcChar8 for first arg fc-cat: fix pointer warning FcName{,Get}Constant: constify string input fc-{list,match}: constify format string fix build warnings when using --with-arch FcObjectValidType: tweak -1 checking makealias: handle missing funcs better Parag Nemade (2): Bug 25651 - Add ortho file for locale brx_IN Bug 25650 - Add ortho file for locale sat_IN Pravin Satpute (4): Bug 27195 - need updates to ks.orth file Bug 43321 - Required corrections in urdu.orth file Bug 25653 - Add ortho file for locale doi_IN Bug 25652 - Add ortho file for locale mni_IN 2.8 Behdad Esfahbod (24): Clarify default confdir and cachedir better. Move FcAlign to fcint.h [fc-arch] Add FcAlign to arch signature [int] Define MIN/MAX/ABS macros Bump cache version up from 2 to 3 and fix FcLangSet caching/crash Remove unused macros [int] Remove fc_storage_type() in favor of direct access to v->type [int] Remove fc_value_* macros that did nothing other than renaming Enable automake silent rules [int] Remove more unused macros [xml] Remove unused code [arch] Try to ensure proper FcLangSet alignment in arch [lang] Fix serializing LangSet from older versions Make sure fclang.h and fcarch.h are built Remove bogus comment [fc-glyphname] Cleanup Makefile.am [src] Create fcglyphname.h automatically [fc-glyphname] Rename internal arrays to prefix with _fc_ Clean up Makefile's a bit [fc-glyphname] Remove Adobe glyphlist [fc-case] Update CaseFolding.txt to Unicode 5.2.0 [fc-arch] Beautify the arch template [fc-arch] Rename architecture names to better reflect what they are Bump libtool revision in preparation for release 2.7.3 Behdad Esfahbod (2): Use default config in FcFileScan() and FcDirScan() Bump libtool version in preparation for release Roozbeh Pournader (2): Correct Ewe (ee) orthography to use U+025B (bug #20711) Updated Arabic, Persian, and Urdu orthographies 2.7.2 Behdad Esfahbod (6): Improve charset printing [ja.orth] Comment out FULLWIDTH YEN SIGN (#22942) Bug 22037 - No Fonts installed on a default install on Windows Server 2003 Bug 23419 - "contains" expression seems not working on the fontconfig rule Revert "Fix FcNameUnparseLangSet()" and redo it Bump libtool version for release Tor Lillqvist (3): Fix MinGW compilation Fix heap corruption on Windows in FcEndElement() Use multi-byte codepage aware string function on Windows 2.7.1 Behdad Esfahbod (16): git-tag -s again Fix win32 build Replace spaces with tabs in conf files Remove unused ftglue code Add Inconsolata to monospace config (#22710) Fix leak with string VStack objects Improve libtool version parsing (#22122) Use GetSystemWindowsDirectory() instead of GetWindowsDirectory() (#22037) Remove unused macros Fix FcNameUnparseLangSet() Fix doc syntax (#22902) TT_MS_ID_UCS_4 is really UTF-16BE, not UTF-32 [doc] Add ~/fonts.conf.d to user docs Hardcode /etc/fonts instead of @CONFDIR@ in docs (#22911) Bump libtool versions that 2.7.0 (I forgot to do back then) Update .gitignore Karl Tomlinson (1): Don't change the order of names unnecessarily (#20128) 2.7 Alexey Khoroshilov (1): Use human-readable file names in the docs (bug #16278) Behdad Esfahbod (119): Avoid C99ism in Win32 code (#16651) [doc] Fix inaccuracy in FcFontRenderPrepare docs (#16985) When canonizing filenames, squash // and remove final / (#bug 16286) Add orth file for Maithili mai.orth (#15821) Replace RCS Id tags with the file name [doc] Fix signatures of FcPatternGetFTFace and FcPatternGetLangSet (#16272) Update Thai default families (#16223) Add ~/.fonts.conf.d to default config (#17100) [fc-match] Fix list of getopt options in --help Update man pages Add fc-query (#13019) Implement fc-list --verbose (#13015) [doc] Add const decorator for FcPatternDuplicate() Add FcPatternFilter() (#13016) [doc] Document that a zero rescanInterval disables automatic checks (#17103) Get rid of $Id$ tags [doc] Fix signature of FcConfigHome() Fix docs re 'orig' argument of FcPatternBuild and family Update sr.orth to actul subset of Cyrillic used by Serbian (#17208) Add Sindhi .orth file. (#17140) Add WenQuanYi fonts to default conf (#17262, from Mandriva) Handle -h and --help according to GNU Coding Standards (#17104) Document when config can be NULL (#17105) Add FcConfigReference() (#17124) Document how to free return value of FcNameUnparse() Don't leak FcValues string loaded through fcxml.c (#17661) Don't call FcPatternGetCharSet in FcSortWalk unless we need to (#17361) Fix two more doc typos [.gitignore] Update Cleanup symlinks in "make uninstall" (bug #18885) [fccache] Consistently use FcStat() over stat() (bug #18195) Consistently use FcStat() over stat() in all places Use __builtin_popcount() when available (bug #17592) Fix compile with old FreeType that doesn't have FT_Select_Size() (bug #17498) Implement fc-list --quiet ala grep (bug #17141) [65-fonts-persian.conf] Set foundry in target=scan instead of target=font Don't use identifier named complex Explicitly chmod() directories (bug #18934) Remove special-casing of FC_FILE in FcPatternPrint() [.gitignore] Update Implement FcPatternFormat and use it in cmdline tools (bug #17107) Fix comparison of family names to ignore leading space properly [fcmatch.c] Fix debug formatting [fcmatch] Use larger multipliers to enforce order [fcmatch] When matching, reserve score 0 for when elements don't exist [fcmatch] Move FcFontSetMatch() functionality into FcFontSetMatchInternal() [doc] Note that fontset returned by FcConfigGetFonts should not be modified Make FcCharSetMerge() public Don't use FcCharSetCopy in FcCharSetMerge Oops. Fix usage output. Revive FcConfigScan() (bug #17121) Add fc-scan too that runs FcFileScan/FcDirScan Oops, fix FcPatternFilter [fc-match] Accept list of elements like fc-list (bug #13017) Cleanup all manpage.* files [fcmatch] Fix crash when no fonts are available. [fcfreetype] Fix typo in GB2312 encoding name string (#19845) Add ICONV_LIBS to fontconfig.pc.in (#19606) [win32] Fix usage of GetFullPathName() [win32] Expand "APPSHAREFONTDIR" to ../share/fonts relative to binary location [win32] Do not remove leading '\\' such that network paths work [fccache] Make sure the cache is current when reusing from open caches Update Sinhala orthography (#19288) [cache] After writing cache to file, update the internal copy to reflect this Further update Sinhala orthography (#19288) [fcformat] Add support for width modifiers [fcformat] Refactor and restructure code for upcoming changes [fcformat] Add support for subexpressions [fcformat] Add element filtering and deletion [fcformat] Add conditionals [fcformat] Add simple converters [fcformat] Implement 'cescape', 'shescape', and 'xmlescape' converters [FcStrBuf] better handle malloc failure [fcformat] Add value-count syntax [fcformat] Implement 'delete', 'escape', and 'translate' filter functions [fcformat] Start adding builtins [fcformat] Refactor code to avoid malloc [fcformat] Add support for builtin formats [fcformat] Support indexing simple tags [fcformat] Support 'default value' for simple tags [fcformat] Implement array enumeration [fclang] Implement FcLangSetGetLangs() (#18846) [fcformat] Enumerate langsets like we do arrays of values [fcformat] Add a 'pkgkit' builtin that prints tags for font packages [fcformat] Add list of undocumented language features [fc-lang] Continue parsing after an "include" (#20179) Fix Fanti (fat) orth file (#20390) Fix Makefile's to not create target file in case of failure [fcstr.c] Embed a static 64-byte buffer in FcStrBuf [fcstr,fcxml] Don't copy FcStrBuf contents when we would free it soon [fcxml] Don't allocate attr array if there are no attributes [fcxml] Embed 8 static FcPStack objects in FcConfigParse [fcxml] Embed 64 static FcVStack objects in FcConfigParse [fcxml.c] Embed a static 64-byte attr buffer in FcPStack Call git tools using "git cmd" instead of "git-cmd" syntax Replace 'KEITH PACKARD' with 'THE AUTHOR(S)' in license text in all files [fcformat] Fix default-value handling Document FcPatternFormat() format [Makefile.am] Don't clean ChangeLog in distclean Revert "[conf] Disable hinting when emboldening (#19904)" (#20599) [fc-lang] Fix bug in country map generation [fcstr] Remove unused variable [fc-lang] Make LangSet representation in the cache files stable [fc-cache] Remove obsolete sentence from man page Detect TrueType Collections by checking the font data header Mark matchers array const (#21935) Use/prefer WWS family/style (name table id 21/22) Simplify FcValueSave() semantics Add XXX note about Unicode Plane 16 Always set *changed in FcCharsetMerge [charset] Grow internal FcCharset arrays exponentially Remove unused prototypes and function [xml] Centralize FcExpr allocation [xml] Mark more symbols static [xml] Allocate FcExpr's in a pool in FcConfig [xml] Intern more strings Bug 22154 -- fontconfig.pc doesn't include libxml2 link flags Fix distcheck Remove keithp's GPG key id Benjamin Close (1): Remove build manpage logfile if it exists Chris Wilson (1): Reduce number of allocations during FcSortWalk(). Dan Nicholson (1): Let make expand fc_cachedir/FC_CACHEDIR (bug #18675) Harald Fernengel (1): Don't use variables named 'bool' (bug #18851) Harshula Jayasuriya (1): Fix Sinhala coverage (bug #19288) Karl Tomlinson (1): Change FcCharSetMerge API Mike FABIAN (1): [conf] Disable hinting when emboldening (#19904) Peter (1): Make sure alias files are built first (bug 16464) Rahul Bhalerao (1): Add config for new Indic fonts (bug #17856) Roozbeh Pournader (60): Correct Sindhi orthography to use Arabic script (bug #17140) Remove Sinhala characters not in modern use (bug #19288) Add Filipino orth, alias Tagalog to Filipino (bug #19846) Split Mongolian orth to Mongolia and China (bug #19847) Fix doubly encoded UTF-8 in comments (bug #19848) Change Turkmen orth from Cyrillic to Latin (bug #19849) Rename Venda from "ven" to "ve" (bug #19852) Rename "ku" to "ku_am", add "ku_iq" (bug #19853). Add Kashubian (csb) orth file (bug #19866) Add Malay (ms) orthography (bug #19867) Add Kinyarwanda (rw) orthography (bug #19868) Add Upper Sorbian (hsb) orthography (bug #19870) Add Berber orthographies in Latin and Tifinagh scripts (bug #19881) Renamed az to az_az (bug #19889) Rename Igbo from "ibo" to "ig" (bug #19892) Remove punctuation symbols from Asturian orthography (bug #19893) Add Chhattisgarhi (hne) orthography (bug #19891) Use newly added Cyrillic letters for Kurdish (bug #20049) Add Kurdish in Turkey (ku_tr) orthography (bug #19891) Add Aragonese (an) orthography (bug #19891) Add Haitian Creole (ht) orthography (bug #19891) Ad Ganda (lg) orthography (bug #19891) Add Limburgan (li) orthography (bug #19891) Add Sardinian (sc) orthography (bug #19891) Add Sidamo (sid) and Wolaitta (wal) orthographies (bug #19891) Fix Bengali (bn) and Assamese (as) orthographies (bug #22924) Remove Euro Sign from all orthographies (bug #19865) Add Ottoman Turkish (ota) orthography (bug #20114) Divide Panjabi (pa) to that of Pakistan and India (bug #19890) Add Blin (byn) orthography (bug #19891) Add Papiamento (pap_aw, pap_an) orthographies (bug #19891) Add Crimean Tatar (crh) orthography (bug #19891) Switch Uzbek (uz) orthography to Latin (bug #19851) Update Azerbaijani in Latin (az_az) to present usage (bug #20173) Rename Avaric orthography from 'ava' to 'av' (bug #20174) Rename Bambara orthography from 'bam' to 'bm' (bug #20175) Rename Fulah orthography from 'ful' to 'ff' (bug #20177) Change Kashmiri (ks) orthography to Arabic script (bug #20200) Tighten Central Khmer (km) orthography (bug #20202) Remove digits and symbols from some Indic orthographies (bug #20204) Add Divehi (dv) orthography (bug #20207) Extend Crimean Tatar (crh) orthography (bug #19891) Update Serbo-Croatian (sh) orthography (bug #20368) Add Ewe (ee) orthography (bug #20386) Add Herero (hz) orthograhy (bug #20387) Add Akan (ak) and Fanti (fat) orthographies (bug #20390) Added Quechua (qu) orthography (bug #20392) Add Sango (sg) orthography (bug #20393) Add Tahitian (ty) orthography (bug #20391) Add Navajo (nv) orthography (bug #20395) Add Rundi (rn) orthography (bug #20398) Add Zhuang (za) orthography (bug #20399) Add orthographies for Oshiwambo languages (bug #20401) Add Shona (sn) orthography (bug #20394) Add Sichuan Yi (ii) orthography (bug #20402) Add Javanese (jv) orthography (bug #20403) Add Nauru (na) orthography (bug #20418) Add Kanuri (kr) orthography (bug #20438) Add Sundanese (su) orthography (bug #20440) Reorganize Panjabi/Punjabi and Lahnda orthographies (bug #19890) Serge van den Boom (1): Correctly handle mmap() failure (#21062) 2.6 2.5.93 (2.6 RC3) Alexey Khoroshilov (1): Fix FcStrDirname documentation. (bug 16068) Behdad Esfahbod (1): Persian conf update. (bug 16066). Evgeniy Stepanov (1): Fix index/offset for 'decorative' matcher. Bug 15890. Glen Low (1): Fix Win32 build error: install tries to run fc-cache locally (bug 15928). Keith Packard (8): Call FcFini to make memory debugging easier Fix a few memory tracking mistakes. Add extended, caps, dunhill style mappings. Freetype 2.3.5 (2007-jul-02) fixes indic font hinting. re-enable (bug 15822) Add a copy of dolt.m4 to acinclude.m4. Libs.private needs freetype libraries Oops. Fix for bug 15928 used wrong path for installed fc-cache. Ignore empty elements Neskie Manuel (1): Add Secwepemctsin Orthography. Bug 15996. Sayamindu Dasgupta (1): FcConfigUptoDate breaks if directory mtime is in the future. Bug 14424. 2.5.92 (2.6 RC2) Carlo Bramini (1): Add FreeType-dependent functions to fontconfig.def file. (bug 15415) Changwoo Ryu (1): Korean font in the default config - replacing baekmuk with un (bug 13569) Dennis Schridde (1): Proper config path for static libraries in win32 Eric Anholt (1): Fix build with !ENABLE_DOCS and no built manpages. Frederic Crozat (1): Merge some of Mandriva configuration into upstream configuration. Bug 13247 Keith Packard (11): Use DOLT if available Work around for bitmap-only TrueType fonts that are missing the glyf table. Remove size and dpi values from bitmap fonts. Bug 8765. Add some sample cursive and fantasy families. Add --all flag to fc-match to show the untrimmed list. Bug 13018. Remove doltcompile in distclean Use of ":=" in src/Makefile.am is unportable (bug 14420) Make fc-match behave better when style is unknown (bug 15332) Deal with libtool 2.2 which doesn't let us use LT_ variables. (bug 15692) Allow for RC versions in README update git ignore doltcompile Ryan Schmidt (1): fontconfig build fails if "head" is missing or unusable (bug 14304) Sylvain Pasche (1): Fontconfig options for freetype sub-pixel filter configuration 2.5.91 (2.6 RC1) Hongbo Zhao (1): Not_contain should use strstr, not strcmp on strings. (bug 13632) Keith Packard (11): Move conf.avail/README to conf.d/README (bug 13392) Fix OOM failure case in FcPStackPush. Remove freetype requirement for build-time applications. Include fcftaliastail.h so that the freetype funcs are exported. Eliminate references to freetype from utility Makefile.am's Distribute new fcftint.h file Create new-version.sh to help with releases, update INSTALL instructions Distribute khmer font aliases Add more files to .gitignore new-version.sh was mis-editing files git-tag requires space after -m flag 2.5 Keith Packard (4): Document several function return values (Bug 13145). Document that Match calls FcFontRenderPrepare (bug 13162). Document that FcConfigGetFonts returns the internal fontset (bug 13197) Revert "Remove fcprivate.h, move the remaining macros to fcint.h." Tor Lillqvist (1): Workaround for stat() brokenness in Microsoft's C library (bug 8526) 2.4.92 (2.5 RC2) Behdad Esfahbod (14): Make fc-match --sort call FcFontRenderPrepare. Port fonts-persian.conf to new alias syntax with binding="same" Fix trivial bugs in edit-sgml.c Add FcGetLangs() and FcLangGetCharSet(). Add/update config files from Fedora. Split 40-generic.conf into 40-nonlatin.conf and 45-latin.conf Use binding="same" in 30-urw-aliases.conf and remove duplicate entries. Remove redundant/obsolete comments from conf files. Remove 20-lohit-gujarati.conf. It's covered by 25-unhint-nonlatin.conf now. Oops, fix Makefile.am. Remove 25-unhint-nonlatin.conf from default configuration by not linking it. Fix documented conf-file naming format in README Remove list of available conf files from README. Simplify/improve 30-metric-aliases.conf Keith Packard (25): Also check configDirs mtimes in FcConfigUptoDate Respect "binding" attribute in entries. Correct documentation for FcAtomicLock (Bug 12947). Remove fcprivate.h, move the remaining macros to fcint.h. Correct documentation for FcConfigUptoDate (bug 12948). Document skipping of fonts from FcFileScan/FcDirScan. Make file_stat argument to FcDirCacheLoadFile optional. Clean up exported names in fontconfig.h. Track line numbers in sgml edit tool input. Typo error in function name: Inverval -> interval Don't check cache file time stamps when cleaning cache dir. Use FcLangDifferentTerritory instead of FcLangDifferentCountry. Verify documentation covers exposed symbols. Document previously undocumented functions. (bug 12963) Update documentation for FcStrCopyFilename (bug 12964). Update documentation for stale FcConfigGetConfig function. Have FcConfigSetCurrent accept the current configuration and simply return Remove references to FcConfigParse and FcConfigLoad. Replace incorrect documentation uses of 'char' with 'FcChar8' (bug 13002). Fix formatting syntax in doc/fccache.fncs Generate fccache.sgml, fcdircache.sgml and fclangset.sgml. Formatting syntax mistake in doc/fclangset.fncs. Link new function documentation into the fontconfig-devel.sgml Ignore new generated documentation Export FcConfig{G,S}etRescanInverval from .so, mark as deprecated. 2.4.91 (2.5 RC1) Behdad Esfahbod (1): Update CaseFolding.txt to Unicode 5.1.0 Dwayne Bailey (1): Add/fix *.orth files for South African languages Hideki Yamane (1): Handle Japanese fonts better. (debian bug #435971) Keith Packard (32): rehash increment could be zero, causing rehash infinite loop. Work around FreeType bug when glyph name buffer is too small. Free temporary string in FcDirCacheUnlink (Bug #11758) Fix ChangeLog generation to avoid circular make dependency Store font directory mtime in cache file. Comment about mmaping cache files was misleading. Make FC_FULLNAME include all fullname entries, elide nothing. [bug 12827] Remove unneeded call to access(2) in fc-cache. Improve verbose messages from fc-cache. Verbose message about cleaning directories was imprecise Don't use X_OK bit when checking for writable directories (bug 12438) Have fc-cache remove invalid cache files from cache directories. FcConfigParseAndLoad doc was missing the last param. Place language name in constant array instead of pointer. Must not insert cache into hash table before completely validating. Eliminate relocations for glyph name table. Eliminate relocations from FcCodePageRange structure (bug 10982). Leave generated headers out of distribution (bug 12734). Move elements to the end of fonts.conf. Add BRAILLE PATTERN BLANK to list of blank glyphs. Replace makealias pattern with something supported by POSIX grep (bug 11083) FcInit should return FcFalse when FcInitLoadConfigAndFonts fails. (bug 10976) There is no U+1257 (bug 10899). Spelling errors in documentation. (bug 10879). Oops. Left debugging printf in previous commit. Handle UltraBlack weight. Fix parallel build in fontconfig/docs (bug 10481). Distribute man source files for command line programs (bug 9678). Ensure weight/slant values present even when style is supplied (bug 9313). fontconfig needs configure option to use gnu iconv (bug 4083). Match 'ultra' on word boundaries to detect ultra bold fonts. (bug 2511) Build fix for Solaris 10 with GCC. Mike FABIAN (1): Avoid crashes if config files contain junk. Stephan Kulow (1): Make FcPatternDuplicate copy the binding instead of always using Strong. Tilman Sauerbeck (2): Store FcNoticeFoundries in read-only memory. Store FcVendorFoundries in read-only memory. 2.4.2 Han-Wen Nienhuys: FcStrCanonFileName buggy for mingw. (bug 8311) More fixes for Win32 building (bug 8311) Kean Johnston: Don't use varargs CPP macros in fccache.c. (bug 8733) Keith Packard: Remove documentation for non-existant FcConfigNormalizeFontDir. Build fontconfig.def from header files when needed. Detect and use available random number generator (bug 8308) Add sparc64 architecture string. FcStrCanonAbsoluteFilename should be static. Use explicit platform/nameid order when scanning ttf files. Warn (and recover) from config file without elements. Avoid writing uninitialized structure pad bytes to cache files. Fix grep pattern in makealias to work on non-Gnu grep (bug 8368). Add FcFreeTypeQueryFace external API. Bug #7311. Segfault scanning non-font files. Disallow scan edit of user vars. (#8767) Add space between type and formal in devel man pages (bug 8935) Mike FABIAN: Do not clean cache files for different architectures Peter Breitenlohner: A VPATH build of fontconfig-2.4.1 fails for various reasons. Bug 8933. Use instead of when documenting fonts.conf. Bug 8935. Fix fc-cat documentation (bug 8935). 2.4.1 Keith Packard: Update installation notes for 2.4 base. Add ppc64 signature. Bug 8227 Add signatures for m68k and mipsel (thanks debian buildd) Add warning flags to fc-cache build. Clean up warnings in fc-cache. Reimplement FcConfigAppFontAddDir; function was lost in 2.4.0. 2.4.0 David Turner: Replace character discovery loop with simpler, faster version. James Cloos: Move files from conf.d to conf.avail Standardize conf.avail number prefixing convention Support all five possibilities for sub-pixel Move user and local conf file loading into conf.avail files Number the remaining conf.avail files Update Makefile.am to match conf.avail changes Replace load of conf.d in fonts.conf.in Make room for chunks from fonts.conf in conf.avail Re-order old conf.d files Move some section from fonts.conf into conf.avail files Update Makefile.am files Make conf.avail and conf.d work Keith Packard: Create fc_cachedir at install time. Bug 8157. Reference patterns in FcCacheCopySet. Replace gnu-specific sed command with simple grep. Attempt to fix makealias usage for build on Mac OS X. Accept locale environment variables that do not contain territory. Merge branch 'jhcloos' Insert newly created caches into reference data structure. Add XML headers to new conf files. Move link make commands to conf.avail dir Rename conf.avail to conf.d Fix conf.d directory sorting. Include cachedir in fonts.dtd. Don't display tests for DESTDIR on make install. Split much of the configuration into separate files. Renumber files 2.3.97 Carl Worth: Rename FcPatternThawAll to FcPatternFini. Add a configuration file that disables hinting for the Lohit Gujarati font Keith Packard: Various GCC 4 cleanups for signed vs unsigned char Finish INSTALL changes. .gitignore ChangeLog Merge branch 'fc-2_4_branch' to master Remove all .cvsignore files Hide private functions in shared library. Export functionality for utilities. Hide FreeType glue code from library ABI. Can't typecheck values for objects with no known type. Leave cache files mapped permanently. Reference count cache objects. Make cache reference counting more efficient. Oops, fc-lang broke when I added cache referencing. Correct reference count when sharing cache file objects. Eliminate .so PLT entries for local symbols. (thanks to Arjan van de Ven) Update architecture signatures for x86-64 and ppc. Parallel build fix for fcalias.h and fcaliastail.h Charset hashing depended on uniqueness of leaves. Patrick Lam: file Makefile.am was initially added on branch fc-2_4_branch. Modify config file to use Greek fonts before Asian fonts with Greek glyphs. Use libtool -no-undefined flag on all platforms. file ftglue.c was initially added on branch fc-2_4_branch. 2005-11-23 Frederic Crozat : reviewed by: plam file 10-fonts-persian.conf was initially added on branch fc-2_4_branch. Sort directory entries while scanning them from disk; prevents Heisenbugs file ln.orth was initially added on branch fc-2_4_branch. Fix typos in orth files. Reported by Denis Jacquerye. On Windows, unlink before rename. Reported by Tim Evans. file fc-match.sgml was initially added on branch fc-2_4_branch. 2.3.96 Keith Packard: Make path names in cache files absolute (NB, cache format change) Stop Eliminate pattern freezing Add .gitignore Construct short architecture name from architecture signature. Write caches to first directory with permission. Valid cache in FcDirCacheOpen. Eliminate NormalizeDir. Eliminate gratuitous stat/access calls per dir. Add architecture to cache filename. Eliminate global cache. Eliminate multi-arch cache code. Fix up fc-cache and fc-cat for no global cache changes. Eliminate ./ and ../ elements from font directory names when scanning. Regenerate x86 line in fcarch.tmpl.h to match change in cache data. Add x86-64 architecture and signature. During test run, remove cache directory to avoid stale cache usage. Add ppc architecture Revert to original FcFontSetMatch algorithm to avoid losing fonts. Rework cache files to use offsets for all data structures. Fix build problems caused by cache rework. FcCharSetSerialize was using wrong offset for leaves. Make fc-cat work. Rework Object name database to unify typechecking and object lookup. Skip broken caches. Cache files are auto-written, don't rewrite in fc-cache. Fix fc-cat again. Sigh. Use intptr_t instead of off_t inside FcCache structure. Serialized value lists were only including one value. Automatically remove invalid cache files. With no args, fc-cat now dumps all directories. Revert ABI changes from version 2.3 Change $(pkgcachedir) to $(fc_cachedir) in fc-cat and fc-cache Makefile.am Allow FcTypeLangSet to match either FcTypeLangSet or FcTypeString. Remove stale architecture signatures. Pass directory information around in FcCache structure. Freeze charsets. Fix fc-lang to use new charset freezer API. Fontset pattern references are relative to fontset, not array. Add some ignores Only rebuild caches for system fonts at make install time. Fix memory leaks in fc-cache directory cleaning code. Add @EXPAT_LIBS@ to Libs.private in fontconfig.pc (bug 7683) Avoid #warning directives on non-GCC compilers. (bug 7683) Chinese/Macau needs the Hong Kong orthography instead of Taiwan (bug 7884) Add Assamese orthography (as.orth). Bug #8050 Really only rebuild caches for system fonts at make install time. Fonts matching lang not territory should satisfy sort pattern lang. Prefer Bitstream Vera to DejaVu families. Guess that mac roman names with lots of high bits are actually SJIS. Document FC_DEBUG values (bug 6393). Document name \ escape syntax. Move Free family names to bottom of respective aliases. (bug 7429) Unify directory canonicalization into FcStrAddFilename. Allow font caches to contain newer version numbers Add FcMatchScan to resolve Delicious font matching issues (bug #6769) Fix missing initialization/destruction of new 'scan' target subst list. Don't segfault when string values can't be parsed as charsets or langsets. Using uninitialized (and wrong) variable in FcStrCopyFilename. Oops; missed the 60-delicious.conf file. Patrick Lam: Keith Packard 2006-04-27 Paolo Borelli (pborelli@katamail.com) reviewed by: plam 2006-05-31 Yong Li (rigel863@gmail.com) reviewed by: plam, Bedhad Esfahbod 2006-07-19 Jon Burgess (jburgess@uklinux.net) reviewed by: plam 2006-08-04 Keith Packard (keithp@keithp.com) reviewed by: plam 2.3.95 Match 'Standard Symbols L' for 'Symbol'. Add URW fonts as aliases for all of the PostScript fonts. (reported by Miguel Rodriguez). Fix a number of Coverity defects (Frederic Crozat). Speed up FcFontSort (fix suggested by Kenichi Handa). Fix error with charsets. Survive missing docbook2pdf. Compile on HP-UX, AIX, SGI and Windows (Cygwin, MinGW). Fix intel compiler warnings. Fix multiarch support (don't destroy multiarch files!) Require pkg-config. (Thanks Behdad; better solution wanted for libxml2 detection!) Fix typos in orth files and add orth for Lingala (reported by Denis Jacquerye). Remove debian/ directory. Add a configuration file that disables hinting for the Lohit Gujarati font (since the hinting distorts some glyphs quite badly). Sort directory entries while scanning them from disk; prevents Heisenbugs due to file ordering in a directory (due to Egmont Koblinger). Fix Wine's problem with finding fonts. (Reported by Bernhard Rosenkraenzer.) Fix the issues with GNU libiconv vs. libc iconv (which especially appear on Solarii); patch by Behdad Esfahbod, approach suggested by Tim Mooney. 2.3.94 fc-cat can take directories as input and creates old-style fonts.cache listings. fc-cache takes -r --really-force which blows away all old caches and regenerates. Robustness fixes, integer overflow fixes (notably to cache handling code), toast broken global cache files. Change binary format to make it compatible with static langset information (thanks to Takashi Iwai). Open hashed caches before fonts.cache-2 (Takashi Iwai). Fix FcFontSetMatch's algorithm, which used to unjustly kill fonts for not declaring certain elements (Takashi Iwai). Fix matching bug when multiple elements match; don't use the sum of all scores, but the best score (James Su). Make fc-lang more friendly to Windows systems. Remove archaic chars from Georgian charset; add Euro character to charsets for European languages. Fix treatment of broken PCF fonts that don't declare family names. Pass O_BINARY to open if appropriate (reported by Doodle). Normalize font directories to the form in which they appear in config files. Add a record of the cached directory to the cache file. Perf optimizations (Dirk Mueller; some reported by Michael Meeks.) Don't loop infinitely on recursive symlinks. Make 'make distcheck' work with automake 1.6.3. Replace 'stamp' target with mkinstalldirs. Don't stop scanning if a directory in fonts.conf doesn't exist, because subsequent directories might exist. Put directory names into global cache (reported by Ronny V. Vindenes). Treat zh-hk fonts differently from zh-tw fonts. This patch may cause fontconfig to treat A-X fonts differently from A-Y fonts; please mail the fontconfig list if this causes any problems. Fix for unaligned memory accesses (Andreas Schwab). Fix treatment of cache directory as read from cache file; don't use string equality to determine if we have the right file, use inode equality. Properly skip past dir caches that contain zero fonts, as occurs in global caches (reported by Mike Fabian). Print out full pathname in fc-match -v (reported by Frederic Crozat). Fix bug where fc-match crashes when given __DUMMY__ property to match on. 2.3.93 Create cache files in /var/cache/fontconfig with hashed filenames, if possible, for added FHS compliance. Make fc-cat read both per-directory and global cache files. Add config file for Persian fonts from Sharif FarsiWeb, Inc. Major performance improvements by Dirk Mueller, Stephen Kulow, and Michael Matz at SuSE: in particular, speed up FcFontSetMatch, and inline many functions. Fix treatment of globs in config files, broken since 2.3.2 and discovered by Mathias Clasen. Don't use freetype internal headers (patch by Matthias Clasen). Further space improvements: create langsets statically, so that they can live in .rodata. Properly align mmapped data structures to make e.g. ia64 happy. Bug fixes. 2.3.92 Fix corrupted caches bugs from 2.3.91 (reported by Mike Fabian). Store only basename in the cache, reconstitute on demand (reported by James Cloos). Change the rule for artificial emboldening in fonts.conf.in. This enables the support for artificial emboldening included in cairo (patch by Zhe Su). Add FC_EMBEDDED_BITMAP object type to tell Xft/Cairo whether to load embedded bitmaps or not (patch by Jinghua Luo). Fix GCC4 warnings (some by Behdad Esfahbod). Support localized font family and style names; this has been reported to break old apps like xfd, but modern (gtk+/qt/mozilla) apps work fine (patch by Zhe Su). Prevent fc-list from escaping strings when printing them (reported by Matthias Clasen). Add valist sentinel markup for FcObjectSetBuild and FcPatternBuild (patch by Marcus Meissner). Add consts to variables so as to move arrays into .rodata (patch by Ross Burton). Modify config file to use Greek fonts before Asian fonts with Greek glyphs. (patch by Simos Xenitellis). Use libtool -no-undefined flag on all platforms (patch by Christian Biesinger). 2.3.91 Use libxml2 if requested or if expat not available. (Mathias Hasselmann) Fix multi-arch cache files: compute the position for the block to be added using info from OrigFile, not NewFile. (plam) Cast results of sizeof() to unsigned int to get rid of warnings on x86_64 (reported by Matthias Clasen). Use FcAtomic to rewrite cache files; don't unlink the fonts.cache-2 file even if there's no data to write; just write an empty cache file. (Reported by Lubos Lunak) Allocate room for the subdirectory names in each directory cache. (Reported by James Cloos) 2.3.90 Development release of mmap patch: load pattern information directly from cache files. (Patrick Lam) 2.3.2 Patch memory leaks in using iconv. (Reported by Chris Capoccia) Patch memory leaks in fc-cache. (Reported by Chris Capoccia) Fetch bitmap glyphs to get widths during font evaluation. (keithp) Share strings through FcObjectStaticName (Ross Burton) Windows build updates (Tor Lillqvist) 2.3.1 Be more careful about broken GSUB/GPOS tables (Manish Singh) Include debian packaging stuff in CVS (Josselin Mouette) Add more conf.d examples (Keith Packard) Make manuals build again (Keith Packard) Johap -> Johab (Funda Wang) 2.3.0 Fix memory leak of patterns rejected by configuration (#2518) Create prototype /etc/fonts/conf.d directory and populate it with a few sample files. These samples are unused as the file names don't start with numbers. Update documentation. 2.2.99 Verify cache for FC_FILE and FC_FAMILY in every entry (#2219) Update blanks list from recent Unicode docs (#86) Various small build fixes (#280, #2278, Documentation fixes (#2085, #2284, #2285) Add polite typechecking to config file loader (#229) 2.2.98 Share object name strings (Michael Meeks) Eliminate a couple of codepoints from Russian orthography (John Thacker) Add synthetic emboldening configuration changes (Jakub Pavelek) Change FcFontSetSort to ignore language after fonts with the requested languages have been found. (Owen Taylor) Add some RedHat font configuration changes (Owen Tayler). Add full Unicode case folding support to case-ignoring string functions (Keith Packard) Remove Han characters from Korean orthography (Tor Andersson) 2.2.97 Fc-cache sleeps before exiting to ensure filesystem timestamps are well ordered. Added Punjai orthography. The timestamp in fonts.conf is gone now. Too many problems. The default font path includes all of the X fonts; use selectfont/rejectfont to eliminate bitmaps, as shown in the sample local.conf file. configuration elements may now reference a directory. Files in that directory matching [0-9]* are loaded in UTF-8 collating sequence order. configuration added to control which fonts are used. fontformat font pattern elements built from the FT_Get_X11_Font_Format function in newer versions of FreeType. 'capability' list constructed from gsub/gpos and silf values in TrueType files. Multi-lingual names (style, family, fullname) extracted and stored with parallel lang properties marking language. 2.2.96 Fix FcConfigUpToDate to actually check all font directories and eliminate a typo which completely prevented it from working (Lubos Lunak ) Remove comma at end of FcResult enum definition for picky compilers. 2.2.95 Add FcResultOutOfMemory so FcFontSetMatch can return accurate error. Replace MIN/MAX/ABS macros which happened to be in old FreeType releases with FC_MIN/FC_MAX/FC_ABS macros owned by fontconfig. 2.2.94 The 2.2.93 release was prepared with a broken libtool which created the shared library without the '.so' in the file names. 2.2.93 This is the third prerelease of fontconfig 2.3. Significant changes from 2.2.92 are: o Use new FreeType #include syntax o use y_ppem field instead of 'height' in bitmap sizes rec - FreeType changed the semantics. Still uses height for older versions of FreeType o Don't construct program manuals unless docbook is available 2.2.92 o make distcheck work 2.2.91 o Switch to SGML manuals o Add FC_DUAL width spacing value o Add FcFini to close out fontconfig and release all memory 2.2 This is the third public release of fontconfig, a font configuration and customization library. Fontconfig is designed to locate fonts within the system and select them according to requirements specified by applications. Fontconfig is not a rasterization library, nor does it impose a particular rasterization library on the application. The X-specific library 'Xft' uses fontconfig along with freetype to specify and rasterize fonts. Keith Packard keithp@keithp.com fontconfig-2.11.1/ltmain.sh0000644000076400007640000105152212313745300012505 00000000000000 # libtool (GNU libtool) 2.4.2 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, # 2007, 2008, 2009, 2010, 2011 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. # GNU Libtool 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. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --no-quiet, --no-silent # print informational messages (default) # --no-warn don't display warning messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print more informational messages than default # --no-verbose don't print the extra informational messages # --version print version information # -h, --help, --help-all print short, long, or detailed help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. When passed as first option, # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.4.2 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . # GNU libtool home page: . # General help using GNU software: . PROGRAM=libtool PACKAGE=libtool VERSION=2.4.2 TIMESTAMP="" package_revision=1.3337 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # NLS nuisances: We save the old values to restore during execute mode. lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done LC_ALL=C LANGUAGE=C export LANGUAGE LC_ALL $lt_unset CDPATH # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" : ${CP="cp -f"} test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_dirname may be replaced by extended shell implementation # func_basename file func_basename () { func_basename_result=`$ECHO "${1}" | $SED "$basename"` } # func_basename may be replaced by extended shell implementation # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` } # func_dirname_and_basename may be replaced by extended shell implementation # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname may be replaced by extended shell implementation # These SED scripts presuppose an absolute path with a trailing slash. pathcar='s,^/\([^/]*\).*$,\1,' pathcdr='s,^/[^/]*,,' removedotparts=':dotsl s@/\./@/@g t dotsl s,/\.$,/,' collapseslashes='s@/\{1,\}@/@g' finalslash='s,/*$,/,' # func_normal_abspath PATH # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. # value returned in "$func_normal_abspath_result" func_normal_abspath () { # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` while :; do # Processed it all yet? if test "$func_normal_abspath_tpath" = / ; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result" ; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_relative_path SRCDIR DSTDIR # generates a relative path from SRCDIR to DSTDIR, with a trailing # slash if non-empty, suitable for immediately appending a filename # without needing to append a separator. # value returned in "$func_relative_path_result" func_relative_path () { func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=${func_dirname_result} if test "x$func_relative_path_tlibdir" = x ; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test "x$func_stripname_result" != x ; then func_relative_path_result=${func_relative_path_result}/${func_stripname_result} fi # Normalisation. If bindir is libdir, return empty string, # else relative path ending with a slash; either way, target # file name can be directly appended. if test ! -z "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result/" func_relative_path_result=$func_stripname_result fi } # The name of this program: func_dirname_and_basename "$progpath" progname=$func_basename_result # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' # Sed substitution that converts a w32 file name or path # which contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname: ${opt_mode+$opt_mode: }$*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` done my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "$my_tmpdir" } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "$1" | $SED \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_tr_sh # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_version # Echo version message to standard output and exit. func_version () { $opt_debug $SED -n '/(C)/!b go :more /\./!{ N s/\n# / / b more } :go /^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $opt_debug $SED -n '/^# Usage:/,/^# *.*--help/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" echo $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help [NOEXIT] # Echo long help message to standard output and exit, # unless 'noexit' is passed as argument. func_help () { $opt_debug $SED -n '/^# Usage:/,/# Report bugs to/ { :print s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ p d } /^# .* home page:/b print /^# General help using/b print ' < "$progpath" ret=$? if test -z "$1"; then exit $ret fi } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $opt_debug func_error "missing argument for $1." exit_cmd=exit } # func_split_short_opt shortopt # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. func_split_short_opt () { my_sed_short_opt='1s/^\(..\).*$/\1/;q' my_sed_short_rest='1s/^..\(.*\)$/\1/;q' func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` } # func_split_short_opt may be replaced by extended shell implementation # func_split_long_opt longopt # Set func_split_long_opt_name and func_split_long_opt_arg shell # variables after splitting LONGOPT at the `=' sign. func_split_long_opt () { my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^--[^=]*=//' func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` } # func_split_long_opt may be replaced by extended shell implementation exit_cmd=: magic="%%%MAGIC variable%%%" magic_exe="%%%MAGIC EXE variable%%%" # Global variables. nonopt= preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" extracted_archives= extracted_serial=0 # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "${1}=\$${1}\${2}" } # func_append may be replaced by extended shell implementation # func_append_quoted var value # Quote VALUE and append to the end of shell variable VAR, separated # by a space. func_append_quoted () { func_quote_for_eval "${2}" eval "${1}=\$${1}\\ \$func_quote_for_eval_result" } # func_append_quoted may be replaced by extended shell implementation # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "${@}"` } # func_arith may be replaced by extended shell implementation # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` } # func_len may be replaced by extended shell implementation # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` } # func_lo2o may be replaced by extended shell implementation # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` } # func_xform may be replaced by extended shell implementation # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func_error ${1+"$@"} func_error "See the $PACKAGE documentation for more information." func_fatal_error "Fatal configuration error." } # func_config # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # Display the features supported by this script. func_features () { echo "host: $host" if test "$build_libtool_libs" = yes; then echo "enable shared libraries" else echo "disable shared libraries" fi if test "$build_old_libs" = yes; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag tagname # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname="$1" re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf="/$re_begincf/,/$re_endcf/p" # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Option defaults: opt_debug=: opt_dry_run=false opt_config=false opt_preserve_dup_deps=false opt_features=false opt_finish=false opt_help=false opt_help_all=false opt_silent=: opt_warning=: opt_verbose=: opt_silent=false opt_verbose=false # Parse options once, thoroughly. This comes as soon as possible in the # script to make things like `--version' happen as quickly as we can. { # this just eases exit handling while test $# -gt 0; do opt="$1" shift case $opt in --debug|-x) opt_debug='set -x' func_echo "enabling shell trace mode" $opt_debug ;; --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) opt_config=: func_config ;; --dlopen|-dlopen) optarg="$1" opt_dlopen="${opt_dlopen+$opt_dlopen }$optarg" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) opt_features=: func_features ;; --finish) opt_finish=: set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help_all=: opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_mode="$optarg" case $optarg in # Valid mode arguments: clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac shift ;; --no-silent|--no-quiet) opt_silent=false func_append preserve_args " $opt" ;; --no-warning|--no-warn) opt_warning=false func_append preserve_args " $opt" ;; --no-verbose) opt_verbose=false func_append preserve_args " $opt" ;; --silent|--quiet) opt_silent=: func_append preserve_args " $opt" opt_verbose=false ;; --verbose|-v) opt_verbose=: func_append preserve_args " $opt" opt_silent=false ;; --tag) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_tag="$optarg" func_append preserve_args " $opt $optarg" func_enable_tag "$optarg" shift ;; -\?|-h) func_usage ;; --help) func_help ;; --version) func_version ;; # Separate optargs to long options: --*=*) func_split_long_opt "$opt" set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-n*|-v*) func_split_short_opt "$opt" set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) break ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) set dummy "$opt" ${1+"$@"}; shift; break ;; esac done # Validate options: # save first non-option argument if test "$#" -gt 0; then nonopt="$opt" shift fi # preserve --debug test "$opt_debug" = : || func_append preserve_args " --debug" case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test "$opt_mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$opt_mode' for more information." } # Bail if the options were screwed $exit_cmd $EXIT_FAILURE } ## ----------- ## ## Main. ## ## ----------- ## # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case "$lt_sysroot:$1" in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result="=$func_stripname_result" ;; *) # Including no sysroot. func_replace_sysroot_result=$1 ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T </dev/null` if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$lt_sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $opt_debug # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result="" if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result" ; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $opt_debug if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $opt_debug # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $opt_debug if test -z "$2" && test -n "$1" ; then func_error "Could not determine host file name corresponding to" func_error " \`$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result="$1" fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $opt_debug if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " \`$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result="$3" fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $opt_debug case $4 in $1 ) func_to_host_path_result="$3$func_to_host_path_result" ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via `$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $opt_debug $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $opt_debug case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result="$1" } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result="$func_convert_core_msys_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via `$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # Path separators are also converted from $build format to $host format. If # ARG begins or ends with a path separator character, it is preserved (but # converted to $host format) on output. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $opt_debug if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd="func_convert_path_${func_stripname_result}" fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $opt_debug func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result="$1" } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; # and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_msys_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_mode_compile arg... func_mode_compile () { $opt_debug # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify \`-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append later " $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" func_append_quoted lastarg "$arg" done IFS="$save_ifs" func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append base_compile " $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with \`-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj="$func_basename_result" } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from \`$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir func_append command " -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$opt_mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$opt_mode'" ;; esac echo $ECHO "Try \`$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test "$opt_help" = :; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | sed -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | sed '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_append_quoted args "$file" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$opt_mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "\`$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument \`$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and \`=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the \`-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the \`$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the \`$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test "$opt_mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" func_append install_prog "$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test "x$prev" = x-m && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" func_append install_prog " $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" func_append install_shared_prog " -m $func_quote_for_eval_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$opt_mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename="" if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname" ; then func_basename "$dlprefile_dlname" dlprefile_dlbasename="$func_basename_result" else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename" ; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) func_append symtab_cflags " $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $opt_debug sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $opt_debug match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive which possess that section. Heuristic: eliminate # all those which have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $opt_debug if func_cygming_gnu_implib_p "$1" ; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1" ; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result="" fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" if test "$lock_old_archive_extraction" = yes; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test "$lock_old_archive_extraction" = yes; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ which is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options which match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { case \" \$* \" in *\\ --lt-*) for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done ;; esac func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include /* declarations of non-ANSI functions */ #if defined(__MINGW32__) # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined(__CYGWIN__) # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined (other platforms) ... */ #endif /* portability defines, excluding path handling macros */ #if defined(_MSC_VER) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC # ifndef _INTPTR_T_DEFINED # define _INTPTR_T_DEFINED # define intptr_t int # endif #elif defined(__MINGW32__) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined(__CYGWIN__) # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined (other platforms) ... */ #endif #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #if defined(LT_DEBUGWRAPPER) static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -n -e ' s/^\(.\{79\}\)\(..*\)/\1\ \2/ h s/\([\\"]\)/\\\1/g s/$/\\n/ s/\([^\n]*\).*/ fputs ("\1", f);/p g D' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $opt_debug case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in bindir) bindir="$arg" prev= continue ;; dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then func_append dlfiles " $arg" else func_append dlprefiles " $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # func_append moreargs " $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi func_append deplibs " $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot|--sysroot) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; =*) func_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $func_quote_for_eval_result" func_append compiler_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append linker_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-flto*|-fwhopr*|-fuse-linker-plugin) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. func_append objs " $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. func_append deplibs " $arg" func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test "$prev" = dlfiles; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= else func_append deplibs " $func_resolve_sysroot_result" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_preserve_dup_deps ; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append libs " $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) func_append deplibs " $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." else echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append newdlfiles " $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test "$prefer_static_libs" = yes || test "$prefer_static_libs,$installed" = "built,no"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib="$l" done fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. func_append dlprefiles " $lib $dependency_libs" else func_append newdlfiles " $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$lt_sysroot$libdir" absdir="$lt_sysroot$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later func_append notinst_path " $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi case "$host" in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" func_append newdlprefiles " $dir/$linklib" else func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then func_append newdlprefiles " $dir/$dlname" else func_append newdlprefiles " $dir/$linklib" fi ;; esac fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) func_append temp_rpath "$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) if test "$installed" = no; then func_append notinst_deplibs " $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then echo if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$opt_mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$absdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$opt_mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo $ECHO "*** Warning: This system can not link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) func_append xrpath " $temp_xrpath";; esac;; *) func_append temp_deplibs " $libdir";; esac done dependency_libs="$temp_deplibs" fi func_append newlib_search_path " $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi func_append tmp_libs " $func_resolve_sysroot_result" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) func_append tmp_libs " $deplib" ;; esac ;; *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" func_append objs "$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" func_append libobjs " $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in # correct linux to gnu/linux during the next big refactor darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|qnx|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. func_append verstring ":${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" func_append libobjs " $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$opt_mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi func_append removelist " $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do func_replace_sysroot "$libdir" func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) func_append dlfiles " $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) func_append dlprefiles " $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then func_append deplibs " -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` done fi case $tmp_deplibs in *[!\ \ ]*) echo if test "X$deplibs_check_method" = "Xnone"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ;; esac ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then # Remove ${wl} instances when linking with ld. # FIXME: should test the right _cmds variable. case $archive_cmds in *\$LD\ *) wl= ;; esac if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$opt_mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do func_append linknames " $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" func_append delfiles " $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd1 in $cmds; do IFS="$save_ifs" # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test "$try_normal_branch" = yes \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=${output_objdir}/${output_la}.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) func_append tmp_deplibs " $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $convenience func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output func_basename "$output" output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\${concat_cmds}$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi func_append delfiles " $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) func_append compile_command " ${wl}-bind_at_load" func_append finalize_command " ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done compile_deplibs="$new_libs" func_append compile_command " $compile_deplibs" func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) func_append finalize_perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=no ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then func_append oldobjs " $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $addlibs func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else echo "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" func_append oldobjs " $gentop/$newobj" ;; *) func_append oldobjs " $obj" ;; esac done fi func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" func_resolve_sysroot "$deplib" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -R$func_replace_sysroot_result" ;; *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append newdlfiles " $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlfiles " $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test "x$bindir" != x ; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$opt_mode" = link || test "$opt_mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) func_append RM " $arg"; rmforce=yes ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then odir="$objdir" else odir="$dir/$objdir" fi func_basename "$file" name="$func_basename_result" test "$opt_mode" = uninstall && odir="$dir" # Remember odir for removal later, being careful to avoid duplicates if test "$opt_mode" = clean; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do func_append rmfiles " $odir/$n" done test -n "$old_library" && func_append rmfiles " $odir/$old_library" case "$opt_mode" in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) if test "$opt_mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles func_append rmfiles " $odir/$name $odir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name" ; then func_append rmfiles " $odir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$opt_mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 fontconfig-2.11.1/aclocal.m40000664000076400007640000013147412313745336012544 00000000000000# generated automatically by aclocal 1.13.4 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 1 (pkg-config-0.24) # # Copyright © 2004 Scott James Remnant . # # 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 .])[]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 # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.13' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.13.4], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.13.4])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to # '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], [$1], [UPC], [depcc="$UPC" am_compiler_list=], [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each '.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) AM_MISSING_PROG([AUTOCONF], [autoconf]) AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) AM_MISSING_PROG([AUTOHEADER], [autoheader]) AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST([install_sh])]) # Copyright (C) 2003-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it is modern enough. # If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT([yes]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2009-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar # AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/ac_check_symbol.m4]) m4_include([m4/ax_cc_for_build.m4]) m4_include([m4/ax_create_stdint_h.m4]) m4_include([m4/ax_pthread.m4]) m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) fontconfig-2.11.1/fontconfig.spec.in0000664000076400007640000001074111720341276014306 00000000000000# Some distributions name their Freetype 2 package "freetype", while others # name it "freetype2". You can define the name your distribution uses here. %define freetype2 freetype Summary: Font configuration and customization library Name: fontconfig Version: @VERSION@ Release: 1 License: MIT Group: System Environment/Libraries Source: http://fontconfig.org/release/fontconfig-%{version}.tar.gz URL: http://fontconfig.org BuildRoot: %{_tmppath}/%{name}-%{version}-root BuildRequires: %{_bindir}/docbook2html BuildRequires: %{_bindir}/docbook2txt BuildRequires: %{freetype2}-devel BuildRequires: expat-devel BuildRequires: perl PreReq: %{freetype2} %description Fontconfig is designed to locate fonts within the system and select them according to requirements specified by applications. %package devel Summary: Font configuration and customization library Group: Development/Libraries Requires: %{name} = %{version} Requires: %{freetype2}-devel %description devel The fontconfig-devel package includes the static libraries, header files, and developer docs for the fontconfig package. Install fontconfig-devel if you want to develop programs which will use fontconfig. # Some rpm specific directories. Prefix 'my' hopefully does not collide with anything. %define my_docdir %{_datadir}/doc/%{name}-%{version} %define my_develdocdir %{_datadir}/doc/%{name}-devel-%{version} %define my_tmpdocdir $RPM_BUILD_ROOT%{my_docdir} %define my_tmpdeveldocdir $RPM_BUILD_ROOT%{my_develdocdir} %prep %setup -q %build %configure --with-x-fonts=/usr/X11R6/lib/X11/fonts --disable-gtk-doc \ --with-docdir=%{my_docdir} make %{_smp_mflags} %install [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT { %makeinstall docdir=%{my_tmpdocdir} # The make does not distinguish the base and devel packages mkdir -p %{my_tmpdeveldocdir} mv -f %{my_tmpdocdir}/*devel* %{my_tmpdeveldocdir} # Use a more informative directory name: mv -f %{my_tmpdeveldocdir}/fontconfig-devel %{my_tmpdeveldocdir}/html } %clean [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT %post { /sbin/ldconfig # Force regeneration of all fontconfig cache files. %{_bindir}/fc-cache -f --system-only } %postun -p /sbin/ldconfig %files %defattr(-, root, root) %doc README AUTHORS COPYING ChangeLog doc/fontconfig-user.{html,txt} %{my_docdir}/* %dir %{_sysconfdir}/fonts %{_sysconfdir}/fonts/fonts.conf %{_sysconfdir}/fonts/fonts.dtd %config %{_sysconfdir}/fonts/local.conf %{_bindir}/fc-* %{_libdir}/libfontconfig*.so.* %{_mandir}/man1/* %{_mandir}/man5/* %files devel %defattr(-, root, root) #%doc doc/fontconfig-devel.txt doc/fontconfig-devel/* %{my_develdocdir} %dir %{_includedir}/fontconfig %{_includedir}/fontconfig/* %{_libdir}/*.a %{_libdir}/*.la %{_libdir}/libfontconfig.so %{_libdir}/pkgconfig %{_mandir}/man3/* %changelog * Wed Mar 20 2004 Enrique Perez-Terron - Added mandir /man1/* to main file list - Added missing '/*' after includedir/fontconfig to avoid "listed twice" error. - Removed configure option --disable-docs since its problem is solved, see below. - Added option to makeinstall to have it install docs in the proper directory. Notice though that the %doc macro deletes and recreates the docs directory. - Cleaner separation of devel docs. - Renamed doc/fontconfig-devel-*/fontconfig-devel subdirectory to 'html'. - Removed %doc macro from devel filelist, since it deletes installed files. * Fri Mar 7 2003 Mike A. Harris 2.1.92-1 - Removed man1/* and added man5/* to main package and man3/* to devel package - Added missing defattr(-, root, root) to main package - Added HTML and text development documentation to -devel subpackage * Wed Mar 5 2003 Mike A. Harris - Added back the configure macro options --disable-docs because otherwise fontconfig installs docs into /usr/share/doc/fontconfig (with no version number) unconditionally, causing RPM to fail the build due to unpackaged files terminate build * Wed Mar 5 2003 Mike A. Harris - Removed commented out rpm macro define at top of spec file, replacing it with a simple explanation, since rpm macros are expanded by rpm even in comments - Changed /usr/bin to _bindir in BuildRequires lines - Cleaned up rpm postinstall script, and made fc-cache use _bindir - Reorganized file manifest lists * Sun Mar 2 2003 Owen Taylor - Various improvements from Red Hat spec file * Sun Mar 2 2003 Mike A. Harris - Initial changelog entry fontconfig-2.11.1/fc-lang/0000775000076400007640000000000012313745412012254 500000000000000fontconfig-2.11.1/fc-lang/ho.orth0000664000076400007640000000267312267155334013516 00000000000000# # fontconfig/fc-lang/ho.orth # # 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. # # Hiri Motu (HO) # # I found one sample of Hiri Motu text, a translation of the first part of # Genesis at # http://rosettaproject.org:8080/live/search/showpages?ethnocode=POM&doctype=gen&version=1&scale=six # # It appears to use only ASCII glyphs, so we'll go with that for now # 0041-005a 0061-007a fontconfig-2.11.1/fc-lang/ie.orth0000664000076400007640000000240012267155334013471 00000000000000# # fontconfig/fc-lang/ie.orth # # 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. # # Interlingue (IE) # # Orthography taken from http://www.kolumbus.fi/allkiv/itgr/itgrix.htm # 0041-005a 0061-007a fontconfig-2.11.1/fc-lang/oc.orth0000664000076400007640000000253112267155334013502 00000000000000# # fontconfig/fc-lang/oc.orth # # 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. # # Occitan (OC) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a 00c0 00c1 00c7 00c8 00c9 #00cb 00cd #00cf 00d2 00d3 00da 00e0 00e1 00e7 00e8 00e9 #00eb 00ed #00ef 00f2 00f3 00fa fontconfig-2.11.1/fc-lang/hne.orth0000664000076400007640000000246512267155334013661 00000000000000# # fontconfig/fc-lang/hne.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Chhattisgarhi (hne) # # The government of India considers this a dialect of Hindi: # including Hindi until further information is found. include hi.orth fontconfig-2.11.1/fc-lang/ti_er.orth0000664000076400007640000000346212267155334014207 00000000000000# # fontconfig/fc-lang/ti_er.orth # # 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. # # Eritrean Tigrinya (TI-ER) Ethiopic Convention # # Taken from Unicode coverage (1200-137f) # # Sylables 1200-1206 # he-ho 1208-1216 # le-Ho, skip HWa 1218-121f # me-mWa 1228-1230 # re-sWa 1238-1246 # re-qo 1248 # qWe 124a-124d # qWi-qW 1250-1256 # Qe-Qo 1258 # QWe 125a-125d # QWi-QW 1260-126e # be-vo 1270-127f # te-cWa 1290-12a7 # ne-o 12a8-12ae # ke-ko 12b0 # kWe 12b2-12b5 # kWi-kW 12c8-12ce # Ke-Ko 12c0 # KWe 12c2-12c5 # KWi-KW 12c8-12ce # we-wo 12d0-12d6 # `e-`o 12d8-12ee # ze-yo 12f0-12f7 # de-dWa 1300-130e # je-go 1310 # gWe 1312-1315 # gWi-gW 1320-133f # Te-SWa 1348-1356 # fe-po, skip pWa, rYa, mYa, fYa fontconfig-2.11.1/fc-lang/sc.orth0000664000076400007640000000260312267155334013506 00000000000000# # fontconfig/fc-lang/sc.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Sardinian (sc) # # Sources: # * http://www.omniglot.com/writing/sardinian.htm # * http://www.limbasarda.it/lingui/ling_alfa.html # # K, W, X, and Y are not used. 0041-005A 0061-007A 00C0 00C8 00CC 00D2 00D9 00E0 00E8 00EC 00F2 00F9 fontconfig-2.11.1/fc-lang/pap_aw.orth0000664000076400007640000000243412267155334014352 00000000000000# # fontconfig/fc-lang/pap_aw.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Papiamento in Aruba (pap-AW) # # Sources: studying online newspapers, random wikipedia pages # 0041-005A 0061-007A 00D1 00F1 fontconfig-2.11.1/fc-lang/dv.orth0000664000076400007640000000270612267155334013516 00000000000000# # fontconfig/fc-lang/dv.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Divehi/Dhivehi/Maldivian (dv) # # Sources: # * The Unicode standard # * http://www.omniglot.com/writing/thaana.htm # * http://en.wikipedia.org/wiki/T%C4%81na # 0780-0797 # main consonants 0798-07A5 # consonants used for loanwords 07A6-07B0 # vowels #07B1 # used only in dialectic or historic Divehi fontconfig-2.11.1/fc-lang/kum.orth0000664000076400007640000000320112267155334013670 00000000000000# # fontconfig/fc-lang/kum.orth # # 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. # # Coverage taken from TITUS (Thesaurus Indogermanischer Text und # Sprachmaterialien) # # http://titus.uni-frankfurt.de/unicode/alphabet/nslatest.htm # # Kumyk (KUM) # 0401 0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041a 041b 041c 041d 041e 041f 0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042a 042b 042c 042d 042e 042f 0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043a 043b 043c 043d 043e 043f 0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044a 044b 044c 044d 044e 044f 0451 fontconfig-2.11.1/fc-lang/xh.orth0000664000076400007640000000240112267155334013514 00000000000000# # fontconfig/fc-lang/xh.orth # # 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. # # Xhosa (XH) # # Orthography taken from http://www.ideography.co.uk/library/pdf/charsets.pdf # 0041-005a 0061-007a fontconfig-2.11.1/fc-lang/fo.orth0000664000076400007640000000466412267155334013516 00000000000000# # fontconfig/fc-lang/fo.orth # # 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. # # Faroese (FO) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a 00C1 # LATIN CAPITAL LETTER A WITH ACUTE #00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS evertype.com #00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE evertype.com 00C6 # LATIN CAPITAL LETTER AE (ash) * 00CD # LATIN CAPITAL LETTER I WITH ACUTE 00D0 # LATIN CAPITAL LETTER ETH (Icelandic) 00D3 # LATIN CAPITAL LETTER O WITH ACUTE #00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS evertype.com 00D8 # LATIN CAPITAL LETTER O WITH STROKE 00DA # LATIN CAPITAL LETTER U WITH ACUTE #00DC # LATIN CAPITAL LETTER U WITH DIAERESIS evertype.com 00DD # LATIN CAPITAL LETTER Y WITH ACUTE 00E1 # LATIN SMALL LETTER A WITH ACUTE #00E4 # LATIN SMALL LETTER A WITH DIAERESIS evertype.com #00E5 # LATIN SMALL LETTER A WITH RING ABOVE evertype.com 00E6 # LATIN SMALL LETTER AE (ash) * 00ED # LATIN SMALL LETTER I WITH ACUTE 00F0 # LATIN SMALL LETTER ETH (Icelandic) 00F3 # LATIN SMALL LETTER O WITH ACUTE #00F6 # LATIN SMALL LETTER O WITH DIAERESIS evertype.com 00F8 # LATIN SMALL LETTER O WITH STROKE 00FA # LATIN SMALL LETTER U WITH ACUTE #00FC # LATIN SMALL LETTER U WITH DIAERESIS evertype.com 00FD # LATIN SMALL LETTER Y WITH ACUTE #2018 # single quote #201a # single quote #201c # double quote #201e # double quote fontconfig-2.11.1/fc-lang/ny.orth0000664000076400007640000000235412267155334013532 00000000000000# # fontconfig/fc-lang/ny.orth # # 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. # # Chichewa (NY) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 0174-0175 fontconfig-2.11.1/fc-lang/kj.orth0000664000076400007640000000263112267155334013506 00000000000000# # fontconfig/fc-lang/kj.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Kuanyama/Kwanyama (kj) # # Sources: # * http://www.omniglot.com/writing/oshiwambo.php # * http://www.panafril10n.org/wikidoc/pmwiki.php/PanAfrLoc/Oshiwambo # * http://wingolog.org/pub/hai-ti/hai-ti.pdf # # C, Q, and X are not used. # 0041-005A 0061-007A fontconfig-2.11.1/fc-lang/gn.orth0000664000076400007640000000255512267155334013513 00000000000000# # fontconfig/fc-lang/gn.orth # # 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. # # Guaraní (GN) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 00c1 00e1 00e3 00c9 00e9 1ebd #e005 # LATIN SMALL LETTER G WITH TILDE (no UCS) 00cd 00ed 0129 00d1 00f1 00d3 00f3 00f5 00da 00fa 0169 1ef9 fontconfig-2.11.1/fc-lang/st.orth0000664000076400007640000000262212267155334013530 00000000000000# # fontconfig/fc-lang/st.orth # # Copyright © 2007 Dwayne Bailey and Translate.org.za # # 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 Dwayne Bailey or Translate.org.za not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. Dwayne Bailey and Translate.org.za makes no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # DWAYNE BAILEY AND TRANSLATE.ORG.ZA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL DWAYNE BAILEY OR TRANSLATE.ORG.ZA 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. # # Sotho, Southern (ST) # # Orthography taken from http://www.inference.phy.cam.ac.uk/dasher/download/alphabets/alphabet.Sesotho.xml # 0041-005a 0061-007a fontconfig-2.11.1/fc-lang/io.orth0000664000076400007640000000236412267155334013514 00000000000000# # fontconfig/fc-lang/io.orth # # 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. # # Ido (IO) # # Orthography taken from http://www.homunculus.com/babel/aido.html # 0041-005a 0061-007a fontconfig-2.11.1/fc-lang/zh_hk.orth0000664000076400007640000001632712267155334014214 00000000000000# # 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 # 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. # # 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 4E04 4E21 4E2A 4E5A 4E5B 4E6A 4E78 4E80 4E85 4E98 4ECE 4EEE 4F37 4FE5 4FF9 5008 503B 50CD 510D 510E 516A 5186 519A 51A7 51A8 51B2 51B3 51B4 51B5 51C9 51ED 51F4 520B 5226 5227 5234 523C 5257 528F 52B5 52B9 52C5 52D1 5338 5374 537D 5393 53A0 53A6 53A8 53C1 53CC 53D9 53E0 53F6 53FE 5413 5414 5416 5421 544C 544D 546A 546D 548F 5493 5494 5497 54A4 54B2 54CB 54CD 54E3 5502 5513 551E 5525 5553 555D 5569 556B 5571 5572 5579 5586 5590 55A9 55B0 55BA 55BC 55D7 55DE 55EC 55F0 55F1 55FB 5605 5611 561E 5622 5623 5625 562D 5643 564D 564F 5652 5654 565D 5689 5692 569F 56A1 56A4 56B1 56B9 56BF 56D6 56FD 5742 577A 57C8 57D7 57DE 5803 5826 583A 5840 5869 5872 5873 58AA 58BB 58E0 58F2 58F3 58FB 590A 5975 599F 59AC 59C9 59EB 59F8 5A2B 5A7E 5AF2 5AFA 5B46 5B6D 5B9D 5B9F 5BC3 5BDB 5BF3 5C05 5C4A 5C5E 5CEF 5D8B 5DF5 5E7A 5E83 5ED0 5EF8 5EF9 5EFB 5EFC 5F0C 5F0D 5F0E 5F5C 5FA7 5FDF 6031 6075 609E 60A4 60D7 60E3 6159 6164 617D 6187 61D0 6239 629D 62A6 62C3 62C5 62D5 6331 6379 63B9 63D1 63DE 63E6 63F8 63FC 63FE 6407 6432 643A 647C 648D 6491 64B4 64DD 64E1 64E7 651E 6530 654D 6586 6589 65E3 6630 6644 664B 6667 666B 6673 668E 66F1 6725 6736 6761 6767 67A0 67B1 6803 6804 681E 6822 6898 68B6 6900 6936 6961 6973 698A 69B2 6A0B 6A2B 6AC8 6B35 6B6F 6B74 6B7A 6BE1 6C37 6C39 6C5A 6CA2 6CEA 6D5C 6D72 6D96 6E15 6E29 6E7C 6ED9 6EDB 6EDD 6F16 6F56 6F81 6FBE 6FF6 701E 702C 7081 7089 70B9 70DF 70F1 7105 712B 7140 7145 714A 7151 7171 71F6 7215 7240 7282 7287 732A 732E 7341 7374 73C9 73CF 7439 743C 7448 7460 7505 7534 753B 754A 7551 7553 7560 7567 758D 758E 75B1 75B4 7602 763B 764E 7666 7667 7676 767A 770C 771E 7740 7758 7778 777A 7793 77B9 77CB 7808 7881 788D 78B1 78B8 78D7 7906 792E 7958 7962 7991 79C4 7A93 7AB0 7AC8 7AC9 7ADC 7ADD 7AEA 7B0B 7B39 7B6F 7C15 7CA6 7CA7 7CAE 7CC9 7CCD 7CED 7CF9 7CFC 7D25 7D5D 7D89 7DAB 7DB3 7DCD 7DCF 7DDC 7E6E 7F47 7F49 7F4E 7F78 7F97 7FA3 8061 80B6 80BD 80C6 8107 8117 8137 81A5 81B6 81EF 8218 8226 8276 82A6 82AA 82F7 8318 83D3 8418 8420 8471 84AD 84BD 84E2 8503 8534 8570 8602 862F 86EF 8786 87CE 8804 882D 8846 885E 889C 88C7 88CF 8947 8987 8994 89A5 89A7 8A94 8B4C 8B81 8B83 8B90 8CCD 8CDB 8D03 8D0B 8E0E 8E2A 8E2D 8E4F 8E7E 8E80 8EAD 8EDA 8EE2 8EF2 8F2D 8FB5 8FBA 8FBB 8FBC 8FF9 9033 9056 9061 90A8 9176 9208 920E 922A 9244 9255 925D 9262 926E 92B9 92BE 9307 9340 9345 9348 9369 9384 9385 9387 93AD 93BF 93F0 9404 9426 9427 9454 945B 9465 9599 95A2 95AA 9696 96A3 9721 9751 976D 97EE 97F5 9834 98B7 98C8 98E0 991C 9938 994A 994D 9962 99C5 99E1 9A10 9B2A 9B2D 9B81 9B8B 9B8E 9BED 9BF1 9BFF 9C02 9C0C 9C2F 9C35 9C3A 9C45 9C5D 9C72 9D34 9D50 9D5E 9D93 9DC0 9DC4 9DC9 9DD4 9E0A 9E0C 9E90 9E95 9E96 9EAA 9EAB 9EAF 9EBF 9F08 9F26 9F62 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 fontconfig-2.11.1/fc-lang/ia.orth0000664000076400007640000000241112267155334013467 00000000000000# # fontconfig/fc-lang/ia.orth # # 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. # # Interlingua (IA) # # Orthography taken from http://www.geocities.com/linguablau/spelling_main.html # 0041-005a 0061-007a fontconfig-2.11.1/fc-lang/no.orth0000664000076400007640000000272312267155334013520 00000000000000# # fontconfig/fc-lang/no.orth # # 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. # # Norwegian (Bokmål) (NO) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a #00ab #00bb 00c0 #00c1 #00c2 #00c4 00c5 00c6 #00c7 #00c8 00c9 00ca #00cb 00d2 00d3 00d4 #00d6 00d8 #00dc 00e0 #00e1 #00e2 #00e4 00e5 00e6 #00e7 #00e8 00e9 00ea #00eb 00f2 00f3 00f4 #00f6 00f8 #00fc #2039-203a # angle quotes fontconfig-2.11.1/fc-lang/uk.orth0000664000076400007640000000253112267155334013520 00000000000000# # fontconfig/fc-lang/uk.orth # # 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. # # Ukrainian (UK) # # Sources: # www.evertype.com # www.eki.ee/letter # #00ab #00bb #0401 # evertype.com 0404 0406 0407 0410-044f #0451 # evertype.com 0454 0456 0457 0490 0491 #2039-203a # angle quotes fontconfig-2.11.1/fc-lang/vi.orth0000664000076400007640000000311512267155334013516 00000000000000# # fontconfig/fc-lang/vi.orth # # 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. # # Vietnamese (VI) # # Information extracted from email sent by Markus Kuhn about the # standard Vietnamese character set (TCVN 6909:2001) # 0041-005a 0061-007a 00c0-00c3 00c8-00ca 00cc-00cd 00d2-00d5 00d9-00da 00dd 00e0-00e3 00e8-00ea 00ec-00ed 00f2-00f5 00f9-00fa 00fd 0102-0103 0110-0111 0128-0129 0168-0169 01a0-01a1 01af-01b0 # diacritical marks 0300-0303 0306 0309 031b 0323 # more precomposed latin 1ea0-1ef9 # double quote marks #201c-201d fontconfig-2.11.1/fc-lang/ko.orth0000664000076400007640000031503012267155334013513 00000000000000# # fontconfig/fc-lang/ko.orth # # 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. # # Korean (KO) # # Coverage from KS X 1001 # # Does not include any Han characters as many Korean fonts # don't cover them, and modern Korean usage is moving away from them # # Tor Andersson # #0x3000 # IDEOGRAPHIC SPACE #0x3001 # IDEOGRAPHIC COMMA #0x3002 # IDEOGRAPHIC FULL STOP #0x327F # KOREAN STANDARD SYMBOL #0xFFE6 # FULLWIDTH WON SIGN 0x3131 # HANGUL LETTER KIYEOK 0x3132 # HANGUL LETTER SSANGKIYEOK 0x3133 # HANGUL LETTER KIYEOK-SIOS 0x3134 # HANGUL LETTER NIEUN 0x3135 # HANGUL LETTER NIEUN-CIEUC 0x3136 # HANGUL LETTER NIEUN-HIEUH 0x3137 # HANGUL LETTER TIKEUT 0x3138 # HANGUL LETTER SSANGTIKEUT 0x3139 # HANGUL LETTER RIEUL 0x313A # HANGUL LETTER RIEUL-KIYEOK 0x313B # HANGUL LETTER RIEUL-MIEUM 0x313C # HANGUL LETTER RIEUL-PIEUP 0x313D # HANGUL LETTER RIEUL-SIOS 0x313E # HANGUL LETTER RIEUL-THIEUTH 0x313F # HANGUL LETTER RIEUL-PHIEUPH 0x3140 # HANGUL LETTER RIEUL-HIEUH 0x3141 # HANGUL LETTER MIEUM 0x3142 # HANGUL LETTER PIEUP 0x3143 # HANGUL LETTER SSANGPIEUP 0x3144 # HANGUL LETTER PIEUP-SIOS 0x3145 # HANGUL LETTER SIOS 0x3146 # HANGUL LETTER SSANGSIOS 0x3147 # HANGUL LETTER IEUNG 0x3148 # HANGUL LETTER CIEUC 0x3149 # HANGUL LETTER SSANGCIEUC 0x314A # HANGUL LETTER CHIEUCH 0x314B # HANGUL LETTER KHIEUKH 0x314C # HANGUL LETTER THIEUTH 0x314D # HANGUL LETTER PHIEUPH 0x314E # HANGUL LETTER HIEUH 0x314F # HANGUL LETTER A 0x3150 # HANGUL LETTER AE 0x3151 # HANGUL LETTER YA 0x3152 # HANGUL LETTER YAE 0x3153 # HANGUL LETTER EO 0x3154 # HANGUL LETTER E 0x3155 # HANGUL LETTER YEO 0x3156 # HANGUL LETTER YE 0x3157 # HANGUL LETTER O 0x3158 # HANGUL LETTER WA 0x3159 # HANGUL LETTER WAE 0x315A # HANGUL LETTER OE 0x315B # HANGUL LETTER YO 0x315C # HANGUL LETTER U 0x315D # HANGUL LETTER WEO 0x315E # HANGUL LETTER WE 0x315F # HANGUL LETTER WI 0x3160 # HANGUL LETTER YU 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 0x3168 # HANGUL LETTER NIEUN-PANSIOS 0x3169 # HANGUL LETTER RIEUL-KIYEOK-SIOS 0x316A # HANGUL LETTER RIEUL-TIKEUT 0x316B # HANGUL LETTER RIEUL-PIEUP-SIOS 0x316C # HANGUL LETTER RIEUL-PANSIOS 0x316D # HANGUL LETTER RIEUL-YEORINHIEUH 0x316E # HANGUL LETTER MIEUM-PIEUP 0x316F # HANGUL LETTER MIEUM-SIOS 0x3170 # HANGUL LETTER MIEUM-PANSIOS 0x3171 # HANGUL LETTER KAPYEOUNMIEUM 0x3172 # HANGUL LETTER PIEUP-KIYEOK 0x3173 # HANGUL LETTER PIEUP-TIKEUT 0x3174 # HANGUL LETTER PIEUP-SIOS-KIYEOK 0x3175 # HANGUL LETTER PIEUP-SIOS-TIKEUT 0x3176 # HANGUL LETTER PIEUP-CIEUC 0x3177 # HANGUL LETTER PIEUP-THIEUTH 0x3178 # HANGUL LETTER KAPYEOUNPIEUP 0x3179 # HANGUL LETTER KAPYEOUNSSANGPIEUP 0x317A # HANGUL LETTER SIOS-KIYEOK 0x317B # HANGUL LETTER SIOS-NIEUN 0x317C # HANGUL LETTER SIOS-TIKEUT 0x317D # HANGUL LETTER SIOS-PIEUP 0x317E # HANGUL LETTER SIOS-CIEUC 0x317F # HANGUL LETTER PANSIOS 0x3180 # HANGUL LETTER SSANGIEUNG 0x3181 # HANGUL LETTER YESIEUNG 0x3182 # HANGUL LETTER YESIEUNG-SIOS 0x3183 # HANGUL LETTER YESIEUNG-PANSIOS 0x3184 # HANGUL LETTER KAPYEOUNPHIEUPH 0x3185 # HANGUL LETTER SSANGHIEUH 0x3186 # HANGUL LETTER YEORINHIEUH 0x3187 # HANGUL LETTER YO-YA 0x3188 # HANGUL LETTER YO-YAE 0x3189 # HANGUL LETTER YO-I 0x318A # HANGUL LETTER YU-YEO 0x318B # HANGUL LETTER YU-YE 0x318C # HANGUL LETTER YU-I 0x318D # HANGUL LETTER ARAEA 0x318E # HANGUL LETTER ARAEAE #0x3260 # CIRCLED HANGUL KIYEOK #0x3261 # CIRCLED HANGUL NIEUN #0x3262 # CIRCLED HANGUL TIKEUT #0x3263 # CIRCLED HANGUL RIEUL #0x3264 # CIRCLED HANGUL MIEUM #0x3265 # CIRCLED HANGUL PIEUP #0x3266 # CIRCLED HANGUL SIOS #0x3267 # CIRCLED HANGUL IEUNG #0x3268 # CIRCLED HANGUL CIEUC #0x3269 # CIRCLED HANGUL CHIEUCH #0x326A # CIRCLED HANGUL KHIEUKH #0x326B # CIRCLED HANGUL THIEUTH #0x326C # CIRCLED HANGUL PHIEUPH #0x326D # CIRCLED HANGUL HIEUH #0x326E # CIRCLED HANGUL KIYEOK A #0x326F # CIRCLED HANGUL NIEUN A #0x3270 # CIRCLED HANGUL TIKEUT A #0x3271 # CIRCLED HANGUL RIEUL A #0x3272 # CIRCLED HANGUL MIEUM A #0x3273 # CIRCLED HANGUL PIEUP A #0x3274 # CIRCLED HANGUL SIOS A #0x3275 # CIRCLED HANGUL IEUNG A #0x3276 # CIRCLED HANGUL CIEUC A #0x3277 # CIRCLED HANGUL CHIEUCH A #0x3278 # CIRCLED HANGUL KHIEUKH A #0x3279 # CIRCLED HANGUL THIEUTH A #0x327A # CIRCLED HANGUL PHIEUPH A #0x327B # CIRCLED HANGUL HIEUH A #0x3200 # PARENTHESIZED HANGUL KIYEOK #0x3201 # PARENTHESIZED HANGUL NIEUN #0x3202 # PARENTHESIZED HANGUL TIKEUT #0x3203 # PARENTHESIZED HANGUL RIEUL #0x3204 # PARENTHESIZED HANGUL MIEUM #0x3205 # PARENTHESIZED HANGUL PIEUP #0x3206 # PARENTHESIZED HANGUL SIOS #0x3207 # PARENTHESIZED HANGUL IEUNG #0x3208 # PARENTHESIZED HANGUL CIEUC #0x3209 # PARENTHESIZED HANGUL CHIEUCH #0x320A # PARENTHESIZED HANGUL KHIEUKH #0x320B # PARENTHESIZED HANGUL THIEUTH #0x320C # PARENTHESIZED HANGUL PHIEUPH #0x320D # PARENTHESIZED HANGUL HIEUH #0x320E # PARENTHESIZED HANGUL KIYEOK A #0x320F # PARENTHESIZED HANGUL NIEUN A #0x3210 # PARENTHESIZED HANGUL TIKEUT A #0x3211 # PARENTHESIZED HANGUL RIEUL A #0x3212 # PARENTHESIZED HANGUL MIEUM A #0x3213 # PARENTHESIZED HANGUL PIEUP A #0x3214 # PARENTHESIZED HANGUL SIOS A #0x3215 # PARENTHESIZED HANGUL IEUNG A #0x3216 # PARENTHESIZED HANGUL CIEUC A #0x3217 # PARENTHESIZED HANGUL CHIEUCH A #0x3218 # PARENTHESIZED HANGUL KHIEUKH A #0x3219 # PARENTHESIZED HANGUL THIEUTH A #0x321A # PARENTHESIZED HANGUL PHIEUPH A #0x321B # PARENTHESIZED HANGUL HIEUH A #0x321C # PARENTHESIZED HANGUL CIEUC U 0xAC00 # HANGUL SYLLABLE KIYEOK-A 0xAC01 # HANGUL SYLLABLE KIYEOK-A-KIYEOK 0xAC04 # HANGUL SYLLABLE KIYEOK-A-NIEUN 0xAC07 # HANGUL SYLLABLE KIYEOK-A-TIKEUT 0xAC08 # HANGUL SYLLABLE KIYEOK-A-RIEUL 0xAC09 # HANGUL SYLLABLE KIYEOK-A-RIEULKIYEOK 0xAC0A # HANGUL SYLLABLE KIYEOK-A-RIEULMIEUM 0xAC10 # HANGUL SYLLABLE KIYEOK-A-MIEUM 0xAC11 # HANGUL SYLLABLE KIYEOK-A-PIEUP 0xAC12 # HANGUL SYLLABLE KIYEOK-A-PIEUPSIOS 0xAC13 # HANGUL SYLLABLE KIYEOK-A-SIOS 0xAC14 # HANGUL SYLLABLE KIYEOK-A-SSANGSIOS 0xAC15 # HANGUL SYLLABLE KIYEOK-A-IEUNG 0xAC16 # HANGUL SYLLABLE KIYEOK-A-CIEUC 0xAC17 # HANGUL SYLLABLE KIYEOK-A-CHIEUCH 0xAC19 # HANGUL SYLLABLE KIYEOK-A-THIEUTH 0xAC1A # HANGUL SYLLABLE KIYEOK-A-PHIEUPH 0xAC1B # HANGUL SYLLABLE KIYEOK-A-HIEUH 0xAC1C # HANGUL SYLLABLE KIYEOK-AE 0xAC1D # HANGUL SYLLABLE KIYEOK-AE-KIYEOK 0xAC20 # HANGUL SYLLABLE KIYEOK-AE-NIEUN 0xAC24 # HANGUL SYLLABLE KIYEOK-AE-RIEUL 0xAC2C # HANGUL SYLLABLE KIYEOK-AE-MIEUM 0xAC2D # HANGUL SYLLABLE KIYEOK-AE-PIEUP 0xAC2F # HANGUL SYLLABLE KIYEOK-AE-SIOS 0xAC30 # HANGUL SYLLABLE KIYEOK-AE-SSANGSIOS 0xAC31 # HANGUL SYLLABLE KIYEOK-AE-IEUNG 0xAC38 # HANGUL SYLLABLE KIYEOK-YA 0xAC39 # HANGUL SYLLABLE KIYEOK-YA-KIYEOK 0xAC3C # HANGUL SYLLABLE KIYEOK-YA-NIEUN 0xAC40 # HANGUL SYLLABLE KIYEOK-YA-RIEUL 0xAC4B # HANGUL SYLLABLE KIYEOK-YA-SIOS 0xAC4D # HANGUL SYLLABLE KIYEOK-YA-IEUNG 0xAC54 # HANGUL SYLLABLE KIYEOK-YAE 0xAC58 # HANGUL SYLLABLE KIYEOK-YAE-NIEUN 0xAC5C # HANGUL SYLLABLE KIYEOK-YAE-RIEUL 0xAC70 # HANGUL SYLLABLE KIYEOK-EO 0xAC71 # HANGUL SYLLABLE KIYEOK-EO-KIYEOK 0xAC74 # HANGUL SYLLABLE KIYEOK-EO-NIEUN 0xAC77 # HANGUL SYLLABLE KIYEOK-EO-TIKEUT 0xAC78 # HANGUL SYLLABLE KIYEOK-EO-RIEUL 0xAC7A # HANGUL SYLLABLE KIYEOK-EO-RIEULMIEUM 0xAC80 # HANGUL SYLLABLE KIYEOK-EO-MIEUM 0xAC81 # HANGUL SYLLABLE KIYEOK-EO-PIEUP 0xAC83 # HANGUL SYLLABLE KIYEOK-EO-SIOS 0xAC84 # HANGUL SYLLABLE KIYEOK-EO-SSANGSIOS 0xAC85 # HANGUL SYLLABLE KIYEOK-EO-IEUNG 0xAC86 # HANGUL SYLLABLE KIYEOK-EO-CIEUC 0xAC89 # HANGUL SYLLABLE KIYEOK-EO-THIEUTH 0xAC8A # HANGUL SYLLABLE KIYEOK-EO-PHIEUPH 0xAC8B # HANGUL SYLLABLE KIYEOK-EO-HIEUH 0xAC8C # HANGUL SYLLABLE KIYEOK-E 0xAC90 # HANGUL SYLLABLE KIYEOK-E-NIEUN 0xAC94 # HANGUL SYLLABLE KIYEOK-E-RIEUL 0xAC9C # HANGUL SYLLABLE KIYEOK-E-MIEUM 0xAC9D # HANGUL SYLLABLE KIYEOK-E-PIEUP 0xAC9F # HANGUL SYLLABLE KIYEOK-E-SIOS 0xACA0 # HANGUL SYLLABLE KIYEOK-E-SSANGSIOS 0xACA1 # HANGUL SYLLABLE KIYEOK-E-IEUNG 0xACA8 # HANGUL SYLLABLE KIYEOK-YEO 0xACA9 # HANGUL SYLLABLE KIYEOK-YEO-KIYEOK 0xACAA # HANGUL SYLLABLE KIYEOK-YEO-SSANGKIYEOK 0xACAC # HANGUL SYLLABLE KIYEOK-YEO-NIEUN 0xACAF # HANGUL SYLLABLE KIYEOK-YEO-TIKEUT 0xACB0 # HANGUL SYLLABLE KIYEOK-YEO-RIEUL 0xACB8 # HANGUL SYLLABLE KIYEOK-YEO-MIEUM 0xACB9 # HANGUL SYLLABLE KIYEOK-YEO-PIEUP 0xACBB # HANGUL SYLLABLE KIYEOK-YEO-SIOS 0xACBC # HANGUL SYLLABLE KIYEOK-YEO-SSANGSIOS 0xACBD # HANGUL SYLLABLE KIYEOK-YEO-IEUNG 0xACC1 # HANGUL SYLLABLE KIYEOK-YEO-THIEUTH 0xACC4 # HANGUL SYLLABLE KIYEOK-YE 0xACC8 # HANGUL SYLLABLE KIYEOK-YE-NIEUN 0xACCC # HANGUL SYLLABLE KIYEOK-YE-RIEUL 0xACD5 # HANGUL SYLLABLE KIYEOK-YE-PIEUP 0xACD7 # HANGUL SYLLABLE KIYEOK-YE-SIOS 0xACE0 # HANGUL SYLLABLE KIYEOK-O 0xACE1 # HANGUL SYLLABLE KIYEOK-O-KIYEOK 0xACE4 # HANGUL SYLLABLE KIYEOK-O-NIEUN 0xACE7 # HANGUL SYLLABLE KIYEOK-O-TIKEUT 0xACE8 # HANGUL SYLLABLE KIYEOK-O-RIEUL 0xACEA # HANGUL SYLLABLE KIYEOK-O-RIEULMIEUM 0xACEC # HANGUL SYLLABLE KIYEOK-O-RIEULSIOS 0xACEF # HANGUL SYLLABLE KIYEOK-O-RIEULHIEUH 0xACF0 # HANGUL SYLLABLE KIYEOK-O-MIEUM 0xACF1 # HANGUL SYLLABLE KIYEOK-O-PIEUP 0xACF3 # HANGUL SYLLABLE KIYEOK-O-SIOS 0xACF5 # HANGUL SYLLABLE KIYEOK-O-IEUNG 0xACF6 # HANGUL SYLLABLE KIYEOK-O-CIEUC 0xACFC # HANGUL SYLLABLE KIYEOK-WA 0xACFD # HANGUL SYLLABLE KIYEOK-WA-KIYEOK 0xAD00 # HANGUL SYLLABLE KIYEOK-WA-NIEUN 0xAD04 # HANGUL SYLLABLE KIYEOK-WA-RIEUL 0xAD06 # HANGUL SYLLABLE KIYEOK-WA-RIEULMIEUM 0xAD0C # HANGUL SYLLABLE KIYEOK-WA-MIEUM 0xAD0D # HANGUL SYLLABLE KIYEOK-WA-PIEUP 0xAD0F # HANGUL SYLLABLE KIYEOK-WA-SIOS 0xAD11 # HANGUL SYLLABLE KIYEOK-WA-IEUNG 0xAD18 # HANGUL SYLLABLE KIYEOK-WAE 0xAD1C # HANGUL SYLLABLE KIYEOK-WAE-NIEUN 0xAD20 # HANGUL SYLLABLE KIYEOK-WAE-RIEUL 0xAD29 # HANGUL SYLLABLE KIYEOK-WAE-PIEUP 0xAD2C # HANGUL SYLLABLE KIYEOK-WAE-SSANGSIOS 0xAD2D # HANGUL SYLLABLE KIYEOK-WAE-IEUNG 0xAD34 # HANGUL SYLLABLE KIYEOK-OE 0xAD35 # HANGUL SYLLABLE KIYEOK-OE-KIYEOK 0xAD38 # HANGUL SYLLABLE KIYEOK-OE-NIEUN 0xAD3C # HANGUL SYLLABLE KIYEOK-OE-RIEUL 0xAD44 # HANGUL SYLLABLE KIYEOK-OE-MIEUM 0xAD45 # HANGUL SYLLABLE KIYEOK-OE-PIEUP 0xAD47 # HANGUL SYLLABLE KIYEOK-OE-SIOS 0xAD49 # HANGUL SYLLABLE KIYEOK-OE-IEUNG 0xAD50 # HANGUL SYLLABLE KIYEOK-YO 0xAD54 # HANGUL SYLLABLE KIYEOK-YO-NIEUN 0xAD58 # HANGUL SYLLABLE KIYEOK-YO-RIEUL 0xAD61 # HANGUL SYLLABLE KIYEOK-YO-PIEUP 0xAD63 # HANGUL SYLLABLE KIYEOK-YO-SIOS 0xAD6C # HANGUL SYLLABLE KIYEOK-U 0xAD6D # HANGUL SYLLABLE KIYEOK-U-KIYEOK 0xAD70 # HANGUL SYLLABLE KIYEOK-U-NIEUN 0xAD73 # HANGUL SYLLABLE KIYEOK-U-TIKEUT 0xAD74 # HANGUL SYLLABLE KIYEOK-U-RIEUL 0xAD75 # HANGUL SYLLABLE KIYEOK-U-RIEULKIYEOK 0xAD76 # HANGUL SYLLABLE KIYEOK-U-RIEULMIEUM 0xAD7B # HANGUL SYLLABLE KIYEOK-U-RIEULHIEUH 0xAD7C # HANGUL SYLLABLE KIYEOK-U-MIEUM 0xAD7D # HANGUL SYLLABLE KIYEOK-U-PIEUP 0xAD7F # HANGUL SYLLABLE KIYEOK-U-SIOS 0xAD81 # HANGUL SYLLABLE KIYEOK-U-IEUNG 0xAD82 # HANGUL SYLLABLE KIYEOK-U-CIEUC 0xAD88 # HANGUL SYLLABLE KIYEOK-WEO 0xAD89 # HANGUL SYLLABLE KIYEOK-WEO-KIYEOK 0xAD8C # HANGUL SYLLABLE KIYEOK-WEO-NIEUN 0xAD90 # HANGUL SYLLABLE KIYEOK-WEO-RIEUL 0xAD9C # HANGUL SYLLABLE KIYEOK-WEO-SSANGSIOS 0xAD9D # HANGUL SYLLABLE KIYEOK-WEO-IEUNG 0xADA4 # HANGUL SYLLABLE KIYEOK-WE 0xADB7 # HANGUL SYLLABLE KIYEOK-WE-SIOS 0xADC0 # HANGUL SYLLABLE KIYEOK-WI 0xADC1 # HANGUL SYLLABLE KIYEOK-WI-KIYEOK 0xADC4 # HANGUL SYLLABLE KIYEOK-WI-NIEUN 0xADC8 # HANGUL SYLLABLE KIYEOK-WI-RIEUL 0xADD0 # HANGUL SYLLABLE KIYEOK-WI-MIEUM 0xADD1 # HANGUL SYLLABLE KIYEOK-WI-PIEUP 0xADD3 # HANGUL SYLLABLE KIYEOK-WI-SIOS 0xADDC # HANGUL SYLLABLE KIYEOK-YU 0xADE0 # HANGUL SYLLABLE KIYEOK-YU-NIEUN 0xADE4 # HANGUL SYLLABLE KIYEOK-YU-RIEUL 0xADF8 # HANGUL SYLLABLE KIYEOK-EU 0xADF9 # HANGUL SYLLABLE KIYEOK-EU-KIYEOK 0xADFC # HANGUL SYLLABLE KIYEOK-EU-NIEUN 0xADFF # HANGUL SYLLABLE KIYEOK-EU-TIKEUT 0xAE00 # HANGUL SYLLABLE KIYEOK-EU-RIEUL 0xAE01 # HANGUL SYLLABLE KIYEOK-EU-RIEULKIYEOK 0xAE08 # HANGUL SYLLABLE KIYEOK-EU-MIEUM 0xAE09 # HANGUL SYLLABLE KIYEOK-EU-PIEUP 0xAE0B # HANGUL SYLLABLE KIYEOK-EU-SIOS 0xAE0D # HANGUL SYLLABLE KIYEOK-EU-IEUNG 0xAE14 # HANGUL SYLLABLE KIYEOK-YI 0xAE30 # HANGUL SYLLABLE KIYEOK-I 0xAE31 # HANGUL SYLLABLE KIYEOK-I-KIYEOK 0xAE34 # HANGUL SYLLABLE KIYEOK-I-NIEUN 0xAE37 # HANGUL SYLLABLE KIYEOK-I-TIKEUT 0xAE38 # HANGUL SYLLABLE KIYEOK-I-RIEUL 0xAE3A # HANGUL SYLLABLE KIYEOK-I-RIEULMIEUM 0xAE40 # HANGUL SYLLABLE KIYEOK-I-MIEUM 0xAE41 # HANGUL SYLLABLE KIYEOK-I-PIEUP 0xAE43 # HANGUL SYLLABLE KIYEOK-I-SIOS 0xAE45 # HANGUL SYLLABLE KIYEOK-I-IEUNG 0xAE46 # HANGUL SYLLABLE KIYEOK-I-CIEUC 0xAE4A # HANGUL SYLLABLE KIYEOK-I-PHIEUPH 0xAE4C # HANGUL SYLLABLE SSANGKIYEOK-A 0xAE4D # HANGUL SYLLABLE SSANGKIYEOK-A-KIYEOK 0xAE4E # HANGUL SYLLABLE SSANGKIYEOK-A-SSANGKIYEOK 0xAE50 # HANGUL SYLLABLE SSANGKIYEOK-A-NIEUN 0xAE54 # HANGUL SYLLABLE SSANGKIYEOK-A-RIEUL 0xAE56 # HANGUL SYLLABLE SSANGKIYEOK-A-RIEULMIEUM 0xAE5C # HANGUL SYLLABLE SSANGKIYEOK-A-MIEUM 0xAE5D # HANGUL SYLLABLE SSANGKIYEOK-A-PIEUP 0xAE5F # HANGUL SYLLABLE SSANGKIYEOK-A-SIOS 0xAE60 # HANGUL SYLLABLE SSANGKIYEOK-A-SSANGSIOS 0xAE61 # HANGUL SYLLABLE SSANGKIYEOK-A-IEUNG 0xAE65 # HANGUL SYLLABLE SSANGKIYEOK-A-THIEUTH 0xAE68 # HANGUL SYLLABLE SSANGKIYEOK-AE 0xAE69 # HANGUL SYLLABLE SSANGKIYEOK-AE-KIYEOK 0xAE6C # HANGUL SYLLABLE SSANGKIYEOK-AE-NIEUN 0xAE70 # HANGUL SYLLABLE SSANGKIYEOK-AE-RIEUL 0xAE78 # HANGUL SYLLABLE SSANGKIYEOK-AE-MIEUM 0xAE79 # HANGUL SYLLABLE SSANGKIYEOK-AE-PIEUP 0xAE7B # HANGUL SYLLABLE SSANGKIYEOK-AE-SIOS 0xAE7C # HANGUL SYLLABLE SSANGKIYEOK-AE-SSANGSIOS 0xAE7D # HANGUL SYLLABLE SSANGKIYEOK-AE-IEUNG 0xAE84 # HANGUL SYLLABLE SSANGKIYEOK-YA 0xAE85 # HANGUL SYLLABLE SSANGKIYEOK-YA-KIYEOK 0xAE8C # HANGUL SYLLABLE SSANGKIYEOK-YA-RIEUL 0xAEBC # HANGUL SYLLABLE SSANGKIYEOK-EO 0xAEBD # HANGUL SYLLABLE SSANGKIYEOK-EO-KIYEOK 0xAEBE # HANGUL SYLLABLE SSANGKIYEOK-EO-SSANGKIYEOK 0xAEC0 # HANGUL SYLLABLE SSANGKIYEOK-EO-NIEUN 0xAEC4 # HANGUL SYLLABLE SSANGKIYEOK-EO-RIEUL 0xAECC # HANGUL SYLLABLE SSANGKIYEOK-EO-MIEUM 0xAECD # HANGUL SYLLABLE SSANGKIYEOK-EO-PIEUP 0xAECF # HANGUL SYLLABLE SSANGKIYEOK-EO-SIOS 0xAED0 # HANGUL SYLLABLE SSANGKIYEOK-EO-SSANGSIOS 0xAED1 # HANGUL SYLLABLE SSANGKIYEOK-EO-IEUNG 0xAED8 # HANGUL SYLLABLE SSANGKIYEOK-E 0xAED9 # HANGUL SYLLABLE SSANGKIYEOK-E-KIYEOK 0xAEDC # HANGUL SYLLABLE SSANGKIYEOK-E-NIEUN 0xAEE8 # HANGUL SYLLABLE SSANGKIYEOK-E-MIEUM 0xAEEB # HANGUL SYLLABLE SSANGKIYEOK-E-SIOS 0xAEED # HANGUL SYLLABLE SSANGKIYEOK-E-IEUNG 0xAEF4 # HANGUL SYLLABLE SSANGKIYEOK-YEO 0xAEF8 # HANGUL SYLLABLE SSANGKIYEOK-YEO-NIEUN 0xAEFC # HANGUL SYLLABLE SSANGKIYEOK-YEO-RIEUL 0xAF07 # HANGUL SYLLABLE SSANGKIYEOK-YEO-SIOS 0xAF08 # HANGUL SYLLABLE SSANGKIYEOK-YEO-SSANGSIOS 0xAF0D # HANGUL SYLLABLE SSANGKIYEOK-YEO-THIEUTH 0xAF10 # HANGUL SYLLABLE SSANGKIYEOK-YE 0xAF2C # HANGUL SYLLABLE SSANGKIYEOK-O 0xAF2D # HANGUL SYLLABLE SSANGKIYEOK-O-KIYEOK 0xAF30 # HANGUL SYLLABLE SSANGKIYEOK-O-NIEUN 0xAF32 # HANGUL SYLLABLE SSANGKIYEOK-O-NIEUNHIEUH 0xAF34 # HANGUL SYLLABLE SSANGKIYEOK-O-RIEUL 0xAF3C # HANGUL SYLLABLE SSANGKIYEOK-O-MIEUM 0xAF3D # HANGUL SYLLABLE SSANGKIYEOK-O-PIEUP 0xAF3F # HANGUL SYLLABLE SSANGKIYEOK-O-SIOS 0xAF41 # HANGUL SYLLABLE SSANGKIYEOK-O-IEUNG 0xAF42 # HANGUL SYLLABLE SSANGKIYEOK-O-CIEUC 0xAF43 # HANGUL SYLLABLE SSANGKIYEOK-O-CHIEUCH 0xAF48 # HANGUL SYLLABLE SSANGKIYEOK-WA 0xAF49 # HANGUL SYLLABLE SSANGKIYEOK-WA-KIYEOK 0xAF50 # HANGUL SYLLABLE SSANGKIYEOK-WA-RIEUL 0xAF5C # HANGUL SYLLABLE SSANGKIYEOK-WA-SSANGSIOS 0xAF5D # HANGUL SYLLABLE SSANGKIYEOK-WA-IEUNG 0xAF64 # HANGUL SYLLABLE SSANGKIYEOK-WAE 0xAF65 # HANGUL SYLLABLE SSANGKIYEOK-WAE-KIYEOK 0xAF79 # HANGUL SYLLABLE SSANGKIYEOK-WAE-IEUNG 0xAF80 # HANGUL SYLLABLE SSANGKIYEOK-OE 0xAF84 # HANGUL SYLLABLE SSANGKIYEOK-OE-NIEUN 0xAF88 # HANGUL SYLLABLE SSANGKIYEOK-OE-RIEUL 0xAF90 # HANGUL SYLLABLE SSANGKIYEOK-OE-MIEUM 0xAF91 # HANGUL SYLLABLE SSANGKIYEOK-OE-PIEUP 0xAF95 # HANGUL SYLLABLE SSANGKIYEOK-OE-IEUNG 0xAF9C # HANGUL SYLLABLE SSANGKIYEOK-YO 0xAFB8 # HANGUL SYLLABLE SSANGKIYEOK-U 0xAFB9 # HANGUL SYLLABLE SSANGKIYEOK-U-KIYEOK 0xAFBC # HANGUL SYLLABLE SSANGKIYEOK-U-NIEUN 0xAFC0 # HANGUL SYLLABLE SSANGKIYEOK-U-RIEUL 0xAFC7 # HANGUL SYLLABLE SSANGKIYEOK-U-RIEULHIEUH 0xAFC8 # HANGUL SYLLABLE SSANGKIYEOK-U-MIEUM 0xAFC9 # HANGUL SYLLABLE SSANGKIYEOK-U-PIEUP 0xAFCB # HANGUL SYLLABLE SSANGKIYEOK-U-SIOS 0xAFCD # HANGUL SYLLABLE SSANGKIYEOK-U-IEUNG 0xAFCE # HANGUL SYLLABLE SSANGKIYEOK-U-CIEUC 0xAFD4 # HANGUL SYLLABLE SSANGKIYEOK-WEO 0xAFDC # HANGUL SYLLABLE SSANGKIYEOK-WEO-RIEUL 0xAFE8 # HANGUL SYLLABLE SSANGKIYEOK-WEO-SSANGSIOS 0xAFE9 # HANGUL SYLLABLE SSANGKIYEOK-WEO-IEUNG 0xAFF0 # HANGUL SYLLABLE SSANGKIYEOK-WE 0xAFF1 # HANGUL SYLLABLE SSANGKIYEOK-WE-KIYEOK 0xAFF4 # HANGUL SYLLABLE SSANGKIYEOK-WE-NIEUN 0xAFF8 # HANGUL SYLLABLE SSANGKIYEOK-WE-RIEUL 0xB000 # HANGUL SYLLABLE SSANGKIYEOK-WE-MIEUM 0xB001 # HANGUL SYLLABLE SSANGKIYEOK-WE-PIEUP 0xB004 # HANGUL SYLLABLE SSANGKIYEOK-WE-SSANGSIOS 0xB00C # HANGUL SYLLABLE SSANGKIYEOK-WI 0xB010 # HANGUL SYLLABLE SSANGKIYEOK-WI-NIEUN 0xB014 # HANGUL SYLLABLE SSANGKIYEOK-WI-RIEUL 0xB01C # HANGUL SYLLABLE SSANGKIYEOK-WI-MIEUM 0xB01D # HANGUL SYLLABLE SSANGKIYEOK-WI-PIEUP 0xB028 # HANGUL SYLLABLE SSANGKIYEOK-YU 0xB044 # HANGUL SYLLABLE SSANGKIYEOK-EU 0xB045 # HANGUL SYLLABLE SSANGKIYEOK-EU-KIYEOK 0xB048 # HANGUL SYLLABLE SSANGKIYEOK-EU-NIEUN 0xB04A # HANGUL SYLLABLE SSANGKIYEOK-EU-NIEUNHIEUH 0xB04C # HANGUL SYLLABLE SSANGKIYEOK-EU-RIEUL 0xB04E # HANGUL SYLLABLE SSANGKIYEOK-EU-RIEULMIEUM 0xB053 # HANGUL SYLLABLE SSANGKIYEOK-EU-RIEULHIEUH 0xB054 # HANGUL SYLLABLE SSANGKIYEOK-EU-MIEUM 0xB055 # HANGUL SYLLABLE SSANGKIYEOK-EU-PIEUP 0xB057 # HANGUL SYLLABLE SSANGKIYEOK-EU-SIOS 0xB059 # HANGUL SYLLABLE SSANGKIYEOK-EU-IEUNG 0xB05D # HANGUL SYLLABLE SSANGKIYEOK-EU-THIEUTH 0xB07C # HANGUL SYLLABLE SSANGKIYEOK-I 0xB07D # HANGUL SYLLABLE SSANGKIYEOK-I-KIYEOK 0xB080 # HANGUL SYLLABLE SSANGKIYEOK-I-NIEUN 0xB084 # HANGUL SYLLABLE SSANGKIYEOK-I-RIEUL 0xB08C # HANGUL SYLLABLE SSANGKIYEOK-I-MIEUM 0xB08D # HANGUL SYLLABLE SSANGKIYEOK-I-PIEUP 0xB08F # HANGUL SYLLABLE SSANGKIYEOK-I-SIOS 0xB091 # HANGUL SYLLABLE SSANGKIYEOK-I-IEUNG 0xB098 # HANGUL SYLLABLE NIEUN-A 0xB099 # HANGUL SYLLABLE NIEUN-A-KIYEOK 0xB09A # HANGUL SYLLABLE NIEUN-A-SSANGKIYEOK 0xB09C # HANGUL SYLLABLE NIEUN-A-NIEUN 0xB09F # HANGUL SYLLABLE NIEUN-A-TIKEUT 0xB0A0 # HANGUL SYLLABLE NIEUN-A-RIEUL 0xB0A1 # HANGUL SYLLABLE NIEUN-A-RIEULKIYEOK 0xB0A2 # HANGUL SYLLABLE NIEUN-A-RIEULMIEUM 0xB0A8 # HANGUL SYLLABLE NIEUN-A-MIEUM 0xB0A9 # HANGUL SYLLABLE NIEUN-A-PIEUP 0xB0AB # HANGUL SYLLABLE NIEUN-A-SIOS 0xB0AC # HANGUL SYLLABLE NIEUN-A-SSANGSIOS 0xB0AD # HANGUL SYLLABLE NIEUN-A-IEUNG 0xB0AE # HANGUL SYLLABLE NIEUN-A-CIEUC 0xB0AF # HANGUL SYLLABLE NIEUN-A-CHIEUCH 0xB0B1 # HANGUL SYLLABLE NIEUN-A-THIEUTH 0xB0B3 # HANGUL SYLLABLE NIEUN-A-HIEUH 0xB0B4 # HANGUL SYLLABLE NIEUN-AE 0xB0B5 # HANGUL SYLLABLE NIEUN-AE-KIYEOK 0xB0B8 # HANGUL SYLLABLE NIEUN-AE-NIEUN 0xB0BC # HANGUL SYLLABLE NIEUN-AE-RIEUL 0xB0C4 # HANGUL SYLLABLE NIEUN-AE-MIEUM 0xB0C5 # HANGUL SYLLABLE NIEUN-AE-PIEUP 0xB0C7 # HANGUL SYLLABLE NIEUN-AE-SIOS 0xB0C8 # HANGUL SYLLABLE NIEUN-AE-SSANGSIOS 0xB0C9 # HANGUL SYLLABLE NIEUN-AE-IEUNG 0xB0D0 # HANGUL SYLLABLE NIEUN-YA 0xB0D1 # HANGUL SYLLABLE NIEUN-YA-KIYEOK 0xB0D4 # HANGUL SYLLABLE NIEUN-YA-NIEUN 0xB0D8 # HANGUL SYLLABLE NIEUN-YA-RIEUL 0xB0E0 # HANGUL SYLLABLE NIEUN-YA-MIEUM 0xB0E5 # HANGUL SYLLABLE NIEUN-YA-IEUNG 0xB108 # HANGUL SYLLABLE NIEUN-EO 0xB109 # HANGUL SYLLABLE NIEUN-EO-KIYEOK 0xB10B # HANGUL SYLLABLE NIEUN-EO-KIYEOKSIOS 0xB10C # HANGUL SYLLABLE NIEUN-EO-NIEUN 0xB110 # HANGUL SYLLABLE NIEUN-EO-RIEUL 0xB112 # HANGUL SYLLABLE NIEUN-EO-RIEULMIEUM 0xB113 # HANGUL SYLLABLE NIEUN-EO-RIEULPIEUP 0xB118 # HANGUL SYLLABLE NIEUN-EO-MIEUM 0xB119 # HANGUL SYLLABLE NIEUN-EO-PIEUP 0xB11B # HANGUL SYLLABLE NIEUN-EO-SIOS 0xB11C # HANGUL SYLLABLE NIEUN-EO-SSANGSIOS 0xB11D # HANGUL SYLLABLE NIEUN-EO-IEUNG 0xB123 # HANGUL SYLLABLE NIEUN-EO-HIEUH 0xB124 # HANGUL SYLLABLE NIEUN-E 0xB125 # HANGUL SYLLABLE NIEUN-E-KIYEOK 0xB128 # HANGUL SYLLABLE NIEUN-E-NIEUN 0xB12C # HANGUL SYLLABLE NIEUN-E-RIEUL 0xB134 # HANGUL SYLLABLE NIEUN-E-MIEUM 0xB135 # HANGUL SYLLABLE NIEUN-E-PIEUP 0xB137 # HANGUL SYLLABLE NIEUN-E-SIOS 0xB138 # HANGUL SYLLABLE NIEUN-E-SSANGSIOS 0xB139 # HANGUL SYLLABLE NIEUN-E-IEUNG 0xB140 # HANGUL SYLLABLE NIEUN-YEO 0xB141 # HANGUL SYLLABLE NIEUN-YEO-KIYEOK 0xB144 # HANGUL SYLLABLE NIEUN-YEO-NIEUN 0xB148 # HANGUL SYLLABLE NIEUN-YEO-RIEUL 0xB150 # HANGUL SYLLABLE NIEUN-YEO-MIEUM 0xB151 # HANGUL SYLLABLE NIEUN-YEO-PIEUP 0xB154 # HANGUL SYLLABLE NIEUN-YEO-SSANGSIOS 0xB155 # HANGUL SYLLABLE NIEUN-YEO-IEUNG 0xB158 # HANGUL SYLLABLE NIEUN-YEO-KHIEUKH 0xB15C # HANGUL SYLLABLE NIEUN-YE 0xB160 # HANGUL SYLLABLE NIEUN-YE-NIEUN 0xB178 # HANGUL SYLLABLE NIEUN-O 0xB179 # HANGUL SYLLABLE NIEUN-O-KIYEOK 0xB17C # HANGUL SYLLABLE NIEUN-O-NIEUN 0xB180 # HANGUL SYLLABLE NIEUN-O-RIEUL 0xB182 # HANGUL SYLLABLE NIEUN-O-RIEULMIEUM 0xB188 # HANGUL SYLLABLE NIEUN-O-MIEUM 0xB189 # HANGUL SYLLABLE NIEUN-O-PIEUP 0xB18B # HANGUL SYLLABLE NIEUN-O-SIOS 0xB18D # HANGUL SYLLABLE NIEUN-O-IEUNG 0xB192 # HANGUL SYLLABLE NIEUN-O-PHIEUPH 0xB193 # HANGUL SYLLABLE NIEUN-O-HIEUH 0xB194 # HANGUL SYLLABLE NIEUN-WA 0xB198 # HANGUL SYLLABLE NIEUN-WA-NIEUN 0xB19C # HANGUL SYLLABLE NIEUN-WA-RIEUL 0xB1A8 # HANGUL SYLLABLE NIEUN-WA-SSANGSIOS 0xB1CC # HANGUL SYLLABLE NIEUN-OE 0xB1D0 # HANGUL SYLLABLE NIEUN-OE-NIEUN 0xB1D4 # HANGUL SYLLABLE NIEUN-OE-RIEUL 0xB1DC # HANGUL SYLLABLE NIEUN-OE-MIEUM 0xB1DD # HANGUL SYLLABLE NIEUN-OE-PIEUP 0xB1DF # HANGUL SYLLABLE NIEUN-OE-SIOS 0xB1E8 # HANGUL SYLLABLE NIEUN-YO 0xB1E9 # HANGUL SYLLABLE NIEUN-YO-KIYEOK 0xB1EC # HANGUL SYLLABLE NIEUN-YO-NIEUN 0xB1F0 # HANGUL SYLLABLE NIEUN-YO-RIEUL 0xB1F9 # HANGUL SYLLABLE NIEUN-YO-PIEUP 0xB1FB # HANGUL SYLLABLE NIEUN-YO-SIOS 0xB1FD # HANGUL SYLLABLE NIEUN-YO-IEUNG 0xB204 # HANGUL SYLLABLE NIEUN-U 0xB205 # HANGUL SYLLABLE NIEUN-U-KIYEOK 0xB208 # HANGUL SYLLABLE NIEUN-U-NIEUN 0xB20B # HANGUL SYLLABLE NIEUN-U-TIKEUT 0xB20C # HANGUL SYLLABLE NIEUN-U-RIEUL 0xB214 # HANGUL SYLLABLE NIEUN-U-MIEUM 0xB215 # HANGUL SYLLABLE NIEUN-U-PIEUP 0xB217 # HANGUL SYLLABLE NIEUN-U-SIOS 0xB219 # HANGUL SYLLABLE NIEUN-U-IEUNG 0xB220 # HANGUL SYLLABLE NIEUN-WEO 0xB234 # HANGUL SYLLABLE NIEUN-WEO-SSANGSIOS 0xB23C # HANGUL SYLLABLE NIEUN-WE 0xB258 # HANGUL SYLLABLE NIEUN-WI 0xB25C # HANGUL SYLLABLE NIEUN-WI-NIEUN 0xB260 # HANGUL SYLLABLE NIEUN-WI-RIEUL 0xB268 # HANGUL SYLLABLE NIEUN-WI-MIEUM 0xB269 # HANGUL SYLLABLE NIEUN-WI-PIEUP 0xB274 # HANGUL SYLLABLE NIEUN-YU 0xB275 # HANGUL SYLLABLE NIEUN-YU-KIYEOK 0xB27C # HANGUL SYLLABLE NIEUN-YU-RIEUL 0xB284 # HANGUL SYLLABLE NIEUN-YU-MIEUM 0xB285 # HANGUL SYLLABLE NIEUN-YU-PIEUP 0xB289 # HANGUL SYLLABLE NIEUN-YU-IEUNG 0xB290 # HANGUL SYLLABLE NIEUN-EU 0xB291 # HANGUL SYLLABLE NIEUN-EU-KIYEOK 0xB294 # HANGUL SYLLABLE NIEUN-EU-NIEUN 0xB298 # HANGUL SYLLABLE NIEUN-EU-RIEUL 0xB299 # HANGUL SYLLABLE NIEUN-EU-RIEULKIYEOK 0xB29A # HANGUL SYLLABLE NIEUN-EU-RIEULMIEUM 0xB2A0 # HANGUL SYLLABLE NIEUN-EU-MIEUM 0xB2A1 # HANGUL SYLLABLE NIEUN-EU-PIEUP 0xB2A3 # HANGUL SYLLABLE NIEUN-EU-SIOS 0xB2A5 # HANGUL SYLLABLE NIEUN-EU-IEUNG 0xB2A6 # HANGUL SYLLABLE NIEUN-EU-CIEUC 0xB2AA # HANGUL SYLLABLE NIEUN-EU-PHIEUPH 0xB2AC # HANGUL SYLLABLE NIEUN-YI 0xB2B0 # HANGUL SYLLABLE NIEUN-YI-NIEUN 0xB2B4 # HANGUL SYLLABLE NIEUN-YI-RIEUL 0xB2C8 # HANGUL SYLLABLE NIEUN-I 0xB2C9 # HANGUL SYLLABLE NIEUN-I-KIYEOK 0xB2CC # HANGUL SYLLABLE NIEUN-I-NIEUN 0xB2D0 # HANGUL SYLLABLE NIEUN-I-RIEUL 0xB2D2 # HANGUL SYLLABLE NIEUN-I-RIEULMIEUM-<3/22/95> 0xB2D8 # HANGUL SYLLABLE NIEUN-I-MIEUM 0xB2D9 # HANGUL SYLLABLE NIEUN-I-PIEUP 0xB2DB # HANGUL SYLLABLE NIEUN-I-SIOS 0xB2DD # HANGUL SYLLABLE NIEUN-I-IEUNG 0xB2E2 # HANGUL SYLLABLE NIEUN-I-PHIEUPH 0xB2E4 # HANGUL SYLLABLE TIKEUT-A 0xB2E5 # HANGUL SYLLABLE TIKEUT-A-KIYEOK 0xB2E6 # HANGUL SYLLABLE TIKEUT-A-SSANGKIYEOK 0xB2E8 # HANGUL SYLLABLE TIKEUT-A-NIEUN 0xB2EB # HANGUL SYLLABLE TIKEUT-A-TIKEUT 0xB2EC # HANGUL SYLLABLE TIKEUT-A-RIEUL 0xB2ED # HANGUL SYLLABLE TIKEUT-A-RIEULKIYEOK 0xB2EE # HANGUL SYLLABLE TIKEUT-A-RIEULMIEUM 0xB2EF # HANGUL SYLLABLE TIKEUT-A-RIEULPIEUP 0xB2F3 # HANGUL SYLLABLE TIKEUT-A-RIEULHIEUH 0xB2F4 # HANGUL SYLLABLE TIKEUT-A-MIEUM 0xB2F5 # HANGUL SYLLABLE TIKEUT-A-PIEUP 0xB2F7 # HANGUL SYLLABLE TIKEUT-A-SIOS 0xB2F8 # HANGUL SYLLABLE TIKEUT-A-SSANGSIOS 0xB2F9 # HANGUL SYLLABLE TIKEUT-A-IEUNG 0xB2FA # HANGUL SYLLABLE TIKEUT-A-CIEUC 0xB2FB # HANGUL SYLLABLE TIKEUT-A-CHIEUCH 0xB2FF # HANGUL SYLLABLE TIKEUT-A-HIEUH 0xB300 # HANGUL SYLLABLE TIKEUT-AE 0xB301 # HANGUL SYLLABLE TIKEUT-AE-KIYEOK 0xB304 # HANGUL SYLLABLE TIKEUT-AE-NIEUN 0xB308 # HANGUL SYLLABLE TIKEUT-AE-RIEUL 0xB310 # HANGUL SYLLABLE TIKEUT-AE-MIEUM 0xB311 # HANGUL SYLLABLE TIKEUT-AE-PIEUP 0xB313 # HANGUL SYLLABLE TIKEUT-AE-SIOS 0xB314 # HANGUL SYLLABLE TIKEUT-AE-SSANGSIOS 0xB315 # HANGUL SYLLABLE TIKEUT-AE-IEUNG 0xB31C # HANGUL SYLLABLE TIKEUT-YA 0xB354 # HANGUL SYLLABLE TIKEUT-EO 0xB355 # HANGUL SYLLABLE TIKEUT-EO-KIYEOK 0xB356 # HANGUL SYLLABLE TIKEUT-EO-SSANGKIYEOK 0xB358 # HANGUL SYLLABLE TIKEUT-EO-NIEUN 0xB35B # HANGUL SYLLABLE TIKEUT-EO-TIKEUT 0xB35C # HANGUL SYLLABLE TIKEUT-EO-RIEUL 0xB35E # HANGUL SYLLABLE TIKEUT-EO-RIEULMIEUM 0xB35F # HANGUL SYLLABLE TIKEUT-EO-RIEULPIEUP 0xB364 # HANGUL SYLLABLE TIKEUT-EO-MIEUM 0xB365 # HANGUL SYLLABLE TIKEUT-EO-PIEUP 0xB367 # HANGUL SYLLABLE TIKEUT-EO-SIOS 0xB369 # HANGUL SYLLABLE TIKEUT-EO-IEUNG 0xB36B # HANGUL SYLLABLE TIKEUT-EO-CHIEUCH 0xB36E # HANGUL SYLLABLE TIKEUT-EO-PHIEUPH 0xB370 # HANGUL SYLLABLE TIKEUT-E 0xB371 # HANGUL SYLLABLE TIKEUT-E-KIYEOK 0xB374 # HANGUL SYLLABLE TIKEUT-E-NIEUN 0xB378 # HANGUL SYLLABLE TIKEUT-E-RIEUL 0xB380 # HANGUL SYLLABLE TIKEUT-E-MIEUM 0xB381 # HANGUL SYLLABLE TIKEUT-E-PIEUP 0xB383 # HANGUL SYLLABLE TIKEUT-E-SIOS 0xB384 # HANGUL SYLLABLE TIKEUT-E-SSANGSIOS 0xB385 # HANGUL SYLLABLE TIKEUT-E-IEUNG 0xB38C # HANGUL SYLLABLE TIKEUT-YEO 0xB390 # HANGUL SYLLABLE TIKEUT-YEO-NIEUN 0xB394 # HANGUL SYLLABLE TIKEUT-YEO-RIEUL 0xB3A0 # HANGUL SYLLABLE TIKEUT-YEO-SSANGSIOS 0xB3A1 # HANGUL SYLLABLE TIKEUT-YEO-IEUNG 0xB3A8 # HANGUL SYLLABLE TIKEUT-YE 0xB3AC # HANGUL SYLLABLE TIKEUT-YE-NIEUN 0xB3C4 # HANGUL SYLLABLE TIKEUT-O 0xB3C5 # HANGUL SYLLABLE TIKEUT-O-KIYEOK 0xB3C8 # HANGUL SYLLABLE TIKEUT-O-NIEUN 0xB3CB # HANGUL SYLLABLE TIKEUT-O-TIKEUT 0xB3CC # HANGUL SYLLABLE TIKEUT-O-RIEUL 0xB3CE # HANGUL SYLLABLE TIKEUT-O-RIEULMIEUM 0xB3D0 # HANGUL SYLLABLE TIKEUT-O-RIEULSIOS 0xB3D4 # HANGUL SYLLABLE TIKEUT-O-MIEUM 0xB3D5 # HANGUL SYLLABLE TIKEUT-O-PIEUP 0xB3D7 # HANGUL SYLLABLE TIKEUT-O-SIOS 0xB3D9 # HANGUL SYLLABLE TIKEUT-O-IEUNG 0xB3DB # HANGUL SYLLABLE TIKEUT-O-CHIEUCH 0xB3DD # HANGUL SYLLABLE TIKEUT-O-THIEUTH 0xB3E0 # HANGUL SYLLABLE TIKEUT-WA 0xB3E4 # HANGUL SYLLABLE TIKEUT-WA-NIEUN 0xB3E8 # HANGUL SYLLABLE TIKEUT-WA-RIEUL 0xB3FC # HANGUL SYLLABLE TIKEUT-WAE 0xB410 # HANGUL SYLLABLE TIKEUT-WAE-SSANGSIOS 0xB418 # HANGUL SYLLABLE TIKEUT-OE 0xB41C # HANGUL SYLLABLE TIKEUT-OE-NIEUN 0xB420 # HANGUL SYLLABLE TIKEUT-OE-RIEUL 0xB428 # HANGUL SYLLABLE TIKEUT-OE-MIEUM 0xB429 # HANGUL SYLLABLE TIKEUT-OE-PIEUP 0xB42B # HANGUL SYLLABLE TIKEUT-OE-SIOS 0xB434 # HANGUL SYLLABLE TIKEUT-YO 0xB450 # HANGUL SYLLABLE TIKEUT-U 0xB451 # HANGUL SYLLABLE TIKEUT-U-KIYEOK 0xB454 # HANGUL SYLLABLE TIKEUT-U-NIEUN 0xB458 # HANGUL SYLLABLE TIKEUT-U-RIEUL 0xB460 # HANGUL SYLLABLE TIKEUT-U-MIEUM 0xB461 # HANGUL SYLLABLE TIKEUT-U-PIEUP 0xB463 # HANGUL SYLLABLE TIKEUT-U-SIOS 0xB465 # HANGUL SYLLABLE TIKEUT-U-IEUNG 0xB46C # HANGUL SYLLABLE TIKEUT-WEO 0xB480 # HANGUL SYLLABLE TIKEUT-WEO-SSANGSIOS 0xB488 # HANGUL SYLLABLE TIKEUT-WE 0xB49D # HANGUL SYLLABLE TIKEUT-WE-IEUNG 0xB4A4 # HANGUL SYLLABLE TIKEUT-WI 0xB4A8 # HANGUL SYLLABLE TIKEUT-WI-NIEUN 0xB4AC # HANGUL SYLLABLE TIKEUT-WI-RIEUL 0xB4B5 # HANGUL SYLLABLE TIKEUT-WI-PIEUP 0xB4B7 # HANGUL SYLLABLE TIKEUT-WI-SIOS 0xB4B9 # HANGUL SYLLABLE TIKEUT-WI-IEUNG 0xB4C0 # HANGUL SYLLABLE TIKEUT-YU 0xB4C4 # HANGUL SYLLABLE TIKEUT-YU-NIEUN 0xB4C8 # HANGUL SYLLABLE TIKEUT-YU-RIEUL 0xB4D0 # HANGUL SYLLABLE TIKEUT-YU-MIEUM 0xB4D5 # HANGUL SYLLABLE TIKEUT-YU-IEUNG 0xB4DC # HANGUL SYLLABLE TIKEUT-EU 0xB4DD # HANGUL SYLLABLE TIKEUT-EU-KIYEOK 0xB4E0 # HANGUL SYLLABLE TIKEUT-EU-NIEUN 0xB4E3 # HANGUL SYLLABLE TIKEUT-EU-TIKEUT 0xB4E4 # HANGUL SYLLABLE TIKEUT-EU-RIEUL 0xB4E6 # HANGUL SYLLABLE TIKEUT-EU-RIEULMIEUM 0xB4EC # HANGUL SYLLABLE TIKEUT-EU-MIEUM 0xB4ED # HANGUL SYLLABLE TIKEUT-EU-PIEUP 0xB4EF # HANGUL SYLLABLE TIKEUT-EU-SIOS 0xB4F1 # HANGUL SYLLABLE TIKEUT-EU-IEUNG 0xB4F8 # HANGUL SYLLABLE TIKEUT-YI 0xB514 # HANGUL SYLLABLE TIKEUT-I 0xB515 # HANGUL SYLLABLE TIKEUT-I-KIYEOK 0xB518 # HANGUL SYLLABLE TIKEUT-I-NIEUN 0xB51B # HANGUL SYLLABLE TIKEUT-I-TIKEUT 0xB51C # HANGUL SYLLABLE TIKEUT-I-RIEUL 0xB524 # HANGUL SYLLABLE TIKEUT-I-MIEUM 0xB525 # HANGUL SYLLABLE TIKEUT-I-PIEUP 0xB527 # HANGUL SYLLABLE TIKEUT-I-SIOS 0xB528 # HANGUL SYLLABLE TIKEUT-I-SSANGSIOS 0xB529 # HANGUL SYLLABLE TIKEUT-I-IEUNG 0xB52A # HANGUL SYLLABLE TIKEUT-I-CIEUC 0xB530 # HANGUL SYLLABLE SSANGTIKEUT-A 0xB531 # HANGUL SYLLABLE SSANGTIKEUT-A-KIYEOK 0xB534 # HANGUL SYLLABLE SSANGTIKEUT-A-NIEUN 0xB538 # HANGUL SYLLABLE SSANGTIKEUT-A-RIEUL 0xB540 # HANGUL SYLLABLE SSANGTIKEUT-A-MIEUM 0xB541 # HANGUL SYLLABLE SSANGTIKEUT-A-PIEUP 0xB543 # HANGUL SYLLABLE SSANGTIKEUT-A-SIOS 0xB544 # HANGUL SYLLABLE SSANGTIKEUT-A-SSANGSIOS 0xB545 # HANGUL SYLLABLE SSANGTIKEUT-A-IEUNG 0xB54B # HANGUL SYLLABLE SSANGTIKEUT-A-HIEUH 0xB54C # HANGUL SYLLABLE SSANGTIKEUT-AE 0xB54D # HANGUL SYLLABLE SSANGTIKEUT-AE-KIYEOK 0xB550 # HANGUL SYLLABLE SSANGTIKEUT-AE-NIEUN 0xB554 # HANGUL SYLLABLE SSANGTIKEUT-AE-RIEUL 0xB55C # HANGUL SYLLABLE SSANGTIKEUT-AE-MIEUM 0xB55D # HANGUL SYLLABLE SSANGTIKEUT-AE-PIEUP 0xB55F # HANGUL SYLLABLE SSANGTIKEUT-AE-SIOS 0xB560 # HANGUL SYLLABLE SSANGTIKEUT-AE-SSANGSIOS 0xB561 # HANGUL SYLLABLE SSANGTIKEUT-AE-IEUNG 0xB5A0 # HANGUL SYLLABLE SSANGTIKEUT-EO 0xB5A1 # HANGUL SYLLABLE SSANGTIKEUT-EO-KIYEOK 0xB5A4 # HANGUL SYLLABLE SSANGTIKEUT-EO-NIEUN 0xB5A8 # HANGUL SYLLABLE SSANGTIKEUT-EO-RIEUL 0xB5AA # HANGUL SYLLABLE SSANGTIKEUT-EO-RIEULMIEUM 0xB5AB # HANGUL SYLLABLE SSANGTIKEUT-EO-RIEULPIEUP 0xB5B0 # HANGUL SYLLABLE SSANGTIKEUT-EO-MIEUM 0xB5B1 # HANGUL SYLLABLE SSANGTIKEUT-EO-PIEUP 0xB5B3 # HANGUL SYLLABLE SSANGTIKEUT-EO-SIOS 0xB5B4 # HANGUL SYLLABLE SSANGTIKEUT-EO-SSANGSIOS 0xB5B5 # HANGUL SYLLABLE SSANGTIKEUT-EO-IEUNG 0xB5BB # HANGUL SYLLABLE SSANGTIKEUT-EO-HIEUH 0xB5BC # HANGUL SYLLABLE SSANGTIKEUT-E 0xB5BD # HANGUL SYLLABLE SSANGTIKEUT-E-KIYEOK 0xB5C0 # HANGUL SYLLABLE SSANGTIKEUT-E-NIEUN 0xB5C4 # HANGUL SYLLABLE SSANGTIKEUT-E-RIEUL 0xB5CC # HANGUL SYLLABLE SSANGTIKEUT-E-MIEUM 0xB5CD # HANGUL SYLLABLE SSANGTIKEUT-E-PIEUP 0xB5CF # HANGUL SYLLABLE SSANGTIKEUT-E-SIOS 0xB5D0 # HANGUL SYLLABLE SSANGTIKEUT-E-SSANGSIOS 0xB5D1 # HANGUL SYLLABLE SSANGTIKEUT-E-IEUNG 0xB5D8 # HANGUL SYLLABLE SSANGTIKEUT-YEO 0xB5EC # HANGUL SYLLABLE SSANGTIKEUT-YEO-SSANGSIOS 0xB610 # HANGUL SYLLABLE SSANGTIKEUT-O 0xB611 # HANGUL SYLLABLE SSANGTIKEUT-O-KIYEOK 0xB614 # HANGUL SYLLABLE SSANGTIKEUT-O-NIEUN 0xB618 # HANGUL SYLLABLE SSANGTIKEUT-O-RIEUL 0xB625 # HANGUL SYLLABLE SSANGTIKEUT-O-IEUNG 0xB62C # HANGUL SYLLABLE SSANGTIKEUT-WA 0xB634 # HANGUL SYLLABLE SSANGTIKEUT-WA-RIEUL 0xB648 # HANGUL SYLLABLE SSANGTIKEUT-WAE 0xB664 # HANGUL SYLLABLE SSANGTIKEUT-OE 0xB668 # HANGUL SYLLABLE SSANGTIKEUT-OE-NIEUN 0xB69C # HANGUL SYLLABLE SSANGTIKEUT-U 0xB69D # HANGUL SYLLABLE SSANGTIKEUT-U-KIYEOK 0xB6A0 # HANGUL SYLLABLE SSANGTIKEUT-U-NIEUN 0xB6A4 # HANGUL SYLLABLE SSANGTIKEUT-U-RIEUL 0xB6AB # HANGUL SYLLABLE SSANGTIKEUT-U-RIEULHIEUH 0xB6AC # HANGUL SYLLABLE SSANGTIKEUT-U-MIEUM 0xB6B1 # HANGUL SYLLABLE SSANGTIKEUT-U-IEUNG 0xB6D4 # HANGUL SYLLABLE SSANGTIKEUT-WE 0xB6F0 # HANGUL SYLLABLE SSANGTIKEUT-WI 0xB6F4 # HANGUL SYLLABLE SSANGTIKEUT-WI-NIEUN 0xB6F8 # HANGUL SYLLABLE SSANGTIKEUT-WI-RIEUL 0xB700 # HANGUL SYLLABLE SSANGTIKEUT-WI-MIEUM 0xB701 # HANGUL SYLLABLE SSANGTIKEUT-WI-PIEUP 0xB705 # HANGUL SYLLABLE SSANGTIKEUT-WI-IEUNG 0xB728 # HANGUL SYLLABLE SSANGTIKEUT-EU 0xB729 # HANGUL SYLLABLE SSANGTIKEUT-EU-KIYEOK 0xB72C # HANGUL SYLLABLE SSANGTIKEUT-EU-NIEUN 0xB72F # HANGUL SYLLABLE SSANGTIKEUT-EU-TIKEUT 0xB730 # HANGUL SYLLABLE SSANGTIKEUT-EU-RIEUL 0xB738 # HANGUL SYLLABLE SSANGTIKEUT-EU-MIEUM 0xB739 # HANGUL SYLLABLE SSANGTIKEUT-EU-PIEUP 0xB73B # HANGUL SYLLABLE SSANGTIKEUT-EU-SIOS 0xB744 # HANGUL SYLLABLE SSANGTIKEUT-YI 0xB748 # HANGUL SYLLABLE SSANGTIKEUT-YI-NIEUN 0xB74C # HANGUL SYLLABLE SSANGTIKEUT-YI-RIEUL 0xB754 # HANGUL SYLLABLE SSANGTIKEUT-YI-MIEUM 0xB755 # HANGUL SYLLABLE SSANGTIKEUT-YI-PIEUP 0xB760 # HANGUL SYLLABLE SSANGTIKEUT-I 0xB764 # HANGUL SYLLABLE SSANGTIKEUT-I-NIEUN 0xB768 # HANGUL SYLLABLE SSANGTIKEUT-I-RIEUL 0xB770 # HANGUL SYLLABLE SSANGTIKEUT-I-MIEUM 0xB771 # HANGUL SYLLABLE SSANGTIKEUT-I-PIEUP 0xB773 # HANGUL SYLLABLE SSANGTIKEUT-I-SIOS 0xB775 # HANGUL SYLLABLE SSANGTIKEUT-I-IEUNG 0xB77C # HANGUL SYLLABLE RIEUL-A 0xB77D # HANGUL SYLLABLE RIEUL-A-KIYEOK 0xB780 # HANGUL SYLLABLE RIEUL-A-NIEUN 0xB784 # HANGUL SYLLABLE RIEUL-A-RIEUL 0xB78C # HANGUL SYLLABLE RIEUL-A-MIEUM 0xB78D # HANGUL SYLLABLE RIEUL-A-PIEUP 0xB78F # HANGUL SYLLABLE RIEUL-A-SIOS 0xB790 # HANGUL SYLLABLE RIEUL-A-SSANGSIOS 0xB791 # HANGUL SYLLABLE RIEUL-A-IEUNG 0xB792 # HANGUL SYLLABLE RIEUL-A-CIEUC 0xB796 # HANGUL SYLLABLE RIEUL-A-PHIEUPH 0xB797 # HANGUL SYLLABLE RIEUL-A-HIEUH 0xB798 # HANGUL SYLLABLE RIEUL-AE 0xB799 # HANGUL SYLLABLE RIEUL-AE-KIYEOK 0xB79C # HANGUL SYLLABLE RIEUL-AE-NIEUN 0xB7A0 # HANGUL SYLLABLE RIEUL-AE-RIEUL 0xB7A8 # HANGUL SYLLABLE RIEUL-AE-MIEUM 0xB7A9 # HANGUL SYLLABLE RIEUL-AE-PIEUP 0xB7AB # HANGUL SYLLABLE RIEUL-AE-SIOS 0xB7AC # HANGUL SYLLABLE RIEUL-AE-SSANGSIOS 0xB7AD # HANGUL SYLLABLE RIEUL-AE-IEUNG 0xB7B4 # HANGUL SYLLABLE RIEUL-YA 0xB7B5 # HANGUL SYLLABLE RIEUL-YA-KIYEOK 0xB7B8 # HANGUL SYLLABLE RIEUL-YA-NIEUN 0xB7C7 # HANGUL SYLLABLE RIEUL-YA-SIOS 0xB7C9 # HANGUL SYLLABLE RIEUL-YA-IEUNG 0xB7EC # HANGUL SYLLABLE RIEUL-EO 0xB7ED # HANGUL SYLLABLE RIEUL-EO-KIYEOK 0xB7F0 # HANGUL SYLLABLE RIEUL-EO-NIEUN 0xB7F4 # HANGUL SYLLABLE RIEUL-EO-RIEUL 0xB7FC # HANGUL SYLLABLE RIEUL-EO-MIEUM 0xB7FD # HANGUL SYLLABLE RIEUL-EO-PIEUP 0xB7FF # HANGUL SYLLABLE RIEUL-EO-SIOS 0xB800 # HANGUL SYLLABLE RIEUL-EO-SSANGSIOS 0xB801 # HANGUL SYLLABLE RIEUL-EO-IEUNG 0xB807 # HANGUL SYLLABLE RIEUL-EO-HIEUH 0xB808 # HANGUL SYLLABLE RIEUL-E 0xB809 # HANGUL SYLLABLE RIEUL-E-KIYEOK 0xB80C # HANGUL SYLLABLE RIEUL-E-NIEUN 0xB810 # HANGUL SYLLABLE RIEUL-E-RIEUL 0xB818 # HANGUL SYLLABLE RIEUL-E-MIEUM 0xB819 # HANGUL SYLLABLE RIEUL-E-PIEUP 0xB81B # HANGUL SYLLABLE RIEUL-E-SIOS 0xB81D # HANGUL SYLLABLE RIEUL-E-IEUNG 0xB824 # HANGUL SYLLABLE RIEUL-YEO 0xB825 # HANGUL SYLLABLE RIEUL-YEO-KIYEOK 0xB828 # HANGUL SYLLABLE RIEUL-YEO-NIEUN 0xB82C # HANGUL SYLLABLE RIEUL-YEO-RIEUL 0xB834 # HANGUL SYLLABLE RIEUL-YEO-MIEUM 0xB835 # HANGUL SYLLABLE RIEUL-YEO-PIEUP 0xB837 # HANGUL SYLLABLE RIEUL-YEO-SIOS 0xB838 # HANGUL SYLLABLE RIEUL-YEO-SSANGSIOS 0xB839 # HANGUL SYLLABLE RIEUL-YEO-IEUNG 0xB840 # HANGUL SYLLABLE RIEUL-YE 0xB844 # HANGUL SYLLABLE RIEUL-YE-NIEUN 0xB851 # HANGUL SYLLABLE RIEUL-YE-PIEUP 0xB853 # HANGUL SYLLABLE RIEUL-YE-SIOS 0xB85C # HANGUL SYLLABLE RIEUL-O 0xB85D # HANGUL SYLLABLE RIEUL-O-KIYEOK 0xB860 # HANGUL SYLLABLE RIEUL-O-NIEUN 0xB864 # HANGUL SYLLABLE RIEUL-O-RIEUL 0xB86C # HANGUL SYLLABLE RIEUL-O-MIEUM 0xB86D # HANGUL SYLLABLE RIEUL-O-PIEUP 0xB86F # HANGUL SYLLABLE RIEUL-O-SIOS 0xB871 # HANGUL SYLLABLE RIEUL-O-IEUNG 0xB878 # HANGUL SYLLABLE RIEUL-WA 0xB87C # HANGUL SYLLABLE RIEUL-WA-NIEUN 0xB88D # HANGUL SYLLABLE RIEUL-WA-IEUNG 0xB8A8 # HANGUL SYLLABLE RIEUL-WAE-SSANGSIOS 0xB8B0 # HANGUL SYLLABLE RIEUL-OE 0xB8B4 # HANGUL SYLLABLE RIEUL-OE-NIEUN 0xB8B8 # HANGUL SYLLABLE RIEUL-OE-RIEUL 0xB8C0 # HANGUL SYLLABLE RIEUL-OE-MIEUM 0xB8C1 # HANGUL SYLLABLE RIEUL-OE-PIEUP 0xB8C3 # HANGUL SYLLABLE RIEUL-OE-SIOS 0xB8C5 # HANGUL SYLLABLE RIEUL-OE-IEUNG 0xB8CC # HANGUL SYLLABLE RIEUL-YO 0xB8D0 # HANGUL SYLLABLE RIEUL-YO-NIEUN 0xB8D4 # HANGUL SYLLABLE RIEUL-YO-RIEUL 0xB8DD # HANGUL SYLLABLE RIEUL-YO-PIEUP 0xB8DF # HANGUL SYLLABLE RIEUL-YO-SIOS 0xB8E1 # HANGUL SYLLABLE RIEUL-YO-IEUNG 0xB8E8 # HANGUL SYLLABLE RIEUL-U 0xB8E9 # HANGUL SYLLABLE RIEUL-U-KIYEOK 0xB8EC # HANGUL SYLLABLE RIEUL-U-NIEUN 0xB8F0 # HANGUL SYLLABLE RIEUL-U-RIEUL 0xB8F8 # HANGUL SYLLABLE RIEUL-U-MIEUM 0xB8F9 # HANGUL SYLLABLE RIEUL-U-PIEUP 0xB8FB # HANGUL SYLLABLE RIEUL-U-SIOS 0xB8FD # HANGUL SYLLABLE RIEUL-U-IEUNG 0xB904 # HANGUL SYLLABLE RIEUL-WEO 0xB918 # HANGUL SYLLABLE RIEUL-WEO-SSANGSIOS 0xB920 # HANGUL SYLLABLE RIEUL-WE 0xB93C # HANGUL SYLLABLE RIEUL-WI 0xB93D # HANGUL SYLLABLE RIEUL-WI-KIYEOK 0xB940 # HANGUL SYLLABLE RIEUL-WI-NIEUN 0xB944 # HANGUL SYLLABLE RIEUL-WI-RIEUL 0xB94C # HANGUL SYLLABLE RIEUL-WI-MIEUM 0xB94F # HANGUL SYLLABLE RIEUL-WI-SIOS 0xB951 # HANGUL SYLLABLE RIEUL-WI-IEUNG 0xB958 # HANGUL SYLLABLE RIEUL-YU 0xB959 # HANGUL SYLLABLE RIEUL-YU-KIYEOK 0xB95C # HANGUL SYLLABLE RIEUL-YU-NIEUN 0xB960 # HANGUL SYLLABLE RIEUL-YU-RIEUL 0xB968 # HANGUL SYLLABLE RIEUL-YU-MIEUM 0xB969 # HANGUL SYLLABLE RIEUL-YU-PIEUP 0xB96B # HANGUL SYLLABLE RIEUL-YU-SIOS 0xB96D # HANGUL SYLLABLE RIEUL-YU-IEUNG 0xB974 # HANGUL SYLLABLE RIEUL-EU 0xB975 # HANGUL SYLLABLE RIEUL-EU-KIYEOK 0xB978 # HANGUL SYLLABLE RIEUL-EU-NIEUN 0xB97C # HANGUL SYLLABLE RIEUL-EU-RIEUL 0xB984 # HANGUL SYLLABLE RIEUL-EU-MIEUM 0xB985 # HANGUL SYLLABLE RIEUL-EU-PIEUP 0xB987 # HANGUL SYLLABLE RIEUL-EU-SIOS 0xB989 # HANGUL SYLLABLE RIEUL-EU-IEUNG 0xB98A # HANGUL SYLLABLE RIEUL-EU-CIEUC 0xB98D # HANGUL SYLLABLE RIEUL-EU-THIEUTH 0xB98E # HANGUL SYLLABLE RIEUL-EU-PHIEUPH 0xB9AC # HANGUL SYLLABLE RIEUL-I 0xB9AD # HANGUL SYLLABLE RIEUL-I-KIYEOK 0xB9B0 # HANGUL SYLLABLE RIEUL-I-NIEUN 0xB9B4 # HANGUL SYLLABLE RIEUL-I-RIEUL 0xB9BC # HANGUL SYLLABLE RIEUL-I-MIEUM 0xB9BD # HANGUL SYLLABLE RIEUL-I-PIEUP 0xB9BF # HANGUL SYLLABLE RIEUL-I-SIOS 0xB9C1 # HANGUL SYLLABLE RIEUL-I-IEUNG 0xB9C8 # HANGUL SYLLABLE MIEUM-A 0xB9C9 # HANGUL SYLLABLE MIEUM-A-KIYEOK 0xB9CC # HANGUL SYLLABLE MIEUM-A-NIEUN 0xB9CE # HANGUL SYLLABLE MIEUM-A-NIEUNHIEUH 0xB9CF # HANGUL SYLLABLE MIEUM-A-TIKEUT 0xB9D0 # HANGUL SYLLABLE MIEUM-A-RIEUL 0xB9D1 # HANGUL SYLLABLE MIEUM-A-RIEULKIYEOK 0xB9D2 # HANGUL SYLLABLE MIEUM-A-RIEULMIEUM 0xB9D8 # HANGUL SYLLABLE MIEUM-A-MIEUM 0xB9D9 # HANGUL SYLLABLE MIEUM-A-PIEUP 0xB9DB # HANGUL SYLLABLE MIEUM-A-SIOS 0xB9DD # HANGUL SYLLABLE MIEUM-A-IEUNG 0xB9DE # HANGUL SYLLABLE MIEUM-A-CIEUC 0xB9E1 # HANGUL SYLLABLE MIEUM-A-THIEUTH 0xB9E3 # HANGUL SYLLABLE MIEUM-A-HIEUH 0xB9E4 # HANGUL SYLLABLE MIEUM-AE 0xB9E5 # HANGUL SYLLABLE MIEUM-AE-KIYEOK 0xB9E8 # HANGUL SYLLABLE MIEUM-AE-NIEUN 0xB9EC # HANGUL SYLLABLE MIEUM-AE-RIEUL 0xB9F4 # HANGUL SYLLABLE MIEUM-AE-MIEUM 0xB9F5 # HANGUL SYLLABLE MIEUM-AE-PIEUP 0xB9F7 # HANGUL SYLLABLE MIEUM-AE-SIOS 0xB9F8 # HANGUL SYLLABLE MIEUM-AE-SSANGSIOS 0xB9F9 # HANGUL SYLLABLE MIEUM-AE-IEUNG 0xB9FA # HANGUL SYLLABLE MIEUM-AE-CIEUC 0xBA00 # HANGUL SYLLABLE MIEUM-YA 0xBA01 # HANGUL SYLLABLE MIEUM-YA-KIYEOK 0xBA08 # HANGUL SYLLABLE MIEUM-YA-RIEUL 0xBA15 # HANGUL SYLLABLE MIEUM-YA-IEUNG 0xBA38 # HANGUL SYLLABLE MIEUM-EO 0xBA39 # HANGUL SYLLABLE MIEUM-EO-KIYEOK 0xBA3C # HANGUL SYLLABLE MIEUM-EO-NIEUN 0xBA40 # HANGUL SYLLABLE MIEUM-EO-RIEUL 0xBA42 # HANGUL SYLLABLE MIEUM-EO-RIEULMIEUM 0xBA48 # HANGUL SYLLABLE MIEUM-EO-MIEUM 0xBA49 # HANGUL SYLLABLE MIEUM-EO-PIEUP 0xBA4B # HANGUL SYLLABLE MIEUM-EO-SIOS 0xBA4D # HANGUL SYLLABLE MIEUM-EO-IEUNG 0xBA4E # HANGUL SYLLABLE MIEUM-EO-CIEUC 0xBA53 # HANGUL SYLLABLE MIEUM-EO-HIEUH 0xBA54 # HANGUL SYLLABLE MIEUM-E 0xBA55 # HANGUL SYLLABLE MIEUM-E-KIYEOK 0xBA58 # HANGUL SYLLABLE MIEUM-E-NIEUN 0xBA5C # HANGUL SYLLABLE MIEUM-E-RIEUL 0xBA64 # HANGUL SYLLABLE MIEUM-E-MIEUM 0xBA65 # HANGUL SYLLABLE MIEUM-E-PIEUP 0xBA67 # HANGUL SYLLABLE MIEUM-E-SIOS 0xBA68 # HANGUL SYLLABLE MIEUM-E-SSANGSIOS 0xBA69 # HANGUL SYLLABLE MIEUM-E-IEUNG 0xBA70 # HANGUL SYLLABLE MIEUM-YEO 0xBA71 # HANGUL SYLLABLE MIEUM-YEO-KIYEOK 0xBA74 # HANGUL SYLLABLE MIEUM-YEO-NIEUN 0xBA78 # HANGUL SYLLABLE MIEUM-YEO-RIEUL 0xBA83 # HANGUL SYLLABLE MIEUM-YEO-SIOS 0xBA84 # HANGUL SYLLABLE MIEUM-YEO-SSANGSIOS 0xBA85 # HANGUL SYLLABLE MIEUM-YEO-IEUNG 0xBA87 # HANGUL SYLLABLE MIEUM-YEO-CHIEUCH 0xBA8C # HANGUL SYLLABLE MIEUM-YE 0xBAA8 # HANGUL SYLLABLE MIEUM-O 0xBAA9 # HANGUL SYLLABLE MIEUM-O-KIYEOK 0xBAAB # HANGUL SYLLABLE MIEUM-O-KIYEOKSIOS 0xBAAC # HANGUL SYLLABLE MIEUM-O-NIEUN 0xBAB0 # HANGUL SYLLABLE MIEUM-O-RIEUL 0xBAB2 # HANGUL SYLLABLE MIEUM-O-RIEULMIEUM 0xBAB8 # HANGUL SYLLABLE MIEUM-O-MIEUM 0xBAB9 # HANGUL SYLLABLE MIEUM-O-PIEUP 0xBABB # HANGUL SYLLABLE MIEUM-O-SIOS 0xBABD # HANGUL SYLLABLE MIEUM-O-IEUNG 0xBAC4 # HANGUL SYLLABLE MIEUM-WA 0xBAC8 # HANGUL SYLLABLE MIEUM-WA-NIEUN 0xBAD8 # HANGUL SYLLABLE MIEUM-WA-SSANGSIOS 0xBAD9 # HANGUL SYLLABLE MIEUM-WA-IEUNG 0xBAFC # HANGUL SYLLABLE MIEUM-OE 0xBB00 # HANGUL SYLLABLE MIEUM-OE-NIEUN 0xBB04 # HANGUL SYLLABLE MIEUM-OE-RIEUL 0xBB0D # HANGUL SYLLABLE MIEUM-OE-PIEUP 0xBB0F # HANGUL SYLLABLE MIEUM-OE-SIOS 0xBB11 # HANGUL SYLLABLE MIEUM-OE-IEUNG 0xBB18 # HANGUL SYLLABLE MIEUM-YO 0xBB1C # HANGUL SYLLABLE MIEUM-YO-NIEUN 0xBB20 # HANGUL SYLLABLE MIEUM-YO-RIEUL 0xBB29 # HANGUL SYLLABLE MIEUM-YO-PIEUP 0xBB2B # HANGUL SYLLABLE MIEUM-YO-SIOS 0xBB34 # HANGUL SYLLABLE MIEUM-U 0xBB35 # HANGUL SYLLABLE MIEUM-U-KIYEOK 0xBB36 # HANGUL SYLLABLE MIEUM-U-SSANGKIYEOK 0xBB38 # HANGUL SYLLABLE MIEUM-U-NIEUN 0xBB3B # HANGUL SYLLABLE MIEUM-U-TIKEUT 0xBB3C # HANGUL SYLLABLE MIEUM-U-RIEUL 0xBB3D # HANGUL SYLLABLE MIEUM-U-RIEULKIYEOK 0xBB3E # HANGUL SYLLABLE MIEUM-U-RIEULMIEUM 0xBB44 # HANGUL SYLLABLE MIEUM-U-MIEUM 0xBB45 # HANGUL SYLLABLE MIEUM-U-PIEUP 0xBB47 # HANGUL SYLLABLE MIEUM-U-SIOS 0xBB49 # HANGUL SYLLABLE MIEUM-U-IEUNG 0xBB4D # HANGUL SYLLABLE MIEUM-U-THIEUTH 0xBB4F # HANGUL SYLLABLE MIEUM-U-HIEUH 0xBB50 # HANGUL SYLLABLE MIEUM-WEO 0xBB54 # HANGUL SYLLABLE MIEUM-WEO-NIEUN 0xBB58 # HANGUL SYLLABLE MIEUM-WEO-RIEUL 0xBB61 # HANGUL SYLLABLE MIEUM-WEO-PIEUP 0xBB63 # HANGUL SYLLABLE MIEUM-WEO-SIOS 0xBB6C # HANGUL SYLLABLE MIEUM-WE 0xBB88 # HANGUL SYLLABLE MIEUM-WI 0xBB8C # HANGUL SYLLABLE MIEUM-WI-NIEUN 0xBB90 # HANGUL SYLLABLE MIEUM-WI-RIEUL 0xBBA4 # HANGUL SYLLABLE MIEUM-YU 0xBBA8 # HANGUL SYLLABLE MIEUM-YU-NIEUN 0xBBAC # HANGUL SYLLABLE MIEUM-YU-RIEUL 0xBBB4 # HANGUL SYLLABLE MIEUM-YU-MIEUM 0xBBB7 # HANGUL SYLLABLE MIEUM-YU-SIOS 0xBBC0 # HANGUL SYLLABLE MIEUM-EU 0xBBC4 # HANGUL SYLLABLE MIEUM-EU-NIEUN 0xBBC8 # HANGUL SYLLABLE MIEUM-EU-RIEUL 0xBBD0 # HANGUL SYLLABLE MIEUM-EU-MIEUM 0xBBD3 # HANGUL SYLLABLE MIEUM-EU-SIOS 0xBBF8 # HANGUL SYLLABLE MIEUM-I 0xBBF9 # HANGUL SYLLABLE MIEUM-I-KIYEOK 0xBBFC # HANGUL SYLLABLE MIEUM-I-NIEUN 0xBBFF # HANGUL SYLLABLE MIEUM-I-TIKEUT 0xBC00 # HANGUL SYLLABLE MIEUM-I-RIEUL 0xBC02 # HANGUL SYLLABLE MIEUM-I-RIEULMIEUM 0xBC08 # HANGUL SYLLABLE MIEUM-I-MIEUM 0xBC09 # HANGUL SYLLABLE MIEUM-I-PIEUP 0xBC0B # HANGUL SYLLABLE MIEUM-I-SIOS 0xBC0C # HANGUL SYLLABLE MIEUM-I-SSANGSIOS 0xBC0D # HANGUL SYLLABLE MIEUM-I-IEUNG 0xBC0F # HANGUL SYLLABLE MIEUM-I-CHIEUCH 0xBC11 # HANGUL SYLLABLE MIEUM-I-THIEUTH 0xBC14 # HANGUL SYLLABLE PIEUP-A 0xBC15 # HANGUL SYLLABLE PIEUP-A-KIYEOK 0xBC16 # HANGUL SYLLABLE PIEUP-A-SSANGKIYEOK 0xBC17 # HANGUL SYLLABLE PIEUP-A-KIYEOKSIOS 0xBC18 # HANGUL SYLLABLE PIEUP-A-NIEUN 0xBC1B # HANGUL SYLLABLE PIEUP-A-TIKEUT 0xBC1C # HANGUL SYLLABLE PIEUP-A-RIEUL 0xBC1D # HANGUL SYLLABLE PIEUP-A-RIEULKIYEOK 0xBC1E # HANGUL SYLLABLE PIEUP-A-RIEULMIEUM 0xBC1F # HANGUL SYLLABLE PIEUP-A-RIEULPIEUP 0xBC24 # HANGUL SYLLABLE PIEUP-A-MIEUM 0xBC25 # HANGUL SYLLABLE PIEUP-A-PIEUP 0xBC27 # HANGUL SYLLABLE PIEUP-A-SIOS 0xBC29 # HANGUL SYLLABLE PIEUP-A-IEUNG 0xBC2D # HANGUL SYLLABLE PIEUP-A-THIEUTH 0xBC30 # HANGUL SYLLABLE PIEUP-AE 0xBC31 # HANGUL SYLLABLE PIEUP-AE-KIYEOK 0xBC34 # HANGUL SYLLABLE PIEUP-AE-NIEUN 0xBC38 # HANGUL SYLLABLE PIEUP-AE-RIEUL 0xBC40 # HANGUL SYLLABLE PIEUP-AE-MIEUM 0xBC41 # HANGUL SYLLABLE PIEUP-AE-PIEUP 0xBC43 # HANGUL SYLLABLE PIEUP-AE-SIOS 0xBC44 # HANGUL SYLLABLE PIEUP-AE-SSANGSIOS 0xBC45 # HANGUL SYLLABLE PIEUP-AE-IEUNG 0xBC49 # HANGUL SYLLABLE PIEUP-AE-THIEUTH 0xBC4C # HANGUL SYLLABLE PIEUP-YA 0xBC4D # HANGUL SYLLABLE PIEUP-YA-KIYEOK 0xBC50 # HANGUL SYLLABLE PIEUP-YA-NIEUN 0xBC5D # HANGUL SYLLABLE PIEUP-YA-PIEUP 0xBC84 # HANGUL SYLLABLE PIEUP-EO 0xBC85 # HANGUL SYLLABLE PIEUP-EO-KIYEOK 0xBC88 # HANGUL SYLLABLE PIEUP-EO-NIEUN 0xBC8B # HANGUL SYLLABLE PIEUP-EO-TIKEUT 0xBC8C # HANGUL SYLLABLE PIEUP-EO-RIEUL 0xBC8E # HANGUL SYLLABLE PIEUP-EO-RIEULMIEUM 0xBC94 # HANGUL SYLLABLE PIEUP-EO-MIEUM 0xBC95 # HANGUL SYLLABLE PIEUP-EO-PIEUP 0xBC97 # HANGUL SYLLABLE PIEUP-EO-SIOS 0xBC99 # HANGUL SYLLABLE PIEUP-EO-IEUNG 0xBC9A # HANGUL SYLLABLE PIEUP-EO-CIEUC 0xBCA0 # HANGUL SYLLABLE PIEUP-E 0xBCA1 # HANGUL SYLLABLE PIEUP-E-KIYEOK 0xBCA4 # HANGUL SYLLABLE PIEUP-E-NIEUN 0xBCA7 # HANGUL SYLLABLE PIEUP-E-TIKEUT 0xBCA8 # HANGUL SYLLABLE PIEUP-E-RIEUL 0xBCB0 # HANGUL SYLLABLE PIEUP-E-MIEUM 0xBCB1 # HANGUL SYLLABLE PIEUP-E-PIEUP 0xBCB3 # HANGUL SYLLABLE PIEUP-E-SIOS 0xBCB4 # HANGUL SYLLABLE PIEUP-E-SSANGSIOS 0xBCB5 # HANGUL SYLLABLE PIEUP-E-IEUNG 0xBCBC # HANGUL SYLLABLE PIEUP-YEO 0xBCBD # HANGUL SYLLABLE PIEUP-YEO-KIYEOK 0xBCC0 # HANGUL SYLLABLE PIEUP-YEO-NIEUN 0xBCC4 # HANGUL SYLLABLE PIEUP-YEO-RIEUL 0xBCCD # HANGUL SYLLABLE PIEUP-YEO-PIEUP 0xBCCF # HANGUL SYLLABLE PIEUP-YEO-SIOS 0xBCD0 # HANGUL SYLLABLE PIEUP-YEO-SSANGSIOS 0xBCD1 # HANGUL SYLLABLE PIEUP-YEO-IEUNG 0xBCD5 # HANGUL SYLLABLE PIEUP-YEO-THIEUTH 0xBCD8 # HANGUL SYLLABLE PIEUP-YE 0xBCDC # HANGUL SYLLABLE PIEUP-YE-NIEUN 0xBCF4 # HANGUL SYLLABLE PIEUP-O 0xBCF5 # HANGUL SYLLABLE PIEUP-O-KIYEOK 0xBCF6 # HANGUL SYLLABLE PIEUP-O-SSANGKIYEOK 0xBCF8 # HANGUL SYLLABLE PIEUP-O-NIEUN 0xBCFC # HANGUL SYLLABLE PIEUP-O-RIEUL 0xBD04 # HANGUL SYLLABLE PIEUP-O-MIEUM 0xBD05 # HANGUL SYLLABLE PIEUP-O-PIEUP 0xBD07 # HANGUL SYLLABLE PIEUP-O-SIOS 0xBD09 # HANGUL SYLLABLE PIEUP-O-IEUNG 0xBD10 # HANGUL SYLLABLE PIEUP-WA 0xBD14 # HANGUL SYLLABLE PIEUP-WA-NIEUN 0xBD24 # HANGUL SYLLABLE PIEUP-WA-SSANGSIOS 0xBD2C # HANGUL SYLLABLE PIEUP-WAE 0xBD40 # HANGUL SYLLABLE PIEUP-WAE-SSANGSIOS 0xBD48 # HANGUL SYLLABLE PIEUP-OE 0xBD49 # HANGUL SYLLABLE PIEUP-OE-KIYEOK 0xBD4C # HANGUL SYLLABLE PIEUP-OE-NIEUN 0xBD50 # HANGUL SYLLABLE PIEUP-OE-RIEUL 0xBD58 # HANGUL SYLLABLE PIEUP-OE-MIEUM 0xBD59 # HANGUL SYLLABLE PIEUP-OE-PIEUP 0xBD64 # HANGUL SYLLABLE PIEUP-YO 0xBD68 # HANGUL SYLLABLE PIEUP-YO-NIEUN 0xBD80 # HANGUL SYLLABLE PIEUP-U 0xBD81 # HANGUL SYLLABLE PIEUP-U-KIYEOK 0xBD84 # HANGUL SYLLABLE PIEUP-U-NIEUN 0xBD87 # HANGUL SYLLABLE PIEUP-U-TIKEUT 0xBD88 # HANGUL SYLLABLE PIEUP-U-RIEUL 0xBD89 # HANGUL SYLLABLE PIEUP-U-RIEULKIYEOK 0xBD8A # HANGUL SYLLABLE PIEUP-U-RIEULMIEUM 0xBD90 # HANGUL SYLLABLE PIEUP-U-MIEUM 0xBD91 # HANGUL SYLLABLE PIEUP-U-PIEUP 0xBD93 # HANGUL SYLLABLE PIEUP-U-SIOS 0xBD95 # HANGUL SYLLABLE PIEUP-U-IEUNG 0xBD99 # HANGUL SYLLABLE PIEUP-U-THIEUTH 0xBD9A # HANGUL SYLLABLE PIEUP-U-PHIEUPH 0xBD9C # HANGUL SYLLABLE PIEUP-WEO 0xBDA4 # HANGUL SYLLABLE PIEUP-WEO-RIEUL 0xBDB0 # HANGUL SYLLABLE PIEUP-WEO-SSANGSIOS 0xBDB8 # HANGUL SYLLABLE PIEUP-WE 0xBDD4 # HANGUL SYLLABLE PIEUP-WI 0xBDD5 # HANGUL SYLLABLE PIEUP-WI-KIYEOK 0xBDD8 # HANGUL SYLLABLE PIEUP-WI-NIEUN 0xBDDC # HANGUL SYLLABLE PIEUP-WI-RIEUL 0xBDE9 # HANGUL SYLLABLE PIEUP-WI-IEUNG 0xBDF0 # HANGUL SYLLABLE PIEUP-YU 0xBDF4 # HANGUL SYLLABLE PIEUP-YU-NIEUN 0xBDF8 # HANGUL SYLLABLE PIEUP-YU-RIEUL 0xBE00 # HANGUL SYLLABLE PIEUP-YU-MIEUM 0xBE03 # HANGUL SYLLABLE PIEUP-YU-SIOS 0xBE05 # HANGUL SYLLABLE PIEUP-YU-IEUNG 0xBE0C # HANGUL SYLLABLE PIEUP-EU 0xBE0D # HANGUL SYLLABLE PIEUP-EU-KIYEOK 0xBE10 # HANGUL SYLLABLE PIEUP-EU-NIEUN 0xBE14 # HANGUL SYLLABLE PIEUP-EU-RIEUL 0xBE1C # HANGUL SYLLABLE PIEUP-EU-MIEUM 0xBE1D # HANGUL SYLLABLE PIEUP-EU-PIEUP 0xBE1F # HANGUL SYLLABLE PIEUP-EU-SIOS 0xBE44 # HANGUL SYLLABLE PIEUP-I 0xBE45 # HANGUL SYLLABLE PIEUP-I-KIYEOK 0xBE48 # HANGUL SYLLABLE PIEUP-I-NIEUN 0xBE4C # HANGUL SYLLABLE PIEUP-I-RIEUL 0xBE4E # HANGUL SYLLABLE PIEUP-I-RIEULMIEUM 0xBE54 # HANGUL SYLLABLE PIEUP-I-MIEUM 0xBE55 # HANGUL SYLLABLE PIEUP-I-PIEUP 0xBE57 # HANGUL SYLLABLE PIEUP-I-SIOS 0xBE59 # HANGUL SYLLABLE PIEUP-I-IEUNG 0xBE5A # HANGUL SYLLABLE PIEUP-I-CIEUC 0xBE5B # HANGUL SYLLABLE PIEUP-I-CHIEUCH 0xBE60 # HANGUL SYLLABLE SSANGPIEUP-A 0xBE61 # HANGUL SYLLABLE SSANGPIEUP-A-KIYEOK 0xBE64 # HANGUL SYLLABLE SSANGPIEUP-A-NIEUN 0xBE68 # HANGUL SYLLABLE SSANGPIEUP-A-RIEUL 0xBE6A # HANGUL SYLLABLE SSANGPIEUP-A-RIEULMIEUM 0xBE70 # HANGUL SYLLABLE SSANGPIEUP-A-MIEUM 0xBE71 # HANGUL SYLLABLE SSANGPIEUP-A-PIEUP 0xBE73 # HANGUL SYLLABLE SSANGPIEUP-A-SIOS 0xBE74 # HANGUL SYLLABLE SSANGPIEUP-A-SSANGSIOS 0xBE75 # HANGUL SYLLABLE SSANGPIEUP-A-IEUNG 0xBE7B # HANGUL SYLLABLE SSANGPIEUP-A-HIEUH 0xBE7C # HANGUL SYLLABLE SSANGPIEUP-AE 0xBE7D # HANGUL SYLLABLE SSANGPIEUP-AE-KIYEOK 0xBE80 # HANGUL SYLLABLE SSANGPIEUP-AE-NIEUN 0xBE84 # HANGUL SYLLABLE SSANGPIEUP-AE-RIEUL 0xBE8C # HANGUL SYLLABLE SSANGPIEUP-AE-MIEUM 0xBE8D # HANGUL SYLLABLE SSANGPIEUP-AE-PIEUP 0xBE8F # HANGUL SYLLABLE SSANGPIEUP-AE-SIOS 0xBE90 # HANGUL SYLLABLE SSANGPIEUP-AE-SSANGSIOS 0xBE91 # HANGUL SYLLABLE SSANGPIEUP-AE-IEUNG 0xBE98 # HANGUL SYLLABLE SSANGPIEUP-YA 0xBE99 # HANGUL SYLLABLE SSANGPIEUP-YA-KIYEOK 0xBEA8 # HANGUL SYLLABLE SSANGPIEUP-YA-MIEUM 0xBED0 # HANGUL SYLLABLE SSANGPIEUP-EO 0xBED1 # HANGUL SYLLABLE SSANGPIEUP-EO-KIYEOK 0xBED4 # HANGUL SYLLABLE SSANGPIEUP-EO-NIEUN 0xBED7 # HANGUL SYLLABLE SSANGPIEUP-EO-TIKEUT 0xBED8 # HANGUL SYLLABLE SSANGPIEUP-EO-RIEUL 0xBEE0 # HANGUL SYLLABLE SSANGPIEUP-EO-MIEUM 0xBEE3 # HANGUL SYLLABLE SSANGPIEUP-EO-SIOS 0xBEE4 # HANGUL SYLLABLE SSANGPIEUP-EO-SSANGSIOS 0xBEE5 # HANGUL SYLLABLE SSANGPIEUP-EO-IEUNG 0xBEEC # HANGUL SYLLABLE SSANGPIEUP-E 0xBF01 # HANGUL SYLLABLE SSANGPIEUP-E-IEUNG 0xBF08 # HANGUL SYLLABLE SSANGPIEUP-YEO 0xBF09 # HANGUL SYLLABLE SSANGPIEUP-YEO-KIYEOK 0xBF18 # HANGUL SYLLABLE SSANGPIEUP-YEO-MIEUM 0xBF19 # HANGUL SYLLABLE SSANGPIEUP-YEO-PIEUP 0xBF1B # HANGUL SYLLABLE SSANGPIEUP-YEO-SIOS 0xBF1C # HANGUL SYLLABLE SSANGPIEUP-YEO-SSANGSIOS 0xBF1D # HANGUL SYLLABLE SSANGPIEUP-YEO-IEUNG 0xBF40 # HANGUL SYLLABLE SSANGPIEUP-O 0xBF41 # HANGUL SYLLABLE SSANGPIEUP-O-KIYEOK 0xBF44 # HANGUL SYLLABLE SSANGPIEUP-O-NIEUN 0xBF48 # HANGUL SYLLABLE SSANGPIEUP-O-RIEUL 0xBF50 # HANGUL SYLLABLE SSANGPIEUP-O-MIEUM 0xBF51 # HANGUL SYLLABLE SSANGPIEUP-O-PIEUP 0xBF55 # HANGUL SYLLABLE SSANGPIEUP-O-IEUNG 0xBF94 # HANGUL SYLLABLE SSANGPIEUP-OE 0xBFB0 # HANGUL SYLLABLE SSANGPIEUP-YO 0xBFC5 # HANGUL SYLLABLE SSANGPIEUP-YO-IEUNG 0xBFCC # HANGUL SYLLABLE SSANGPIEUP-U 0xBFCD # HANGUL SYLLABLE SSANGPIEUP-U-KIYEOK 0xBFD0 # HANGUL SYLLABLE SSANGPIEUP-U-NIEUN 0xBFD4 # HANGUL SYLLABLE SSANGPIEUP-U-RIEUL 0xBFDC # HANGUL SYLLABLE SSANGPIEUP-U-MIEUM 0xBFDF # HANGUL SYLLABLE SSANGPIEUP-U-SIOS 0xBFE1 # HANGUL SYLLABLE SSANGPIEUP-U-IEUNG 0xC03C # HANGUL SYLLABLE SSANGPIEUP-YU 0xC051 # HANGUL SYLLABLE SSANGPIEUP-YU-IEUNG 0xC058 # HANGUL SYLLABLE SSANGPIEUP-EU 0xC05C # HANGUL SYLLABLE SSANGPIEUP-EU-NIEUN 0xC060 # HANGUL SYLLABLE SSANGPIEUP-EU-RIEUL 0xC068 # HANGUL SYLLABLE SSANGPIEUP-EU-MIEUM 0xC069 # HANGUL SYLLABLE SSANGPIEUP-EU-PIEUP 0xC090 # HANGUL SYLLABLE SSANGPIEUP-I 0xC091 # HANGUL SYLLABLE SSANGPIEUP-I-KIYEOK 0xC094 # HANGUL SYLLABLE SSANGPIEUP-I-NIEUN 0xC098 # HANGUL SYLLABLE SSANGPIEUP-I-RIEUL 0xC0A0 # HANGUL SYLLABLE SSANGPIEUP-I-MIEUM 0xC0A1 # HANGUL SYLLABLE SSANGPIEUP-I-PIEUP 0xC0A3 # HANGUL SYLLABLE SSANGPIEUP-I-SIOS 0xC0A5 # HANGUL SYLLABLE SSANGPIEUP-I-IEUNG 0xC0AC # HANGUL SYLLABLE SIOS-A 0xC0AD # HANGUL SYLLABLE SIOS-A-KIYEOK 0xC0AF # HANGUL SYLLABLE SIOS-A-KIYEOKSIOS 0xC0B0 # HANGUL SYLLABLE SIOS-A-NIEUN 0xC0B3 # HANGUL SYLLABLE SIOS-A-TIKEUT 0xC0B4 # HANGUL SYLLABLE SIOS-A-RIEUL 0xC0B5 # HANGUL SYLLABLE SIOS-A-RIEULKIYEOK 0xC0B6 # HANGUL SYLLABLE SIOS-A-RIEULMIEUM 0xC0BC # HANGUL SYLLABLE SIOS-A-MIEUM 0xC0BD # HANGUL SYLLABLE SIOS-A-PIEUP 0xC0BF # HANGUL SYLLABLE SIOS-A-SIOS 0xC0C0 # HANGUL SYLLABLE SIOS-A-SSANGSIOS 0xC0C1 # HANGUL SYLLABLE SIOS-A-IEUNG 0xC0C5 # HANGUL SYLLABLE SIOS-A-THIEUTH 0xC0C8 # HANGUL SYLLABLE SIOS-AE 0xC0C9 # HANGUL SYLLABLE SIOS-AE-KIYEOK 0xC0CC # HANGUL SYLLABLE SIOS-AE-NIEUN 0xC0D0 # HANGUL SYLLABLE SIOS-AE-RIEUL 0xC0D8 # HANGUL SYLLABLE SIOS-AE-MIEUM 0xC0D9 # HANGUL SYLLABLE SIOS-AE-PIEUP 0xC0DB # HANGUL SYLLABLE SIOS-AE-SIOS 0xC0DC # HANGUL SYLLABLE SIOS-AE-SSANGSIOS 0xC0DD # HANGUL SYLLABLE SIOS-AE-IEUNG 0xC0E4 # HANGUL SYLLABLE SIOS-YA 0xC0E5 # HANGUL SYLLABLE SIOS-YA-KIYEOK 0xC0E8 # HANGUL SYLLABLE SIOS-YA-NIEUN 0xC0EC # HANGUL SYLLABLE SIOS-YA-RIEUL 0xC0F4 # HANGUL SYLLABLE SIOS-YA-MIEUM 0xC0F5 # HANGUL SYLLABLE SIOS-YA-PIEUP 0xC0F7 # HANGUL SYLLABLE SIOS-YA-SIOS 0xC0F9 # HANGUL SYLLABLE SIOS-YA-IEUNG 0xC100 # HANGUL SYLLABLE SIOS-YAE 0xC104 # HANGUL SYLLABLE SIOS-YAE-NIEUN 0xC108 # HANGUL SYLLABLE SIOS-YAE-RIEUL 0xC110 # HANGUL SYLLABLE SIOS-YAE-MIEUM 0xC115 # HANGUL SYLLABLE SIOS-YAE-IEUNG 0xC11C # HANGUL SYLLABLE SIOS-EO 0xC11D # HANGUL SYLLABLE SIOS-EO-KIYEOK 0xC11E # HANGUL SYLLABLE SIOS-EO-SSANGKIYEOK 0xC11F # HANGUL SYLLABLE SIOS-EO-KIYEOKSIOS 0xC120 # HANGUL SYLLABLE SIOS-EO-NIEUN 0xC123 # HANGUL SYLLABLE SIOS-EO-TIKEUT 0xC124 # HANGUL SYLLABLE SIOS-EO-RIEUL 0xC126 # HANGUL SYLLABLE SIOS-EO-RIEULMIEUM 0xC127 # HANGUL SYLLABLE SIOS-EO-RIEULPIEUP 0xC12C # HANGUL SYLLABLE SIOS-EO-MIEUM 0xC12D # HANGUL SYLLABLE SIOS-EO-PIEUP 0xC12F # HANGUL SYLLABLE SIOS-EO-SIOS 0xC130 # HANGUL SYLLABLE SIOS-EO-SSANGSIOS 0xC131 # HANGUL SYLLABLE SIOS-EO-IEUNG 0xC136 # HANGUL SYLLABLE SIOS-EO-PHIEUPH 0xC138 # HANGUL SYLLABLE SIOS-E 0xC139 # HANGUL SYLLABLE SIOS-E-KIYEOK 0xC13C # HANGUL SYLLABLE SIOS-E-NIEUN 0xC140 # HANGUL SYLLABLE SIOS-E-RIEUL 0xC148 # HANGUL SYLLABLE SIOS-E-MIEUM 0xC149 # HANGUL SYLLABLE SIOS-E-PIEUP 0xC14B # HANGUL SYLLABLE SIOS-E-SIOS 0xC14C # HANGUL SYLLABLE SIOS-E-SSANGSIOS 0xC14D # HANGUL SYLLABLE SIOS-E-IEUNG 0xC154 # HANGUL SYLLABLE SIOS-YEO 0xC155 # HANGUL SYLLABLE SIOS-YEO-KIYEOK 0xC158 # HANGUL SYLLABLE SIOS-YEO-NIEUN 0xC15C # HANGUL SYLLABLE SIOS-YEO-RIEUL 0xC164 # HANGUL SYLLABLE SIOS-YEO-MIEUM 0xC165 # HANGUL SYLLABLE SIOS-YEO-PIEUP 0xC167 # HANGUL SYLLABLE SIOS-YEO-SIOS 0xC168 # HANGUL SYLLABLE SIOS-YEO-SSANGSIOS 0xC169 # HANGUL SYLLABLE SIOS-YEO-IEUNG 0xC170 # HANGUL SYLLABLE SIOS-YE 0xC174 # HANGUL SYLLABLE SIOS-YE-NIEUN 0xC178 # HANGUL SYLLABLE SIOS-YE-RIEUL 0xC185 # HANGUL SYLLABLE SIOS-YE-IEUNG 0xC18C # HANGUL SYLLABLE SIOS-O 0xC18D # HANGUL SYLLABLE SIOS-O-KIYEOK 0xC18E # HANGUL SYLLABLE SIOS-O-SSANGKIYEOK 0xC190 # HANGUL SYLLABLE SIOS-O-NIEUN 0xC194 # HANGUL SYLLABLE SIOS-O-RIEUL 0xC196 # HANGUL SYLLABLE SIOS-O-RIEULMIEUM 0xC19C # HANGUL SYLLABLE SIOS-O-MIEUM 0xC19D # HANGUL SYLLABLE SIOS-O-PIEUP 0xC19F # HANGUL SYLLABLE SIOS-O-SIOS 0xC1A1 # HANGUL SYLLABLE SIOS-O-IEUNG 0xC1A5 # HANGUL SYLLABLE SIOS-O-THIEUTH 0xC1A8 # HANGUL SYLLABLE SIOS-WA 0xC1A9 # HANGUL SYLLABLE SIOS-WA-KIYEOK 0xC1AC # HANGUL SYLLABLE SIOS-WA-NIEUN 0xC1B0 # HANGUL SYLLABLE SIOS-WA-RIEUL 0xC1BD # HANGUL SYLLABLE SIOS-WA-IEUNG 0xC1C4 # HANGUL SYLLABLE SIOS-WAE 0xC1C8 # HANGUL SYLLABLE SIOS-WAE-NIEUN 0xC1CC # HANGUL SYLLABLE SIOS-WAE-RIEUL 0xC1D4 # HANGUL SYLLABLE SIOS-WAE-MIEUM 0xC1D7 # HANGUL SYLLABLE SIOS-WAE-SIOS 0xC1D8 # HANGUL SYLLABLE SIOS-WAE-SSANGSIOS 0xC1E0 # HANGUL SYLLABLE SIOS-OE 0xC1E4 # HANGUL SYLLABLE SIOS-OE-NIEUN 0xC1E8 # HANGUL SYLLABLE SIOS-OE-RIEUL 0xC1F0 # HANGUL SYLLABLE SIOS-OE-MIEUM 0xC1F1 # HANGUL SYLLABLE SIOS-OE-PIEUP 0xC1F3 # HANGUL SYLLABLE SIOS-OE-SIOS 0xC1FC # HANGUL SYLLABLE SIOS-YO 0xC1FD # HANGUL SYLLABLE SIOS-YO-KIYEOK 0xC200 # HANGUL SYLLABLE SIOS-YO-NIEUN 0xC204 # HANGUL SYLLABLE SIOS-YO-RIEUL 0xC20C # HANGUL SYLLABLE SIOS-YO-MIEUM 0xC20D # HANGUL SYLLABLE SIOS-YO-PIEUP 0xC20F # HANGUL SYLLABLE SIOS-YO-SIOS 0xC211 # HANGUL SYLLABLE SIOS-YO-IEUNG 0xC218 # HANGUL SYLLABLE SIOS-U 0xC219 # HANGUL SYLLABLE SIOS-U-KIYEOK 0xC21C # HANGUL SYLLABLE SIOS-U-NIEUN 0xC21F # HANGUL SYLLABLE SIOS-U-TIKEUT 0xC220 # HANGUL SYLLABLE SIOS-U-RIEUL 0xC228 # HANGUL SYLLABLE SIOS-U-MIEUM 0xC229 # HANGUL SYLLABLE SIOS-U-PIEUP 0xC22B # HANGUL SYLLABLE SIOS-U-SIOS 0xC22D # HANGUL SYLLABLE SIOS-U-IEUNG 0xC22F # HANGUL SYLLABLE SIOS-U-CHIEUCH 0xC231 # HANGUL SYLLABLE SIOS-U-THIEUTH 0xC232 # HANGUL SYLLABLE SIOS-U-PHIEUPH 0xC234 # HANGUL SYLLABLE SIOS-WEO 0xC248 # HANGUL SYLLABLE SIOS-WEO-SSANGSIOS 0xC250 # HANGUL SYLLABLE SIOS-WE 0xC251 # HANGUL SYLLABLE SIOS-WE-KIYEOK 0xC254 # HANGUL SYLLABLE SIOS-WE-NIEUN 0xC258 # HANGUL SYLLABLE SIOS-WE-RIEUL 0xC260 # HANGUL SYLLABLE SIOS-WE-MIEUM 0xC265 # HANGUL SYLLABLE SIOS-WE-IEUNG 0xC26C # HANGUL SYLLABLE SIOS-WI 0xC26D # HANGUL SYLLABLE SIOS-WI-KIYEOK 0xC270 # HANGUL SYLLABLE SIOS-WI-NIEUN 0xC274 # HANGUL SYLLABLE SIOS-WI-RIEUL 0xC27C # HANGUL SYLLABLE SIOS-WI-MIEUM 0xC27D # HANGUL SYLLABLE SIOS-WI-PIEUP 0xC27F # HANGUL SYLLABLE SIOS-WI-SIOS 0xC281 # HANGUL SYLLABLE SIOS-WI-IEUNG 0xC288 # HANGUL SYLLABLE SIOS-YU 0xC289 # HANGUL SYLLABLE SIOS-YU-KIYEOK 0xC290 # HANGUL SYLLABLE SIOS-YU-RIEUL 0xC298 # HANGUL SYLLABLE SIOS-YU-MIEUM 0xC29B # HANGUL SYLLABLE SIOS-YU-SIOS 0xC29D # HANGUL SYLLABLE SIOS-YU-IEUNG 0xC2A4 # HANGUL SYLLABLE SIOS-EU 0xC2A5 # HANGUL SYLLABLE SIOS-EU-KIYEOK 0xC2A8 # HANGUL SYLLABLE SIOS-EU-NIEUN 0xC2AC # HANGUL SYLLABLE SIOS-EU-RIEUL 0xC2AD # HANGUL SYLLABLE SIOS-EU-RIEULKIYEOK 0xC2B4 # HANGUL SYLLABLE SIOS-EU-MIEUM 0xC2B5 # HANGUL SYLLABLE SIOS-EU-PIEUP 0xC2B7 # HANGUL SYLLABLE SIOS-EU-SIOS 0xC2B9 # HANGUL SYLLABLE SIOS-EU-IEUNG 0xC2DC # HANGUL SYLLABLE SIOS-I 0xC2DD # HANGUL SYLLABLE SIOS-I-KIYEOK 0xC2E0 # HANGUL SYLLABLE SIOS-I-NIEUN 0xC2E3 # HANGUL SYLLABLE SIOS-I-TIKEUT 0xC2E4 # HANGUL SYLLABLE SIOS-I-RIEUL 0xC2EB # HANGUL SYLLABLE SIOS-I-RIEULHIEUH 0xC2EC # HANGUL SYLLABLE SIOS-I-MIEUM 0xC2ED # HANGUL SYLLABLE SIOS-I-PIEUP 0xC2EF # HANGUL SYLLABLE SIOS-I-SIOS 0xC2F1 # HANGUL SYLLABLE SIOS-I-IEUNG 0xC2F6 # HANGUL SYLLABLE SIOS-I-PHIEUPH 0xC2F8 # HANGUL SYLLABLE SSANGSIOS-A 0xC2F9 # HANGUL SYLLABLE SSANGSIOS-A-KIYEOK 0xC2FB # HANGUL SYLLABLE SSANGSIOS-A-KIYEOKSIOS 0xC2FC # HANGUL SYLLABLE SSANGSIOS-A-NIEUN 0xC300 # HANGUL SYLLABLE SSANGSIOS-A-RIEUL 0xC308 # HANGUL SYLLABLE SSANGSIOS-A-MIEUM 0xC309 # HANGUL SYLLABLE SSANGSIOS-A-PIEUP 0xC30C # HANGUL SYLLABLE SSANGSIOS-A-SSANGSIOS 0xC30D # HANGUL SYLLABLE SSANGSIOS-A-IEUNG 0xC313 # HANGUL SYLLABLE SSANGSIOS-A-HIEUH 0xC314 # HANGUL SYLLABLE SSANGSIOS-AE 0xC315 # HANGUL SYLLABLE SSANGSIOS-AE-KIYEOK 0xC318 # HANGUL SYLLABLE SSANGSIOS-AE-NIEUN 0xC31C # HANGUL SYLLABLE SSANGSIOS-AE-RIEUL 0xC324 # HANGUL SYLLABLE SSANGSIOS-AE-MIEUM 0xC325 # HANGUL SYLLABLE SSANGSIOS-AE-PIEUP 0xC328 # HANGUL SYLLABLE SSANGSIOS-AE-SSANGSIOS 0xC329 # HANGUL SYLLABLE SSANGSIOS-AE-IEUNG 0xC345 # HANGUL SYLLABLE SSANGSIOS-YA-IEUNG 0xC368 # HANGUL SYLLABLE SSANGSIOS-EO 0xC369 # HANGUL SYLLABLE SSANGSIOS-EO-KIYEOK 0xC36C # HANGUL SYLLABLE SSANGSIOS-EO-NIEUN 0xC370 # HANGUL SYLLABLE SSANGSIOS-EO-RIEUL 0xC372 # HANGUL SYLLABLE SSANGSIOS-EO-RIEULMIEUM 0xC378 # HANGUL SYLLABLE SSANGSIOS-EO-MIEUM 0xC379 # HANGUL SYLLABLE SSANGSIOS-EO-PIEUP 0xC37C # HANGUL SYLLABLE SSANGSIOS-EO-SSANGSIOS 0xC37D # HANGUL SYLLABLE SSANGSIOS-EO-IEUNG 0xC384 # HANGUL SYLLABLE SSANGSIOS-E 0xC388 # HANGUL SYLLABLE SSANGSIOS-E-NIEUN 0xC38C # HANGUL SYLLABLE SSANGSIOS-E-RIEUL # 0xC3C0 # HANGUL SYLLABLE SSANGSIOS-YE-NIEUN # (dotum.ttf, hline.ttf) 0xC3D8 # HANGUL SYLLABLE SSANGSIOS-O 0xC3D9 # HANGUL SYLLABLE SSANGSIOS-O-KIYEOK 0xC3DC # HANGUL SYLLABLE SSANGSIOS-O-NIEUN 0xC3DF # HANGUL SYLLABLE SSANGSIOS-O-TIKEUT 0xC3E0 # HANGUL SYLLABLE SSANGSIOS-O-RIEUL 0xC3E2 # HANGUL SYLLABLE SSANGSIOS-O-RIEULMIEUM 0xC3E8 # HANGUL SYLLABLE SSANGSIOS-O-MIEUM 0xC3E9 # HANGUL SYLLABLE SSANGSIOS-O-PIEUP 0xC3ED # HANGUL SYLLABLE SSANGSIOS-O-IEUNG 0xC3F4 # HANGUL SYLLABLE SSANGSIOS-WA 0xC3F5 # HANGUL SYLLABLE SSANGSIOS-WA-KIYEOK 0xC3F8 # HANGUL SYLLABLE SSANGSIOS-WA-NIEUN 0xC408 # HANGUL SYLLABLE SSANGSIOS-WA-SSANGSIOS 0xC410 # HANGUL SYLLABLE SSANGSIOS-WAE 0xC424 # HANGUL SYLLABLE SSANGSIOS-WAE-SSANGSIOS 0xC42C # HANGUL SYLLABLE SSANGSIOS-OE 0xC430 # HANGUL SYLLABLE SSANGSIOS-OE-NIEUN 0xC434 # HANGUL SYLLABLE SSANGSIOS-OE-RIEUL 0xC43C # HANGUL SYLLABLE SSANGSIOS-OE-MIEUM 0xC43D # HANGUL SYLLABLE SSANGSIOS-OE-PIEUP 0xC448 # HANGUL SYLLABLE SSANGSIOS-YO 0xC464 # HANGUL SYLLABLE SSANGSIOS-U 0xC465 # HANGUL SYLLABLE SSANGSIOS-U-KIYEOK 0xC468 # HANGUL SYLLABLE SSANGSIOS-U-NIEUN 0xC46C # HANGUL SYLLABLE SSANGSIOS-U-RIEUL 0xC474 # HANGUL SYLLABLE SSANGSIOS-U-MIEUM 0xC475 # HANGUL SYLLABLE SSANGSIOS-U-PIEUP 0xC479 # HANGUL SYLLABLE SSANGSIOS-U-IEUNG 0xC480 # HANGUL SYLLABLE SSANGSIOS-WEO 0xC494 # HANGUL SYLLABLE SSANGSIOS-WEO-SSANGSIOS 0xC49C # HANGUL SYLLABLE SSANGSIOS-WE 0xC4B8 # HANGUL SYLLABLE SSANGSIOS-WI 0xC4BC # HANGUL SYLLABLE SSANGSIOS-WI-NIEUN 0xC4E9 # HANGUL SYLLABLE SSANGSIOS-YU-IEUNG 0xC4F0 # HANGUL SYLLABLE SSANGSIOS-EU 0xC4F1 # HANGUL SYLLABLE SSANGSIOS-EU-KIYEOK 0xC4F4 # HANGUL SYLLABLE SSANGSIOS-EU-NIEUN 0xC4F8 # HANGUL SYLLABLE SSANGSIOS-EU-RIEUL 0xC4FA # HANGUL SYLLABLE SSANGSIOS-EU-RIEULMIEUM 0xC4FF # HANGUL SYLLABLE SSANGSIOS-EU-RIEULHIEUH 0xC500 # HANGUL SYLLABLE SSANGSIOS-EU-MIEUM 0xC501 # HANGUL SYLLABLE SSANGSIOS-EU-PIEUP 0xC50C # HANGUL SYLLABLE SSANGSIOS-YI 0xC510 # HANGUL SYLLABLE SSANGSIOS-YI-NIEUN 0xC514 # HANGUL SYLLABLE SSANGSIOS-YI-RIEUL 0xC51C # HANGUL SYLLABLE SSANGSIOS-YI-MIEUM 0xC528 # HANGUL SYLLABLE SSANGSIOS-I 0xC529 # HANGUL SYLLABLE SSANGSIOS-I-KIYEOK 0xC52C # HANGUL SYLLABLE SSANGSIOS-I-NIEUN 0xC530 # HANGUL SYLLABLE SSANGSIOS-I-RIEUL 0xC538 # HANGUL SYLLABLE SSANGSIOS-I-MIEUM 0xC539 # HANGUL SYLLABLE SSANGSIOS-I-PIEUP 0xC53B # HANGUL SYLLABLE SSANGSIOS-I-SIOS 0xC53D # HANGUL SYLLABLE SSANGSIOS-I-IEUNG 0xC544 # HANGUL SYLLABLE IEUNG-A 0xC545 # HANGUL SYLLABLE IEUNG-A-KIYEOK 0xC548 # HANGUL SYLLABLE IEUNG-A-NIEUN 0xC549 # HANGUL SYLLABLE IEUNG-A-NIEUNCIEUC 0xC54A # HANGUL SYLLABLE IEUNG-A-NIEUNHIEUH 0xC54C # HANGUL SYLLABLE IEUNG-A-RIEUL 0xC54D # HANGUL SYLLABLE IEUNG-A-RIEULKIYEOK 0xC54E # HANGUL SYLLABLE IEUNG-A-RIEULMIEUM 0xC553 # HANGUL SYLLABLE IEUNG-A-RIEULHIEUH 0xC554 # HANGUL SYLLABLE IEUNG-A-MIEUM 0xC555 # HANGUL SYLLABLE IEUNG-A-PIEUP 0xC557 # HANGUL SYLLABLE IEUNG-A-SIOS 0xC558 # HANGUL SYLLABLE IEUNG-A-SSANGSIOS 0xC559 # HANGUL SYLLABLE IEUNG-A-IEUNG 0xC55D # HANGUL SYLLABLE IEUNG-A-THIEUTH 0xC55E # HANGUL SYLLABLE IEUNG-A-PHIEUPH 0xC560 # HANGUL SYLLABLE IEUNG-AE 0xC561 # HANGUL SYLLABLE IEUNG-AE-KIYEOK 0xC564 # HANGUL SYLLABLE IEUNG-AE-NIEUN 0xC568 # HANGUL SYLLABLE IEUNG-AE-RIEUL 0xC570 # HANGUL SYLLABLE IEUNG-AE-MIEUM 0xC571 # HANGUL SYLLABLE IEUNG-AE-PIEUP 0xC573 # HANGUL SYLLABLE IEUNG-AE-SIOS 0xC574 # HANGUL SYLLABLE IEUNG-AE-SSANGSIOS 0xC575 # HANGUL SYLLABLE IEUNG-AE-IEUNG 0xC57C # HANGUL SYLLABLE IEUNG-YA 0xC57D # HANGUL SYLLABLE IEUNG-YA-KIYEOK 0xC580 # HANGUL SYLLABLE IEUNG-YA-NIEUN 0xC584 # HANGUL SYLLABLE IEUNG-YA-RIEUL 0xC587 # HANGUL SYLLABLE IEUNG-YA-RIEULPIEUP 0xC58C # HANGUL SYLLABLE IEUNG-YA-MIEUM 0xC58D # HANGUL SYLLABLE IEUNG-YA-PIEUP 0xC58F # HANGUL SYLLABLE IEUNG-YA-SIOS 0xC591 # HANGUL SYLLABLE IEUNG-YA-IEUNG 0xC595 # HANGUL SYLLABLE IEUNG-YA-THIEUTH 0xC597 # HANGUL SYLLABLE IEUNG-YA-HIEUH 0xC598 # HANGUL SYLLABLE IEUNG-YAE 0xC59C # HANGUL SYLLABLE IEUNG-YAE-NIEUN 0xC5A0 # HANGUL SYLLABLE IEUNG-YAE-RIEUL 0xC5A9 # HANGUL SYLLABLE IEUNG-YAE-PIEUP 0xC5B4 # HANGUL SYLLABLE IEUNG-EO 0xC5B5 # HANGUL SYLLABLE IEUNG-EO-KIYEOK 0xC5B8 # HANGUL SYLLABLE IEUNG-EO-NIEUN 0xC5B9 # HANGUL SYLLABLE IEUNG-EO-NIEUNCIEUC 0xC5BB # HANGUL SYLLABLE IEUNG-EO-TIKEUT 0xC5BC # HANGUL SYLLABLE IEUNG-EO-RIEUL 0xC5BD # HANGUL SYLLABLE IEUNG-EO-RIEULKIYEOK 0xC5BE # HANGUL SYLLABLE IEUNG-EO-RIEULMIEUM 0xC5C4 # HANGUL SYLLABLE IEUNG-EO-MIEUM 0xC5C5 # HANGUL SYLLABLE IEUNG-EO-PIEUP 0xC5C6 # HANGUL SYLLABLE IEUNG-EO-PIEUPSIOS 0xC5C7 # HANGUL SYLLABLE IEUNG-EO-SIOS 0xC5C8 # HANGUL SYLLABLE IEUNG-EO-SSANGSIOS 0xC5C9 # HANGUL SYLLABLE IEUNG-EO-IEUNG 0xC5CA # HANGUL SYLLABLE IEUNG-EO-CIEUC 0xC5CC # HANGUL SYLLABLE IEUNG-EO-KHIEUKH 0xC5CE # HANGUL SYLLABLE IEUNG-EO-PHIEUPH 0xC5D0 # HANGUL SYLLABLE IEUNG-E 0xC5D1 # HANGUL SYLLABLE IEUNG-E-KIYEOK 0xC5D4 # HANGUL SYLLABLE IEUNG-E-NIEUN 0xC5D8 # HANGUL SYLLABLE IEUNG-E-RIEUL 0xC5E0 # HANGUL SYLLABLE IEUNG-E-MIEUM 0xC5E1 # HANGUL SYLLABLE IEUNG-E-PIEUP 0xC5E3 # HANGUL SYLLABLE IEUNG-E-SIOS 0xC5E5 # HANGUL SYLLABLE IEUNG-E-IEUNG 0xC5EC # HANGUL SYLLABLE IEUNG-YEO 0xC5ED # HANGUL SYLLABLE IEUNG-YEO-KIYEOK 0xC5EE # HANGUL SYLLABLE IEUNG-YEO-SSANGKIYEOK 0xC5F0 # HANGUL SYLLABLE IEUNG-YEO-NIEUN 0xC5F4 # HANGUL SYLLABLE IEUNG-YEO-RIEUL 0xC5F6 # HANGUL SYLLABLE IEUNG-YEO-RIEULMIEUM 0xC5F7 # HANGUL SYLLABLE IEUNG-YEO-RIEULPIEUP 0xC5FC # HANGUL SYLLABLE IEUNG-YEO-MIEUM 0xC5FD # HANGUL SYLLABLE IEUNG-YEO-PIEUP 0xC5FE # HANGUL SYLLABLE IEUNG-YEO-PIEUPSIOS 0xC5FF # HANGUL SYLLABLE IEUNG-YEO-SIOS 0xC600 # HANGUL SYLLABLE IEUNG-YEO-SSANGSIOS 0xC601 # HANGUL SYLLABLE IEUNG-YEO-IEUNG 0xC605 # HANGUL SYLLABLE IEUNG-YEO-THIEUTH 0xC606 # HANGUL SYLLABLE IEUNG-YEO-PHIEUPH 0xC607 # HANGUL SYLLABLE IEUNG-YEO-HIEUH 0xC608 # HANGUL SYLLABLE IEUNG-YE 0xC60C # HANGUL SYLLABLE IEUNG-YE-NIEUN 0xC610 # HANGUL SYLLABLE IEUNG-YE-RIEUL 0xC618 # HANGUL SYLLABLE IEUNG-YE-MIEUM 0xC619 # HANGUL SYLLABLE IEUNG-YE-PIEUP 0xC61B # HANGUL SYLLABLE IEUNG-YE-SIOS 0xC61C # HANGUL SYLLABLE IEUNG-YE-SSANGSIOS 0xC624 # HANGUL SYLLABLE IEUNG-O 0xC625 # HANGUL SYLLABLE IEUNG-O-KIYEOK 0xC628 # HANGUL SYLLABLE IEUNG-O-NIEUN 0xC62C # HANGUL SYLLABLE IEUNG-O-RIEUL 0xC62D # HANGUL SYLLABLE IEUNG-O-RIEULKIYEOK 0xC62E # HANGUL SYLLABLE IEUNG-O-RIEULMIEUM 0xC630 # HANGUL SYLLABLE IEUNG-O-RIEULSIOS 0xC633 # HANGUL SYLLABLE IEUNG-O-RIEULHIEUH 0xC634 # HANGUL SYLLABLE IEUNG-O-MIEUM 0xC635 # HANGUL SYLLABLE IEUNG-O-PIEUP 0xC637 # HANGUL SYLLABLE IEUNG-O-SIOS 0xC639 # HANGUL SYLLABLE IEUNG-O-IEUNG 0xC63B # HANGUL SYLLABLE IEUNG-O-CHIEUCH 0xC640 # HANGUL SYLLABLE IEUNG-WA 0xC641 # HANGUL SYLLABLE IEUNG-WA-KIYEOK 0xC644 # HANGUL SYLLABLE IEUNG-WA-NIEUN 0xC648 # HANGUL SYLLABLE IEUNG-WA-RIEUL 0xC650 # HANGUL SYLLABLE IEUNG-WA-MIEUM 0xC651 # HANGUL SYLLABLE IEUNG-WA-PIEUP 0xC653 # HANGUL SYLLABLE IEUNG-WA-SIOS 0xC654 # HANGUL SYLLABLE IEUNG-WA-SSANGSIOS 0xC655 # HANGUL SYLLABLE IEUNG-WA-IEUNG 0xC65C # HANGUL SYLLABLE IEUNG-WAE 0xC65D # HANGUL SYLLABLE IEUNG-WAE-KIYEOK 0xC660 # HANGUL SYLLABLE IEUNG-WAE-NIEUN 0xC66C # HANGUL SYLLABLE IEUNG-WAE-MIEUM 0xC66F # HANGUL SYLLABLE IEUNG-WAE-SIOS 0xC671 # HANGUL SYLLABLE IEUNG-WAE-IEUNG 0xC678 # HANGUL SYLLABLE IEUNG-OE 0xC679 # HANGUL SYLLABLE IEUNG-OE-KIYEOK 0xC67C # HANGUL SYLLABLE IEUNG-OE-NIEUN 0xC680 # HANGUL SYLLABLE IEUNG-OE-RIEUL 0xC688 # HANGUL SYLLABLE IEUNG-OE-MIEUM 0xC689 # HANGUL SYLLABLE IEUNG-OE-PIEUP 0xC68B # HANGUL SYLLABLE IEUNG-OE-SIOS 0xC68D # HANGUL SYLLABLE IEUNG-OE-IEUNG 0xC694 # HANGUL SYLLABLE IEUNG-YO 0xC695 # HANGUL SYLLABLE IEUNG-YO-KIYEOK 0xC698 # HANGUL SYLLABLE IEUNG-YO-NIEUN 0xC69C # HANGUL SYLLABLE IEUNG-YO-RIEUL 0xC6A4 # HANGUL SYLLABLE IEUNG-YO-MIEUM 0xC6A5 # HANGUL SYLLABLE IEUNG-YO-PIEUP 0xC6A7 # HANGUL SYLLABLE IEUNG-YO-SIOS 0xC6A9 # HANGUL SYLLABLE IEUNG-YO-IEUNG 0xC6B0 # HANGUL SYLLABLE IEUNG-U 0xC6B1 # HANGUL SYLLABLE IEUNG-U-KIYEOK 0xC6B4 # HANGUL SYLLABLE IEUNG-U-NIEUN 0xC6B8 # HANGUL SYLLABLE IEUNG-U-RIEUL 0xC6B9 # HANGUL SYLLABLE IEUNG-U-RIEULKIYEOK 0xC6BA # HANGUL SYLLABLE IEUNG-U-RIEULMIEUM 0xC6C0 # HANGUL SYLLABLE IEUNG-U-MIEUM 0xC6C1 # HANGUL SYLLABLE IEUNG-U-PIEUP 0xC6C3 # HANGUL SYLLABLE IEUNG-U-SIOS 0xC6C5 # HANGUL SYLLABLE IEUNG-U-IEUNG 0xC6CC # HANGUL SYLLABLE IEUNG-WEO 0xC6CD # HANGUL SYLLABLE IEUNG-WEO-KIYEOK 0xC6D0 # HANGUL SYLLABLE IEUNG-WEO-NIEUN 0xC6D4 # HANGUL SYLLABLE IEUNG-WEO-RIEUL 0xC6DC # HANGUL SYLLABLE IEUNG-WEO-MIEUM 0xC6DD # HANGUL SYLLABLE IEUNG-WEO-PIEUP 0xC6E0 # HANGUL SYLLABLE IEUNG-WEO-SSANGSIOS 0xC6E1 # HANGUL SYLLABLE IEUNG-WEO-IEUNG 0xC6E8 # HANGUL SYLLABLE IEUNG-WE 0xC6E9 # HANGUL SYLLABLE IEUNG-WE-KIYEOK 0xC6EC # HANGUL SYLLABLE IEUNG-WE-NIEUN 0xC6F0 # HANGUL SYLLABLE IEUNG-WE-RIEUL 0xC6F8 # HANGUL SYLLABLE IEUNG-WE-MIEUM 0xC6F9 # HANGUL SYLLABLE IEUNG-WE-PIEUP 0xC6FD # HANGUL SYLLABLE IEUNG-WE-IEUNG 0xC704 # HANGUL SYLLABLE IEUNG-WI 0xC705 # HANGUL SYLLABLE IEUNG-WI-KIYEOK 0xC708 # HANGUL SYLLABLE IEUNG-WI-NIEUN 0xC70C # HANGUL SYLLABLE IEUNG-WI-RIEUL 0xC714 # HANGUL SYLLABLE IEUNG-WI-MIEUM 0xC715 # HANGUL SYLLABLE IEUNG-WI-PIEUP 0xC717 # HANGUL SYLLABLE IEUNG-WI-SIOS 0xC719 # HANGUL SYLLABLE IEUNG-WI-IEUNG 0xC720 # HANGUL SYLLABLE IEUNG-YU 0xC721 # HANGUL SYLLABLE IEUNG-YU-KIYEOK 0xC724 # HANGUL SYLLABLE IEUNG-YU-NIEUN 0xC728 # HANGUL SYLLABLE IEUNG-YU-RIEUL 0xC730 # HANGUL SYLLABLE IEUNG-YU-MIEUM 0xC731 # HANGUL SYLLABLE IEUNG-YU-PIEUP 0xC733 # HANGUL SYLLABLE IEUNG-YU-SIOS 0xC735 # HANGUL SYLLABLE IEUNG-YU-IEUNG 0xC737 # HANGUL SYLLABLE IEUNG-YU-CHIEUCH 0xC73C # HANGUL SYLLABLE IEUNG-EU 0xC73D # HANGUL SYLLABLE IEUNG-EU-KIYEOK 0xC740 # HANGUL SYLLABLE IEUNG-EU-NIEUN 0xC744 # HANGUL SYLLABLE IEUNG-EU-RIEUL 0xC74A # HANGUL SYLLABLE IEUNG-EU-RIEULPHIEUPH 0xC74C # HANGUL SYLLABLE IEUNG-EU-MIEUM 0xC74D # HANGUL SYLLABLE IEUNG-EU-PIEUP 0xC74F # HANGUL SYLLABLE IEUNG-EU-SIOS 0xC751 # HANGUL SYLLABLE IEUNG-EU-IEUNG 0xC752 # HANGUL SYLLABLE IEUNG-EU-CIEUC 0xC753 # HANGUL SYLLABLE IEUNG-EU-CHIEUCH 0xC754 # HANGUL SYLLABLE IEUNG-EU-KHIEUKH 0xC755 # HANGUL SYLLABLE IEUNG-EU-THIEUTH 0xC756 # HANGUL SYLLABLE IEUNG-EU-PHIEUPH 0xC757 # HANGUL SYLLABLE IEUNG-EU-HIEUH 0xC758 # HANGUL SYLLABLE IEUNG-YI 0xC75C # HANGUL SYLLABLE IEUNG-YI-NIEUN 0xC760 # HANGUL SYLLABLE IEUNG-YI-RIEUL 0xC768 # HANGUL SYLLABLE IEUNG-YI-MIEUM 0xC76B # HANGUL SYLLABLE IEUNG-YI-SIOS 0xC774 # HANGUL SYLLABLE IEUNG-I 0xC775 # HANGUL SYLLABLE IEUNG-I-KIYEOK 0xC778 # HANGUL SYLLABLE IEUNG-I-NIEUN 0xC77C # HANGUL SYLLABLE IEUNG-I-RIEUL 0xC77D # HANGUL SYLLABLE IEUNG-I-RIEULKIYEOK 0xC77E # HANGUL SYLLABLE IEUNG-I-RIEULMIEUM 0xC783 # HANGUL SYLLABLE IEUNG-I-RIEULHIEUH 0xC784 # HANGUL SYLLABLE IEUNG-I-MIEUM 0xC785 # HANGUL SYLLABLE IEUNG-I-PIEUP 0xC787 # HANGUL SYLLABLE IEUNG-I-SIOS 0xC788 # HANGUL SYLLABLE IEUNG-I-SSANGSIOS 0xC789 # HANGUL SYLLABLE IEUNG-I-IEUNG 0xC78A # HANGUL SYLLABLE IEUNG-I-CIEUC 0xC78E # HANGUL SYLLABLE IEUNG-I-PHIEUPH 0xC790 # HANGUL SYLLABLE CIEUC-A 0xC791 # HANGUL SYLLABLE CIEUC-A-KIYEOK 0xC794 # HANGUL SYLLABLE CIEUC-A-NIEUN 0xC796 # HANGUL SYLLABLE CIEUC-A-NIEUNHIEUH 0xC797 # HANGUL SYLLABLE CIEUC-A-TIKEUT 0xC798 # HANGUL SYLLABLE CIEUC-A-RIEUL 0xC79A # HANGUL SYLLABLE CIEUC-A-RIEULMIEUM 0xC7A0 # HANGUL SYLLABLE CIEUC-A-MIEUM 0xC7A1 # HANGUL SYLLABLE CIEUC-A-PIEUP 0xC7A3 # HANGUL SYLLABLE CIEUC-A-SIOS 0xC7A4 # HANGUL SYLLABLE CIEUC-A-SSANGSIOS 0xC7A5 # HANGUL SYLLABLE CIEUC-A-IEUNG 0xC7A6 # HANGUL SYLLABLE CIEUC-A-CIEUC 0xC7AC # HANGUL SYLLABLE CIEUC-AE 0xC7AD # HANGUL SYLLABLE CIEUC-AE-KIYEOK 0xC7B0 # HANGUL SYLLABLE CIEUC-AE-NIEUN 0xC7B4 # HANGUL SYLLABLE CIEUC-AE-RIEUL 0xC7BC # HANGUL SYLLABLE CIEUC-AE-MIEUM 0xC7BD # HANGUL SYLLABLE CIEUC-AE-PIEUP 0xC7BF # HANGUL SYLLABLE CIEUC-AE-SIOS 0xC7C0 # HANGUL SYLLABLE CIEUC-AE-SSANGSIOS 0xC7C1 # HANGUL SYLLABLE CIEUC-AE-IEUNG 0xC7C8 # HANGUL SYLLABLE CIEUC-YA 0xC7C9 # HANGUL SYLLABLE CIEUC-YA-KIYEOK 0xC7CC # HANGUL SYLLABLE CIEUC-YA-NIEUN 0xC7CE # HANGUL SYLLABLE CIEUC-YA-NIEUNHIEUH 0xC7D0 # HANGUL SYLLABLE CIEUC-YA-RIEUL 0xC7D8 # HANGUL SYLLABLE CIEUC-YA-MIEUM 0xC7DD # HANGUL SYLLABLE CIEUC-YA-IEUNG 0xC7E4 # HANGUL SYLLABLE CIEUC-YAE 0xC7E8 # HANGUL SYLLABLE CIEUC-YAE-NIEUN 0xC7EC # HANGUL SYLLABLE CIEUC-YAE-RIEUL 0xC800 # HANGUL SYLLABLE CIEUC-EO 0xC801 # HANGUL SYLLABLE CIEUC-EO-KIYEOK 0xC804 # HANGUL SYLLABLE CIEUC-EO-NIEUN 0xC808 # HANGUL SYLLABLE CIEUC-EO-RIEUL 0xC80A # HANGUL SYLLABLE CIEUC-EO-RIEULMIEUM 0xC810 # HANGUL SYLLABLE CIEUC-EO-MIEUM 0xC811 # HANGUL SYLLABLE CIEUC-EO-PIEUP 0xC813 # HANGUL SYLLABLE CIEUC-EO-SIOS 0xC815 # HANGUL SYLLABLE CIEUC-EO-IEUNG 0xC816 # HANGUL SYLLABLE CIEUC-EO-CIEUC 0xC81C # HANGUL SYLLABLE CIEUC-E 0xC81D # HANGUL SYLLABLE CIEUC-E-KIYEOK 0xC820 # HANGUL SYLLABLE CIEUC-E-NIEUN 0xC824 # HANGUL SYLLABLE CIEUC-E-RIEUL 0xC82C # HANGUL SYLLABLE CIEUC-E-MIEUM 0xC82D # HANGUL SYLLABLE CIEUC-E-PIEUP 0xC82F # HANGUL SYLLABLE CIEUC-E-SIOS 0xC831 # HANGUL SYLLABLE CIEUC-E-IEUNG 0xC838 # HANGUL SYLLABLE CIEUC-YEO 0xC83C # HANGUL SYLLABLE CIEUC-YEO-NIEUN 0xC840 # HANGUL SYLLABLE CIEUC-YEO-RIEUL 0xC848 # HANGUL SYLLABLE CIEUC-YEO-MIEUM 0xC849 # HANGUL SYLLABLE CIEUC-YEO-PIEUP 0xC84C # HANGUL SYLLABLE CIEUC-YEO-SSANGSIOS 0xC84D # HANGUL SYLLABLE CIEUC-YEO-IEUNG 0xC854 # HANGUL SYLLABLE CIEUC-YE 0xC870 # HANGUL SYLLABLE CIEUC-O 0xC871 # HANGUL SYLLABLE CIEUC-O-KIYEOK 0xC874 # HANGUL SYLLABLE CIEUC-O-NIEUN 0xC878 # HANGUL SYLLABLE CIEUC-O-RIEUL 0xC87A # HANGUL SYLLABLE CIEUC-O-RIEULMIEUM 0xC880 # HANGUL SYLLABLE CIEUC-O-MIEUM 0xC881 # HANGUL SYLLABLE CIEUC-O-PIEUP 0xC883 # HANGUL SYLLABLE CIEUC-O-SIOS 0xC885 # HANGUL SYLLABLE CIEUC-O-IEUNG 0xC886 # HANGUL SYLLABLE CIEUC-O-CIEUC 0xC887 # HANGUL SYLLABLE CIEUC-O-CHIEUCH 0xC88B # HANGUL SYLLABLE CIEUC-O-HIEUH 0xC88C # HANGUL SYLLABLE CIEUC-WA 0xC88D # HANGUL SYLLABLE CIEUC-WA-KIYEOK 0xC894 # HANGUL SYLLABLE CIEUC-WA-RIEUL 0xC89D # HANGUL SYLLABLE CIEUC-WA-PIEUP 0xC89F # HANGUL SYLLABLE CIEUC-WA-SIOS 0xC8A1 # HANGUL SYLLABLE CIEUC-WA-IEUNG 0xC8A8 # HANGUL SYLLABLE CIEUC-WAE 0xC8BC # HANGUL SYLLABLE CIEUC-WAE-SSANGSIOS 0xC8BD # HANGUL SYLLABLE CIEUC-WAE-IEUNG 0xC8C4 # HANGUL SYLLABLE CIEUC-OE 0xC8C8 # HANGUL SYLLABLE CIEUC-OE-NIEUN 0xC8CC # HANGUL SYLLABLE CIEUC-OE-RIEUL 0xC8D4 # HANGUL SYLLABLE CIEUC-OE-MIEUM 0xC8D5 # HANGUL SYLLABLE CIEUC-OE-PIEUP 0xC8D7 # HANGUL SYLLABLE CIEUC-OE-SIOS 0xC8D9 # HANGUL SYLLABLE CIEUC-OE-IEUNG 0xC8E0 # HANGUL SYLLABLE CIEUC-YO 0xC8E1 # HANGUL SYLLABLE CIEUC-YO-KIYEOK 0xC8E4 # HANGUL SYLLABLE CIEUC-YO-NIEUN 0xC8F5 # HANGUL SYLLABLE CIEUC-YO-IEUNG 0xC8FC # HANGUL SYLLABLE CIEUC-U 0xC8FD # HANGUL SYLLABLE CIEUC-U-KIYEOK 0xC900 # HANGUL SYLLABLE CIEUC-U-NIEUN 0xC904 # HANGUL SYLLABLE CIEUC-U-RIEUL 0xC905 # HANGUL SYLLABLE CIEUC-U-RIEULKIYEOK 0xC906 # HANGUL SYLLABLE CIEUC-U-RIEULMIEUM 0xC90C # HANGUL SYLLABLE CIEUC-U-MIEUM 0xC90D # HANGUL SYLLABLE CIEUC-U-PIEUP 0xC90F # HANGUL SYLLABLE CIEUC-U-SIOS 0xC911 # HANGUL SYLLABLE CIEUC-U-IEUNG 0xC918 # HANGUL SYLLABLE CIEUC-WEO 0xC92C # HANGUL SYLLABLE CIEUC-WEO-SSANGSIOS 0xC934 # HANGUL SYLLABLE CIEUC-WE 0xC950 # HANGUL SYLLABLE CIEUC-WI 0xC951 # HANGUL SYLLABLE CIEUC-WI-KIYEOK 0xC954 # HANGUL SYLLABLE CIEUC-WI-NIEUN 0xC958 # HANGUL SYLLABLE CIEUC-WI-RIEUL 0xC960 # HANGUL SYLLABLE CIEUC-WI-MIEUM 0xC961 # HANGUL SYLLABLE CIEUC-WI-PIEUP 0xC963 # HANGUL SYLLABLE CIEUC-WI-SIOS 0xC96C # HANGUL SYLLABLE CIEUC-YU 0xC970 # HANGUL SYLLABLE CIEUC-YU-NIEUN 0xC974 # HANGUL SYLLABLE CIEUC-YU-RIEUL 0xC97C # HANGUL SYLLABLE CIEUC-YU-MIEUM 0xC988 # HANGUL SYLLABLE CIEUC-EU 0xC989 # HANGUL SYLLABLE CIEUC-EU-KIYEOK 0xC98C # HANGUL SYLLABLE CIEUC-EU-NIEUN 0xC990 # HANGUL SYLLABLE CIEUC-EU-RIEUL 0xC998 # HANGUL SYLLABLE CIEUC-EU-MIEUM 0xC999 # HANGUL SYLLABLE CIEUC-EU-PIEUP 0xC99B # HANGUL SYLLABLE CIEUC-EU-SIOS 0xC99D # HANGUL SYLLABLE CIEUC-EU-IEUNG 0xC9C0 # HANGUL SYLLABLE CIEUC-I 0xC9C1 # HANGUL SYLLABLE CIEUC-I-KIYEOK 0xC9C4 # HANGUL SYLLABLE CIEUC-I-NIEUN 0xC9C7 # HANGUL SYLLABLE CIEUC-I-TIKEUT 0xC9C8 # HANGUL SYLLABLE CIEUC-I-RIEUL 0xC9CA # HANGUL SYLLABLE CIEUC-I-RIEULMIEUM 0xC9D0 # HANGUL SYLLABLE CIEUC-I-MIEUM 0xC9D1 # HANGUL SYLLABLE CIEUC-I-PIEUP 0xC9D3 # HANGUL SYLLABLE CIEUC-I-SIOS 0xC9D5 # HANGUL SYLLABLE CIEUC-I-IEUNG 0xC9D6 # HANGUL SYLLABLE CIEUC-I-CIEUC 0xC9D9 # HANGUL SYLLABLE CIEUC-I-THIEUTH 0xC9DA # HANGUL SYLLABLE CIEUC-I-PHIEUPH 0xC9DC # HANGUL SYLLABLE SSANGCIEUC-A 0xC9DD # HANGUL SYLLABLE SSANGCIEUC-A-KIYEOK 0xC9E0 # HANGUL SYLLABLE SSANGCIEUC-A-NIEUN 0xC9E2 # HANGUL SYLLABLE SSANGCIEUC-A-NIEUNHIEUH 0xC9E4 # HANGUL SYLLABLE SSANGCIEUC-A-RIEUL 0xC9E7 # HANGUL SYLLABLE SSANGCIEUC-A-RIEULPIEUP 0xC9EC # HANGUL SYLLABLE SSANGCIEUC-A-MIEUM 0xC9ED # HANGUL SYLLABLE SSANGCIEUC-A-PIEUP 0xC9EF # HANGUL SYLLABLE SSANGCIEUC-A-SIOS 0xC9F0 # HANGUL SYLLABLE SSANGCIEUC-A-SSANGSIOS 0xC9F1 # HANGUL SYLLABLE SSANGCIEUC-A-IEUNG 0xC9F8 # HANGUL SYLLABLE SSANGCIEUC-AE 0xC9F9 # HANGUL SYLLABLE SSANGCIEUC-AE-KIYEOK 0xC9FC # HANGUL SYLLABLE SSANGCIEUC-AE-NIEUN 0xCA00 # HANGUL SYLLABLE SSANGCIEUC-AE-RIEUL 0xCA08 # HANGUL SYLLABLE SSANGCIEUC-AE-MIEUM 0xCA09 # HANGUL SYLLABLE SSANGCIEUC-AE-PIEUP 0xCA0B # HANGUL SYLLABLE SSANGCIEUC-AE-SIOS 0xCA0C # HANGUL SYLLABLE SSANGCIEUC-AE-SSANGSIOS 0xCA0D # HANGUL SYLLABLE SSANGCIEUC-AE-IEUNG 0xCA14 # HANGUL SYLLABLE SSANGCIEUC-YA 0xCA18 # HANGUL SYLLABLE SSANGCIEUC-YA-NIEUN 0xCA29 # HANGUL SYLLABLE SSANGCIEUC-YA-IEUNG 0xCA4C # HANGUL SYLLABLE SSANGCIEUC-EO 0xCA4D # HANGUL SYLLABLE SSANGCIEUC-EO-KIYEOK 0xCA50 # HANGUL SYLLABLE SSANGCIEUC-EO-NIEUN 0xCA54 # HANGUL SYLLABLE SSANGCIEUC-EO-RIEUL 0xCA5C # HANGUL SYLLABLE SSANGCIEUC-EO-MIEUM 0xCA5D # HANGUL SYLLABLE SSANGCIEUC-EO-PIEUP 0xCA5F # HANGUL SYLLABLE SSANGCIEUC-EO-SIOS 0xCA60 # HANGUL SYLLABLE SSANGCIEUC-EO-SSANGSIOS 0xCA61 # HANGUL SYLLABLE SSANGCIEUC-EO-IEUNG 0xCA68 # HANGUL SYLLABLE SSANGCIEUC-E 0xCA7D # HANGUL SYLLABLE SSANGCIEUC-E-IEUNG 0xCA84 # HANGUL SYLLABLE SSANGCIEUC-YEO 0xCA98 # HANGUL SYLLABLE SSANGCIEUC-YEO-SSANGSIOS 0xCABC # HANGUL SYLLABLE SSANGCIEUC-O 0xCABD # HANGUL SYLLABLE SSANGCIEUC-O-KIYEOK 0xCAC0 # HANGUL SYLLABLE SSANGCIEUC-O-NIEUN 0xCAC4 # HANGUL SYLLABLE SSANGCIEUC-O-RIEUL 0xCACC # HANGUL SYLLABLE SSANGCIEUC-O-MIEUM 0xCACD # HANGUL SYLLABLE SSANGCIEUC-O-PIEUP 0xCACF # HANGUL SYLLABLE SSANGCIEUC-O-SIOS 0xCAD1 # HANGUL SYLLABLE SSANGCIEUC-O-IEUNG 0xCAD3 # HANGUL SYLLABLE SSANGCIEUC-O-CHIEUCH 0xCAD8 # HANGUL SYLLABLE SSANGCIEUC-WA 0xCAD9 # HANGUL SYLLABLE SSANGCIEUC-WA-KIYEOK 0xCAE0 # HANGUL SYLLABLE SSANGCIEUC-WA-RIEUL 0xCAEC # HANGUL SYLLABLE SSANGCIEUC-WA-SSANGSIOS 0xCAF4 # HANGUL SYLLABLE SSANGCIEUC-WAE 0xCB08 # HANGUL SYLLABLE SSANGCIEUC-WAE-SSANGSIOS 0xCB10 # HANGUL SYLLABLE SSANGCIEUC-OE 0xCB14 # HANGUL SYLLABLE SSANGCIEUC-OE-NIEUN 0xCB18 # HANGUL SYLLABLE SSANGCIEUC-OE-RIEUL 0xCB20 # HANGUL SYLLABLE SSANGCIEUC-OE-MIEUM 0xCB21 # HANGUL SYLLABLE SSANGCIEUC-OE-PIEUP 0xCB41 # HANGUL SYLLABLE SSANGCIEUC-YO-IEUNG 0xCB48 # HANGUL SYLLABLE SSANGCIEUC-U 0xCB49 # HANGUL SYLLABLE SSANGCIEUC-U-KIYEOK 0xCB4C # HANGUL SYLLABLE SSANGCIEUC-U-NIEUN 0xCB50 # HANGUL SYLLABLE SSANGCIEUC-U-RIEUL 0xCB58 # HANGUL SYLLABLE SSANGCIEUC-U-MIEUM 0xCB59 # HANGUL SYLLABLE SSANGCIEUC-U-PIEUP 0xCB5D # HANGUL SYLLABLE SSANGCIEUC-U-IEUNG 0xCB64 # HANGUL SYLLABLE SSANGCIEUC-WEO 0xCB78 # HANGUL SYLLABLE SSANGCIEUC-WEO-SSANGSIOS 0xCB79 # HANGUL SYLLABLE SSANGCIEUC-WEO-IEUNG 0xCB9C # HANGUL SYLLABLE SSANGCIEUC-WI 0xCBB8 # HANGUL SYLLABLE SSANGCIEUC-YU 0xCBD4 # HANGUL SYLLABLE SSANGCIEUC-EU 0xCBE4 # HANGUL SYLLABLE SSANGCIEUC-EU-MIEUM 0xCBE7 # HANGUL SYLLABLE SSANGCIEUC-EU-SIOS 0xCBE9 # HANGUL SYLLABLE SSANGCIEUC-EU-IEUNG 0xCC0C # HANGUL SYLLABLE SSANGCIEUC-I 0xCC0D # HANGUL SYLLABLE SSANGCIEUC-I-KIYEOK 0xCC10 # HANGUL SYLLABLE SSANGCIEUC-I-NIEUN 0xCC14 # HANGUL SYLLABLE SSANGCIEUC-I-RIEUL 0xCC1C # HANGUL SYLLABLE SSANGCIEUC-I-MIEUM 0xCC1D # HANGUL SYLLABLE SSANGCIEUC-I-PIEUP 0xCC21 # HANGUL SYLLABLE SSANGCIEUC-I-IEUNG 0xCC22 # HANGUL SYLLABLE SSANGCIEUC-I-CIEUC 0xCC27 # HANGUL SYLLABLE SSANGCIEUC-I-HIEUH 0xCC28 # HANGUL SYLLABLE CHIEUCH-A 0xCC29 # HANGUL SYLLABLE CHIEUCH-A-KIYEOK 0xCC2C # HANGUL SYLLABLE CHIEUCH-A-NIEUN 0xCC2E # HANGUL SYLLABLE CHIEUCH-A-NIEUNHIEUH 0xCC30 # HANGUL SYLLABLE CHIEUCH-A-RIEUL 0xCC38 # HANGUL SYLLABLE CHIEUCH-A-MIEUM 0xCC39 # HANGUL SYLLABLE CHIEUCH-A-PIEUP 0xCC3B # HANGUL SYLLABLE CHIEUCH-A-SIOS 0xCC3C # HANGUL SYLLABLE CHIEUCH-A-SSANGSIOS 0xCC3D # HANGUL SYLLABLE CHIEUCH-A-IEUNG 0xCC3E # HANGUL SYLLABLE CHIEUCH-A-CIEUC 0xCC44 # HANGUL SYLLABLE CHIEUCH-AE 0xCC45 # HANGUL SYLLABLE CHIEUCH-AE-KIYEOK 0xCC48 # HANGUL SYLLABLE CHIEUCH-AE-NIEUN 0xCC4C # HANGUL SYLLABLE CHIEUCH-AE-RIEUL 0xCC54 # HANGUL SYLLABLE CHIEUCH-AE-MIEUM 0xCC55 # HANGUL SYLLABLE CHIEUCH-AE-PIEUP 0xCC57 # HANGUL SYLLABLE CHIEUCH-AE-SIOS 0xCC58 # HANGUL SYLLABLE CHIEUCH-AE-SSANGSIOS 0xCC59 # HANGUL SYLLABLE CHIEUCH-AE-IEUNG 0xCC60 # HANGUL SYLLABLE CHIEUCH-YA 0xCC64 # HANGUL SYLLABLE CHIEUCH-YA-NIEUN 0xCC66 # HANGUL SYLLABLE CHIEUCH-YA-NIEUNHIEUH 0xCC68 # HANGUL SYLLABLE CHIEUCH-YA-RIEUL 0xCC70 # HANGUL SYLLABLE CHIEUCH-YA-MIEUM 0xCC75 # HANGUL SYLLABLE CHIEUCH-YA-IEUNG 0xCC98 # HANGUL SYLLABLE CHIEUCH-EO 0xCC99 # HANGUL SYLLABLE CHIEUCH-EO-KIYEOK 0xCC9C # HANGUL SYLLABLE CHIEUCH-EO-NIEUN 0xCCA0 # HANGUL SYLLABLE CHIEUCH-EO-RIEUL 0xCCA8 # HANGUL SYLLABLE CHIEUCH-EO-MIEUM 0xCCA9 # HANGUL SYLLABLE CHIEUCH-EO-PIEUP 0xCCAB # HANGUL SYLLABLE CHIEUCH-EO-SIOS 0xCCAC # HANGUL SYLLABLE CHIEUCH-EO-SSANGSIOS 0xCCAD # HANGUL SYLLABLE CHIEUCH-EO-IEUNG 0xCCB4 # HANGUL SYLLABLE CHIEUCH-E 0xCCB5 # HANGUL SYLLABLE CHIEUCH-E-KIYEOK 0xCCB8 # HANGUL SYLLABLE CHIEUCH-E-NIEUN 0xCCBC # HANGUL SYLLABLE CHIEUCH-E-RIEUL 0xCCC4 # HANGUL SYLLABLE CHIEUCH-E-MIEUM 0xCCC5 # HANGUL SYLLABLE CHIEUCH-E-PIEUP 0xCCC7 # HANGUL SYLLABLE CHIEUCH-E-SIOS 0xCCC9 # HANGUL SYLLABLE CHIEUCH-E-IEUNG 0xCCD0 # HANGUL SYLLABLE CHIEUCH-YEO 0xCCD4 # HANGUL SYLLABLE CHIEUCH-YEO-NIEUN 0xCCE4 # HANGUL SYLLABLE CHIEUCH-YEO-SSANGSIOS 0xCCEC # HANGUL SYLLABLE CHIEUCH-YE 0xCCF0 # HANGUL SYLLABLE CHIEUCH-YE-NIEUN 0xCD01 # HANGUL SYLLABLE CHIEUCH-YE-IEUNG 0xCD08 # HANGUL SYLLABLE CHIEUCH-O 0xCD09 # HANGUL SYLLABLE CHIEUCH-O-KIYEOK 0xCD0C # HANGUL SYLLABLE CHIEUCH-O-NIEUN 0xCD10 # HANGUL SYLLABLE CHIEUCH-O-RIEUL 0xCD18 # HANGUL SYLLABLE CHIEUCH-O-MIEUM 0xCD19 # HANGUL SYLLABLE CHIEUCH-O-PIEUP 0xCD1B # HANGUL SYLLABLE CHIEUCH-O-SIOS 0xCD1D # HANGUL SYLLABLE CHIEUCH-O-IEUNG 0xCD24 # HANGUL SYLLABLE CHIEUCH-WA 0xCD28 # HANGUL SYLLABLE CHIEUCH-WA-NIEUN 0xCD2C # HANGUL SYLLABLE CHIEUCH-WA-RIEUL 0xCD39 # HANGUL SYLLABLE CHIEUCH-WA-IEUNG 0xCD5C # HANGUL SYLLABLE CHIEUCH-OE 0xCD60 # HANGUL SYLLABLE CHIEUCH-OE-NIEUN 0xCD64 # HANGUL SYLLABLE CHIEUCH-OE-RIEUL 0xCD6C # HANGUL SYLLABLE CHIEUCH-OE-MIEUM 0xCD6D # HANGUL SYLLABLE CHIEUCH-OE-PIEUP 0xCD6F # HANGUL SYLLABLE CHIEUCH-OE-SIOS 0xCD71 # HANGUL SYLLABLE CHIEUCH-OE-IEUNG 0xCD78 # HANGUL SYLLABLE CHIEUCH-YO 0xCD88 # HANGUL SYLLABLE CHIEUCH-YO-MIEUM 0xCD94 # HANGUL SYLLABLE CHIEUCH-U 0xCD95 # HANGUL SYLLABLE CHIEUCH-U-KIYEOK 0xCD98 # HANGUL SYLLABLE CHIEUCH-U-NIEUN 0xCD9C # HANGUL SYLLABLE CHIEUCH-U-RIEUL 0xCDA4 # HANGUL SYLLABLE CHIEUCH-U-MIEUM 0xCDA5 # HANGUL SYLLABLE CHIEUCH-U-PIEUP 0xCDA7 # HANGUL SYLLABLE CHIEUCH-U-SIOS 0xCDA9 # HANGUL SYLLABLE CHIEUCH-U-IEUNG 0xCDB0 # HANGUL SYLLABLE CHIEUCH-WEO 0xCDC4 # HANGUL SYLLABLE CHIEUCH-WEO-SSANGSIOS 0xCDCC # HANGUL SYLLABLE CHIEUCH-WE 0xCDD0 # HANGUL SYLLABLE CHIEUCH-WE-NIEUN 0xCDE8 # HANGUL SYLLABLE CHIEUCH-WI 0xCDEC # HANGUL SYLLABLE CHIEUCH-WI-NIEUN 0xCDF0 # HANGUL SYLLABLE CHIEUCH-WI-RIEUL 0xCDF8 # HANGUL SYLLABLE CHIEUCH-WI-MIEUM 0xCDF9 # HANGUL SYLLABLE CHIEUCH-WI-PIEUP 0xCDFB # HANGUL SYLLABLE CHIEUCH-WI-SIOS 0xCDFD # HANGUL SYLLABLE CHIEUCH-WI-IEUNG 0xCE04 # HANGUL SYLLABLE CHIEUCH-YU 0xCE08 # HANGUL SYLLABLE CHIEUCH-YU-NIEUN 0xCE0C # HANGUL SYLLABLE CHIEUCH-YU-RIEUL 0xCE14 # HANGUL SYLLABLE CHIEUCH-YU-MIEUM 0xCE19 # HANGUL SYLLABLE CHIEUCH-YU-IEUNG 0xCE20 # HANGUL SYLLABLE CHIEUCH-EU 0xCE21 # HANGUL SYLLABLE CHIEUCH-EU-KIYEOK 0xCE24 # HANGUL SYLLABLE CHIEUCH-EU-NIEUN 0xCE28 # HANGUL SYLLABLE CHIEUCH-EU-RIEUL 0xCE30 # HANGUL SYLLABLE CHIEUCH-EU-MIEUM 0xCE31 # HANGUL SYLLABLE CHIEUCH-EU-PIEUP 0xCE33 # HANGUL SYLLABLE CHIEUCH-EU-SIOS 0xCE35 # HANGUL SYLLABLE CHIEUCH-EU-IEUNG 0xCE58 # HANGUL SYLLABLE CHIEUCH-I 0xCE59 # HANGUL SYLLABLE CHIEUCH-I-KIYEOK 0xCE5C # HANGUL SYLLABLE CHIEUCH-I-NIEUN 0xCE5F # HANGUL SYLLABLE CHIEUCH-I-TIKEUT 0xCE60 # HANGUL SYLLABLE CHIEUCH-I-RIEUL 0xCE61 # HANGUL SYLLABLE CHIEUCH-I-RIEULKIYEOK 0xCE68 # HANGUL SYLLABLE CHIEUCH-I-MIEUM 0xCE69 # HANGUL SYLLABLE CHIEUCH-I-PIEUP 0xCE6B # HANGUL SYLLABLE CHIEUCH-I-SIOS 0xCE6D # HANGUL SYLLABLE CHIEUCH-I-IEUNG 0xCE74 # HANGUL SYLLABLE KHIEUKH-A 0xCE75 # HANGUL SYLLABLE KHIEUKH-A-KIYEOK 0xCE78 # HANGUL SYLLABLE KHIEUKH-A-NIEUN 0xCE7C # HANGUL SYLLABLE KHIEUKH-A-RIEUL 0xCE84 # HANGUL SYLLABLE KHIEUKH-A-MIEUM 0xCE85 # HANGUL SYLLABLE KHIEUKH-A-PIEUP 0xCE87 # HANGUL SYLLABLE KHIEUKH-A-SIOS 0xCE89 # HANGUL SYLLABLE KHIEUKH-A-IEUNG 0xCE90 # HANGUL SYLLABLE KHIEUKH-AE 0xCE91 # HANGUL SYLLABLE KHIEUKH-AE-KIYEOK 0xCE94 # HANGUL SYLLABLE KHIEUKH-AE-NIEUN 0xCE98 # HANGUL SYLLABLE KHIEUKH-AE-RIEUL 0xCEA0 # HANGUL SYLLABLE KHIEUKH-AE-MIEUM 0xCEA1 # HANGUL SYLLABLE KHIEUKH-AE-PIEUP 0xCEA3 # HANGUL SYLLABLE KHIEUKH-AE-SIOS 0xCEA4 # HANGUL SYLLABLE KHIEUKH-AE-SSANGSIOS 0xCEA5 # HANGUL SYLLABLE KHIEUKH-AE-IEUNG 0xCEAC # HANGUL SYLLABLE KHIEUKH-YA 0xCEAD # HANGUL SYLLABLE KHIEUKH-YA-KIYEOK 0xCEC1 # HANGUL SYLLABLE KHIEUKH-YA-IEUNG 0xCEE4 # HANGUL SYLLABLE KHIEUKH-EO 0xCEE5 # HANGUL SYLLABLE KHIEUKH-EO-KIYEOK 0xCEE8 # HANGUL SYLLABLE KHIEUKH-EO-NIEUN 0xCEEB # HANGUL SYLLABLE KHIEUKH-EO-TIKEUT 0xCEEC # HANGUL SYLLABLE KHIEUKH-EO-RIEUL 0xCEF4 # HANGUL SYLLABLE KHIEUKH-EO-MIEUM 0xCEF5 # HANGUL SYLLABLE KHIEUKH-EO-PIEUP 0xCEF7 # HANGUL SYLLABLE KHIEUKH-EO-SIOS 0xCEF8 # HANGUL SYLLABLE KHIEUKH-EO-SSANGSIOS 0xCEF9 # HANGUL SYLLABLE KHIEUKH-EO-IEUNG 0xCF00 # HANGUL SYLLABLE KHIEUKH-E 0xCF01 # HANGUL SYLLABLE KHIEUKH-E-KIYEOK 0xCF04 # HANGUL SYLLABLE KHIEUKH-E-NIEUN 0xCF08 # HANGUL SYLLABLE KHIEUKH-E-RIEUL 0xCF10 # HANGUL SYLLABLE KHIEUKH-E-MIEUM 0xCF11 # HANGUL SYLLABLE KHIEUKH-E-PIEUP 0xCF13 # HANGUL SYLLABLE KHIEUKH-E-SIOS 0xCF15 # HANGUL SYLLABLE KHIEUKH-E-IEUNG 0xCF1C # HANGUL SYLLABLE KHIEUKH-YEO 0xCF20 # HANGUL SYLLABLE KHIEUKH-YEO-NIEUN 0xCF24 # HANGUL SYLLABLE KHIEUKH-YEO-RIEUL 0xCF2C # HANGUL SYLLABLE KHIEUKH-YEO-MIEUM 0xCF2D # HANGUL SYLLABLE KHIEUKH-YEO-PIEUP 0xCF2F # HANGUL SYLLABLE KHIEUKH-YEO-SIOS 0xCF30 # HANGUL SYLLABLE KHIEUKH-YEO-SSANGSIOS 0xCF31 # HANGUL SYLLABLE KHIEUKH-YEO-IEUNG 0xCF38 # HANGUL SYLLABLE KHIEUKH-YE 0xCF54 # HANGUL SYLLABLE KHIEUKH-O 0xCF55 # HANGUL SYLLABLE KHIEUKH-O-KIYEOK 0xCF58 # HANGUL SYLLABLE KHIEUKH-O-NIEUN 0xCF5C # HANGUL SYLLABLE KHIEUKH-O-RIEUL 0xCF64 # HANGUL SYLLABLE KHIEUKH-O-MIEUM 0xCF65 # HANGUL SYLLABLE KHIEUKH-O-PIEUP 0xCF67 # HANGUL SYLLABLE KHIEUKH-O-SIOS 0xCF69 # HANGUL SYLLABLE KHIEUKH-O-IEUNG 0xCF70 # HANGUL SYLLABLE KHIEUKH-WA 0xCF71 # HANGUL SYLLABLE KHIEUKH-WA-KIYEOK 0xCF74 # HANGUL SYLLABLE KHIEUKH-WA-NIEUN 0xCF78 # HANGUL SYLLABLE KHIEUKH-WA-RIEUL 0xCF80 # HANGUL SYLLABLE KHIEUKH-WA-MIEUM 0xCF85 # HANGUL SYLLABLE KHIEUKH-WA-IEUNG 0xCF8C # HANGUL SYLLABLE KHIEUKH-WAE 0xCFA1 # HANGUL SYLLABLE KHIEUKH-WAE-IEUNG 0xCFA8 # HANGUL SYLLABLE KHIEUKH-OE 0xCFB0 # HANGUL SYLLABLE KHIEUKH-OE-RIEUL 0xCFC4 # HANGUL SYLLABLE KHIEUKH-YO 0xCFE0 # HANGUL SYLLABLE KHIEUKH-U 0xCFE1 # HANGUL SYLLABLE KHIEUKH-U-KIYEOK 0xCFE4 # HANGUL SYLLABLE KHIEUKH-U-NIEUN 0xCFE8 # HANGUL SYLLABLE KHIEUKH-U-RIEUL 0xCFF0 # HANGUL SYLLABLE KHIEUKH-U-MIEUM 0xCFF1 # HANGUL SYLLABLE KHIEUKH-U-PIEUP 0xCFF3 # HANGUL SYLLABLE KHIEUKH-U-SIOS 0xCFF5 # HANGUL SYLLABLE KHIEUKH-U-IEUNG 0xCFFC # HANGUL SYLLABLE KHIEUKH-WEO 0xD000 # HANGUL SYLLABLE KHIEUKH-WEO-NIEUN 0xD004 # HANGUL SYLLABLE KHIEUKH-WEO-RIEUL 0xD011 # HANGUL SYLLABLE KHIEUKH-WEO-IEUNG 0xD018 # HANGUL SYLLABLE KHIEUKH-WE 0xD02D # HANGUL SYLLABLE KHIEUKH-WE-IEUNG 0xD034 # HANGUL SYLLABLE KHIEUKH-WI 0xD035 # HANGUL SYLLABLE KHIEUKH-WI-KIYEOK 0xD038 # HANGUL SYLLABLE KHIEUKH-WI-NIEUN 0xD03C # HANGUL SYLLABLE KHIEUKH-WI-RIEUL 0xD044 # HANGUL SYLLABLE KHIEUKH-WI-MIEUM 0xD045 # HANGUL SYLLABLE KHIEUKH-WI-PIEUP 0xD047 # HANGUL SYLLABLE KHIEUKH-WI-SIOS 0xD049 # HANGUL SYLLABLE KHIEUKH-WI-IEUNG 0xD050 # HANGUL SYLLABLE KHIEUKH-YU 0xD054 # HANGUL SYLLABLE KHIEUKH-YU-NIEUN 0xD058 # HANGUL SYLLABLE KHIEUKH-YU-RIEUL 0xD060 # HANGUL SYLLABLE KHIEUKH-YU-MIEUM 0xD06C # HANGUL SYLLABLE KHIEUKH-EU 0xD06D # HANGUL SYLLABLE KHIEUKH-EU-KIYEOK 0xD070 # HANGUL SYLLABLE KHIEUKH-EU-NIEUN 0xD074 # HANGUL SYLLABLE KHIEUKH-EU-RIEUL 0xD07C # HANGUL SYLLABLE KHIEUKH-EU-MIEUM 0xD07D # HANGUL SYLLABLE KHIEUKH-EU-PIEUP 0xD081 # HANGUL SYLLABLE KHIEUKH-EU-IEUNG 0xD0A4 # HANGUL SYLLABLE KHIEUKH-I 0xD0A5 # HANGUL SYLLABLE KHIEUKH-I-KIYEOK 0xD0A8 # HANGUL SYLLABLE KHIEUKH-I-NIEUN 0xD0AC # HANGUL SYLLABLE KHIEUKH-I-RIEUL 0xD0B4 # HANGUL SYLLABLE KHIEUKH-I-MIEUM 0xD0B5 # HANGUL SYLLABLE KHIEUKH-I-PIEUP 0xD0B7 # HANGUL SYLLABLE KHIEUKH-I-SIOS 0xD0B9 # HANGUL SYLLABLE KHIEUKH-I-IEUNG 0xD0C0 # HANGUL SYLLABLE THIEUTH-A 0xD0C1 # HANGUL SYLLABLE THIEUTH-A-KIYEOK 0xD0C4 # HANGUL SYLLABLE THIEUTH-A-NIEUN 0xD0C8 # HANGUL SYLLABLE THIEUTH-A-RIEUL 0xD0C9 # HANGUL SYLLABLE THIEUTH-A-RIEULKIYEOK 0xD0D0 # HANGUL SYLLABLE THIEUTH-A-MIEUM 0xD0D1 # HANGUL SYLLABLE THIEUTH-A-PIEUP 0xD0D3 # HANGUL SYLLABLE THIEUTH-A-SIOS 0xD0D4 # HANGUL SYLLABLE THIEUTH-A-SSANGSIOS 0xD0D5 # HANGUL SYLLABLE THIEUTH-A-IEUNG 0xD0DC # HANGUL SYLLABLE THIEUTH-AE 0xD0DD # HANGUL SYLLABLE THIEUTH-AE-KIYEOK 0xD0E0 # HANGUL SYLLABLE THIEUTH-AE-NIEUN 0xD0E4 # HANGUL SYLLABLE THIEUTH-AE-RIEUL 0xD0EC # HANGUL SYLLABLE THIEUTH-AE-MIEUM 0xD0ED # HANGUL SYLLABLE THIEUTH-AE-PIEUP 0xD0EF # HANGUL SYLLABLE THIEUTH-AE-SIOS 0xD0F0 # HANGUL SYLLABLE THIEUTH-AE-SSANGSIOS 0xD0F1 # HANGUL SYLLABLE THIEUTH-AE-IEUNG 0xD0F8 # HANGUL SYLLABLE THIEUTH-YA 0xD10D # HANGUL SYLLABLE THIEUTH-YA-IEUNG 0xD130 # HANGUL SYLLABLE THIEUTH-EO 0xD131 # HANGUL SYLLABLE THIEUTH-EO-KIYEOK 0xD134 # HANGUL SYLLABLE THIEUTH-EO-NIEUN 0xD138 # HANGUL SYLLABLE THIEUTH-EO-RIEUL 0xD13A # HANGUL SYLLABLE THIEUTH-EO-RIEULMIEUM 0xD140 # HANGUL SYLLABLE THIEUTH-EO-MIEUM 0xD141 # HANGUL SYLLABLE THIEUTH-EO-PIEUP 0xD143 # HANGUL SYLLABLE THIEUTH-EO-SIOS 0xD144 # HANGUL SYLLABLE THIEUTH-EO-SSANGSIOS 0xD145 # HANGUL SYLLABLE THIEUTH-EO-IEUNG 0xD14C # HANGUL SYLLABLE THIEUTH-E 0xD14D # HANGUL SYLLABLE THIEUTH-E-KIYEOK 0xD150 # HANGUL SYLLABLE THIEUTH-E-NIEUN 0xD154 # HANGUL SYLLABLE THIEUTH-E-RIEUL 0xD15C # HANGUL SYLLABLE THIEUTH-E-MIEUM 0xD15D # HANGUL SYLLABLE THIEUTH-E-PIEUP 0xD15F # HANGUL SYLLABLE THIEUTH-E-SIOS 0xD161 # HANGUL SYLLABLE THIEUTH-E-IEUNG 0xD168 # HANGUL SYLLABLE THIEUTH-YEO 0xD16C # HANGUL SYLLABLE THIEUTH-YEO-NIEUN 0xD17C # HANGUL SYLLABLE THIEUTH-YEO-SSANGSIOS 0xD184 # HANGUL SYLLABLE THIEUTH-YE 0xD188 # HANGUL SYLLABLE THIEUTH-YE-NIEUN 0xD1A0 # HANGUL SYLLABLE THIEUTH-O 0xD1A1 # HANGUL SYLLABLE THIEUTH-O-KIYEOK 0xD1A4 # HANGUL SYLLABLE THIEUTH-O-NIEUN 0xD1A8 # HANGUL SYLLABLE THIEUTH-O-RIEUL 0xD1B0 # HANGUL SYLLABLE THIEUTH-O-MIEUM 0xD1B1 # HANGUL SYLLABLE THIEUTH-O-PIEUP 0xD1B3 # HANGUL SYLLABLE THIEUTH-O-SIOS 0xD1B5 # HANGUL SYLLABLE THIEUTH-O-IEUNG 0xD1BA # HANGUL SYLLABLE THIEUTH-O-PHIEUPH 0xD1BC # HANGUL SYLLABLE THIEUTH-WA 0xD1C0 # HANGUL SYLLABLE THIEUTH-WA-NIEUN 0xD1D8 # HANGUL SYLLABLE THIEUTH-WAE 0xD1F4 # HANGUL SYLLABLE THIEUTH-OE 0xD1F8 # HANGUL SYLLABLE THIEUTH-OE-NIEUN 0xD207 # HANGUL SYLLABLE THIEUTH-OE-SIOS 0xD209 # HANGUL SYLLABLE THIEUTH-OE-IEUNG 0xD210 # HANGUL SYLLABLE THIEUTH-YO 0xD22C # HANGUL SYLLABLE THIEUTH-U 0xD22D # HANGUL SYLLABLE THIEUTH-U-KIYEOK 0xD230 # HANGUL SYLLABLE THIEUTH-U-NIEUN 0xD234 # HANGUL SYLLABLE THIEUTH-U-RIEUL 0xD23C # HANGUL SYLLABLE THIEUTH-U-MIEUM 0xD23D # HANGUL SYLLABLE THIEUTH-U-PIEUP 0xD23F # HANGUL SYLLABLE THIEUTH-U-SIOS 0xD241 # HANGUL SYLLABLE THIEUTH-U-IEUNG 0xD248 # HANGUL SYLLABLE THIEUTH-WEO 0xD25C # HANGUL SYLLABLE THIEUTH-WEO-SSANGSIOS 0xD264 # HANGUL SYLLABLE THIEUTH-WE 0xD280 # HANGUL SYLLABLE THIEUTH-WI 0xD281 # HANGUL SYLLABLE THIEUTH-WI-KIYEOK 0xD284 # HANGUL SYLLABLE THIEUTH-WI-NIEUN 0xD288 # HANGUL SYLLABLE THIEUTH-WI-RIEUL 0xD290 # HANGUL SYLLABLE THIEUTH-WI-MIEUM 0xD291 # HANGUL SYLLABLE THIEUTH-WI-PIEUP 0xD295 # HANGUL SYLLABLE THIEUTH-WI-IEUNG 0xD29C # HANGUL SYLLABLE THIEUTH-YU 0xD2A0 # HANGUL SYLLABLE THIEUTH-YU-NIEUN 0xD2A4 # HANGUL SYLLABLE THIEUTH-YU-RIEUL 0xD2AC # HANGUL SYLLABLE THIEUTH-YU-MIEUM 0xD2B1 # HANGUL SYLLABLE THIEUTH-YU-IEUNG 0xD2B8 # HANGUL SYLLABLE THIEUTH-EU 0xD2B9 # HANGUL SYLLABLE THIEUTH-EU-KIYEOK 0xD2BC # HANGUL SYLLABLE THIEUTH-EU-NIEUN 0xD2BF # HANGUL SYLLABLE THIEUTH-EU-TIKEUT 0xD2C0 # HANGUL SYLLABLE THIEUTH-EU-RIEUL 0xD2C2 # HANGUL SYLLABLE THIEUTH-EU-RIEULMIEUM 0xD2C8 # HANGUL SYLLABLE THIEUTH-EU-MIEUM 0xD2C9 # HANGUL SYLLABLE THIEUTH-EU-PIEUP 0xD2CB # HANGUL SYLLABLE THIEUTH-EU-SIOS 0xD2D4 # HANGUL SYLLABLE THIEUTH-YI 0xD2D8 # HANGUL SYLLABLE THIEUTH-YI-NIEUN 0xD2DC # HANGUL SYLLABLE THIEUTH-YI-RIEUL 0xD2E4 # HANGUL SYLLABLE THIEUTH-YI-MIEUM 0xD2E5 # HANGUL SYLLABLE THIEUTH-YI-PIEUP 0xD2F0 # HANGUL SYLLABLE THIEUTH-I 0xD2F1 # HANGUL SYLLABLE THIEUTH-I-KIYEOK 0xD2F4 # HANGUL SYLLABLE THIEUTH-I-NIEUN 0xD2F8 # HANGUL SYLLABLE THIEUTH-I-RIEUL 0xD300 # HANGUL SYLLABLE THIEUTH-I-MIEUM 0xD301 # HANGUL SYLLABLE THIEUTH-I-PIEUP 0xD303 # HANGUL SYLLABLE THIEUTH-I-SIOS 0xD305 # HANGUL SYLLABLE THIEUTH-I-IEUNG 0xD30C # HANGUL SYLLABLE PHIEUPH-A 0xD30D # HANGUL SYLLABLE PHIEUPH-A-KIYEOK 0xD30E # HANGUL SYLLABLE PHIEUPH-A-SSANGKIYEOK 0xD310 # HANGUL SYLLABLE PHIEUPH-A-NIEUN 0xD314 # HANGUL SYLLABLE PHIEUPH-A-RIEUL 0xD316 # HANGUL SYLLABLE PHIEUPH-A-RIEULMIEUM 0xD31C # HANGUL SYLLABLE PHIEUPH-A-MIEUM 0xD31D # HANGUL SYLLABLE PHIEUPH-A-PIEUP 0xD31F # HANGUL SYLLABLE PHIEUPH-A-SIOS 0xD320 # HANGUL SYLLABLE PHIEUPH-A-SSANGSIOS 0xD321 # HANGUL SYLLABLE PHIEUPH-A-IEUNG 0xD325 # HANGUL SYLLABLE PHIEUPH-A-THIEUTH 0xD328 # HANGUL SYLLABLE PHIEUPH-AE 0xD329 # HANGUL SYLLABLE PHIEUPH-AE-KIYEOK 0xD32C # HANGUL SYLLABLE PHIEUPH-AE-NIEUN 0xD330 # HANGUL SYLLABLE PHIEUPH-AE-RIEUL 0xD338 # HANGUL SYLLABLE PHIEUPH-AE-MIEUM 0xD339 # HANGUL SYLLABLE PHIEUPH-AE-PIEUP 0xD33B # HANGUL SYLLABLE PHIEUPH-AE-SIOS 0xD33C # HANGUL SYLLABLE PHIEUPH-AE-SSANGSIOS 0xD33D # HANGUL SYLLABLE PHIEUPH-AE-IEUNG 0xD344 # HANGUL SYLLABLE PHIEUPH-YA 0xD345 # HANGUL SYLLABLE PHIEUPH-YA-KIYEOK 0xD37C # HANGUL SYLLABLE PHIEUPH-EO 0xD37D # HANGUL SYLLABLE PHIEUPH-EO-KIYEOK 0xD380 # HANGUL SYLLABLE PHIEUPH-EO-NIEUN 0xD384 # HANGUL SYLLABLE PHIEUPH-EO-RIEUL 0xD38C # HANGUL SYLLABLE PHIEUPH-EO-MIEUM 0xD38D # HANGUL SYLLABLE PHIEUPH-EO-PIEUP 0xD38F # HANGUL SYLLABLE PHIEUPH-EO-SIOS 0xD390 # HANGUL SYLLABLE PHIEUPH-EO-SSANGSIOS 0xD391 # HANGUL SYLLABLE PHIEUPH-EO-IEUNG 0xD398 # HANGUL SYLLABLE PHIEUPH-E 0xD399 # HANGUL SYLLABLE PHIEUPH-E-KIYEOK 0xD39C # HANGUL SYLLABLE PHIEUPH-E-NIEUN 0xD3A0 # HANGUL SYLLABLE PHIEUPH-E-RIEUL 0xD3A8 # HANGUL SYLLABLE PHIEUPH-E-MIEUM 0xD3A9 # HANGUL SYLLABLE PHIEUPH-E-PIEUP 0xD3AB # HANGUL SYLLABLE PHIEUPH-E-SIOS 0xD3AD # HANGUL SYLLABLE PHIEUPH-E-IEUNG 0xD3B4 # HANGUL SYLLABLE PHIEUPH-YEO 0xD3B8 # HANGUL SYLLABLE PHIEUPH-YEO-NIEUN 0xD3BC # HANGUL SYLLABLE PHIEUPH-YEO-RIEUL 0xD3C4 # HANGUL SYLLABLE PHIEUPH-YEO-MIEUM 0xD3C5 # HANGUL SYLLABLE PHIEUPH-YEO-PIEUP 0xD3C8 # HANGUL SYLLABLE PHIEUPH-YEO-SSANGSIOS 0xD3C9 # HANGUL SYLLABLE PHIEUPH-YEO-IEUNG 0xD3D0 # HANGUL SYLLABLE PHIEUPH-YE 0xD3D8 # HANGUL SYLLABLE PHIEUPH-YE-RIEUL 0xD3E1 # HANGUL SYLLABLE PHIEUPH-YE-PIEUP 0xD3E3 # HANGUL SYLLABLE PHIEUPH-YE-SIOS 0xD3EC # HANGUL SYLLABLE PHIEUPH-O 0xD3ED # HANGUL SYLLABLE PHIEUPH-O-KIYEOK 0xD3F0 # HANGUL SYLLABLE PHIEUPH-O-NIEUN 0xD3F4 # HANGUL SYLLABLE PHIEUPH-O-RIEUL 0xD3FC # HANGUL SYLLABLE PHIEUPH-O-MIEUM 0xD3FD # HANGUL SYLLABLE PHIEUPH-O-PIEUP 0xD3FF # HANGUL SYLLABLE PHIEUPH-O-SIOS 0xD401 # HANGUL SYLLABLE PHIEUPH-O-IEUNG 0xD408 # HANGUL SYLLABLE PHIEUPH-WA 0xD41D # HANGUL SYLLABLE PHIEUPH-WA-IEUNG 0xD440 # HANGUL SYLLABLE PHIEUPH-OE 0xD444 # HANGUL SYLLABLE PHIEUPH-OE-NIEUN 0xD45C # HANGUL SYLLABLE PHIEUPH-YO 0xD460 # HANGUL SYLLABLE PHIEUPH-YO-NIEUN 0xD464 # HANGUL SYLLABLE PHIEUPH-YO-RIEUL 0xD46D # HANGUL SYLLABLE PHIEUPH-YO-PIEUP 0xD46F # HANGUL SYLLABLE PHIEUPH-YO-SIOS 0xD478 # HANGUL SYLLABLE PHIEUPH-U 0xD479 # HANGUL SYLLABLE PHIEUPH-U-KIYEOK 0xD47C # HANGUL SYLLABLE PHIEUPH-U-NIEUN 0xD47F # HANGUL SYLLABLE PHIEUPH-U-TIKEUT 0xD480 # HANGUL SYLLABLE PHIEUPH-U-RIEUL 0xD482 # HANGUL SYLLABLE PHIEUPH-U-RIEULMIEUM 0xD488 # HANGUL SYLLABLE PHIEUPH-U-MIEUM 0xD489 # HANGUL SYLLABLE PHIEUPH-U-PIEUP 0xD48B # HANGUL SYLLABLE PHIEUPH-U-SIOS 0xD48D # HANGUL SYLLABLE PHIEUPH-U-IEUNG 0xD494 # HANGUL SYLLABLE PHIEUPH-WEO 0xD4A9 # HANGUL SYLLABLE PHIEUPH-WEO-IEUNG 0xD4CC # HANGUL SYLLABLE PHIEUPH-WI 0xD4D0 # HANGUL SYLLABLE PHIEUPH-WI-NIEUN 0xD4D4 # HANGUL SYLLABLE PHIEUPH-WI-RIEUL 0xD4DC # HANGUL SYLLABLE PHIEUPH-WI-MIEUM 0xD4DF # HANGUL SYLLABLE PHIEUPH-WI-SIOS 0xD4E8 # HANGUL SYLLABLE PHIEUPH-YU 0xD4EC # HANGUL SYLLABLE PHIEUPH-YU-NIEUN 0xD4F0 # HANGUL SYLLABLE PHIEUPH-YU-RIEUL 0xD4F8 # HANGUL SYLLABLE PHIEUPH-YU-MIEUM 0xD4FB # HANGUL SYLLABLE PHIEUPH-YU-SIOS 0xD4FD # HANGUL SYLLABLE PHIEUPH-YU-IEUNG 0xD504 # HANGUL SYLLABLE PHIEUPH-EU 0xD508 # HANGUL SYLLABLE PHIEUPH-EU-NIEUN 0xD50C # HANGUL SYLLABLE PHIEUPH-EU-RIEUL 0xD514 # HANGUL SYLLABLE PHIEUPH-EU-MIEUM 0xD515 # HANGUL SYLLABLE PHIEUPH-EU-PIEUP 0xD517 # HANGUL SYLLABLE PHIEUPH-EU-SIOS 0xD53C # HANGUL SYLLABLE PHIEUPH-I 0xD53D # HANGUL SYLLABLE PHIEUPH-I-KIYEOK 0xD540 # HANGUL SYLLABLE PHIEUPH-I-NIEUN 0xD544 # HANGUL SYLLABLE PHIEUPH-I-RIEUL 0xD54C # HANGUL SYLLABLE PHIEUPH-I-MIEUM 0xD54D # HANGUL SYLLABLE PHIEUPH-I-PIEUP 0xD54F # HANGUL SYLLABLE PHIEUPH-I-SIOS 0xD551 # HANGUL SYLLABLE PHIEUPH-I-IEUNG 0xD558 # HANGUL SYLLABLE HIEUH-A 0xD559 # HANGUL SYLLABLE HIEUH-A-KIYEOK 0xD55C # HANGUL SYLLABLE HIEUH-A-NIEUN 0xD560 # HANGUL SYLLABLE HIEUH-A-RIEUL 0xD565 # HANGUL SYLLABLE HIEUH-A-RIEULTHIEUTH 0xD568 # HANGUL SYLLABLE HIEUH-A-MIEUM 0xD569 # HANGUL SYLLABLE HIEUH-A-PIEUP 0xD56B # HANGUL SYLLABLE HIEUH-A-SIOS 0xD56D # HANGUL SYLLABLE HIEUH-A-IEUNG 0xD574 # HANGUL SYLLABLE HIEUH-AE 0xD575 # HANGUL SYLLABLE HIEUH-AE-KIYEOK 0xD578 # HANGUL SYLLABLE HIEUH-AE-NIEUN 0xD57C # HANGUL SYLLABLE HIEUH-AE-RIEUL 0xD584 # HANGUL SYLLABLE HIEUH-AE-MIEUM 0xD585 # HANGUL SYLLABLE HIEUH-AE-PIEUP 0xD587 # HANGUL SYLLABLE HIEUH-AE-SIOS 0xD588 # HANGUL SYLLABLE HIEUH-AE-SSANGSIOS 0xD589 # HANGUL SYLLABLE HIEUH-AE-IEUNG 0xD590 # HANGUL SYLLABLE HIEUH-YA 0xD5A5 # HANGUL SYLLABLE HIEUH-YA-IEUNG 0xD5C8 # HANGUL SYLLABLE HIEUH-EO 0xD5C9 # HANGUL SYLLABLE HIEUH-EO-KIYEOK 0xD5CC # HANGUL SYLLABLE HIEUH-EO-NIEUN 0xD5D0 # HANGUL SYLLABLE HIEUH-EO-RIEUL 0xD5D2 # HANGUL SYLLABLE HIEUH-EO-RIEULMIEUM 0xD5D8 # HANGUL SYLLABLE HIEUH-EO-MIEUM 0xD5D9 # HANGUL SYLLABLE HIEUH-EO-PIEUP 0xD5DB # HANGUL SYLLABLE HIEUH-EO-SIOS 0xD5DD # HANGUL SYLLABLE HIEUH-EO-IEUNG 0xD5E4 # HANGUL SYLLABLE HIEUH-E 0xD5E5 # HANGUL SYLLABLE HIEUH-E-KIYEOK 0xD5E8 # HANGUL SYLLABLE HIEUH-E-NIEUN 0xD5EC # HANGUL SYLLABLE HIEUH-E-RIEUL 0xD5F4 # HANGUL SYLLABLE HIEUH-E-MIEUM 0xD5F5 # HANGUL SYLLABLE HIEUH-E-PIEUP 0xD5F7 # HANGUL SYLLABLE HIEUH-E-SIOS 0xD5F9 # HANGUL SYLLABLE HIEUH-E-IEUNG 0xD600 # HANGUL SYLLABLE HIEUH-YEO 0xD601 # HANGUL SYLLABLE HIEUH-YEO-KIYEOK 0xD604 # HANGUL SYLLABLE HIEUH-YEO-NIEUN 0xD608 # HANGUL SYLLABLE HIEUH-YEO-RIEUL 0xD610 # HANGUL SYLLABLE HIEUH-YEO-MIEUM 0xD611 # HANGUL SYLLABLE HIEUH-YEO-PIEUP 0xD613 # HANGUL SYLLABLE HIEUH-YEO-SIOS 0xD614 # HANGUL SYLLABLE HIEUH-YEO-SSANGSIOS 0xD615 # HANGUL SYLLABLE HIEUH-YEO-IEUNG 0xD61C # HANGUL SYLLABLE HIEUH-YE 0xD620 # HANGUL SYLLABLE HIEUH-YE-NIEUN 0xD624 # HANGUL SYLLABLE HIEUH-YE-RIEUL 0xD62D # HANGUL SYLLABLE HIEUH-YE-PIEUP 0xD638 # HANGUL SYLLABLE HIEUH-O 0xD639 # HANGUL SYLLABLE HIEUH-O-KIYEOK 0xD63C # HANGUL SYLLABLE HIEUH-O-NIEUN 0xD640 # HANGUL SYLLABLE HIEUH-O-RIEUL 0xD645 # HANGUL SYLLABLE HIEUH-O-RIEULTHIEUTH 0xD648 # HANGUL SYLLABLE HIEUH-O-MIEUM 0xD649 # HANGUL SYLLABLE HIEUH-O-PIEUP 0xD64B # HANGUL SYLLABLE HIEUH-O-SIOS 0xD64D # HANGUL SYLLABLE HIEUH-O-IEUNG 0xD651 # HANGUL SYLLABLE HIEUH-O-THIEUTH 0xD654 # HANGUL SYLLABLE HIEUH-WA 0xD655 # HANGUL SYLLABLE HIEUH-WA-KIYEOK 0xD658 # HANGUL SYLLABLE HIEUH-WA-NIEUN 0xD65C # HANGUL SYLLABLE HIEUH-WA-RIEUL 0xD667 # HANGUL SYLLABLE HIEUH-WA-SIOS 0xD669 # HANGUL SYLLABLE HIEUH-WA-IEUNG 0xD670 # HANGUL SYLLABLE HIEUH-WAE 0xD671 # HANGUL SYLLABLE HIEUH-WAE-KIYEOK 0xD674 # HANGUL SYLLABLE HIEUH-WAE-NIEUN 0xD683 # HANGUL SYLLABLE HIEUH-WAE-SIOS 0xD685 # HANGUL SYLLABLE HIEUH-WAE-IEUNG 0xD68C # HANGUL SYLLABLE HIEUH-OE 0xD68D # HANGUL SYLLABLE HIEUH-OE-KIYEOK 0xD690 # HANGUL SYLLABLE HIEUH-OE-NIEUN 0xD694 # HANGUL SYLLABLE HIEUH-OE-RIEUL 0xD69D # HANGUL SYLLABLE HIEUH-OE-PIEUP 0xD69F # HANGUL SYLLABLE HIEUH-OE-SIOS 0xD6A1 # HANGUL SYLLABLE HIEUH-OE-IEUNG 0xD6A8 # HANGUL SYLLABLE HIEUH-YO 0xD6AC # HANGUL SYLLABLE HIEUH-YO-NIEUN 0xD6B0 # HANGUL SYLLABLE HIEUH-YO-RIEUL 0xD6B9 # HANGUL SYLLABLE HIEUH-YO-PIEUP 0xD6BB # HANGUL SYLLABLE HIEUH-YO-SIOS 0xD6C4 # HANGUL SYLLABLE HIEUH-U 0xD6C5 # HANGUL SYLLABLE HIEUH-U-KIYEOK 0xD6C8 # HANGUL SYLLABLE HIEUH-U-NIEUN 0xD6CC # HANGUL SYLLABLE HIEUH-U-RIEUL 0xD6D1 # HANGUL SYLLABLE HIEUH-U-RIEULTHIEUTH 0xD6D4 # HANGUL SYLLABLE HIEUH-U-MIEUM 0xD6D7 # HANGUL SYLLABLE HIEUH-U-SIOS 0xD6D9 # HANGUL SYLLABLE HIEUH-U-IEUNG 0xD6E0 # HANGUL SYLLABLE HIEUH-WEO 0xD6E4 # HANGUL SYLLABLE HIEUH-WEO-NIEUN 0xD6E8 # HANGUL SYLLABLE HIEUH-WEO-RIEUL 0xD6F0 # HANGUL SYLLABLE HIEUH-WEO-MIEUM 0xD6F5 # HANGUL SYLLABLE HIEUH-WEO-IEUNG 0xD6FC # HANGUL SYLLABLE HIEUH-WE 0xD6FD # HANGUL SYLLABLE HIEUH-WE-KIYEOK 0xD700 # HANGUL SYLLABLE HIEUH-WE-NIEUN 0xD704 # HANGUL SYLLABLE HIEUH-WE-RIEUL 0xD711 # HANGUL SYLLABLE HIEUH-WE-IEUNG 0xD718 # HANGUL SYLLABLE HIEUH-WI 0xD719 # HANGUL SYLLABLE HIEUH-WI-KIYEOK 0xD71C # HANGUL SYLLABLE HIEUH-WI-NIEUN 0xD720 # HANGUL SYLLABLE HIEUH-WI-RIEUL 0xD728 # HANGUL SYLLABLE HIEUH-WI-MIEUM 0xD729 # HANGUL SYLLABLE HIEUH-WI-PIEUP 0xD72B # HANGUL SYLLABLE HIEUH-WI-SIOS 0xD72D # HANGUL SYLLABLE HIEUH-WI-IEUNG 0xD734 # HANGUL SYLLABLE HIEUH-YU 0xD735 # HANGUL SYLLABLE HIEUH-YU-KIYEOK 0xD738 # HANGUL SYLLABLE HIEUH-YU-NIEUN 0xD73C # HANGUL SYLLABLE HIEUH-YU-RIEUL 0xD744 # HANGUL SYLLABLE HIEUH-YU-MIEUM 0xD747 # HANGUL SYLLABLE HIEUH-YU-SIOS 0xD749 # HANGUL SYLLABLE HIEUH-YU-IEUNG 0xD750 # HANGUL SYLLABLE HIEUH-EU 0xD751 # HANGUL SYLLABLE HIEUH-EU-KIYEOK 0xD754 # HANGUL SYLLABLE HIEUH-EU-NIEUN 0xD756 # HANGUL SYLLABLE HIEUH-EU-NIEUNHIEUH 0xD757 # HANGUL SYLLABLE HIEUH-EU-TIKEUT 0xD758 # HANGUL SYLLABLE HIEUH-EU-RIEUL 0xD759 # HANGUL SYLLABLE HIEUH-EU-RIEULKIYEOK 0xD760 # HANGUL SYLLABLE HIEUH-EU-MIEUM 0xD761 # HANGUL SYLLABLE HIEUH-EU-PIEUP 0xD763 # HANGUL SYLLABLE HIEUH-EU-SIOS 0xD765 # HANGUL SYLLABLE HIEUH-EU-IEUNG 0xD769 # HANGUL SYLLABLE HIEUH-EU-THIEUTH 0xD76C # HANGUL SYLLABLE HIEUH-YI 0xD770 # HANGUL SYLLABLE HIEUH-YI-NIEUN 0xD774 # HANGUL SYLLABLE HIEUH-YI-RIEUL 0xD77C # HANGUL SYLLABLE HIEUH-YI-MIEUM 0xD77D # HANGUL SYLLABLE HIEUH-YI-PIEUP 0xD781 # HANGUL SYLLABLE HIEUH-YI-IEUNG 0xD788 # HANGUL SYLLABLE HIEUH-I 0xD789 # HANGUL SYLLABLE HIEUH-I-KIYEOK 0xD78C # HANGUL SYLLABLE HIEUH-I-NIEUN 0xD790 # HANGUL SYLLABLE HIEUH-I-RIEUL 0xD798 # HANGUL SYLLABLE HIEUH-I-MIEUM 0xD799 # HANGUL SYLLABLE HIEUH-I-PIEUP 0xD79B # HANGUL SYLLABLE HIEUH-I-SIOS 0xD79D # HANGUL SYLLABLE HIEUH-I-IEUNG fontconfig-2.11.1/fc-lang/el.orth0000664000076400007640000000236612267155334013507 00000000000000# # fontconfig/fc-lang/el.orth # # 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. # # Greek (EL) # # From vvas@hal.csd.auth.gr (Vasilis Vasaitis) # 0386 0388-038a 038c 038e-03a1 03a3-03ce fontconfig-2.11.1/fc-lang/crh.orth0000664000076400007640000000276212267155334013663 00000000000000# # fontconfig/fc-lang/crh.orth # # Copyright © 2009 Roozbeh Pournader # Copyright © 2009 Reşat SABIQ # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Crimean Tatar/Crimean Turkish (crh) # # Sources: # * http://www.omniglot.com/writing/crimeantatar.php # * http://en.wikipedia.org/wiki/Crimean_Tatar_language # * http://www.vatankirim.net/yazi.asp?yaziNo=31 # 0041-005A 0061-007A 00C2 00C7 00D1 00D6 00DC 00E2 00E7 00F1 00F6 00FC 011E-011F 0130-0131 015E-015F fontconfig-2.11.1/fc-lang/os.orth0000664000076400007640000000320112267155334013515 00000000000000# # fontconfig/fc-lang/os.orth # # 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. # # Coverage taken from TITUS (Thesaurus Indogermanischer Text und # Sprachmaterialien) # # http://titus.uni-frankfurt.de/unicode/alphabet/nslatest.htm # # Ossetic (OS) # 0401 0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041a 041b 041c 041d 041e 041f 0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042a 042b 042c 042d 042e 042f 0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043a 043b 043c 043d 043e 043f 0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044a 044b 044c 044d 044e 044f 0451 fontconfig-2.11.1/fc-lang/ii.orth0000664000076400007640000000272512267155334013507 00000000000000# # fontconfig/fc-lang/ii.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Sichuan Yi/Nuosu (ii) # # Sources: # * http://www.babelstone.co.uk/Yi/unicode.html # * http://www.babelstone.co.uk/Yi/script.html # * http://en.wikipedia.org/wiki/Yi_script # # As of Unicode 5.1, every encoded syllable (U+A000..A48C) is used. The # radicals (U+A490..A4C6) are for linguistic use only. # A000-A48C fontconfig-2.11.1/fc-lang/hsb.orth0000664000076400007640000000265412267155334013663 00000000000000# # fontconfig/fc-lang/hsb.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Upper Sorbian (hsb) # # Sources: # http://www.omniglot.com/writing/sorbian.htm # http://www.evertype.com/alphabets/upper-sorbian.pdf # # Q, V, and X are not used 0041-005A 0061-007A 00D3 00F3 0106-0107 010C-010D 011A-011B 0141-0144 0158-0159 0160-0161 0179-017A 017D-017E fontconfig-2.11.1/fc-lang/af.orth0000664000076400007640000000247012267155334013471 00000000000000# # fontconfig/fc-lang/af.orth # # 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. # # Afrikaans (AF) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 00c8 00e8 00c9 00e9 00ca 00ea 00cb 00eb 00ce 00ee 00cf 00ef 00d4 00f4 00db 00fb 0149 fontconfig-2.11.1/fc-lang/be.orth0000664000076400007640000000315012267155334013465 00000000000000# # fontconfig/fc-lang/be.orth # # 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. # # Byelorussian (BE) # # Sources: # www.evertype.com # www.eki.ee/letter # #00ab #00bb #02BC # MODIFIER LETTER APOSTROPHE #0401 # CYRILLIC CAPITAL LETTER IO evertype.com 0406 # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I 040E # CYRILLIC CAPITAL LETTER SHORT U (Byelorussian) 0410-044f #0451 # CYRILLIC SMALL LETTER IO evertype.com 0456 # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I 045E # CYRILLIC SMALL LETTER SHORT U (Byelorussian) #2039-203a # angle quotes fontconfig-2.11.1/fc-lang/sr.orth0000664000076400007640000000235712267155334013533 00000000000000# # fontconfig/fc-lang/sr.orth # # Copyright © 2008 Danilo Šegan # # 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. # # Serbian (SR) # 0402 0408-040b 040f 0410-0418 041a-0428 0430-0438 043a-0448 0452 0458-045b 045f fontconfig-2.11.1/fc-lang/mni.orth0000664000076400007640000000272312267155334013667 00000000000000# # fontconfig/fc-lang/mni.orth # # Copyright © 2012 Pravin Satpute # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Maniputi (mni) # # Source: Script grammer: http://tdil-dc.in/tdildcMain/articles/283709Script_Grammar_for_Manipuri.pdf 6th page # Characters are encirled in Unicode chart http://pravins.fedorapeople.org/Manipuri-characters.pdf # documents include bn.orth 0964 - 09c4 09bd 09ce 09e6-09ef 09f1 fontconfig-2.11.1/fc-lang/tt.orth0000664000076400007640000000337312267155334013535 00000000000000# # fontconfig/fc-lang/tt.orth # # 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. # # Coverage taken from TITUS (Thesaurus Indogermanischer Text und # Sprachmaterialien) # # http://titus.uni-frankfurt.de/unicode/alphabet/nslatest.htm # # Tatar (TT) # 0401 0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041a 041b 041c 041d 041e 041f 0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042a 042b 042c 042d 042e 042f 0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043a 043b 043c 043d 043e 043f 0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044a 044b 044c 044d 044e 044f 0451 #0472 # CYRILLIC CAPITAL LETTER FITA #0473 # CYRILLIC SMALL LETTER FITA 0496 0497 04a2 04a3 04ae 04af 04ba 04bb 04d8 04d9 fontconfig-2.11.1/fc-lang/lv.orth0000664000076400007640000000255112267155334013524 00000000000000# # fontconfig/fc-lang/lv.orth # # 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. # # Latvian (LV) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a 0100-0101 010c-010d 0112-0113 0122-0123 012a-012b 0136-0137 013b-013c 0145-0146 014c-014d 0156-0157 0160-0161 016a-016b 017d-017e fontconfig-2.11.1/fc-lang/rw.orth0000664000076400007640000000243012267155334013527 00000000000000# # fontconfig/fc-lang/rw.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Kinyarwanda (rw) # # Sources: # http://www.omniglot.com/writing/kinyarwanda.htm # # Q and X are not used 0041-005A 0061-007A fontconfig-2.11.1/fc-lang/da.orth0000664000076400007640000000731612267155334013473 00000000000000# # fontconfig/fc-lang/da.orth # # 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. # # Danish (DA) # # Sources: # www.evertype.com # www.eki.ee/letter # Note: # The sources cited at www.evertype.com appear to have unified # all of the nordic languages making the orthography significantly # larger than needed for Danish. The orthography used here is # just that from eki.ee with the evertype.com additions commented out # 0041-005a 0061-007a #00ab #00bb #00C0 # LATIN CAPITAL LETTER A WITH GRAVE 00C1 # LATIN CAPITAL LETTER A WITH ACUTE #00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX #00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS 00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE 00C6 # LATIN CAPITAL LETTER AE (ash) * #00C7 # LATIN CAPITAL LETTER C WITH CEDILLA #00C8 # LATIN CAPITAL LETTER E WITH GRAVE 00C9 # LATIN CAPITAL LETTER E WITH ACUTE #00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX #00CB # LATIN CAPITAL LETTER E WITH DIAERESIS 00CD # LATIN CAPITAL LETTER I WITH ACUTE #00D0 # LATIN CAPITAL LETTER ETH (Icelandic) 00D3 # LATIN CAPITAL LETTER O WITH ACUTE #00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX #00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS 00D8 # LATIN CAPITAL LETTER O WITH STROKE 00DA # LATIN CAPITAL LETTER U WITH ACUTE #00DC # LATIN CAPITAL LETTER U WITH DIAERESIS 00DD # LATIN CAPITAL LETTER Y WITH ACUTE #00DE # LATIN CAPITAL LETTER THORN (Icelandic) #00E0 # LATIN SMALL LETTER A WITH GRAVE 00E1 # LATIN SMALL LETTER A WITH ACUTE #00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX #00E4 # LATIN SMALL LETTER A WITH DIAERESIS 00E5 # LATIN SMALL LETTER A WITH RING ABOVE 00E6 # LATIN SMALL LETTER AE (ash) * #00E7 # LATIN SMALL LETTER C WITH CEDILLA #00E8 # LATIN SMALL LETTER E WITH GRAVE 00E9 # LATIN SMALL LETTER E WITH ACUTE #00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX #00EB # LATIN SMALL LETTER E WITH DIAERESIS 00ED # LATIN SMALL LETTER I WITH ACUTE #00F0 # LATIN SMALL LETTER ETH (Icelandic) 00F3 # LATIN SMALL LETTER O WITH ACUTE #00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX #00F6 # LATIN SMALL LETTER O WITH DIAERESIS 00F8 # LATIN SMALL LETTER O WITH STROKE 00FA # LATIN SMALL LETTER U WITH ACUTE #00FC # LATIN SMALL LETTER U WITH DIAERESIS 00FD # LATIN SMALL LETTER Y WITH ACUTE #00FE # LATIN SMALL LETTER THORN (Icelandic) #0152 # LATIN CAPITAL LIGATURE OE #0153 # LATIN SMALL LIGATURE OE #01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE #01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE #01FC # LATIN CAPITAL LETTER AE WITH ACUTE (ash) * #01FD # LATIN SMALL LETTER AE WITH ACUTE (ash) * #01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE #01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE #2039-203a # angle quotes fontconfig-2.11.1/fc-lang/brx.orth0000664000076400007640000000365612267155334013705 00000000000000# # fontconfig/fc-lang/brx.orth # # Copyright © 2012 Parag Nemade # # 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 Keith Packard not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. Keith Packard makes 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. # # Bodo (Devanagari script) (brx) # # Source: Enhanced inscript: http://pune.cdac.in/html/gist/down/inscript_d.asp # Or # Source: http://malayalam.kerala.gov.in/images/8/80/Qwerty_enhancedinscriptkeyboardlayout.pdf Page No. 44 # 0901-0903 # Various Signs 0905-090c # Independent vowels 090f-0910 # Independent vowels 0913-0914 # Independent vowels 0915-0928 # Consonants 092a-0930 # Consonants 0932-0932 # Consonants 0935-0939 # Consonants 093c-0944 # Various and Dependent vowel signs 0947-0948 # Dependent vowel signs 094b-094d # Dependent vowel signs and virama 0950-0952 # Sign and vedic tone marks 0960-0963 # Additional vowels 0964-0965 # Punctuations 0966-096F # Digits 0970 # Abbrevation sign fontconfig-2.11.1/fc-lang/as.orth0000664000076400007640000000304612267155334013506 00000000000000# # fontconfig/fc-lang/as.orth # # Copyright © 2006 Keith Packard # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Assamese (as) # # Source: Unicode coverage and notes for Bengali script, Unicode internal # documents, Wikipedia articles 0981-0983 0985-098c 098f-0990 0993-09a8 09aa-09af # 09b0 # Assamese uses U+09F0 instead 09b2 09b6-09b9 09bc 09be-09c4 09c7-09c8 09cb-09cd # 09d7 # Only used as a part of U+09CC 09dc-09dd 09df # 09e0-09e3 # These are for Sanskrit 09f0-09f1 fontconfig-2.11.1/fc-lang/nds.orth0000664000076400007640000000332012267155334013662 00000000000000# # fontconfig/fc-lang/nds.orth # # Copyright © 2004 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. # # Low Saxon (NDS) # # Sources: # Kenneth Rohde Christiansen # ANS - # Algemeyne Neddersassische Schryvwys' (DE) # Algemeyne Nedersaksische Schryvwyse (NL) # 0041-005a # LATIN CAPITAL LETTER A through Z 0061-007a # LATIN SMALL LETTER A through Z 00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS 00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS 00DC # LATIN CAPITAL LETTER U WITH DIAERESIS 00DF # LATIN SMALL LETTER SHARP S (German) 00E4 # LATIN SMALL LETTER A WITH DIAERESIS 00F6 # LATIN SMALL LETTER O WITH DIAERESIS 00FC # LATIN SMALL LETTER U WITH DIAERESIS fontconfig-2.11.1/fc-lang/is.orth0000664000076400007640000000403312267155334013513 00000000000000# # fontconfig/fc-lang/is.orth # # 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. # # Icelandic (IS) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a 00c1 #00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS evertype.com #00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE evertype.com 00c6 00c9 #00CB # LATIN CAPITAL LETTER E WITH DIAERESIS evertype.com 00cd 00d0 00d3 #00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS eki.ee #00D8 # LATIN CAPITAL LETTER O WITH STROKE evertype.com 00da #00DC # LATIN CAPITAL LETTER U WITH DIAERESIS evertype.com 00dd 00de 00e1 #00E4 # LATIN SMALL LETTER A WITH DIAERESIS evertype.com #00E5 # LATIN SMALL LETTER A WITH RING ABOVE evertype.com 00e6 00e9 00ed 00f0 00f3 #00F6 # LATIN SMALL LETTER O WITH DIAERESIS eki.ee #00F8 # LATIN SMALL LETTER O WITH STROKE evertype.com 00fa #00FC # LATIN SMALL LETTER U WITH DIAERESIS evertype.com 00fd 00fe #2018 # single quote #201a # single quote #201c # double quote #201e # double quote fontconfig-2.11.1/fc-lang/Makefile.am0000664000076400007640000001051312267155334014236 00000000000000# -*- encoding: utf-8 -*- # # Copyright © 2003 Keith Packard # Copyright © 2013 Google, Inc. # # 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. # # Google Author(s): Behdad Esfahbod TAG = lang DEPS = $(ORTH) ARGS = -d $(srcdir) $(ORTH) DIST = $(ORTH) include $(top_srcdir)/Tools.mk # NOTE: # # The order of the orth files here is extremely important (part of the cache # format) and should not be modified. New orth files should be added at the # end. No files should be removed either. # ORTH = \ aa.orth \ ab.orth \ af.orth \ am.orth \ ar.orth \ as.orth \ ast.orth \ av.orth \ ay.orth \ az_az.orth \ az_ir.orth \ ba.orth \ bm.orth \ be.orth \ bg.orth \ bh.orth \ bho.orth \ bi.orth \ bin.orth \ bn.orth \ bo.orth \ br.orth \ bs.orth \ bua.orth \ ca.orth \ ce.orth \ ch.orth \ chm.orth \ chr.orth \ co.orth \ cs.orth \ cu.orth \ cv.orth \ cy.orth \ da.orth \ de.orth \ dz.orth \ el.orth \ en.orth \ eo.orth \ es.orth \ et.orth \ eu.orth \ fa.orth \ fi.orth \ fj.orth \ fo.orth \ fr.orth \ ff.orth \ fur.orth \ fy.orth \ ga.orth \ gd.orth \ gez.orth \ gl.orth \ gn.orth \ gu.orth \ gv.orth \ ha.orth \ haw.orth \ he.orth \ hi.orth \ ho.orth \ hr.orth \ hu.orth \ hy.orth \ ia.orth \ ig.orth \ id.orth \ ie.orth \ ik.orth \ io.orth \ is.orth \ it.orth \ iu.orth \ ja.orth \ ka.orth \ kaa.orth \ ki.orth \ kk.orth \ kl.orth \ km.orth \ kn.orth \ ko.orth \ kok.orth \ ks.orth \ ku_am.orth \ ku_ir.orth \ kum.orth \ kv.orth \ kw.orth \ ky.orth \ la.orth \ lb.orth \ lez.orth \ ln.orth \ lo.orth \ lt.orth \ lv.orth \ mg.orth \ mh.orth \ mi.orth \ mk.orth \ ml.orth \ mn_cn.orth \ mo.orth \ mr.orth \ mt.orth \ my.orth \ nb.orth \ nds.orth \ ne.orth \ nl.orth \ nn.orth \ no.orth \ nr.orth \ nso.orth \ ny.orth \ oc.orth \ om.orth \ or.orth \ os.orth \ pa.orth \ pl.orth \ ps_af.orth \ ps_pk.orth \ pt.orth \ rm.orth \ ro.orth \ ru.orth \ sa.orth \ sah.orth \ sco.orth \ se.orth \ sel.orth \ sh.orth \ shs.orth \ si.orth \ sk.orth \ sl.orth \ sm.orth \ sma.orth \ smj.orth \ smn.orth \ sms.orth \ so.orth \ sq.orth \ sr.orth \ ss.orth \ st.orth \ sv.orth \ sw.orth \ syr.orth \ ta.orth \ te.orth \ tg.orth \ th.orth \ ti_er.orth \ ti_et.orth \ tig.orth \ tk.orth \ tl.orth \ tn.orth \ to.orth \ tr.orth \ ts.orth \ tt.orth \ tw.orth \ tyv.orth \ ug.orth \ uk.orth \ ur.orth \ uz.orth \ ve.orth \ vi.orth \ vo.orth \ vot.orth \ wa.orth \ wen.orth \ wo.orth \ xh.orth \ yap.orth \ yi.orth \ yo.orth \ zh_cn.orth \ zh_hk.orth \ zh_mo.orth \ zh_sg.orth \ zh_tw.orth \ zu.orth \ ak.orth \ an.orth \ ber_dz.orth \ ber_ma.orth \ byn.orth \ crh.orth \ csb.orth \ dv.orth \ ee.orth \ fat.orth \ fil.orth \ hne.orth \ hsb.orth \ ht.orth \ hz.orth \ ii.orth \ jv.orth \ kab.orth \ kj.orth \ kr.orth \ ku_iq.orth \ ku_tr.orth \ kwm.orth \ lg.orth \ li.orth \ mai.orth \ mn_mn.orth \ ms.orth \ na.orth \ ng.orth \ nv.orth \ ota.orth \ pa_pk.orth \ pap_an.orth \ pap_aw.orth \ qu.orth \ quz.orth \ rn.orth \ rw.orth \ sc.orth \ sd.orth \ sg.orth \ sid.orth \ sn.orth \ su.orth \ ty.orth \ wal.orth \ za.orth \ lah.orth \ nqo.orth \ brx.orth \ sat.orth \ doi.orth \ mni.orth # ^-------------- Add new orth files here -include $(top_srcdir)/git.mk fontconfig-2.11.1/fc-lang/ro.orth0000664000076400007640000000254012267155334013521 00000000000000# # fontconfig/fc-lang/ro.orth # # 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. # # Romanian (RO) # # Sources: # www.eki.ee/letter # 0041-005a 0061-007a 00c2 00ce 00e2 00ee 0102-0103 0218-021b # comma-below forms (preferred over cedilla) #2019-201a # single quotes #201d-201e # double quotes fontconfig-2.11.1/fc-lang/tyv.orth0000664000076400007640000000334212267155334013724 00000000000000# # fontconfig/fc-lang/tyv.orth # # 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. # # Coverage taken from TITUS (Thesaurus Indogermanischer Text und # Sprachmaterialien) # # http://titus.uni-frankfurt.de/unicode/alphabet/nslatest.htm # # Tuvinian (TYV) # 0401 0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041a 041b 041c 041d 041e 041f 0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042a 042b 042c 042d 042e 042f 0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043a 043b 043c 043d 043e 043f 0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044a 044b 044c 044d 044e 044f 0451 #0472 # CYRILLIC CAPITAL LETTER FITA #0473 # CYRILLIC SMALL LETTER FITA 04a2 04a3 04ae 04af fontconfig-2.11.1/fc-lang/mn_mn.orth0000664000076400007640000000264412267155334014212 00000000000000# # fontconfig/fc-lang/mn_mn.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Mongolian in Mongolia (mn-MN) # # Sources: # http://www.omniglot.com/writing/mongolian.htm # http://www.viahistoria.com/SilverHorde/main.html?research/MongolScripts.html # http://unicode.org/cldr/data/common/main/mn.xml # 0401 0410-044F 0451 04AE-04AF 04E8-04E9 fontconfig-2.11.1/fc-lang/smn.orth0000664000076400007640000000246712267155334013706 00000000000000# # fontconfig/fc-lang/smn.orth # # 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. # # Inari Sámi (SMN) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 00c1 00e1 00c2 00e2 00c4 00e4 010c-010d 0110-0111 014a-014b 0160-0161 017d-017e fontconfig-2.11.1/fc-lang/ku_am.orth0000664000076400007640000000317612267155334014203 00000000000000# # fontconfig/fc-lang/ku_am.orth # # 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. # # Coverage taken from TITUS (Thesaurus Indogermanischer Text und # Sprachmaterialien) # # http://titus.uni-frankfurt.de/unicode/alphabet/nslatest.htm # # Kurdish in Armenia (ku-AM) # 0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041a 041b 041c 041d 041e 041f 0420 0421 0422 0423 0424 0425 0427 0428 0429 042a 042d 0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043a 043b 043c 043d 043e 043f 0440 0441 0442 0443 0444 0445 0447 0448 0449 044a 044d 04ba 04bb 04d8 04d9 04e6 04e7 051a-051d fontconfig-2.11.1/fc-lang/az_az.orth0000664000076400007640000000436012267155334014207 00000000000000# # fontconfig/fc-lang/az_az.orth # # Copyright © 2002 Keith Packard # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Azerbaijani in Azerbaijan (az-AZ) # # The complete orthography was from http://www.evertype.com # # This had been verified with the latin and cyrillic orthographies found at # http://www.eki.ee/letter # # Cyrillic was removed because the switch to Latin is almost finished. # The letter “ä” is also deprecated and replaced with “ə” since 1992. # 0041-005a 0061-007a #00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS 00C7 # LATIN CAPITAL LETTER C WITH CEDILLA 00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS 00DC # LATIN CAPITAL LETTER U WITH DIAERESIS #00E4 # LATIN SMALL LETTER A WITH DIAERESIS 00E7 # LATIN SMALL LETTER C WITH CEDILLA 00F6 # LATIN SMALL LETTER O WITH DIAERESIS 00FC # LATIN SMALL LETTER U WITH DIAERESIS 011E # LATIN CAPITAL LETTER G WITH BREVE 011F # LATIN SMALL LETTER G WITH BREVE 0130 # LATIN CAPITAL LETTER I WITH DOT ABOVE 0131 # LATIN SMALL LETTER DOTLESS I 015E # LATIN CAPITAL LETTER S WITH CEDILLA 015F # LATIN SMALL LETTER S WITH CEDILLA 018F # LATIN CAPITAL LETTER SCHWA 0259 # LATIN SMALL LETTER SCHWA #02BC # MODIFIER LETTER APOSTROPHE fontconfig-2.11.1/fc-lang/bs.orth0000664000076400007640000000242312267155334013505 00000000000000# # fontconfig/fc-lang/bs.orth # # 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. # # Bosnian (BS) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 0106 0107 010c 010d 0110 0111 0160 0161 017d 017e fontconfig-2.11.1/fc-lang/pa.orth0000664000076400007640000000361412267155334013504 00000000000000# # fontconfig/fc-lang/pa.orth # # Copyright © 2004 Red Hat, Inc. # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Panjabi/Punjabi (pa) # # According to ISO 639-3, 'pa/pan' only applies to Panjabi as used in India: # http://www.sil.org/iso639-3/documentation.asp?id=pan # # For Panjabi as used in Pakistan, use 'lah' or 'pa-PK': # http://www.sil.org/iso639-3/documentation.asp?id=lah # # From Unicode coverage for Gurmukhi, with modifications based on # the 'Lohit Punjabi' font # # 0A01-0A03 # Various signs 0A05-0A0A # Independent vowels 0A0F-0A10 0A13-0A14 0A15-0A28 # Consonants 0A2A-0A30 0A32-0A33 0A35-0A36 0A38-0A39 0A3C # Nukta 0A3E-0A42 # Dependent vowel signs 0A47-0A48 0A4B-0A4C 0A4D # Virama 0A59-0A5C # Additional consonants # 0A5E # GURMUKHI LETTER FA # 0A66-0A6F # Digits 0A70-0A74 # Gurmukhi-specific additions fontconfig-2.11.1/fc-lang/nqo.orth0000664000076400007640000000241412267155334013676 00000000000000# # fontconfig/fc-lang/nqo.orth # # Copyright © 2011 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. # # N'Ko (nqo) # # See: # http://www.unicode.org/charts/PDF/U07C0.pdf # http://en.wikipedia.org/wiki/N'Ko_alphabet # 07c0-07fa fontconfig-2.11.1/fc-lang/de.orth0000664000076400007640000000355212267155334013475 00000000000000# # fontconfig/fc-lang/de.orth # # 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. # # German (DE) # # Sources: # www.evertype.com # www.eki.ee/letter # #00ab #00bb 0041-005a 0061-007a #00C0 # LATIN CAPITAL LETTER A WITH GRAVE eki.ee 00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS #00C9 # LATIN CAPITAL LETTER E WITH ACUTE eki.ee 00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS 00DC # LATIN CAPITAL LETTER U WITH DIAERESIS 00DF # LATIN SMALL LETTER SHARP S (German) #00E0 # LATIN SMALL LETTER A WITH GRAVE eki.ee 00E4 # LATIN SMALL LETTER A WITH DIAERESIS #00E9 # LATIN SMALL LETTER E WITH ACUTE eki.ee 00F6 # LATIN SMALL LETTER O WITH DIAERESIS 00FC # LATIN SMALL LETTER U WITH DIAERESIS #2018 # single quotes #201a # single quotes #201c # double quotes #201e # double quotes #2039-203a # angle quotes fontconfig-2.11.1/fc-lang/pl.orth0000664000076400007640000000250012267155334013510 00000000000000# # fontconfig/fc-lang/pl.orth # # 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. # # Polish (PL) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a 00d3 00f3 0104-0105 0106-0107 0118-0119 0141-0142 0143-0144 015a-015b 0179-017a 017b-017c fontconfig-2.11.1/fc-lang/bm.orth0000664000076400007640000000241112267155334013474 00000000000000# # fontconfig/fc-lang/bm.orth # # 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. # # Bambara (bm) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 0190 025b 014a 014b 019d 0272 0186 0254 fontconfig-2.11.1/fc-lang/sd.orth0000664000076400007640000000342012267155334013505 00000000000000# # fontconfig/fc-lang/sd.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Sindhi (sd) # # Sindhi is mostly written in the Arabic script in both Pakistan and India. # # Sources: # * http://www.user.uni-hannover.de/nhtcapri/sindhi-alphabet.html # * http://www.omniglot.com/writing/sindhi.htm # * http://tdil.mit.gov.in/sindhidesignguideoct02.pdf # # Some of the Sindhi letters are not available as presentation forms in # Unicode, so we go with general-purpose Arabic letters. # 0621-0622 0624 0626-0628 062A-063A 0641-0642 0644-0648 064A 067A-067B 067D-0680 0683-0684 0686-0687 068A 068C-068D 068F 0699 06A6 06A9-06AA 06AF 06B1 06B3 06BB 06BE #06FD-06FD # signs are usually not included in orthographies fontconfig-2.11.1/fc-lang/cv.orth0000664000076400007640000000350012267155334013506 00000000000000# # fontconfig/fc-lang/cv.orth # # 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. # # Coverage taken from TITUS (Thesaurus Indogermanischer Text und # Sprachmaterialien) # # http://titus.uni-frankfurt.de/unicode/alphabet/nslatest.htm # # Chuvash (CV) # # # I'm guessing the c cedilla is really es with descender # #00c7 # C cedilla #00e7 # c cedilla 04aa # capital es with descender 04ab # small es with descender 0102 0103 0401 0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041a 041b 041c 041d 041e 041f 0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042a 042b 042c 042d 042e 042f 0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043a 043b 043c 043d 043e 043f 0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044a 044b 044c 044d 044e 044f 0451 04d6 04d7 04f2 04f3 fontconfig-2.11.1/fc-lang/yap.orth0000664000076400007640000000240012267155334013665 00000000000000# # fontconfig/fc-lang/yap.orth # # 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. # # Yapese (YAP) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 00c4 00e4 00cb 00eb 00d6 00f6 fontconfig-2.11.1/fc-lang/dz.orth0000664000076400007640000000231012267155334013511 00000000000000# # fontconfig/fc-lang/dz.orth # # 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. # # Dzongkha (DZ) # # Uses Tibetan script # include bo.orth fontconfig-2.11.1/fc-lang/ast.orth0000664000076400007640000000255712267155334013700 00000000000000# # fontconfig/fc-lang/ast.orth # # 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. # # Orthography from http://www.evertype.com/alphabets/asturian.pdf # # Asturian/Bable/Leonese/Asturleonese (ast) # 0041-005a 0061-007a 00c1 00c9 00cd 00d1 00d3 00da 00dc 00e1 00e9 00ed 00f1 00f3 00fa 00fc 1e24 1e25 1e36 1e37 fontconfig-2.11.1/fc-lang/ber_dz.orth0000664000076400007640000000236112267155334014347 00000000000000# # fontconfig/fc-lang/ber_dz.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Berber in Algeria (ber-DZ) # # Algerian Berber is usually Kabyle include kab.orth fontconfig-2.11.1/fc-lang/nv.orth0000664000076400007640000000310312267155334013520 00000000000000# # fontconfig/fc-lang/nv.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Navajo/Navaho (nv) # # Sources: # * http://en.wikipedia.org/wiki/Navajo_language # * http://www.omniglot.com/writing/navajo.htm # # F, P, Q, R, U, and V are not used. A vertical glottal stop may be used. # 0041-005A 0061-007A 00C1 00C9 00CD 00D3 00E1 00E9 00ED 00F3 0104-0105 0118-0119 012E-012F 0141-0142 01EA-01EB 02BC # modifier letter apostrophe 0301 # combining acute accent, to be used with ogonek-ed forms of vowels fontconfig-2.11.1/fc-lang/ee.orth0000664000076400007640000000470412267155334013476 00000000000000# # fontconfig/fc-lang/ee.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Ewe (ee) # # Sources: # * http://www.uni-koeln.de/phil-fak/afrikanistik/down/publikationen/basic_ewe.pdf # * http://en.wikipedia.org/wiki/Ewe_language # * http://www.omniglot.com/writing/ewe.htm # * http://www.panafril10n.org/wikidoc/pmwiki.php/PanAfrLoc/Gbe # # We amend the main alphabet with tone marks over each vowel, but some # combinations lack precomposed forms in Unicode, so we also add indiviual # combining marks. # # Sources also differ on the notation used for the fourth tone: circumflex # vs combining line above (U+030D). At the moment, we are not including any # of the two. # # There is also a nasalization mark for vowels (combining tilde), but there # is a need for more research to find which vowels it's used with. The # combination of nasalization and tones may also exist, resulting in double # accents. # # C, J, and Q are not used. # 0041-005A 0061-007A 00C0-00C1 00C8-00C9 00CC-00CD 00D2-00D3 00D9-00DA 00E0-00E1 00E8-00E9 00EC-00ED 00F2-00F3 00F9-00FA 011A-011B 014A-014B 0186 0189 # 018A # according to Unicode characters notes for U+0257 0190-0192 0194 01B2 01CD-01D4 0254 0256 # 0257 # according to Unicode character notes 025B 0263 028B 0300-0301 # to be used with open e and open o # 0303 # combining tilde 030C # to be used with open e and open o # 030D # combining vertical line above fontconfig-2.11.1/fc-lang/zh_cn.orth0000664000076400007640000031060412267155334014205 00000000000000# # fontconfig/fc-lang/zh_cn.orth # # 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. # # Chinese (simplified) (ZH-CN) # # Coverage computed from GB2312 # 0x02C7 # CARON (Mandarin Chinese third tone) 0x02C9 # MODIFIER LETTER MACRON (Mandarin Chinese first tone) 0x4E00 # 0x4E01 # 0x4E03 # 0x4E07 # 0x4E08 # 0x4E09 # 0x4E0A # 0x4E0B # 0x4E0C # 0x4E0D # 0x4E0E # 0x4E10 # 0x4E11 # 0x4E13 # 0x4E14 # 0x4E15 # 0x4E16 # 0x4E18 # 0x4E19 # 0x4E1A # 0x4E1B # 0x4E1C # 0x4E1D # 0x4E1E # 0x4E22 # 0x4E24 # 0x4E25 # 0x4E27 # 0x4E28 # 0x4E2A # 0x4E2B # 0x4E2C # 0x4E2D # 0x4E30 # 0x4E32 # 0x4E34 # 0x4E36 # 0x4E38 # 0x4E39 # 0x4E3A # 0x4E3B # 0x4E3D # 0x4E3E # 0x4E3F # 0x4E43 # 0x4E45 # 0x4E47 # 0x4E48 # 0x4E49 # 0x4E4B # 0x4E4C # 0x4E4D # 0x4E4E # 0x4E4F # 0x4E50 # 0x4E52 # 0x4E53 # 0x4E54 # 0x4E56 # 0x4E58 # 0x4E59 # 0x4E5C # 0x4E5D # 0x4E5E # 0x4E5F # 0x4E60 # 0x4E61 # 0x4E66 # 0x4E69 # 0x4E70 # 0x4E71 # 0x4E73 # 0x4E7E # 0x4E86 # 0x4E88 # 0x4E89 # 0x4E8B # 0x4E8C # 0x4E8D # 0x4E8E # 0x4E8F # 0x4E91 # 0x4E92 # 0x4E93 # 0x4E94 # 0x4E95 # 0x4E98 # 0x4E9A # 0x4E9B # 0x4E9F # 0x4EA0 # 0x4EA1 # 0x4EA2 # 0x4EA4 # 0x4EA5 # 0x4EA6 # 0x4EA7 # 0x4EA8 # 0x4EA9 # 0x4EAB # 0x4EAC # 0x4EAD # 0x4EAE # 0x4EB2 # 0x4EB3 # 0x4EB5 # 0x4EBA # 0x4EBB # 0x4EBF # 0x4EC0 # 0x4EC1 # 0x4EC2 # 0x4EC3 # 0x4EC4 # 0x4EC5 # 0x4EC6 # 0x4EC7 # 0x4EC9 # 0x4ECA # 0x4ECB # 0x4ECD # 0x4ECE # 0x4ED1 # 0x4ED3 # 0x4ED4 # 0x4ED5 # 0x4ED6 # 0x4ED7 # 0x4ED8 # 0x4ED9 # 0x4EDD # 0x4EDE # 0x4EDF # 0x4EE1 # 0x4EE3 # 0x4EE4 # 0x4EE5 # 0x4EE8 # 0x4EEA # 0x4EEB # 0x4EEC # 0x4EF0 # 0x4EF2 # 0x4EF3 # 0x4EF5 # 0x4EF6 # 0x4EF7 # 0x4EFB # 0x4EFD # 0x4EFF # 0x4F01 # 0x4F09 # 0x4F0A # 0x4F0D # 0x4F0E # 0x4F0F # 0x4F10 # 0x4F11 # 0x4F17 # 0x4F18 # 0x4F19 # 0x4F1A # 0x4F1B # 0x4F1E # 0x4F1F # 0x4F20 # 0x4F22 # 0x4F24 # 0x4F25 # 0x4F26 # 0x4F27 # 0x4F2A # 0x4F2B # 0x4F2F # 0x4F30 # 0x4F32 # 0x4F34 # 0x4F36 # 0x4F38 # 0x4F3A # 0x4F3C # 0x4F3D # 0x4F43 # 0x4F46 # 0x4F4D # 0x4F4E # 0x4F4F # 0x4F50 # 0x4F51 # 0x4F53 # 0x4F55 # 0x4F57 # 0x4F58 # 0x4F59 # 0x4F5A # 0x4F5B # 0x4F5C # 0x4F5D # 0x4F5E # 0x4F5F # 0x4F60 # 0x4F63 # 0x4F64 # 0x4F65 # 0x4F67 # 0x4F69 # 0x4F6C # 0x4F6F # 0x4F70 # 0x4F73 # 0x4F74 # 0x4F76 # 0x4F7B # 0x4F7C # 0x4F7E # 0x4F7F # 0x4F83 # 0x4F84 # 0x4F88 # 0x4F89 # 0x4F8B # 0x4F8D # 0x4F8F # 0x4F91 # 0x4F94 # 0x4F97 # 0x4F9B # 0x4F9D # 0x4FA0 # 0x4FA3 # 0x4FA5 # 0x4FA6 # 0x4FA7 # 0x4FA8 # 0x4FA9 # 0x4FAA # 0x4FAC # 0x4FAE # 0x4FAF # 0x4FB5 # 0x4FBF # 0x4FC3 # 0x4FC4 # 0x4FC5 # 0x4FCA # 0x4FCE # 0x4FCF # 0x4FD0 # 0x4FD1 # 0x4FD7 # 0x4FD8 # 0x4FDA # 0x4FDC # 0x4FDD # 0x4FDE # 0x4FDF # 0x4FE1 # 0x4FE3 # 0x4FE6 # 0x4FE8 # 0x4FE9 # 0x4FEA # 0x4FED # 0x4FEE # 0x4FEF # 0x4FF1 # 0x4FF3 # 0x4FF8 # 0x4FFA # 0x4FFE # 0x500C # 0x500D # 0x500F # 0x5012 # 0x5014 # 0x5018 # 0x5019 # 0x501A # 0x501C # 0x501F # 0x5021 # 0x5025 # 0x5026 # 0x5028 # 0x5029 # 0x502A # 0x502C # 0x502D # 0x502E # 0x503A # 0x503C # 0x503E # 0x5043 # 0x5047 # 0x5048 # 0x504C # 0x504E # 0x504F # 0x5055 # 0x505A # 0x505C # 0x5065 # 0x506C # 0x5076 # 0x5077 # 0x507B # 0x507E # 0x507F # 0x5080 # 0x5085 # 0x5088 # 0x508D # 0x50A3 # 0x50A5 # 0x50A7 # 0x50A8 # 0x50A9 # 0x50AC # 0x50B2 # 0x50BA # 0x50BB # 0x50CF # 0x50D6 # 0x50DA # 0x50E6 # 0x50E7 # 0x50EC # 0x50ED # 0x50EE # 0x50F3 # 0x50F5 # 0x50FB # 0x5106 # 0x5107 # 0x510B # 0x5112 # 0x5121 # 0x513F # 0x5140 # 0x5141 # 0x5143 # 0x5144 # 0x5145 # 0x5146 # 0x5148 # 0x5149 # 0x514B # 0x514D # 0x5151 # 0x5154 # 0x5155 # 0x5156 # 0x515A # 0x515C # 0x5162 # 0x5165 # 0x5168 # 0x516B # 0x516C # 0x516D # 0x516E # 0x5170 # 0x5171 # 0x5173 # 0x5174 # 0x5175 # 0x5176 # 0x5177 # 0x5178 # 0x5179 # 0x517B # 0x517C # 0x517D # 0x5180 # 0x5181 # 0x5182 # 0x5185 # 0x5188 # 0x5189 # 0x518C # 0x518D # 0x5192 # 0x5195 # 0x5196 # 0x5197 # 0x5199 # 0x519B # 0x519C # 0x51A0 # 0x51A2 # 0x51A4 # 0x51A5 # 0x51AB # 0x51AC # 0x51AF # 0x51B0 # 0x51B1 # 0x51B2 # 0x51B3 # 0x51B5 # 0x51B6 # 0x51B7 # 0x51BB # 0x51BC # 0x51BD # 0x51C0 # 0x51C4 # 0x51C6 # 0x51C7 # 0x51C9 # 0x51CB # 0x51CC # 0x51CF # 0x51D1 # 0x51DB # 0x51DD # 0x51E0 # 0x51E1 # 0x51E4 # 0x51EB # 0x51ED # 0x51EF # 0x51F0 # 0x51F3 # 0x51F5 # 0x51F6 # 0x51F8 # 0x51F9 # 0x51FA # 0x51FB # 0x51FC # 0x51FD # 0x51FF # 0x5200 # 0x5201 # 0x5202 # 0x5203 # 0x5206 # 0x5207 # 0x5208 # 0x520A # 0x520D # 0x520E # 0x5211 # 0x5212 # 0x5216 # 0x5217 # 0x5218 # 0x5219 # 0x521A # 0x521B # 0x521D # 0x5220 # 0x5224 # 0x5228 # 0x5229 # 0x522B # 0x522D # 0x522E # 0x5230 # 0x5233 # 0x5236 # 0x5237 # 0x5238 # 0x5239 # 0x523A # 0x523B # 0x523D # 0x523F # 0x5240 # 0x5241 # 0x5242 # 0x5243 # 0x524A # 0x524C # 0x524D # 0x5250 # 0x5251 # 0x5254 # 0x5256 # 0x525C # 0x525E # 0x5261 # 0x5265 # 0x5267 # 0x5269 # 0x526A # 0x526F # 0x5272 # 0x527D # 0x527F # 0x5281 # 0x5282 # 0x5288 # 0x5290 # 0x5293 # 0x529B # 0x529D # 0x529E # 0x529F # 0x52A0 # 0x52A1 # 0x52A2 # 0x52A3 # 0x52A8 # 0x52A9 # 0x52AA # 0x52AB # 0x52AC # 0x52AD # 0x52B1 # 0x52B2 # 0x52B3 # 0x52BE # 0x52BF # 0x52C3 # 0x52C7 # 0x52C9 # 0x52CB # 0x52D0 # 0x52D2 # 0x52D6 # 0x52D8 # 0x52DF # 0x52E4 # 0x52F0 # 0x52F9 # 0x52FA # 0x52FE # 0x52FF # 0x5300 # 0x5305 # 0x5306 # 0x5308 # 0x530D # 0x530F # 0x5310 # 0x5315 # 0x5316 # 0x5317 # 0x5319 # 0x531A # 0x531D # 0x5320 # 0x5321 # 0x5323 # 0x5326 # 0x532A # 0x532E # 0x5339 # 0x533A # 0x533B # 0x533E # 0x533F # 0x5341 # 0x5343 # 0x5345 # 0x5347 # 0x5348 # 0x5349 # 0x534A # 0x534E # 0x534F # 0x5351 # 0x5352 # 0x5353 # 0x5355 # 0x5356 # 0x5357 # 0x535A # 0x535C # 0x535E # 0x535F # 0x5360 # 0x5361 # 0x5362 # 0x5363 # 0x5364 # 0x5366 # 0x5367 # 0x5369 # 0x536B # 0x536E # 0x536F # 0x5370 # 0x5371 # 0x5373 # 0x5374 # 0x5375 # 0x5377 # 0x5378 # 0x537A # 0x537F # 0x5382 # 0x5384 # 0x5385 # 0x5386 # 0x5389 # 0x538B # 0x538C # 0x538D # 0x5395 # 0x5398 # 0x539A # 0x539D # 0x539F # 0x53A2 # 0x53A3 # 0x53A5 # 0x53A6 # 0x53A8 # 0x53A9 # 0x53AE # 0x53B6 # 0x53BB # 0x53BF # 0x53C1 # 0x53C2 # 0x53C8 # 0x53C9 # 0x53CA # 0x53CB # 0x53CC # 0x53CD # 0x53D1 # 0x53D4 # 0x53D6 # 0x53D7 # 0x53D8 # 0x53D9 # 0x53DB # 0x53DF # 0x53E0 # 0x53E3 # 0x53E4 # 0x53E5 # 0x53E6 # 0x53E8 # 0x53E9 # 0x53EA # 0x53EB # 0x53EC # 0x53ED # 0x53EE # 0x53EF # 0x53F0 # 0x53F1 # 0x53F2 # 0x53F3 # 0x53F5 # 0x53F6 # 0x53F7 # 0x53F8 # 0x53F9 # 0x53FB # 0x53FC # 0x53FD # 0x5401 # 0x5403 # 0x5404 # 0x5406 # 0x5408 # 0x5409 # 0x540A # 0x540C # 0x540D # 0x540E # 0x540F # 0x5410 # 0x5411 # 0x5412 # 0x5413 # 0x5415 # 0x5416 # 0x5417 # 0x541B # 0x541D # 0x541E # 0x541F # 0x5420 # 0x5421 # 0x5423 # 0x5426 # 0x5427 # 0x5428 # 0x5429 # 0x542B # 0x542C # 0x542D # 0x542E # 0x542F # 0x5431 # 0x5432 # 0x5434 # 0x5435 # 0x5438 # 0x5439 # 0x543B # 0x543C # 0x543E # 0x5440 # 0x5443 # 0x5446 # 0x5448 # 0x544A # 0x544B # 0x5450 # 0x5452 # 0x5453 # 0x5454 # 0x5455 # 0x5456 # 0x5457 # 0x5458 # 0x5459 # 0x545B # 0x545C # 0x5462 # 0x5464 # 0x5466 # 0x5468 # 0x5471 # 0x5472 # 0x5473 # 0x5475 # 0x5476 # 0x5477 # 0x5478 # 0x547B # 0x547C # 0x547D # 0x5480 # 0x5482 # 0x5484 # 0x5486 # 0x548B # 0x548C # 0x548E # 0x548F # 0x5490 # 0x5492 # 0x5494 # 0x5495 # 0x5496 # 0x5499 # 0x549A # 0x549B # 0x549D # 0x54A3 # 0x54A4 # 0x54A6 # 0x54A7 # 0x54A8 # 0x54A9 # 0x54AA # 0x54AB # 0x54AC # 0x54AD # 0x54AF # 0x54B1 # 0x54B3 # 0x54B4 # 0x54B8 # 0x54BB # 0x54BD # 0x54BF # 0x54C0 # 0x54C1 # 0x54C2 # 0x54C4 # 0x54C6 # 0x54C7 # 0x54C8 # 0x54C9 # 0x54CC # 0x54CD # 0x54CE # 0x54CF # 0x54D0 # 0x54D1 # 0x54D2 # 0x54D3 # 0x54D4 # 0x54D5 # 0x54D7 # 0x54D9 # 0x54DA # 0x54DC # 0x54DD # 0x54DE # 0x54DF # 0x54E5 # 0x54E6 # 0x54E7 # 0x54E8 # 0x54E9 # 0x54EA # 0x54ED # 0x54EE # 0x54F2 # 0x54F3 # 0x54FA # 0x54FC # 0x54FD # 0x54FF # 0x5501 # 0x5506 # 0x5507 # 0x5509 # 0x550F # 0x5510 # 0x5511 # 0x5514 # 0x551B # 0x5520 # 0x5522 # 0x5523 # 0x5524 # 0x5527 # 0x552A # 0x552C # 0x552E # 0x552F # 0x5530 # 0x5531 # 0x5533 # 0x5537 # 0x553C # 0x553E # 0x553F # 0x5541 # 0x5543 # 0x5544 # 0x5546 # 0x5549 # 0x554A # 0x5550 # 0x5555 # 0x5556 # 0x555C # 0x5561 # 0x5564 # 0x5565 # 0x5566 # 0x5567 # 0x556A # 0x556C # 0x556D # 0x556E # 0x5575 # 0x5576 # 0x5577 # 0x5578 # 0x557B # 0x557C # 0x557E # 0x5580 # 0x5581 # 0x5582 # 0x5583 # 0x5584 # 0x5587 # 0x5588 # 0x5589 # 0x558A # 0x558B # 0x558F # 0x5591 # 0x5594 # 0x5598 # 0x5599 # 0x559C # 0x559D # 0x559F # 0x55A7 # 0x55B1 # 0x55B3 # 0x55B5 # 0x55B7 # 0x55B9 # 0x55BB # 0x55BD # 0x55BE # 0x55C4 # 0x55C5 # 0x55C9 # 0x55CC # 0x55CD # 0x55D1 # 0x55D2 # 0x55D3 # 0x55D4 # 0x55D6 # 0x55DC # 0x55DD # 0x55DF # 0x55E1 # 0x55E3 # 0x55E4 # 0x55E5 # 0x55E6 # 0x55E8 # 0x55EA # 0x55EB # 0x55EC # 0x55EF # 0x55F2 # 0x55F3 # 0x55F5 # 0x55F7 # 0x55FD # 0x55FE # 0x5600 # 0x5601 # 0x5608 # 0x5609 # 0x560C # 0x560E # 0x560F # 0x5618 # 0x561B # 0x561E # 0x561F # 0x5623 # 0x5624 # 0x5627 # 0x562C # 0x562D # 0x5631 # 0x5632 # 0x5634 # 0x5636 # 0x5639 # 0x563B # 0x563F # 0x564C # 0x564D # 0x564E # 0x5654 # 0x5657 # 0x5658 # 0x5659 # 0x565C # 0x5662 # 0x5664 # 0x5668 # 0x5669 # 0x566A # 0x566B # 0x566C # 0x5671 # 0x5676 # 0x567B # 0x567C # 0x5685 # 0x5686 # 0x568E # 0x568F # 0x5693 # 0x56A3 # 0x56AF # 0x56B7 # 0x56BC # 0x56CA # 0x56D4 # 0x56D7 # 0x56DA # 0x56DB # 0x56DD # 0x56DE # 0x56DF # 0x56E0 # 0x56E1 # 0x56E2 # 0x56E4 # 0x56EB # 0x56ED # 0x56F0 # 0x56F1 # 0x56F4 # 0x56F5 # 0x56F9 # 0x56FA # 0x56FD # 0x56FE # 0x56FF # 0x5703 # 0x5704 # 0x5706 # 0x5708 # 0x5709 # 0x570A # 0x571C # 0x571F # 0x5723 # 0x5728 # 0x5729 # 0x572A # 0x572C # 0x572D # 0x572E # 0x572F # 0x5730 # 0x5733 # 0x5739 # 0x573A # 0x573B # 0x573E # 0x5740 # 0x5742 # 0x5747 # 0x574A # 0x574C # 0x574D # 0x574E # 0x574F # 0x5750 # 0x5751 # 0x5757 # 0x575A # 0x575B # 0x575C # 0x575D # 0x575E # 0x575F # 0x5760 # 0x5761 # 0x5764 # 0x5766 # 0x5768 # 0x5769 # 0x576A # 0x576B # 0x576D # 0x576F # 0x5773 # 0x5776 # 0x5777 # 0x577B # 0x577C # 0x5782 # 0x5783 # 0x5784 # 0x5785 # 0x5786 # 0x578B # 0x578C # 0x5792 # 0x5793 # 0x579B # 0x57A0 # 0x57A1 # 0x57A2 # 0x57A3 # 0x57A4 # 0x57A6 # 0x57A7 # 0x57A9 # 0x57AB # 0x57AD # 0x57AE # 0x57B2 # 0x57B4 # 0x57B8 # 0x57C2 # 0x57C3 # 0x57CB # 0x57CE # 0x57CF # 0x57D2 # 0x57D4 # 0x57D5 # 0x57D8 # 0x57D9 # 0x57DA # 0x57DD # 0x57DF # 0x57E0 # 0x57E4 # 0x57ED # 0x57EF # 0x57F4 # 0x57F8 # 0x57F9 # 0x57FA # 0x57FD # 0x5800 # 0x5802 # 0x5806 # 0x5807 # 0x580B # 0x580D # 0x5811 # 0x5815 # 0x5819 # 0x581E # 0x5820 # 0x5821 # 0x5824 # 0x582A # 0x5830 # 0x5835 # 0x5844 # 0x584C # 0x584D # 0x5851 # 0x5854 # 0x5858 # 0x585E # 0x5865 # 0x586B # 0x586C # 0x587E # 0x5880 # 0x5881 # 0x5883 # 0x5885 # 0x5889 # 0x5892 # 0x5893 # 0x5899 # 0x589A # 0x589E # 0x589F # 0x58A8 # 0x58A9 # 0x58BC # 0x58C1 # 0x58C5 # 0x58D1 # 0x58D5 # 0x58E4 # 0x58EB # 0x58EC # 0x58EE # 0x58F0 # 0x58F3 # 0x58F6 # 0x58F9 # 0x5902 # 0x5904 # 0x5907 # 0x590D # 0x590F # 0x5914 # 0x5915 # 0x5916 # 0x5919 # 0x591A # 0x591C # 0x591F # 0x5924 # 0x5925 # 0x5927 # 0x5929 # 0x592A # 0x592B # 0x592D # 0x592E # 0x592F # 0x5931 # 0x5934 # 0x5937 # 0x5938 # 0x5939 # 0x593A # 0x593C # 0x5941 # 0x5942 # 0x5944 # 0x5947 # 0x5948 # 0x5949 # 0x594B # 0x594E # 0x594F # 0x5951 # 0x5954 # 0x5955 # 0x5956 # 0x5957 # 0x5958 # 0x595A # 0x5960 # 0x5962 # 0x5965 # 0x5973 # 0x5974 # 0x5976 # 0x5978 # 0x5979 # 0x597D # 0x5981 # 0x5982 # 0x5983 # 0x5984 # 0x5986 # 0x5987 # 0x5988 # 0x598A # 0x598D # 0x5992 # 0x5993 # 0x5996 # 0x5997 # 0x5999 # 0x599E # 0x59A3 # 0x59A4 # 0x59A5 # 0x59A8 # 0x59A9 # 0x59AA # 0x59AB # 0x59AE # 0x59AF # 0x59B2 # 0x59B9 # 0x59BB # 0x59BE # 0x59C6 # 0x59CA # 0x59CB # 0x59D0 # 0x59D1 # 0x59D2 # 0x59D3 # 0x59D4 # 0x59D7 # 0x59D8 # 0x59DA # 0x59DC # 0x59DD # 0x59E3 # 0x59E5 # 0x59E8 # 0x59EC # 0x59F9 # 0x59FB # 0x59FF # 0x5A01 # 0x5A03 # 0x5A04 # 0x5A05 # 0x5A06 # 0x5A07 # 0x5A08 # 0x5A09 # 0x5A0C # 0x5A11 # 0x5A13 # 0x5A18 # 0x5A1C # 0x5A1F # 0x5A20 # 0x5A23 # 0x5A25 # 0x5A29 # 0x5A31 # 0x5A32 # 0x5A34 # 0x5A36 # 0x5A3C # 0x5A40 # 0x5A46 # 0x5A49 # 0x5A4A # 0x5A55 # 0x5A5A # 0x5A62 # 0x5A67 # 0x5A6A # 0x5A74 # 0x5A75 # 0x5A76 # 0x5A77 # 0x5A7A # 0x5A7F # 0x5A92 # 0x5A9A # 0x5A9B # 0x5AAA # 0x5AB2 # 0x5AB3 # 0x5AB5 # 0x5AB8 # 0x5ABE # 0x5AC1 # 0x5AC2 # 0x5AC9 # 0x5ACC # 0x5AD2 # 0x5AD4 # 0x5AD6 # 0x5AD8 # 0x5ADC # 0x5AE0 # 0x5AE1 # 0x5AE3 # 0x5AE6 # 0x5AE9 # 0x5AEB # 0x5AF1 # 0x5B09 # 0x5B16 # 0x5B17 # 0x5B32 # 0x5B34 # 0x5B37 # 0x5B40 # 0x5B50 # 0x5B51 # 0x5B53 # 0x5B54 # 0x5B55 # 0x5B57 # 0x5B58 # 0x5B59 # 0x5B5A # 0x5B5B # 0x5B5C # 0x5B5D # 0x5B5F # 0x5B62 # 0x5B63 # 0x5B64 # 0x5B65 # 0x5B66 # 0x5B69 # 0x5B6A # 0x5B6C # 0x5B70 # 0x5B71 # 0x5B73 # 0x5B75 # 0x5B7A # 0x5B7D # 0x5B80 # 0x5B81 # 0x5B83 # 0x5B84 # 0x5B85 # 0x5B87 # 0x5B88 # 0x5B89 # 0x5B8B # 0x5B8C # 0x5B8F # 0x5B93 # 0x5B95 # 0x5B97 # 0x5B98 # 0x5B99 # 0x5B9A # 0x5B9B # 0x5B9C # 0x5B9D # 0x5B9E # 0x5BA0 # 0x5BA1 # 0x5BA2 # 0x5BA3 # 0x5BA4 # 0x5BA5 # 0x5BA6 # 0x5BAA # 0x5BAB # 0x5BB0 # 0x5BB3 # 0x5BB4 # 0x5BB5 # 0x5BB6 # 0x5BB8 # 0x5BB9 # 0x5BBD # 0x5BBE # 0x5BBF # 0x5BC2 # 0x5BC4 # 0x5BC5 # 0x5BC6 # 0x5BC7 # 0x5BCC # 0x5BD0 # 0x5BD2 # 0x5BD3 # 0x5BDD # 0x5BDE # 0x5BDF # 0x5BE1 # 0x5BE4 # 0x5BE5 # 0x5BE8 # 0x5BEE # 0x5BF0 # 0x5BF8 # 0x5BF9 # 0x5BFA # 0x5BFB # 0x5BFC # 0x5BFF # 0x5C01 # 0x5C04 # 0x5C06 # 0x5C09 # 0x5C0A # 0x5C0F # 0x5C11 # 0x5C14 # 0x5C15 # 0x5C16 # 0x5C18 # 0x5C1A # 0x5C1C # 0x5C1D # 0x5C22 # 0x5C24 # 0x5C25 # 0x5C27 # 0x5C2C # 0x5C31 # 0x5C34 # 0x5C38 # 0x5C39 # 0x5C3A # 0x5C3B # 0x5C3C # 0x5C3D # 0x5C3E # 0x5C3F # 0x5C40 # 0x5C41 # 0x5C42 # 0x5C45 # 0x5C48 # 0x5C49 # 0x5C4A # 0x5C4B # 0x5C4E # 0x5C4F # 0x5C50 # 0x5C51 # 0x5C55 # 0x5C59 # 0x5C5E # 0x5C60 # 0x5C61 # 0x5C63 # 0x5C65 # 0x5C66 # 0x5C6E # 0x5C6F # 0x5C71 # 0x5C79 # 0x5C7A # 0x5C7F # 0x5C81 # 0x5C82 # 0x5C88 # 0x5C8C # 0x5C8D # 0x5C90 # 0x5C91 # 0x5C94 # 0x5C96 # 0x5C97 # 0x5C98 # 0x5C99 # 0x5C9A # 0x5C9B # 0x5C9C # 0x5CA2 # 0x5CA3 # 0x5CA9 # 0x5CAB # 0x5CAC # 0x5CAD # 0x5CB1 # 0x5CB3 # 0x5CB5 # 0x5CB7 # 0x5CB8 # 0x5CBD # 0x5CBF # 0x5CC1 # 0x5CC4 # 0x5CCB # 0x5CD2 # 0x5CD9 # 0x5CE1 # 0x5CE4 # 0x5CE5 # 0x5CE6 # 0x5CE8 # 0x5CEA # 0x5CED # 0x5CF0 # 0x5CFB # 0x5D02 # 0x5D03 # 0x5D06 # 0x5D07 # 0x5D0E # 0x5D14 # 0x5D16 # 0x5D1B # 0x5D1E # 0x5D24 # 0x5D26 # 0x5D27 # 0x5D29 # 0x5D2D # 0x5D2E # 0x5D34 # 0x5D3D # 0x5D3E # 0x5D47 # 0x5D4A # 0x5D4B # 0x5D4C # 0x5D58 # 0x5D5B # 0x5D5D # 0x5D69 # 0x5D6B # 0x5D6C # 0x5D6F # 0x5D74 # 0x5D82 # 0x5D99 # 0x5D9D # 0x5DB7 # 0x5DC5 # 0x5DCD # 0x5DDB # 0x5DDD # 0x5DDE # 0x5DE1 # 0x5DE2 # 0x5DE5 # 0x5DE6 # 0x5DE7 # 0x5DE8 # 0x5DE9 # 0x5DEB # 0x5DEE # 0x5DEF # 0x5DF1 # 0x5DF2 # 0x5DF3 # 0x5DF4 # 0x5DF7 # 0x5DFD # 0x5DFE # 0x5E01 # 0x5E02 # 0x5E03 # 0x5E05 # 0x5E06 # 0x5E08 # 0x5E0C # 0x5E0F # 0x5E10 # 0x5E11 # 0x5E14 # 0x5E15 # 0x5E16 # 0x5E18 # 0x5E19 # 0x5E1A # 0x5E1B # 0x5E1C # 0x5E1D # 0x5E26 # 0x5E27 # 0x5E2D # 0x5E2E # 0x5E31 # 0x5E37 # 0x5E38 # 0x5E3B # 0x5E3C # 0x5E3D # 0x5E42 # 0x5E44 # 0x5E45 # 0x5E4C # 0x5E54 # 0x5E55 # 0x5E5B # 0x5E5E # 0x5E61 # 0x5E62 # 0x5E72 # 0x5E73 # 0x5E74 # 0x5E76 # 0x5E78 # 0x5E7A # 0x5E7B # 0x5E7C # 0x5E7D # 0x5E7F # 0x5E80 # 0x5E84 # 0x5E86 # 0x5E87 # 0x5E8A # 0x5E8B # 0x5E8F # 0x5E90 # 0x5E91 # 0x5E93 # 0x5E94 # 0x5E95 # 0x5E96 # 0x5E97 # 0x5E99 # 0x5E9A # 0x5E9C # 0x5E9E # 0x5E9F # 0x5EA0 # 0x5EA5 # 0x5EA6 # 0x5EA7 # 0x5EAD # 0x5EB3 # 0x5EB5 # 0x5EB6 # 0x5EB7 # 0x5EB8 # 0x5EB9 # 0x5EBE # 0x5EC9 # 0x5ECA # 0x5ED1 # 0x5ED2 # 0x5ED3 # 0x5ED6 # 0x5EDB # 0x5EE8 # 0x5EEA # 0x5EF4 # 0x5EF6 # 0x5EF7 # 0x5EFA # 0x5EFE # 0x5EFF # 0x5F00 # 0x5F01 # 0x5F02 # 0x5F03 # 0x5F04 # 0x5F08 # 0x5F0A # 0x5F0B # 0x5F0F # 0x5F11 # 0x5F13 # 0x5F15 # 0x5F17 # 0x5F18 # 0x5F1B # 0x5F1F # 0x5F20 # 0x5F25 # 0x5F26 # 0x5F27 # 0x5F29 # 0x5F2A # 0x5F2D # 0x5F2F # 0x5F31 # 0x5F39 # 0x5F3A # 0x5F3C # 0x5F40 # 0x5F50 # 0x5F52 # 0x5F53 # 0x5F55 # 0x5F56 # 0x5F57 # 0x5F58 # 0x5F5D # 0x5F61 # 0x5F62 # 0x5F64 # 0x5F66 # 0x5F69 # 0x5F6A # 0x5F6C # 0x5F6D # 0x5F70 # 0x5F71 # 0x5F73 # 0x5F77 # 0x5F79 # 0x5F7B # 0x5F7C # 0x5F80 # 0x5F81 # 0x5F82 # 0x5F84 # 0x5F85 # 0x5F87 # 0x5F88 # 0x5F89 # 0x5F8A # 0x5F8B # 0x5F8C # 0x5F90 # 0x5F92 # 0x5F95 # 0x5F97 # 0x5F98 # 0x5F99 # 0x5F9C # 0x5FA1 # 0x5FA8 # 0x5FAA # 0x5FAD # 0x5FAE # 0x5FB5 # 0x5FB7 # 0x5FBC # 0x5FBD # 0x5FC3 # 0x5FC4 # 0x5FC5 # 0x5FC6 # 0x5FC9 # 0x5FCC # 0x5FCD # 0x5FCF # 0x5FD0 # 0x5FD1 # 0x5FD2 # 0x5FD6 # 0x5FD7 # 0x5FD8 # 0x5FD9 # 0x5FDD # 0x5FE0 # 0x5FE1 # 0x5FE4 # 0x5FE7 # 0x5FEA # 0x5FEB # 0x5FED # 0x5FEE # 0x5FF1 # 0x5FF5 # 0x5FF8 # 0x5FFB # 0x5FFD # 0x5FFE # 0x5FFF # 0x6000 # 0x6001 # 0x6002 # 0x6003 # 0x6004 # 0x6005 # 0x6006 # 0x600A # 0x600D # 0x600E # 0x600F # 0x6012 # 0x6014 # 0x6015 # 0x6016 # 0x6019 # 0x601B # 0x601C # 0x601D # 0x6020 # 0x6021 # 0x6025 # 0x6026 # 0x6027 # 0x6028 # 0x6029 # 0x602A # 0x602B # 0x602F # 0x6035 # 0x603B # 0x603C # 0x603F # 0x6041 # 0x6042 # 0x6043 # 0x604B # 0x604D # 0x6050 # 0x6052 # 0x6055 # 0x6059 # 0x605A # 0x605D # 0x6062 # 0x6063 # 0x6064 # 0x6067 # 0x6068 # 0x6069 # 0x606A # 0x606B # 0x606C # 0x606D # 0x606F # 0x6070 # 0x6073 # 0x6076 # 0x6078 # 0x6079 # 0x607A # 0x607B # 0x607C # 0x607D # 0x607F # 0x6083 # 0x6084 # 0x6089 # 0x608C # 0x608D # 0x6092 # 0x6094 # 0x6096 # 0x609A # 0x609B # 0x609D # 0x609F # 0x60A0 # 0x60A3 # 0x60A6 # 0x60A8 # 0x60AB # 0x60AC # 0x60AD # 0x60AF # 0x60B1 # 0x60B2 # 0x60B4 # 0x60B8 # 0x60BB # 0x60BC # 0x60C5 # 0x60C6 # 0x60CA # 0x60CB # 0x60D1 # 0x60D5 # 0x60D8 # 0x60DA # 0x60DC # 0x60DD # 0x60DF # 0x60E0 # 0x60E6 # 0x60E7 # 0x60E8 # 0x60E9 # 0x60EB # 0x60EC # 0x60ED # 0x60EE # 0x60EF # 0x60F0 # 0x60F3 # 0x60F4 # 0x60F6 # 0x60F9 # 0x60FA # 0x6100 # 0x6101 # 0x6106 # 0x6108 # 0x6109 # 0x610D # 0x610E # 0x610F # 0x6115 # 0x611A # 0x611F # 0x6120 # 0x6123 # 0x6124 # 0x6126 # 0x6127 # 0x612B # 0x613F # 0x6148 # 0x614A # 0x614C # 0x614E # 0x6151 # 0x6155 # 0x615D # 0x6162 # 0x6167 # 0x6168 # 0x6170 # 0x6175 # 0x6177 # 0x618B # 0x618E # 0x6194 # 0x619D # 0x61A7 # 0x61A8 # 0x61A9 # 0x61AC # 0x61B7 # 0x61BE # 0x61C2 # 0x61C8 # 0x61CA # 0x61CB # 0x61D1 # 0x61D2 # 0x61D4 # 0x61E6 # 0x61F5 # 0x61FF # 0x6206 # 0x6208 # 0x620A # 0x620B # 0x620C # 0x620D # 0x620E # 0x620F # 0x6210 # 0x6211 # 0x6212 # 0x6215 # 0x6216 # 0x6217 # 0x6218 # 0x621A # 0x621B # 0x621F # 0x6221 # 0x6222 # 0x6224 # 0x6225 # 0x622A # 0x622C # 0x622E # 0x6233 # 0x6234 # 0x6237 # 0x623D # 0x623E # 0x623F # 0x6240 # 0x6241 # 0x6243 # 0x6247 # 0x6248 # 0x6249 # 0x624B # 0x624C # 0x624D # 0x624E # 0x6251 # 0x6252 # 0x6253 # 0x6254 # 0x6258 # 0x625B # 0x6263 # 0x6266 # 0x6267 # 0x6269 # 0x626A # 0x626B # 0x626C # 0x626D # 0x626E # 0x626F # 0x6270 # 0x6273 # 0x6276 # 0x6279 # 0x627C # 0x627E # 0x627F # 0x6280 # 0x6284 # 0x6289 # 0x628A # 0x6291 # 0x6292 # 0x6293 # 0x6295 # 0x6296 # 0x6297 # 0x6298 # 0x629A # 0x629B # 0x629F # 0x62A0 # 0x62A1 # 0x62A2 # 0x62A4 # 0x62A5 # 0x62A8 # 0x62AB # 0x62AC # 0x62B1 # 0x62B5 # 0x62B9 # 0x62BB # 0x62BC # 0x62BD # 0x62BF # 0x62C2 # 0x62C4 # 0x62C5 # 0x62C6 # 0x62C7 # 0x62C8 # 0x62C9 # 0x62CA # 0x62CC # 0x62CD # 0x62CE # 0x62D0 # 0x62D2 # 0x62D3 # 0x62D4 # 0x62D6 # 0x62D7 # 0x62D8 # 0x62D9 # 0x62DA # 0x62DB # 0x62DC # 0x62DF # 0x62E2 # 0x62E3 # 0x62E5 # 0x62E6 # 0x62E7 # 0x62E8 # 0x62E9 # 0x62EC # 0x62ED # 0x62EE # 0x62EF # 0x62F1 # 0x62F3 # 0x62F4 # 0x62F6 # 0x62F7 # 0x62FC # 0x62FD # 0x62FE # 0x62FF # 0x6301 # 0x6302 # 0x6307 # 0x6308 # 0x6309 # 0x630E # 0x6311 # 0x6316 # 0x631A # 0x631B # 0x631D # 0x631E # 0x631F # 0x6320 # 0x6321 # 0x6322 # 0x6323 # 0x6324 # 0x6325 # 0x6328 # 0x632A # 0x632B # 0x632F # 0x6332 # 0x6339 # 0x633A # 0x633D # 0x6342 # 0x6343 # 0x6345 # 0x6346 # 0x6349 # 0x634B # 0x634C # 0x634D # 0x634E # 0x634F # 0x6350 # 0x6355 # 0x635E # 0x635F # 0x6361 # 0x6362 # 0x6363 # 0x6367 # 0x6369 # 0x636D # 0x636E # 0x6371 # 0x6376 # 0x6377 # 0x637A # 0x637B # 0x6380 # 0x6382 # 0x6387 # 0x6388 # 0x6389 # 0x638A # 0x638C # 0x638E # 0x638F # 0x6390 # 0x6392 # 0x6396 # 0x6398 # 0x63A0 # 0x63A2 # 0x63A3 # 0x63A5 # 0x63A7 # 0x63A8 # 0x63A9 # 0x63AA # 0x63AC # 0x63AD # 0x63AE # 0x63B0 # 0x63B3 # 0x63B4 # 0x63B7 # 0x63B8 # 0x63BA # 0x63BC # 0x63BE # 0x63C4 # 0x63C6 # 0x63C9 # 0x63CD # 0x63CE # 0x63CF # 0x63D0 # 0x63D2 # 0x63D6 # 0x63DE # 0x63E0 # 0x63E1 # 0x63E3 # 0x63E9 # 0x63EA # 0x63ED # 0x63F2 # 0x63F4 # 0x63F6 # 0x63F8 # 0x63FD # 0x63FF # 0x6400 # 0x6401 # 0x6402 # 0x6405 # 0x640B # 0x640C # 0x640F # 0x6410 # 0x6413 # 0x6414 # 0x641B # 0x641C # 0x641E # 0x6420 # 0x6421 # 0x6426 # 0x642A # 0x642C # 0x642D # 0x6434 # 0x643A # 0x643D # 0x643F # 0x6441 # 0x6444 # 0x6445 # 0x6446 # 0x6447 # 0x6448 # 0x644A # 0x6452 # 0x6454 # 0x6458 # 0x645E # 0x6467 # 0x6469 # 0x646D # 0x6478 # 0x6479 # 0x647A # 0x6482 # 0x6484 # 0x6485 # 0x6487 # 0x6491 # 0x6492 # 0x6495 # 0x6496 # 0x6499 # 0x649E # 0x64A4 # 0x64A9 # 0x64AC # 0x64AD # 0x64AE # 0x64B0 # 0x64B5 # 0x64B7 # 0x64B8 # 0x64BA # 0x64BC # 0x64C0 # 0x64C2 # 0x64C5 # 0x64CD # 0x64CE # 0x64D0 # 0x64D2 # 0x64D7 # 0x64D8 # 0x64DE # 0x64E2 # 0x64E4 # 0x64E6 # 0x6500 # 0x6509 # 0x6512 # 0x6518 # 0x6525 # 0x652B # 0x652E # 0x652F # 0x6534 # 0x6535 # 0x6536 # 0x6538 # 0x6539 # 0x653B # 0x653E # 0x653F # 0x6545 # 0x6548 # 0x6549 # 0x654C # 0x654F # 0x6551 # 0x6555 # 0x6556 # 0x6559 # 0x655B # 0x655D # 0x655E # 0x6562 # 0x6563 # 0x6566 # 0x656B # 0x656C # 0x6570 # 0x6572 # 0x6574 # 0x6577 # 0x6587 # 0x658B # 0x658C # 0x6590 # 0x6591 # 0x6593 # 0x6597 # 0x6599 # 0x659B # 0x659C # 0x659F # 0x65A1 # 0x65A4 # 0x65A5 # 0x65A7 # 0x65A9 # 0x65AB # 0x65AD # 0x65AF # 0x65B0 # 0x65B9 # 0x65BC # 0x65BD # 0x65C1 # 0x65C3 # 0x65C4 # 0x65C5 # 0x65C6 # 0x65CB # 0x65CC # 0x65CE # 0x65CF # 0x65D2 # 0x65D6 # 0x65D7 # 0x65E0 # 0x65E2 # 0x65E5 # 0x65E6 # 0x65E7 # 0x65E8 # 0x65E9 # 0x65EC # 0x65ED # 0x65EE # 0x65EF # 0x65F0 # 0x65F1 # 0x65F6 # 0x65F7 # 0x65FA # 0x6600 # 0x6602 # 0x6603 # 0x6606 # 0x660A # 0x660C # 0x660E # 0x660F # 0x6613 # 0x6614 # 0x6615 # 0x6619 # 0x661D # 0x661F # 0x6620 # 0x6625 # 0x6627 # 0x6628 # 0x662D # 0x662F # 0x6631 # 0x6634 # 0x6635 # 0x6636 # 0x663C # 0x663E # 0x6641 # 0x6643 # 0x664B # 0x664C # 0x664F # 0x6652 # 0x6653 # 0x6654 # 0x6655 # 0x6656 # 0x6657 # 0x665A # 0x665F # 0x6661 # 0x6664 # 0x6666 # 0x6668 # 0x666E # 0x666F # 0x6670 # 0x6674 # 0x6676 # 0x6677 # 0x667A # 0x667E # 0x6682 # 0x6684 # 0x6687 # 0x668C # 0x6691 # 0x6696 # 0x6697 # 0x669D # 0x66A7 # 0x66A8 # 0x66AE # 0x66B4 # 0x66B9 # 0x66BE # 0x66D9 # 0x66DB # 0x66DC # 0x66DD # 0x66E6 # 0x66E9 # 0x66F0 # 0x66F2 # 0x66F3 # 0x66F4 # 0x66F7 # 0x66F9 # 0x66FC # 0x66FE # 0x66FF # 0x6700 # 0x6708 # 0x6709 # 0x670A # 0x670B # 0x670D # 0x6710 # 0x6714 # 0x6715 # 0x6717 # 0x671B # 0x671D # 0x671F # 0x6726 # 0x6728 # 0x672A # 0x672B # 0x672C # 0x672D # 0x672F # 0x6731 # 0x6734 # 0x6735 # 0x673A # 0x673D # 0x6740 # 0x6742 # 0x6743 # 0x6746 # 0x6748 # 0x6749 # 0x674C # 0x674E # 0x674F # 0x6750 # 0x6751 # 0x6753 # 0x6756 # 0x675C # 0x675E # 0x675F # 0x6760 # 0x6761 # 0x6765 # 0x6768 # 0x6769 # 0x676A # 0x676D # 0x676F # 0x6770 # 0x6772 # 0x6773 # 0x6775 # 0x6777 # 0x677C # 0x677E # 0x677F # 0x6781 # 0x6784 # 0x6787 # 0x6789 # 0x678B # 0x6790 # 0x6795 # 0x6797 # 0x6798 # 0x679A # 0x679C # 0x679D # 0x679E # 0x67A2 # 0x67A3 # 0x67A5 # 0x67A7 # 0x67A8 # 0x67AA # 0x67AB # 0x67AD # 0x67AF # 0x67B0 # 0x67B3 # 0x67B5 # 0x67B6 # 0x67B7 # 0x67B8 # 0x67C1 # 0x67C3 # 0x67C4 # 0x67CF # 0x67D0 # 0x67D1 # 0x67D2 # 0x67D3 # 0x67D4 # 0x67D8 # 0x67D9 # 0x67DA # 0x67DC # 0x67DD # 0x67DE # 0x67E0 # 0x67E2 # 0x67E5 # 0x67E9 # 0x67EC # 0x67EF # 0x67F0 # 0x67F1 # 0x67F3 # 0x67F4 # 0x67FD # 0x67FF # 0x6800 # 0x6805 # 0x6807 # 0x6808 # 0x6809 # 0x680A # 0x680B # 0x680C # 0x680E # 0x680F # 0x6811 # 0x6813 # 0x6816 # 0x6817 # 0x681D # 0x6821 # 0x6829 # 0x682A # 0x6832 # 0x6833 # 0x6837 # 0x6838 # 0x6839 # 0x683C # 0x683D # 0x683E # 0x6840 # 0x6841 # 0x6842 # 0x6843 # 0x6844 # 0x6845 # 0x6846 # 0x6848 # 0x6849 # 0x684A # 0x684C # 0x684E # 0x6850 # 0x6851 # 0x6853 # 0x6854 # 0x6855 # 0x6860 # 0x6861 # 0x6862 # 0x6863 # 0x6864 # 0x6865 # 0x6866 # 0x6867 # 0x6868 # 0x6869 # 0x686B # 0x6874 # 0x6876 # 0x6877 # 0x6881 # 0x6883 # 0x6885 # 0x6886 # 0x688F # 0x6893 # 0x6897 # 0x68A2 # 0x68A6 # 0x68A7 # 0x68A8 # 0x68AD # 0x68AF # 0x68B0 # 0x68B3 # 0x68B5 # 0x68C0 # 0x68C2 # 0x68C9 # 0x68CB # 0x68CD # 0x68D2 # 0x68D5 # 0x68D8 # 0x68DA # 0x68E0 # 0x68E3 # 0x68EE # 0x68F0 # 0x68F1 # 0x68F5 # 0x68F9 # 0x68FA # 0x68FC # 0x6901 # 0x6905 # 0x690B # 0x690D # 0x690E # 0x6910 # 0x6912 # 0x691F # 0x6920 # 0x6924 # 0x692D # 0x6930 # 0x6934 # 0x6939 # 0x693D # 0x693F # 0x6942 # 0x6954 # 0x6957 # 0x695A # 0x695D # 0x695E # 0x6960 # 0x6963 # 0x6966 # 0x696B # 0x696E # 0x6971 # 0x6977 # 0x6978 # 0x6979 # 0x697C # 0x6980 # 0x6982 # 0x6984 # 0x6986 # 0x6987 # 0x6988 # 0x6989 # 0x698D # 0x6994 # 0x6995 # 0x6998 # 0x699B # 0x699C # 0x69A7 # 0x69A8 # 0x69AB # 0x69AD # 0x69B1 # 0x69B4 # 0x69B7 # 0x69BB # 0x69C1 # 0x69CA # 0x69CC # 0x69CE # 0x69D0 # 0x69D4 # 0x69DB # 0x69DF # 0x69E0 # 0x69ED # 0x69F2 # 0x69FD # 0x69FF # 0x6A0A # 0x6A17 # 0x6A18 # 0x6A1F # 0x6A21 # 0x6A28 # 0x6A2A # 0x6A2F # 0x6A31 # 0x6A35 # 0x6A3D # 0x6A3E # 0x6A44 # 0x6A47 # 0x6A50 # 0x6A58 # 0x6A59 # 0x6A5B # 0x6A61 # 0x6A65 # 0x6A71 # 0x6A79 # 0x6A7C # 0x6A80 # 0x6A84 # 0x6A8E # 0x6A90 # 0x6A91 # 0x6A97 # 0x6AA0 # 0x6AA9 # 0x6AAB # 0x6AAC # 0x6B20 # 0x6B21 # 0x6B22 # 0x6B23 # 0x6B24 # 0x6B27 # 0x6B32 # 0x6B37 # 0x6B39 # 0x6B3A # 0x6B3E # 0x6B43 # 0x6B46 # 0x6B47 # 0x6B49 # 0x6B4C # 0x6B59 # 0x6B62 # 0x6B63 # 0x6B64 # 0x6B65 # 0x6B66 # 0x6B67 # 0x6B6A # 0x6B79 # 0x6B7B # 0x6B7C # 0x6B81 # 0x6B82 # 0x6B83 # 0x6B84 # 0x6B86 # 0x6B87 # 0x6B89 # 0x6B8A # 0x6B8B # 0x6B8D # 0x6B92 # 0x6B93 # 0x6B96 # 0x6B9A # 0x6B9B # 0x6BA1 # 0x6BAA # 0x6BB3 # 0x6BB4 # 0x6BB5 # 0x6BB7 # 0x6BBF # 0x6BC1 # 0x6BC2 # 0x6BC5 # 0x6BCB # 0x6BCD # 0x6BCF # 0x6BD2 # 0x6BD3 # 0x6BD4 # 0x6BD5 # 0x6BD6 # 0x6BD7 # 0x6BD9 # 0x6BDB # 0x6BE1 # 0x6BEA # 0x6BEB # 0x6BEF # 0x6BF3 # 0x6BF5 # 0x6BF9 # 0x6BFD # 0x6C05 # 0x6C06 # 0x6C07 # 0x6C0D # 0x6C0F # 0x6C10 # 0x6C11 # 0x6C13 # 0x6C14 # 0x6C15 # 0x6C16 # 0x6C18 # 0x6C19 # 0x6C1A # 0x6C1B # 0x6C1F # 0x6C21 # 0x6C22 # 0x6C24 # 0x6C26 # 0x6C27 # 0x6C28 # 0x6C29 # 0x6C2A # 0x6C2E # 0x6C2F # 0x6C30 # 0x6C32 # 0x6C34 # 0x6C35 # 0x6C38 # 0x6C3D # 0x6C40 # 0x6C41 # 0x6C42 # 0x6C46 # 0x6C47 # 0x6C49 # 0x6C4A # 0x6C50 # 0x6C54 # 0x6C55 # 0x6C57 # 0x6C5B # 0x6C5C # 0x6C5D # 0x6C5E # 0x6C5F # 0x6C60 # 0x6C61 # 0x6C64 # 0x6C68 # 0x6C69 # 0x6C6A # 0x6C70 # 0x6C72 # 0x6C74 # 0x6C76 # 0x6C79 # 0x6C7D # 0x6C7E # 0x6C81 # 0x6C82 # 0x6C83 # 0x6C85 # 0x6C86 # 0x6C88 # 0x6C89 # 0x6C8C # 0x6C8F # 0x6C90 # 0x6C93 # 0x6C94 # 0x6C99 # 0x6C9B # 0x6C9F # 0x6CA1 # 0x6CA3 # 0x6CA4 # 0x6CA5 # 0x6CA6 # 0x6CA7 # 0x6CA9 # 0x6CAA # 0x6CAB # 0x6CAD # 0x6CAE # 0x6CB1 # 0x6CB2 # 0x6CB3 # 0x6CB8 # 0x6CB9 # 0x6CBB # 0x6CBC # 0x6CBD # 0x6CBE # 0x6CBF # 0x6CC4 # 0x6CC5 # 0x6CC9 # 0x6CCA # 0x6CCC # 0x6CD0 # 0x6CD3 # 0x6CD4 # 0x6CD5 # 0x6CD6 # 0x6CD7 # 0x6CDB # 0x6CDE # 0x6CE0 # 0x6CE1 # 0x6CE2 # 0x6CE3 # 0x6CE5 # 0x6CE8 # 0x6CEA # 0x6CEB # 0x6CEE # 0x6CEF # 0x6CF0 # 0x6CF1 # 0x6CF3 # 0x6CF5 # 0x6CF6 # 0x6CF7 # 0x6CF8 # 0x6CFA # 0x6CFB # 0x6CFC # 0x6CFD # 0x6CFE # 0x6D01 # 0x6D04 # 0x6D07 # 0x6D0B # 0x6D0C # 0x6D0E # 0x6D12 # 0x6D17 # 0x6D19 # 0x6D1A # 0x6D1B # 0x6D1E # 0x6D25 # 0x6D27 # 0x6D2A # 0x6D2B # 0x6D2E # 0x6D31 # 0x6D32 # 0x6D33 # 0x6D35 # 0x6D39 # 0x6D3B # 0x6D3C # 0x6D3D # 0x6D3E # 0x6D41 # 0x6D43 # 0x6D45 # 0x6D46 # 0x6D47 # 0x6D48 # 0x6D4A # 0x6D4B # 0x6D4D # 0x6D4E # 0x6D4F # 0x6D51 # 0x6D52 # 0x6D53 # 0x6D54 # 0x6D59 # 0x6D5A # 0x6D5C # 0x6D5E # 0x6D60 # 0x6D63 # 0x6D66 # 0x6D69 # 0x6D6A # 0x6D6E # 0x6D6F # 0x6D74 # 0x6D77 # 0x6D78 # 0x6D7C # 0x6D82 # 0x6D85 # 0x6D88 # 0x6D89 # 0x6D8C # 0x6D8E # 0x6D91 # 0x6D93 # 0x6D94 # 0x6D95 # 0x6D9B # 0x6D9D # 0x6D9E # 0x6D9F # 0x6DA0 # 0x6DA1 # 0x6DA3 # 0x6DA4 # 0x6DA6 # 0x6DA7 # 0x6DA8 # 0x6DA9 # 0x6DAA # 0x6DAB # 0x6DAE # 0x6DAF # 0x6DB2 # 0x6DB5 # 0x6DB8 # 0x6DBF # 0x6DC0 # 0x6DC4 # 0x6DC5 # 0x6DC6 # 0x6DC7 # 0x6DCB # 0x6DCC # 0x6DD1 # 0x6DD6 # 0x6DD8 # 0x6DD9 # 0x6DDD # 0x6DDE # 0x6DE0 # 0x6DE1 # 0x6DE4 # 0x6DE6 # 0x6DEB # 0x6DEC # 0x6DEE # 0x6DF1 # 0x6DF3 # 0x6DF7 # 0x6DF9 # 0x6DFB # 0x6DFC # 0x6E05 # 0x6E0A # 0x6E0C # 0x6E0D # 0x6E0E # 0x6E10 # 0x6E11 # 0x6E14 # 0x6E16 # 0x6E17 # 0x6E1A # 0x6E1D # 0x6E20 # 0x6E21 # 0x6E23 # 0x6E24 # 0x6E25 # 0x6E29 # 0x6E2B # 0x6E2D # 0x6E2F # 0x6E32 # 0x6E34 # 0x6E38 # 0x6E3A # 0x6E43 # 0x6E44 # 0x6E4D # 0x6E4E # 0x6E53 # 0x6E54 # 0x6E56 # 0x6E58 # 0x6E5B # 0x6E5F # 0x6E6B # 0x6E6E # 0x6E7E # 0x6E7F # 0x6E83 # 0x6E85 # 0x6E86 # 0x6E89 # 0x6E8F # 0x6E90 # 0x6E98 # 0x6E9C # 0x6E9F # 0x6EA2 # 0x6EA5 # 0x6EA7 # 0x6EAA # 0x6EAF # 0x6EB1 # 0x6EB2 # 0x6EB4 # 0x6EB6 # 0x6EB7 # 0x6EBA # 0x6EBB # 0x6EBD # 0x6EC1 # 0x6EC2 # 0x6EC7 # 0x6ECB # 0x6ECF # 0x6ED1 # 0x6ED3 # 0x6ED4 # 0x6ED5 # 0x6ED7 # 0x6EDA # 0x6EDE # 0x6EDF # 0x6EE0 # 0x6EE1 # 0x6EE2 # 0x6EE4 # 0x6EE5 # 0x6EE6 # 0x6EE8 # 0x6EE9 # 0x6EF4 # 0x6EF9 # 0x6F02 # 0x6F06 # 0x6F09 # 0x6F0F # 0x6F13 # 0x6F14 # 0x6F15 # 0x6F20 # 0x6F24 # 0x6F29 # 0x6F2A # 0x6F2B # 0x6F2D # 0x6F2F # 0x6F31 # 0x6F33 # 0x6F36 # 0x6F3E # 0x6F46 # 0x6F47 # 0x6F4B # 0x6F4D # 0x6F58 # 0x6F5C # 0x6F5E # 0x6F62 # 0x6F66 # 0x6F6D # 0x6F6E # 0x6F72 # 0x6F74 # 0x6F78 # 0x6F7A # 0x6F7C # 0x6F84 # 0x6F88 # 0x6F89 # 0x6F8C # 0x6F8D # 0x6F8E # 0x6F9C # 0x6FA1 # 0x6FA7 # 0x6FB3 # 0x6FB6 # 0x6FB9 # 0x6FC0 # 0x6FC2 # 0x6FC9 # 0x6FD1 # 0x6FD2 # 0x6FDE # 0x6FE0 # 0x6FE1 # 0x6FEE # 0x6FEF # 0x7011 # 0x701A # 0x701B # 0x7023 # 0x7035 # 0x7039 # 0x704C # 0x704F # 0x705E # 0x706B # 0x706C # 0x706D # 0x706F # 0x7070 # 0x7075 # 0x7076 # 0x7078 # 0x707C # 0x707E # 0x707F # 0x7080 # 0x7085 # 0x7089 # 0x708A # 0x708E # 0x7092 # 0x7094 # 0x7095 # 0x7096 # 0x7099 # 0x709C # 0x709D # 0x70AB # 0x70AC # 0x70AD # 0x70AE # 0x70AF # 0x70B1 # 0x70B3 # 0x70B7 # 0x70B8 # 0x70B9 # 0x70BB # 0x70BC # 0x70BD # 0x70C0 # 0x70C1 # 0x70C2 # 0x70C3 # 0x70C8 # 0x70CA # 0x70D8 # 0x70D9 # 0x70DB # 0x70DF # 0x70E4 # 0x70E6 # 0x70E7 # 0x70E8 # 0x70E9 # 0x70EB # 0x70EC # 0x70ED # 0x70EF # 0x70F7 # 0x70F9 # 0x70FD # 0x7109 # 0x710A # 0x7110 # 0x7113 # 0x7115 # 0x7116 # 0x7118 # 0x7119 # 0x711A # 0x7126 # 0x712F # 0x7130 # 0x7131 # 0x7136 # 0x7145 # 0x714A # 0x714C # 0x714E # 0x715C # 0x715E # 0x7164 # 0x7166 # 0x7167 # 0x7168 # 0x716E # 0x7172 # 0x7173 # 0x7178 # 0x717A # 0x717D # 0x7184 # 0x718A # 0x718F # 0x7194 # 0x7198 # 0x7199 # 0x719F # 0x71A0 # 0x71A8 # 0x71AC # 0x71B3 # 0x71B5 # 0x71B9 # 0x71C3 # 0x71CE # 0x71D4 # 0x71D5 # 0x71E0 # 0x71E5 # 0x71E7 # 0x71EE # 0x71F9 # 0x7206 # 0x721D # 0x7228 # 0x722A # 0x722C # 0x7230 # 0x7231 # 0x7235 # 0x7236 # 0x7237 # 0x7238 # 0x7239 # 0x723B # 0x723D # 0x723F # 0x7247 # 0x7248 # 0x724C # 0x724D # 0x7252 # 0x7256 # 0x7259 # 0x725B # 0x725D # 0x725F # 0x7261 # 0x7262 # 0x7266 # 0x7267 # 0x7269 # 0x726E # 0x726F # 0x7272 # 0x7275 # 0x7279 # 0x727A # 0x727E # 0x727F # 0x7280 # 0x7281 # 0x7284 # 0x728A # 0x728B # 0x728D # 0x728F # 0x7292 # 0x729F # 0x72AC # 0x72AD # 0x72AF # 0x72B0 # 0x72B4 # 0x72B6 # 0x72B7 # 0x72B8 # 0x72B9 # 0x72C1 # 0x72C2 # 0x72C3 # 0x72C4 # 0x72C8 # 0x72CD # 0x72CE # 0x72D0 # 0x72D2 # 0x72D7 # 0x72D9 # 0x72DE # 0x72E0 # 0x72E1 # 0x72E8 # 0x72E9 # 0x72EC # 0x72ED # 0x72EE # 0x72EF # 0x72F0 # 0x72F1 # 0x72F2 # 0x72F3 # 0x72F4 # 0x72F7 # 0x72F8 # 0x72FA # 0x72FB # 0x72FC # 0x7301 # 0x7303 # 0x730A # 0x730E # 0x7313 # 0x7315 # 0x7316 # 0x7317 # 0x731B # 0x731C # 0x731D # 0x731E # 0x7321 # 0x7322 # 0x7325 # 0x7329 # 0x732A # 0x732B # 0x732C # 0x732E # 0x7331 # 0x7334 # 0x7337 # 0x7338 # 0x7339 # 0x733E # 0x733F # 0x734D # 0x7350 # 0x7352 # 0x7357 # 0x7360 # 0x736C # 0x736D # 0x736F # 0x737E # 0x7384 # 0x7387 # 0x7389 # 0x738B # 0x738E # 0x7391 # 0x7396 # 0x739B # 0x739F # 0x73A2 # 0x73A9 # 0x73AB # 0x73AE # 0x73AF # 0x73B0 # 0x73B2 # 0x73B3 # 0x73B7 # 0x73BA # 0x73BB # 0x73C0 # 0x73C2 # 0x73C8 # 0x73C9 # 0x73CA # 0x73CD # 0x73CF # 0x73D0 # 0x73D1 # 0x73D9 # 0x73DE # 0x73E0 # 0x73E5 # 0x73E7 # 0x73E9 # 0x73ED # 0x73F2 # 0x7403 # 0x7405 # 0x7406 # 0x7409 # 0x740A # 0x740F # 0x7410 # 0x741A # 0x741B # 0x7422 # 0x7425 # 0x7426 # 0x7428 # 0x742A # 0x742C # 0x742E # 0x7430 # 0x7433 # 0x7434 # 0x7435 # 0x7436 # 0x743C # 0x7441 # 0x7455 # 0x7457 # 0x7459 # 0x745A # 0x745B # 0x745C # 0x745E # 0x745F # 0x746D # 0x7470 # 0x7476 # 0x7477 # 0x747E # 0x7480 # 0x7481 # 0x7483 # 0x7487 # 0x748B # 0x748E # 0x7490 # 0x749C # 0x749E # 0x74A7 # 0x74A8 # 0x74A9 # 0x74BA # 0x74D2 # 0x74DC # 0x74DE # 0x74E0 # 0x74E2 # 0x74E3 # 0x74E4 # 0x74E6 # 0x74EE # 0x74EF # 0x74F4 # 0x74F6 # 0x74F7 # 0x74FF # 0x7504 # 0x750D # 0x750F # 0x7511 # 0x7513 # 0x7518 # 0x7519 # 0x751A # 0x751C # 0x751F # 0x7525 # 0x7528 # 0x7529 # 0x752B # 0x752C # 0x752D # 0x752F # 0x7530 # 0x7531 # 0x7532 # 0x7533 # 0x7535 # 0x7537 # 0x7538 # 0x753A # 0x753B # 0x753E # 0x7540 # 0x7545 # 0x7548 # 0x754B # 0x754C # 0x754E # 0x754F # 0x7554 # 0x7559 # 0x755A # 0x755B # 0x755C # 0x7565 # 0x7566 # 0x756A # 0x7572 # 0x7574 # 0x7578 # 0x7579 # 0x757F # 0x7583 # 0x7586 # 0x758B # 0x758F # 0x7591 # 0x7592 # 0x7594 # 0x7596 # 0x7597 # 0x7599 # 0x759A # 0x759D # 0x759F # 0x75A0 # 0x75A1 # 0x75A3 # 0x75A4 # 0x75A5 # 0x75AB # 0x75AC # 0x75AE # 0x75AF # 0x75B0 # 0x75B1 # 0x75B2 # 0x75B3 # 0x75B4 # 0x75B5 # 0x75B8 # 0x75B9 # 0x75BC # 0x75BD # 0x75BE # 0x75C2 # 0x75C3 # 0x75C4 # 0x75C5 # 0x75C7 # 0x75C8 # 0x75C9 # 0x75CA # 0x75CD # 0x75D2 # 0x75D4 # 0x75D5 # 0x75D6 # 0x75D8 # 0x75DB # 0x75DE # 0x75E2 # 0x75E3 # 0x75E4 # 0x75E6 # 0x75E7 # 0x75E8 # 0x75EA # 0x75EB # 0x75F0 # 0x75F1 # 0x75F4 # 0x75F9 # 0x75FC # 0x75FF # 0x7600 # 0x7601 # 0x7603 # 0x7605 # 0x760A # 0x760C # 0x7610 # 0x7615 # 0x7617 # 0x7618 # 0x7619 # 0x761B # 0x761F # 0x7620 # 0x7622 # 0x7624 # 0x7625 # 0x7626 # 0x7629 # 0x762A # 0x762B # 0x762D # 0x7630 # 0x7633 # 0x7634 # 0x7635 # 0x7638 # 0x763C # 0x763E # 0x763F # 0x7640 # 0x7643 # 0x764C # 0x764D # 0x7654 # 0x7656 # 0x765C # 0x765E # 0x7663 # 0x766B # 0x766F # 0x7678 # 0x767B # 0x767D # 0x767E # 0x7682 # 0x7684 # 0x7686 # 0x7687 # 0x7688 # 0x768B # 0x768E # 0x7691 # 0x7693 # 0x7696 # 0x7699 # 0x76A4 # 0x76AE # 0x76B1 # 0x76B2 # 0x76B4 # 0x76BF # 0x76C2 # 0x76C5 # 0x76C6 # 0x76C8 # 0x76CA # 0x76CD # 0x76CE # 0x76CF # 0x76D0 # 0x76D1 # 0x76D2 # 0x76D4 # 0x76D6 # 0x76D7 # 0x76D8 # 0x76DB # 0x76DF # 0x76E5 # 0x76EE # 0x76EF # 0x76F1 # 0x76F2 # 0x76F4 # 0x76F8 # 0x76F9 # 0x76FC # 0x76FE # 0x7701 # 0x7704 # 0x7707 # 0x7708 # 0x7709 # 0x770B # 0x770D # 0x7719 # 0x771A # 0x771F # 0x7720 # 0x7722 # 0x7726 # 0x7728 # 0x7729 # 0x772D # 0x772F # 0x7735 # 0x7736 # 0x7737 # 0x7738 # 0x773A # 0x773C # 0x7740 # 0x7741 # 0x7743 # 0x7747 # 0x7750 # 0x7751 # 0x775A # 0x775B # 0x7761 # 0x7762 # 0x7763 # 0x7765 # 0x7766 # 0x7768 # 0x776B # 0x776C # 0x7779 # 0x777D # 0x777E # 0x777F # 0x7780 # 0x7784 # 0x7785 # 0x778C # 0x778D # 0x778E # 0x7791 # 0x7792 # 0x779F # 0x77A0 # 0x77A2 # 0x77A5 # 0x77A7 # 0x77A9 # 0x77AA # 0x77AC # 0x77B0 # 0x77B3 # 0x77B5 # 0x77BB # 0x77BD # 0x77BF # 0x77CD # 0x77D7 # 0x77DB # 0x77DC # 0x77E2 # 0x77E3 # 0x77E5 # 0x77E7 # 0x77E9 # 0x77EB # 0x77EC # 0x77ED # 0x77EE # 0x77F3 # 0x77F6 # 0x77F8 # 0x77FD # 0x77FE # 0x77FF # 0x7800 # 0x7801 # 0x7802 # 0x7809 # 0x780C # 0x780D # 0x7811 # 0x7812 # 0x7814 # 0x7816 # 0x7817 # 0x7818 # 0x781A # 0x781C # 0x781D # 0x781F # 0x7823 # 0x7825 # 0x7826 # 0x7827 # 0x7829 # 0x782C # 0x782D # 0x7830 # 0x7834 # 0x7837 # 0x7838 # 0x7839 # 0x783A # 0x783B # 0x783C # 0x783E # 0x7840 # 0x7845 # 0x7847 # 0x784C # 0x784E # 0x7850 # 0x7852 # 0x7855 # 0x7856 # 0x7857 # 0x785D # 0x786A # 0x786B # 0x786C # 0x786D # 0x786E # 0x7877 # 0x787C # 0x7887 # 0x7889 # 0x788C # 0x788D # 0x788E # 0x7891 # 0x7893 # 0x7897 # 0x7898 # 0x789A # 0x789B # 0x789C # 0x789F # 0x78A1 # 0x78A3 # 0x78A5 # 0x78A7 # 0x78B0 # 0x78B1 # 0x78B2 # 0x78B3 # 0x78B4 # 0x78B9 # 0x78BE # 0x78C1 # 0x78C5 # 0x78C9 # 0x78CA # 0x78CB # 0x78D0 # 0x78D4 # 0x78D5 # 0x78D9 # 0x78E8 # 0x78EC # 0x78F2 # 0x78F4 # 0x78F7 # 0x78FA # 0x7901 # 0x7905 # 0x7913 # 0x791E # 0x7924 # 0x7934 # 0x793A # 0x793B # 0x793C # 0x793E # 0x7940 # 0x7941 # 0x7946 # 0x7948 # 0x7949 # 0x7953 # 0x7956 # 0x7957 # 0x795A # 0x795B # 0x795C # 0x795D # 0x795E # 0x795F # 0x7960 # 0x7962 # 0x7965 # 0x7967 # 0x7968 # 0x796D # 0x796F # 0x7977 # 0x7978 # 0x797A # 0x7980 # 0x7981 # 0x7984 # 0x7985 # 0x798A # 0x798F # 0x799A # 0x79A7 # 0x79B3 # 0x79B9 # 0x79BA # 0x79BB # 0x79BD # 0x79BE # 0x79C0 # 0x79C1 # 0x79C3 # 0x79C6 # 0x79C9 # 0x79CB # 0x79CD # 0x79D1 # 0x79D2 # 0x79D5 # 0x79D8 # 0x79DF # 0x79E3 # 0x79E4 # 0x79E6 # 0x79E7 # 0x79E9 # 0x79EB # 0x79ED # 0x79EF # 0x79F0 # 0x79F8 # 0x79FB # 0x79FD # 0x7A00 # 0x7A02 # 0x7A03 # 0x7A06 # 0x7A0B # 0x7A0D # 0x7A0E # 0x7A14 # 0x7A17 # 0x7A1A # 0x7A1E # 0x7A20 # 0x7A23 # 0x7A33 # 0x7A37 # 0x7A39 # 0x7A3B # 0x7A3C # 0x7A3D # 0x7A3F # 0x7A46 # 0x7A51 # 0x7A57 # 0x7A70 # 0x7A74 # 0x7A76 # 0x7A77 # 0x7A78 # 0x7A79 # 0x7A7A # 0x7A7F # 0x7A80 # 0x7A81 # 0x7A83 # 0x7A84 # 0x7A86 # 0x7A88 # 0x7A8D # 0x7A91 # 0x7A92 # 0x7A95 # 0x7A96 # 0x7A97 # 0x7A98 # 0x7A9C # 0x7A9D # 0x7A9F # 0x7AA0 # 0x7AA5 # 0x7AA6 # 0x7AA8 # 0x7AAC # 0x7AAD # 0x7AB3 # 0x7ABF # 0x7ACB # 0x7AD6 # 0x7AD9 # 0x7ADE # 0x7ADF # 0x7AE0 # 0x7AE3 # 0x7AE5 # 0x7AE6 # 0x7AED # 0x7AEF # 0x7AF9 # 0x7AFA # 0x7AFD # 0x7AFF # 0x7B03 # 0x7B04 # 0x7B06 # 0x7B08 # 0x7B0A # 0x7B0B # 0x7B0F # 0x7B11 # 0x7B14 # 0x7B15 # 0x7B19 # 0x7B1B # 0x7B1E # 0x7B20 # 0x7B24 # 0x7B25 # 0x7B26 # 0x7B28 # 0x7B2A # 0x7B2B # 0x7B2C # 0x7B2E # 0x7B31 # 0x7B33 # 0x7B38 # 0x7B3A # 0x7B3C # 0x7B3E # 0x7B45 # 0x7B47 # 0x7B49 # 0x7B4B # 0x7B4C # 0x7B4F # 0x7B50 # 0x7B51 # 0x7B52 # 0x7B54 # 0x7B56 # 0x7B58 # 0x7B5A # 0x7B5B # 0x7B5D # 0x7B60 # 0x7B62 # 0x7B6E # 0x7B71 # 0x7B72 # 0x7B75 # 0x7B77 # 0x7B79 # 0x7B7B # 0x7B7E # 0x7B80 # 0x7B85 # 0x7B8D # 0x7B90 # 0x7B94 # 0x7B95 # 0x7B97 # 0x7B9C # 0x7B9D # 0x7BA1 # 0x7BA2 # 0x7BA6 # 0x7BA7 # 0x7BA8 # 0x7BA9 # 0x7BAA # 0x7BAB # 0x7BAC # 0x7BAD # 0x7BB1 # 0x7BB4 # 0x7BB8 # 0x7BC1 # 0x7BC6 # 0x7BC7 # 0x7BCC # 0x7BD1 # 0x7BD3 # 0x7BD9 # 0x7BDA # 0x7BDD # 0x7BE1 # 0x7BE5 # 0x7BE6 # 0x7BEA # 0x7BEE # 0x7BF1 # 0x7BF7 # 0x7BFC # 0x7BFE # 0x7C07 # 0x7C0B # 0x7C0C # 0x7C0F # 0x7C16 # 0x7C1F # 0x7C26 # 0x7C27 # 0x7C2A # 0x7C38 # 0x7C3F # 0x7C40 # 0x7C41 # 0x7C4D # 0x7C73 # 0x7C74 # 0x7C7B # 0x7C7C # 0x7C7D # 0x7C89 # 0x7C91 # 0x7C92 # 0x7C95 # 0x7C97 # 0x7C98 # 0x7C9C # 0x7C9D # 0x7C9E # 0x7C9F # 0x7CA2 # 0x7CA4 # 0x7CA5 # 0x7CAA # 0x7CAE # 0x7CB1 # 0x7CB2 # 0x7CB3 # 0x7CB9 # 0x7CBC # 0x7CBD # 0x7CBE # 0x7CC1 # 0x7CC5 # 0x7CC7 # 0x7CC8 # 0x7CCA # 0x7CCC # 0x7CCD # 0x7CD5 # 0x7CD6 # 0x7CD7 # 0x7CD9 # 0x7CDC # 0x7CDF # 0x7CE0 # 0x7CE8 # 0x7CEF # 0x7CF8 # 0x7CFB # 0x7D0A # 0x7D20 # 0x7D22 # 0x7D27 # 0x7D2B # 0x7D2F # 0x7D6E # 0x7D77 # 0x7DA6 # 0x7DAE # 0x7E3B # 0x7E41 # 0x7E47 # 0x7E82 # 0x7E9B # 0x7E9F # 0x7EA0 # 0x7EA1 # 0x7EA2 # 0x7EA3 # 0x7EA4 # 0x7EA5 # 0x7EA6 # 0x7EA7 # 0x7EA8 # 0x7EA9 # 0x7EAA # 0x7EAB # 0x7EAC # 0x7EAD # 0x7EAF # 0x7EB0 # 0x7EB1 # 0x7EB2 # 0x7EB3 # 0x7EB5 # 0x7EB6 # 0x7EB7 # 0x7EB8 # 0x7EB9 # 0x7EBA # 0x7EBD # 0x7EBE # 0x7EBF # 0x7EC0 # 0x7EC1 # 0x7EC2 # 0x7EC3 # 0x7EC4 # 0x7EC5 # 0x7EC6 # 0x7EC7 # 0x7EC8 # 0x7EC9 # 0x7ECA # 0x7ECB # 0x7ECC # 0x7ECD # 0x7ECE # 0x7ECF # 0x7ED0 # 0x7ED1 # 0x7ED2 # 0x7ED3 # 0x7ED4 # 0x7ED5 # 0x7ED7 # 0x7ED8 # 0x7ED9 # 0x7EDA # 0x7EDB # 0x7EDC # 0x7EDD # 0x7EDE # 0x7EDF # 0x7EE0 # 0x7EE1 # 0x7EE2 # 0x7EE3 # 0x7EE5 # 0x7EE6 # 0x7EE7 # 0x7EE8 # 0x7EE9 # 0x7EEA # 0x7EEB # 0x7EED # 0x7EEE # 0x7EEF # 0x7EF0 # 0x7EF1 # 0x7EF2 # 0x7EF3 # 0x7EF4 # 0x7EF5 # 0x7EF6 # 0x7EF7 # 0x7EF8 # 0x7EFA # 0x7EFB # 0x7EFC # 0x7EFD # 0x7EFE # 0x7EFF # 0x7F00 # 0x7F01 # 0x7F02 # 0x7F03 # 0x7F04 # 0x7F05 # 0x7F06 # 0x7F07 # 0x7F08 # 0x7F09 # 0x7F0B # 0x7F0C # 0x7F0D # 0x7F0E # 0x7F0F # 0x7F11 # 0x7F12 # 0x7F13 # 0x7F14 # 0x7F15 # 0x7F16 # 0x7F17 # 0x7F18 # 0x7F19 # 0x7F1A # 0x7F1B # 0x7F1C # 0x7F1D # 0x7F1F # 0x7F20 # 0x7F21 # 0x7F22 # 0x7F23 # 0x7F24 # 0x7F25 # 0x7F26 # 0x7F27 # 0x7F28 # 0x7F29 # 0x7F2A # 0x7F2B # 0x7F2C # 0x7F2D # 0x7F2E # 0x7F2F # 0x7F30 # 0x7F31 # 0x7F32 # 0x7F33 # 0x7F34 # 0x7F35 # 0x7F36 # 0x7F38 # 0x7F3A # 0x7F42 # 0x7F44 # 0x7F45 # 0x7F50 # 0x7F51 # 0x7F54 # 0x7F55 # 0x7F57 # 0x7F58 # 0x7F5A # 0x7F5F # 0x7F61 # 0x7F62 # 0x7F68 # 0x7F69 # 0x7F6A # 0x7F6E # 0x7F71 # 0x7F72 # 0x7F74 # 0x7F79 # 0x7F7E # 0x7F81 # 0x7F8A # 0x7F8C # 0x7F8E # 0x7F94 # 0x7F9A # 0x7F9D # 0x7F9E # 0x7F9F # 0x7FA1 # 0x7FA4 # 0x7FA7 # 0x7FAF # 0x7FB0 # 0x7FB2 # 0x7FB8 # 0x7FB9 # 0x7FBC # 0x7FBD # 0x7FBF # 0x7FC1 # 0x7FC5 # 0x7FCA # 0x7FCC # 0x7FCE # 0x7FD4 # 0x7FD5 # 0x7FD8 # 0x7FDF # 0x7FE0 # 0x7FE1 # 0x7FE5 # 0x7FE6 # 0x7FE9 # 0x7FEE # 0x7FF0 # 0x7FF1 # 0x7FF3 # 0x7FFB # 0x7FFC # 0x8000 # 0x8001 # 0x8003 # 0x8004 # 0x8005 # 0x8006 # 0x800B # 0x800C # 0x800D # 0x8010 # 0x8012 # 0x8014 # 0x8015 # 0x8016 # 0x8017 # 0x8018 # 0x8019 # 0x801C # 0x8020 # 0x8022 # 0x8025 # 0x8026 # 0x8027 # 0x8028 # 0x8029 # 0x802A # 0x8031 # 0x8033 # 0x8035 # 0x8036 # 0x8037 # 0x8038 # 0x803B # 0x803D # 0x803F # 0x8042 # 0x8043 # 0x8046 # 0x804A # 0x804B # 0x804C # 0x804D # 0x8052 # 0x8054 # 0x8058 # 0x805A # 0x8069 # 0x806A # 0x8071 # 0x807F # 0x8080 # 0x8083 # 0x8084 # 0x8086 # 0x8087 # 0x8089 # 0x808B # 0x808C # 0x8093 # 0x8096 # 0x8098 # 0x809A # 0x809B # 0x809C # 0x809D # 0x809F # 0x80A0 # 0x80A1 # 0x80A2 # 0x80A4 # 0x80A5 # 0x80A9 # 0x80AA # 0x80AB # 0x80AD # 0x80AE # 0x80AF # 0x80B1 # 0x80B2 # 0x80B4 # 0x80B7 # 0x80BA # 0x80BC # 0x80BD # 0x80BE # 0x80BF # 0x80C0 # 0x80C1 # 0x80C2 # 0x80C3 # 0x80C4 # 0x80C6 # 0x80CC # 0x80CD # 0x80CE # 0x80D6 # 0x80D7 # 0x80D9 # 0x80DA # 0x80DB # 0x80DC # 0x80DD # 0x80DE # 0x80E1 # 0x80E4 # 0x80E5 # 0x80E7 # 0x80E8 # 0x80E9 # 0x80EA # 0x80EB # 0x80EC # 0x80ED # 0x80EF # 0x80F0 # 0x80F1 # 0x80F2 # 0x80F3 # 0x80F4 # 0x80F6 # 0x80F8 # 0x80FA # 0x80FC # 0x80FD # 0x8102 # 0x8106 # 0x8109 # 0x810A # 0x810D # 0x810E # 0x810F # 0x8110 # 0x8111 # 0x8112 # 0x8113 # 0x8114 # 0x8116 # 0x8118 # 0x811A # 0x811E # 0x812C # 0x812F # 0x8131 # 0x8132 # 0x8136 # 0x8138 # 0x813E # 0x8146 # 0x8148 # 0x814A # 0x814B # 0x814C # 0x8150 # 0x8151 # 0x8153 # 0x8154 # 0x8155 # 0x8159 # 0x815A # 0x8160 # 0x8165 # 0x8167 # 0x8169 # 0x816D # 0x816E # 0x8170 # 0x8171 # 0x8174 # 0x8179 # 0x817A # 0x817B # 0x817C # 0x817D # 0x817E # 0x817F # 0x8180 # 0x8182 # 0x8188 # 0x818A # 0x818F # 0x8191 # 0x8198 # 0x819B # 0x819C # 0x819D # 0x81A3 # 0x81A6 # 0x81A8 # 0x81AA # 0x81B3 # 0x81BA # 0x81BB # 0x81C0 # 0x81C1 # 0x81C2 # 0x81C3 # 0x81C6 # 0x81CA # 0x81CC # 0x81E3 # 0x81E7 # 0x81EA # 0x81EC # 0x81ED # 0x81F3 # 0x81F4 # 0x81FB # 0x81FC # 0x81FE # 0x8200 # 0x8201 # 0x8202 # 0x8204 # 0x8205 # 0x8206 # 0x820C # 0x820D # 0x8210 # 0x8212 # 0x8214 # 0x821B # 0x821C # 0x821E # 0x821F # 0x8221 # 0x8222 # 0x8223 # 0x8228 # 0x822A # 0x822B # 0x822C # 0x822D # 0x822F # 0x8230 # 0x8231 # 0x8233 # 0x8234 # 0x8235 # 0x8236 # 0x8237 # 0x8238 # 0x8239 # 0x823B # 0x823E # 0x8244 # 0x8247 # 0x8249 # 0x824B # 0x824F # 0x8258 # 0x825A # 0x825F # 0x8268 # 0x826E # 0x826F # 0x8270 # 0x8272 # 0x8273 # 0x8274 # 0x8279 # 0x827A # 0x827D # 0x827E # 0x827F # 0x8282 # 0x8284 # 0x8288 # 0x828A # 0x828B # 0x828D # 0x828E # 0x828F # 0x8291 # 0x8292 # 0x8297 # 0x8298 # 0x8299 # 0x829C # 0x829D # 0x829F # 0x82A1 # 0x82A4 # 0x82A5 # 0x82A6 # 0x82A8 # 0x82A9 # 0x82AA # 0x82AB # 0x82AC # 0x82AD # 0x82AE # 0x82AF # 0x82B0 # 0x82B1 # 0x82B3 # 0x82B4 # 0x82B7 # 0x82B8 # 0x82B9 # 0x82BD # 0x82BE # 0x82C1 # 0x82C4 # 0x82C7 # 0x82C8 # 0x82CA # 0x82CB # 0x82CC # 0x82CD # 0x82CE # 0x82CF # 0x82D1 # 0x82D2 # 0x82D3 # 0x82D4 # 0x82D5 # 0x82D7 # 0x82D8 # 0x82DB # 0x82DC # 0x82DE # 0x82DF # 0x82E0 # 0x82E1 # 0x82E3 # 0x82E4 # 0x82E5 # 0x82E6 # 0x82EB # 0x82EF # 0x82F1 # 0x82F4 # 0x82F7 # 0x82F9 # 0x82FB # 0x8301 # 0x8302 # 0x8303 # 0x8304 # 0x8305 # 0x8306 # 0x8307 # 0x8308 # 0x8309 # 0x830C # 0x830E # 0x830F # 0x8311 # 0x8314 # 0x8315 # 0x8317 # 0x831A # 0x831B # 0x831C # 0x8327 # 0x8328 # 0x832B # 0x832C # 0x832D # 0x832F # 0x8331 # 0x8333 # 0x8334 # 0x8335 # 0x8336 # 0x8338 # 0x8339 # 0x833A # 0x833C # 0x8340 # 0x8343 # 0x8346 # 0x8347 # 0x8349 # 0x834F # 0x8350 # 0x8351 # 0x8352 # 0x8354 # 0x835A # 0x835B # 0x835C # 0x835E # 0x835F # 0x8360 # 0x8361 # 0x8363 # 0x8364 # 0x8365 # 0x8366 # 0x8367 # 0x8368 # 0x8369 # 0x836A # 0x836B # 0x836C # 0x836D # 0x836E # 0x836F # 0x8377 # 0x8378 # 0x837B # 0x837C # 0x837D # 0x8385 # 0x8386 # 0x8389 # 0x838E # 0x8392 # 0x8393 # 0x8398 # 0x839B # 0x839C # 0x839E # 0x83A0 # 0x83A8 # 0x83A9 # 0x83AA # 0x83AB # 0x83B0 # 0x83B1 # 0x83B2 # 0x83B3 # 0x83B4 # 0x83B6 # 0x83B7 # 0x83B8 # 0x83B9 # 0x83BA # 0x83BC # 0x83BD # 0x83C0 # 0x83C1 # 0x83C5 # 0x83C7 # 0x83CA # 0x83CC # 0x83CF # 0x83D4 # 0x83D6 # 0x83D8 # 0x83DC # 0x83DD # 0x83DF # 0x83E0 # 0x83E1 # 0x83E5 # 0x83E9 # 0x83EA # 0x83F0 # 0x83F1 # 0x83F2 # 0x83F8 # 0x83F9 # 0x83FD # 0x8401 # 0x8403 # 0x8404 # 0x8406 # 0x840B # 0x840C # 0x840D # 0x840E # 0x840F # 0x8411 # 0x8418 # 0x841C # 0x841D # 0x8424 # 0x8425 # 0x8426 # 0x8427 # 0x8428 # 0x8431 # 0x8438 # 0x843C # 0x843D # 0x8446 # 0x8451 # 0x8457 # 0x8459 # 0x845A # 0x845B # 0x845C # 0x8461 # 0x8463 # 0x8469 # 0x846B # 0x846C # 0x846D # 0x8471 # 0x8473 # 0x8475 # 0x8476 # 0x8478 # 0x847A # 0x8482 # 0x8487 # 0x8488 # 0x8489 # 0x848B # 0x848C # 0x848E # 0x8497 # 0x8499 # 0x849C # 0x84A1 # 0x84AF # 0x84B2 # 0x84B4 # 0x84B8 # 0x84B9 # 0x84BA # 0x84BD # 0x84BF # 0x84C1 # 0x84C4 # 0x84C9 # 0x84CA # 0x84CD # 0x84D0 # 0x84D1 # 0x84D3 # 0x84D6 # 0x84DD # 0x84DF # 0x84E0 # 0x84E3 # 0x84E5 # 0x84E6 # 0x84EC # 0x84F0 # 0x84FC # 0x84FF # 0x850C # 0x8511 # 0x8513 # 0x8517 # 0x851A # 0x851F # 0x8521 # 0x852B # 0x852C # 0x8537 # 0x8538 # 0x8539 # 0x853A # 0x853B # 0x853C # 0x853D # 0x8543 # 0x8548 # 0x8549 # 0x854A # 0x8556 # 0x8559 # 0x855E # 0x8564 # 0x8568 # 0x8572 # 0x8574 # 0x8579 # 0x857A # 0x857B # 0x857E # 0x8584 # 0x8585 # 0x8587 # 0x858F # 0x859B # 0x859C # 0x85A4 # 0x85A8 # 0x85AA # 0x85AE # 0x85AF # 0x85B0 # 0x85B7 # 0x85B9 # 0x85C1 # 0x85C9 # 0x85CF # 0x85D0 # 0x85D3 # 0x85D5 # 0x85DC # 0x85E4 # 0x85E9 # 0x85FB # 0x85FF # 0x8605 # 0x8611 # 0x8616 # 0x8627 # 0x8629 # 0x8638 # 0x863C # 0x864D # 0x864E # 0x864F # 0x8650 # 0x8651 # 0x8654 # 0x865A # 0x865E # 0x8662 # 0x866B # 0x866C # 0x866E # 0x8671 # 0x8679 # 0x867A # 0x867B # 0x867C # 0x867D # 0x867E # 0x867F # 0x8680 # 0x8681 # 0x8682 # 0x868A # 0x868B # 0x868C # 0x868D # 0x8693 # 0x8695 # 0x869C # 0x869D # 0x86A3 # 0x86A4 # 0x86A7 # 0x86A8 # 0x86A9 # 0x86AA # 0x86AC # 0x86AF # 0x86B0 # 0x86B1 # 0x86B4 # 0x86B5 # 0x86B6 # 0x86BA # 0x86C0 # 0x86C4 # 0x86C6 # 0x86C7 # 0x86C9 # 0x86CA # 0x86CB # 0x86CE # 0x86CF # 0x86D0 # 0x86D1 # 0x86D4 # 0x86D8 # 0x86D9 # 0x86DB # 0x86DE # 0x86DF # 0x86E4 # 0x86E9 # 0x86ED # 0x86EE # 0x86F0 # 0x86F1 # 0x86F2 # 0x86F3 # 0x86F4 # 0x86F8 # 0x86F9 # 0x86FE # 0x8700 # 0x8702 # 0x8703 # 0x8707 # 0x8708 # 0x8709 # 0x870A # 0x870D # 0x8712 # 0x8713 # 0x8715 # 0x8717 # 0x8718 # 0x871A # 0x871C # 0x871E # 0x8721 # 0x8722 # 0x8723 # 0x8725 # 0x8729 # 0x872E # 0x8731 # 0x8734 # 0x8737 # 0x873B # 0x873E # 0x873F # 0x8747 # 0x8748 # 0x8749 # 0x874C # 0x874E # 0x8753 # 0x8757 # 0x8759 # 0x8760 # 0x8763 # 0x8764 # 0x8765 # 0x876E # 0x8770 # 0x8774 # 0x8776 # 0x877B # 0x877C # 0x877D # 0x877E # 0x8782 # 0x8783 # 0x8785 # 0x8788 # 0x878B # 0x878D # 0x8793 # 0x8797 # 0x879F # 0x87A8 # 0x87AB # 0x87AC # 0x87AD # 0x87AF # 0x87B3 # 0x87B5 # 0x87BA # 0x87BD # 0x87C0 # 0x87C6 # 0x87CA # 0x87CB # 0x87D1 # 0x87D2 # 0x87D3 # 0x87DB # 0x87E0 # 0x87E5 # 0x87EA # 0x87EE # 0x87F9 # 0x87FE # 0x8803 # 0x880A # 0x8813 # 0x8815 # 0x8816 # 0x881B # 0x8821 # 0x8822 # 0x8832 # 0x8839 # 0x883C # 0x8840 # 0x8844 # 0x8845 # 0x884C # 0x884D # 0x8854 # 0x8857 # 0x8859 # 0x8861 # 0x8862 # 0x8863 # 0x8864 # 0x8865 # 0x8868 # 0x8869 # 0x886B # 0x886C # 0x886E # 0x8870 # 0x8872 # 0x8877 # 0x887D # 0x887E # 0x887F # 0x8881 # 0x8882 # 0x8884 # 0x8885 # 0x8888 # 0x888B # 0x888D # 0x8892 # 0x8896 # 0x889C # 0x88A2 # 0x88A4 # 0x88AB # 0x88AD # 0x88B1 # 0x88B7 # 0x88BC # 0x88C1 # 0x88C2 # 0x88C5 # 0x88C6 # 0x88C9 # 0x88CE # 0x88D2 # 0x88D4 # 0x88D5 # 0x88D8 # 0x88D9 # 0x88DF # 0x88E2 # 0x88E3 # 0x88E4 # 0x88E5 # 0x88E8 # 0x88F0 # 0x88F1 # 0x88F3 # 0x88F4 # 0x88F8 # 0x88F9 # 0x88FC # 0x88FE # 0x8902 # 0x890A # 0x8910 # 0x8912 # 0x8913 # 0x8919 # 0x891A # 0x891B # 0x8921 # 0x8925 # 0x892A # 0x892B # 0x8930 # 0x8934 # 0x8936 # 0x8941 # 0x8944 # 0x895E # 0x895F # 0x8966 # 0x897B # 0x897F # 0x8981 # 0x8983 # 0x8986 # 0x89C1 # 0x89C2 # 0x89C4 # 0x89C5 # 0x89C6 # 0x89C7 # 0x89C8 # 0x89C9 # 0x89CA # 0x89CB # 0x89CC # 0x89CE # 0x89CF # 0x89D0 # 0x89D1 # 0x89D2 # 0x89D6 # 0x89DA # 0x89DC # 0x89DE # 0x89E3 # 0x89E5 # 0x89E6 # 0x89EB # 0x89EF # 0x89F3 # 0x8A00 # 0x8A07 # 0x8A3E # 0x8A48 # 0x8A79 # 0x8A89 # 0x8A8A # 0x8A93 # 0x8B07 # 0x8B26 # 0x8B66 # 0x8B6C # 0x8BA0 # 0x8BA1 # 0x8BA2 # 0x8BA3 # 0x8BA4 # 0x8BA5 # 0x8BA6 # 0x8BA7 # 0x8BA8 # 0x8BA9 # 0x8BAA # 0x8BAB # 0x8BAD # 0x8BAE # 0x8BAF # 0x8BB0 # 0x8BB2 # 0x8BB3 # 0x8BB4 # 0x8BB5 # 0x8BB6 # 0x8BB7 # 0x8BB8 # 0x8BB9 # 0x8BBA # 0x8BBC # 0x8BBD # 0x8BBE # 0x8BBF # 0x8BC0 # 0x8BC1 # 0x8BC2 # 0x8BC3 # 0x8BC4 # 0x8BC5 # 0x8BC6 # 0x8BC8 # 0x8BC9 # 0x8BCA # 0x8BCB # 0x8BCC # 0x8BCD # 0x8BCE # 0x8BCF # 0x8BD1 # 0x8BD2 # 0x8BD3 # 0x8BD4 # 0x8BD5 # 0x8BD6 # 0x8BD7 # 0x8BD8 # 0x8BD9 # 0x8BDA # 0x8BDB # 0x8BDC # 0x8BDD # 0x8BDE # 0x8BDF # 0x8BE0 # 0x8BE1 # 0x8BE2 # 0x8BE3 # 0x8BE4 # 0x8BE5 # 0x8BE6 # 0x8BE7 # 0x8BE8 # 0x8BE9 # 0x8BEB # 0x8BEC # 0x8BED # 0x8BEE # 0x8BEF # 0x8BF0 # 0x8BF1 # 0x8BF2 # 0x8BF3 # 0x8BF4 # 0x8BF5 # 0x8BF6 # 0x8BF7 # 0x8BF8 # 0x8BF9 # 0x8BFA # 0x8BFB # 0x8BFC # 0x8BFD # 0x8BFE # 0x8BFF # 0x8C00 # 0x8C01 # 0x8C02 # 0x8C03 # 0x8C04 # 0x8C05 # 0x8C06 # 0x8C07 # 0x8C08 # 0x8C0A # 0x8C0B # 0x8C0C # 0x8C0D # 0x8C0E # 0x8C0F # 0x8C10 # 0x8C11 # 0x8C12 # 0x8C13 # 0x8C14 # 0x8C15 # 0x8C16 # 0x8C17 # 0x8C18 # 0x8C19 # 0x8C1A # 0x8C1B # 0x8C1C # 0x8C1D # 0x8C1F # 0x8C20 # 0x8C21 # 0x8C22 # 0x8C23 # 0x8C24 # 0x8C25 # 0x8C26 # 0x8C27 # 0x8C28 # 0x8C29 # 0x8C2A # 0x8C2B # 0x8C2C # 0x8C2D # 0x8C2E # 0x8C2F # 0x8C30 # 0x8C31 # 0x8C32 # 0x8C33 # 0x8C34 # 0x8C35 # 0x8C36 # 0x8C37 # 0x8C41 # 0x8C46 # 0x8C47 # 0x8C49 # 0x8C4C # 0x8C55 # 0x8C5A # 0x8C61 # 0x8C62 # 0x8C6A # 0x8C6B # 0x8C73 # 0x8C78 # 0x8C79 # 0x8C7A # 0x8C82 # 0x8C85 # 0x8C89 # 0x8C8A # 0x8C8C # 0x8C94 # 0x8C98 # 0x8D1D # 0x8D1E # 0x8D1F # 0x8D21 # 0x8D22 # 0x8D23 # 0x8D24 # 0x8D25 # 0x8D26 # 0x8D27 # 0x8D28 # 0x8D29 # 0x8D2A # 0x8D2B # 0x8D2C # 0x8D2D # 0x8D2E # 0x8D2F # 0x8D30 # 0x8D31 # 0x8D32 # 0x8D33 # 0x8D34 # 0x8D35 # 0x8D36 # 0x8D37 # 0x8D38 # 0x8D39 # 0x8D3A # 0x8D3B # 0x8D3C # 0x8D3D # 0x8D3E # 0x8D3F # 0x8D40 # 0x8D41 # 0x8D42 # 0x8D43 # 0x8D44 # 0x8D45 # 0x8D46 # 0x8D47 # 0x8D48 # 0x8D49 # 0x8D4A # 0x8D4B # 0x8D4C # 0x8D4D # 0x8D4E # 0x8D4F # 0x8D50 # 0x8D53 # 0x8D54 # 0x8D55 # 0x8D56 # 0x8D58 # 0x8D59 # 0x8D5A # 0x8D5B # 0x8D5C # 0x8D5D # 0x8D5E # 0x8D60 # 0x8D61 # 0x8D62 # 0x8D63 # 0x8D64 # 0x8D66 # 0x8D67 # 0x8D6B # 0x8D6D # 0x8D70 # 0x8D73 # 0x8D74 # 0x8D75 # 0x8D76 # 0x8D77 # 0x8D81 # 0x8D84 # 0x8D85 # 0x8D8A # 0x8D8B # 0x8D91 # 0x8D94 # 0x8D9F # 0x8DA3 # 0x8DB1 # 0x8DB3 # 0x8DB4 # 0x8DB5 # 0x8DB8 # 0x8DBA # 0x8DBC # 0x8DBE # 0x8DBF # 0x8DC3 # 0x8DC4 # 0x8DC6 # 0x8DCB # 0x8DCC # 0x8DCE # 0x8DCF # 0x8DD1 # 0x8DD6 # 0x8DD7 # 0x8DDA # 0x8DDB # 0x8DDD # 0x8DDE # 0x8DDF # 0x8DE3 # 0x8DE4 # 0x8DE8 # 0x8DEA # 0x8DEB # 0x8DEC # 0x8DEF # 0x8DF3 # 0x8DF5 # 0x8DF7 # 0x8DF8 # 0x8DF9 # 0x8DFA # 0x8DFB # 0x8DFD # 0x8E05 # 0x8E09 # 0x8E0A # 0x8E0C # 0x8E0F # 0x8E14 # 0x8E1D # 0x8E1E # 0x8E1F # 0x8E22 # 0x8E23 # 0x8E29 # 0x8E2A # 0x8E2C # 0x8E2E # 0x8E2F # 0x8E31 # 0x8E35 # 0x8E39 # 0x8E3A # 0x8E3D # 0x8E40 # 0x8E41 # 0x8E42 # 0x8E44 # 0x8E47 # 0x8E48 # 0x8E49 # 0x8E4A # 0x8E4B # 0x8E51 # 0x8E52 # 0x8E59 # 0x8E66 # 0x8E69 # 0x8E6C # 0x8E6D # 0x8E6F # 0x8E70 # 0x8E72 # 0x8E74 # 0x8E76 # 0x8E7C # 0x8E7F # 0x8E81 # 0x8E85 # 0x8E87 # 0x8E8F # 0x8E90 # 0x8E94 # 0x8E9C # 0x8E9E # 0x8EAB # 0x8EAC # 0x8EAF # 0x8EB2 # 0x8EBA # 0x8ECE # 0x8F66 # 0x8F67 # 0x8F68 # 0x8F69 # 0x8F6B # 0x8F6C # 0x8F6D # 0x8F6E # 0x8F6F # 0x8F70 # 0x8F71 # 0x8F72 # 0x8F73 # 0x8F74 # 0x8F75 # 0x8F76 # 0x8F77 # 0x8F78 # 0x8F79 # 0x8F7A # 0x8F7B # 0x8F7C # 0x8F7D # 0x8F7E # 0x8F7F # 0x8F81 # 0x8F82 # 0x8F83 # 0x8F84 # 0x8F85 # 0x8F86 # 0x8F87 # 0x8F88 # 0x8F89 # 0x8F8A # 0x8F8B # 0x8F8D # 0x8F8E # 0x8F8F # 0x8F90 # 0x8F91 # 0x8F93 # 0x8F94 # 0x8F95 # 0x8F96 # 0x8F97 # 0x8F98 # 0x8F99 # 0x8F9A # 0x8F9B # 0x8F9C # 0x8F9E # 0x8F9F # 0x8FA3 # 0x8FA8 # 0x8FA9 # 0x8FAB # 0x8FB0 # 0x8FB1 # 0x8FB6 # 0x8FB9 # 0x8FBD # 0x8FBE # 0x8FC1 # 0x8FC2 # 0x8FC4 # 0x8FC5 # 0x8FC7 # 0x8FC8 # 0x8FCE # 0x8FD0 # 0x8FD1 # 0x8FD3 # 0x8FD4 # 0x8FD5 # 0x8FD8 # 0x8FD9 # 0x8FDB # 0x8FDC # 0x8FDD # 0x8FDE # 0x8FDF # 0x8FE2 # 0x8FE4 # 0x8FE5 # 0x8FE6 # 0x8FE8 # 0x8FE9 # 0x8FEA # 0x8FEB # 0x8FED # 0x8FEE # 0x8FF0 # 0x8FF3 # 0x8FF7 # 0x8FF8 # 0x8FF9 # 0x8FFD # 0x9000 # 0x9001 # 0x9002 # 0x9003 # 0x9004 # 0x9005 # 0x9006 # 0x9009 # 0x900A # 0x900B # 0x900D # 0x900F # 0x9010 # 0x9011 # 0x9012 # 0x9014 # 0x9016 # 0x9017 # 0x901A # 0x901B # 0x901D # 0x901E # 0x901F # 0x9020 # 0x9021 # 0x9022 # 0x9026 # 0x902D # 0x902E # 0x902F # 0x9035 # 0x9036 # 0x9038 # 0x903B # 0x903C # 0x903E # 0x9041 # 0x9042 # 0x9044 # 0x9047 # 0x904D # 0x904F # 0x9050 # 0x9051 # 0x9052 # 0x9053 # 0x9057 # 0x9058 # 0x905B # 0x9062 # 0x9063 # 0x9065 # 0x9068 # 0x906D # 0x906E # 0x9074 # 0x9075 # 0x907D # 0x907F # 0x9080 # 0x9082 # 0x9083 # 0x9088 # 0x908B # 0x9091 # 0x9093 # 0x9095 # 0x9097 # 0x9099 # 0x909B # 0x909D # 0x90A1 # 0x90A2 # 0x90A3 # 0x90A6 # 0x90AA # 0x90AC # 0x90AE # 0x90AF # 0x90B0 # 0x90B1 # 0x90B3 # 0x90B4 # 0x90B5 # 0x90B6 # 0x90B8 # 0x90B9 # 0x90BA # 0x90BB # 0x90BE # 0x90C1 # 0x90C4 # 0x90C5 # 0x90C7 # 0x90CA # 0x90CE # 0x90CF # 0x90D0 # 0x90D1 # 0x90D3 # 0x90D7 # 0x90DB # 0x90DC # 0x90DD # 0x90E1 # 0x90E2 # 0x90E6 # 0x90E7 # 0x90E8 # 0x90EB # 0x90ED # 0x90EF # 0x90F4 # 0x90F8 # 0x90FD # 0x90FE # 0x9102 # 0x9104 # 0x9119 # 0x911E # 0x9122 # 0x9123 # 0x912F # 0x9131 # 0x9139 # 0x9143 # 0x9146 # 0x9149 # 0x914A # 0x914B # 0x914C # 0x914D # 0x914E # 0x914F # 0x9150 # 0x9152 # 0x9157 # 0x915A # 0x915D # 0x915E # 0x9161 # 0x9162 # 0x9163 # 0x9164 # 0x9165 # 0x9169 # 0x916A # 0x916C # 0x916E # 0x916F # 0x9170 # 0x9171 # 0x9172 # 0x9174 # 0x9175 # 0x9176 # 0x9177 # 0x9178 # 0x9179 # 0x917D # 0x917E # 0x917F # 0x9185 # 0x9187 # 0x9189 # 0x918B # 0x918C # 0x918D # 0x9190 # 0x9191 # 0x9192 # 0x919A # 0x919B # 0x91A2 # 0x91A3 # 0x91AA # 0x91AD # 0x91AE # 0x91AF # 0x91B4 # 0x91B5 # 0x91BA # 0x91C7 # 0x91C9 # 0x91CA # 0x91CC # 0x91CD # 0x91CE # 0x91CF # 0x91D1 # 0x91DC # 0x9274 # 0x928E # 0x92AE # 0x92C8 # 0x933E # 0x936A # 0x938F # 0x93CA # 0x93D6 # 0x943E # 0x946B # 0x9485 # 0x9486 # 0x9487 # 0x9488 # 0x9489 # 0x948A # 0x948B # 0x948C # 0x948D # 0x948E # 0x948F # 0x9490 # 0x9492 # 0x9493 # 0x9494 # 0x9495 # 0x9497 # 0x9499 # 0x949A # 0x949B # 0x949C # 0x949D # 0x949E # 0x949F # 0x94A0 # 0x94A1 # 0x94A2 # 0x94A3 # 0x94A4 # 0x94A5 # 0x94A6 # 0x94A7 # 0x94A8 # 0x94A9 # 0x94AA # 0x94AB # 0x94AC # 0x94AD # 0x94AE # 0x94AF # 0x94B0 # 0x94B1 # 0x94B2 # 0x94B3 # 0x94B4 # 0x94B5 # 0x94B6 # 0x94B7 # 0x94B8 # 0x94B9 # 0x94BA # 0x94BB # 0x94BC # 0x94BD # 0x94BE # 0x94BF # 0x94C0 # 0x94C1 # 0x94C2 # 0x94C3 # 0x94C4 # 0x94C5 # 0x94C6 # 0x94C8 # 0x94C9 # 0x94CA # 0x94CB # 0x94CC # 0x94CD # 0x94CE # 0x94D0 # 0x94D1 # 0x94D2 # 0x94D5 # 0x94D6 # 0x94D7 # 0x94D8 # 0x94D9 # 0x94DB # 0x94DC # 0x94DD # 0x94DE # 0x94DF # 0x94E0 # 0x94E1 # 0x94E2 # 0x94E3 # 0x94E4 # 0x94E5 # 0x94E7 # 0x94E8 # 0x94E9 # 0x94EA # 0x94EB # 0x94EC # 0x94ED # 0x94EE # 0x94EF # 0x94F0 # 0x94F1 # 0x94F2 # 0x94F3 # 0x94F4 # 0x94F5 # 0x94F6 # 0x94F7 # 0x94F8 # 0x94F9 # 0x94FA # 0x94FC # 0x94FD # 0x94FE # 0x94FF # 0x9500 # 0x9501 # 0x9502 # 0x9503 # 0x9504 # 0x9505 # 0x9506 # 0x9507 # 0x9508 # 0x9509 # 0x950A # 0x950B # 0x950C # 0x950D # 0x950E # 0x950F # 0x9510 # 0x9511 # 0x9512 # 0x9513 # 0x9514 # 0x9515 # 0x9516 # 0x9517 # 0x9518 # 0x9519 # 0x951A # 0x951B # 0x951D # 0x951E # 0x951F # 0x9521 # 0x9522 # 0x9523 # 0x9524 # 0x9525 # 0x9526 # 0x9528 # 0x9529 # 0x952A # 0x952B # 0x952C # 0x952D # 0x952E # 0x952F # 0x9530 # 0x9531 # 0x9532 # 0x9534 # 0x9535 # 0x9536 # 0x9537 # 0x9538 # 0x9539 # 0x953A # 0x953B # 0x953C # 0x953E # 0x953F # 0x9540 # 0x9541 # 0x9542 # 0x9544 # 0x9545 # 0x9546 # 0x9547 # 0x9549 # 0x954A # 0x954C # 0x954D # 0x954E # 0x954F # 0x9550 # 0x9551 # 0x9552 # 0x9553 # 0x9554 # 0x9556 # 0x9557 # 0x9558 # 0x9559 # 0x955B # 0x955C # 0x955D # 0x955E # 0x955F # 0x9561 # 0x9562 # 0x9563 # 0x9564 # 0x9565 # 0x9566 # 0x9567 # 0x9568 # 0x9569 # 0x956A # 0x956B # 0x956C # 0x956D # 0x956F # 0x9570 # 0x9571 # 0x9572 # 0x9573 # 0x9576 # 0x957F # 0x95E8 # 0x95E9 # 0x95EA # 0x95EB # 0x95ED # 0x95EE # 0x95EF # 0x95F0 # 0x95F1 # 0x95F2 # 0x95F3 # 0x95F4 # 0x95F5 # 0x95F6 # 0x95F7 # 0x95F8 # 0x95F9 # 0x95FA # 0x95FB # 0x95FC # 0x95FD # 0x95FE # 0x9600 # 0x9601 # 0x9602 # 0x9603 # 0x9604 # 0x9605 # 0x9606 # 0x9608 # 0x9609 # 0x960A # 0x960B # 0x960C # 0x960D # 0x960E # 0x960F # 0x9610 # 0x9611 # 0x9612 # 0x9614 # 0x9615 # 0x9616 # 0x9617 # 0x9619 # 0x961A # 0x961C # 0x961D # 0x961F # 0x9621 # 0x9622 # 0x962A # 0x962E # 0x9631 # 0x9632 # 0x9633 # 0x9634 # 0x9635 # 0x9636 # 0x963B # 0x963C # 0x963D # 0x963F # 0x9640 # 0x9642 # 0x9644 # 0x9645 # 0x9646 # 0x9647 # 0x9648 # 0x9649 # 0x964B # 0x964C # 0x964D # 0x9650 # 0x9654 # 0x9655 # 0x965B # 0x965F # 0x9661 # 0x9662 # 0x9664 # 0x9667 # 0x9668 # 0x9669 # 0x966A # 0x966C # 0x9672 # 0x9674 # 0x9675 # 0x9676 # 0x9677 # 0x9685 # 0x9686 # 0x9688 # 0x968B # 0x968D # 0x968F # 0x9690 # 0x9694 # 0x9697 # 0x9698 # 0x9699 # 0x969C # 0x96A7 # 0x96B0 # 0x96B3 # 0x96B6 # 0x96B9 # 0x96BC # 0x96BD # 0x96BE # 0x96C0 # 0x96C1 # 0x96C4 # 0x96C5 # 0x96C6 # 0x96C7 # 0x96C9 # 0x96CC # 0x96CD # 0x96CE # 0x96CF # 0x96D2 # 0x96D5 # 0x96E0 # 0x96E8 # 0x96E9 # 0x96EA # 0x96EF # 0x96F3 # 0x96F6 # 0x96F7 # 0x96F9 # 0x96FE # 0x9700 # 0x9701 # 0x9704 # 0x9706 # 0x9707 # 0x9708 # 0x9709 # 0x970D # 0x970E # 0x970F # 0x9713 # 0x9716 # 0x971C # 0x971E # 0x972A # 0x972D # 0x9730 # 0x9732 # 0x9738 # 0x9739 # 0x973E # 0x9752 # 0x9753 # 0x9756 # 0x9759 # 0x975B # 0x975E # 0x9760 # 0x9761 # 0x9762 # 0x9765 # 0x9769 # 0x9773 # 0x9774 # 0x9776 # 0x977C # 0x9785 # 0x978B # 0x978D # 0x9791 # 0x9792 # 0x9794 # 0x9798 # 0x97A0 # 0x97A3 # 0x97AB # 0x97AD # 0x97AF # 0x97B2 # 0x97B4 # 0x97E6 # 0x97E7 # 0x97E9 # 0x97EA # 0x97EB # 0x97EC # 0x97ED # 0x97F3 # 0x97F5 # 0x97F6 # 0x9875 # 0x9876 # 0x9877 # 0x9878 # 0x9879 # 0x987A # 0x987B # 0x987C # 0x987D # 0x987E # 0x987F # 0x9880 # 0x9881 # 0x9882 # 0x9883 # 0x9884 # 0x9885 # 0x9886 # 0x9887 # 0x9888 # 0x9889 # 0x988A # 0x988C # 0x988D # 0x988F # 0x9890 # 0x9891 # 0x9893 # 0x9894 # 0x9896 # 0x9897 # 0x9898 # 0x989A # 0x989B # 0x989C # 0x989D # 0x989E # 0x989F # 0x98A0 # 0x98A1 # 0x98A2 # 0x98A4 # 0x98A5 # 0x98A6 # 0x98A7 # 0x98CE # 0x98D1 # 0x98D2 # 0x98D3 # 0x98D5 # 0x98D8 # 0x98D9 # 0x98DA # 0x98DE # 0x98DF # 0x98E7 # 0x98E8 # 0x990D # 0x9910 # 0x992E # 0x9954 # 0x9955 # 0x9963 # 0x9965 # 0x9967 # 0x9968 # 0x9969 # 0x996A # 0x996B # 0x996C # 0x996D # 0x996E # 0x996F # 0x9970 # 0x9971 # 0x9972 # 0x9974 # 0x9975 # 0x9976 # 0x9977 # 0x997A # 0x997C # 0x997D # 0x997F # 0x9980 # 0x9981 # 0x9984 # 0x9985 # 0x9986 # 0x9987 # 0x9988 # 0x998A # 0x998B # 0x998D # 0x998F # 0x9990 # 0x9991 # 0x9992 # 0x9993 # 0x9994 # 0x9995 # 0x9996 # 0x9997 # 0x9998 # 0x9999 # 0x99A5 # 0x99A8 # 0x9A6C # 0x9A6D # 0x9A6E # 0x9A6F # 0x9A70 # 0x9A71 # 0x9A73 # 0x9A74 # 0x9A75 # 0x9A76 # 0x9A77 # 0x9A78 # 0x9A79 # 0x9A7A # 0x9A7B # 0x9A7C # 0x9A7D # 0x9A7E # 0x9A7F # 0x9A80 # 0x9A81 # 0x9A82 # 0x9A84 # 0x9A85 # 0x9A86 # 0x9A87 # 0x9A88 # 0x9A8A # 0x9A8B # 0x9A8C # 0x9A8F # 0x9A90 # 0x9A91 # 0x9A92 # 0x9A93 # 0x9A96 # 0x9A97 # 0x9A98 # 0x9A9A # 0x9A9B # 0x9A9C # 0x9A9D # 0x9A9E # 0x9A9F # 0x9AA0 # 0x9AA1 # 0x9AA2 # 0x9AA3 # 0x9AA4 # 0x9AA5 # 0x9AA7 # 0x9AA8 # 0x9AB0 # 0x9AB1 # 0x9AB6 # 0x9AB7 # 0x9AB8 # 0x9ABA # 0x9ABC # 0x9AC0 # 0x9AC1 # 0x9AC2 # 0x9AC5 # 0x9ACB # 0x9ACC # 0x9AD1 # 0x9AD3 # 0x9AD8 # 0x9ADF # 0x9AE1 # 0x9AE6 # 0x9AEB # 0x9AED # 0x9AEF # 0x9AF9 # 0x9AFB # 0x9B03 # 0x9B08 # 0x9B0F # 0x9B13 # 0x9B1F # 0x9B23 # 0x9B2F # 0x9B32 # 0x9B3B # 0x9B3C # 0x9B41 # 0x9B42 # 0x9B43 # 0x9B44 # 0x9B45 # 0x9B47 # 0x9B48 # 0x9B49 # 0x9B4D # 0x9B4F # 0x9B51 # 0x9B54 # 0x9C7C # 0x9C7F # 0x9C81 # 0x9C82 # 0x9C85 # 0x9C86 # 0x9C87 # 0x9C88 # 0x9C8B # 0x9C8D # 0x9C8E # 0x9C90 # 0x9C91 # 0x9C92 # 0x9C94 # 0x9C95 # 0x9C9A # 0x9C9B # 0x9C9C # 0x9C9E # 0x9C9F # 0x9CA0 # 0x9CA1 # 0x9CA2 # 0x9CA3 # 0x9CA4 # 0x9CA5 # 0x9CA6 # 0x9CA7 # 0x9CA8 # 0x9CA9 # 0x9CAB # 0x9CAD # 0x9CAE # 0x9CB0 # 0x9CB1 # 0x9CB2 # 0x9CB3 # 0x9CB4 # 0x9CB5 # 0x9CB6 # 0x9CB7 # 0x9CB8 # 0x9CBA # 0x9CBB # 0x9CBC # 0x9CBD # 0x9CC3 # 0x9CC4 # 0x9CC5 # 0x9CC6 # 0x9CC7 # 0x9CCA # 0x9CCB # 0x9CCC # 0x9CCD # 0x9CCE # 0x9CCF # 0x9CD0 # 0x9CD3 # 0x9CD4 # 0x9CD5 # 0x9CD6 # 0x9CD7 # 0x9CD8 # 0x9CD9 # 0x9CDC # 0x9CDD # 0x9CDE # 0x9CDF # 0x9CE2 # 0x9E1F # 0x9E20 # 0x9E21 # 0x9E22 # 0x9E23 # 0x9E25 # 0x9E26 # 0x9E28 # 0x9E29 # 0x9E2A # 0x9E2B # 0x9E2C # 0x9E2D # 0x9E2F # 0x9E31 # 0x9E32 # 0x9E33 # 0x9E35 # 0x9E36 # 0x9E37 # 0x9E38 # 0x9E39 # 0x9E3A # 0x9E3D # 0x9E3E # 0x9E3F # 0x9E41 # 0x9E42 # 0x9E43 # 0x9E44 # 0x9E45 # 0x9E46 # 0x9E47 # 0x9E48 # 0x9E49 # 0x9E4A # 0x9E4B # 0x9E4C # 0x9E4E # 0x9E4F # 0x9E51 # 0x9E55 # 0x9E57 # 0x9E58 # 0x9E5A # 0x9E5B # 0x9E5C # 0x9E5E # 0x9E63 # 0x9E64 # 0x9E66 # 0x9E67 # 0x9E68 # 0x9E69 # 0x9E6A # 0x9E6B # 0x9E6C # 0x9E6D # 0x9E70 # 0x9E71 # 0x9E73 # 0x9E7E # 0x9E7F # 0x9E82 # 0x9E87 # 0x9E88 # 0x9E8B # 0x9E92 # 0x9E93 # 0x9E9D # 0x9E9F # 0x9EA6 # 0x9EB4 # 0x9EB8 # 0x9EBB # 0x9EBD # 0x9EBE # 0x9EC4 # 0x9EC9 # 0x9ECD # 0x9ECE # 0x9ECF # 0x9ED1 # 0x9ED4 # 0x9ED8 # 0x9EDB # 0x9EDC # 0x9EDD # 0x9EDF # 0x9EE0 # 0x9EE2 # 0x9EE5 # 0x9EE7 # 0x9EE9 # 0x9EEA # 0x9EEF # 0x9EF9 # 0x9EFB # 0x9EFC # 0x9EFE # 0x9F0B # 0x9F0D # 0x9F0E # 0x9F10 # 0x9F13 # 0x9F17 # 0x9F19 # 0x9F20 # 0x9F22 # 0x9F2C # 0x9F2F # 0x9F37 # 0x9F39 # 0x9F3B # 0x9F3D # 0x9F3E # 0x9F44 # 0x9F50 # 0x9F51 # 0x9F7F # 0x9F80 # 0x9F83 # 0x9F84 # 0x9F85 # 0x9F86 # 0x9F87 # 0x9F88 # 0x9F89 # 0x9F8A # 0x9F8B # 0x9F8C # 0x9F99 # 0x9F9A # 0x9F9B # 0x9F9F # 0x9FA0 # fontconfig-2.11.1/fc-lang/bo.orth0000664000076400007640000000262512267155334013505 00000000000000# # fontconfig/fc-lang/bo.orth # # 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. # # Tibetan (BO) # # Taken from the Unicode coverage of this language # 0f40-0f47 0f49-0f69 0f71-0f76 0f78 0f7a-0f7d 0f80-0f81 0f90-0f97 0f99-0fb9 # Fixed-form subjoined consonants # These characters are used only for transliteration and transcription. #0fba-0fbc fontconfig-2.11.1/fc-lang/pap_an.orth0000664000076400007640000000301312267155334014333 00000000000000# # fontconfig/fc-lang/pap_an.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Papiamento in Netherlands Antilles (pap-AN) # # This is based on Curaçao orthography, also called "Papiamentu". # # Sources: # * http://papiamentu.pbwiki.com/Pronunciation # * http://en.wikipedia.org/wiki/Papiamento # * http://papiamentu.donamaro.nl/ # 0041-005A 0061-007A 00C1 00C8-00C9 00CD 00D1-00D3 00D9-00DA 00DC 00E1 00E8-00E9 00ED 00F1-00F3 00F9-00FA 00FC fontconfig-2.11.1/fc-lang/zh_tw.orth0000664000076400007640000026571012267155334014246 00000000000000# # fontconfig/fc-lang/zh_tw.orth # # 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. # # Chinese (traditional) ZH-TW # # Made by trimming the Big5 -> unicode mapping down to just Chinese glyphs # #0x3000 # ideographic space #0x3001 # ideographic comma #0x3002 # ideographic full stop #0x3003 # ditto mark #0x3005 # ideographic iteration mark #0x3021 # Suzhou numeral 1 #0x3022 # Suzhou numeral 2 #0x3023 # Suzhou numeral 3 #0x3024 # Suzhou numeral 4 #0x3025 # Suzhou numeral 5 #0x3026 # Suzhou numeral 6 #0x3027 # Suzhou numeral 7 #0x3028 # Suzhou numeral 8 #0x3029 # Suzhou numeral 9 # Han 0x4E00 0x4E01 0x4E03 0x4E07 0x4E08 0x4E09 0x4E0A 0x4E0B 0x4E0C 0x4E0D 0x4E0E 0x4E0F 0x4E10 0x4E11 0x4E14 0x4E15 0x4E16 0x4E18 0x4E19 0x4E1E 0x4E1F 0x4E26 0x4E2B 0x4E2D 0x4E2E 0x4E30 0x4E31 0x4E32 0x4E33 0x4E38 0x4E39 0x4E3B 0x4E3C 0x4E42 0x4E43 0x4E45 0x4E47 0x4E48 0x4E4B 0x4E4D 0x4E4E 0x4E4F 0x4E52 0x4E53 0x4E56 0x4E58 0x4E59 0x4E5C 0x4E5D 0x4E5E 0x4E5F 0x4E69 0x4E73 0x4E7E 0x4E7F 0x4E82 0x4E83 0x4E84 0x4E86 0x4E88 0x4E8B 0x4E8C 0x4E8D 0x4E8E 0x4E91 0x4E92 0x4E93 0x4E94 0x4E95 0x4E99 0x4E9B 0x4E9E 0x4E9F 0x4EA1 0x4EA2 0x4EA4 0x4EA5 0x4EA6 0x4EA8 0x4EAB 0x4EAC 0x4EAD 0x4EAE 0x4EB3 0x4EB6 0x4EB9 0x4EBA 0x4EC0 0x4EC1 0x4EC2 0x4EC3 0x4EC4 0x4EC6 0x4EC7 0x4EC8 0x4EC9 0x4ECA 0x4ECB 0x4ECD 0x4ED4 0x4ED5 0x4ED6 0x4ED7 0x4ED8 0x4ED9 0x4EDA 0x4EDC 0x4EDD 0x4EDE 0x4EDF 0x4EE1 0x4EE3 0x4EE4 0x4EE5 0x4EE8 0x4EE9 0x4EF0 0x4EF1 0x4EF2 0x4EF3 0x4EF4 0x4EF5 0x4EF6 0x4EF7 0x4EFB 0x4EFD 0x4EFF 0x4F00 0x4F01 0x4F02 0x4F04 0x4F05 0x4F08 0x4F09 0x4F0A 0x4F0B 0x4F0D 0x4F0E 0x4F0F 0x4F10 0x4F11 0x4F12 0x4F13 0x4F14 0x4F15 0x4F18 0x4F19 0x4F1D 0x4F22 0x4F2C 0x4F2D 0x4F2F 0x4F30 0x4F33 0x4F34 0x4F36 0x4F38 0x4F3A 0x4F3B 0x4F3C 0x4F3D 0x4F3E 0x4F3F 0x4F41 0x4F43 0x4F46 0x4F47 0x4F48 0x4F49 0x4F4C 0x4F4D 0x4F4E 0x4F4F 0x4F50 0x4F51 0x4F52 0x4F53 0x4F54 0x4F55 0x4F56 0x4F57 0x4F58 0x4F59 0x4F5A 0x4F5B 0x4F5C 0x4F5D 0x4F5E 0x4F5F 0x4F60 0x4F61 0x4F62 0x4F63 0x4F64 0x4F67 0x4F69 0x4F6A 0x4F6B 0x4F6C 0x4F6E 0x4F6F 0x4F70 0x4F73 0x4F74 0x4F75 0x4F76 0x4F77 0x4F78 0x4F79 0x4F7A 0x4F7B 0x4F7C 0x4F7D 0x4F7E 0x4F7F 0x4F80 0x4F81 0x4F82 0x4F83 0x4F84 0x4F85 0x4F86 0x4F87 0x4F88 0x4F89 0x4F8B 0x4F8D 0x4F8F 0x4F90 0x4F91 0x4F92 0x4F94 0x4F95 0x4F96 0x4F97 0x4F98 0x4F9A 0x4F9B 0x4F9C 0x4F9D 0x4F9E 0x4FAE 0x4FAF 0x4FB2 0x4FB3 0x4FB5 0x4FB6 0x4FB7 0x4FB9 0x4FBA 0x4FBB 0x4FBF 0x4FC0 0x4FC1 0x4FC2 0x4FC3 0x4FC4 0x4FC5 0x4FC7 0x4FC9 0x4FCA 0x4FCB 0x4FCD 0x4FCE 0x4FCF 0x4FD0 0x4FD1 0x4FD3 0x4FD4 0x4FD6 0x4FD7 0x4FD8 0x4FD9 0x4FDA 0x4FDB 0x4FDC 0x4FDD 0x4FDE 0x4FDF 0x4FE0 0x4FE1 0x4FEC 0x4FEE 0x4FEF 0x4FF1 0x4FF3 0x4FF4 0x4FF5 0x4FF6 0x4FF7 0x4FF8 0x4FFA 0x4FFE 0x5000 0x5005 0x5006 0x5007 0x5009 0x500B 0x500C 0x500D 0x500E 0x500F 0x5011 0x5012 0x5013 0x5014 0x5015 0x5016 0x5017 0x5018 0x5019 0x501A 0x501B 0x501C 0x501E 0x501F 0x5020 0x5021 0x5022 0x5023 0x5025 0x5026 0x5027 0x5028 0x5029 0x502A 0x502B 0x502C 0x502D 0x502F 0x5030 0x5031 0x5033 0x5035 0x5037 0x503C 0x5040 0x5041 0x5043 0x5045 0x5046 0x5047 0x5048 0x5049 0x504A 0x504B 0x504C 0x504D 0x504E 0x504F 0x5051 0x5053 0x5055 0x5057 0x505A 0x505B 0x505C 0x505D 0x505E 0x505F 0x5060 0x5061 0x5062 0x5063 0x5064 0x5065 0x5068 0x5069 0x506A 0x506B 0x506D 0x506E 0x506F 0x5070 0x5072 0x5073 0x5074 0x5075 0x5076 0x5077 0x507A 0x507D 0x5080 0x5082 0x5083 0x5085 0x5087 0x508B 0x508C 0x508D 0x508E 0x5091 0x5092 0x5094 0x5095 0x5096 0x5098 0x5099 0x509A 0x509B 0x509C 0x509D 0x509E 0x50A2 0x50A3 0x50AC 0x50AD 0x50AE 0x50AF 0x50B0 0x50B1 0x50B2 0x50B3 0x50B4 0x50B5 0x50B6 0x50B7 0x50B8 0x50BA 0x50BB 0x50BD 0x50BE 0x50BF 0x50C1 0x50C2 0x50C4 0x50C5 0x50C6 0x50C7 0x50C8 0x50C9 0x50CA 0x50CB 0x50CE 0x50CF 0x50D1 0x50D3 0x50D4 0x50D5 0x50D6 0x50D7 0x50DA 0x50DB 0x50DD 0x50E0 0x50E3 0x50E4 0x50E5 0x50E6 0x50E7 0x50E8 0x50E9 0x50EA 0x50EC 0x50ED 0x50EE 0x50EF 0x50F0 0x50F1 0x50F3 0x50F5 0x50F6 0x50F8 0x50F9 0x50FB 0x50FD 0x50FE 0x50FF 0x5100 0x5102 0x5103 0x5104 0x5105 0x5106 0x5107 0x5108 0x5109 0x510A 0x510B 0x510C 0x5110 0x5111 0x5112 0x5113 0x5114 0x5115 0x5117 0x5118 0x511A 0x511C 0x511F 0x5120 0x5121 0x5122 0x5124 0x5125 0x5126 0x5129 0x512A 0x512D 0x512E 0x5130 0x5131 0x5132 0x5133 0x5134 0x5135 0x5137 0x5138 0x5139 0x513A 0x513B 0x513C 0x513D 0x513F 0x5140 0x5141 0x5143 0x5144 0x5145 0x5146 0x5147 0x5148 0x5149 0x514B 0x514C 0x514D 0x5152 0x5154 0x5155 0x5157 0x5159 0x515A 0x515B 0x515C 0x515D 0x515E 0x515F 0x5161 0x5162 0x5163 0x5165 0x5167 0x5168 0x5169 0x516B 0x516C 0x516D 0x516E 0x5171 0x5175 0x5176 0x5177 0x5178 0x517C 0x5180 0x5187 0x5189 0x518A 0x518D 0x518F 0x5191 0x5192 0x5193 0x5194 0x5195 0x5197 0x5198 0x519E 0x51A0 0x51A2 0x51A4 0x51A5 0x51AA 0x51AC 0x51B0 0x51B1 0x51B6 0x51B7 0x51B9 0x51BC 0x51BD 0x51BE 0x51C4 0x51C5 0x51C6 0x51C8 0x51CA 0x51CB 0x51CC 0x51CD 0x51CE 0x51D0 0x51D4 0x51D7 0x51D8 0x51DC 0x51DD 0x51DE 0x51E0 0x51E1 0x51F0 0x51F1 0x51F3 0x51F5 0x51F6 0x51F8 0x51F9 0x51FA 0x51FD 0x5200 0x5201 0x5203 0x5206 0x5207 0x5208 0x5209 0x520A 0x520C 0x520E 0x5210 0x5211 0x5212 0x5213 0x5216 0x5217 0x521C 0x521D 0x521E 0x5221 0x5224 0x5225 0x5228 0x5229 0x522A 0x522E 0x5230 0x5231 0x5232 0x5233 0x5235 0x5236 0x5237 0x5238 0x523A 0x523B 0x5241 0x5243 0x5244 0x5246 0x5247 0x5249 0x524A 0x524B 0x524C 0x524D 0x524E 0x5252 0x5254 0x5255 0x5256 0x525A 0x525B 0x525C 0x525D 0x525E 0x525F 0x5261 0x5262 0x5269 0x526A 0x526B 0x526C 0x526D 0x526E 0x526F 0x5272 0x5274 0x5275 0x5277 0x5278 0x527A 0x527B 0x527C 0x527D 0x527F 0x5280 0x5281 0x5282 0x5283 0x5284 0x5287 0x5288 0x5289 0x528A 0x528B 0x528C 0x528D 0x5291 0x5293 0x5296 0x5297 0x5298 0x5299 0x529B 0x529F 0x52A0 0x52A3 0x52A6 0x52A9 0x52AA 0x52AB 0x52AC 0x52AD 0x52AE 0x52BB 0x52BC 0x52BE 0x52C0 0x52C1 0x52C2 0x52C3 0x52C7 0x52C9 0x52CD 0x52D2 0x52D3 0x52D5 0x52D6 0x52D7 0x52D8 0x52D9 0x52DB 0x52DD 0x52DE 0x52DF 0x52E2 0x52E3 0x52E4 0x52E6 0x52E9 0x52EB 0x52EF 0x52F0 0x52F1 0x52F3 0x52F4 0x52F5 0x52F7 0x52F8 0x52FA 0x52FB 0x52FC 0x52FE 0x52FF 0x5305 0x5306 0x5308 0x5309 0x530A 0x530B 0x530D 0x530E 0x530F 0x5310 0x5311 0x5312 0x5315 0x5316 0x5317 0x5319 0x531A 0x531C 0x531D 0x531F 0x5320 0x5321 0x5322 0x5323 0x532A 0x532D 0x532F 0x5330 0x5331 0x5334 0x5337 0x5339 0x533C 0x533D 0x533E 0x533F 0x5340 0x5341 0x5343 0x5344 0x5345 0x5347 0x5348 0x5349 0x534A 0x534C 0x534D 0x5351 0x5352 0x5353 0x5354 0x5357 0x535A 0x535C 0x535E 0x5360 0x5361 0x5363 0x5366 0x536C 0x536E 0x536F 0x5370 0x5371 0x5372 0x5373 0x5375 0x5377 0x5378 0x5379 0x537B 0x537C 0x537F 0x5382 0x5384 0x538A 0x538E 0x538F 0x5392 0x5394 0x5396 0x5397 0x5398 0x5399 0x539A 0x539C 0x539D 0x539E 0x539F 0x53A4 0x53A5 0x53A7 0x53AC 0x53AD 0x53B2 0x53B4 0x53B9 0x53BB 0x53C3 0x53C8 0x53C9 0x53CA 0x53CB 0x53CD 0x53D4 0x53D6 0x53D7 0x53DB 0x53DF 0x53E1 0x53E2 0x53E3 0x53E4 0x53E5 0x53E6 0x53E8 0x53E9 0x53EA 0x53EB 0x53EC 0x53ED 0x53EE 0x53EF 0x53F0 0x53F1 0x53F2 0x53F3 0x53F5 0x53F8 0x53FB 0x53FC 0x5401 0x5403 0x5404 0x5406 0x5407 0x5408 0x5409 0x540A 0x540B 0x540C 0x540D 0x540E 0x540F 0x5410 0x5411 0x5412 0x5418 0x5419 0x541B 0x541C 0x541D 0x541E 0x541F 0x5420 0x5424 0x5425 0x5426 0x5427 0x5428 0x5429 0x542A 0x542B 0x542C 0x542D 0x542E 0x5430 0x5431 0x5433 0x5435 0x5436 0x5437 0x5438 0x5439 0x543B 0x543C 0x543D 0x543E 0x5440 0x5441 0x5442 0x5443 0x5445 0x5446 0x5447 0x5448 0x544A 0x544E 0x544F 0x5454 0x5460 0x5461 0x5462 0x5463 0x5464 0x5465 0x5466 0x5467 0x5468 0x546B 0x546C 0x546F 0x5470 0x5471 0x5472 0x5473 0x5474 0x5475 0x5476 0x5477 0x5478 0x547A 0x547B 0x547C 0x547D 0x547E 0x547F 0x5480 0x5481 0x5482 0x5484 0x5486 0x5487 0x5488 0x548B 0x548C 0x548D 0x548E 0x5490 0x5491 0x5492 0x5495 0x5496 0x5498 0x549A 0x54A0 0x54A1 0x54A2 0x54A5 0x54A6 0x54A7 0x54A8 0x54A9 0x54AA 0x54AB 0x54AC 0x54AD 0x54AE 0x54AF 0x54B0 0x54B1 0x54B3 0x54B6 0x54B7 0x54B8 0x54BA 0x54BB 0x54BC 0x54BD 0x54BE 0x54BF 0x54C0 0x54C1 0x54C2 0x54C3 0x54C4 0x54C5 0x54C6 0x54C7 0x54C8 0x54C9 0x54CE 0x54CF 0x54D6 0x54DE 0x54E0 0x54E1 0x54E2 0x54E4 0x54E5 0x54E6 0x54E7 0x54E8 0x54E9 0x54EA 0x54EB 0x54ED 0x54EE 0x54F1 0x54F2 0x54F3 0x54F7 0x54F8 0x54FA 0x54FB 0x54FC 0x54FD 0x54FF 0x5501 0x5503 0x5504 0x5505 0x5506 0x5507 0x5508 0x5509 0x550A 0x550B 0x550C 0x550E 0x550F 0x5510 0x5511 0x5512 0x5514 0x5517 0x551A 0x5526 0x5527 0x552A 0x552C 0x552D 0x552E 0x552F 0x5530 0x5531 0x5532 0x5533 0x5534 0x5535 0x5536 0x5537 0x5538 0x5539 0x553B 0x553C 0x553E 0x5540 0x5541 0x5543 0x5544 0x5545 0x5546 0x5548 0x554A 0x554B 0x554D 0x554E 0x554F 0x5550 0x5551 0x5552 0x5555 0x5556 0x5557 0x555C 0x555E 0x555F 0x5561 0x5562 0x5563 0x5564 0x5565 0x5566 0x556A 0x5575 0x5576 0x5577 0x557B 0x557C 0x557D 0x557E 0x557F 0x5580 0x5581 0x5582 0x5583 0x5584 0x5587 0x5588 0x5589 0x558A 0x558B 0x558C 0x558D 0x558E 0x558F 0x5591 0x5592 0x5593 0x5594 0x5595 0x5598 0x5599 0x559A 0x559C 0x559D 0x559F 0x55A1 0x55A2 0x55A3 0x55A4 0x55A5 0x55A6 0x55A7 0x55A8 0x55AA 0x55AB 0x55AC 0x55AD 0x55AE 0x55B1 0x55B2 0x55B3 0x55B5 0x55BB 0x55BF 0x55C0 0x55C2 0x55C3 0x55C4 0x55C5 0x55C6 0x55C7 0x55C8 0x55C9 0x55CA 0x55CB 0x55CC 0x55CD 0x55CE 0x55CF 0x55D0 0x55D1 0x55D2 0x55D3 0x55D4 0x55D5 0x55D6 0x55D9 0x55DA 0x55DB 0x55DC 0x55DD 0x55DF 0x55E1 0x55E2 0x55E3 0x55E4 0x55E5 0x55E6 0x55E7 0x55E8 0x55E9 0x55EF 0x55F2 0x55F6 0x55F7 0x55F9 0x55FA 0x55FC 0x55FD 0x55FE 0x55FF 0x5600 0x5601 0x5602 0x5604 0x5606 0x5608 0x5609 0x560C 0x560D 0x560E 0x560F 0x5610 0x5612 0x5613 0x5614 0x5615 0x5616 0x5617 0x561B 0x561C 0x561D 0x561F 0x5627 0x5629 0x562A 0x562C 0x562E 0x562F 0x5630 0x5632 0x5633 0x5634 0x5635 0x5636 0x5638 0x5639 0x563A 0x563B 0x563D 0x563E 0x563F 0x5640 0x5641 0x5642 0x5645 0x5646 0x5648 0x5649 0x564A 0x564C 0x564E 0x5653 0x5657 0x5658 0x5659 0x565A 0x565E 0x5660 0x5662 0x5663 0x5664 0x5665 0x5666 0x5668 0x5669 0x566A 0x566B 0x566C 0x566D 0x566E 0x566F 0x5670 0x5671 0x5672 0x5673 0x5674 0x5676 0x5677 0x5678 0x5679 0x567E 0x567F 0x5680 0x5681 0x5682 0x5683 0x5684 0x5685 0x5686 0x5687 0x568C 0x568D 0x568E 0x568F 0x5690 0x5693 0x5695 0x5697 0x5698 0x5699 0x569A 0x569C 0x569D 0x56A5 0x56A6 0x56A7 0x56A8 0x56AA 0x56AB 0x56AC 0x56AD 0x56AE 0x56B2 0x56B3 0x56B4 0x56B5 0x56B6 0x56B7 0x56BC 0x56BD 0x56BE 0x56C0 0x56C1 0x56C2 0x56C3 0x56C5 0x56C6 0x56C8 0x56C9 0x56CA 0x56CB 0x56CC 0x56CD 0x56D1 0x56D3 0x56D4 0x56D7 0x56DA 0x56DB 0x56DD 0x56DE 0x56DF 0x56E0 0x56E1 0x56E4 0x56E5 0x56E7 0x56EA 0x56EB 0x56EE 0x56F0 0x56F7 0x56F9 0x56FA 0x56FF 0x5701 0x5702 0x5703 0x5704 0x5707 0x5708 0x5709 0x570A 0x570B 0x570C 0x570D 0x5712 0x5713 0x5714 0x5716 0x5718 0x571A 0x571B 0x571C 0x571E 0x571F 0x5720 0x5722 0x5723 0x5728 0x5729 0x572A 0x572C 0x572D 0x572E 0x572F 0x5730 0x5733 0x5734 0x573B 0x573E 0x5740 0x5741 0x5745 0x5747 0x5749 0x574A 0x574B 0x574C 0x574D 0x574E 0x574F 0x5750 0x5751 0x5752 0x5761 0x5762 0x5764 0x5766 0x5768 0x5769 0x576A 0x576B 0x576D 0x576F 0x5770 0x5771 0x5772 0x5773 0x5774 0x5775 0x5776 0x5777 0x577B 0x577C 0x577D 0x5780 0x5782 0x5783 0x578B 0x578C 0x578F 0x5793 0x5794 0x5795 0x5797 0x5798 0x5799 0x579A 0x579B 0x579D 0x579E 0x579F 0x57A0 0x57A2 0x57A3 0x57A4 0x57A5 0x57AE 0x57B5 0x57B6 0x57B8 0x57B9 0x57BA 0x57BC 0x57BD 0x57BF 0x57C1 0x57C2 0x57C3 0x57C6 0x57C7 0x57CB 0x57CC 0x57CE 0x57CF 0x57D0 0x57D2 0x57D4 0x57D5 0x57DC 0x57DF 0x57E0 0x57E1 0x57E2 0x57E3 0x57E4 0x57E5 0x57E7 0x57E9 0x57EC 0x57ED 0x57EE 0x57F0 0x57F1 0x57F2 0x57F3 0x57F4 0x57F5 0x57F6 0x57F7 0x57F8 0x57F9 0x57FA 0x57FB 0x57FC 0x57FD 0x5800 0x5801 0x5802 0x5804 0x5805 0x5806 0x5807 0x5808 0x5809 0x580A 0x580B 0x580C 0x580D 0x580E 0x5810 0x5814 0x5819 0x581B 0x581C 0x581D 0x581E 0x5820 0x5821 0x5823 0x5824 0x5825 0x5827 0x5828 0x5829 0x582A 0x582C 0x582D 0x582E 0x582F 0x5830 0x5831 0x5832 0x5833 0x5834 0x5835 0x5836 0x5837 0x5838 0x5839 0x583B 0x583D 0x583F 0x5848 0x5849 0x584A 0x584B 0x584C 0x584D 0x584E 0x584F 0x5851 0x5852 0x5853 0x5854 0x5855 0x5857 0x5858 0x5859 0x585A 0x585B 0x585D 0x585E 0x5862 0x5863 0x5864 0x5865 0x5868 0x586B 0x586D 0x586F 0x5871 0x5874 0x5875 0x5876 0x5879 0x587A 0x587B 0x587C 0x587D 0x587E 0x587F 0x5880 0x5881 0x5882 0x5883 0x5885 0x5886 0x5887 0x5888 0x5889 0x588A 0x588B 0x588E 0x588F 0x5890 0x5891 0x5893 0x5894 0x5898 0x589C 0x589D 0x589E 0x589F 0x58A0 0x58A1 0x58A3 0x58A5 0x58A6 0x58A8 0x58A9 0x58AB 0x58AC 0x58AE 0x58AF 0x58B1 0x58B3 0x58BA 0x58BC 0x58BD 0x58BE 0x58BF 0x58C1 0x58C2 0x58C5 0x58C6 0x58C7 0x58C8 0x58C9 0x58CE 0x58CF 0x58D1 0x58D2 0x58D3 0x58D4 0x58D5 0x58D6 0x58D8 0x58D9 0x58DA 0x58DB 0x58DD 0x58DE 0x58DF 0x58E2 0x58E3 0x58E4 0x58E7 0x58E8 0x58E9 0x58EB 0x58EC 0x58EF 0x58F4 0x58F9 0x58FA 0x58FC 0x58FD 0x58FE 0x58FF 0x5903 0x5906 0x590C 0x590D 0x590E 0x590F 0x5912 0x5914 0x5915 0x5916 0x5917 0x5919 0x591A 0x591C 0x5920 0x5922 0x5924 0x5925 0x5927 0x5929 0x592A 0x592B 0x592C 0x592D 0x592E 0x592F 0x5931 0x5937 0x5938 0x593C 0x593E 0x5940 0x5944 0x5945 0x5947 0x5948 0x5949 0x594A 0x594E 0x594F 0x5950 0x5951 0x5953 0x5954 0x5955 0x5957 0x5958 0x595A 0x595C 0x5960 0x5961 0x5962 0x5967 0x5969 0x596A 0x596B 0x596D 0x596E 0x5970 0x5971 0x5972 0x5973 0x5974 0x5976 0x5977 0x5978 0x5979 0x597B 0x597C 0x597D 0x597E 0x597F 0x5980 0x5981 0x5982 0x5983 0x5984 0x5985 0x598A 0x598D 0x598E 0x598F 0x5990 0x5992 0x5993 0x5996 0x5997 0x5998 0x5999 0x599D 0x599E 0x59A0 0x59A1 0x59A2 0x59A3 0x59A4 0x59A5 0x59A6 0x59A7 0x59A8 0x59AE 0x59AF 0x59B1 0x59B2 0x59B3 0x59B4 0x59B5 0x59B6 0x59B9 0x59BA 0x59BB 0x59BC 0x59BD 0x59BE 0x59C0 0x59C1 0x59C3 0x59C5 0x59C6 0x59C7 0x59C8 0x59CA 0x59CB 0x59CC 0x59CD 0x59CE 0x59CF 0x59D0 0x59D1 0x59D2 0x59D3 0x59D4 0x59D6 0x59D8 0x59DA 0x59DB 0x59DC 0x59DD 0x59DE 0x59E0 0x59E1 0x59E3 0x59E4 0x59E5 0x59E6 0x59E8 0x59E9 0x59EA 0x59EC 0x59ED 0x59EE 0x59F1 0x59F2 0x59F3 0x59F4 0x59F5 0x59F6 0x59F7 0x59FA 0x59FB 0x59FC 0x59FD 0x59FE 0x59FF 0x5A00 0x5A01 0x5A03 0x5A09 0x5A0A 0x5A0C 0x5A0F 0x5A11 0x5A13 0x5A15 0x5A16 0x5A17 0x5A18 0x5A19 0x5A1B 0x5A1C 0x5A1E 0x5A1F 0x5A20 0x5A23 0x5A25 0x5A29 0x5A2D 0x5A2E 0x5A33 0x5A35 0x5A36 0x5A37 0x5A38 0x5A39 0x5A3C 0x5A3E 0x5A40 0x5A41 0x5A42 0x5A43 0x5A44 0x5A46 0x5A47 0x5A48 0x5A49 0x5A4A 0x5A4C 0x5A4D 0x5A50 0x5A51 0x5A52 0x5A53 0x5A55 0x5A56 0x5A57 0x5A58 0x5A5A 0x5A5B 0x5A5C 0x5A5D 0x5A5E 0x5A5F 0x5A60 0x5A62 0x5A64 0x5A65 0x5A66 0x5A67 0x5A69 0x5A6A 0x5A6C 0x5A6D 0x5A70 0x5A77 0x5A78 0x5A7A 0x5A7B 0x5A7C 0x5A7D 0x5A7F 0x5A83 0x5A84 0x5A8A 0x5A8B 0x5A8C 0x5A8E 0x5A8F 0x5A90 0x5A92 0x5A93 0x5A94 0x5A95 0x5A97 0x5A9A 0x5A9B 0x5A9C 0x5A9D 0x5A9E 0x5A9F 0x5AA2 0x5AA5 0x5AA6 0x5AA7 0x5AA9 0x5AAC 0x5AAE 0x5AAF 0x5AB0 0x5AB1 0x5AB2 0x5AB3 0x5AB4 0x5AB5 0x5AB6 0x5AB7 0x5AB8 0x5AB9 0x5ABA 0x5ABB 0x5ABC 0x5ABD 0x5ABE 0x5ABF 0x5AC0 0x5AC1 0x5AC2 0x5AC4 0x5AC6 0x5AC7 0x5AC8 0x5AC9 0x5ACA 0x5ACB 0x5ACC 0x5ACD 0x5AD5 0x5AD6 0x5AD7 0x5AD8 0x5AD9 0x5ADA 0x5ADB 0x5ADC 0x5ADD 0x5ADE 0x5ADF 0x5AE0 0x5AE1 0x5AE2 0x5AE3 0x5AE5 0x5AE6 0x5AE8 0x5AE9 0x5AEA 0x5AEB 0x5AEC 0x5AED 0x5AEE 0x5AF3 0x5AF4 0x5AF5 0x5AF6 0x5AF7 0x5AF8 0x5AF9 0x5AFB 0x5AFD 0x5AFF 0x5B01 0x5B02 0x5B03 0x5B05 0x5B07 0x5B08 0x5B09 0x5B0B 0x5B0C 0x5B0F 0x5B10 0x5B13 0x5B14 0x5B16 0x5B17 0x5B19 0x5B1A 0x5B1B 0x5B1D 0x5B1E 0x5B20 0x5B21 0x5B23 0x5B24 0x5B25 0x5B26 0x5B27 0x5B28 0x5B2A 0x5B2C 0x5B2D 0x5B2E 0x5B2F 0x5B30 0x5B32 0x5B34 0x5B38 0x5B3C 0x5B3D 0x5B3E 0x5B3F 0x5B40 0x5B43 0x5B45 0x5B47 0x5B48 0x5B4B 0x5B4C 0x5B4D 0x5B4E 0x5B50 0x5B51 0x5B53 0x5B54 0x5B55 0x5B56 0x5B57 0x5B58 0x5B5A 0x5B5B 0x5B5C 0x5B5D 0x5B5F 0x5B62 0x5B63 0x5B64 0x5B65 0x5B69 0x5B6B 0x5B6C 0x5B6E 0x5B70 0x5B71 0x5B72 0x5B73 0x5B75 0x5B77 0x5B78 0x5B7A 0x5B7B 0x5B7D 0x5B7F 0x5B81 0x5B83 0x5B84 0x5B85 0x5B87 0x5B88 0x5B89 0x5B8B 0x5B8C 0x5B8E 0x5B8F 0x5B92 0x5B93 0x5B95 0x5B97 0x5B98 0x5B99 0x5B9A 0x5B9B 0x5B9C 0x5BA2 0x5BA3 0x5BA4 0x5BA5 0x5BA6 0x5BA7 0x5BA8 0x5BAC 0x5BAD 0x5BAE 0x5BB0 0x5BB3 0x5BB4 0x5BB5 0x5BB6 0x5BB8 0x5BB9 0x5BBF 0x5BC0 0x5BC1 0x5BC2 0x5BC4 0x5BC5 0x5BC6 0x5BC7 0x5BCA 0x5BCB 0x5BCC 0x5BCD 0x5BCE 0x5BD0 0x5BD1 0x5BD2 0x5BD3 0x5BD4 0x5BD6 0x5BD8 0x5BD9 0x5BDE 0x5BDF 0x5BE0 0x5BE1 0x5BE2 0x5BE3 0x5BE4 0x5BE5 0x5BE6 0x5BE7 0x5BE8 0x5BE9 0x5BEA 0x5BEB 0x5BEC 0x5BEE 0x5BEF 0x5BF0 0x5BF1 0x5BF2 0x5BF5 0x5BF6 0x5BF8 0x5BFA 0x5C01 0x5C03 0x5C04 0x5C07 0x5C08 0x5C09 0x5C0A 0x5C0B 0x5C0C 0x5C0D 0x5C0E 0x5C0F 0x5C10 0x5C11 0x5C12 0x5C15 0x5C16 0x5C1A 0x5C1F 0x5C22 0x5C24 0x5C25 0x5C28 0x5C2A 0x5C2C 0x5C30 0x5C31 0x5C33 0x5C37 0x5C38 0x5C39 0x5C3A 0x5C3B 0x5C3C 0x5C3E 0x5C3F 0x5C40 0x5C41 0x5C44 0x5C45 0x5C46 0x5C47 0x5C48 0x5C4B 0x5C4C 0x5C4D 0x5C4E 0x5C4F 0x5C50 0x5C51 0x5C54 0x5C55 0x5C56 0x5C58 0x5C59 0x5C5C 0x5C5D 0x5C60 0x5C62 0x5C63 0x5C64 0x5C65 0x5C67 0x5C68 0x5C69 0x5C6A 0x5C6C 0x5C6D 0x5C6E 0x5C6F 0x5C71 0x5C73 0x5C74 0x5C79 0x5C7A 0x5C7B 0x5C7C 0x5C7E 0x5C86 0x5C88 0x5C89 0x5C8A 0x5C8B 0x5C8C 0x5C8D 0x5C8F 0x5C90 0x5C91 0x5C92 0x5C93 0x5C94 0x5C95 0x5C9D 0x5C9F 0x5CA0 0x5CA1 0x5CA2 0x5CA3 0x5CA4 0x5CA5 0x5CA6 0x5CA7 0x5CA8 0x5CA9 0x5CAA 0x5CAB 0x5CAC 0x5CAD 0x5CAE 0x5CAF 0x5CB0 0x5CB1 0x5CB3 0x5CB5 0x5CB6 0x5CB7 0x5CB8 0x5CC6 0x5CC7 0x5CC8 0x5CC9 0x5CCA 0x5CCB 0x5CCC 0x5CCE 0x5CCF 0x5CD0 0x5CD2 0x5CD3 0x5CD4 0x5CD6 0x5CD7 0x5CD8 0x5CD9 0x5CDA 0x5CDB 0x5CDE 0x5CDF 0x5CE8 0x5CEA 0x5CEC 0x5CED 0x5CEE 0x5CF0 0x5CF1 0x5CF4 0x5CF6 0x5CF7 0x5CF8 0x5CF9 0x5CFB 0x5CFD 0x5CFF 0x5D00 0x5D01 0x5D06 0x5D07 0x5D0B 0x5D0C 0x5D0D 0x5D0E 0x5D0F 0x5D11 0x5D12 0x5D14 0x5D16 0x5D17 0x5D19 0x5D1A 0x5D1B 0x5D1D 0x5D1E 0x5D1F 0x5D20 0x5D22 0x5D23 0x5D24 0x5D25 0x5D26 0x5D27 0x5D28 0x5D29 0x5D2E 0x5D30 0x5D31 0x5D32 0x5D33 0x5D34 0x5D35 0x5D36 0x5D37 0x5D38 0x5D39 0x5D3A 0x5D3C 0x5D3D 0x5D3F 0x5D40 0x5D41 0x5D42 0x5D43 0x5D45 0x5D47 0x5D49 0x5D4A 0x5D4B 0x5D4C 0x5D4E 0x5D50 0x5D51 0x5D52 0x5D55 0x5D59 0x5D5E 0x5D62 0x5D63 0x5D65 0x5D67 0x5D68 0x5D69 0x5D6B 0x5D6C 0x5D6F 0x5D71 0x5D72 0x5D77 0x5D79 0x5D7A 0x5D7C 0x5D7D 0x5D7E 0x5D7F 0x5D80 0x5D81 0x5D82 0x5D84 0x5D86 0x5D87 0x5D88 0x5D89 0x5D8A 0x5D8D 0x5D92 0x5D93 0x5D94 0x5D95 0x5D97 0x5D99 0x5D9A 0x5D9C 0x5D9D 0x5D9E 0x5D9F 0x5DA0 0x5DA1 0x5DA2 0x5DA7 0x5DA8 0x5DA9 0x5DAA 0x5DAC 0x5DAD 0x5DAE 0x5DAF 0x5DB0 0x5DB1 0x5DB2 0x5DB4 0x5DB5 0x5DB7 0x5DB8 0x5DBA 0x5DBC 0x5DBD 0x5DC0 0x5DC2 0x5DC3 0x5DC6 0x5DC7 0x5DC9 0x5DCB 0x5DCD 0x5DCF 0x5DD1 0x5DD2 0x5DD4 0x5DD5 0x5DD6 0x5DD8 0x5DDD 0x5DDE 0x5DDF 0x5DE0 0x5DE1 0x5DE2 0x5DE5 0x5DE6 0x5DE7 0x5DE8 0x5DEB 0x5DEE 0x5DF0 0x5DF1 0x5DF2 0x5DF3 0x5DF4 0x5DF7 0x5DF9 0x5DFD 0x5DFE 0x5DFF 0x5E02 0x5E03 0x5E04 0x5E06 0x5E0A 0x5E0C 0x5E0E 0x5E11 0x5E14 0x5E15 0x5E16 0x5E17 0x5E18 0x5E19 0x5E1A 0x5E1B 0x5E1D 0x5E1F 0x5E20 0x5E21 0x5E22 0x5E23 0x5E24 0x5E25 0x5E28 0x5E29 0x5E2B 0x5E2D 0x5E33 0x5E34 0x5E36 0x5E37 0x5E38 0x5E3D 0x5E3E 0x5E40 0x5E41 0x5E43 0x5E44 0x5E45 0x5E4A 0x5E4B 0x5E4C 0x5E4D 0x5E4E 0x5E4F 0x5E53 0x5E54 0x5E55 0x5E57 0x5E58 0x5E59 0x5E5B 0x5E5C 0x5E5D 0x5E5F 0x5E60 0x5E61 0x5E62 0x5E63 0x5E66 0x5E67 0x5E68 0x5E69 0x5E6A 0x5E6B 0x5E6C 0x5E6D 0x5E6E 0x5E6F 0x5E70 0x5E72 0x5E73 0x5E74 0x5E75 0x5E76 0x5E78 0x5E79 0x5E7B 0x5E7C 0x5E7D 0x5E7E 0x5E80 0x5E82 0x5E84 0x5E87 0x5E88 0x5E89 0x5E8A 0x5E8B 0x5E8C 0x5E8D 0x5E8F 0x5E95 0x5E96 0x5E97 0x5E9A 0x5E9B 0x5E9C 0x5EA0 0x5EA2 0x5EA3 0x5EA4 0x5EA5 0x5EA6 0x5EA7 0x5EA8 0x5EAA 0x5EAB 0x5EAC 0x5EAD 0x5EAE 0x5EB0 0x5EB1 0x5EB2 0x5EB3 0x5EB4 0x5EB5 0x5EB6 0x5EB7 0x5EB8 0x5EB9 0x5EBE 0x5EC1 0x5EC2 0x5EC4 0x5EC5 0x5EC6 0x5EC7 0x5EC8 0x5EC9 0x5ECA 0x5ECB 0x5ECC 0x5ECE 0x5ED1 0x5ED2 0x5ED3 0x5ED4 0x5ED5 0x5ED6 0x5ED7 0x5ED8 0x5ED9 0x5EDA 0x5EDB 0x5EDC 0x5EDD 0x5EDE 0x5EDF 0x5EE0 0x5EE1 0x5EE2 0x5EE3 0x5EE5 0x5EE6 0x5EE7 0x5EE8 0x5EE9 0x5EEC 0x5EEE 0x5EEF 0x5EF1 0x5EF2 0x5EF3 0x5EF6 0x5EF7 0x5EFA 0x5EFE 0x5EFF 0x5F01 0x5F02 0x5F04 0x5F05 0x5F07 0x5F08 0x5F0A 0x5F0B 0x5F0F 0x5F12 0x5F13 0x5F14 0x5F15 0x5F17 0x5F18 0x5F1A 0x5F1B 0x5F1D 0x5F1F 0x5F22 0x5F23 0x5F24 0x5F26 0x5F27 0x5F28 0x5F29 0x5F2D 0x5F2E 0x5F30 0x5F31 0x5F33 0x5F35 0x5F36 0x5F37 0x5F38 0x5F3C 0x5F40 0x5F43 0x5F44 0x5F46 0x5F48 0x5F49 0x5F4A 0x5F4B 0x5F4C 0x5F4E 0x5F4F 0x5F54 0x5F56 0x5F57 0x5F58 0x5F59 0x5F5D 0x5F62 0x5F64 0x5F65 0x5F67 0x5F69 0x5F6A 0x5F6B 0x5F6C 0x5F6D 0x5F6F 0x5F70 0x5F71 0x5F73 0x5F74 0x5F76 0x5F77 0x5F78 0x5F79 0x5F7C 0x5F7D 0x5F7E 0x5F7F 0x5F80 0x5F81 0x5F82 0x5F85 0x5F86 0x5F87 0x5F88 0x5F89 0x5F8A 0x5F8B 0x5F8C 0x5F90 0x5F91 0x5F92 0x5F96 0x5F97 0x5F98 0x5F99 0x5F9B 0x5F9C 0x5F9E 0x5F9F 0x5FA0 0x5FA1 0x5FA5 0x5FA6 0x5FA8 0x5FA9 0x5FAA 0x5FAB 0x5FAC 0x5FAD 0x5FAE 0x5FAF 0x5FB2 0x5FB5 0x5FB6 0x5FB7 0x5FB9 0x5FBB 0x5FBC 0x5FBD 0x5FBE 0x5FBF 0x5FC0 0x5FC1 0x5FC3 0x5FC5 0x5FC9 0x5FCC 0x5FCD 0x5FCF 0x5FD0 0x5FD1 0x5FD2 0x5FD4 0x5FD5 0x5FD6 0x5FD7 0x5FD8 0x5FD9 0x5FDD 0x5FDE 0x5FE0 0x5FE1 0x5FE3 0x5FE4 0x5FE5 0x5FE8 0x5FEA 0x5FEB 0x5FED 0x5FEE 0x5FEF 0x5FF1 0x5FF3 0x5FF4 0x5FF5 0x5FF7 0x5FF8 0x5FFA 0x5FFB 0x5FFD 0x5FFF 0x6000 0x6009 0x600A 0x600B 0x600C 0x600D 0x600E 0x600F 0x6010 0x6011 0x6012 0x6013 0x6014 0x6015 0x6016 0x6017 0x6019 0x601A 0x601B 0x601C 0x601D 0x601E 0x6020 0x6021 0x6022 0x6024 0x6025 0x6026 0x6027 0x6028 0x6029 0x602A 0x602B 0x602C 0x602D 0x602E 0x602F 0x6032 0x6033 0x6034 0x6035 0x6037 0x6039 0x6040 0x6041 0x6042 0x6043 0x6044 0x6045 0x6046 0x6047 0x6049 0x604C 0x604D 0x6050 0x6053 0x6054 0x6055 0x6058 0x6059 0x605A 0x605B 0x605D 0x605E 0x605F 0x6062 0x6063 0x6064 0x6065 0x6066 0x6067 0x6068 0x6069 0x606A 0x606B 0x606C 0x606D 0x606E 0x606F 0x6070 0x6072 0x607F 0x6080 0x6081 0x6083 0x6084 0x6085 0x6086 0x6087 0x6088 0x6089 0x608A 0x608C 0x608D 0x608E 0x6090 0x6092 0x6094 0x6095 0x6096 0x6097 0x609A 0x609B 0x609C 0x609D 0x609F 0x60A0 0x60A2 0x60A3 0x60A8 0x60B0 0x60B1 0x60B2 0x60B4 0x60B5 0x60B6 0x60B7 0x60B8 0x60B9 0x60BA 0x60BB 0x60BC 0x60BD 0x60BE 0x60BF 0x60C0 0x60C1 0x60C3 0x60C4 0x60C5 0x60C6 0x60C7 0x60C8 0x60C9 0x60CA 0x60CB 0x60CC 0x60CD 0x60CE 0x60CF 0x60D1 0x60D3 0x60D4 0x60D5 0x60D8 0x60D9 0x60DA 0x60DB 0x60DC 0x60DD 0x60DF 0x60E0 0x60E1 0x60E2 0x60E4 0x60E6 0x60F0 0x60F1 0x60F2 0x60F3 0x60F4 0x60F5 0x60F6 0x60F7 0x60F8 0x60F9 0x60FA 0x60FB 0x60FC 0x60FE 0x60FF 0x6100 0x6101 0x6103 0x6104 0x6105 0x6106 0x6108 0x6109 0x610A 0x610B 0x610D 0x610E 0x610F 0x6110 0x6112 0x6113 0x6114 0x6115 0x6116 0x6118 0x611A 0x611B 0x611C 0x611D 0x611F 0x6123 0x6127 0x6128 0x6129 0x612B 0x612C 0x612E 0x612F 0x6132 0x6134 0x6136 0x6137 0x613B 0x613E 0x613F 0x6140 0x6141 0x6144 0x6145 0x6146 0x6147 0x6148 0x6149 0x614A 0x614B 0x614C 0x614D 0x614E 0x614F 0x6152 0x6153 0x6154 0x6155 0x6156 0x6158 0x615A 0x615B 0x615D 0x615E 0x615F 0x6161 0x6162 0x6163 0x6165 0x6166 0x6167 0x6168 0x616A 0x616B 0x616C 0x616E 0x6170 0x6171 0x6172 0x6173 0x6174 0x6175 0x6176 0x6177 0x6179 0x617A 0x617C 0x617E 0x6180 0x6182 0x6183 0x6189 0x618A 0x618B 0x618C 0x618D 0x618E 0x6190 0x6191 0x6192 0x6193 0x6194 0x6196 0x619A 0x619B 0x619D 0x619F 0x61A1 0x61A2 0x61A4 0x61A7 0x61A8 0x61A9 0x61AA 0x61AB 0x61AC 0x61AD 0x61AE 0x61AF 0x61B0 0x61B1 0x61B2 0x61B3 0x61B4 0x61B5 0x61B6 0x61B8 0x61BA 0x61BC 0x61BE 0x61BF 0x61C1 0x61C2 0x61C3 0x61C5 0x61C6 0x61C7 0x61C8 0x61C9 0x61CA 0x61CB 0x61CC 0x61CD 0x61D6 0x61D8 0x61DE 0x61DF 0x61E0 0x61E3 0x61E4 0x61E5 0x61E6 0x61E7 0x61E8 0x61E9 0x61EA 0x61EB 0x61ED 0x61EE 0x61F0 0x61F1 0x61F2 0x61F5 0x61F6 0x61F7 0x61F8 0x61F9 0x61FA 0x61FB 0x61FC 0x61FD 0x61FE 0x61FF 0x6200 0x6201 0x6203 0x6204 0x6207 0x6208 0x6209 0x620A 0x620C 0x620D 0x620E 0x6210 0x6211 0x6212 0x6214 0x6215 0x6216 0x6219 0x621A 0x621B 0x621F 0x6220 0x6221 0x6222 0x6223 0x6224 0x6225 0x6227 0x6229 0x622A 0x622B 0x622D 0x622E 0x6230 0x6232 0x6233 0x6234 0x6236 0x623A 0x623D 0x623E 0x623F 0x6240 0x6241 0x6242 0x6243 0x6246 0x6247 0x6248 0x6249 0x624A 0x624B 0x624D 0x624E 0x6250 0x6251 0x6252 0x6253 0x6254 0x6258 0x6259 0x625A 0x625B 0x625C 0x625E 0x6260 0x6261 0x6262 0x6263 0x6264 0x6265 0x6266 0x626D 0x626E 0x626F 0x6270 0x6271 0x6272 0x6273 0x6274 0x6276 0x6277 0x6279 0x627A 0x627B 0x627C 0x627D 0x627E 0x627F 0x6280 0x6281 0x6283 0x6284 0x6286 0x6287 0x6288 0x6289 0x628A 0x628C 0x628E 0x628F 0x6291 0x6292 0x6293 0x6294 0x6295 0x6296 0x6297 0x6298 0x62A8 0x62A9 0x62AA 0x62AB 0x62AC 0x62AD 0x62AE 0x62AF 0x62B0 0x62B1 0x62B3 0x62B4 0x62B5 0x62B6 0x62B8 0x62B9 0x62BB 0x62BC 0x62BD 0x62BE 0x62BF 0x62C2 0x62C4 0x62C6 0x62C7 0x62C8 0x62C9 0x62CA 0x62CB 0x62CC 0x62CD 0x62CE 0x62CF 0x62D0 0x62D1 0x62D2 0x62D3 0x62D4 0x62D6 0x62D7 0x62D8 0x62D9 0x62DA 0x62DB 0x62DC 0x62EB 0x62EC 0x62ED 0x62EE 0x62EF 0x62F0 0x62F1 0x62F2 0x62F3 0x62F4 0x62F5 0x62F6 0x62F7 0x62F8 0x62F9 0x62FA 0x62FB 0x62FC 0x62FD 0x62FE 0x62FF 0x6300 0x6301 0x6302 0x6303 0x6307 0x6308 0x6309 0x630B 0x630C 0x630D 0x630E 0x630F 0x6310 0x6311 0x6313 0x6314 0x6315 0x6316 0x6328 0x6329 0x632A 0x632B 0x632C 0x632D 0x632F 0x6332 0x6333 0x6334 0x6336 0x6338 0x6339 0x633A 0x633B 0x633C 0x633D 0x633E 0x6340 0x6341 0x6342 0x6343 0x6344 0x6345 0x6346 0x6347 0x6348 0x6349 0x634A 0x634B 0x634C 0x634D 0x634E 0x634F 0x6350 0x6351 0x6354 0x6355 0x6356 0x6357 0x6358 0x6359 0x635A 0x6365 0x6367 0x6368 0x6369 0x636B 0x636D 0x636E 0x636F 0x6370 0x6371 0x6372 0x6375 0x6376 0x6377 0x6378 0x637A 0x637B 0x637C 0x637D 0x6380 0x6381 0x6382 0x6383 0x6384 0x6385 0x6387 0x6388 0x6389 0x638A 0x638C 0x638D 0x638E 0x638F 0x6390 0x6391 0x6392 0x6394 0x6396 0x6397 0x6398 0x6399 0x639B 0x639C 0x639D 0x639E 0x639F 0x63A0 0x63A1 0x63A2 0x63A3 0x63A4 0x63A5 0x63A7 0x63A8 0x63A9 0x63AA 0x63AB 0x63AC 0x63AD 0x63AE 0x63AF 0x63B0 0x63B1 0x63BD 0x63BE 0x63C0 0x63C2 0x63C3 0x63C4 0x63C5 0x63C6 0x63C7 0x63C8 0x63C9 0x63CA 0x63CB 0x63CC 0x63CD 0x63CE 0x63CF 0x63D0 0x63D2 0x63D3 0x63D5 0x63D6 0x63D7 0x63D8 0x63D9 0x63DA 0x63DB 0x63DC 0x63DD 0x63DF 0x63E0 0x63E1 0x63E3 0x63E4 0x63E5 0x63E7 0x63E8 0x63E9 0x63EA 0x63EB 0x63ED 0x63EE 0x63EF 0x63F0 0x63F1 0x63F2 0x63F3 0x63F4 0x63F5 0x63F6 0x63F9 0x6406 0x6409 0x640A 0x640B 0x640C 0x640D 0x640E 0x640F 0x6410 0x6412 0x6413 0x6414 0x6415 0x6416 0x6417 0x6418 0x641A 0x641B 0x641C 0x641E 0x641F 0x6420 0x6421 0x6422 0x6423 0x6424 0x6425 0x6426 0x6427 0x6428 0x642A 0x642B 0x642C 0x642D 0x642E 0x642F 0x6430 0x6433 0x6434 0x6435 0x6436 0x6437 0x6439 0x643D 0x643E 0x643F 0x6440 0x6441 0x6443 0x644B 0x644D 0x644E 0x6450 0x6451 0x6452 0x6453 0x6454 0x6458 0x6459 0x645B 0x645C 0x645D 0x645E 0x645F 0x6460 0x6461 0x6465 0x6466 0x6467 0x6468 0x6469 0x646B 0x646C 0x646D 0x646E 0x646F 0x6470 0x6472 0x6473 0x6474 0x6475 0x6476 0x6477 0x6478 0x6479 0x647A 0x647B 0x647D 0x647F 0x6482 0x6485 0x6487 0x6488 0x6489 0x648A 0x648B 0x648C 0x648F 0x6490 0x6492 0x6493 0x6495 0x6496 0x6497 0x6498 0x6499 0x649A 0x649C 0x649D 0x649E 0x649F 0x64A0 0x64A2 0x64A3 0x64A4 0x64A5 0x64A6 0x64A9 0x64AB 0x64AC 0x64AD 0x64AE 0x64B0 0x64B1 0x64B2 0x64B3 0x64BB 0x64BC 0x64BD 0x64BE 0x64BF 0x64C1 0x64C2 0x64C3 0x64C4 0x64C5 0x64C7 0x64C9 0x64CA 0x64CB 0x64CD 0x64CE 0x64CF 0x64D0 0x64D2 0x64D4 0x64D6 0x64D7 0x64D8 0x64D9 0x64DA 0x64DB 0x64E0 0x64E2 0x64E3 0x64E4 0x64E6 0x64E8 0x64E9 0x64EB 0x64EC 0x64ED 0x64EF 0x64F0 0x64F1 0x64F2 0x64F3 0x64F4 0x64F7 0x64F8 0x64FA 0x64FB 0x64FC 0x64FD 0x64FE 0x64FF 0x6500 0x6501 0x6503 0x6504 0x6506 0x6507 0x6509 0x650C 0x650D 0x650E 0x650F 0x6510 0x6513 0x6514 0x6515 0x6516 0x6517 0x6518 0x6519 0x651B 0x651C 0x651D 0x6520 0x6521 0x6522 0x6523 0x6524 0x6525 0x6526 0x6529 0x652A 0x652B 0x652C 0x652D 0x652E 0x652F 0x6532 0x6533 0x6536 0x6537 0x6538 0x6539 0x653B 0x653D 0x653E 0x653F 0x6541 0x6543 0x6545 0x6546 0x6548 0x6549 0x654A 0x654F 0x6551 0x6553 0x6554 0x6555 0x6556 0x6557 0x6558 0x6559 0x655C 0x655D 0x655E 0x6562 0x6563 0x6564 0x6565 0x6566 0x6567 0x6568 0x656A 0x656C 0x656F 0x6572 0x6573 0x6574 0x6575 0x6576 0x6577 0x6578 0x6579 0x657A 0x657B 0x657C 0x657F 0x6580 0x6581 0x6582 0x6583 0x6584 0x6587 0x658C 0x6590 0x6591 0x6592 0x6594 0x6595 0x6596 0x6597 0x6599 0x659B 0x659C 0x659D 0x659E 0x659F 0x65A0 0x65A1 0x65A2 0x65A4 0x65A5 0x65A7 0x65A8 0x65AA 0x65AB 0x65AC 0x65AE 0x65AF 0x65B0 0x65B2 0x65B3 0x65B6 0x65B7 0x65B8 0x65B9 0x65BB 0x65BC 0x65BD 0x65BF 0x65C1 0x65C2 0x65C3 0x65C4 0x65C5 0x65C6 0x65CB 0x65CC 0x65CD 0x65CE 0x65CF 0x65D0 0x65D2 0x65D3 0x65D6 0x65D7 0x65DA 0x65DB 0x65DD 0x65DE 0x65DF 0x65E1 0x65E2 0x65E5 0x65E6 0x65E8 0x65E9 0x65EC 0x65ED 0x65EE 0x65EF 0x65F0 0x65F1 0x65F2 0x65F3 0x65F4 0x65F5 0x65FA 0x65FB 0x65FC 0x65FD 0x6600 0x6602 0x6603 0x6604 0x6605 0x6606 0x6607 0x6608 0x6609 0x660A 0x660B 0x660C 0x660D 0x660E 0x660F 0x6610 0x6611 0x6612 0x6613 0x6614 0x6615 0x661C 0x661D 0x661F 0x6620 0x6621 0x6622 0x6624 0x6625 0x6626 0x6627 0x6628 0x662B 0x662D 0x662E 0x662F 0x6631 0x6632 0x6633 0x6634 0x6635 0x6636 0x6639 0x663A 0x6641 0x6642 0x6643 0x6645 0x6647 0x6649 0x664A 0x664C 0x664F 0x6651 0x6652 0x6659 0x665A 0x665B 0x665C 0x665D 0x665E 0x665F 0x6661 0x6662 0x6664 0x6665 0x6666 0x6668 0x666A 0x666C 0x666E 0x666F 0x6670 0x6671 0x6672 0x6674 0x6676 0x6677 0x6678 0x6679 0x667A 0x667B 0x667C 0x667E 0x6680 0x6684 0x6686 0x6687 0x6688 0x6689 0x668A 0x668B 0x668C 0x668D 0x6690 0x6691 0x6694 0x6695 0x6696 0x6697 0x6698 0x6699 0x669D 0x669F 0x66A0 0x66A1 0x66A2 0x66A8 0x66A9 0x66AA 0x66AB 0x66AE 0x66AF 0x66B0 0x66B1 0x66B2 0x66B4 0x66B5 0x66B7 0x66B8 0x66B9 0x66BA 0x66BB 0x66BD 0x66BE 0x66C0 0x66C4 0x66C6 0x66C7 0x66C8 0x66C9 0x66CA 0x66CB 0x66CC 0x66CF 0x66D2 0x66D6 0x66D8 0x66D9 0x66DA 0x66DB 0x66DC 0x66DD 0x66DE 0x66E0 0x66E3 0x66E4 0x66E6 0x66E8 0x66E9 0x66EB 0x66EC 0x66ED 0x66EE 0x66F0 0x66F2 0x66F3 0x66F4 0x66F6 0x66F7 0x66F8 0x66F9 0x66FC 0x66FE 0x66FF 0x6700 0x6701 0x6703 0x6704 0x6705 0x6708 0x6709 0x670A 0x670B 0x670D 0x670F 0x6710 0x6712 0x6713 0x6714 0x6715 0x6717 0x6718 0x671B 0x671D 0x671F 0x6720 0x6721 0x6722 0x6723 0x6726 0x6727 0x6728 0x672A 0x672B 0x672C 0x672D 0x672E 0x6731 0x6733 0x6734 0x6735 0x6738 0x6739 0x673A 0x673B 0x673C 0x673D 0x673E 0x673F 0x6745 0x6746 0x6747 0x6748 0x6749 0x674B 0x674C 0x674D 0x674E 0x674F 0x6750 0x6751 0x6753 0x6755 0x6756 0x6757 0x6759 0x675A 0x675C 0x675D 0x675E 0x675F 0x6760 0x676A 0x676C 0x676D 0x676F 0x6770 0x6771 0x6772 0x6773 0x6774 0x6775 0x6776 0x6777 0x6778 0x6779 0x677A 0x677B 0x677C 0x677D 0x677E 0x677F 0x6781 0x6783 0x6784 0x6785 0x6786 0x6787 0x6789 0x678B 0x678C 0x678D 0x678E 0x6790 0x6791 0x6792 0x6793 0x6794 0x6795 0x6797 0x6798 0x6799 0x679A 0x679C 0x679D 0x679F 0x67AE 0x67AF 0x67B0 0x67B2 0x67B3 0x67B4 0x67B5 0x67B6 0x67B7 0x67B8 0x67B9 0x67BA 0x67BB 0x67C0 0x67C1 0x67C2 0x67C3 0x67C4 0x67C5 0x67C6 0x67C8 0x67C9 0x67CA 0x67CB 0x67CC 0x67CD 0x67CE 0x67CF 0x67D0 0x67D1 0x67D2 0x67D3 0x67D4 0x67D8 0x67D9 0x67DA 0x67DB 0x67DC 0x67DD 0x67DE 0x67DF 0x67E2 0x67E3 0x67E4 0x67E5 0x67E6 0x67E7 0x67E9 0x67EA 0x67EB 0x67EC 0x67ED 0x67EE 0x67EF 0x67F0 0x67F1 0x67F2 0x67F3 0x67F4 0x67F5 0x67F6 0x67F7 0x67F8 0x67FA 0x67FC 0x67FF 0x6812 0x6813 0x6814 0x6816 0x6817 0x6818 0x681A 0x681C 0x681D 0x681F 0x6820 0x6821 0x6825 0x6826 0x6828 0x6829 0x682A 0x682B 0x682D 0x682E 0x682F 0x6831 0x6832 0x6833 0x6834 0x6835 0x6838 0x6839 0x683A 0x683B 0x683C 0x683D 0x6840 0x6841 0x6842 0x6843 0x6844 0x6845 0x6846 0x6848 0x6849 0x684B 0x684C 0x684D 0x684E 0x684F 0x6850 0x6851 0x6853 0x6854 0x686B 0x686D 0x686E 0x686F 0x6871 0x6872 0x6874 0x6875 0x6876 0x6877 0x6878 0x6879 0x687B 0x687C 0x687D 0x687E 0x687F 0x6880 0x6881 0x6882 0x6883 0x6885 0x6886 0x6887 0x6889 0x688A 0x688B 0x688C 0x688F 0x6890 0x6891 0x6892 0x6893 0x6894 0x6896 0x6897 0x689B 0x689C 0x689D 0x689F 0x68A0 0x68A1 0x68A2 0x68A3 0x68A4 0x68A7 0x68A8 0x68A9 0x68AA 0x68AB 0x68AC 0x68AD 0x68AE 0x68AF 0x68B0 0x68B1 0x68B2 0x68B3 0x68B4 0x68B5 0x68C4 0x68C6 0x68C7 0x68C8 0x68C9 0x68CB 0x68CC 0x68CD 0x68CE 0x68D0 0x68D1 0x68D2 0x68D3 0x68D4 0x68D5 0x68D6 0x68D7 0x68D8 0x68DA 0x68DC 0x68DD 0x68DE 0x68DF 0x68E0 0x68E1 0x68E3 0x68E4 0x68E6 0x68E7 0x68E8 0x68E9 0x68EA 0x68EB 0x68EC 0x68EE 0x68EF 0x68F0 0x68F1 0x68F2 0x68F3 0x68F4 0x68F5 0x68F6 0x68F7 0x68F8 0x68F9 0x68FA 0x68FB 0x68FC 0x68FD 0x6904 0x6905 0x6906 0x6907 0x6908 0x690A 0x690B 0x690C 0x690D 0x690E 0x690F 0x6910 0x6911 0x6912 0x6913 0x6914 0x6915 0x6917 0x6925 0x692A 0x692F 0x6930 0x6932 0x6933 0x6934 0x6935 0x6937 0x6938 0x6939 0x693B 0x693C 0x693D 0x693F 0x6940 0x6941 0x6942 0x6944 0x6945 0x6948 0x6949 0x694A 0x694B 0x694C 0x694E 0x694F 0x6951 0x6952 0x6953 0x6954 0x6956 0x6957 0x6958 0x6959 0x695A 0x695B 0x695C 0x695D 0x695E 0x695F 0x6960 0x6962 0x6963 0x6965 0x6966 0x6968 0x6969 0x696A 0x696B 0x696C 0x696D 0x696E 0x696F 0x6970 0x6971 0x6974 0x6975 0x6976 0x6977 0x6978 0x6979 0x697A 0x697B 0x6982 0x6983 0x6986 0x698D 0x698E 0x6990 0x6991 0x6993 0x6994 0x6995 0x6996 0x6997 0x6999 0x699A 0x699B 0x699C 0x699E 0x69A0 0x69A1 0x69A3 0x69A4 0x69A5 0x69A6 0x69A7 0x69A8 0x69A9 0x69AA 0x69AB 0x69AC 0x69AD 0x69AE 0x69AF 0x69B0 0x69B1 0x69B3 0x69B4 0x69B5 0x69B6 0x69B7 0x69B9 0x69BB 0x69BC 0x69BD 0x69BE 0x69BF 0x69C1 0x69C2 0x69C3 0x69C4 0x69C6 0x69C9 0x69CA 0x69CB 0x69CC 0x69CD 0x69CE 0x69CF 0x69D0 0x69D3 0x69D4 0x69D9 0x69E2 0x69E4 0x69E5 0x69E6 0x69E7 0x69E8 0x69EB 0x69EC 0x69ED 0x69EE 0x69F1 0x69F2 0x69F3 0x69F4 0x69F6 0x69F7 0x69F8 0x69FB 0x69FC 0x69FD 0x69FE 0x69FF 0x6A00 0x6A01 0x6A02 0x6A04 0x6A05 0x6A06 0x6A07 0x6A08 0x6A09 0x6A0A 0x6A0D 0x6A0F 0x6A11 0x6A13 0x6A14 0x6A15 0x6A16 0x6A17 0x6A18 0x6A19 0x6A1B 0x6A1D 0x6A1E 0x6A1F 0x6A20 0x6A21 0x6A23 0x6A25 0x6A26 0x6A27 0x6A28 0x6A32 0x6A34 0x6A35 0x6A38 0x6A39 0x6A3A 0x6A3B 0x6A3C 0x6A3D 0x6A3E 0x6A3F 0x6A40 0x6A41 0x6A44 0x6A46 0x6A47 0x6A48 0x6A49 0x6A4B 0x6A4D 0x6A4E 0x6A4F 0x6A50 0x6A51 0x6A54 0x6A55 0x6A56 0x6A58 0x6A59 0x6A5A 0x6A5B 0x6A5D 0x6A5E 0x6A5F 0x6A60 0x6A61 0x6A62 0x6A64 0x6A66 0x6A67 0x6A68 0x6A69 0x6A6A 0x6A6B 0x6A6D 0x6A6F 0x6A76 0x6A7E 0x6A7F 0x6A80 0x6A81 0x6A83 0x6A84 0x6A85 0x6A87 0x6A89 0x6A8C 0x6A8D 0x6A8E 0x6A90 0x6A91 0x6A92 0x6A93 0x6A94 0x6A95 0x6A96 0x6A97 0x6A9A 0x6A9B 0x6A9C 0x6A9E 0x6A9F 0x6AA0 0x6AA1 0x6AA2 0x6AA3 0x6AA4 0x6AA5 0x6AA6 0x6AA8 0x6AAC 0x6AAD 0x6AAE 0x6AAF 0x6AB3 0x6AB4 0x6AB6 0x6AB7 0x6AB8 0x6AB9 0x6ABA 0x6ABB 0x6ABD 0x6AC2 0x6AC3 0x6AC5 0x6AC6 0x6AC7 0x6ACB 0x6ACC 0x6ACD 0x6ACF 0x6AD0 0x6AD1 0x6AD3 0x6AD9 0x6ADA 0x6ADB 0x6ADC 0x6ADD 0x6ADE 0x6ADF 0x6AE0 0x6AE1 0x6AE5 0x6AE7 0x6AE8 0x6AEA 0x6AEB 0x6AEC 0x6AEE 0x6AEF 0x6AF0 0x6AF1 0x6AF3 0x6AF8 0x6AF9 0x6AFA 0x6AFB 0x6AFC 0x6B00 0x6B02 0x6B03 0x6B04 0x6B08 0x6B09 0x6B0A 0x6B0B 0x6B0F 0x6B10 0x6B11 0x6B12 0x6B13 0x6B16 0x6B17 0x6B18 0x6B19 0x6B1A 0x6B1E 0x6B20 0x6B21 0x6B23 0x6B25 0x6B28 0x6B2C 0x6B2D 0x6B2F 0x6B31 0x6B32 0x6B33 0x6B34 0x6B36 0x6B37 0x6B38 0x6B39 0x6B3A 0x6B3B 0x6B3C 0x6B3D 0x6B3E 0x6B3F 0x6B41 0x6B42 0x6B43 0x6B45 0x6B46 0x6B47 0x6B48 0x6B49 0x6B4A 0x6B4B 0x6B4C 0x6B4D 0x6B4E 0x6B50 0x6B51 0x6B54 0x6B55 0x6B56 0x6B59 0x6B5B 0x6B5C 0x6B5E 0x6B5F 0x6B60 0x6B61 0x6B62 0x6B63 0x6B64 0x6B65 0x6B66 0x6B67 0x6B6A 0x6B6D 0x6B72 0x6B76 0x6B77 0x6B78 0x6B79 0x6B7B 0x6B7E 0x6B7F 0x6B80 0x6B82 0x6B83 0x6B84 0x6B86 0x6B88 0x6B89 0x6B8A 0x6B8C 0x6B8D 0x6B8E 0x6B8F 0x6B91 0x6B94 0x6B95 0x6B96 0x6B97 0x6B98 0x6B99 0x6B9B 0x6B9E 0x6B9F 0x6BA0 0x6BA2 0x6BA3 0x6BA4 0x6BA5 0x6BA6 0x6BA7 0x6BAA 0x6BAB 0x6BAD 0x6BAE 0x6BAF 0x6BB0 0x6BB2 0x6BB3 0x6BB5 0x6BB6 0x6BB7 0x6BBA 0x6BBC 0x6BBD 0x6BBF 0x6BC0 0x6BC3 0x6BC4 0x6BC5 0x6BC6 0x6BC7 0x6BC8 0x6BC9 0x6BCA 0x6BCB 0x6BCC 0x6BCD 0x6BCF 0x6BD0 0x6BD2 0x6BD3 0x6BD4 0x6BD6 0x6BD7 0x6BD8 0x6BDA 0x6BDB 0x6BDE 0x6BE0 0x6BE2 0x6BE3 0x6BE4 0x6BE6 0x6BE7 0x6BE8 0x6BEB 0x6BEC 0x6BEF 0x6BF0 0x6BF2 0x6BF3 0x6BF7 0x6BF8 0x6BF9 0x6BFB 0x6BFC 0x6BFD 0x6BFE 0x6BFF 0x6C00 0x6C01 0x6C02 0x6C03 0x6C04 0x6C05 0x6C06 0x6C08 0x6C09 0x6C0B 0x6C0C 0x6C0D 0x6C0F 0x6C10 0x6C11 0x6C13 0x6C14 0x6C15 0x6C16 0x6C18 0x6C19 0x6C1A 0x6C1B 0x6C1D 0x6C1F 0x6C20 0x6C21 0x6C23 0x6C24 0x6C25 0x6C26 0x6C27 0x6C28 0x6C2A 0x6C2B 0x6C2C 0x6C2E 0x6C2F 0x6C30 0x6C33 0x6C34 0x6C36 0x6C38 0x6C3B 0x6C3E 0x6C3F 0x6C40 0x6C41 0x6C42 0x6C43 0x6C46 0x6C4A 0x6C4B 0x6C4C 0x6C4D 0x6C4E 0x6C4F 0x6C50 0x6C52 0x6C54 0x6C55 0x6C57 0x6C59 0x6C5B 0x6C5C 0x6C5D 0x6C5E 0x6C5F 0x6C60 0x6C61 0x6C65 0x6C66 0x6C67 0x6C68 0x6C69 0x6C6A 0x6C6B 0x6C6D 0x6C6F 0x6C70 0x6C71 0x6C72 0x6C73 0x6C74 0x6C76 0x6C78 0x6C7A 0x6C7B 0x6C7D 0x6C7E 0x6C80 0x6C81 0x6C82 0x6C83 0x6C84 0x6C85 0x6C86 0x6C87 0x6C88 0x6C89 0x6C8A 0x6C8B 0x6C8C 0x6C8D 0x6C8E 0x6C8F 0x6C90 0x6C92 0x6C93 0x6C94 0x6C95 0x6C96 0x6C98 0x6C99 0x6C9A 0x6C9B 0x6C9C 0x6C9D 0x6CAB 0x6CAC 0x6CAD 0x6CAE 0x6CB0 0x6CB1 0x6CB3 0x6CB4 0x6CB6 0x6CB7 0x6CB8 0x6CB9 0x6CBA 0x6CBB 0x6CBC 0x6CBD 0x6CBE 0x6CBF 0x6CC0 0x6CC1 0x6CC2 0x6CC3 0x6CC4 0x6CC5 0x6CC6 0x6CC7 0x6CC9 0x6CCA 0x6CCC 0x6CCD 0x6CCF 0x6CD0 0x6CD1 0x6CD2 0x6CD3 0x6CD4 0x6CD5 0x6CD6 0x6CD7 0x6CD9 0x6CDA 0x6CDB 0x6CDC 0x6CDD 0x6CDE 0x6CE0 0x6CE1 0x6CE2 0x6CE3 0x6CE5 0x6CE7 0x6CE8 0x6CE9 0x6CEB 0x6CEC 0x6CED 0x6CEE 0x6CEF 0x6CF0 0x6CF1 0x6CF2 0x6CF3 0x6CF5 0x6CF9 0x6D00 0x6D01 0x6D03 0x6D04 0x6D07 0x6D08 0x6D09 0x6D0A 0x6D0B 0x6D0C 0x6D0D 0x6D0E 0x6D0F 0x6D10 0x6D11 0x6D12 0x6D16 0x6D17 0x6D18 0x6D19 0x6D1A 0x6D1B 0x6D1D 0x6D1E 0x6D1F 0x6D20 0x6D22 0x6D25 0x6D27 0x6D28 0x6D29 0x6D2A 0x6D2B 0x6D2C 0x6D2D 0x6D2E 0x6D2F 0x6D30 0x6D31 0x6D32 0x6D33 0x6D34 0x6D35 0x6D36 0x6D37 0x6D38 0x6D39 0x6D3A 0x6D3B 0x6D3C 0x6D3D 0x6D3E 0x6D3F 0x6D40 0x6D41 0x6D42 0x6D58 0x6D59 0x6D5A 0x6D5E 0x6D5F 0x6D60 0x6D61 0x6D62 0x6D63 0x6D64 0x6D65 0x6D66 0x6D67 0x6D68 0x6D69 0x6D6A 0x6D6C 0x6D6D 0x6D6E 0x6D6F 0x6D70 0x6D74 0x6D75 0x6D76 0x6D77 0x6D78 0x6D79 0x6D7A 0x6D7B 0x6D7C 0x6D7D 0x6D7E 0x6D7F 0x6D80 0x6D82 0x6D83 0x6D84 0x6D85 0x6D86 0x6D87 0x6D88 0x6D89 0x6D8A 0x6D8B 0x6D8C 0x6D8D 0x6D8E 0x6D90 0x6D91 0x6D92 0x6D93 0x6D94 0x6D95 0x6D97 0x6D98 0x6DAA 0x6DAB 0x6DAC 0x6DAE 0x6DAF 0x6DB2 0x6DB3 0x6DB4 0x6DB5 0x6DB7 0x6DB8 0x6DBA 0x6DBB 0x6DBC 0x6DBD 0x6DBE 0x6DBF 0x6DC0 0x6DC2 0x6DC4 0x6DC5 0x6DC6 0x6DC7 0x6DC8 0x6DC9 0x6DCA 0x6DCB 0x6DCC 0x6DCD 0x6DCF 0x6DD0 0x6DD1 0x6DD2 0x6DD3 0x6DD4 0x6DD5 0x6DD6 0x6DD7 0x6DD8 0x6DD9 0x6DDA 0x6DDB 0x6DDC 0x6DDD 0x6DDE 0x6DDF 0x6DE0 0x6DE1 0x6DE2 0x6DE3 0x6DE4 0x6DE5 0x6DE6 0x6DE8 0x6DE9 0x6DEA 0x6DEB 0x6DEC 0x6DED 0x6DEE 0x6DEF 0x6DF0 0x6DF1 0x6DF2 0x6DF3 0x6DF4 0x6DF5 0x6DF6 0x6DF7 0x6DF9 0x6DFA 0x6DFB 0x6DFC 0x6DFD 0x6E00 0x6E03 0x6E05 0x6E19 0x6E1A 0x6E1B 0x6E1C 0x6E1D 0x6E1F 0x6E20 0x6E21 0x6E22 0x6E23 0x6E24 0x6E25 0x6E26 0x6E27 0x6E28 0x6E2B 0x6E2C 0x6E2D 0x6E2E 0x6E2F 0x6E30 0x6E31 0x6E32 0x6E33 0x6E34 0x6E35 0x6E36 0x6E38 0x6E39 0x6E3A 0x6E3B 0x6E3C 0x6E3D 0x6E3E 0x6E3F 0x6E40 0x6E41 0x6E43 0x6E44 0x6E45 0x6E46 0x6E47 0x6E49 0x6E4A 0x6E4B 0x6E4D 0x6E4E 0x6E51 0x6E52 0x6E53 0x6E54 0x6E55 0x6E56 0x6E58 0x6E5A 0x6E5B 0x6E5C 0x6E5D 0x6E5E 0x6E5F 0x6E60 0x6E61 0x6E62 0x6E63 0x6E64 0x6E65 0x6E66 0x6E67 0x6E68 0x6E69 0x6E6B 0x6E6E 0x6E6F 0x6E71 0x6E72 0x6E73 0x6E74 0x6E77 0x6E78 0x6E79 0x6E88 0x6E89 0x6E8D 0x6E8E 0x6E8F 0x6E90 0x6E92 0x6E93 0x6E94 0x6E96 0x6E97 0x6E98 0x6E99 0x6E9B 0x6E9C 0x6E9D 0x6E9E 0x6E9F 0x6EA0 0x6EA1 0x6EA2 0x6EA3 0x6EA4 0x6EA5 0x6EA6 0x6EA7 0x6EAA 0x6EAB 0x6EAE 0x6EAF 0x6EB0 0x6EB1 0x6EB2 0x6EB3 0x6EB4 0x6EB6 0x6EB7 0x6EB9 0x6EBA 0x6EBC 0x6EBD 0x6EBE 0x6EBF 0x6EC0 0x6EC1 0x6EC2 0x6EC3 0x6EC4 0x6EC5 0x6EC6 0x6EC7 0x6EC8 0x6EC9 0x6ECA 0x6ECB 0x6ECC 0x6ECD 0x6ECE 0x6ECF 0x6ED0 0x6ED1 0x6ED2 0x6ED3 0x6ED4 0x6ED5 0x6ED6 0x6ED8 0x6EDC 0x6EEB 0x6EEC 0x6EED 0x6EEE 0x6EEF 0x6EF1 0x6EF2 0x6EF4 0x6EF5 0x6EF6 0x6EF7 0x6EF8 0x6EF9 0x6EFB 0x6EFC 0x6EFD 0x6EFE 0x6EFF 0x6F00 0x6F01 0x6F02 0x6F03 0x6F05 0x6F06 0x6F07 0x6F08 0x6F09 0x6F0A 0x6F0D 0x6F0E 0x6F0F 0x6F12 0x6F13 0x6F14 0x6F15 0x6F18 0x6F19 0x6F1A 0x6F1C 0x6F1E 0x6F1F 0x6F20 0x6F21 0x6F22 0x6F23 0x6F25 0x6F26 0x6F27 0x6F29 0x6F2A 0x6F2B 0x6F2C 0x6F2D 0x6F2E 0x6F2F 0x6F30 0x6F31 0x6F32 0x6F33 0x6F35 0x6F36 0x6F37 0x6F38 0x6F39 0x6F3A 0x6F3B 0x6F3C 0x6F3E 0x6F3F 0x6F40 0x6F41 0x6F43 0x6F4E 0x6F4F 0x6F50 0x6F51 0x6F52 0x6F53 0x6F54 0x6F55 0x6F57 0x6F58 0x6F5A 0x6F5B 0x6F5D 0x6F5E 0x6F5F 0x6F60 0x6F61 0x6F62 0x6F63 0x6F64 0x6F66 0x6F67 0x6F69 0x6F6A 0x6F6B 0x6F6C 0x6F6D 0x6F6E 0x6F6F 0x6F70 0x6F72 0x6F73 0x6F76 0x6F77 0x6F78 0x6F7A 0x6F7B 0x6F7C 0x6F7D 0x6F7E 0x6F7F 0x6F80 0x6F82 0x6F84 0x6F85 0x6F86 0x6F87 0x6F88 0x6F89 0x6F8B 0x6F8C 0x6F8D 0x6F8E 0x6F90 0x6F92 0x6F93 0x6F94 0x6F95 0x6F96 0x6F97 0x6F9E 0x6FA0 0x6FA1 0x6FA2 0x6FA3 0x6FA4 0x6FA5 0x6FA6 0x6FA7 0x6FA8 0x6FA9 0x6FAA 0x6FAB 0x6FAC 0x6FAD 0x6FAE 0x6FAF 0x6FB0 0x6FB1 0x6FB2 0x6FB3 0x6FB4 0x6FB6 0x6FB8 0x6FB9 0x6FBA 0x6FBC 0x6FBD 0x6FBF 0x6FC0 0x6FC1 0x6FC2 0x6FC3 0x6FC4 0x6FC6 0x6FC7 0x6FC8 0x6FC9 0x6FCA 0x6FCB 0x6FCC 0x6FCD 0x6FCE 0x6FCF 0x6FD4 0x6FD5 0x6FD8 0x6FDB 0x6FDC 0x6FDD 0x6FDE 0x6FDF 0x6FE0 0x6FE1 0x6FE2 0x6FE3 0x6FE4 0x6FE6 0x6FE7 0x6FE8 0x6FE9 0x6FEB 0x6FEC 0x6FED 0x6FEE 0x6FEF 0x6FF0 0x6FF1 0x6FF2 0x6FF4 0x6FF7 0x6FFA 0x6FFB 0x6FFC 0x6FFE 0x6FFF 0x7000 0x7001 0x7004 0x7005 0x7006 0x7007 0x7009 0x700A 0x700B 0x700C 0x700D 0x700E 0x700F 0x7011 0x7014 0x7015 0x7016 0x7017 0x7018 0x7019 0x701A 0x701B 0x701C 0x701D 0x701F 0x7020 0x7021 0x7022 0x7023 0x7024 0x7026 0x7027 0x7028 0x7029 0x702A 0x702B 0x702F 0x7030 0x7031 0x7032 0x7033 0x7034 0x7035 0x7037 0x7038 0x7039 0x703A 0x703B 0x703C 0x703E 0x703F 0x7040 0x7041 0x7042 0x7043 0x7044 0x7045 0x7046 0x7048 0x7049 0x704A 0x704C 0x7051 0x7052 0x7055 0x7056 0x7057 0x7058 0x705A 0x705B 0x705D 0x705E 0x705F 0x7060 0x7061 0x7062 0x7063 0x7064 0x7065 0x7066 0x7068 0x7069 0x706A 0x706B 0x7070 0x7071 0x7074 0x7076 0x7078 0x707A 0x707C 0x707D 0x7082 0x7083 0x7084 0x7085 0x7086 0x708A 0x708E 0x7091 0x7092 0x7093 0x7094 0x7095 0x7096 0x7098 0x7099 0x709A 0x709F 0x70A1 0x70A4 0x70A9 0x70AB 0x70AC 0x70AD 0x70AE 0x70AF 0x70B0 0x70B1 0x70B3 0x70B4 0x70B5 0x70B7 0x70B8 0x70BA 0x70BE 0x70C5 0x70C6 0x70C7 0x70C8 0x70CA 0x70CB 0x70CD 0x70CE 0x70CF 0x70D1 0x70D2 0x70D3 0x70D4 0x70D7 0x70D8 0x70D9 0x70DA 0x70DC 0x70DD 0x70DE 0x70E0 0x70E1 0x70E2 0x70E4 0x70EF 0x70F0 0x70F3 0x70F4 0x70F6 0x70F7 0x70F8 0x70F9 0x70FA 0x70FB 0x70FC 0x70FD 0x70FF 0x7100 0x7102 0x7104 0x7106 0x7109 0x710A 0x710B 0x710C 0x710D 0x710E 0x7110 0x7113 0x7117 0x7119 0x711A 0x711B 0x711C 0x711E 0x711F 0x7120 0x7121 0x7122 0x7123 0x7125 0x7126 0x7128 0x712E 0x712F 0x7130 0x7131 0x7132 0x7136 0x713A 0x7141 0x7142 0x7143 0x7144 0x7146 0x7147 0x7149 0x714B 0x714C 0x714D 0x714E 0x7150 0x7152 0x7153 0x7154 0x7156 0x7158 0x7159 0x715A 0x715C 0x715D 0x715E 0x715F 0x7160 0x7161 0x7162 0x7163 0x7164 0x7165 0x7166 0x7167 0x7168 0x7169 0x716A 0x716C 0x716E 0x7170 0x7172 0x7178 0x717B 0x717D 0x7180 0x7181 0x7182 0x7184 0x7185 0x7186 0x7187 0x7189 0x718A 0x718F 0x7190 0x7192 0x7194 0x7197 0x7199 0x719A 0x719B 0x719C 0x719D 0x719E 0x719F 0x71A0 0x71A1 0x71A4 0x71A5 0x71A7 0x71A8 0x71A9 0x71AA 0x71AC 0x71AF 0x71B0 0x71B1 0x71B2 0x71B3 0x71B5 0x71B8 0x71B9 0x71BC 0x71BD 0x71BE 0x71BF 0x71C0 0x71C1 0x71C2 0x71C3 0x71C4 0x71C5 0x71C6 0x71C7 0x71C8 0x71C9 0x71CA 0x71CB 0x71CE 0x71CF 0x71D0 0x71D2 0x71D4 0x71D5 0x71D6 0x71D8 0x71D9 0x71DA 0x71DB 0x71DC 0x71DF 0x71E0 0x71E1 0x71E2 0x71E4 0x71E5 0x71E6 0x71E7 0x71E8 0x71EC 0x71ED 0x71EE 0x71F0 0x71F1 0x71F2 0x71F4 0x71F8 0x71F9 0x71FB 0x71FC 0x71FD 0x71FE 0x71FF 0x7201 0x7202 0x7203 0x7205 0x7206 0x7207 0x720A 0x720C 0x720D 0x7210 0x7213 0x7214 0x7219 0x721A 0x721B 0x721D 0x721E 0x721F 0x7222 0x7223 0x7226 0x7227 0x7228 0x7229 0x722A 0x722C 0x722D 0x7230 0x7235 0x7236 0x7238 0x7239 0x723A 0x723B 0x723D 0x723E 0x723F 0x7241 0x7242 0x7244 0x7246 0x7247 0x7248 0x7249 0x724A 0x724B 0x724C 0x724F 0x7252 0x7253 0x7256 0x7258 0x7259 0x725A 0x725B 0x725D 0x725E 0x725F 0x7260 0x7261 0x7262 0x7263 0x7267 0x7269 0x726A 0x726C 0x726E 0x726F 0x7270 0x7272 0x7273 0x7274 0x7276 0x7277 0x7278 0x7279 0x727B 0x727C 0x727D 0x727E 0x727F 0x7280 0x7281 0x7284 0x7285 0x7286 0x7288 0x7289 0x728B 0x728C 0x728D 0x728E 0x7290 0x7291 0x7292 0x7293 0x7295 0x7296 0x7297 0x7298 0x729A 0x729B 0x729D 0x729E 0x72A1 0x72A2 0x72A3 0x72A4 0x72A5 0x72A6 0x72A7 0x72A8 0x72A9 0x72AA 0x72AC 0x72AE 0x72AF 0x72B0 0x72B4 0x72B5 0x72BA 0x72BD 0x72BF 0x72C0 0x72C1 0x72C2 0x72C3 0x72C4 0x72C5 0x72C6 0x72C9 0x72CA 0x72CB 0x72CC 0x72CE 0x72D0 0x72D1 0x72D2 0x72D4 0x72D6 0x72D7 0x72D8 0x72D9 0x72DA 0x72DC 0x72DF 0x72E0 0x72E1 0x72E3 0x72E4 0x72E6 0x72E8 0x72E9 0x72EA 0x72EB 0x72F3 0x72F4 0x72F6 0x72F7 0x72F8 0x72F9 0x72FA 0x72FB 0x72FC 0x72FD 0x72FE 0x72FF 0x7300 0x7301 0x7307 0x7308 0x730A 0x730B 0x730C 0x730F 0x7311 0x7312 0x7313 0x7316 0x7317 0x7318 0x7319 0x731B 0x731C 0x731D 0x731E 0x7322 0x7323 0x7325 0x7326 0x7327 0x7329 0x732D 0x7330 0x7331 0x7332 0x7333 0x7334 0x7335 0x7336 0x7337 0x733A 0x733B 0x733C 0x733E 0x733F 0x7340 0x7342 0x7343 0x7344 0x7345 0x7349 0x734A 0x734C 0x734D 0x734E 0x7350 0x7351 0x7352 0x7357 0x7358 0x7359 0x735A 0x735B 0x735D 0x735E 0x735F 0x7360 0x7361 0x7362 0x7365 0x7366 0x7367 0x7368 0x7369 0x736A 0x736B 0x736C 0x736E 0x736F 0x7370 0x7372 0x7373 0x7375 0x7376 0x7377 0x7378 0x737A 0x737B 0x737C 0x737D 0x737E 0x737F 0x7380 0x7381 0x7382 0x7383 0x7384 0x7385 0x7386 0x7387 0x7388 0x7389 0x738A 0x738B 0x738E 0x7392 0x7393 0x7394 0x7395 0x7396 0x7397 0x739D 0x739F 0x73A0 0x73A1 0x73A2 0x73A4 0x73A5 0x73A6 0x73A8 0x73A9 0x73AB 0x73AC 0x73AD 0x73B2 0x73B3 0x73B4 0x73B5 0x73B6 0x73B7 0x73B8 0x73B9 0x73BB 0x73BC 0x73BE 0x73BF 0x73C0 0x73C2 0x73C3 0x73C5 0x73C6 0x73C7 0x73C8 0x73CA 0x73CB 0x73CC 0x73CD 0x73D2 0x73D3 0x73D4 0x73D6 0x73D7 0x73D8 0x73D9 0x73DA 0x73DB 0x73DC 0x73DD 0x73DE 0x73E0 0x73E3 0x73E5 0x73E7 0x73E8 0x73E9 0x73EA 0x73EB 0x73ED 0x73EE 0x73F4 0x73F5 0x73F6 0x73F8 0x73FA 0x73FC 0x73FD 0x73FE 0x73FF 0x7400 0x7401 0x7403 0x7404 0x7405 0x7406 0x7407 0x7408 0x7409 0x740A 0x740B 0x740C 0x740D 0x7416 0x741A 0x741B 0x741D 0x7420 0x7421 0x7422 0x7423 0x7424 0x7425 0x7426 0x7428 0x7429 0x742A 0x742B 0x742C 0x742D 0x742E 0x742F 0x7430 0x7431 0x7432 0x7433 0x7434 0x7435 0x7436 0x743A 0x743F 0x7440 0x7441 0x7442 0x7444 0x7446 0x744A 0x744B 0x744D 0x744E 0x744F 0x7450 0x7451 0x7452 0x7454 0x7455 0x7457 0x7459 0x745A 0x745B 0x745C 0x745E 0x745F 0x7462 0x7463 0x7464 0x7467 0x7469 0x746A 0x746D 0x746E 0x746F 0x7470 0x7471 0x7472 0x7473 0x7475 0x7479 0x747C 0x747D 0x747E 0x747F 0x7480 0x7481 0x7483 0x7485 0x7486 0x7487 0x7488 0x7489 0x748A 0x748B 0x7490 0x7492 0x7494 0x7495 0x7497 0x7498 0x749A 0x749C 0x749E 0x749F 0x74A0 0x74A1 0x74A3 0x74A5 0x74A6 0x74A7 0x74A8 0x74A9 0x74AA 0x74AB 0x74AD 0x74AF 0x74B0 0x74B1 0x74B2 0x74B5 0x74B6 0x74B7 0x74B8 0x74BA 0x74BB 0x74BD 0x74BE 0x74BF 0x74C0 0x74C1 0x74C2 0x74C3 0x74C5 0x74CA 0x74CB 0x74CF 0x74D4 0x74D5 0x74D6 0x74D7 0x74D8 0x74D9 0x74DA 0x74DB 0x74DC 0x74DD 0x74DE 0x74DF 0x74E0 0x74E1 0x74E2 0x74E3 0x74E4 0x74E5 0x74E6 0x74E8 0x74E9 0x74EC 0x74EE 0x74F4 0x74F5 0x74F6 0x74F7 0x74FB 0x74FD 0x74FE 0x74FF 0x7500 0x7502 0x7503 0x7504 0x7507 0x7508 0x750B 0x750C 0x750D 0x750F 0x7510 0x7511 0x7512 0x7513 0x7514 0x7515 0x7516 0x7517 0x7518 0x751A 0x751C 0x751D 0x751F 0x7521 0x7522 0x7525 0x7526 0x7528 0x7529 0x752A 0x752B 0x752C 0x752D 0x752E 0x752F 0x7530 0x7531 0x7532 0x7533 0x7537 0x7538 0x7539 0x753A 0x753D 0x753E 0x753F 0x7540 0x7547 0x7548 0x754B 0x754C 0x754E 0x754F 0x7554 0x7559 0x755A 0x755B 0x755C 0x755D 0x755F 0x7562 0x7563 0x7564 0x7565 0x7566 0x756A 0x756B 0x756C 0x756F 0x7570 0x7576 0x7577 0x7578 0x7579 0x757D 0x757E 0x757F 0x7580 0x7584 0x7586 0x7587 0x758A 0x758B 0x758C 0x758F 0x7590 0x7591 0x7594 0x7595 0x7598 0x7599 0x759A 0x759D 0x75A2 0x75A3 0x75A4 0x75A5 0x75A7 0x75AA 0x75AB 0x75B0 0x75B2 0x75B3 0x75B5 0x75B6 0x75B8 0x75B9 0x75BA 0x75BB 0x75BC 0x75BD 0x75BE 0x75BF 0x75C0 0x75C1 0x75C2 0x75C4 0x75C5 0x75C7 0x75CA 0x75CB 0x75CC 0x75CD 0x75CE 0x75CF 0x75D0 0x75D1 0x75D2 0x75D4 0x75D5 0x75D7 0x75D8 0x75D9 0x75DA 0x75DB 0x75DD 0x75DE 0x75DF 0x75E0 0x75E1 0x75E2 0x75E3 0x75E4 0x75E6 0x75E7 0x75ED 0x75EF 0x75F0 0x75F1 0x75F2 0x75F3 0x75F4 0x75F5 0x75F6 0x75F7 0x75F8 0x75F9 0x75FA 0x75FB 0x75FC 0x75FD 0x75FE 0x75FF 0x7600 0x7601 0x7603 0x7608 0x7609 0x760A 0x760B 0x760C 0x760D 0x760F 0x7610 0x7611 0x7613 0x7614 0x7615 0x7616 0x7619 0x761A 0x761B 0x761C 0x761D 0x761E 0x761F 0x7620 0x7621 0x7622 0x7623 0x7624 0x7625 0x7626 0x7627 0x7628 0x7629 0x762D 0x762F 0x7630 0x7631 0x7632 0x7633 0x7634 0x7635 0x7638 0x763A 0x763C 0x763D 0x7642 0x7643 0x7646 0x7647 0x7648 0x7649 0x764C 0x7650 0x7652 0x7653 0x7656 0x7657 0x7658 0x7659 0x765A 0x765C 0x765F 0x7660 0x7661 0x7662 0x7664 0x7665 0x7669 0x766A 0x766C 0x766D 0x766E 0x7670 0x7671 0x7672 0x7675 0x7678 0x7679 0x767B 0x767C 0x767D 0x767E 0x767F 0x7681 0x7682 0x7684 0x7686 0x7687 0x7688 0x7689 0x768A 0x768B 0x768E 0x768F 0x7692 0x7693 0x7695 0x7696 0x7699 0x769A 0x769B 0x769C 0x769D 0x769E 0x76A4 0x76A6 0x76AA 0x76AB 0x76AD 0x76AE 0x76AF 0x76B0 0x76B4 0x76B5 0x76B8 0x76BA 0x76BB 0x76BD 0x76BE 0x76BF 0x76C2 0x76C3 0x76C4 0x76C5 0x76C6 0x76C8 0x76C9 0x76CA 0x76CD 0x76CE 0x76D2 0x76D3 0x76D4 0x76DA 0x76DB 0x76DC 0x76DD 0x76DE 0x76DF 0x76E1 0x76E3 0x76E4 0x76E5 0x76E6 0x76E7 0x76E9 0x76EA 0x76EC 0x76ED 0x76EE 0x76EF 0x76F0 0x76F1 0x76F2 0x76F3 0x76F4 0x76F5 0x76F7 0x76F8 0x76F9 0x76FA 0x76FB 0x76FC 0x76FE 0x7701 0x7703 0x7704 0x7705 0x7707 0x7708 0x7709 0x770A 0x770B 0x7710 0x7711 0x7712 0x7713 0x7715 0x7719 0x771A 0x771B 0x771D 0x771F 0x7720 0x7722 0x7723 0x7725 0x7727 0x7728 0x7729 0x772D 0x772F 0x7731 0x7732 0x7733 0x7734 0x7735 0x7736 0x7737 0x7738 0x7739 0x773A 0x773B 0x773C 0x773D 0x773E 0x7744 0x7745 0x7746 0x7747 0x774A 0x774B 0x774C 0x774D 0x774E 0x774F 0x7752 0x7754 0x7755 0x7756 0x7759 0x775A 0x775B 0x775C 0x775E 0x775F 0x7760 0x7761 0x7762 0x7763 0x7765 0x7766 0x7767 0x7768 0x7769 0x776A 0x776B 0x776C 0x776D 0x776E 0x776F 0x7779 0x777C 0x777D 0x777E 0x777F 0x7780 0x7781 0x7782 0x7783 0x7784 0x7785 0x7787 0x7788 0x7789 0x778B 0x778C 0x778D 0x778E 0x778F 0x7791 0x7795 0x7797 0x7799 0x779A 0x779B 0x779C 0x779D 0x779E 0x779F 0x77A0 0x77A1 0x77A2 0x77A3 0x77A5 0x77A7 0x77A8 0x77AA 0x77AB 0x77AC 0x77AD 0x77B0 0x77B1 0x77B2 0x77B3 0x77B4 0x77B5 0x77B6 0x77B7 0x77BA 0x77BB 0x77BC 0x77BD 0x77BF 0x77C2 0x77C4 0x77C7 0x77C9 0x77CA 0x77CC 0x77CD 0x77CE 0x77CF 0x77D0 0x77D3 0x77D4 0x77D5 0x77D7 0x77D8 0x77D9 0x77DA 0x77DB 0x77DC 0x77DE 0x77E0 0x77E2 0x77E3 0x77E5 0x77E7 0x77E8 0x77E9 0x77EC 0x77ED 0x77EE 0x77EF 0x77F0 0x77F1 0x77F2 0x77F3 0x77F7 0x77F8 0x77F9 0x77FA 0x77FB 0x77FC 0x77FD 0x7802 0x7803 0x7805 0x7806 0x7809 0x780C 0x780D 0x780E 0x780F 0x7810 0x7811 0x7812 0x7813 0x7814 0x781D 0x781F 0x7820 0x7821 0x7822 0x7823 0x7825 0x7826 0x7827 0x7828 0x7829 0x782A 0x782B 0x782C 0x782D 0x782E 0x782F 0x7830 0x7831 0x7832 0x7833 0x7834 0x7835 0x7837 0x7838 0x7843 0x7845 0x7848 0x7849 0x784A 0x784C 0x784D 0x784E 0x7850 0x7852 0x785C 0x785D 0x785E 0x7860 0x7862 0x7864 0x7865 0x7868 0x7869 0x786A 0x786B 0x786C 0x786D 0x786E 0x786F 0x7870 0x7871 0x7879 0x787B 0x787C 0x787E 0x787F 0x7880 0x7883 0x7884 0x7885 0x7886 0x7887 0x7889 0x788C 0x788E 0x788F 0x7891 0x7893 0x7894 0x7895 0x7896 0x7897 0x7898 0x7899 0x789A 0x789E 0x789F 0x78A0 0x78A1 0x78A2 0x78A3 0x78A4 0x78A5 0x78A7 0x78A8 0x78A9 0x78AA 0x78AB 0x78AC 0x78AD 0x78B0 0x78B2 0x78B3 0x78B4 0x78BA 0x78BB 0x78BC 0x78BE 0x78C1 0x78C3 0x78C4 0x78C5 0x78C8 0x78C9 0x78CA 0x78CB 0x78CC 0x78CD 0x78CE 0x78CF 0x78D0 0x78D1 0x78D4 0x78D5 0x78DA 0x78DB 0x78DD 0x78DE 0x78DF 0x78E0 0x78E1 0x78E2 0x78E3 0x78E5 0x78E7 0x78E8 0x78E9 0x78EA 0x78EC 0x78ED 0x78EF 0x78F2 0x78F3 0x78F4 0x78F7 0x78F9 0x78FA 0x78FB 0x78FC 0x78FD 0x78FE 0x78FF 0x7901 0x7902 0x7904 0x7905 0x7909 0x790C 0x790E 0x7910 0x7911 0x7912 0x7913 0x7914 0x7917 0x7919 0x791B 0x791C 0x791D 0x791E 0x7921 0x7923 0x7924 0x7925 0x7926 0x7927 0x7928 0x7929 0x792A 0x792B 0x792C 0x792D 0x792F 0x7931 0x7935 0x7938 0x7939 0x793A 0x793D 0x793E 0x793F 0x7940 0x7941 0x7942 0x7944 0x7945 0x7946 0x7947 0x7948 0x7949 0x794A 0x794B 0x794C 0x794F 0x7950 0x7951 0x7952 0x7953 0x7954 0x7955 0x7956 0x7957 0x795A 0x795B 0x795C 0x795D 0x795E 0x795F 0x7960 0x7961 0x7963 0x7964 0x7965 0x7967 0x7968 0x7969 0x796A 0x796B 0x796D 0x7970 0x7972 0x7973 0x7974 0x7979 0x797A 0x797C 0x797D 0x797F 0x7981 0x7982 0x7988 0x798A 0x798B 0x798D 0x798E 0x798F 0x7990 0x7992 0x7993 0x7994 0x7995 0x7996 0x7997 0x7998 0x799A 0x799B 0x799C 0x79A0 0x79A1 0x79A2 0x79A4 0x79A6 0x79A7 0x79A8 0x79AA 0x79AB 0x79AC 0x79AD 0x79AE 0x79B0 0x79B1 0x79B2 0x79B3 0x79B4 0x79B6 0x79B7 0x79B8 0x79B9 0x79BA 0x79BB 0x79BD 0x79BE 0x79BF 0x79C0 0x79C1 0x79C5 0x79C8 0x79C9 0x79CB 0x79CD 0x79CE 0x79CF 0x79D1 0x79D2 0x79D5 0x79D6 0x79D8 0x79DC 0x79DD 0x79DE 0x79DF 0x79E0 0x79E3 0x79E4 0x79E6 0x79E7 0x79E9 0x79EA 0x79EB 0x79EC 0x79ED 0x79EE 0x79F6 0x79F7 0x79F8 0x79FA 0x79FB 0x7A00 0x7A02 0x7A03 0x7A04 0x7A05 0x7A08 0x7A0A 0x7A0B 0x7A0C 0x7A0D 0x7A10 0x7A11 0x7A12 0x7A13 0x7A14 0x7A15 0x7A17 0x7A18 0x7A19 0x7A1A 0x7A1B 0x7A1C 0x7A1E 0x7A1F 0x7A20 0x7A22 0x7A26 0x7A28 0x7A2B 0x7A2E 0x7A2F 0x7A30 0x7A31 0x7A37 0x7A39 0x7A3B 0x7A3C 0x7A3D 0x7A3F 0x7A40 0x7A44 0x7A46 0x7A47 0x7A48 0x7A4A 0x7A4B 0x7A4C 0x7A4D 0x7A4E 0x7A54 0x7A56 0x7A57 0x7A58 0x7A5A 0x7A5B 0x7A5C 0x7A5F 0x7A60 0x7A61 0x7A62 0x7A67 0x7A68 0x7A69 0x7A6B 0x7A6C 0x7A6D 0x7A6E 0x7A70 0x7A71 0x7A74 0x7A75 0x7A76 0x7A78 0x7A79 0x7A7A 0x7A7B 0x7A7E 0x7A7F 0x7A80 0x7A81 0x7A84 0x7A85 0x7A86 0x7A87 0x7A88 0x7A89 0x7A8A 0x7A8B 0x7A8C 0x7A8F 0x7A90 0x7A92 0x7A94 0x7A95 0x7A96 0x7A97 0x7A98 0x7A99 0x7A9E 0x7A9F 0x7AA0 0x7AA2 0x7AA3 0x7AA8 0x7AA9 0x7AAA 0x7AAB 0x7AAC 0x7AAE 0x7AAF 0x7AB1 0x7AB2 0x7AB3 0x7AB4 0x7AB5 0x7AB6 0x7AB7 0x7AB8 0x7ABA 0x7ABE 0x7ABF 0x7AC0 0x7AC1 0x7AC4 0x7AC5 0x7AC7 0x7ACA 0x7ACB 0x7AD1 0x7AD8 0x7AD9 0x7ADF 0x7AE0 0x7AE3 0x7AE4 0x7AE5 0x7AE6 0x7AEB 0x7AED 0x7AEE 0x7AEF 0x7AF6 0x7AF7 0x7AF9 0x7AFA 0x7AFB 0x7AFD 0x7AFF 0x7B00 0x7B01 0x7B04 0x7B05 0x7B06 0x7B08 0x7B09 0x7B0A 0x7B0E 0x7B0F 0x7B10 0x7B11 0x7B12 0x7B13 0x7B18 0x7B19 0x7B1A 0x7B1B 0x7B1D 0x7B1E 0x7B20 0x7B22 0x7B23 0x7B24 0x7B25 0x7B26 0x7B28 0x7B2A 0x7B2B 0x7B2C 0x7B2D 0x7B2E 0x7B2F 0x7B30 0x7B31 0x7B32 0x7B33 0x7B34 0x7B35 0x7B38 0x7B3B 0x7B40 0x7B44 0x7B45 0x7B46 0x7B47 0x7B48 0x7B49 0x7B4A 0x7B4B 0x7B4C 0x7B4D 0x7B4E 0x7B4F 0x7B50 0x7B51 0x7B52 0x7B54 0x7B56 0x7B58 0x7B60 0x7B61 0x7B63 0x7B64 0x7B65 0x7B66 0x7B67 0x7B69 0x7B6D 0x7B6E 0x7B70 0x7B71 0x7B72 0x7B73 0x7B74 0x7B75 0x7B76 0x7B77 0x7B78 0x7B82 0x7B84 0x7B85 0x7B87 0x7B88 0x7B8A 0x7B8B 0x7B8C 0x7B8D 0x7B8E 0x7B8F 0x7B90 0x7B91 0x7B94 0x7B95 0x7B96 0x7B97 0x7B98 0x7B99 0x7B9B 0x7B9C 0x7B9D 0x7BA0 0x7BA1 0x7BA4 0x7BAC 0x7BAD 0x7BAF 0x7BB1 0x7BB4 0x7BB5 0x7BB7 0x7BB8 0x7BB9 0x7BBE 0x7BC0 0x7BC1 0x7BC4 0x7BC6 0x7BC7 0x7BC9 0x7BCA 0x7BCB 0x7BCC 0x7BCE 0x7BD4 0x7BD5 0x7BD8 0x7BD9 0x7BDA 0x7BDB 0x7BDC 0x7BDD 0x7BDE 0x7BDF 0x7BE0 0x7BE1 0x7BE2 0x7BE3 0x7BE4 0x7BE5 0x7BE6 0x7BE7 0x7BE8 0x7BE9 0x7BEA 0x7BEB 0x7BF0 0x7BF1 0x7BF2 0x7BF3 0x7BF4 0x7BF7 0x7BF8 0x7BF9 0x7BFB 0x7BFD 0x7BFE 0x7BFF 0x7C00 0x7C01 0x7C02 0x7C03 0x7C05 0x7C06 0x7C07 0x7C09 0x7C0A 0x7C0B 0x7C0C 0x7C0D 0x7C0E 0x7C0F 0x7C10 0x7C11 0x7C19 0x7C1C 0x7C1D 0x7C1E 0x7C1F 0x7C20 0x7C21 0x7C22 0x7C23 0x7C25 0x7C26 0x7C27 0x7C28 0x7C29 0x7C2A 0x7C2B 0x7C2C 0x7C2D 0x7C30 0x7C33 0x7C37 0x7C38 0x7C39 0x7C3B 0x7C3C 0x7C3D 0x7C3E 0x7C3F 0x7C40 0x7C43 0x7C45 0x7C47 0x7C48 0x7C49 0x7C4A 0x7C4C 0x7C4D 0x7C50 0x7C53 0x7C54 0x7C57 0x7C59 0x7C5A 0x7C5B 0x7C5C 0x7C5F 0x7C60 0x7C63 0x7C64 0x7C65 0x7C66 0x7C67 0x7C69 0x7C6A 0x7C6B 0x7C6C 0x7C6E 0x7C6F 0x7C72 0x7C73 0x7C75 0x7C78 0x7C79 0x7C7A 0x7C7D 0x7C7F 0x7C80 0x7C81 0x7C84 0x7C85 0x7C88 0x7C89 0x7C8A 0x7C8C 0x7C8D 0x7C91 0x7C92 0x7C94 0x7C95 0x7C96 0x7C97 0x7C98 0x7C9E 0x7C9F 0x7CA1 0x7CA2 0x7CA3 0x7CA5 0x7CA8 0x7CAF 0x7CB1 0x7CB2 0x7CB3 0x7CB4 0x7CB5 0x7CB9 0x7CBA 0x7CBB 0x7CBC 0x7CBD 0x7CBE 0x7CBF 0x7CC5 0x7CC8 0x7CCA 0x7CCB 0x7CCC 0x7CCE 0x7CD0 0x7CD1 0x7CD2 0x7CD4 0x7CD5 0x7CD6 0x7CD7 0x7CD9 0x7CDC 0x7CDD 0x7CDE 0x7CDF 0x7CE0 0x7CE2 0x7CE7 0x7CE8 0x7CEA 0x7CEC 0x7CEE 0x7CEF 0x7CF0 0x7CF1 0x7CF2 0x7CF4 0x7CF6 0x7CF7 0x7CF8 0x7CFB 0x7CFD 0x7CFE 0x7D00 0x7D01 0x7D02 0x7D03 0x7D04 0x7D05 0x7D06 0x7D07 0x7D08 0x7D09 0x7D0A 0x7D0B 0x7D0C 0x7D0D 0x7D0E 0x7D0F 0x7D10 0x7D11 0x7D12 0x7D13 0x7D14 0x7D15 0x7D16 0x7D17 0x7D18 0x7D19 0x7D1A 0x7D1B 0x7D1C 0x7D1D 0x7D1E 0x7D1F 0x7D20 0x7D21 0x7D22 0x7D28 0x7D29 0x7D2B 0x7D2C 0x7D2E 0x7D2F 0x7D30 0x7D31 0x7D32 0x7D33 0x7D35 0x7D36 0x7D38 0x7D39 0x7D3A 0x7D3B 0x7D3C 0x7D3D 0x7D3E 0x7D3F 0x7D40 0x7D41 0x7D42 0x7D43 0x7D44 0x7D45 0x7D46 0x7D47 0x7D4A 0x7D4E 0x7D4F 0x7D50 0x7D51 0x7D52 0x7D53 0x7D54 0x7D55 0x7D56 0x7D58 0x7D5B 0x7D5C 0x7D5E 0x7D5F 0x7D61 0x7D62 0x7D63 0x7D66 0x7D67 0x7D68 0x7D69 0x7D6A 0x7D6B 0x7D6D 0x7D6E 0x7D6F 0x7D70 0x7D71 0x7D72 0x7D73 0x7D79 0x7D7A 0x7D7B 0x7D7C 0x7D7D 0x7D7F 0x7D80 0x7D81 0x7D83 0x7D84 0x7D85 0x7D86 0x7D88 0x7D8C 0x7D8D 0x7D8E 0x7D8F 0x7D91 0x7D92 0x7D93 0x7D94 0x7D96 0x7D9C 0x7D9D 0x7D9E 0x7D9F 0x7DA0 0x7DA1 0x7DA2 0x7DA3 0x7DA6 0x7DA7 0x7DA9 0x7DAA 0x7DAC 0x7DAD 0x7DAE 0x7DAF 0x7DB0 0x7DB1 0x7DB2 0x7DB4 0x7DB5 0x7DB7 0x7DB8 0x7DB9 0x7DBA 0x7DBB 0x7DBC 0x7DBD 0x7DBE 0x7DBF 0x7DC0 0x7DC1 0x7DC2 0x7DC4 0x7DC5 0x7DC6 0x7DC7 0x7DC9 0x7DCA 0x7DCB 0x7DCC 0x7DCE 0x7DD2 0x7DD7 0x7DD8 0x7DD9 0x7DDA 0x7DDB 0x7DDD 0x7DDE 0x7DDF 0x7DE0 0x7DE1 0x7DE3 0x7DE6 0x7DE7 0x7DE8 0x7DE9 0x7DEA 0x7DEC 0x7DEE 0x7DEF 0x7DF0 0x7DF1 0x7DF2 0x7DF3 0x7DF4 0x7DF6 0x7DF7 0x7DF9 0x7DFA 0x7DFB 0x7E03 0x7E08 0x7E09 0x7E0A 0x7E0B 0x7E0C 0x7E0D 0x7E0E 0x7E0F 0x7E10 0x7E11 0x7E12 0x7E13 0x7E14 0x7E15 0x7E16 0x7E17 0x7E1A 0x7E1B 0x7E1C 0x7E1D 0x7E1E 0x7E1F 0x7E20 0x7E21 0x7E22 0x7E23 0x7E24 0x7E25 0x7E29 0x7E2A 0x7E2B 0x7E2D 0x7E2E 0x7E2F 0x7E30 0x7E31 0x7E32 0x7E33 0x7E34 0x7E35 0x7E36 0x7E37 0x7E38 0x7E39 0x7E3A 0x7E3B 0x7E3C 0x7E3D 0x7E3E 0x7E3F 0x7E40 0x7E41 0x7E42 0x7E43 0x7E44 0x7E45 0x7E46 0x7E47 0x7E48 0x7E49 0x7E4C 0x7E50 0x7E51 0x7E52 0x7E53 0x7E54 0x7E55 0x7E56 0x7E57 0x7E58 0x7E59 0x7E5A 0x7E5C 0x7E5E 0x7E5F 0x7E60 0x7E61 0x7E62 0x7E63 0x7E68 0x7E69 0x7E6A 0x7E6B 0x7E6D 0x7E6F 0x7E70 0x7E72 0x7E73 0x7E74 0x7E75 0x7E76 0x7E77 0x7E78 0x7E79 0x7E7A 0x7E7B 0x7E7C 0x7E7D 0x7E7E 0x7E80 0x7E81 0x7E82 0x7E86 0x7E87 0x7E88 0x7E8A 0x7E8B 0x7E8C 0x7E8D 0x7E8F 0x7E91 0x7E93 0x7E94 0x7E95 0x7E96 0x7E97 0x7E98 0x7E99 0x7E9A 0x7E9B 0x7E9C 0x7F36 0x7F38 0x7F39 0x7F3A 0x7F3D 0x7F3E 0x7F3F 0x7F43 0x7F44 0x7F45 0x7F48 0x7F4A 0x7F4B 0x7F4C 0x7F4D 0x7F4F 0x7F50 0x7F51 0x7F54 0x7F55 0x7F58 0x7F5B 0x7F5C 0x7F5D 0x7F5E 0x7F5F 0x7F60 0x7F61 0x7F63 0x7F65 0x7F66 0x7F67 0x7F68 0x7F69 0x7F6A 0x7F6B 0x7F6C 0x7F6D 0x7F6E 0x7F70 0x7F72 0x7F73 0x7F75 0x7F76 0x7F77 0x7F79 0x7F7A 0x7F7B 0x7F7C 0x7F7D 0x7F7E 0x7F7F 0x7F83 0x7F85 0x7F86 0x7F87 0x7F88 0x7F89 0x7F8A 0x7F8B 0x7F8C 0x7F8D 0x7F8E 0x7F91 0x7F92 0x7F94 0x7F95 0x7F96 0x7F9A 0x7F9B 0x7F9C 0x7F9D 0x7F9E 0x7FA0 0x7FA1 0x7FA2 0x7FA4 0x7FA5 0x7FA6 0x7FA7 0x7FA8 0x7FA9 0x7FAC 0x7FAD 0x7FAF 0x7FB0 0x7FB1 0x7FB2 0x7FB3 0x7FB5 0x7FB6 0x7FB7 0x7FB8 0x7FB9 0x7FBA 0x7FBB 0x7FBC 0x7FBD 0x7FBE 0x7FBF 0x7FC0 0x7FC1 0x7FC2 0x7FC3 0x7FC5 0x7FC7 0x7FC9 0x7FCA 0x7FCB 0x7FCC 0x7FCD 0x7FCE 0x7FCF 0x7FD0 0x7FD1 0x7FD2 0x7FD4 0x7FD5 0x7FD7 0x7FDB 0x7FDC 0x7FDE 0x7FDF 0x7FE0 0x7FE1 0x7FE2 0x7FE3 0x7FE5 0x7FE6 0x7FE8 0x7FE9 0x7FEA 0x7FEB 0x7FEC 0x7FED 0x7FEE 0x7FEF 0x7FF0 0x7FF1 0x7FF2 0x7FF3 0x7FF4 0x7FF5 0x7FF7 0x7FF8 0x7FF9 0x7FFB 0x7FFC 0x7FFD 0x7FFE 0x7FFF 0x8000 0x8001 0x8003 0x8004 0x8005 0x8006 0x8007 0x800B 0x800C 0x800D 0x800E 0x800F 0x8010 0x8011 0x8012 0x8014 0x8015 0x8016 0x8017 0x8018 0x8019 0x801B 0x801C 0x801E 0x801F 0x8021 0x8024 0x8026 0x8028 0x8029 0x802A 0x802C 0x8030 0x8033 0x8034 0x8035 0x8036 0x8037 0x8039 0x803D 0x803E 0x803F 0x8043 0x8046 0x8047 0x8048 0x804A 0x804F 0x8050 0x8051 0x8052 0x8056 0x8058 0x805A 0x805C 0x805D 0x805E 0x8064 0x8067 0x806C 0x806F 0x8070 0x8071 0x8072 0x8073 0x8075 0x8076 0x8077 0x8078 0x8079 0x807D 0x807E 0x807F 0x8082 0x8084 0x8085 0x8086 0x8087 0x8089 0x808A 0x808B 0x808C 0x808F 0x8090 0x8092 0x8093 0x8095 0x8096 0x8098 0x8099 0x809A 0x809B 0x809C 0x809D 0x80A1 0x80A2 0x80A3 0x80A5 0x80A9 0x80AA 0x80AB 0x80AD 0x80AE 0x80AF 0x80B1 0x80B2 0x80B4 0x80B5 0x80B8 0x80BA 0x80C2 0x80C3 0x80C4 0x80C5 0x80C7 0x80C8 0x80C9 0x80CA 0x80CC 0x80CD 0x80CE 0x80CF 0x80D0 0x80D1 0x80D4 0x80D5 0x80D6 0x80D7 0x80D8 0x80D9 0x80DA 0x80DB 0x80DC 0x80DD 0x80DE 0x80E0 0x80E1 0x80E3 0x80E4 0x80E5 0x80E6 0x80ED 0x80EF 0x80F0 0x80F1 0x80F2 0x80F3 0x80F4 0x80F5 0x80F8 0x80F9 0x80FA 0x80FB 0x80FC 0x80FD 0x80FE 0x8100 0x8101 0x8102 0x8105 0x8106 0x8108 0x810A 0x8115 0x8116 0x8118 0x8119 0x811B 0x811D 0x811E 0x811F 0x8121 0x8122 0x8123 0x8124 0x8125 0x8127 0x8129 0x812B 0x812C 0x812D 0x812F 0x8130 0x8139 0x813A 0x813D 0x813E 0x8143 0x8144 0x8146 0x8147 0x814A 0x814B 0x814C 0x814D 0x814E 0x814F 0x8150 0x8151 0x8152 0x8153 0x8154 0x8155 0x815B 0x815C 0x815E 0x8160 0x8161 0x8162 0x8164 0x8165 0x8166 0x8167 0x8169 0x816B 0x816E 0x816F 0x8170 0x8171 0x8172 0x8173 0x8174 0x8176 0x8177 0x8178 0x8179 0x817A 0x817F 0x8180 0x8182 0x8183 0x8186 0x8187 0x8188 0x8189 0x818A 0x818B 0x818C 0x818D 0x818F 0x8195 0x8197 0x8198 0x8199 0x819A 0x819B 0x819C 0x819D 0x819E 0x819F 0x81A0 0x81A2 0x81A3 0x81A6 0x81A7 0x81A8 0x81A9 0x81AB 0x81AC 0x81AE 0x81B0 0x81B1 0x81B2 0x81B3 0x81B4 0x81B5 0x81B7 0x81B9 0x81BA 0x81BB 0x81BC 0x81BD 0x81BE 0x81BF 0x81C0 0x81C2 0x81C3 0x81C4 0x81C5 0x81C6 0x81C7 0x81C9 0x81CA 0x81CC 0x81CD 0x81CF 0x81D0 0x81D1 0x81D2 0x81D5 0x81D7 0x81D8 0x81D9 0x81DA 0x81DB 0x81DD 0x81DE 0x81DF 0x81E0 0x81E1 0x81E2 0x81E3 0x81E5 0x81E6 0x81E7 0x81E8 0x81E9 0x81EA 0x81EC 0x81ED 0x81EE 0x81F2 0x81F3 0x81F4 0x81F7 0x81F8 0x81F9 0x81FA 0x81FB 0x81FC 0x81FE 0x81FF 0x8200 0x8201 0x8202 0x8204 0x8205 0x8207 0x8208 0x8209 0x820A 0x820B 0x820C 0x820D 0x8210 0x8211 0x8212 0x8214 0x8215 0x8216 0x821B 0x821C 0x821D 0x821E 0x821F 0x8220 0x8221 0x8222 0x8225 0x8228 0x822A 0x822B 0x822C 0x822F 0x8232 0x8233 0x8234 0x8235 0x8236 0x8237 0x8238 0x8239 0x823A 0x823C 0x823D 0x823F 0x8240 0x8242 0x8244 0x8245 0x8247 0x8249 0x824B 0x824E 0x824F 0x8250 0x8251 0x8252 0x8253 0x8255 0x8256 0x8257 0x8258 0x8259 0x825A 0x825B 0x825C 0x825E 0x825F 0x8261 0x8263 0x8264 0x8266 0x8268 0x8269 0x826B 0x826C 0x826D 0x826E 0x826F 0x8271 0x8272 0x8274 0x8275 0x8277 0x8278 0x827C 0x827D 0x827E 0x827F 0x8280 0x8283 0x8284 0x8285 0x828A 0x828B 0x828D 0x828E 0x828F 0x8290 0x8291 0x8292 0x8293 0x8294 0x8298 0x8299 0x829A 0x829B 0x829D 0x829E 0x829F 0x82A0 0x82A1 0x82A2 0x82A3 0x82A4 0x82A5 0x82A7 0x82A8 0x82A9 0x82AB 0x82AC 0x82AD 0x82AE 0x82AF 0x82B0 0x82B1 0x82B3 0x82B4 0x82B5 0x82B6 0x82B7 0x82B8 0x82B9 0x82BA 0x82BB 0x82BC 0x82BD 0x82BE 0x82C0 0x82C2 0x82C3 0x82D1 0x82D2 0x82D3 0x82D4 0x82D5 0x82D6 0x82D7 0x82D9 0x82DB 0x82DC 0x82DE 0x82DF 0x82E0 0x82E1 0x82E3 0x82E4 0x82E5 0x82E6 0x82E7 0x82E8 0x82EA 0x82EB 0x82EC 0x82ED 0x82EF 0x82F0 0x82F1 0x82F2 0x82F3 0x82F4 0x82F5 0x82F6 0x82F9 0x82FA 0x82FB 0x82FE 0x8300 0x8301 0x8302 0x8303 0x8304 0x8305 0x8306 0x8307 0x8308 0x8309 0x830C 0x830D 0x8316 0x8317 0x8319 0x831B 0x831C 0x831E 0x8320 0x8322 0x8324 0x8325 0x8326 0x8327 0x8328 0x8329 0x832A 0x832B 0x832C 0x832D 0x832F 0x8331 0x8332 0x8333 0x8334 0x8335 0x8336 0x8337 0x8338 0x8339 0x833A 0x833B 0x833C 0x833F 0x8340 0x8341 0x8342 0x8343 0x8344 0x8345 0x8347 0x8348 0x8349 0x834A 0x834B 0x834C 0x834D 0x834E 0x834F 0x8350 0x8351 0x8352 0x8353 0x8354 0x8356 0x8373 0x8374 0x8375 0x8376 0x8377 0x8378 0x837A 0x837B 0x837C 0x837D 0x837E 0x837F 0x8381 0x8383 0x8386 0x8387 0x8388 0x8389 0x838A 0x838B 0x838C 0x838D 0x838E 0x838F 0x8390 0x8392 0x8393 0x8394 0x8395 0x8396 0x8397 0x8398 0x8399 0x839A 0x839B 0x839D 0x839E 0x83A0 0x83A2 0x83A3 0x83A4 0x83A5 0x83A6 0x83A7 0x83A8 0x83A9 0x83AA 0x83AB 0x83AE 0x83AF 0x83B0 0x83BD 0x83BF 0x83C0 0x83C1 0x83C2 0x83C3 0x83C4 0x83C5 0x83C6 0x83C7 0x83C8 0x83C9 0x83CA 0x83CB 0x83CC 0x83CE 0x83CF 0x83D1 0x83D4 0x83D5 0x83D6 0x83D7 0x83D8 0x83D9 0x83DB 0x83DC 0x83DD 0x83DE 0x83DF 0x83E0 0x83E1 0x83E2 0x83E3 0x83E4 0x83E5 0x83E7 0x83E8 0x83E9 0x83EA 0x83EB 0x83EC 0x83EE 0x83EF 0x83F0 0x83F1 0x83F2 0x83F3 0x83F4 0x83F5 0x83F6 0x83F8 0x83F9 0x83FA 0x83FB 0x83FC 0x83FD 0x83FE 0x83FF 0x8401 0x8403 0x8404 0x8406 0x8407 0x8409 0x840A 0x840B 0x840C 0x840D 0x840E 0x840F 0x8410 0x8411 0x8412 0x8413 0x841B 0x8423 0x8429 0x842B 0x842C 0x842D 0x842F 0x8430 0x8431 0x8432 0x8433 0x8434 0x8435 0x8436 0x8437 0x8438 0x8439 0x843A 0x843B 0x843C 0x843D 0x843F 0x8440 0x8442 0x8443 0x8444 0x8445 0x8446 0x8447 0x8449 0x844B 0x844C 0x844D 0x844E 0x8450 0x8451 0x8452 0x8454 0x8456 0x8457 0x8459 0x845A 0x845B 0x845D 0x845E 0x845F 0x8460 0x8461 0x8463 0x8465 0x8466 0x8467 0x8468 0x8469 0x846B 0x846C 0x846D 0x846E 0x846F 0x8470 0x8473 0x8474 0x8475 0x8476 0x8477 0x8478 0x8479 0x847A 0x847D 0x847E 0x8482 0x8486 0x848D 0x848E 0x848F 0x8490 0x8491 0x8494 0x8497 0x8498 0x8499 0x849A 0x849B 0x849C 0x849D 0x849E 0x849F 0x84A0 0x84A1 0x84A2 0x84A4 0x84A7 0x84A8 0x84A9 0x84AA 0x84AB 0x84AC 0x84AE 0x84AF 0x84B0 0x84B1 0x84B2 0x84B4 0x84B6 0x84B8 0x84B9 0x84BA 0x84BB 0x84BC 0x84BF 0x84C0 0x84C1 0x84C2 0x84C4 0x84C5 0x84C6 0x84C7 0x84C9 0x84CA 0x84CB 0x84CC 0x84CD 0x84CE 0x84CF 0x84D0 0x84D1 0x84D2 0x84D3 0x84D4 0x84D6 0x84D7 0x84DB 0x84E7 0x84E8 0x84E9 0x84EA 0x84EB 0x84EC 0x84EE 0x84EF 0x84F0 0x84F1 0x84F2 0x84F3 0x84F4 0x84F6 0x84F7 0x84F9 0x84FA 0x84FB 0x84FC 0x84FD 0x84FE 0x84FF 0x8500 0x8502 0x8506 0x8507 0x8508 0x8509 0x850A 0x850B 0x850C 0x850D 0x850E 0x850F 0x8511 0x8512 0x8513 0x8514 0x8515 0x8516 0x8517 0x8518 0x8519 0x851A 0x851C 0x851D 0x851E 0x851F 0x8520 0x8521 0x8523 0x8524 0x8525 0x8526 0x8527 0x8528 0x8529 0x852A 0x852B 0x852C 0x852D 0x852E 0x852F 0x8530 0x8531 0x853B 0x853D 0x853E 0x8540 0x8541 0x8543 0x8544 0x8545 0x8546 0x8547 0x8548 0x8549 0x854A 0x854D 0x854E 0x8551 0x8553 0x8554 0x8555 0x8556 0x8557 0x8558 0x8559 0x855B 0x855D 0x855E 0x8560 0x8561 0x8562 0x8563 0x8564 0x8565 0x8566 0x8567 0x8568 0x8569 0x856A 0x856B 0x856C 0x856D 0x856E 0x8571 0x8575 0x8576 0x8577 0x8578 0x8579 0x857A 0x857B 0x857C 0x857E 0x8580 0x8581 0x8582 0x8583 0x8584 0x8585 0x8586 0x8587 0x8588 0x8589 0x858A 0x858B 0x858C 0x858D 0x858E 0x858F 0x8590 0x8591 0x8594 0x8595 0x8596 0x8598 0x8599 0x859A 0x859B 0x859C 0x859D 0x859E 0x859F 0x85A0 0x85A1 0x85A2 0x85A3 0x85A4 0x85A6 0x85A7 0x85A8 0x85A9 0x85AA 0x85AF 0x85B0 0x85B1 0x85B3 0x85B4 0x85B5 0x85B6 0x85B7 0x85B8 0x85B9 0x85BA 0x85BD 0x85BE 0x85BF 0x85C0 0x85C2 0x85C3 0x85C4 0x85C5 0x85C6 0x85C7 0x85C8 0x85C9 0x85CB 0x85CD 0x85CE 0x85CF 0x85D0 0x85D1 0x85D2 0x85D5 0x85D7 0x85D8 0x85D9 0x85DA 0x85DC 0x85DD 0x85DE 0x85DF 0x85E1 0x85E2 0x85E3 0x85E4 0x85E5 0x85E6 0x85E8 0x85E9 0x85EA 0x85EB 0x85EC 0x85ED 0x85EF 0x85F0 0x85F1 0x85F2 0x85F6 0x85F7 0x85F8 0x85F9 0x85FA 0x85FB 0x85FD 0x85FE 0x85FF 0x8600 0x8601 0x8604 0x8605 0x8606 0x8607 0x8609 0x860A 0x860B 0x860C 0x8611 0x8617 0x8618 0x8619 0x861A 0x861B 0x861C 0x861E 0x861F 0x8620 0x8621 0x8622 0x8623 0x8624 0x8625 0x8626 0x8627 0x8629 0x862A 0x862C 0x862D 0x862E 0x8631 0x8632 0x8633 0x8634 0x8635 0x8636 0x8638 0x8639 0x863A 0x863B 0x863C 0x863E 0x863F 0x8640 0x8643 0x8646 0x8647 0x8648 0x864B 0x864C 0x864D 0x864E 0x8650 0x8652 0x8653 0x8654 0x8655 0x8656 0x8659 0x865B 0x865C 0x865E 0x865F 0x8661 0x8662 0x8663 0x8664 0x8665 0x8667 0x8668 0x8669 0x866A 0x866B 0x866D 0x866E 0x866F 0x8670 0x8671 0x8673 0x8674 0x8677 0x8679 0x867A 0x867B 0x867C 0x8685 0x8686 0x8687 0x868A 0x868B 0x868C 0x868D 0x868E 0x8690 0x8691 0x8693 0x8694 0x8695 0x8696 0x8697 0x8698 0x8699 0x869A 0x869C 0x869D 0x869E 0x86A1 0x86A2 0x86A3 0x86A4 0x86A5 0x86A7 0x86A8 0x86A9 0x86AA 0x86AF 0x86B0 0x86B1 0x86B3 0x86B4 0x86B5 0x86B6 0x86B7 0x86B8 0x86B9 0x86BA 0x86BB 0x86BC 0x86BD 0x86BE 0x86BF 0x86C0 0x86C1 0x86C2 0x86C3 0x86C4 0x86C5 0x86C6 0x86C7 0x86C8 0x86C9 0x86CB 0x86CC 0x86D0 0x86D1 0x86D3 0x86D4 0x86D6 0x86D7 0x86D8 0x86D9 0x86DA 0x86DB 0x86DC 0x86DD 0x86DE 0x86DF 0x86E2 0x86E3 0x86E4 0x86E6 0x86E8 0x86E9 0x86EA 0x86EB 0x86EC 0x86ED 0x86F5 0x86F6 0x86F7 0x86F8 0x86F9 0x86FA 0x86FB 0x86FE 0x8700 0x8701 0x8702 0x8703 0x8704 0x8705 0x8706 0x8707 0x8708 0x8709 0x870A 0x870B 0x870C 0x870D 0x870E 0x8711 0x8712 0x8713 0x8718 0x8719 0x871A 0x871B 0x871C 0x871E 0x8720 0x8721 0x8722 0x8723 0x8724 0x8725 0x8726 0x8727 0x8728 0x8729 0x872A 0x872C 0x872D 0x872E 0x8730 0x8731 0x8732 0x8733 0x8734 0x8735 0x8737 0x8738 0x873A 0x873B 0x873C 0x873E 0x873F 0x8740 0x8741 0x8742 0x8743 0x8746 0x874C 0x874D 0x874E 0x874F 0x8750 0x8751 0x8752 0x8753 0x8754 0x8755 0x8756 0x8757 0x8758 0x8759 0x875A 0x875B 0x875C 0x875D 0x875E 0x875F 0x8760 0x8761 0x8762 0x8763 0x8764 0x8765 0x8766 0x8767 0x8768 0x8769 0x876A 0x876B 0x876C 0x876D 0x876E 0x876F 0x8773 0x8774 0x8775 0x8776 0x8777 0x8778 0x8779 0x877A 0x877B 0x8781 0x8782 0x8783 0x8784 0x8785 0x8787 0x8788 0x8789 0x878D 0x878F 0x8790 0x8791 0x8792 0x8793 0x8794 0x8796 0x8797 0x8798 0x879A 0x879B 0x879C 0x879D 0x879E 0x879F 0x87A2 0x87A3 0x87A4 0x87AA 0x87AB 0x87AC 0x87AD 0x87AE 0x87AF 0x87B0 0x87B2 0x87B3 0x87B4 0x87B5 0x87B6 0x87B7 0x87B8 0x87B9 0x87BA 0x87BB 0x87BC 0x87BD 0x87BE 0x87BF 0x87C0 0x87C2 0x87C3 0x87C4 0x87C5 0x87C6 0x87C8 0x87C9 0x87CA 0x87CB 0x87CC 0x87D1 0x87D2 0x87D3 0x87D4 0x87D7 0x87D8 0x87D9 0x87DB 0x87DC 0x87DD 0x87DE 0x87DF 0x87E0 0x87E1 0x87E2 0x87E3 0x87E4 0x87E5 0x87E6 0x87E7 0x87E8 0x87EA 0x87EB 0x87EC 0x87ED 0x87EF 0x87F2 0x87F3 0x87F4 0x87F6 0x87F7 0x87F9 0x87FA 0x87FB 0x87FC 0x87FE 0x87FF 0x8800 0x8801 0x8802 0x8803 0x8805 0x8806 0x8808 0x8809 0x880A 0x880B 0x880C 0x880D 0x8810 0x8811 0x8813 0x8814 0x8815 0x8816 0x8817 0x8819 0x881B 0x881C 0x881D 0x881F 0x8820 0x8821 0x8822 0x8823 0x8824 0x8825 0x8826 0x8828 0x8829 0x882A 0x882B 0x882C 0x882E 0x882F 0x8830 0x8831 0x8832 0x8833 0x8835 0x8836 0x8837 0x8838 0x8839 0x883B 0x883C 0x883D 0x883E 0x883F 0x8840 0x8841 0x8843 0x8844 0x8848 0x884A 0x884B 0x884C 0x884D 0x884E 0x8852 0x8853 0x8855 0x8856 0x8857 0x8859 0x885A 0x885B 0x885D 0x8861 0x8862 0x8863 0x8867 0x8868 0x8869 0x886A 0x886B 0x886D 0x886F 0x8870 0x8871 0x8872 0x8874 0x8875 0x8876 0x8877 0x8879 0x887C 0x887D 0x887E 0x887F 0x8880 0x8881 0x8882 0x8883 0x8888 0x8889 0x888B 0x888C 0x888D 0x888E 0x8891 0x8892 0x8893 0x8895 0x8896 0x8897 0x8898 0x8899 0x889A 0x889B 0x889E 0x889F 0x88A1 0x88A2 0x88A4 0x88A7 0x88A8 0x88AA 0x88AB 0x88AC 0x88B1 0x88B2 0x88B6 0x88B7 0x88B8 0x88B9 0x88BA 0x88BC 0x88BD 0x88BE 0x88C0 0x88C1 0x88C2 0x88C9 0x88CA 0x88CB 0x88CC 0x88CD 0x88CE 0x88D0 0x88D2 0x88D4 0x88D5 0x88D6 0x88D7 0x88D8 0x88D9 0x88DA 0x88DB 0x88DC 0x88DD 0x88DE 0x88DF 0x88E1 0x88E7 0x88E8 0x88EB 0x88EC 0x88EE 0x88EF 0x88F0 0x88F1 0x88F2 0x88F3 0x88F4 0x88F6 0x88F7 0x88F8 0x88F9 0x88FA 0x88FB 0x88FC 0x88FD 0x88FE 0x8901 0x8902 0x8905 0x8906 0x8907 0x8909 0x890A 0x890B 0x890C 0x890E 0x8910 0x8911 0x8912 0x8913 0x8914 0x8915 0x8916 0x8917 0x8918 0x8919 0x891A 0x891E 0x891F 0x8921 0x8922 0x8923 0x8925 0x8926 0x8927 0x8929 0x892A 0x892B 0x892C 0x892D 0x892E 0x892F 0x8930 0x8931 0x8932 0x8933 0x8935 0x8936 0x8937 0x8938 0x893B 0x893C 0x893D 0x893E 0x8941 0x8942 0x8944 0x8946 0x8949 0x894B 0x894C 0x894F 0x8950 0x8951 0x8952 0x8953 0x8956 0x8957 0x8958 0x8959 0x895A 0x895B 0x895C 0x895D 0x895E 0x895F 0x8960 0x8961 0x8962 0x8963 0x8964 0x8966 0x8969 0x896A 0x896B 0x896C 0x896D 0x896E 0x896F 0x8971 0x8972 0x8973 0x8974 0x8976 0x8979 0x897A 0x897B 0x897C 0x897E 0x897F 0x8981 0x8982 0x8983 0x8985 0x8986 0x8988 0x898B 0x898F 0x8993 0x8995 0x8996 0x8997 0x8998 0x899B 0x899C 0x899D 0x899E 0x899F 0x89A1 0x89A2 0x89A3 0x89A4 0x89A6 0x89AA 0x89AC 0x89AD 0x89AE 0x89AF 0x89B2 0x89B6 0x89B7 0x89B9 0x89BA 0x89BD 0x89BE 0x89BF 0x89C0 0x89D2 0x89D3 0x89D4 0x89D5 0x89D6 0x89D9 0x89DA 0x89DB 0x89DC 0x89DD 0x89DF 0x89E0 0x89E1 0x89E2 0x89E3 0x89E4 0x89E5 0x89E6 0x89E8 0x89E9 0x89EB 0x89EC 0x89ED 0x89F0 0x89F1 0x89F2 0x89F3 0x89F4 0x89F6 0x89F7 0x89F8 0x89FA 0x89FB 0x89FC 0x89FE 0x89FF 0x8A00 0x8A02 0x8A03 0x8A04 0x8A07 0x8A08 0x8A0A 0x8A0C 0x8A0E 0x8A0F 0x8A10 0x8A11 0x8A12 0x8A13 0x8A15 0x8A16 0x8A17 0x8A18 0x8A1B 0x8A1D 0x8A1E 0x8A1F 0x8A22 0x8A23 0x8A25 0x8A27 0x8A2A 0x8A2C 0x8A2D 0x8A30 0x8A31 0x8A34 0x8A36 0x8A39 0x8A3A 0x8A3B 0x8A3C 0x8A3E 0x8A3F 0x8A40 0x8A41 0x8A44 0x8A45 0x8A46 0x8A48 0x8A4A 0x8A4C 0x8A4D 0x8A4E 0x8A4F 0x8A50 0x8A51 0x8A52 0x8A54 0x8A55 0x8A56 0x8A57 0x8A58 0x8A59 0x8A5B 0x8A5E 0x8A60 0x8A61 0x8A62 0x8A63 0x8A66 0x8A68 0x8A69 0x8A6B 0x8A6C 0x8A6D 0x8A6E 0x8A70 0x8A71 0x8A72 0x8A73 0x8A74 0x8A75 0x8A76 0x8A77 0x8A79 0x8A7A 0x8A7B 0x8A7C 0x8A7F 0x8A81 0x8A82 0x8A83 0x8A84 0x8A85 0x8A86 0x8A87 0x8A8B 0x8A8C 0x8A8D 0x8A8F 0x8A91 0x8A92 0x8A93 0x8A95 0x8A96 0x8A98 0x8A99 0x8A9A 0x8A9E 0x8AA0 0x8AA1 0x8AA3 0x8AA4 0x8AA5 0x8AA6 0x8AA7 0x8AA8 0x8AAA 0x8AAB 0x8AB0 0x8AB2 0x8AB6 0x8AB8 0x8AB9 0x8ABA 0x8ABB 0x8ABC 0x8ABD 0x8ABE 0x8ABF 0x8AC0 0x8AC2 0x8AC3 0x8AC4 0x8AC5 0x8AC6 0x8AC7 0x8AC8 0x8AC9 0x8ACB 0x8ACD 0x8ACF 0x8AD1 0x8AD2 0x8AD3 0x8AD4 0x8AD5 0x8AD6 0x8AD7 0x8AD8 0x8AD9 0x8ADB 0x8ADC 0x8ADD 0x8ADE 0x8ADF 0x8AE0 0x8AE1 0x8AE2 0x8AE4 0x8AE6 0x8AE7 0x8AE8 0x8AEB 0x8AED 0x8AEE 0x8AEF 0x8AF0 0x8AF1 0x8AF2 0x8AF3 0x8AF4 0x8AF5 0x8AF6 0x8AF7 0x8AF8 0x8AFA 0x8AFB 0x8AFC 0x8AFE 0x8AFF 0x8B00 0x8B01 0x8B02 0x8B04 0x8B05 0x8B06 0x8B07 0x8B08 0x8B0A 0x8B0B 0x8B0D 0x8B0E 0x8B0F 0x8B10 0x8B11 0x8B12 0x8B13 0x8B14 0x8B15 0x8B16 0x8B17 0x8B18 0x8B19 0x8B1A 0x8B1B 0x8B1C 0x8B1D 0x8B1E 0x8B20 0x8B22 0x8B23 0x8B24 0x8B25 0x8B26 0x8B27 0x8B28 0x8B2A 0x8B2B 0x8B2C 0x8B2E 0x8B2F 0x8B30 0x8B31 0x8B33 0x8B35 0x8B36 0x8B37 0x8B39 0x8B3A 0x8B3B 0x8B3C 0x8B3D 0x8B3E 0x8B40 0x8B41 0x8B42 0x8B45 0x8B46 0x8B47 0x8B48 0x8B49 0x8B4A 0x8B4B 0x8B4E 0x8B4F 0x8B50 0x8B51 0x8B52 0x8B53 0x8B54 0x8B55 0x8B56 0x8B57 0x8B58 0x8B59 0x8B5A 0x8B5C 0x8B5D 0x8B5F 0x8B60 0x8B63 0x8B65 0x8B66 0x8B67 0x8B68 0x8B6A 0x8B6B 0x8B6C 0x8B6D 0x8B6F 0x8B70 0x8B74 0x8B77 0x8B78 0x8B79 0x8B7A 0x8B7B 0x8B7D 0x8B7E 0x8B7F 0x8B80 0x8B82 0x8B84 0x8B85 0x8B86 0x8B88 0x8B8A 0x8B8B 0x8B8C 0x8B8E 0x8B92 0x8B93 0x8B94 0x8B95 0x8B96 0x8B98 0x8B99 0x8B9A 0x8B9C 0x8B9E 0x8B9F 0x8C37 0x8C39 0x8C3B 0x8C3C 0x8C3D 0x8C3E 0x8C3F 0x8C41 0x8C42 0x8C43 0x8C45 0x8C46 0x8C47 0x8C48 0x8C49 0x8C4A 0x8C4B 0x8C4C 0x8C4D 0x8C4E 0x8C4F 0x8C50 0x8C54 0x8C55 0x8C56 0x8C57 0x8C5A 0x8C5C 0x8C5D 0x8C5F 0x8C61 0x8C62 0x8C64 0x8C65 0x8C66 0x8C68 0x8C69 0x8C6A 0x8C6B 0x8C6C 0x8C6D 0x8C6F 0x8C70 0x8C71 0x8C72 0x8C73 0x8C75 0x8C76 0x8C77 0x8C78 0x8C79 0x8C7A 0x8C7B 0x8C7D 0x8C80 0x8C81 0x8C82 0x8C84 0x8C85 0x8C86 0x8C89 0x8C8A 0x8C8C 0x8C8D 0x8C8F 0x8C90 0x8C91 0x8C92 0x8C93 0x8C94 0x8C95 0x8C97 0x8C98 0x8C99 0x8C9A 0x8C9C 0x8C9D 0x8C9E 0x8CA0 0x8CA1 0x8CA2 0x8CA3 0x8CA4 0x8CA5 0x8CA7 0x8CA8 0x8CA9 0x8CAA 0x8CAB 0x8CAC 0x8CAF 0x8CB0 0x8CB2 0x8CB3 0x8CB4 0x8CB5 0x8CB6 0x8CB7 0x8CB8 0x8CB9 0x8CBA 0x8CBB 0x8CBC 0x8CBD 0x8CBE 0x8CBF 0x8CC0 0x8CC1 0x8CC2 0x8CC3 0x8CC4 0x8CC5 0x8CC7 0x8CC8 0x8CCA 0x8CCC 0x8CCF 0x8CD1 0x8CD2 0x8CD3 0x8CD5 0x8CD7 0x8CD9 0x8CDA 0x8CDC 0x8CDD 0x8CDE 0x8CDF 0x8CE0 0x8CE1 0x8CE2 0x8CE3 0x8CE4 0x8CE5 0x8CE6 0x8CE7 0x8CE8 0x8CEA 0x8CEC 0x8CED 0x8CEE 0x8CF0 0x8CF1 0x8CF3 0x8CF4 0x8CF5 0x8CF8 0x8CF9 0x8CFA 0x8CFB 0x8CFC 0x8CFD 0x8CFE 0x8D00 0x8D02 0x8D04 0x8D05 0x8D06 0x8D07 0x8D08 0x8D09 0x8D0A 0x8D0D 0x8D0F 0x8D10 0x8D13 0x8D14 0x8D15 0x8D16 0x8D17 0x8D19 0x8D1B 0x8D64 0x8D66 0x8D67 0x8D68 0x8D69 0x8D6B 0x8D6C 0x8D6D 0x8D6E 0x8D6F 0x8D70 0x8D72 0x8D73 0x8D74 0x8D76 0x8D77 0x8D78 0x8D79 0x8D7B 0x8D7D 0x8D80 0x8D81 0x8D84 0x8D85 0x8D89 0x8D8A 0x8D8C 0x8D8D 0x8D8E 0x8D8F 0x8D90 0x8D91 0x8D92 0x8D93 0x8D94 0x8D95 0x8D96 0x8D99 0x8D9B 0x8D9C 0x8D9F 0x8DA0 0x8DA1 0x8DA3 0x8DA5 0x8DA7 0x8DA8 0x8DAA 0x8DAB 0x8DAC 0x8DAD 0x8DAE 0x8DAF 0x8DB2 0x8DB3 0x8DB4 0x8DB5 0x8DB6 0x8DB7 0x8DB9 0x8DBA 0x8DBC 0x8DBE 0x8DBF 0x8DC1 0x8DC2 0x8DC5 0x8DC6 0x8DC7 0x8DC8 0x8DCB 0x8DCC 0x8DCD 0x8DCE 0x8DCF 0x8DD0 0x8DD1 0x8DD3 0x8DD5 0x8DD6 0x8DD7 0x8DD8 0x8DD9 0x8DDA 0x8DDB 0x8DDC 0x8DDD 0x8DDF 0x8DE0 0x8DE1 0x8DE2 0x8DE3 0x8DE4 0x8DE6 0x8DE7 0x8DE8 0x8DE9 0x8DEA 0x8DEB 0x8DEC 0x8DEE 0x8DEF 0x8DF0 0x8DF1 0x8DF2 0x8DF3 0x8DF4 0x8DFA 0x8DFC 0x8DFD 0x8DFE 0x8DFF 0x8E00 0x8E02 0x8E03 0x8E04 0x8E05 0x8E06 0x8E07 0x8E09 0x8E0A 0x8E0D 0x8E0F 0x8E10 0x8E11 0x8E12 0x8E13 0x8E14 0x8E15 0x8E16 0x8E17 0x8E18 0x8E19 0x8E1A 0x8E1B 0x8E1C 0x8E1D 0x8E1E 0x8E1F 0x8E20 0x8E21 0x8E22 0x8E23 0x8E24 0x8E25 0x8E26 0x8E27 0x8E29 0x8E2B 0x8E2E 0x8E30 0x8E31 0x8E33 0x8E34 0x8E35 0x8E36 0x8E38 0x8E39 0x8E3C 0x8E3D 0x8E3E 0x8E3F 0x8E40 0x8E41 0x8E42 0x8E44 0x8E45 0x8E47 0x8E48 0x8E49 0x8E4A 0x8E4B 0x8E4C 0x8E4D 0x8E4E 0x8E50 0x8E53 0x8E54 0x8E55 0x8E56 0x8E57 0x8E59 0x8E5A 0x8E5B 0x8E5C 0x8E5D 0x8E5E 0x8E5F 0x8E60 0x8E61 0x8E62 0x8E63 0x8E64 0x8E65 0x8E66 0x8E67 0x8E69 0x8E6A 0x8E6C 0x8E6D 0x8E6F 0x8E72 0x8E73 0x8E74 0x8E76 0x8E78 0x8E7A 0x8E7B 0x8E7C 0x8E81 0x8E82 0x8E84 0x8E85 0x8E86 0x8E87 0x8E88 0x8E89 0x8E8A 0x8E8B 0x8E8C 0x8E8D 0x8E8E 0x8E90 0x8E91 0x8E92 0x8E93 0x8E94 0x8E95 0x8E96 0x8E97 0x8E98 0x8E9A 0x8E9D 0x8E9E 0x8E9F 0x8EA0 0x8EA1 0x8EA3 0x8EA4 0x8EA5 0x8EA6 0x8EA8 0x8EA9 0x8EAA 0x8EAB 0x8EAC 0x8EB2 0x8EBA 0x8EBD 0x8EC0 0x8EC2 0x8EC9 0x8ECA 0x8ECB 0x8ECC 0x8ECD 0x8ECF 0x8ED1 0x8ED2 0x8ED3 0x8ED4 0x8ED7 0x8ED8 0x8EDB 0x8EDC 0x8EDD 0x8EDE 0x8EDF 0x8EE0 0x8EE1 0x8EE5 0x8EE6 0x8EE7 0x8EE8 0x8EE9 0x8EEB 0x8EEC 0x8EEE 0x8EEF 0x8EF1 0x8EF4 0x8EF5 0x8EF6 0x8EF7 0x8EF8 0x8EF9 0x8EFA 0x8EFB 0x8EFC 0x8EFE 0x8EFF 0x8F00 0x8F01 0x8F02 0x8F03 0x8F05 0x8F06 0x8F07 0x8F08 0x8F09 0x8F0A 0x8F0B 0x8F0D 0x8F0E 0x8F10 0x8F11 0x8F12 0x8F13 0x8F14 0x8F15 0x8F16 0x8F17 0x8F18 0x8F1A 0x8F1B 0x8F1C 0x8F1D 0x8F1E 0x8F1F 0x8F20 0x8F23 0x8F24 0x8F25 0x8F26 0x8F29 0x8F2A 0x8F2C 0x8F2E 0x8F2F 0x8F32 0x8F33 0x8F34 0x8F35 0x8F36 0x8F37 0x8F38 0x8F39 0x8F3B 0x8F3E 0x8F3F 0x8F40 0x8F42 0x8F43 0x8F44 0x8F45 0x8F46 0x8F47 0x8F48 0x8F49 0x8F4B 0x8F4D 0x8F4E 0x8F4F 0x8F50 0x8F51 0x8F52 0x8F53 0x8F54 0x8F55 0x8F56 0x8F57 0x8F58 0x8F59 0x8F5A 0x8F5B 0x8F5D 0x8F5E 0x8F5F 0x8F60 0x8F61 0x8F62 0x8F63 0x8F64 0x8F9B 0x8F9C 0x8F9F 0x8FA3 0x8FA6 0x8FA8 0x8FAD 0x8FAE 0x8FAF 0x8FB0 0x8FB1 0x8FB2 0x8FB4 0x8FBF 0x8FC2 0x8FC4 0x8FC5 0x8FC6 0x8FC9 0x8FCB 0x8FCD 0x8FCE 0x8FD1 0x8FD2 0x8FD3 0x8FD4 0x8FD5 0x8FD6 0x8FD7 0x8FE0 0x8FE1 0x8FE2 0x8FE3 0x8FE4 0x8FE5 0x8FE6 0x8FE8 0x8FEA 0x8FEB 0x8FED 0x8FEE 0x8FF0 0x8FF4 0x8FF5 0x8FF6 0x8FF7 0x8FF8 0x8FFA 0x8FFB 0x8FFC 0x8FFD 0x8FFE 0x8FFF 0x9000 0x9001 0x9002 0x9003 0x9004 0x9005 0x9006 0x900B 0x900C 0x900D 0x900F 0x9010 0x9011 0x9014 0x9015 0x9016 0x9017 0x9019 0x901A 0x901B 0x901C 0x901D 0x901E 0x901F 0x9020 0x9021 0x9022 0x9023 0x9024 0x902D 0x902E 0x902F 0x9031 0x9032 0x9034 0x9035 0x9036 0x9038 0x903C 0x903D 0x903E 0x903F 0x9041 0x9042 0x9044 0x9047 0x9049 0x904A 0x904B 0x904D 0x904E 0x904F 0x9050 0x9051 0x9052 0x9053 0x9054 0x9055 0x9058 0x9059 0x905B 0x905C 0x905D 0x905E 0x9060 0x9062 0x9063 0x9067 0x9068 0x9069 0x906B 0x906D 0x906E 0x906F 0x9070 0x9072 0x9073 0x9074 0x9075 0x9076 0x9077 0x9078 0x9079 0x907A 0x907B 0x907C 0x907D 0x907E 0x907F 0x9080 0x9081 0x9082 0x9083 0x9084 0x9085 0x9086 0x9087 0x9088 0x908A 0x908B 0x908D 0x908F 0x9090 0x9091 0x9094 0x9095 0x9097 0x9098 0x9099 0x909B 0x909E 0x909F 0x90A0 0x90A1 0x90A2 0x90A3 0x90A5 0x90A6 0x90A7 0x90AA 0x90AF 0x90B0 0x90B1 0x90B2 0x90B3 0x90B4 0x90B5 0x90B6 0x90B8 0x90BD 0x90BE 0x90BF 0x90C1 0x90C3 0x90C5 0x90C7 0x90C8 0x90CA 0x90CB 0x90CE 0x90D4 0x90D5 0x90D6 0x90D7 0x90D8 0x90D9 0x90DA 0x90DB 0x90DC 0x90DD 0x90DF 0x90E0 0x90E1 0x90E2 0x90E3 0x90E4 0x90E5 0x90E8 0x90E9 0x90EA 0x90EB 0x90EC 0x90ED 0x90EF 0x90F0 0x90F1 0x90F2 0x90F3 0x90F4 0x90F5 0x90F9 0x90FA 0x90FB 0x90FC 0x90FD 0x90FE 0x90FF 0x9100 0x9101 0x9102 0x9103 0x9104 0x9105 0x9106 0x9107 0x9108 0x9109 0x910B 0x910D 0x910E 0x910F 0x9110 0x9111 0x9112 0x9114 0x9116 0x9117 0x9118 0x9119 0x911A 0x911B 0x911C 0x911D 0x911E 0x911F 0x9120 0x9121 0x9122 0x9123 0x9124 0x9126 0x9127 0x9128 0x9129 0x912A 0x912B 0x912C 0x912D 0x912E 0x912F 0x9130 0x9131 0x9132 0x9133 0x9134 0x9135 0x9136 0x9138 0x9139 0x913A 0x913B 0x913E 0x913F 0x9140 0x9141 0x9143 0x9144 0x9145 0x9146 0x9147 0x9148 0x9149 0x914A 0x914B 0x914C 0x914D 0x914E 0x914F 0x9150 0x9152 0x9153 0x9155 0x9156 0x9157 0x9158 0x915A 0x915F 0x9160 0x9161 0x9162 0x9163 0x9164 0x9165 0x9168 0x9169 0x916A 0x916C 0x916E 0x916F 0x9172 0x9173 0x9174 0x9175 0x9177 0x9178 0x9179 0x917A 0x9180 0x9181 0x9182 0x9183 0x9184 0x9185 0x9186 0x9187 0x9189 0x918A 0x918B 0x918D 0x918F 0x9190 0x9191 0x9192 0x9193 0x9199 0x919A 0x919B 0x919C 0x919D 0x919E 0x919F 0x91A0 0x91A1 0x91A2 0x91A3 0x91A5 0x91A7 0x91A8 0x91AA 0x91AB 0x91AC 0x91AD 0x91AE 0x91AF 0x91B0 0x91B1 0x91B2 0x91B3 0x91B4 0x91B5 0x91B7 0x91B9 0x91BA 0x91BC 0x91BD 0x91BE 0x91C0 0x91C1 0x91C2 0x91C3 0x91C5 0x91C6 0x91C7 0x91C9 0x91CB 0x91CC 0x91CD 0x91CE 0x91CF 0x91D0 0x91D1 0x91D3 0x91D4 0x91D5 0x91D7 0x91D8 0x91D9 0x91DA 0x91DC 0x91DD 0x91E2 0x91E3 0x91E4 0x91E6 0x91E7 0x91E8 0x91E9 0x91EA 0x91EB 0x91EC 0x91ED 0x91EE 0x91F1 0x91F3 0x91F4 0x91F5 0x91F7 0x91F8 0x91F9 0x91FD 0x91FF 0x9200 0x9201 0x9202 0x9203 0x9204 0x9205 0x9206 0x9207 0x9209 0x920A 0x920C 0x920D 0x920F 0x9210 0x9211 0x9212 0x9214 0x9215 0x9216 0x9217 0x9219 0x921A 0x921C 0x921E 0x9223 0x9224 0x9225 0x9226 0x9227 0x922D 0x922E 0x9230 0x9231 0x9232 0x9233 0x9234 0x9236 0x9237 0x9238 0x9239 0x923A 0x923D 0x923E 0x923F 0x9240 0x9245 0x9246 0x9248 0x9249 0x924A 0x924B 0x924C 0x924D 0x924E 0x924F 0x9250 0x9251 0x9252 0x9253 0x9254 0x9256 0x9257 0x925A 0x925B 0x925E 0x9260 0x9261 0x9263 0x9264 0x9265 0x9266 0x9267 0x926C 0x926D 0x926F 0x9270 0x9272 0x9276 0x9278 0x9279 0x927A 0x927B 0x927C 0x927D 0x927E 0x927F 0x9280 0x9282 0x9283 0x9285 0x9286 0x9287 0x9288 0x928A 0x928B 0x928C 0x928D 0x928E 0x9291 0x9293 0x9294 0x9295 0x9296 0x9297 0x9298 0x9299 0x929A 0x929B 0x929C 0x929D 0x92A0 0x92A1 0x92A2 0x92A3 0x92A4 0x92A5 0x92A6 0x92A7 0x92A8 0x92A9 0x92AA 0x92AB 0x92AC 0x92B2 0x92B3 0x92B4 0x92B5 0x92B6 0x92B7 0x92BB 0x92BC 0x92C0 0x92C1 0x92C2 0x92C3 0x92C4 0x92C5 0x92C6 0x92C7 0x92C8 0x92C9 0x92CA 0x92CB 0x92CC 0x92CD 0x92CE 0x92CF 0x92D0 0x92D1 0x92D2 0x92D3 0x92D5 0x92D7 0x92D8 0x92D9 0x92DD 0x92DE 0x92DF 0x92E0 0x92E1 0x92E4 0x92E6 0x92E7 0x92E8 0x92E9 0x92EA 0x92EE 0x92EF 0x92F0 0x92F1 0x92F7 0x92F8 0x92F9 0x92FA 0x92FB 0x92FC 0x92FE 0x92FF 0x9300 0x9301 0x9302 0x9304 0x9306 0x9308 0x9309 0x930B 0x930C 0x930D 0x930E 0x930F 0x9310 0x9312 0x9313 0x9314 0x9315 0x9316 0x9318 0x9319 0x931A 0x931B 0x931D 0x931E 0x931F 0x9320 0x9321 0x9322 0x9323 0x9324 0x9325 0x9326 0x9327 0x9328 0x9329 0x932A 0x932B 0x932D 0x932E 0x932F 0x9333 0x9334 0x9335 0x9336 0x9338 0x9339 0x933C 0x9346 0x9347 0x9349 0x934A 0x934B 0x934C 0x934D 0x934E 0x934F 0x9350 0x9351 0x9352 0x9354 0x9355 0x9356 0x9357 0x9358 0x9359 0x935A 0x935B 0x935C 0x935E 0x9360 0x9361 0x9363 0x9364 0x9365 0x9367 0x936A 0x936C 0x936D 0x9370 0x9371 0x9375 0x9376 0x9377 0x9379 0x937A 0x937B 0x937C 0x937E 0x9380 0x9382 0x9383 0x9388 0x9389 0x938A 0x938C 0x938D 0x938E 0x938F 0x9391 0x9392 0x9394 0x9395 0x9396 0x9397 0x9398 0x9399 0x939A 0x939B 0x939D 0x939E 0x939F 0x93A1 0x93A2 0x93A3 0x93A4 0x93A5 0x93A6 0x93A7 0x93A8 0x93A9 0x93AA 0x93AC 0x93AE 0x93AF 0x93B0 0x93B1 0x93B2 0x93B3 0x93B4 0x93B5 0x93B7 0x93C0 0x93C2 0x93C3 0x93C4 0x93C7 0x93C8 0x93CA 0x93CC 0x93CD 0x93CE 0x93CF 0x93D0 0x93D1 0x93D2 0x93D4 0x93D5 0x93D6 0x93D7 0x93D8 0x93D9 0x93DA 0x93DC 0x93DD 0x93DE 0x93DF 0x93E1 0x93E2 0x93E3 0x93E4 0x93E6 0x93E7 0x93E8 0x93EC 0x93EE 0x93F5 0x93F6 0x93F7 0x93F8 0x93F9 0x93FA 0x93FB 0x93FC 0x93FD 0x93FE 0x93FF 0x9400 0x9403 0x9406 0x9407 0x9409 0x940A 0x940B 0x940C 0x940D 0x940E 0x940F 0x9410 0x9411 0x9412 0x9413 0x9414 0x9415 0x9416 0x9418 0x9419 0x9420 0x9428 0x9429 0x942A 0x942B 0x942C 0x942E 0x9430 0x9431 0x9432 0x9433 0x9435 0x9436 0x9437 0x9438 0x9439 0x943A 0x943B 0x943C 0x943D 0x943F 0x9440 0x9444 0x9445 0x9446 0x9447 0x9448 0x9449 0x944A 0x944B 0x944C 0x944F 0x9450 0x9451 0x9452 0x9455 0x9457 0x945D 0x945E 0x9460 0x9462 0x9463 0x9464 0x9468 0x9469 0x946A 0x946B 0x946D 0x946E 0x946F 0x9470 0x9471 0x9472 0x9473 0x9474 0x9475 0x9476 0x9477 0x9478 0x947C 0x947D 0x947E 0x947F 0x9480 0x9481 0x9482 0x9483 0x9577 0x957A 0x957B 0x957C 0x957D 0x9580 0x9582 0x9583 0x9586 0x9588 0x9589 0x958B 0x958C 0x958D 0x958E 0x958F 0x9590 0x9591 0x9592 0x9593 0x9594 0x9598 0x959B 0x959C 0x959E 0x959F 0x95A1 0x95A3 0x95A4 0x95A5 0x95A8 0x95A9 0x95AB 0x95AC 0x95AD 0x95AE 0x95B0 0x95B1 0x95B5 0x95B6 0x95B7 0x95B9 0x95BA 0x95BB 0x95BC 0x95BD 0x95BE 0x95BF 0x95C0 0x95C3 0x95C5 0x95C6 0x95C7 0x95C8 0x95C9 0x95CA 0x95CB 0x95CC 0x95CD 0x95D0 0x95D1 0x95D2 0x95D3 0x95D4 0x95D5 0x95D6 0x95DA 0x95DB 0x95DC 0x95DE 0x95DF 0x95E0 0x95E1 0x95E2 0x95E3 0x95E4 0x95E5 0x961C 0x961E 0x9620 0x9621 0x9622 0x9623 0x9624 0x9628 0x962A 0x962C 0x962D 0x962E 0x962F 0x9630 0x9631 0x9632 0x9639 0x963A 0x963B 0x963C 0x963D 0x963F 0x9640 0x9642 0x9643 0x9644 0x964A 0x964B 0x964C 0x964D 0x964E 0x964F 0x9650 0x9651 0x9653 0x9654 0x9658 0x965B 0x965C 0x965D 0x965E 0x965F 0x9661 0x9662 0x9663 0x9664 0x966A 0x966B 0x966C 0x966D 0x966F 0x9670 0x9671 0x9672 0x9673 0x9674 0x9675 0x9676 0x9677 0x9678 0x967C 0x967D 0x967E 0x9680 0x9683 0x9684 0x9685 0x9686 0x9687 0x9688 0x9689 0x968A 0x968B 0x968D 0x968E 0x9691 0x9692 0x9693 0x9694 0x9695 0x9697 0x9698 0x9699 0x969B 0x969C 0x969E 0x96A1 0x96A2 0x96A4 0x96A7 0x96A8 0x96A9 0x96AA 0x96AC 0x96AE 0x96B0 0x96B1 0x96B3 0x96B4 0x96B8 0x96B9 0x96BB 0x96BC 0x96BF 0x96C0 0x96C1 0x96C2 0x96C3 0x96C4 0x96C5 0x96C6 0x96C7 0x96C8 0x96C9 0x96CA 0x96CB 0x96CC 0x96CD 0x96CE 0x96D2 0x96D3 0x96D4 0x96D5 0x96D6 0x96D7 0x96D8 0x96D9 0x96DA 0x96DB 0x96DC 0x96DD 0x96DE 0x96DF 0x96E1 0x96E2 0x96E3 0x96E5 0x96E8 0x96E9 0x96EA 0x96EF 0x96F0 0x96F1 0x96F2 0x96F5 0x96F6 0x96F7 0x96F8 0x96F9 0x96FA 0x96FB 0x96FD 0x96FF 0x9700 0x9702 0x9704 0x9705 0x9706 0x9707 0x9708 0x9709 0x970B 0x970D 0x970E 0x970F 0x9710 0x9711 0x9712 0x9713 0x9716 0x9718 0x9719 0x971C 0x971D 0x971E 0x971F 0x9720 0x9722 0x9723 0x9724 0x9725 0x9726 0x9727 0x9728 0x9729 0x972A 0x972B 0x972C 0x972E 0x972F 0x9730 0x9732 0x9735 0x9738 0x9739 0x973A 0x973D 0x973E 0x973F 0x9742 0x9743 0x9744 0x9746 0x9747 0x9748 0x9749 0x974B 0x9752 0x9756 0x9758 0x975A 0x975B 0x975C 0x975E 0x9760 0x9761 0x9762 0x9766 0x9768 0x9769 0x976A 0x976C 0x976E 0x9770 0x9772 0x9773 0x9774 0x9776 0x9777 0x9778 0x977A 0x977B 0x977C 0x977D 0x977E 0x977F 0x9780 0x9781 0x9782 0x9783 0x9784 0x9785 0x9788 0x978A 0x978B 0x978D 0x978E 0x978F 0x9794 0x9797 0x9798 0x9799 0x979A 0x979C 0x979D 0x979E 0x97A0 0x97A1 0x97A2 0x97A3 0x97A4 0x97A5 0x97A6 0x97A8 0x97AA 0x97AB 0x97AC 0x97AD 0x97AE 0x97B3 0x97B6 0x97B7 0x97B9 0x97BB 0x97BF 0x97C1 0x97C3 0x97C4 0x97C5 0x97C6 0x97C7 0x97C9 0x97CB 0x97CC 0x97CD 0x97CE 0x97CF 0x97D0 0x97D3 0x97D4 0x97D5 0x97D6 0x97D7 0x97D8 0x97D9 0x97DC 0x97DD 0x97DE 0x97DF 0x97E1 0x97E3 0x97E5 0x97ED 0x97F0 0x97F1 0x97F3 0x97F6 0x97F8 0x97F9 0x97FA 0x97FB 0x97FD 0x97FE 0x97FF 0x9800 0x9801 0x9802 0x9803 0x9804 0x9805 0x9806 0x9807 0x9808 0x980A 0x980C 0x980D 0x980E 0x980F 0x9810 0x9811 0x9812 0x9813 0x9816 0x9817 0x9818 0x981B 0x981C 0x981D 0x981E 0x9820 0x9821 0x9824 0x9826 0x9827 0x9828 0x9829 0x982B 0x982D 0x982F 0x9830 0x9832 0x9835 0x9837 0x9838 0x9839 0x983B 0x9841 0x9843 0x9844 0x9845 0x9846 0x9848 0x9849 0x984A 0x984C 0x984D 0x984E 0x984F 0x9850 0x9851 0x9852 0x9853 0x9857 0x9858 0x9859 0x985B 0x985C 0x985D 0x985E 0x985F 0x9860 0x9862 0x9863 0x9864 0x9865 0x9867 0x9869 0x986A 0x986B 0x986F 0x9870 0x9871 0x9872 0x9873 0x9874 0x98A8 0x98A9 0x98AC 0x98AD 0x98AE 0x98AF 0x98B1 0x98B2 0x98B3 0x98B6 0x98B8 0x98BA 0x98BB 0x98BC 0x98BD 0x98BE 0x98BF 0x98C0 0x98C1 0x98C2 0x98C4 0x98C6 0x98C9 0x98CB 0x98CC 0x98DB 0x98DF 0x98E2 0x98E3 0x98E5 0x98E7 0x98E9 0x98EA 0x98EB 0x98ED 0x98EF 0x98F2 0x98F4 0x98F6 0x98F9 0x98FA 0x98FC 0x98FD 0x98FE 0x9900 0x9902 0x9903 0x9905 0x9907 0x9908 0x9909 0x990A 0x990C 0x9910 0x9911 0x9912 0x9913 0x9914 0x9915 0x9916 0x9917 0x9918 0x991A 0x991B 0x991E 0x991F 0x9921 0x9924 0x9925 0x9927 0x9928 0x9929 0x992A 0x992B 0x992C 0x992D 0x992E 0x992F 0x9930 0x9931 0x9932 0x9933 0x9935 0x993A 0x993C 0x993D 0x993E 0x993F 0x9941 0x9943 0x9945 0x9947 0x9948 0x9949 0x994B 0x994C 0x994E 0x9950 0x9951 0x9952 0x9953 0x9954 0x9955 0x9956 0x9957 0x9958 0x9959 0x995B 0x995C 0x995E 0x995F 0x9961 0x9996 0x9997 0x9998 0x9999 0x999C 0x999D 0x999E 0x99A1 0x99A3 0x99A5 0x99A6 0x99A7 0x99A8 0x99AB 0x99AC 0x99AD 0x99AE 0x99AF 0x99B0 0x99B1 0x99B2 0x99B3 0x99B4 0x99B5 0x99B9 0x99BA 0x99BB 0x99BD 0x99C1 0x99C2 0x99C3 0x99C7 0x99C9 0x99CB 0x99CC 0x99CD 0x99CE 0x99CF 0x99D0 0x99D1 0x99D2 0x99D3 0x99D4 0x99D5 0x99D6 0x99D7 0x99D8 0x99D9 0x99DB 0x99DC 0x99DD 0x99DF 0x99E2 0x99E3 0x99E4 0x99E5 0x99E7 0x99E9 0x99EA 0x99EC 0x99ED 0x99EE 0x99F0 0x99F1 0x99F4 0x99F6 0x99F7 0x99F8 0x99F9 0x99FA 0x99FB 0x99FC 0x99FD 0x99FE 0x99FF 0x9A01 0x9A02 0x9A03 0x9A04 0x9A05 0x9A06 0x9A07 0x9A09 0x9A0A 0x9A0B 0x9A0D 0x9A0E 0x9A0F 0x9A11 0x9A14 0x9A15 0x9A16 0x9A19 0x9A1A 0x9A1B 0x9A1C 0x9A1D 0x9A1E 0x9A20 0x9A22 0x9A23 0x9A24 0x9A25 0x9A27 0x9A29 0x9A2A 0x9A2B 0x9A2C 0x9A2D 0x9A2E 0x9A30 0x9A31 0x9A32 0x9A34 0x9A35 0x9A36 0x9A37 0x9A38 0x9A39 0x9A3A 0x9A3D 0x9A3E 0x9A3F 0x9A40 0x9A41 0x9A42 0x9A43 0x9A44 0x9A45 0x9A46 0x9A48 0x9A49 0x9A4A 0x9A4C 0x9A4D 0x9A4E 0x9A4F 0x9A50 0x9A52 0x9A53 0x9A54 0x9A55 0x9A56 0x9A57 0x9A59 0x9A5A 0x9A5B 0x9A5E 0x9A5F 0x9A60 0x9A62 0x9A64 0x9A65 0x9A66 0x9A67 0x9A68 0x9A69 0x9A6A 0x9A6B 0x9AA8 0x9AAB 0x9AAD 0x9AAF 0x9AB0 0x9AB1 0x9AB3 0x9AB4 0x9AB7 0x9AB8 0x9AB9 0x9ABB 0x9ABC 0x9ABE 0x9ABF 0x9AC0 0x9AC1 0x9AC2 0x9AC6 0x9AC7 0x9ACA 0x9ACD 0x9ACF 0x9AD0 0x9AD1 0x9AD2 0x9AD3 0x9AD4 0x9AD5 0x9AD6 0x9AD8 0x9ADC 0x9ADF 0x9AE1 0x9AE3 0x9AE6 0x9AE7 0x9AEB 0x9AEC 0x9AED 0x9AEE 0x9AEF 0x9AF1 0x9AF2 0x9AF3 0x9AF6 0x9AF7 0x9AF9 0x9AFA 0x9AFB 0x9AFC 0x9AFD 0x9AFE 0x9B01 0x9B03 0x9B04 0x9B05 0x9B06 0x9B08 0x9B0A 0x9B0B 0x9B0C 0x9B0D 0x9B0E 0x9B10 0x9B11 0x9B12 0x9B15 0x9B16 0x9B17 0x9B18 0x9B19 0x9B1A 0x9B1E 0x9B1F 0x9B20 0x9B22 0x9B23 0x9B24 0x9B25 0x9B27 0x9B28 0x9B29 0x9B2B 0x9B2E 0x9B2F 0x9B31 0x9B32 0x9B33 0x9B35 0x9B37 0x9B3A 0x9B3B 0x9B3C 0x9B3E 0x9B3F 0x9B41 0x9B42 0x9B43 0x9B44 0x9B45 0x9B46 0x9B48 0x9B4A 0x9B4B 0x9B4C 0x9B4D 0x9B4E 0x9B4F 0x9B51 0x9B52 0x9B54 0x9B55 0x9B56 0x9B58 0x9B59 0x9B5A 0x9B5B 0x9B5F 0x9B60 0x9B61 0x9B64 0x9B66 0x9B67 0x9B68 0x9B6C 0x9B6F 0x9B70 0x9B71 0x9B74 0x9B75 0x9B76 0x9B77 0x9B7A 0x9B7B 0x9B7C 0x9B7D 0x9B7E 0x9B80 0x9B82 0x9B85 0x9B86 0x9B87 0x9B88 0x9B90 0x9B91 0x9B92 0x9B93 0x9B95 0x9B9A 0x9B9B 0x9B9E 0x9BA0 0x9BA1 0x9BA2 0x9BA4 0x9BA5 0x9BA6 0x9BA8 0x9BAA 0x9BAB 0x9BAD 0x9BAE 0x9BAF 0x9BB5 0x9BB6 0x9BB8 0x9BB9 0x9BBD 0x9BBF 0x9BC0 0x9BC1 0x9BC3 0x9BC4 0x9BC6 0x9BC7 0x9BC8 0x9BC9 0x9BCA 0x9BD3 0x9BD4 0x9BD5 0x9BD6 0x9BD7 0x9BD9 0x9BDA 0x9BDB 0x9BDC 0x9BDE 0x9BE0 0x9BE1 0x9BE2 0x9BE4 0x9BE5 0x9BE6 0x9BE7 0x9BE8 0x9BEA 0x9BEB 0x9BEC 0x9BF0 0x9BF7 0x9BF8 0x9BFD 0x9C05 0x9C06 0x9C07 0x9C08 0x9C09 0x9C0B 0x9C0D 0x9C0E 0x9C12 0x9C13 0x9C14 0x9C17 0x9C1C 0x9C1D 0x9C21 0x9C23 0x9C24 0x9C25 0x9C28 0x9C29 0x9C2B 0x9C2C 0x9C2D 0x9C31 0x9C32 0x9C33 0x9C34 0x9C36 0x9C37 0x9C39 0x9C3B 0x9C3C 0x9C3D 0x9C3E 0x9C3F 0x9C40 0x9C41 0x9C44 0x9C46 0x9C48 0x9C49 0x9C4A 0x9C4B 0x9C4C 0x9C4D 0x9C4E 0x9C50 0x9C52 0x9C54 0x9C55 0x9C56 0x9C57 0x9C58 0x9C59 0x9C5E 0x9C5F 0x9C60 0x9C62 0x9C63 0x9C66 0x9C67 0x9C68 0x9C6D 0x9C6E 0x9C71 0x9C73 0x9C74 0x9C75 0x9C77 0x9C78 0x9C79 0x9C7A 0x9CE5 0x9CE6 0x9CE7 0x9CE9 0x9CEA 0x9CED 0x9CF1 0x9CF2 0x9CF3 0x9CF4 0x9CF5 0x9CF6 0x9CF7 0x9CF9 0x9CFA 0x9CFB 0x9CFC 0x9CFD 0x9CFF 0x9D00 0x9D03 0x9D04 0x9D05 0x9D06 0x9D07 0x9D08 0x9D09 0x9D10 0x9D12 0x9D14 0x9D15 0x9D17 0x9D18 0x9D19 0x9D1B 0x9D1D 0x9D1E 0x9D1F 0x9D20 0x9D22 0x9D23 0x9D25 0x9D26 0x9D28 0x9D29 0x9D2D 0x9D2E 0x9D2F 0x9D30 0x9D31 0x9D33 0x9D36 0x9D37 0x9D38 0x9D3B 0x9D3D 0x9D3E 0x9D3F 0x9D40 0x9D41 0x9D42 0x9D43 0x9D45 0x9D4A 0x9D4B 0x9D4C 0x9D4F 0x9D51 0x9D52 0x9D53 0x9D54 0x9D56 0x9D57 0x9D58 0x9D59 0x9D5A 0x9D5B 0x9D5C 0x9D5D 0x9D5F 0x9D60 0x9D61 0x9D67 0x9D68 0x9D69 0x9D6A 0x9D6B 0x9D6C 0x9D6F 0x9D70 0x9D71 0x9D72 0x9D73 0x9D74 0x9D75 0x9D77 0x9D78 0x9D79 0x9D7B 0x9D7D 0x9D7F 0x9D80 0x9D81 0x9D82 0x9D84 0x9D85 0x9D86 0x9D87 0x9D88 0x9D89 0x9D8A 0x9D8B 0x9D8C 0x9D90 0x9D92 0x9D94 0x9D96 0x9D97 0x9D98 0x9D99 0x9D9A 0x9D9B 0x9D9C 0x9D9D 0x9D9E 0x9D9F 0x9DA0 0x9DA1 0x9DA2 0x9DA3 0x9DA4 0x9DA6 0x9DA7 0x9DA8 0x9DA9 0x9DAA 0x9DAC 0x9DAD 0x9DAF 0x9DB1 0x9DB2 0x9DB3 0x9DB4 0x9DB5 0x9DB6 0x9DB7 0x9DB8 0x9DB9 0x9DBA 0x9DBB 0x9DBC 0x9DBE 0x9DBF 0x9DC1 0x9DC2 0x9DC3 0x9DC5 0x9DC7 0x9DC8 0x9DCA 0x9DCB 0x9DCC 0x9DCD 0x9DCE 0x9DCF 0x9DD0 0x9DD1 0x9DD2 0x9DD3 0x9DD5 0x9DD6 0x9DD7 0x9DD8 0x9DD9 0x9DDA 0x9DDB 0x9DDC 0x9DDD 0x9DDE 0x9DDF 0x9DE1 0x9DE2 0x9DE3 0x9DE4 0x9DE5 0x9DE6 0x9DE8 0x9DE9 0x9DEB 0x9DEC 0x9DED 0x9DEE 0x9DEF 0x9DF0 0x9DF2 0x9DF3 0x9DF4 0x9DF5 0x9DF6 0x9DF7 0x9DF8 0x9DF9 0x9DFA 0x9DFB 0x9DFD 0x9DFE 0x9DFF 0x9E00 0x9E01 0x9E02 0x9E03 0x9E04 0x9E05 0x9E06 0x9E07 0x9E09 0x9E0B 0x9E0D 0x9E0F 0x9E10 0x9E11 0x9E12 0x9E13 0x9E14 0x9E15 0x9E17 0x9E19 0x9E1A 0x9E1B 0x9E1D 0x9E1E 0x9E75 0x9E79 0x9E7A 0x9E7C 0x9E7D 0x9E7F 0x9E80 0x9E82 0x9E83 0x9E86 0x9E87 0x9E88 0x9E89 0x9E8A 0x9E8B 0x9E8C 0x9E8D 0x9E8E 0x9E91 0x9E92 0x9E93 0x9E94 0x9E97 0x9E99 0x9E9A 0x9E9B 0x9E9C 0x9E9D 0x9E9F 0x9EA0 0x9EA1 0x9EA4 0x9EA5 0x9EA7 0x9EA9 0x9EAD 0x9EAE 0x9EB0 0x9EB4 0x9EB5 0x9EB6 0x9EB7 0x9EBB 0x9EBC 0x9EBE 0x9EC0 0x9EC2 0x9EC3 0x9EC8 0x9ECC 0x9ECD 0x9ECE 0x9ECF 0x9ED0 0x9ED1 0x9ED3 0x9ED4 0x9ED5 0x9ED6 0x9ED8 0x9EDA 0x9EDB 0x9EDC 0x9EDD 0x9EDE 0x9EDF 0x9EE0 0x9EE4 0x9EE5 0x9EE6 0x9EE7 0x9EE8 0x9EEB 0x9EED 0x9EEE 0x9EEF 0x9EF0 0x9EF2 0x9EF3 0x9EF4 0x9EF5 0x9EF6 0x9EF7 0x9EF9 0x9EFA 0x9EFB 0x9EFC 0x9EFD 0x9EFF 0x9F00 0x9F01 0x9F06 0x9F07 0x9F09 0x9F0A 0x9F0E 0x9F0F 0x9F10 0x9F12 0x9F13 0x9F15 0x9F16 0x9F18 0x9F19 0x9F1A 0x9F1B 0x9F1C 0x9F1E 0x9F20 0x9F22 0x9F23 0x9F24 0x9F25 0x9F28 0x9F29 0x9F2A 0x9F2B 0x9F2C 0x9F2D 0x9F2E 0x9F2F 0x9F30 0x9F31 0x9F32 0x9F33 0x9F34 0x9F35 0x9F36 0x9F37 0x9F38 0x9F3B 0x9F3D 0x9F3E 0x9F40 0x9F41 0x9F42 0x9F43 0x9F46 0x9F47 0x9F48 0x9F49 0x9F4A 0x9F4B 0x9F4C 0x9F4D 0x9F4E 0x9F4F 0x9F52 0x9F54 0x9F55 0x9F56 0x9F57 0x9F58 0x9F59 0x9F5B 0x9F5C 0x9F5D 0x9F5E 0x9F5F 0x9F60 0x9F61 0x9F63 0x9F64 0x9F65 0x9F66 0x9F67 0x9F6A 0x9F6B 0x9F6C 0x9F6E 0x9F6F 0x9F70 0x9F71 0x9F72 0x9F74 0x9F75 0x9F76 0x9F77 0x9F78 0x9F79 0x9F7A 0x9F7B 0x9F7E 0x9F8D 0x9F90 0x9F91 0x9F92 0x9F94 0x9F95 0x9F98 0x9F9C 0x9FA0 0x9FA2 0x9FA4 0xFA0C 0xFA0D fontconfig-2.11.1/fc-lang/sl.orth0000664000076400007640000000623312267155334013522 00000000000000# # fontconfig/fc-lang/sl.orth # # 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. # # Slovenian (SL) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a # # Included in eki.ee # #00C4 LATIN CAPITAL LETTER A WITH DIAERESIS #00D6 LATIN CAPITAL LETTER O WITH DIAERESIS #00DC LATIN CAPITAL LETTER U WITH DIAERESIS #00E4 LATIN SMALL LETTER A WITH DIAERESIS #00F6 LATIN SMALL LETTER O WITH DIAERESIS #00FC LATIN SMALL LETTER U WITH DIAERESIS 0106 LATIN CAPITAL LETTER C WITH ACUTE 0107 LATIN SMALL LETTER C WITH ACUTE 010C LATIN CAPITAL LETTER C WITH CARON 010D LATIN SMALL LETTER C WITH CARON 0110 LATIN CAPITAL LETTER D WITH STROKE 0111 LATIN SMALL LETTER D WITH STROKE 0160 LATIN CAPITAL LETTER S WITH CARON 0161 LATIN SMALL LETTER S WITH CARON 017D LATIN CAPITAL LETTER Z WITH CARON 017E LATIN SMALL LETTER Z WITH CARON # # According to evertype.com: # # In slovenian, these letters are often used to transliterate # Serbian and Macedonian letters # #01C5 LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON #01C6 LATIN SMALL LETTER DZ WITH CARON #01C8 LATIN CAPITAL LETTER L WITH SMALL LETTER J #01C9 LATIN SMALL LETTER LJ #01CB LATIN CAPITAL LETTER N WITH SMALL LETTER J #01CC LATIN SMALL LETTER NJ #01F2 LATIN CAPITAL LETTER D WITH SMALL LETTER Z #01F3 LATIN SMALL LETTER DZ #01F4 LATIN CAPITAL LETTER G WITH ACUTE #01F5 LATIN SMALL LETTER G WITH ACUTE #1E30 LATIN CAPITAL LETTER K WITH ACUTE #1E31 LATIN SMALL LETTER K WITH ACUTE # # These are the transliteration target letters which are # not used in Slovenian at all # #0402 CYRILLIC CAPITAL LETTER DJE (Serbocroatian) #0403 CYRILLIC CAPITAL LETTER GJE #0405 CYRILLIC CAPITAL LETTER DZE #0409 CYRILLIC CAPITAL LETTER LJE #040A CYRILLIC CAPITAL LETTER NJE #040B CYRILLIC CAPITAL LETTER TSHE (Serbocroatian) #040C CYRILLIC CAPITAL LETTER KJE #040F CYRILLIC CAPITAL LETTER DZHE #0452 CYRILLIC SMALL LETTER DJE (Serbocroatian) #0453 CYRILLIC SMALL LETTER GJE #0455 CYRILLIC SMALL LETTER DZE #0459 CYRILLIC SMALL LETTER LJE #045A CYRILLIC SMALL LETTER NJE #045B CYRILLIC SMALL LETTER TSHE (Serbocroatian) #045C CYRILLIC SMALL LETTER KJE #045F CYRILLIC SMALL LETTER DZHE fontconfig-2.11.1/fc-lang/wal.orth0000664000076400007640000000236712267155334013673 00000000000000# # fontconfig/fc-lang/wal.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Wolaitta/Wolaytta (wal) # # Copying Tigrinya of Ethiopia, as does glibc include ti_et.orth fontconfig-2.11.1/fc-lang/bh.orth0000664000076400007640000000230012267155334013464 00000000000000# # fontconfig/fc-lang/bh.orth # # 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. # # Bihari (Devanagari script) (BH) include hi.orth fontconfig-2.11.1/fc-lang/fy.orth0000664000076400007640000000305012267155334013514 00000000000000# # fontconfig/fc-lang/fy.orth # # 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. # # Frisian (FY) # # West Frisian orthography from # http://www.evertype.com/alphabets/west-frisian.pdf # # # Checked with orthography from eki.ee/letter which include # a few others (commented out here). # # Added in ß from German orthography # 0041-005a 0061-007a 00c2 00c4 00c9 00ca 00cb #00ce # eki.ee 00cf 00d4 00d6 00da 00db 00dc 00df 00e2 00e4 00e9 00ea 00eb #00ee # eki.ee 00ef 00f4 00f6 00fa 00fb 00fc fontconfig-2.11.1/fc-lang/ku_iq.orth0000664000076400007640000000242112267155334014207 00000000000000# # fontconfig/fc-lang/ku_iq.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Kurdish in Iraq (ku-IQ) # # Assuming Iraqi Kurdish uses the same orthography as Iranian Kurdish include ku_ir.orth fontconfig-2.11.1/fc-lang/sid.orth0000664000076400007640000000235412267155334013663 00000000000000# # fontconfig/fc-lang/sid.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Sidamo (sid) # # Copying Tigrinya of Ethiopia, as does glibc include ti_et.orth fontconfig-2.11.1/fc-lang/mi.orth0000664000076400007640000000246012267155334013507 00000000000000# # fontconfig/fc-lang/mi.orth # # 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. # # Maori (MI) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 0100-0101 0112-0113 012a-012b 014c-014d 016a-016b 1e34-1e35 # Ngai Tahu specific fontconfig-2.11.1/fc-lang/ku_ir.orth0000664000076400007640000000303212267155334014207 00000000000000# # fontconfig/fc-lang/ku_ir.orth # # 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. # # Kurdish in Iran (KU-IR) # # Data from Roozbeh Pournader # # Since the Unicode Presentation Forms don't contain some of the Kurdish # letters, we are going with the general forms instead of the Presentation # forms, unlike Arabic, Persian, or Urdu. # 0626-0628 062a 062c-062f 0631-0634 0639-063a 0641-0642 0644-0648 067e 0686 0692 0698 06a4 06a9 06af 06b5 06c6 06cc 06ce fontconfig-2.11.1/fc-lang/ig.orth0000664000076400007640000000237412267155334013505 00000000000000# # fontconfig/fc-lang/ig.orth # # 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. # # Igbo (ig) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 1eca 1ecb 1ecc 1ecd 1ee4 1ee5 fontconfig-2.11.1/fc-lang/nn.orth0000664000076400007640000000256412267155334013522 00000000000000# # fontconfig/fc-lang/nn.orth # # 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. # # Norwegian Nynorsk (NN) 0041-005a 0061-007a #00ab # double angle quotes #00bb # double angle quotes 00c0 00c4-00c6 00c9-00ca 00d2-00d4 00d6 00d8 00dc 00e0 00e4-00e6 00e9-00ea 00f2-00f4 00f6 00f8 00fc #2039-203a # single quotes fontconfig-2.11.1/fc-lang/kw.orth0000664000076400007640000000246212267155334013525 00000000000000# # fontconfig/fc-lang/kw.orth # # 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. # # Cornish (KW) # # Orthography from http://www.evertype.com/alphabets/cornish.pdf # 0041-005a 0061-007a 0100-0101 0112-0113 012a-012b 014c-014d 016a-016b 0232-0233 fontconfig-2.11.1/fc-lang/tk.orth0000664000076400007640000000267112267155334013524 00000000000000# # fontconfig/fc-lang/tk.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Turkmen (tk) # # Sources: # http://www.omniglot.com/writing/turkmen.htm # http://www.itscj.ipsj.or.jp/ISO-IR/230.pdf # http://www.eki.ee/wgrs/rom2_tk.htm # # C, Q, V, and X are not used 0041-005A 0061-007A 00C4 00C7 00D6 00DC-00DD 00E4 00E7 00F6 00FC-00FD 0147-0148 015E-015F 017D-017E fontconfig-2.11.1/fc-lang/ja.orth0000664000076400007640000030711312267155334013477 00000000000000# # fontconfig/fc-lang/ja.orth # # 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. # # Coverage from JIS X 0208 (1990) # 0x3000 # IDEOGRAPHIC SPACE 0x3001 # IDEOGRAPHIC COMMA 0x3002 # IDEOGRAPHIC FULL STOP 0x3005 # IDEOGRAPHIC ITERATION MARK 0x3006 # IDEOGRAPHIC CLOSING MARK 0x3007 # IDEOGRAPHIC NUMBER ZERO 0x3041 # HIRAGANA LETTER SMALL A 0x3042 # HIRAGANA LETTER A 0x3043 # HIRAGANA LETTER SMALL I 0x3044 # HIRAGANA LETTER I 0x3045 # HIRAGANA LETTER SMALL U 0x3046 # HIRAGANA LETTER U 0x3047 # HIRAGANA LETTER SMALL E 0x3048 # HIRAGANA LETTER E 0x3049 # HIRAGANA LETTER SMALL O 0x304A # HIRAGANA LETTER O 0x304B # HIRAGANA LETTER KA 0x304C # HIRAGANA LETTER GA 0x304D # HIRAGANA LETTER KI 0x304E # HIRAGANA LETTER GI 0x304F # HIRAGANA LETTER KU 0x3050 # HIRAGANA LETTER GU 0x3051 # HIRAGANA LETTER KE 0x3052 # HIRAGANA LETTER GE 0x3053 # HIRAGANA LETTER KO 0x3054 # HIRAGANA LETTER GO 0x3055 # HIRAGANA LETTER SA 0x3056 # HIRAGANA LETTER ZA 0x3057 # HIRAGANA LETTER SI 0x3058 # HIRAGANA LETTER ZI 0x3059 # HIRAGANA LETTER SU 0x305A # HIRAGANA LETTER ZU 0x305B # HIRAGANA LETTER SE 0x305C # HIRAGANA LETTER ZE 0x305D # HIRAGANA LETTER SO 0x305E # HIRAGANA LETTER ZO 0x305F # HIRAGANA LETTER TA 0x3060 # HIRAGANA LETTER DA 0x3061 # HIRAGANA LETTER TI 0x3062 # HIRAGANA LETTER DI 0x3063 # HIRAGANA LETTER SMALL TU 0x3064 # HIRAGANA LETTER TU 0x3065 # HIRAGANA LETTER DU 0x3066 # HIRAGANA LETTER TE 0x3067 # HIRAGANA LETTER DE 0x3068 # HIRAGANA LETTER TO 0x3069 # HIRAGANA LETTER DO 0x306A # HIRAGANA LETTER NA 0x306B # HIRAGANA LETTER NI 0x306C # HIRAGANA LETTER NU 0x306D # HIRAGANA LETTER NE 0x306E # HIRAGANA LETTER NO 0x306F # HIRAGANA LETTER HA 0x3070 # HIRAGANA LETTER BA 0x3071 # HIRAGANA LETTER PA 0x3072 # HIRAGANA LETTER HI 0x3073 # HIRAGANA LETTER BI 0x3074 # HIRAGANA LETTER PI 0x3075 # HIRAGANA LETTER HU 0x3076 # HIRAGANA LETTER BU 0x3077 # HIRAGANA LETTER PU 0x3078 # HIRAGANA LETTER HE 0x3079 # HIRAGANA LETTER BE 0x307A # HIRAGANA LETTER PE 0x307B # HIRAGANA LETTER HO 0x307C # HIRAGANA LETTER BO 0x307D # HIRAGANA LETTER PO 0x307E # HIRAGANA LETTER MA 0x307F # HIRAGANA LETTER MI 0x3080 # HIRAGANA LETTER MU 0x3081 # HIRAGANA LETTER ME 0x3082 # HIRAGANA LETTER MO 0x3083 # HIRAGANA LETTER SMALL YA 0x3084 # HIRAGANA LETTER YA 0x3085 # HIRAGANA LETTER SMALL YU 0x3086 # HIRAGANA LETTER YU 0x3087 # HIRAGANA LETTER SMALL YO 0x3088 # HIRAGANA LETTER YO 0x3089 # HIRAGANA LETTER RA 0x308A # HIRAGANA LETTER RI 0x308B # HIRAGANA LETTER RU 0x308C # HIRAGANA LETTER RE 0x308D # HIRAGANA LETTER RO 0x308E # HIRAGANA LETTER SMALL WA 0x308F # HIRAGANA LETTER WA 0x3090 # HIRAGANA LETTER WI 0x3091 # HIRAGANA LETTER WE 0x3092 # HIRAGANA LETTER WO 0x3093 # HIRAGANA LETTER N 0x309B # KATAKANA-HIRAGANA VOICED SOUND MARK 0x309C # KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK 0x309D # HIRAGANA ITERATION MARK 0x309E # HIRAGANA VOICED ITERATION MARK 0x30A1 # KATAKANA LETTER SMALL A 0x30A2 # KATAKANA LETTER A 0x30A3 # KATAKANA LETTER SMALL I 0x30A4 # KATAKANA LETTER I 0x30A5 # KATAKANA LETTER SMALL U 0x30A6 # KATAKANA LETTER U 0x30A7 # KATAKANA LETTER SMALL E 0x30A8 # KATAKANA LETTER E 0x30A9 # KATAKANA LETTER SMALL O 0x30AA # KATAKANA LETTER O 0x30AB # KATAKANA LETTER KA 0x30AC # KATAKANA LETTER GA 0x30AD # KATAKANA LETTER KI 0x30AE # KATAKANA LETTER GI 0x30AF # KATAKANA LETTER KU 0x30B0 # KATAKANA LETTER GU 0x30B1 # KATAKANA LETTER KE 0x30B2 # KATAKANA LETTER GE 0x30B3 # KATAKANA LETTER KO 0x30B4 # KATAKANA LETTER GO 0x30B5 # KATAKANA LETTER SA 0x30B6 # KATAKANA LETTER ZA 0x30B7 # KATAKANA LETTER SI 0x30B8 # KATAKANA LETTER ZI 0x30B9 # KATAKANA LETTER SU 0x30BA # KATAKANA LETTER ZU 0x30BB # KATAKANA LETTER SE 0x30BC # KATAKANA LETTER ZE 0x30BD # KATAKANA LETTER SO 0x30BE # KATAKANA LETTER ZO 0x30BF # KATAKANA LETTER TA 0x30C0 # KATAKANA LETTER DA 0x30C1 # KATAKANA LETTER TI 0x30C2 # KATAKANA LETTER DI 0x30C3 # KATAKANA LETTER SMALL TU 0x30C4 # KATAKANA LETTER TU 0x30C5 # KATAKANA LETTER DU 0x30C6 # KATAKANA LETTER TE 0x30C7 # KATAKANA LETTER DE 0x30C8 # KATAKANA LETTER TO 0x30C9 # KATAKANA LETTER DO 0x30CA # KATAKANA LETTER NA 0x30CB # KATAKANA LETTER NI 0x30CC # KATAKANA LETTER NU 0x30CD # KATAKANA LETTER NE 0x30CE # KATAKANA LETTER NO 0x30CF # KATAKANA LETTER HA 0x30D0 # KATAKANA LETTER BA 0x30D1 # KATAKANA LETTER PA 0x30D2 # KATAKANA LETTER HI 0x30D3 # KATAKANA LETTER BI 0x30D4 # KATAKANA LETTER PI 0x30D5 # KATAKANA LETTER HU 0x30D6 # KATAKANA LETTER BU 0x30D7 # KATAKANA LETTER PU 0x30D8 # KATAKANA LETTER HE 0x30D9 # KATAKANA LETTER BE 0x30DA # KATAKANA LETTER PE 0x30DB # KATAKANA LETTER HO 0x30DC # KATAKANA LETTER BO 0x30DD # KATAKANA LETTER PO 0x30DE # KATAKANA LETTER MA 0x30DF # KATAKANA LETTER MI 0x30E0 # KATAKANA LETTER MU 0x30E1 # KATAKANA LETTER ME 0x30E2 # KATAKANA LETTER MO 0x30E3 # KATAKANA LETTER SMALL YA 0x30E4 # KATAKANA LETTER YA 0x30E5 # KATAKANA LETTER SMALL YU 0x30E6 # KATAKANA LETTER YU 0x30E7 # KATAKANA LETTER SMALL YO 0x30E8 # KATAKANA LETTER YO 0x30E9 # KATAKANA LETTER RA 0x30EA # KATAKANA LETTER RI 0x30EB # KATAKANA LETTER RU 0x30EC # KATAKANA LETTER RE 0x30ED # KATAKANA LETTER RO 0x30EE # KATAKANA LETTER SMALL WA 0x30EF # KATAKANA LETTER WA 0x30F0 # KATAKANA LETTER WI 0x30F1 # KATAKANA LETTER WE 0x30F2 # KATAKANA LETTER WO 0x30F3 # KATAKANA LETTER N 0x30F4 # KATAKANA LETTER VU 0x30F5 # KATAKANA LETTER SMALL KA 0x30F6 # KATAKANA LETTER SMALL KE 0x30FB # KATAKANA MIDDLE DOT 0x30FC # KATAKANA-HIRAGANA PROLONGED SOUND MARK 0x30FD # KATAKANA ITERATION MARK 0x30FE # KATAKANA VOICED ITERATION MARK 0x4E00 # 0x4E01 # 0x4E03 # 0x4E07 # 0x4E08 # 0x4E09 # 0x4E0A # 0x4E0B # 0x4E0D # 0x4E0E # 0x4E10 # 0x4E11 # 0x4E14 # 0x4E15 # 0x4E16 # 0x4E17 # 0x4E18 # 0x4E19 # 0x4E1E # 0x4E21 # 0x4E26 # 0x4E2A # 0x4E2D # 0x4E31 # 0x4E32 # 0x4E36 # 0x4E38 # 0x4E39 # 0x4E3B # 0x4E3C # 0x4E3F # 0x4E42 # 0x4E43 # 0x4E45 # 0x4E4B # 0x4E4D # 0x4E4E # 0x4E4F # 0x4E55 # 0x4E56 # 0x4E57 # 0x4E58 # 0x4E59 # 0x4E5D # 0x4E5E # 0x4E5F # 0x4E62 # 0x4E71 # 0x4E73 # 0x4E7E # 0x4E80 # 0x4E82 # 0x4E85 # 0x4E86 # 0x4E88 # 0x4E89 # 0x4E8A # 0x4E8B # 0x4E8C # 0x4E8E # 0x4E91 # 0x4E92 # 0x4E94 # 0x4E95 # 0x4E98 # 0x4E99 # 0x4E9B # 0x4E9C # 0x4E9E # 0x4E9F # 0x4EA0 # 0x4EA1 # 0x4EA2 # 0x4EA4 # 0x4EA5 # 0x4EA6 # 0x4EA8 # 0x4EAB # 0x4EAC # 0x4EAD # 0x4EAE # 0x4EB0 # 0x4EB3 # 0x4EB6 # 0x4EBA # 0x4EC0 # 0x4EC1 # 0x4EC2 # 0x4EC4 # 0x4EC6 # 0x4EC7 # 0x4ECA # 0x4ECB # 0x4ECD # 0x4ECE # 0x4ECF # 0x4ED4 # 0x4ED5 # 0x4ED6 # 0x4ED7 # 0x4ED8 # 0x4ED9 # 0x4EDD # 0x4EDE # 0x4EDF # 0x4EE3 # 0x4EE4 # 0x4EE5 # 0x4EED # 0x4EEE # 0x4EF0 # 0x4EF2 # 0x4EF6 # 0x4EF7 # 0x4EFB # 0x4F01 # 0x4F09 # 0x4F0A # 0x4F0D # 0x4F0E # 0x4F0F # 0x4F10 # 0x4F11 # 0x4F1A # 0x4F1C # 0x4F1D # 0x4F2F # 0x4F30 # 0x4F34 # 0x4F36 # 0x4F38 # 0x4F3A # 0x4F3C # 0x4F3D # 0x4F43 # 0x4F46 # 0x4F47 # 0x4F4D # 0x4F4E # 0x4F4F # 0x4F50 # 0x4F51 # 0x4F53 # 0x4F55 # 0x4F57 # 0x4F59 # 0x4F5A # 0x4F5B # 0x4F5C # 0x4F5D # 0x4F5E # 0x4F69 # 0x4F6F # 0x4F70 # 0x4F73 # 0x4F75 # 0x4F76 # 0x4F7B # 0x4F7C # 0x4F7F # 0x4F83 # 0x4F86 # 0x4F88 # 0x4F8B # 0x4F8D # 0x4F8F # 0x4F91 # 0x4F96 # 0x4F98 # 0x4F9B # 0x4F9D # 0x4FA0 # 0x4FA1 # 0x4FAB # 0x4FAD # 0x4FAE # 0x4FAF # 0x4FB5 # 0x4FB6 # 0x4FBF # 0x4FC2 # 0x4FC3 # 0x4FC4 # 0x4FCA # 0x4FCE # 0x4FD0 # 0x4FD1 # 0x4FD4 # 0x4FD7 # 0x4FD8 # 0x4FDA # 0x4FDB # 0x4FDD # 0x4FDF # 0x4FE1 # 0x4FE3 # 0x4FE4 # 0x4FE5 # 0x4FEE # 0x4FEF # 0x4FF3 # 0x4FF5 # 0x4FF6 # 0x4FF8 # 0x4FFA # 0x4FFE # 0x5005 # 0x5006 # 0x5009 # 0x500B # 0x500D # 0x500F # 0x5011 # 0x5012 # 0x5014 # 0x5016 # 0x5019 # 0x501A # 0x501F # 0x5021 # 0x5023 # 0x5024 # 0x5025 # 0x5026 # 0x5028 # 0x5029 # 0x502A # 0x502B # 0x502C # 0x502D # 0x5036 # 0x5039 # 0x5043 # 0x5047 # 0x5048 # 0x5049 # 0x504F # 0x5050 # 0x5055 # 0x5056 # 0x505A # 0x505C # 0x5065 # 0x506C # 0x5072 # 0x5074 # 0x5075 # 0x5076 # 0x5078 # 0x507D # 0x5080 # 0x5085 # 0x508D # 0x5091 # 0x5098 # 0x5099 # 0x509A # 0x50AC # 0x50AD # 0x50B2 # 0x50B3 # 0x50B4 # 0x50B5 # 0x50B7 # 0x50BE # 0x50C2 # 0x50C5 # 0x50C9 # 0x50CA # 0x50CD # 0x50CF # 0x50D1 # 0x50D5 # 0x50D6 # 0x50DA # 0x50DE # 0x50E3 # 0x50E5 # 0x50E7 # 0x50ED # 0x50EE # 0x50F5 # 0x50F9 # 0x50FB # 0x5100 # 0x5101 # 0x5102 # 0x5104 # 0x5109 # 0x5112 # 0x5114 # 0x5115 # 0x5116 # 0x5118 # 0x511A # 0x511F # 0x5121 # 0x512A # 0x5132 # 0x5137 # 0x513A # 0x513B # 0x513C # 0x513F # 0x5140 # 0x5141 # 0x5143 # 0x5144 # 0x5145 # 0x5146 # 0x5147 # 0x5148 # 0x5149 # 0x514B # 0x514C # 0x514D # 0x514E # 0x5150 # 0x5152 # 0x5154 # 0x515A # 0x515C # 0x5162 # 0x5165 # 0x5168 # 0x5169 # 0x516A # 0x516B # 0x516C # 0x516D # 0x516E # 0x5171 # 0x5175 # 0x5176 # 0x5177 # 0x5178 # 0x517C # 0x5180 # 0x5182 # 0x5185 # 0x5186 # 0x5189 # 0x518A # 0x518C # 0x518D # 0x518F # 0x5190 # 0x5191 # 0x5192 # 0x5193 # 0x5195 # 0x5196 # 0x5197 # 0x5199 # 0x51A0 # 0x51A2 # 0x51A4 # 0x51A5 # 0x51A6 # 0x51A8 # 0x51A9 # 0x51AA # 0x51AB # 0x51AC # 0x51B0 # 0x51B1 # 0x51B2 # 0x51B3 # 0x51B4 # 0x51B5 # 0x51B6 # 0x51B7 # 0x51BD # 0x51C4 # 0x51C5 # 0x51C6 # 0x51C9 # 0x51CB # 0x51CC # 0x51CD # 0x51D6 # 0x51DB # #0x51DC # # not in kochi fonts 0x51DD # 0x51E0 # 0x51E1 # 0x51E6 # 0x51E7 # 0x51E9 # 0x51EA # 0x51ED # 0x51F0 # 0x51F1 # 0x51F5 # 0x51F6 # 0x51F8 # 0x51F9 # 0x51FA # 0x51FD # 0x51FE # 0x5200 # 0x5203 # 0x5204 # 0x5206 # 0x5207 # 0x5208 # 0x520A # 0x520B # 0x520E # 0x5211 # 0x5214 # 0x5217 # 0x521D # 0x5224 # 0x5225 # 0x5227 # 0x5229 # 0x522A # 0x522E # 0x5230 # 0x5233 # 0x5236 # 0x5237 # 0x5238 # 0x5239 # 0x523A # 0x523B # 0x5243 # 0x5244 # 0x5247 # 0x524A # 0x524B # 0x524C # 0x524D # 0x524F # 0x5254 # 0x5256 # 0x525B # 0x525E # 0x5263 # 0x5264 # 0x5265 # 0x5269 # 0x526A # 0x526F # 0x5270 # 0x5271 # 0x5272 # 0x5273 # 0x5274 # 0x5275 # 0x527D # 0x527F # 0x5283 # 0x5287 # 0x5288 # 0x5289 # 0x528D # 0x5291 # 0x5292 # 0x5294 # 0x529B # 0x529F # 0x52A0 # 0x52A3 # 0x52A9 # 0x52AA # 0x52AB # 0x52AC # 0x52AD # 0x52B1 # 0x52B4 # 0x52B5 # 0x52B9 # 0x52BC # 0x52BE # 0x52C1 # 0x52C3 # 0x52C5 # 0x52C7 # 0x52C9 # 0x52CD # 0x52D2 # 0x52D5 # 0x52D7 # 0x52D8 # 0x52D9 # 0x52DD # 0x52DE # 0x52DF # 0x52E0 # 0x52E2 # 0x52E3 # 0x52E4 # 0x52E6 # 0x52E7 # 0x52F2 # 0x52F3 # 0x52F5 # 0x52F8 # 0x52F9 # 0x52FA # 0x52FE # 0x52FF # 0x5301 # 0x5302 # 0x5305 # 0x5306 # 0x5308 # 0x530D # 0x530F # 0x5310 # 0x5315 # 0x5316 # 0x5317 # 0x5319 # 0x531A # 0x531D # 0x5320 # 0x5321 # 0x5323 # 0x532A # 0x532F # 0x5331 # 0x5333 # 0x5338 # 0x5339 # 0x533A # 0x533B # 0x533F # 0x5340 # 0x5341 # 0x5343 # 0x5345 # 0x5346 # 0x5347 # 0x5348 # 0x5349 # 0x534A # 0x534D # 0x5351 # 0x5352 # 0x5353 # 0x5354 # 0x5357 # 0x5358 # 0x535A # 0x535C # 0x535E # 0x5360 # 0x5366 # 0x5369 # 0x536E # 0x536F # 0x5370 # 0x5371 # 0x5373 # 0x5374 # 0x5375 # 0x5377 # 0x5378 # 0x537B # 0x537F # 0x5382 # 0x5384 # 0x5396 # 0x5398 # 0x539A # 0x539F # 0x53A0 # 0x53A5 # 0x53A6 # 0x53A8 # 0x53A9 # 0x53AD # 0x53AE # 0x53B0 # 0x53B3 # 0x53B6 # 0x53BB # 0x53C2 # 0x53C3 # 0x53C8 # 0x53C9 # 0x53CA # 0x53CB # 0x53CC # 0x53CD # 0x53CE # 0x53D4 # 0x53D6 # 0x53D7 # 0x53D9 # 0x53DB # 0x53DF # 0x53E1 # 0x53E2 # 0x53E3 # 0x53E4 # 0x53E5 # 0x53E8 # 0x53E9 # 0x53EA # 0x53EB # 0x53EC # 0x53ED # 0x53EE # 0x53EF # 0x53F0 # 0x53F1 # 0x53F2 # 0x53F3 # 0x53F6 # 0x53F7 # 0x53F8 # 0x53FA # 0x5401 # 0x5403 # 0x5404 # 0x5408 # 0x5409 # 0x540A # 0x540B # 0x540C # 0x540D # 0x540E # 0x540F # 0x5410 # 0x5411 # 0x541B # 0x541D # 0x541F # 0x5420 # 0x5426 # 0x5429 # 0x542B # 0x542C # 0x542D # 0x542E # 0x5436 # 0x5438 # 0x5439 # 0x543B # 0x543C # 0x543D # 0x543E # 0x5440 # 0x5442 # 0x5446 # 0x5448 # 0x5449 # 0x544A # 0x544E # 0x5451 # 0x545F # 0x5468 # 0x546A # 0x5470 # 0x5471 # 0x5473 # 0x5475 # 0x5476 # 0x5477 # 0x547B # 0x547C # 0x547D # 0x5480 # 0x5484 # 0x5486 # 0x548B # 0x548C # 0x548E # 0x548F # 0x5490 # 0x5492 # 0x54A2 # 0x54A4 # 0x54A5 # 0x54A8 # 0x54AB # 0x54AC # 0x54AF # 0x54B2 # 0x54B3 # 0x54B8 # 0x54BC # 0x54BD # 0x54BE # 0x54C0 # 0x54C1 # 0x54C2 # 0x54C4 # 0x54C7 # 0x54C8 # 0x54C9 # 0x54D8 # 0x54E1 # 0x54E2 # 0x54E5 # 0x54E6 # 0x54E8 # 0x54E9 # 0x54ED # 0x54EE # 0x54F2 # 0x54FA # 0x54FD # 0x5504 # 0x5506 # 0x5507 # 0x550F # 0x5510 # 0x5514 # 0x5516 # 0x552E # 0x552F # 0x5531 # 0x5533 # 0x5538 # 0x5539 # 0x553E # 0x5540 # 0x5544 # 0x5545 # 0x5546 # 0x554C # 0x554F # 0x5553 # 0x5556 # 0x5557 # 0x555C # 0x555D # 0x5563 # 0x557B # 0x557C # 0x557E # 0x5580 # 0x5583 # 0x5584 # 0x5587 # 0x5589 # 0x558A # 0x558B # 0x5598 # 0x5599 # 0x559A # 0x559C # 0x559D # 0x559E # 0x559F # 0x55A7 # 0x55A8 # 0x55A9 # 0x55AA # 0x55AB # 0x55AC # 0x55AE # 0x55B0 # 0x55B6 # 0x55C4 # 0x55C5 # 0x55C7 # 0x55D4 # 0x55DA # 0x55DC # 0x55DF # 0x55E3 # 0x55E4 # 0x55F7 # 0x55F9 # 0x55FD # 0x55FE # 0x5606 # 0x5609 # 0x5614 # 0x5616 # 0x5617 # 0x5618 # 0x561B # 0x5629 # 0x562F # 0x5631 # 0x5632 # 0x5634 # 0x5636 # 0x5638 # 0x5642 # 0x564C # 0x564E # 0x5650 # 0x565B # 0x5664 # 0x5668 # 0x566A # 0x566B # 0x566C # 0x5674 # 0x5678 # 0x567A # 0x5680 # 0x5686 # 0x5687 # 0x568A # 0x568F # 0x5694 # 0x56A0 # 0x56A2 # 0x56A5 # 0x56AE # 0x56B4 # 0x56B6 # 0x56BC # 0x56C0 # 0x56C1 # 0x56C2 # 0x56C3 # 0x56C8 # 0x56CE # 0x56D1 # 0x56D3 # 0x56D7 # 0x56D8 # 0x56DA # 0x56DB # 0x56DE # 0x56E0 # 0x56E3 # 0x56EE # 0x56F0 # 0x56F2 # 0x56F3 # 0x56F9 # 0x56FA # 0x56FD # 0x56FF # 0x5700 # 0x5703 # 0x5704 # 0x5708 # 0x5709 # 0x570B # 0x570D # 0x570F # 0x5712 # 0x5713 # 0x5716 # 0x5718 # 0x571C # 0x571F # 0x5726 # 0x5727 # 0x5728 # 0x572D # 0x5730 # 0x5737 # 0x5738 # 0x573B # 0x5740 # 0x5742 # 0x5747 # 0x574A # 0x574E # 0x574F # 0x5750 # 0x5751 # 0x5761 # 0x5764 # 0x5766 # 0x5769 # 0x576A # 0x577F # 0x5782 # 0x5788 # 0x5789 # 0x578B # 0x5793 # 0x57A0 # 0x57A2 # 0x57A3 # 0x57A4 # 0x57AA # 0x57B0 # 0x57B3 # 0x57C0 # 0x57C3 # 0x57C6 # 0x57CB # 0x57CE # 0x57D2 # 0x57D3 # 0x57D4 # 0x57D6 # 0x57DC # 0x57DF # 0x57E0 # 0x57E3 # 0x57F4 # 0x57F7 # 0x57F9 # 0x57FA # 0x57FC # 0x5800 # 0x5802 # 0x5805 # 0x5806 # 0x580A # 0x580B # 0x5815 # 0x5819 # 0x581D # 0x5821 # 0x5824 # 0x582A # 0x582F # 0x5830 # 0x5831 # 0x5834 # 0x5835 # 0x583A # 0x583D # 0x5840 # 0x5841 # 0x584A # 0x584B # 0x5851 # 0x5852 # 0x5854 # 0x5857 # 0x5858 # 0x5859 # 0x585A # 0x585E # 0x5862 # 0x5869 # 0x586B # 0x5870 # 0x5872 # 0x5875 # 0x5879 # 0x587E # 0x5883 # 0x5885 # 0x5893 # 0x5897 # 0x589C # 0x589F # 0x58A8 # 0x58AB # 0x58AE # 0x58B3 # 0x58B8 # 0x58B9 # 0x58BA # 0x58BB # 0x58BE # 0x58C1 # 0x58C5 # 0x58C7 # 0x58CA # 0x58CC # 0x58D1 # 0x58D3 # 0x58D5 # 0x58D7 # 0x58D8 # 0x58D9 # 0x58DC # 0x58DE # 0x58DF # 0x58E4 # 0x58E5 # 0x58EB # 0x58EC # 0x58EE # 0x58EF # 0x58F0 # 0x58F1 # 0x58F2 # 0x58F7 # 0x58F9 # 0x58FA # 0x58FB # 0x58FC # 0x58FD # 0x5902 # 0x5909 # 0x590A # 0x590F # 0x5910 # 0x5915 # 0x5916 # 0x5918 # 0x5919 # 0x591A # 0x591B # 0x591C # 0x5922 # 0x5925 # 0x5927 # 0x5929 # 0x592A # 0x592B # 0x592C # 0x592D # 0x592E # 0x5931 # 0x5932 # 0x5937 # 0x5938 # 0x593E # 0x5944 # 0x5947 # 0x5948 # 0x5949 # 0x594E # 0x594F # 0x5950 # 0x5951 # 0x5954 # 0x5955 # 0x5957 # 0x5958 # 0x595A # 0x5960 # 0x5962 # 0x5965 # 0x5967 # 0x5968 # 0x5969 # 0x596A # 0x596C # 0x596E # 0x5973 # 0x5974 # 0x5978 # 0x597D # 0x5981 # 0x5982 # 0x5983 # 0x5984 # 0x598A # 0x598D # 0x5993 # 0x5996 # 0x5999 # 0x599B # 0x599D # 0x59A3 # 0x59A5 # 0x59A8 # 0x59AC # 0x59B2 # 0x59B9 # 0x59BB # 0x59BE # 0x59C6 # 0x59C9 # 0x59CB # 0x59D0 # 0x59D1 # 0x59D3 # 0x59D4 # 0x59D9 # 0x59DA # 0x59DC # 0x59E5 # 0x59E6 # 0x59E8 # 0x59EA # 0x59EB # 0x59F6 # 0x59FB # 0x59FF # 0x5A01 # 0x5A03 # 0x5A09 # 0x5A11 # 0x5A18 # 0x5A1A # 0x5A1C # 0x5A1F # 0x5A20 # 0x5A25 # 0x5A29 # 0x5A2F # 0x5A35 # 0x5A36 # 0x5A3C # 0x5A40 # 0x5A41 # 0x5A46 # 0x5A49 # 0x5A5A # 0x5A62 # 0x5A66 # 0x5A6A # 0x5A6C # 0x5A7F # 0x5A92 # 0x5A9A # 0x5A9B # 0x5ABC # 0x5ABD # 0x5ABE # 0x5AC1 # 0x5AC2 # 0x5AC9 # 0x5ACB # 0x5ACC # 0x5AD0 # 0x5AD6 # 0x5AD7 # 0x5AE1 # 0x5AE3 # 0x5AE6 # 0x5AE9 # 0x5AFA # 0x5AFB # 0x5B09 # 0x5B0B # 0x5B0C # 0x5B16 # 0x5B22 # 0x5B2A # 0x5B2C # 0x5B30 # 0x5B32 # 0x5B36 # 0x5B3E # 0x5B40 # 0x5B43 # 0x5B45 # 0x5B50 # 0x5B51 # 0x5B54 # 0x5B55 # 0x5B57 # 0x5B58 # 0x5B5A # 0x5B5B # 0x5B5C # 0x5B5D # 0x5B5F # 0x5B63 # 0x5B64 # 0x5B65 # 0x5B66 # 0x5B69 # 0x5B6B # 0x5B70 # 0x5B71 # 0x5B73 # 0x5B75 # 0x5B78 # 0x5B7A # 0x5B80 # 0x5B83 # 0x5B85 # 0x5B87 # 0x5B88 # 0x5B89 # 0x5B8B # 0x5B8C # 0x5B8D # 0x5B8F # 0x5B95 # 0x5B97 # 0x5B98 # 0x5B99 # 0x5B9A # 0x5B9B # 0x5B9C # 0x5B9D # 0x5B9F # 0x5BA2 # 0x5BA3 # 0x5BA4 # 0x5BA5 # 0x5BA6 # 0x5BAE # 0x5BB0 # 0x5BB3 # 0x5BB4 # 0x5BB5 # 0x5BB6 # 0x5BB8 # 0x5BB9 # 0x5BBF # 0x5BC2 # 0x5BC3 # 0x5BC4 # 0x5BC5 # 0x5BC6 # 0x5BC7 # 0x5BC9 # 0x5BCC # 0x5BD0 # 0x5BD2 # 0x5BD3 # 0x5BD4 # 0x5BDB # 0x5BDD # 0x5BDE # 0x5BDF # 0x5BE1 # 0x5BE2 # 0x5BE4 # 0x5BE5 # 0x5BE6 # 0x5BE7 # 0x5BE8 # 0x5BE9 # 0x5BEB # 0x5BEE # 0x5BF0 # 0x5BF3 # 0x5BF5 # 0x5BF6 # 0x5BF8 # 0x5BFA # 0x5BFE # 0x5BFF # 0x5C01 # 0x5C02 # 0x5C04 # 0x5C05 # 0x5C06 # 0x5C07 # 0x5C08 # 0x5C09 # 0x5C0A # 0x5C0B # 0x5C0D # 0x5C0E # 0x5C0F # 0x5C11 # 0x5C13 # 0x5C16 # 0x5C1A # 0x5C20 # 0x5C22 # 0x5C24 # 0x5C28 # 0x5C2D # 0x5C31 # 0x5C38 # 0x5C39 # 0x5C3A # 0x5C3B # 0x5C3C # 0x5C3D # 0x5C3E # 0x5C3F # 0x5C40 # 0x5C41 # 0x5C45 # 0x5C46 # 0x5C48 # 0x5C4A # 0x5C4B # 0x5C4D # 0x5C4E # 0x5C4F # 0x5C50 # 0x5C51 # 0x5C53 # 0x5C55 # 0x5C5E # 0x5C60 # 0x5C61 # 0x5C64 # 0x5C65 # 0x5C6C # 0x5C6E # 0x5C6F # 0x5C71 # 0x5C76 # 0x5C79 # 0x5C8C # 0x5C90 # 0x5C91 # 0x5C94 # 0x5CA1 # 0x5CA8 # 0x5CA9 # 0x5CAB # 0x5CAC # 0x5CB1 # 0x5CB3 # 0x5CB6 # 0x5CB7 # 0x5CB8 # 0x5CBB # 0x5CBC # 0x5CBE # 0x5CC5 # 0x5CC7 # 0x5CD9 # 0x5CE0 # 0x5CE1 # 0x5CE8 # 0x5CE9 # 0x5CEA # 0x5CED # 0x5CEF # 0x5CF0 # 0x5CF6 # 0x5CFA # 0x5CFB # 0x5CFD # 0x5D07 # 0x5D0B # 0x5D0E # 0x5D11 # 0x5D14 # 0x5D15 # 0x5D16 # 0x5D17 # 0x5D18 # 0x5D19 # 0x5D1A # 0x5D1B # 0x5D1F # 0x5D22 # 0x5D29 # 0x5D4B # 0x5D4C # 0x5D4E # 0x5D50 # 0x5D52 # 0x5D5C # 0x5D69 # 0x5D6C # 0x5D6F # 0x5D73 # 0x5D76 # 0x5D82 # 0x5D84 # 0x5D87 # 0x5D8B # 0x5D8C # 0x5D90 # 0x5D9D # 0x5DA2 # 0x5DAC # 0x5DAE # 0x5DB7 # 0x5DBA # 0x5DBC # 0x5DBD # 0x5DC9 # 0x5DCC # 0x5DCD # 0x5DD2 # 0x5DD3 # 0x5DD6 # 0x5DDB # 0x5DDD # 0x5DDE # 0x5DE1 # 0x5DE3 # 0x5DE5 # 0x5DE6 # 0x5DE7 # 0x5DE8 # 0x5DEB # 0x5DEE # 0x5DF1 # 0x5DF2 # 0x5DF3 # 0x5DF4 # 0x5DF5 # 0x5DF7 # 0x5DFB # 0x5DFD # 0x5DFE # 0x5E02 # 0x5E03 # 0x5E06 # 0x5E0B # 0x5E0C # 0x5E11 # 0x5E16 # 0x5E19 # 0x5E1A # 0x5E1B # 0x5E1D # 0x5E25 # 0x5E2B # 0x5E2D # 0x5E2F # 0x5E30 # 0x5E33 # 0x5E36 # 0x5E37 # 0x5E38 # 0x5E3D # 0x5E40 # 0x5E43 # 0x5E44 # 0x5E45 # 0x5E47 # 0x5E4C # 0x5E4E # 0x5E54 # 0x5E55 # 0x5E57 # 0x5E5F # 0x5E61 # 0x5E62 # 0x5E63 # 0x5E64 # 0x5E72 # 0x5E73 # 0x5E74 # 0x5E75 # 0x5E76 # 0x5E78 # 0x5E79 # 0x5E7A # 0x5E7B # 0x5E7C # 0x5E7D # 0x5E7E # 0x5E7F # 0x5E81 # 0x5E83 # 0x5E84 # 0x5E87 # 0x5E8A # 0x5E8F # 0x5E95 # 0x5E96 # 0x5E97 # 0x5E9A # 0x5E9C # 0x5EA0 # 0x5EA6 # 0x5EA7 # 0x5EAB # 0x5EAD # 0x5EB5 # 0x5EB6 # 0x5EB7 # 0x5EB8 # 0x5EC1 # 0x5EC2 # 0x5EC3 # 0x5EC8 # 0x5EC9 # 0x5ECA # 0x5ECF # 0x5ED0 # 0x5ED3 # 0x5ED6 # 0x5EDA # 0x5EDB # 0x5EDD # 0x5EDF # 0x5EE0 # 0x5EE1 # 0x5EE2 # 0x5EE3 # 0x5EE8 # 0x5EE9 # 0x5EEC # 0x5EF0 # 0x5EF1 # 0x5EF3 # 0x5EF4 # 0x5EF6 # 0x5EF7 # 0x5EF8 # 0x5EFA # 0x5EFB # 0x5EFC # 0x5EFE # 0x5EFF # 0x5F01 # 0x5F03 # 0x5F04 # 0x5F09 # 0x5F0A # 0x5F0B # 0x5F0C # 0x5F0D # 0x5F0F # 0x5F10 # 0x5F11 # 0x5F13 # 0x5F14 # 0x5F15 # 0x5F16 # 0x5F17 # 0x5F18 # 0x5F1B # 0x5F1F # 0x5F25 # 0x5F26 # 0x5F27 # 0x5F29 # 0x5F2D # 0x5F2F # 0x5F31 # 0x5F35 # 0x5F37 # 0x5F38 # 0x5F3C # 0x5F3E # 0x5F41 # 0x5F48 # 0x5F4A # 0x5F4C # 0x5F4E # 0x5F51 # 0x5F53 # 0x5F56 # 0x5F57 # 0x5F59 # 0x5F5C # 0x5F5D # 0x5F61 # 0x5F62 # 0x5F66 # 0x5F69 # 0x5F6A # 0x5F6B # 0x5F6C # 0x5F6D # 0x5F70 # 0x5F71 # 0x5F73 # 0x5F77 # 0x5F79 # 0x5F7C # 0x5F7F # 0x5F80 # 0x5F81 # 0x5F82 # 0x5F83 # 0x5F84 # 0x5F85 # 0x5F87 # 0x5F88 # 0x5F8A # 0x5F8B # 0x5F8C # 0x5F90 # 0x5F91 # 0x5F92 # 0x5F93 # 0x5F97 # 0x5F98 # 0x5F99 # 0x5F9E # 0x5FA0 # 0x5FA1 # 0x5FA8 # 0x5FA9 # 0x5FAA # 0x5FAD # 0x5FAE # 0x5FB3 # 0x5FB4 # 0x5FB9 # 0x5FBC # 0x5FBD # 0x5FC3 # 0x5FC5 # 0x5FCC # 0x5FCD # 0x5FD6 # 0x5FD7 # 0x5FD8 # 0x5FD9 # 0x5FDC # 0x5FDD # 0x5FE0 # 0x5FE4 # 0x5FEB # 0x5FF0 # 0x5FF1 # 0x5FF5 # 0x5FF8 # 0x5FFB # 0x5FFD # 0x5FFF # 0x600E # 0x600F # 0x6010 # 0x6012 # 0x6015 # 0x6016 # 0x6019 # 0x601B # 0x601C # 0x601D # 0x6020 # 0x6021 # 0x6025 # 0x6026 # 0x6027 # 0x6028 # 0x6029 # 0x602A # 0x602B # 0x602F # 0x6031 # 0x603A # 0x6041 # 0x6042 # 0x6043 # 0x6046 # 0x604A # 0x604B # 0x604D # 0x6050 # 0x6052 # 0x6055 # 0x6059 # 0x605A # 0x605F # 0x6060 # 0x6062 # 0x6063 # 0x6064 # 0x6065 # 0x6068 # 0x6069 # 0x606A # 0x606B # 0x606C # 0x606D # 0x606F # 0x6070 # 0x6075 # 0x6077 # 0x6081 # 0x6083 # 0x6084 # 0x6089 # 0x608B # 0x608C # 0x608D # 0x6092 # 0x6094 # 0x6096 # 0x6097 # 0x609A # 0x609B # 0x609F # 0x60A0 # 0x60A3 # 0x60A6 # 0x60A7 # 0x60A9 # 0x60AA # 0x60B2 # 0x60B3 # 0x60B4 # 0x60B5 # 0x60B6 # 0x60B8 # 0x60BC # 0x60BD # 0x60C5 # 0x60C6 # 0x60C7 # 0x60D1 # 0x60D3 # 0x60D8 # 0x60DA # 0x60DC # 0x60DF # 0x60E0 # 0x60E1 # 0x60E3 # 0x60E7 # 0x60E8 # 0x60F0 # 0x60F1 # 0x60F3 # 0x60F4 # 0x60F6 # 0x60F7 # 0x60F9 # 0x60FA # 0x60FB # 0x6100 # 0x6101 # 0x6103 # 0x6106 # 0x6108 # 0x6109 # 0x610D # 0x610E # 0x610F # 0x6115 # 0x611A # 0x611B # 0x611F # 0x6121 # 0x6127 # 0x6128 # 0x612C # 0x6134 # 0x613C # 0x613D # 0x613E # 0x613F # 0x6142 # 0x6144 # 0x6147 # 0x6148 # 0x614A # 0x614B # 0x614C # 0x614D # 0x614E # 0x6153 # 0x6155 # 0x6158 # 0x6159 # 0x615A # 0x615D # 0x615F # 0x6162 # 0x6163 # 0x6165 # 0x6167 # 0x6168 # 0x616B # 0x616E # 0x616F # 0x6170 # 0x6171 # 0x6173 # 0x6174 # 0x6175 # 0x6176 # 0x6177 # 0x617E # 0x6182 # 0x6187 # 0x618A # 0x618E # 0x6190 # 0x6191 # 0x6194 # 0x6196 # 0x6199 # 0x619A # 0x61A4 # 0x61A7 # 0x61A9 # 0x61AB # 0x61AC # 0x61AE # 0x61B2 # 0x61B6 # 0x61BA # 0x61BE # 0x61C3 # 0x61C6 # 0x61C7 # 0x61C8 # 0x61C9 # 0x61CA # 0x61CB # 0x61CC # 0x61CD # 0x61D0 # 0x61E3 # 0x61E6 # 0x61F2 # 0x61F4 # 0x61F6 # 0x61F7 # 0x61F8 # 0x61FA # 0x61FC # 0x61FD # 0x61FE # 0x61FF # 0x6200 # 0x6208 # 0x6209 # 0x620A # 0x620C # 0x620D # 0x620E # 0x6210 # 0x6211 # 0x6212 # 0x6214 # 0x6216 # 0x621A # 0x621B # 0x621D # 0x621E # 0x621F # 0x6221 # 0x6226 # 0x622A # 0x622E # 0x622F # 0x6230 # 0x6232 # 0x6233 # 0x6234 # 0x6238 # 0x623B # 0x623F # 0x6240 # 0x6241 # 0x6247 # 0x6248 # 0x6249 # 0x624B # 0x624D # 0x624E # 0x6253 # 0x6255 # 0x6258 # 0x625B # 0x625E # 0x6260 # 0x6263 # 0x6268 # 0x626E # 0x6271 # 0x6276 # 0x6279 # 0x627C # 0x627E # 0x627F # 0x6280 # 0x6282 # 0x6283 # 0x6284 # 0x6289 # 0x628A # 0x6291 # 0x6292 # 0x6293 # 0x6294 # 0x6295 # 0x6296 # 0x6297 # 0x6298 # 0x629B # 0x629C # 0x629E # 0x62AB # 0x62AC # 0x62B1 # 0x62B5 # 0x62B9 # 0x62BB # 0x62BC # 0x62BD # 0x62C2 # 0x62C5 # 0x62C6 # 0x62C7 # 0x62C8 # 0x62C9 # 0x62CA # 0x62CC # 0x62CD # 0x62CF # 0x62D0 # 0x62D1 # 0x62D2 # 0x62D3 # 0x62D4 # 0x62D7 # 0x62D8 # 0x62D9 # 0x62DB # 0x62DC # 0x62DD # 0x62E0 # 0x62E1 # 0x62EC # 0x62ED # 0x62EE # 0x62EF # 0x62F1 # 0x62F3 # 0x62F5 # 0x62F6 # 0x62F7 # 0x62FE # 0x62FF # 0x6301 # 0x6302 # 0x6307 # 0x6308 # 0x6309 # 0x630C # 0x6311 # 0x6319 # 0x631F # 0x6327 # 0x6328 # 0x632B # 0x632F # 0x633A # 0x633D # 0x633E # 0x633F # 0x6349 # 0x634C # 0x634D # 0x634F # 0x6350 # 0x6355 # 0x6357 # 0x635C # 0x6367 # 0x6368 # 0x6369 # 0x636B # 0x636E # 0x6372 # 0x6376 # 0x6377 # 0x637A # 0x637B # 0x6380 # 0x6383 # 0x6388 # 0x6389 # 0x638C # 0x638E # 0x638F # 0x6392 # 0x6396 # 0x6398 # 0x639B # 0x639F # 0x63A0 # 0x63A1 # 0x63A2 # 0x63A3 # 0x63A5 # 0x63A7 # 0x63A8 # 0x63A9 # 0x63AA # 0x63AB # 0x63AC # 0x63B2 # 0x63B4 # 0x63B5 # 0x63BB # 0x63BE # 0x63C0 # 0x63C3 # 0x63C4 # 0x63C6 # 0x63C9 # 0x63CF # 0x63D0 # 0x63D2 # 0x63D6 # 0x63DA # 0x63DB # 0x63E1 # 0x63E3 # 0x63E9 # 0x63EE # 0x63F4 # 0x63F6 # 0x63FA # 0x6406 # 0x640D # 0x640F # 0x6413 # 0x6416 # 0x6417 # 0x641C # 0x6426 # 0x6428 # 0x642C # 0x642D # 0x6434 # 0x6436 # 0x643A # 0x643E # 0x6442 # 0x644E # 0x6458 # 0x6467 # 0x6469 # 0x646F # 0x6476 # 0x6478 # 0x647A # 0x6483 # 0x6488 # 0x6492 # 0x6493 # 0x6495 # 0x649A # 0x649E # 0x64A4 # 0x64A5 # 0x64A9 # 0x64AB # 0x64AD # 0x64AE # 0x64B0 # 0x64B2 # 0x64B9 # 0x64BB # 0x64BC # 0x64C1 # 0x64C2 # 0x64C5 # 0x64C7 # 0x64CD # 0x64D2 # 0x64D4 # 0x64D8 # 0x64DA # 0x64E0 # 0x64E1 # 0x64E2 # 0x64E3 # 0x64E6 # 0x64E7 # 0x64EC # 0x64EF # 0x64F1 # 0x64F2 # 0x64F4 # 0x64F6 # 0x64FA # 0x64FD # 0x64FE # 0x6500 # 0x6505 # 0x6518 # 0x651C # 0x651D # 0x6523 # 0x6524 # 0x652A # 0x652B # 0x652C # 0x652F # 0x6534 # 0x6535 # 0x6536 # 0x6537 # 0x6538 # 0x6539 # 0x653B # 0x653E # 0x653F # 0x6545 # 0x6548 # 0x654D # 0x654F # 0x6551 # 0x6555 # 0x6556 # 0x6557 # 0x6558 # 0x6559 # 0x655D # 0x655E # 0x6562 # 0x6563 # 0x6566 # 0x656C # 0x6570 # 0x6572 # 0x6574 # 0x6575 # 0x6577 # 0x6578 # 0x6582 # 0x6583 # 0x6587 # 0x6588 # 0x6589 # 0x658C # 0x658E # 0x6590 # 0x6591 # 0x6597 # 0x6599 # 0x659B # 0x659C # 0x659F # 0x65A1 # 0x65A4 # 0x65A5 # 0x65A7 # 0x65AB # 0x65AC # 0x65AD # 0x65AF # 0x65B0 # 0x65B7 # 0x65B9 # 0x65BC # 0x65BD # 0x65C1 # 0x65C3 # 0x65C4 # 0x65C5 # 0x65C6 # 0x65CB # 0x65CC # 0x65CF # 0x65D2 # 0x65D7 # 0x65D9 # 0x65DB # 0x65E0 # 0x65E1 # 0x65E2 # 0x65E5 # 0x65E6 # 0x65E7 # 0x65E8 # 0x65E9 # 0x65EC # 0x65ED # 0x65F1 # 0x65FA # 0x65FB # 0x6602 # 0x6603 # 0x6606 # 0x6607 # 0x660A # 0x660C # 0x660E # 0x660F # 0x6613 # 0x6614 # 0x661C # 0x661F # 0x6620 # 0x6625 # 0x6627 # 0x6628 # 0x662D # 0x662F # 0x6634 # 0x6635 # 0x6636 # 0x663C # 0x663F # 0x6641 # 0x6642 # 0x6643 # 0x6644 # 0x6649 # 0x664B # 0x664F # 0x6652 # 0x665D # 0x665E # 0x665F # 0x6662 # 0x6664 # 0x6666 # 0x6667 # 0x6668 # 0x6669 # 0x666E # 0x666F # 0x6670 # 0x6674 # 0x6676 # 0x667A # 0x6681 # 0x6683 # 0x6684 # 0x6687 # 0x6688 # 0x6689 # 0x668E # 0x6691 # 0x6696 # 0x6697 # 0x6698 # 0x669D # 0x66A2 # 0x66A6 # 0x66AB # 0x66AE # 0x66B4 # 0x66B8 # 0x66B9 # 0x66BC # 0x66BE # 0x66C1 # 0x66C4 # 0x66C7 # 0x66C9 # 0x66D6 # 0x66D9 # 0x66DA # 0x66DC # 0x66DD # 0x66E0 # 0x66E6 # 0x66E9 # 0x66F0 # 0x66F2 # 0x66F3 # 0x66F4 # 0x66F5 # 0x66F7 # 0x66F8 # 0x66F9 # 0x66FC # 0x66FD # 0x66FE # 0x66FF # 0x6700 # 0x6703 # 0x6708 # 0x6709 # 0x670B # 0x670D # 0x670F # 0x6714 # 0x6715 # 0x6716 # 0x6717 # 0x671B # 0x671D # 0x671E # 0x671F # 0x6726 # 0x6727 # 0x6728 # 0x672A # 0x672B # 0x672C # 0x672D # 0x672E # 0x6731 # 0x6734 # 0x6736 # 0x6737 # 0x6738 # 0x673A # 0x673D # 0x673F # 0x6741 # 0x6746 # 0x6749 # 0x674E # 0x674F # 0x6750 # 0x6751 # 0x6753 # 0x6756 # 0x6759 # 0x675C # 0x675E # 0x675F # 0x6760 # 0x6761 # 0x6762 # 0x6763 # 0x6764 # 0x6765 # 0x676A # 0x676D # 0x676F # 0x6770 # 0x6771 # 0x6772 # 0x6773 # 0x6775 # 0x6777 # 0x677C # 0x677E # 0x677F # 0x6785 # 0x6787 # 0x6789 # 0x678B # 0x678C # 0x6790 # 0x6795 # 0x6797 # 0x679A # 0x679C # 0x679D # 0x67A0 # 0x67A1 # 0x67A2 # 0x67A6 # 0x67A9 # 0x67AF # 0x67B3 # 0x67B4 # 0x67B6 # 0x67B7 # 0x67B8 # 0x67B9 # 0x67C1 # 0x67C4 # 0x67C6 # 0x67CA # 0x67CE # 0x67CF # 0x67D0 # 0x67D1 # 0x67D3 # 0x67D4 # 0x67D8 # 0x67DA # 0x67DD # 0x67DE # 0x67E2 # 0x67E4 # 0x67E7 # 0x67E9 # 0x67EC # 0x67EE # 0x67EF # 0x67F1 # 0x67F3 # 0x67F4 # 0x67F5 # 0x67FB # 0x67FE # 0x67FF # 0x6802 # 0x6803 # 0x6804 # 0x6813 # 0x6816 # 0x6817 # 0x681E # 0x6821 # 0x6822 # 0x6829 # 0x682A # 0x682B # 0x6832 # 0x6834 # 0x6838 # 0x6839 # 0x683C # 0x683D # 0x6840 # 0x6841 # 0x6842 # 0x6843 # 0x6846 # 0x6848 # 0x684D # 0x684E # 0x6850 # 0x6851 # 0x6853 # 0x6854 # 0x6859 # 0x685C # 0x685D # 0x685F # 0x6863 # 0x6867 # 0x6874 # 0x6876 # 0x6877 # 0x687E # 0x687F # 0x6881 # 0x6883 # 0x6885 # 0x688D # 0x688F # 0x6893 # 0x6894 # 0x6897 # 0x689B # 0x689D # 0x689F # 0x68A0 # 0x68A2 # 0x68A6 # 0x68A7 # 0x68A8 # 0x68AD # 0x68AF # 0x68B0 # 0x68B1 # 0x68B3 # 0x68B5 # 0x68B6 # 0x68B9 # 0x68BA # 0x68BC # 0x68C4 # 0x68C6 # 0x68C9 # 0x68CA # 0x68CB # 0x68CD # 0x68D2 # 0x68D4 # 0x68D5 # 0x68D7 # 0x68D8 # 0x68DA # 0x68DF # 0x68E0 # 0x68E1 # 0x68E3 # 0x68E7 # 0x68EE # 0x68EF # 0x68F2 # 0x68F9 # 0x68FA # 0x6900 # 0x6901 # 0x6904 # 0x6905 # 0x6908 # 0x690B # 0x690C # 0x690D # 0x690E # 0x690F # 0x6912 # 0x6919 # 0x691A # 0x691B # 0x691C # 0x6921 # 0x6922 # 0x6923 # 0x6925 # 0x6926 # 0x6928 # 0x692A # 0x6930 # 0x6934 # 0x6936 # 0x6939 # 0x693D # 0x693F # 0x694A # 0x6953 # 0x6954 # 0x6955 # 0x6959 # 0x695A # 0x695C # 0x695D # 0x695E # 0x6960 # 0x6961 # 0x6962 # 0x696A # 0x696B # 0x696D # 0x696E # 0x696F # 0x6973 # 0x6974 # 0x6975 # 0x6977 # 0x6978 # 0x6979 # 0x697C # 0x697D # 0x697E # 0x6981 # 0x6982 # 0x698A # 0x698E # 0x6991 # 0x6994 # 0x6995 # 0x699B # 0x699C # 0x69A0 # 0x69A7 # 0x69AE # 0x69B1 # 0x69B2 # 0x69B4 # 0x69BB # 0x69BE # 0x69BF # 0x69C1 # 0x69C3 # 0x69C7 # 0x69CA # 0x69CB # 0x69CC # 0x69CD # 0x69CE # 0x69D0 # 0x69D3 # 0x69D8 # 0x69D9 # 0x69DD # 0x69DE # 0x69E7 # 0x69E8 # 0x69EB # 0x69ED # 0x69F2 # 0x69F9 # 0x69FB # 0x69FD # 0x69FF # 0x6A02 # 0x6A05 # 0x6A0A # 0x6A0B # 0x6A0C # 0x6A12 # 0x6A13 # 0x6A14 # 0x6A17 # 0x6A19 # 0x6A1B # 0x6A1E # 0x6A1F # 0x6A21 # 0x6A22 # 0x6A23 # 0x6A29 # 0x6A2A # 0x6A2B # 0x6A2E # 0x6A35 # 0x6A36 # 0x6A38 # 0x6A39 # 0x6A3A # 0x6A3D # 0x6A44 # 0x6A47 # 0x6A48 # 0x6A4B # 0x6A58 # 0x6A59 # 0x6A5F # 0x6A61 # 0x6A62 # 0x6A66 # 0x6A72 # 0x6A78 # 0x6A7F # 0x6A80 # 0x6A84 # 0x6A8D # 0x6A8E # 0x6A90 # 0x6A97 # 0x6A9C # 0x6AA0 # 0x6AA2 # 0x6AA3 # 0x6AAA # 0x6AAC # 0x6AAE # 0x6AB3 # 0x6AB8 # 0x6ABB # 0x6AC1 # 0x6AC2 # 0x6AC3 # 0x6AD1 # 0x6AD3 # 0x6ADA # 0x6ADB # 0x6ADE # 0x6ADF # 0x6AE8 # 0x6AEA # 0x6AFA # 0x6AFB # 0x6B04 # 0x6B05 # 0x6B0A # 0x6B12 # 0x6B16 # 0x6B1D # 0x6B1F # 0x6B20 # 0x6B21 # 0x6B23 # 0x6B27 # 0x6B32 # 0x6B37 # 0x6B38 # 0x6B39 # 0x6B3A # 0x6B3D # 0x6B3E # 0x6B43 # 0x6B47 # 0x6B49 # 0x6B4C # 0x6B4E # 0x6B50 # 0x6B53 # 0x6B54 # 0x6B59 # 0x6B5B # 0x6B5F # 0x6B61 # 0x6B62 # 0x6B63 # 0x6B64 # 0x6B66 # 0x6B69 # 0x6B6A # 0x6B6F # 0x6B73 # 0x6B74 # 0x6B78 # 0x6B79 # 0x6B7B # 0x6B7F # 0x6B80 # 0x6B83 # 0x6B84 # 0x6B86 # 0x6B89 # 0x6B8A # 0x6B8B # 0x6B8D # 0x6B95 # 0x6B96 # 0x6B98 # 0x6B9E # 0x6BA4 # 0x6BAA # 0x6BAB # 0x6BAF # 0x6BB1 # 0x6BB2 # 0x6BB3 # 0x6BB4 # 0x6BB5 # 0x6BB7 # 0x6BBA # 0x6BBB # 0x6BBC # 0x6BBF # 0x6BC0 # 0x6BC5 # 0x6BC6 # 0x6BCB # 0x6BCD # 0x6BCE # 0x6BD2 # 0x6BD3 # 0x6BD4 # 0x6BD8 # 0x6BDB # 0x6BDF # 0x6BEB # 0x6BEC # 0x6BEF # 0x6BF3 # 0x6C08 # 0x6C0F # 0x6C11 # 0x6C13 # 0x6C14 # 0x6C17 # 0x6C1B # 0x6C23 # 0x6C24 # 0x6C34 # 0x6C37 # 0x6C38 # 0x6C3E # 0x6C40 # 0x6C41 # 0x6C42 # 0x6C4E # 0x6C50 # 0x6C55 # 0x6C57 # 0x6C5A # 0x6C5D # 0x6C5E # 0x6C5F # 0x6C60 # 0x6C62 # 0x6C68 # 0x6C6A # 0x6C70 # 0x6C72 # 0x6C73 # 0x6C7A # 0x6C7D # 0x6C7E # 0x6C81 # 0x6C82 # 0x6C83 # 0x6C88 # 0x6C8C # 0x6C8D # 0x6C90 # 0x6C92 # 0x6C93 # 0x6C96 # 0x6C99 # 0x6C9A # 0x6C9B # 0x6CA1 # 0x6CA2 # 0x6CAB # 0x6CAE # 0x6CB1 # 0x6CB3 # 0x6CB8 # 0x6CB9 # 0x6CBA # 0x6CBB # 0x6CBC # 0x6CBD # 0x6CBE # 0x6CBF # 0x6CC1 # 0x6CC4 # 0x6CC5 # 0x6CC9 # 0x6CCA # 0x6CCC # 0x6CD3 # 0x6CD5 # 0x6CD7 # 0x6CD9 # 0x6CDB # 0x6CDD # 0x6CE1 # 0x6CE2 # 0x6CE3 # 0x6CE5 # 0x6CE8 # 0x6CEA # 0x6CEF # 0x6CF0 # 0x6CF1 # 0x6CF3 # 0x6D0B # 0x6D0C # 0x6D12 # 0x6D17 # 0x6D19 # 0x6D1B # 0x6D1E # 0x6D1F # 0x6D25 # 0x6D29 # 0x6D2A # 0x6D2B # 0x6D32 # 0x6D33 # 0x6D35 # 0x6D36 # 0x6D38 # 0x6D3B # 0x6D3D # 0x6D3E # 0x6D41 # 0x6D44 # 0x6D45 # 0x6D59 # 0x6D5A # 0x6D5C # 0x6D63 # 0x6D64 # 0x6D66 # 0x6D69 # 0x6D6A # 0x6D6C # 0x6D6E # 0x6D74 # 0x6D77 # 0x6D78 # 0x6D79 # 0x6D85 # 0x6D88 # 0x6D8C # 0x6D8E # 0x6D93 # 0x6D95 # 0x6D99 # 0x6D9B # 0x6D9C # 0x6DAF # 0x6DB2 # 0x6DB5 # 0x6DB8 # 0x6DBC # 0x6DC0 # 0x6DC5 # 0x6DC6 # 0x6DC7 # 0x6DCB # 0x6DCC # 0x6DD1 # 0x6DD2 # 0x6DD5 # 0x6DD8 # 0x6DD9 # 0x6DDE # 0x6DE1 # 0x6DE4 # 0x6DE6 # 0x6DE8 # 0x6DEA # 0x6DEB # 0x6DEC # 0x6DEE # 0x6DF1 # 0x6DF3 # 0x6DF5 # 0x6DF7 # 0x6DF9 # 0x6DFA # 0x6DFB # 0x6E05 # 0x6E07 # 0x6E08 # 0x6E09 # 0x6E0A # 0x6E0B # 0x6E13 # 0x6E15 # 0x6E19 # 0x6E1A # 0x6E1B # 0x6E1D # 0x6E1F # 0x6E20 # 0x6E21 # 0x6E23 # 0x6E24 # 0x6E25 # 0x6E26 # 0x6E29 # 0x6E2B # 0x6E2C # 0x6E2D # 0x6E2E # 0x6E2F # 0x6E38 # 0x6E3A # 0x6E3E # 0x6E43 # 0x6E4A # 0x6E4D # 0x6E4E # 0x6E56 # 0x6E58 # 0x6E5B # 0x6E5F # 0x6E67 # 0x6E6B # 0x6E6E # 0x6E6F # 0x6E72 # 0x6E76 # 0x6E7E # 0x6E7F # 0x6E80 # 0x6E82 # 0x6E8C # 0x6E8F # 0x6E90 # 0x6E96 # 0x6E98 # 0x6E9C # 0x6E9D # 0x6E9F # 0x6EA2 # 0x6EA5 # 0x6EAA # 0x6EAF # 0x6EB2 # 0x6EB6 # 0x6EB7 # 0x6EBA # 0x6EBD # 0x6EC2 # 0x6EC4 # 0x6EC5 # 0x6EC9 # 0x6ECB # 0x6ECC # 0x6ED1 # 0x6ED3 # 0x6ED4 # 0x6ED5 # 0x6EDD # 0x6EDE # 0x6EEC # 0x6EEF # 0x6EF2 # 0x6EF4 # 0x6EF7 # 0x6EF8 # 0x6EFE # 0x6EFF # 0x6F01 # 0x6F02 # 0x6F06 # 0x6F09 # 0x6F0F # 0x6F11 # 0x6F13 # 0x6F14 # 0x6F15 # 0x6F20 # 0x6F22 # 0x6F23 # 0x6F2B # 0x6F2C # 0x6F31 # 0x6F32 # 0x6F38 # 0x6F3E # 0x6F3F # 0x6F41 # 0x6F45 # 0x6F54 # 0x6F58 # 0x6F5B # 0x6F5C # 0x6F5F # 0x6F64 # 0x6F66 # 0x6F6D # 0x6F6E # 0x6F6F # 0x6F70 # 0x6F74 # 0x6F78 # 0x6F7A # 0x6F7C # 0x6F80 # 0x6F81 # 0x6F82 # 0x6F84 # 0x6F86 # 0x6F8E # 0x6F91 # 0x6F97 # 0x6FA1 # 0x6FA3 # 0x6FA4 # 0x6FAA # 0x6FB1 # 0x6FB3 # 0x6FB9 # 0x6FC0 # 0x6FC1 # 0x6FC2 # 0x6FC3 # 0x6FC6 # 0x6FD4 # 0x6FD5 # 0x6FD8 # 0x6FDB # 0x6FDF # 0x6FE0 # 0x6FE1 # 0x6FE4 # 0x6FEB # 0x6FEC # 0x6FEE # 0x6FEF # 0x6FF1 # 0x6FF3 # 0x6FF6 # 0x6FFA # 0x6FFE # 0x7001 # 0x7009 # 0x700B # 0x700F # 0x7011 # 0x7015 # 0x7018 # 0x701A # 0x701B # 0x701D # 0x701E # 0x701F # 0x7026 # 0x7027 # 0x702C # 0x7030 # 0x7032 # 0x703E # 0x704C # 0x7051 # 0x7058 # 0x7063 # 0x706B # 0x706F # 0x7070 # 0x7078 # 0x707C # 0x707D # 0x7089 # 0x708A # 0x708E # 0x7092 # 0x7099 # 0x70AC # 0x70AD # 0x70AE # 0x70AF # 0x70B3 # 0x70B8 # 0x70B9 # 0x70BA # 0x70C8 # 0x70CB # 0x70CF # 0x70D9 # 0x70DD # 0x70DF # 0x70F1 # 0x70F9 # 0x70FD # 0x7109 # 0x7114 # 0x7119 # 0x711A # 0x711C # 0x7121 # 0x7126 # 0x7136 # 0x713C # 0x7149 # 0x714C # 0x714E # 0x7155 # 0x7156 # 0x7159 # 0x7162 # 0x7164 # 0x7165 # 0x7166 # 0x7167 # 0x7169 # 0x716C # 0x716E # 0x717D # 0x7184 # 0x7188 # 0x718A # 0x718F # 0x7194 # 0x7195 # #0x7199 # # not in kochi fonts 0x719F # 0x71A8 # 0x71AC # 0x71B1 # 0x71B9 # 0x71BE # 0x71C3 # 0x71C8 # 0x71C9 # 0x71CE # 0x71D0 # 0x71D2 # 0x71D4 # 0x71D5 # 0x71D7 # 0x71DF # 0x71E0 # 0x71E5 # 0x71E6 # 0x71E7 # 0x71EC # 0x71ED # 0x71EE # 0x71F5 # 0x71F9 # 0x71FB # 0x71FC # 0x71FF # 0x7206 # 0x720D # 0x7210 # 0x721B # 0x7228 # 0x722A # 0x722C # 0x722D # 0x7230 # 0x7232 # 0x7235 # 0x7236 # 0x723A # 0x723B # 0x723C # 0x723D # 0x723E # 0x723F # 0x7240 # 0x7246 # 0x7247 # 0x7248 # 0x724B # 0x724C # 0x7252 # 0x7258 # 0x7259 # 0x725B # 0x725D # 0x725F # 0x7261 # 0x7262 # 0x7267 # 0x7269 # 0x7272 # 0x7274 # 0x7279 # 0x727D # 0x727E # 0x7280 # 0x7281 # 0x7282 # 0x7287 # 0x7292 # 0x7296 # 0x72A0 # 0x72A2 # 0x72A7 # 0x72AC # 0x72AF # 0x72B2 # 0x72B6 # 0x72B9 # 0x72C2 # 0x72C3 # 0x72C4 # 0x72C6 # 0x72CE # 0x72D0 # 0x72D2 # 0x72D7 # 0x72D9 # 0x72DB # 0x72E0 # 0x72E1 # 0x72E2 # 0x72E9 # 0x72EC # 0x72ED # 0x72F7 # 0x72F8 # 0x72F9 # 0x72FC # 0x72FD # 0x730A # 0x7316 # 0x7317 # 0x731B # 0x731C # 0x731D # 0x731F # 0x7325 # 0x7329 # 0x732A # 0x732B # 0x732E # 0x732F # 0x7334 # 0x7336 # 0x7337 # 0x733E # 0x733F # 0x7344 # 0x7345 # 0x734E # 0x734F # 0x7357 # 0x7363 # 0x7368 # 0x736A # 0x7370 # 0x7372 # 0x7375 # 0x7378 # 0x737A # 0x737B # 0x7384 # 0x7387 # 0x7389 # 0x738B # 0x7396 # 0x73A9 # 0x73B2 # 0x73B3 # 0x73BB # 0x73C0 # 0x73C2 # 0x73C8 # 0x73CA # 0x73CD # 0x73CE # 0x73DE # 0x73E0 # 0x73E5 # 0x73EA # 0x73ED # 0x73EE # 0x73F1 # 0x73F8 # 0x73FE # 0x7403 # 0x7405 # 0x7406 # 0x7409 # 0x7422 # 0x7425 # 0x7432 # 0x7433 # 0x7434 # 0x7435 # 0x7436 # 0x743A # 0x743F # 0x7441 # 0x7455 # 0x7459 # 0x745A # 0x745B # 0x745C # 0x745E # 0x745F # 0x7460 # 0x7463 # 0x7464 # 0x7469 # 0x746A # 0x746F # 0x7470 # 0x7473 # 0x7476 # 0x747E # 0x7483 # 0x748B # 0x749E # 0x74A2 # 0x74A7 # 0x74B0 # 0x74BD # 0x74CA # 0x74CF # 0x74D4 # 0x74DC # 0x74E0 # 0x74E2 # 0x74E3 # 0x74E6 # 0x74E7 # 0x74E9 # 0x74EE # 0x74F0 # 0x74F1 # 0x74F2 # 0x74F6 # 0x74F7 # 0x74F8 # 0x7503 # 0x7504 # 0x7505 # 0x750C # 0x750D # 0x750E # 0x7511 # 0x7513 # 0x7515 # 0x7518 # 0x751A # 0x751C # 0x751E # 0x751F # 0x7523 # 0x7525 # 0x7526 # 0x7528 # 0x752B # 0x752C # 0x7530 # 0x7531 # 0x7532 # 0x7533 # 0x7537 # 0x7538 # 0x753A # 0x753B # 0x753C # 0x7544 # 0x7546 # 0x7549 # 0x754A # 0x754B # 0x754C # 0x754D # 0x754F # 0x7551 # 0x7554 # 0x7559 # 0x755A # 0x755B # 0x755C # 0x755D # 0x7560 # 0x7562 # 0x7564 # 0x7565 # 0x7566 # 0x7567 # 0x7569 # 0x756A # 0x756B # 0x756D # 0x7570 # 0x7573 # 0x7574 # 0x7576 # 0x7577 # 0x7578 # 0x757F # 0x7582 # 0x7586 # 0x7587 # 0x7589 # 0x758A # 0x758B # 0x758E # 0x758F # 0x7591 # 0x7594 # 0x759A # 0x759D # 0x75A3 # 0x75A5 # 0x75AB # 0x75B1 # 0x75B2 # 0x75B3 # 0x75B5 # 0x75B8 # 0x75B9 # 0x75BC # 0x75BD # 0x75BE # 0x75C2 # 0x75C3 # 0x75C5 # 0x75C7 # 0x75CA # 0x75CD # 0x75D2 # 0x75D4 # 0x75D5 # 0x75D8 # 0x75D9 # 0x75DB # 0x75DE # 0x75E2 # 0x75E3 # 0x75E9 # 0x75F0 # 0x75F2 # 0x75F3 # 0x75F4 # 0x75FA # 0x75FC # 0x75FE # 0x75FF # 0x7601 # 0x7609 # 0x760B # 0x760D # 0x761F # 0x7620 # 0x7621 # 0x7622 # 0x7624 # 0x7627 # 0x7630 # 0x7634 # 0x763B # 0x7642 # 0x7646 # 0x7647 # 0x7648 # 0x764C # 0x7652 # 0x7656 # 0x7658 # 0x765C # 0x7661 # 0x7662 # 0x7667 # 0x7668 # 0x7669 # 0x766A # 0x766C # 0x7670 # 0x7672 # 0x7676 # 0x7678 # 0x767A # 0x767B # 0x767C # 0x767D # 0x767E # 0x7680 # 0x7683 # 0x7684 # 0x7686 # 0x7687 # 0x7688 # 0x768B # 0x768E # 0x7690 # 0x7693 # 0x7696 # 0x7699 # 0x769A # 0x76AE # 0x76B0 # 0x76B4 # 0x76B7 # 0x76B8 # 0x76B9 # 0x76BA # 0x76BF # 0x76C2 # 0x76C3 # 0x76C6 # 0x76C8 # 0x76CA # 0x76CD # 0x76D2 # 0x76D6 # 0x76D7 # 0x76DB # 0x76DC # 0x76DE # 0x76DF # 0x76E1 # 0x76E3 # 0x76E4 # 0x76E5 # 0x76E7 # 0x76EA # 0x76EE # 0x76F2 # 0x76F4 # 0x76F8 # 0x76FB # 0x76FE # 0x7701 # 0x7704 # 0x7707 # 0x7708 # 0x7709 # 0x770B # 0x770C # 0x771B # 0x771E # 0x771F # 0x7720 # 0x7724 # 0x7725 # 0x7726 # 0x7729 # 0x7737 # 0x7738 # 0x773A # 0x773C # 0x7740 # 0x7747 # 0x775A # 0x775B # 0x7761 # 0x7763 # 0x7765 # 0x7766 # 0x7768 # 0x776B # 0x7779 # 0x777E # 0x777F # 0x778B # 0x778E # 0x7791 # 0x779E # 0x77A0 # 0x77A5 # 0x77AC # 0x77AD # 0x77B0 # 0x77B3 # 0x77B6 # 0x77B9 # 0x77BB # 0x77BC # 0x77BD # 0x77BF # 0x77C7 # 0x77CD # 0x77D7 # 0x77DA # 0x77DB # 0x77DC # 0x77E2 # 0x77E3 # 0x77E5 # 0x77E7 # 0x77E9 # 0x77ED # 0x77EE # 0x77EF # 0x77F3 # 0x77FC # 0x7802 # 0x780C # 0x7812 # 0x7814 # 0x7815 # 0x7820 # 0x7825 # 0x7826 # 0x7827 # 0x7832 # 0x7834 # 0x783A # 0x783F # 0x7845 # 0x785D # 0x786B # 0x786C # 0x786F # 0x7872 # 0x7874 # 0x787C # 0x7881 # 0x7886 # 0x7887 # 0x788C # 0x788D # 0x788E # 0x7891 # 0x7893 # 0x7895 # 0x7897 # 0x789A # 0x78A3 # 0x78A7 # 0x78A9 # 0x78AA # 0x78AF # 0x78B5 # 0x78BA # 0x78BC # 0x78BE # 0x78C1 # 0x78C5 # 0x78C6 # 0x78CA # 0x78CB # 0x78D0 # 0x78D1 # 0x78D4 # 0x78DA # 0x78E7 # 0x78E8 # 0x78EC # 0x78EF # 0x78F4 # 0x78FD # 0x7901 # 0x7907 # 0x790E # 0x7911 # 0x7912 # 0x7919 # 0x7926 # 0x792A # 0x792B # 0x792C # 0x793A # 0x793C # 0x793E # 0x7940 # 0x7941 # 0x7947 # 0x7948 # 0x7949 # 0x7950 # 0x7953 # 0x7955 # 0x7956 # 0x7957 # 0x795A # 0x795D # 0x795E # 0x795F # 0x7960 # 0x7962 # 0x7965 # 0x7968 # 0x796D # 0x7977 # 0x797A # 0x797F # 0x7980 # 0x7981 # 0x7984 # 0x7985 # 0x798A # 0x798D # 0x798E # 0x798F # 0x799D # 0x79A6 # 0x79A7 # 0x79AA # 0x79AE # 0x79B0 # 0x79B3 # 0x79B9 # 0x79BA # 0x79BD # 0x79BE # 0x79BF # 0x79C0 # 0x79C1 # 0x79C9 # 0x79CB # 0x79D1 # 0x79D2 # 0x79D5 # 0x79D8 # 0x79DF # 0x79E1 # 0x79E3 # 0x79E4 # 0x79E6 # 0x79E7 # 0x79E9 # 0x79EC # 0x79F0 # 0x79FB # 0x7A00 # 0x7A08 # 0x7A0B # 0x7A0D # 0x7A0E # 0x7A14 # 0x7A17 # 0x7A18 # 0x7A19 # 0x7A1A # 0x7A1C # 0x7A1F # 0x7A20 # 0x7A2E # 0x7A31 # 0x7A32 # 0x7A37 # 0x7A3B # 0x7A3C # 0x7A3D # 0x7A3E # 0x7A3F # 0x7A40 # 0x7A42 # 0x7A43 # 0x7A46 # 0x7A49 # 0x7A4D # 0x7A4E # 0x7A4F # 0x7A50 # 0x7A57 # 0x7A61 # 0x7A62 # 0x7A63 # 0x7A69 # 0x7A6B # 0x7A70 # 0x7A74 # 0x7A76 # 0x7A79 # 0x7A7A # 0x7A7D # 0x7A7F # 0x7A81 # 0x7A83 # 0x7A84 # 0x7A88 # 0x7A92 # 0x7A93 # 0x7A95 # 0x7A96 # 0x7A97 # 0x7A98 # 0x7A9F # 0x7AA9 # 0x7AAA # 0x7AAE # 0x7AAF # 0x7AB0 # 0x7AB6 # 0x7ABA # 0x7ABF # 0x7AC3 # 0x7AC4 # 0x7AC5 # 0x7AC7 # 0x7AC8 # 0x7ACA # 0x7ACB # 0x7ACD # 0x7ACF # 0x7AD2 # 0x7AD3 # 0x7AD5 # 0x7AD9 # 0x7ADA # 0x7ADC # 0x7ADD # 0x7ADF # 0x7AE0 # 0x7AE1 # 0x7AE2 # 0x7AE3 # 0x7AE5 # 0x7AE6 # 0x7AEA # 0x7AED # 0x7AEF # 0x7AF0 # 0x7AF6 # 0x7AF8 # 0x7AF9 # 0x7AFA # 0x7AFF # 0x7B02 # 0x7B04 # 0x7B06 # 0x7B08 # 0x7B0A # 0x7B0B # 0x7B0F # 0x7B11 # 0x7B18 # 0x7B19 # 0x7B1B # 0x7B1E # 0x7B20 # 0x7B25 # 0x7B26 # 0x7B28 # 0x7B2C # 0x7B33 # 0x7B35 # 0x7B36 # 0x7B39 # 0x7B45 # 0x7B46 # 0x7B48 # 0x7B49 # 0x7B4B # 0x7B4C # 0x7B4D # 0x7B4F # 0x7B50 # 0x7B51 # 0x7B52 # 0x7B54 # 0x7B56 # 0x7B5D # 0x7B65 # 0x7B67 # 0x7B6C # 0x7B6E # 0x7B70 # 0x7B71 # 0x7B74 # 0x7B75 # 0x7B7A # 0x7B86 # 0x7B87 # 0x7B8B # 0x7B8D # 0x7B8F # 0x7B92 # 0x7B94 # 0x7B95 # 0x7B97 # 0x7B98 # 0x7B99 # 0x7B9A # 0x7B9C # 0x7B9D # 0x7B9F # 0x7BA1 # 0x7BAA # 0x7BAD # 0x7BB1 # 0x7BB4 # 0x7BB8 # 0x7BC0 # 0x7BC1 # 0x7BC4 # 0x7BC6 # 0x7BC7 # 0x7BC9 # 0x7BCB # 0x7BCC # 0x7BCF # 0x7BDD # 0x7BE0 # 0x7BE4 # 0x7BE5 # 0x7BE6 # 0x7BE9 # 0x7BED # 0x7BF3 # 0x7BF6 # 0x7BF7 # 0x7C00 # 0x7C07 # 0x7C0D # 0x7C11 # 0x7C12 # 0x7C13 # 0x7C14 # 0x7C17 # 0x7C1F # 0x7C21 # 0x7C23 # 0x7C27 # 0x7C2A # 0x7C2B # 0x7C37 # 0x7C38 # 0x7C3D # 0x7C3E # 0x7C3F # 0x7C40 # 0x7C43 # 0x7C4C # 0x7C4D # 0x7C4F # 0x7C50 # 0x7C54 # 0x7C56 # 0x7C58 # 0x7C5F # 0x7C60 # 0x7C64 # 0x7C65 # 0x7C6C # 0x7C73 # 0x7C75 # 0x7C7E # 0x7C81 # 0x7C82 # 0x7C83 # 0x7C89 # 0x7C8B # 0x7C8D # 0x7C90 # 0x7C92 # 0x7C95 # 0x7C97 # 0x7C98 # 0x7C9B # 0x7C9F # 0x7CA1 # 0x7CA2 # 0x7CA4 # 0x7CA5 # 0x7CA7 # 0x7CA8 # 0x7CAB # 0x7CAD # 0x7CAE # 0x7CB1 # 0x7CB2 # 0x7CB3 # 0x7CB9 # 0x7CBD # 0x7CBE # 0x7CC0 # 0x7CC2 # 0x7CC5 # 0x7CCA # 0x7CCE # 0x7CD2 # 0x7CD6 # 0x7CD8 # 0x7CDC # 0x7CDE # 0x7CDF # 0x7CE0 # 0x7CE2 # 0x7CE7 # 0x7CEF # 0x7CF2 # 0x7CF4 # 0x7CF6 # 0x7CF8 # 0x7CFA # 0x7CFB # 0x7CFE # 0x7D00 # 0x7D02 # 0x7D04 # 0x7D05 # 0x7D06 # 0x7D0A # 0x7D0B # 0x7D0D # 0x7D10 # 0x7D14 # 0x7D15 # 0x7D17 # 0x7D18 # 0x7D19 # 0x7D1A # 0x7D1B # 0x7D1C # 0x7D20 # 0x7D21 # 0x7D22 # 0x7D2B # 0x7D2C # 0x7D2E # 0x7D2F # 0x7D30 # 0x7D32 # 0x7D33 # 0x7D35 # 0x7D39 # 0x7D3A # 0x7D3F # 0x7D42 # 0x7D43 # 0x7D44 # 0x7D45 # 0x7D46 # 0x7D4B # 0x7D4C # 0x7D4E # 0x7D4F # 0x7D50 # 0x7D56 # 0x7D5B # 0x7D5E # 0x7D61 # 0x7D62 # 0x7D63 # 0x7D66 # 0x7D68 # 0x7D6E # 0x7D71 # 0x7D72 # 0x7D73 # 0x7D75 # 0x7D76 # 0x7D79 # 0x7D7D # 0x7D89 # 0x7D8F # 0x7D93 # 0x7D99 # 0x7D9A # 0x7D9B # 0x7D9C # 0x7D9F # 0x7DA2 # 0x7DA3 # 0x7DAB # 0x7DAC # 0x7DAD # 0x7DAE # 0x7DAF # 0x7DB0 # 0x7DB1 # 0x7DB2 # 0x7DB4 # 0x7DB5 # 0x7DB8 # 0x7DBA # 0x7DBB # 0x7DBD # 0x7DBE # 0x7DBF # 0x7DC7 # 0x7DCA # 0x7DCB # 0x7DCF # 0x7DD1 # 0x7DD2 # 0x7DD5 # 0x7DD8 # 0x7DDA # 0x7DDC # 0x7DDD # 0x7DDE # 0x7DE0 # 0x7DE1 # 0x7DE4 # 0x7DE8 # 0x7DE9 # 0x7DEC # 0x7DEF # 0x7DF2 # 0x7DF4 # 0x7DFB # 0x7E01 # 0x7E04 # 0x7E05 # 0x7E09 # 0x7E0A # 0x7E0B # 0x7E12 # 0x7E1B # 0x7E1E # 0x7E1F # 0x7E21 # 0x7E22 # 0x7E23 # 0x7E26 # 0x7E2B # 0x7E2E # 0x7E31 # 0x7E32 # 0x7E35 # 0x7E37 # 0x7E39 # 0x7E3A # 0x7E3B # 0x7E3D # 0x7E3E # 0x7E41 # 0x7E43 # 0x7E46 # 0x7E4A # 0x7E4B # 0x7E4D # 0x7E54 # 0x7E55 # 0x7E56 # 0x7E59 # 0x7E5A # 0x7E5D # 0x7E5E # 0x7E66 # 0x7E67 # 0x7E69 # 0x7E6A # 0x7E6D # 0x7E70 # 0x7E79 # 0x7E7B # 0x7E7C # 0x7E7D # 0x7E7F # 0x7E82 # 0x7E83 # 0x7E88 # 0x7E89 # 0x7E8C # 0x7E8E # 0x7E8F # 0x7E90 # 0x7E92 # 0x7E93 # 0x7E94 # 0x7E96 # 0x7E9B # 0x7E9C # 0x7F36 # 0x7F38 # 0x7F3A # 0x7F45 # 0x7F4C # 0x7F4D # 0x7F4E # 0x7F50 # 0x7F51 # 0x7F54 # 0x7F55 # 0x7F58 # 0x7F5F # 0x7F60 # 0x7F67 # 0x7F68 # 0x7F69 # 0x7F6A # 0x7F6B # 0x7F6E # 0x7F70 # 0x7F72 # 0x7F75 # 0x7F77 # 0x7F78 # 0x7F79 # 0x7F82 # 0x7F83 # 0x7F85 # 0x7F86 # 0x7F87 # 0x7F88 # 0x7F8A # 0x7F8C # 0x7F8E # 0x7F94 # 0x7F9A # 0x7F9D # 0x7F9E # 0x7FA3 # 0x7FA4 # 0x7FA8 # 0x7FA9 # 0x7FAE # 0x7FAF # 0x7FB2 # 0x7FB6 # 0x7FB8 # 0x7FB9 # 0x7FBD # 0x7FC1 # 0x7FC5 # 0x7FC6 # 0x7FCA # 0x7FCC # 0x7FD2 # 0x7FD4 # 0x7FD5 # 0x7FE0 # 0x7FE1 # 0x7FE6 # 0x7FE9 # 0x7FEB # 0x7FF0 # 0x7FF3 # 0x7FF9 # 0x7FFB # 0x7FFC # 0x8000 # 0x8001 # 0x8003 # 0x8004 # 0x8005 # 0x8006 # 0x800B # 0x800C # 0x8010 # 0x8012 # 0x8015 # 0x8017 # 0x8018 # 0x8019 # 0x801C # 0x8021 # 0x8028 # 0x8033 # 0x8036 # 0x803B # 0x803D # 0x803F # 0x8046 # 0x804A # 0x8052 # 0x8056 # 0x8058 # 0x805A # 0x805E # 0x805F # 0x8061 # 0x8062 # 0x8068 # 0x806F # 0x8070 # 0x8072 # 0x8073 # 0x8074 # 0x8076 # 0x8077 # 0x8079 # 0x807D # 0x807E # 0x807F # 0x8084 # 0x8085 # 0x8086 # 0x8087 # 0x8089 # 0x808B # 0x808C # 0x8093 # 0x8096 # 0x8098 # 0x809A # 0x809B # 0x809D # 0x80A1 # 0x80A2 # 0x80A5 # 0x80A9 # 0x80AA # 0x80AC # 0x80AD # 0x80AF # 0x80B1 # 0x80B2 # 0x80B4 # 0x80BA # 0x80C3 # 0x80C4 # 0x80C6 # 0x80CC # 0x80CE # 0x80D6 # 0x80D9 # 0x80DA # 0x80DB # 0x80DD # 0x80DE # 0x80E1 # 0x80E4 # 0x80E5 # 0x80EF # 0x80F1 # 0x80F4 # 0x80F8 # 0x80FC # 0x80FD # 0x8102 # 0x8105 # 0x8106 # 0x8107 # 0x8108 # 0x8109 # 0x810A # 0x811A # 0x811B # 0x8123 # 0x8129 # 0x812F # 0x8131 # 0x8133 # 0x8139 # 0x813E # 0x8146 # 0x814B # 0x814E # 0x8150 # 0x8151 # 0x8153 # 0x8154 # 0x8155 # 0x815F # 0x8165 # 0x8166 # 0x816B # 0x816E # 0x8170 # 0x8171 # 0x8174 # 0x8178 # 0x8179 # 0x817A # 0x817F # 0x8180 # 0x8182 # 0x8183 # 0x8188 # 0x818A # 0x818F # 0x8193 # 0x8195 # 0x819A # 0x819C # 0x819D # 0x81A0 # 0x81A3 # 0x81A4 # 0x81A8 # 0x81A9 # 0x81B0 # 0x81B3 # 0x81B5 # 0x81B8 # 0x81BA # 0x81BD # 0x81BE # 0x81BF # 0x81C0 # 0x81C2 # 0x81C6 # 0x81C8 # 0x81C9 # 0x81CD # 0x81D1 # 0x81D3 # 0x81D8 # 0x81D9 # 0x81DA # 0x81DF # 0x81E0 # 0x81E3 # 0x81E5 # 0x81E7 # 0x81E8 # 0x81EA # 0x81ED # 0x81F3 # 0x81F4 # 0x81FA # 0x81FB # 0x81FC # 0x81FE # 0x8201 # 0x8202 # 0x8205 # 0x8207 # 0x8208 # 0x8209 # 0x820A # 0x820C # 0x820D # 0x820E # 0x8210 # 0x8212 # 0x8216 # 0x8217 # 0x8218 # 0x821B # 0x821C # 0x821E # 0x821F # 0x8229 # 0x822A # 0x822B # 0x822C # 0x822E # 0x8233 # 0x8235 # 0x8236 # 0x8237 # 0x8238 # 0x8239 # 0x8240 # 0x8247 # 0x8258 # 0x8259 # 0x825A # 0x825D # 0x825F # 0x8262 # 0x8264 # 0x8266 # 0x8268 # 0x826A # 0x826B # 0x826E # 0x826F # 0x8271 # 0x8272 # 0x8276 # 0x8277 # 0x8278 # 0x827E # 0x828B # 0x828D # 0x8292 # 0x8299 # 0x829D # 0x829F # 0x82A5 # 0x82A6 # 0x82AB # 0x82AC # 0x82AD # 0x82AF # 0x82B1 # 0x82B3 # 0x82B8 # 0x82B9 # 0x82BB # 0x82BD # 0x82C5 # 0x82D1 # 0x82D2 # 0x82D3 # 0x82D4 # 0x82D7 # 0x82D9 # 0x82DB # 0x82DC # 0x82DE # 0x82DF # 0x82E1 # 0x82E3 # 0x82E5 # 0x82E6 # 0x82E7 # 0x82EB # 0x82F1 # 0x82F3 # 0x82F4 # 0x82F9 # 0x82FA # 0x82FB # 0x8302 # 0x8303 # 0x8304 # 0x8305 # 0x8306 # 0x8309 # 0x830E # 0x8316 # 0x8317 # 0x8318 # 0x831C # 0x8323 # 0x8328 # 0x832B # 0x832F # 0x8331 # 0x8332 # 0x8334 # 0x8335 # 0x8336 # 0x8338 # 0x8339 # 0x8340 # 0x8345 # 0x8349 # 0x834A # 0x834F # 0x8350 # 0x8352 # 0x8358 # 0x8373 # 0x8375 # 0x8377 # 0x837B # 0x837C # 0x8385 # 0x8387 # 0x8389 # 0x838A # 0x838E # 0x8393 # 0x8396 # 0x839A # 0x839E # 0x839F # 0x83A0 # 0x83A2 # 0x83A8 # 0x83AA # 0x83AB # 0x83B1 # 0x83B5 # 0x83BD # 0x83C1 # 0x83C5 # 0x83CA # 0x83CC # 0x83CE # 0x83D3 # 0x83D6 # 0x83D8 # 0x83DC # 0x83DF # 0x83E0 # 0x83E9 # 0x83EB # 0x83EF # 0x83F0 # 0x83F1 # 0x83F2 # 0x83F4 # 0x83F7 # 0x83FB # 0x83FD # 0x8403 # 0x8404 # 0x8407 # 0x840B # 0x840C # 0x840D # 0x840E # 0x8413 # 0x8420 # 0x8422 # 0x8429 # 0x842A # 0x842C # 0x8431 # 0x8435 # 0x8438 # 0x843C # 0x843D # 0x8446 # 0x8449 # 0x844E # 0x8457 # 0x845B # 0x8461 # 0x8462 # 0x8463 # 0x8466 # 0x8469 # 0x846B # 0x846C # 0x846D # 0x846E # 0x846F # 0x8471 # 0x8475 # 0x8477 # 0x8479 # 0x847A # 0x8482 # 0x8484 # 0x848B # 0x8490 # 0x8494 # 0x8499 # 0x849C # 0x849F # 0x84A1 # 0x84AD # 0x84B2 # 0x84B8 # 0x84B9 # 0x84BB # 0x84BC # 0x84BF # 0x84C1 # 0x84C4 # 0x84C6 # 0x84C9 # 0x84CA # 0x84CB # 0x84CD # 0x84D0 # 0x84D1 # 0x84D6 # 0x84D9 # 0x84DA # 0x84EC # 0x84EE # 0x84F4 # 0x84FC # 0x84FF # 0x8500 # 0x8506 # 0x8511 # 0x8513 # 0x8514 # 0x8515 # 0x8517 # 0x8518 # 0x851A # 0x851F # 0x8521 # 0x8526 # 0x852C # 0x852D # 0x8535 # 0x853D # 0x8540 # 0x8541 # 0x8543 # 0x8548 # 0x8549 # 0x854A # 0x854B # 0x854E # 0x8555 # 0x8557 # 0x8558 # 0x855A # 0x8563 # 0x8568 # 0x8569 # 0x856A # 0x856D # 0x8577 # 0x857E # 0x8580 # 0x8584 # 0x8587 # 0x8588 # 0x858A # 0x8590 # 0x8591 # 0x8594 # 0x8597 # 0x8599 # 0x859B # 0x859C # 0x85A4 # 0x85A6 # 0x85A8 # 0x85A9 # 0x85AA # 0x85AB # 0x85AC # 0x85AE # 0x85AF # 0x85B9 # 0x85BA # 0x85C1 # 0x85C9 # 0x85CD # 0x85CF # 0x85D0 # 0x85D5 # 0x85DC # 0x85DD # 0x85E4 # 0x85E5 # 0x85E9 # 0x85EA # 0x85F7 # 0x85F9 # 0x85FA # 0x85FB # 0x85FE # 0x8602 # 0x8606 # 0x8607 # 0x860A # 0x860B # 0x8613 # 0x8616 # 0x8617 # 0x861A # 0x8622 # 0x862D # 0x862F # 0x8630 # 0x863F # 0x864D # 0x864E # 0x8650 # 0x8654 # 0x8655 # 0x865A # 0x865C # 0x865E # 0x865F # 0x8667 # 0x866B # 0x8671 # 0x8679 # 0x867B # 0x868A # 0x868B # 0x868C # 0x8693 # 0x8695 # 0x86A3 # 0x86A4 # 0x86A9 # 0x86AA # 0x86AB # 0x86AF # 0x86B0 # 0x86B6 # 0x86C4 # 0x86C6 # 0x86C7 # 0x86C9 # 0x86CB # 0x86CD # 0x86CE # 0x86D4 # 0x86D9 # 0x86DB # 0x86DE # 0x86DF # 0x86E4 # 0x86E9 # 0x86EC # 0x86ED # 0x86EE # 0x86EF # 0x86F8 # 0x86F9 # 0x86FB # 0x86FE # 0x8700 # 0x8702 # 0x8703 # 0x8706 # 0x8708 # 0x8709 # 0x870A # 0x870D # 0x8711 # 0x8712 # 0x8718 # 0x871A # 0x871C # 0x8725 # 0x8729 # 0x8734 # 0x8737 # 0x873B # 0x873F # 0x8749 # 0x874B # 0x874C # 0x874E # 0x8753 # 0x8755 # 0x8757 # 0x8759 # 0x875F # 0x8760 # 0x8763 # 0x8766 # 0x8768 # 0x876A # 0x876E # 0x8774 # 0x8776 # 0x8778 # 0x877F # 0x8782 # 0x878D # 0x879F # 0x87A2 # 0x87AB # 0x87AF # 0x87B3 # 0x87BA # 0x87BB # 0x87BD # 0x87C0 # 0x87C4 # 0x87C6 # 0x87C7 # 0x87CB # 0x87D0 # 0x87D2 # 0x87E0 # 0x87EF # 0x87F2 # 0x87F6 # 0x87F7 # 0x87F9 # 0x87FB # 0x87FE # 0x8805 # 0x880D # 0x880E # 0x880F # 0x8811 # 0x8815 # 0x8816 # 0x8821 # 0x8822 # 0x8823 # 0x8827 # 0x8831 # 0x8836 # 0x8839 # 0x883B # 0x8840 # 0x8842 # 0x8844 # 0x8846 # 0x884C # 0x884D # 0x8852 # 0x8853 # 0x8857 # 0x8859 # 0x885B # 0x885D # 0x885E # 0x8861 # 0x8862 # 0x8863 # 0x8868 # 0x886B # 0x8870 # 0x8872 # 0x8875 # 0x8877 # 0x887D # 0x887E # 0x887F # 0x8881 # 0x8882 # 0x8888 # 0x888B # 0x888D # 0x8892 # 0x8896 # 0x8897 # 0x8899 # 0x889E # 0x88A2 # 0x88A4 # 0x88AB # 0x88AE # 0x88B0 # 0x88B1 # 0x88B4 # 0x88B5 # 0x88B7 # 0x88BF # 0x88C1 # 0x88C2 # 0x88C3 # 0x88C4 # 0x88C5 # 0x88CF # 0x88D4 # 0x88D5 # 0x88D8 # 0x88D9 # 0x88DC # 0x88DD # 0x88DF # 0x88E1 # 0x88E8 # 0x88F2 # 0x88F3 # 0x88F4 # 0x88F8 # 0x88F9 # 0x88FC # 0x88FD # 0x88FE # 0x8902 # 0x8904 # 0x8907 # 0x890A # 0x890C # 0x8910 # 0x8912 # 0x8913 # 0x891D # 0x891E # 0x8925 # 0x892A # 0x892B # 0x8936 # 0x8938 # 0x893B # 0x8941 # 0x8943 # 0x8944 # 0x894C # 0x894D # 0x8956 # 0x895E # 0x895F # 0x8960 # 0x8964 # 0x8966 # 0x896A # 0x896D # 0x896F # 0x8972 # 0x8974 # 0x8977 # 0x897E # 0x897F # 0x8981 # 0x8983 # 0x8986 # 0x8987 # 0x8988 # 0x898A # 0x898B # 0x898F # 0x8993 # 0x8996 # 0x8997 # 0x8998 # 0x899A # 0x89A1 # 0x89A6 # 0x89A7 # 0x89A9 # 0x89AA # 0x89AC # 0x89AF # 0x89B2 # 0x89B3 # 0x89BA # 0x89BD # 0x89BF # 0x89C0 # 0x89D2 # 0x89DA # 0x89DC # 0x89DD # 0x89E3 # 0x89E6 # 0x89E7 # 0x89F4 # 0x89F8 # 0x8A00 # 0x8A02 # 0x8A03 # 0x8A08 # 0x8A0A # 0x8A0C # 0x8A0E # 0x8A10 # 0x8A13 # 0x8A16 # 0x8A17 # 0x8A18 # 0x8A1B # 0x8A1D # 0x8A1F # 0x8A23 # 0x8A25 # 0x8A2A # 0x8A2D # 0x8A31 # 0x8A33 # 0x8A34 # 0x8A36 # 0x8A3A # 0x8A3B # 0x8A3C # 0x8A41 # 0x8A46 # 0x8A48 # 0x8A50 # 0x8A51 # 0x8A52 # 0x8A54 # 0x8A55 # 0x8A5B # 0x8A5E # 0x8A60 # 0x8A62 # 0x8A63 # 0x8A66 # 0x8A69 # 0x8A6B # 0x8A6C # 0x8A6D # 0x8A6E # 0x8A70 # 0x8A71 # 0x8A72 # 0x8A73 # 0x8A7C # 0x8A82 # 0x8A84 # 0x8A85 # 0x8A87 # 0x8A89 # 0x8A8C # 0x8A8D # 0x8A91 # 0x8A93 # 0x8A95 # 0x8A98 # 0x8A9A # 0x8A9E # 0x8AA0 # 0x8AA1 # 0x8AA3 # 0x8AA4 # 0x8AA5 # 0x8AA6 # 0x8AA8 # 0x8AAC # 0x8AAD # 0x8AB0 # 0x8AB2 # 0x8AB9 # 0x8ABC # 0x8ABF # 0x8AC2 # 0x8AC4 # 0x8AC7 # 0x8ACB # 0x8ACC # 0x8ACD # 0x8ACF # 0x8AD2 # 0x8AD6 # 0x8ADA # 0x8ADB # 0x8ADC # 0x8ADE # 0x8AE0 # 0x8AE1 # 0x8AE2 # 0x8AE4 # 0x8AE6 # 0x8AE7 # 0x8AEB # 0x8AED # 0x8AEE # 0x8AF1 # 0x8AF3 # 0x8AF7 # 0x8AF8 # 0x8AFA # 0x8AFE # 0x8B00 # 0x8B01 # 0x8B02 # 0x8B04 # 0x8B07 # 0x8B0C # 0x8B0E # 0x8B10 # 0x8B14 # 0x8B16 # 0x8B17 # 0x8B19 # 0x8B1A # 0x8B1B # 0x8B1D # 0x8B20 # 0x8B21 # 0x8B26 # 0x8B28 # 0x8B2B # 0x8B2C # 0x8B33 # 0x8B39 # 0x8B3E # 0x8B41 # 0x8B49 # 0x8B4C # 0x8B4E # 0x8B4F # 0x8B56 # 0x8B58 # 0x8B5A # 0x8B5B # 0x8B5C # 0x8B5F # 0x8B66 # 0x8B6B # 0x8B6C # 0x8B6F # 0x8B70 # 0x8B71 # 0x8B72 # 0x8B74 # 0x8B77 # 0x8B7D # 0x8B80 # 0x8B83 # 0x8B8A # 0x8B8C # 0x8B8E # 0x8B90 # 0x8B92 # 0x8B93 # 0x8B96 # 0x8B99 # 0x8B9A # 0x8C37 # 0x8C3A # 0x8C3F # 0x8C41 # 0x8C46 # 0x8C48 # 0x8C4A # 0x8C4C # 0x8C4E # 0x8C50 # 0x8C55 # 0x8C5A # 0x8C61 # 0x8C62 # 0x8C6A # 0x8C6B # 0x8C6C # 0x8C78 # 0x8C79 # 0x8C7A # 0x8C7C # 0x8C82 # 0x8C85 # 0x8C89 # 0x8C8A # 0x8C8C # 0x8C8D # 0x8C8E # 0x8C94 # 0x8C98 # 0x8C9D # 0x8C9E # 0x8CA0 # 0x8CA1 # 0x8CA2 # 0x8CA7 # 0x8CA8 # 0x8CA9 # 0x8CAA # 0x8CAB # 0x8CAC # 0x8CAD # 0x8CAE # 0x8CAF # 0x8CB0 # 0x8CB2 # 0x8CB3 # 0x8CB4 # 0x8CB6 # 0x8CB7 # 0x8CB8 # 0x8CBB # 0x8CBC # 0x8CBD # 0x8CBF # 0x8CC0 # 0x8CC1 # 0x8CC2 # 0x8CC3 # 0x8CC4 # 0x8CC7 # 0x8CC8 # 0x8CCA # 0x8CCD # 0x8CCE # 0x8CD1 # 0x8CD3 # 0x8CDA # 0x8CDB # 0x8CDC # 0x8CDE # 0x8CE0 # 0x8CE2 # 0x8CE3 # 0x8CE4 # 0x8CE6 # 0x8CEA # 0x8CED # 0x8CFA # 0x8CFB # 0x8CFC # 0x8CFD # 0x8D04 # 0x8D05 # 0x8D07 # 0x8D08 # 0x8D0A # 0x8D0B # 0x8D0D # 0x8D0F # 0x8D10 # 0x8D13 # 0x8D14 # 0x8D16 # 0x8D64 # 0x8D66 # 0x8D67 # 0x8D6B # 0x8D6D # 0x8D70 # 0x8D71 # 0x8D73 # 0x8D74 # 0x8D77 # 0x8D81 # 0x8D85 # 0x8D8A # 0x8D99 # 0x8DA3 # 0x8DA8 # 0x8DB3 # 0x8DBA # 0x8DBE # 0x8DC2 # 0x8DCB # 0x8DCC # 0x8DCF # 0x8DD6 # 0x8DDA # 0x8DDB # 0x8DDD # 0x8DDF # 0x8DE1 # 0x8DE3 # 0x8DE8 # 0x8DEA # 0x8DEB # 0x8DEF # 0x8DF3 # 0x8DF5 # 0x8DFC # 0x8DFF # 0x8E08 # 0x8E09 # 0x8E0A # 0x8E0F # 0x8E10 # 0x8E1D # 0x8E1E # 0x8E1F # 0x8E2A # 0x8E30 # 0x8E34 # 0x8E35 # 0x8E42 # 0x8E44 # 0x8E47 # 0x8E48 # 0x8E49 # 0x8E4A # 0x8E4C # 0x8E50 # 0x8E55 # 0x8E59 # 0x8E5F # 0x8E60 # 0x8E63 # 0x8E64 # 0x8E72 # 0x8E74 # 0x8E76 # 0x8E7C # 0x8E81 # 0x8E84 # 0x8E85 # 0x8E87 # 0x8E8A # 0x8E8B # 0x8E8D # 0x8E91 # 0x8E93 # 0x8E94 # 0x8E99 # 0x8EA1 # 0x8EAA # 0x8EAB # 0x8EAC # 0x8EAF # 0x8EB0 # 0x8EB1 # 0x8EBE # 0x8EC5 # 0x8EC6 # 0x8EC8 # 0x8ECA # 0x8ECB # 0x8ECC # 0x8ECD # 0x8ED2 # 0x8EDB # 0x8EDF # 0x8EE2 # 0x8EE3 # 0x8EEB # 0x8EF8 # 0x8EFB # 0x8EFC # 0x8EFD # 0x8EFE # 0x8F03 # 0x8F05 # 0x8F09 # 0x8F0A # 0x8F0C # 0x8F12 # 0x8F13 # 0x8F14 # 0x8F15 # 0x8F19 # 0x8F1B # 0x8F1C # 0x8F1D # 0x8F1F # 0x8F26 # 0x8F29 # 0x8F2A # 0x8F2F # 0x8F33 # 0x8F38 # 0x8F39 # 0x8F3B # 0x8F3E # 0x8F3F # 0x8F42 # 0x8F44 # 0x8F45 # 0x8F46 # 0x8F49 # 0x8F4C # 0x8F4D # 0x8F4E # 0x8F57 # 0x8F5C # 0x8F5F # 0x8F61 # 0x8F62 # 0x8F63 # 0x8F64 # 0x8F9B # 0x8F9C # 0x8F9E # 0x8F9F # 0x8FA3 # 0x8FA7 # 0x8FA8 # 0x8FAD # 0x8FAE # 0x8FAF # 0x8FB0 # 0x8FB1 # 0x8FB2 # 0x8FB7 # 0x8FBA # 0x8FBB # 0x8FBC # 0x8FBF # 0x8FC2 # 0x8FC4 # 0x8FC5 # 0x8FCE # 0x8FD1 # 0x8FD4 # 0x8FDA # 0x8FE2 # 0x8FE5 # 0x8FE6 # 0x8FE9 # 0x8FEA # 0x8FEB # 0x8FED # 0x8FEF # 0x8FF0 # 0x8FF4 # 0x8FF7 # 0x8FF8 # 0x8FF9 # 0x8FFA # 0x8FFD # 0x9000 # 0x9001 # 0x9003 # 0x9005 # 0x9006 # 0x900B # 0x900D # 0x900E # 0x900F # 0x9010 # 0x9011 # 0x9013 # 0x9014 # 0x9015 # 0x9016 # 0x9017 # 0x9019 # 0x901A # 0x901D # 0x901E # 0x901F # 0x9020 # 0x9021 # 0x9022 # 0x9023 # 0x9027 # 0x902E # 0x9031 # 0x9032 # 0x9035 # 0x9036 # 0x9038 # 0x9039 # 0x903C # 0x903E # 0x9041 # 0x9042 # 0x9045 # 0x9047 # 0x9049 # 0x904A # 0x904B # 0x904D # 0x904E # 0x904F # 0x9050 # 0x9051 # 0x9052 # 0x9053 # 0x9054 # 0x9055 # 0x9056 # 0x9058 # 0x9059 # 0x905C # 0x905E # 0x9060 # 0x9061 # 0x9063 # 0x9065 # 0x9068 # 0x9069 # 0x906D # 0x906E # 0x906F # 0x9072 # 0x9075 # 0x9076 # 0x9077 # 0x9078 # 0x907A # 0x907C # 0x907D # 0x907F # 0x9080 # 0x9081 # 0x9082 # 0x9083 # 0x9084 # 0x9087 # 0x9089 # 0x908A # 0x908F # 0x9091 # 0x90A3 # 0x90A6 # 0x90A8 # 0x90AA # 0x90AF # 0x90B1 # 0x90B5 # 0x90B8 # 0x90C1 # 0x90CA # 0x90CE # 0x90DB # 0x90E1 # 0x90E2 # 0x90E4 # 0x90E8 # 0x90ED # 0x90F5 # 0x90F7 # 0x90FD # 0x9102 # 0x9112 # 0x9119 # 0x912D # 0x9130 # 0x9132 # 0x9149 # 0x914A # 0x914B # 0x914C # 0x914D # 0x914E # 0x9152 # 0x9154 # 0x9156 # 0x9158 # 0x9162 # 0x9163 # 0x9165 # 0x9169 # 0x916A # 0x916C # 0x9172 # 0x9173 # 0x9175 # 0x9177 # 0x9178 # 0x9182 # 0x9187 # 0x9189 # 0x918B # 0x918D # 0x9190 # 0x9192 # 0x9197 # 0x919C # 0x91A2 # 0x91A4 # 0x91AA # 0x91AB # 0x91AF # 0x91B4 # 0x91B5 # 0x91B8 # 0x91BA # 0x91C0 # 0x91C1 # 0x91C6 # 0x91C7 # 0x91C8 # 0x91C9 # 0x91CB # 0x91CC # 0x91CD # 0x91CE # 0x91CF # 0x91D0 # 0x91D1 # 0x91D6 # 0x91D8 # 0x91DB # 0x91DC # 0x91DD # 0x91DF # 0x91E1 # 0x91E3 # 0x91E6 # 0x91E7 # 0x91F5 # 0x91F6 # 0x91FC # 0x91FF # 0x920D # 0x920E # 0x9211 # 0x9214 # 0x9215 # 0x921E # 0x9229 # 0x922C # 0x9234 # 0x9237 # 0x923F # 0x9244 # 0x9245 # 0x9248 # 0x9249 # 0x924B # 0x9250 # 0x9257 # 0x925A # 0x925B # 0x925E # 0x9262 # 0x9264 # 0x9266 # 0x9271 # 0x927E # 0x9280 # 0x9283 # 0x9285 # 0x9291 # 0x9293 # 0x9295 # 0x9296 # 0x9298 # 0x929A # 0x929B # 0x929C # 0x92AD # 0x92B7 # 0x92B9 # 0x92CF # 0x92D2 # 0x92E4 # 0x92E9 # 0x92EA # 0x92ED # 0x92F2 # 0x92F3 # 0x92F8 # 0x92FA # 0x92FC # 0x9306 # 0x930F # 0x9310 # 0x9318 # 0x9319 # 0x931A # 0x9320 # 0x9322 # 0x9323 # 0x9326 # 0x9328 # 0x932B # 0x932C # 0x932E # 0x932F # 0x9332 # 0x9335 # 0x933A # 0x933B # 0x9344 # 0x934B # 0x934D # 0x9354 # 0x9356 # 0x935B # 0x935C # 0x9360 # 0x936C # 0x936E # 0x9375 # 0x937C # 0x937E # 0x938C # 0x9394 # 0x9396 # 0x9397 # 0x939A # 0x93A7 # 0x93AC # 0x93AD # 0x93AE # 0x93B0 # 0x93B9 # 0x93C3 # 0x93C8 # 0x93D0 # 0x93D1 # 0x93D6 # 0x93D7 # 0x93D8 # 0x93DD # 0x93E1 # 0x93E4 # 0x93E5 # 0x93E8 # 0x9403 # 0x9407 # 0x9410 # 0x9413 # 0x9414 # 0x9418 # 0x9419 # 0x941A # 0x9421 # 0x942B # 0x9435 # 0x9436 # 0x9438 # 0x943A # 0x9441 # 0x9444 # 0x9451 # 0x9452 # 0x9453 # 0x945A # 0x945B # 0x945E # 0x9460 # 0x9462 # 0x946A # 0x9470 # 0x9475 # 0x9477 # 0x947C # 0x947D # 0x947E # 0x947F # 0x9481 # 0x9577 # 0x9580 # 0x9582 # 0x9583 # 0x9587 # 0x9589 # 0x958A # 0x958B # 0x958F # 0x9591 # 0x9593 # 0x9594 # 0x9596 # 0x9598 # 0x9599 # 0x95A0 # 0x95A2 # 0x95A3 # 0x95A4 # 0x95A5 # 0x95A7 # 0x95A8 # 0x95AD # 0x95B2 # 0x95B9 # 0x95BB # 0x95BC # 0x95BE # 0x95C3 # 0x95C7 # 0x95CA # 0x95CC # 0x95CD # 0x95D4 # 0x95D5 # 0x95D6 # 0x95D8 # 0x95DC # 0x95E1 # 0x95E2 # 0x95E5 # 0x961C # 0x9621 # 0x9628 # 0x962A # 0x962E # 0x962F # 0x9632 # 0x963B # 0x963F # 0x9640 # 0x9642 # 0x9644 # 0x964B # 0x964C # 0x964D # 0x964F # 0x9650 # 0x965B # 0x965C # 0x965D # 0x965E # 0x965F # 0x9662 # 0x9663 # 0x9664 # 0x9665 # 0x9666 # 0x966A # 0x966C # 0x9670 # 0x9672 # 0x9673 # 0x9675 # 0x9676 # 0x9677 # 0x9678 # 0x967A # 0x967D # 0x9685 # 0x9686 # 0x9688 # 0x968A # 0x968B # 0x968D # 0x968E # 0x968F # 0x9694 # 0x9695 # 0x9697 # 0x9698 # 0x9699 # 0x969B # 0x969C # 0x96A0 # 0x96A3 # 0x96A7 # 0x96A8 # 0x96AA # 0x96B0 # 0x96B1 # 0x96B2 # 0x96B4 # 0x96B6 # 0x96B7 # 0x96B8 # 0x96B9 # 0x96BB # 0x96BC # 0x96C0 # 0x96C1 # 0x96C4 # 0x96C5 # 0x96C6 # 0x96C7 # 0x96C9 # 0x96CB # 0x96CC # 0x96CD # 0x96CE # 0x96D1 # 0x96D5 # 0x96D6 # 0x96D9 # 0x96DB # 0x96DC # 0x96E2 # 0x96E3 # 0x96E8 # 0x96EA # 0x96EB # 0x96F0 # 0x96F2 # 0x96F6 # 0x96F7 # 0x96F9 # 0x96FB # 0x9700 # 0x9704 # 0x9706 # 0x9707 # 0x9708 # 0x970A # 0x970D # 0x970E # 0x970F # 0x9711 # 0x9713 # 0x9716 # 0x9719 # 0x971C # 0x971E # 0x9724 # 0x9727 # 0x972A # 0x9730 # 0x9732 # 0x9738 # 0x9739 # 0x973D # 0x973E # 0x9742 # 0x9744 # 0x9746 # 0x9748 # 0x9749 # 0x9752 # 0x9756 # 0x9759 # 0x975C # 0x975E # 0x9760 # 0x9761 # 0x9762 # 0x9764 # 0x9766 # 0x9768 # 0x9769 # 0x976B # 0x976D # 0x9771 # 0x9774 # 0x9779 # 0x977A # 0x977C # 0x9781 # 0x9784 # 0x9785 # 0x9786 # 0x978B # 0x978D # 0x978F # 0x9790 # 0x9798 # 0x979C # 0x97A0 # 0x97A3 # 0x97A6 # 0x97A8 # 0x97AB # 0x97AD # 0x97B3 # 0x97B4 # 0x97C3 # 0x97C6 # 0x97C8 # 0x97CB # 0x97D3 # 0x97DC # 0x97ED # 0x97EE # 0x97F2 # 0x97F3 # 0x97F5 # 0x97F6 # 0x97FB # 0x97FF # 0x9801 # 0x9802 # 0x9803 # 0x9805 # 0x9806 # 0x9808 # 0x980C # 0x980F # 0x9810 # 0x9811 # 0x9812 # 0x9813 # 0x9817 # 0x9818 # 0x981A # 0x9821 # 0x9824 # 0x982C # 0x982D # 0x9834 # 0x9837 # 0x9838 # 0x983B # 0x983C # 0x983D # 0x9846 # 0x984B # 0x984C # 0x984D # 0x984E # 0x984F # 0x9854 # 0x9855 # 0x9858 # 0x985B # 0x985E # 0x9867 # 0x986B # 0x986F # 0x9870 # 0x9871 # 0x9873 # 0x9874 # 0x98A8 # 0x98AA # 0x98AF # 0x98B1 # 0x98B6 # 0x98C3 # 0x98C4 # 0x98C6 # 0x98DB # 0x98DC # 0x98DF # 0x98E2 # 0x98E9 # 0x98EB # 0x98ED # 0x98EE # 0x98EF # 0x98F2 # 0x98F4 # 0x98FC # 0x98FD # 0x98FE # 0x9903 # 0x9905 # 0x9909 # 0x990A # 0x990C # 0x9910 # 0x9912 # 0x9913 # 0x9914 # 0x9918 # 0x991D # 0x991E # 0x9920 # 0x9921 # 0x9924 # 0x9928 # 0x992C # 0x992E # 0x993D # 0x993E # 0x9942 # 0x9945 # 0x9949 # 0x994B # 0x994C # 0x9950 # 0x9951 # 0x9952 # 0x9955 # 0x9957 # 0x9996 # 0x9997 # 0x9998 # 0x9999 # 0x99A5 # 0x99A8 # 0x99AC # 0x99AD # 0x99AE # 0x99B3 # 0x99B4 # 0x99BC # 0x99C1 # 0x99C4 # 0x99C5 # 0x99C6 # 0x99C8 # 0x99D0 # 0x99D1 # 0x99D2 # 0x99D5 # 0x99D8 # 0x99DB # 0x99DD # 0x99DF # 0x99E2 # 0x99ED # 0x99EE # 0x99F1 # 0x99F2 # 0x99F8 # 0x99FB # 0x99FF # 0x9A01 # 0x9A05 # 0x9A0E # 0x9A0F # 0x9A12 # 0x9A13 # 0x9A19 # 0x9A28 # 0x9A2B # 0x9A30 # 0x9A37 # 0x9A3E # 0x9A40 # 0x9A42 # 0x9A43 # 0x9A45 # 0x9A4D # 0x9A55 # 0x9A57 # 0x9A5A # 0x9A5B # 0x9A5F # 0x9A62 # 0x9A64 # 0x9A65 # 0x9A69 # 0x9A6A # 0x9A6B # 0x9AA8 # 0x9AAD # 0x9AB0 # 0x9AB8 # 0x9ABC # 0x9AC0 # 0x9AC4 # 0x9ACF # 0x9AD1 # 0x9AD3 # 0x9AD4 # 0x9AD8 # 0x9ADE # 0x9ADF # 0x9AE2 # 0x9AE3 # 0x9AE6 # 0x9AEA # 0x9AEB # 0x9AED # 0x9AEE # 0x9AEF # 0x9AF1 # 0x9AF4 # 0x9AF7 # 0x9AFB # 0x9B06 # 0x9B18 # 0x9B1A # 0x9B1F # 0x9B22 # 0x9B23 # 0x9B25 # 0x9B27 # 0x9B28 # 0x9B29 # 0x9B2A # 0x9B2E # 0x9B2F # 0x9B31 # 0x9B32 # 0x9B3B # 0x9B3C # 0x9B41 # 0x9B42 # 0x9B43 # 0x9B44 # 0x9B45 # 0x9B4D # 0x9B4E # 0x9B4F # 0x9B51 # 0x9B54 # 0x9B58 # 0x9B5A # 0x9B6F # 0x9B74 # 0x9B83 # 0x9B8E # 0x9B91 # 0x9B92 # 0x9B93 # 0x9B96 # 0x9B97 # 0x9B9F # 0x9BA0 # 0x9BA8 # 0x9BAA # 0x9BAB # 0x9BAD # 0x9BAE # 0x9BB4 # 0x9BB9 # 0x9BC0 # 0x9BC6 # 0x9BC9 # 0x9BCA # 0x9BCF # 0x9BD1 # 0x9BD2 # 0x9BD4 # 0x9BD6 # 0x9BDB # 0x9BE1 # 0x9BE2 # 0x9BE3 # 0x9BE4 # 0x9BE8 # 0x9BF0 # 0x9BF1 # 0x9BF2 # 0x9BF5 # 0x9C04 # 0x9C06 # 0x9C08 # 0x9C09 # 0x9C0A # 0x9C0C # 0x9C0D # 0x9C10 # 0x9C12 # 0x9C13 # 0x9C14 # 0x9C15 # 0x9C1B # 0x9C21 # 0x9C24 # 0x9C25 # 0x9C2D # 0x9C2E # 0x9C2F # 0x9C30 # 0x9C32 # 0x9C39 # 0x9C3A # 0x9C3B # 0x9C3E # 0x9C46 # 0x9C47 # 0x9C48 # 0x9C52 # 0x9C57 # 0x9C5A # 0x9C60 # 0x9C67 # 0x9C76 # 0x9C78 # 0x9CE5 # 0x9CE7 # 0x9CE9 # 0x9CEB # 0x9CEC # 0x9CF0 # 0x9CF3 # 0x9CF4 # 0x9CF6 # 0x9D03 # 0x9D06 # 0x9D07 # 0x9D08 # 0x9D09 # 0x9D0E # 0x9D12 # 0x9D15 # 0x9D1B # 0x9D1F # 0x9D23 # 0x9D26 # 0x9D28 # 0x9D2A # 0x9D2B # 0x9D2C # 0x9D3B # 0x9D3E # 0x9D3F # 0x9D41 # 0x9D44 # 0x9D46 # 0x9D48 # 0x9D50 # 0x9D51 # 0x9D59 # 0x9D5C # 0x9D5D # 0x9D5E # 0x9D60 # 0x9D61 # 0x9D64 # 0x9D6C # 0x9D6F # 0x9D72 # 0x9D7A # 0x9D87 # 0x9D89 # 0x9D8F # 0x9D9A # 0x9DA4 # 0x9DA9 # 0x9DAB # 0x9DAF # 0x9DB2 # 0x9DB4 # 0x9DB8 # 0x9DBA # 0x9DBB # 0x9DC1 # 0x9DC2 # 0x9DC4 # 0x9DC6 # 0x9DCF # 0x9DD3 # 0x9DD9 # 0x9DE6 # 0x9DED # 0x9DEF # 0x9DF2 # 0x9DF8 # 0x9DF9 # 0x9DFA # 0x9DFD # 0x9E1A # 0x9E1B # 0x9E1E # 0x9E75 # 0x9E78 # 0x9E79 # 0x9E7D # 0x9E7F # 0x9E81 # 0x9E88 # 0x9E8B # 0x9E8C # 0x9E91 # 0x9E92 # 0x9E93 # 0x9E95 # 0x9E97 # 0x9E9D # 0x9E9F # 0x9EA5 # 0x9EA6 # 0x9EA9 # 0x9EAA # 0x9EAD # 0x9EB8 # 0x9EB9 # 0x9EBA # 0x9EBB # 0x9EBC # 0x9EBE # 0x9EBF # 0x9EC4 # 0x9ECC # 0x9ECD # 0x9ECE # 0x9ECF # 0x9ED0 # 0x9ED2 # 0x9ED4 # 0x9ED8 # 0x9ED9 # 0x9EDB # 0x9EDC # 0x9EDD # 0x9EDE # 0x9EE0 # 0x9EE5 # 0x9EE8 # 0x9EEF # 0x9EF4 # 0x9EF6 # 0x9EF7 # 0x9EF9 # 0x9EFB # 0x9EFC # 0x9EFD # 0x9F07 # 0x9F08 # 0x9F0E # 0x9F13 # 0x9F15 # 0x9F20 # 0x9F21 # 0x9F2C # 0x9F3B # 0x9F3E # 0x9F4A # 0x9F4B # 0x9F4E # 0x9F4F # 0x9F52 # 0x9F54 # 0x9F5F # 0x9F60 # 0x9F61 # 0x9F62 # 0x9F63 # 0x9F66 # 0x9F67 # 0x9F6A # 0x9F6C # 0x9F72 # 0x9F76 # 0x9F77 # 0x9F8D # 0x9F95 # 0x9F9C # 0x9F9D # 0x9FA0 # #0xFFE5 # FULLWIDTH YEN SIGN fontconfig-2.11.1/fc-lang/si.orth0000664000076400007640000000517612267155334013524 00000000000000# # fontconfig/fc-lang/si.orth # # Copyright © 2002 Keith Packard # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Sinhala/Sinhalese (si) # # The document SINHALA CHARACTER CODE FOR INFORMATION INTERCHANGE, PART 2: # REQUIREMENTS AND METHODS OF TEST (SLS 1134:PART2:2007 UDC 003.035:003.336) # describes three (3) levels of compliance for Unicode Sinhala fonts. The # first level describes the minimum requirements for SLS certification. The # third level includes the first and second level requirements and additional # requirements. # # To get a copy of this document contact the Sri Lanka Standards Institution # (http://www.slsi.lk/). # # The Unicode document: http://unicode.org/charts/PDF/U0D80.PDF # describes the base for level 3 compliance. # # Level 1 compliance can be described as level 3 with the exclusion of: # U+0D8F ILUYANNA (Independent Vowel) # U+0D90 ILUUYANNA (Independent Vowel) # U+0DDF GAYANUKITTA (Dependent Vowel) # U+0DF3 DIGA GAYANUKITTA (Dependent Vowel) # U+0DF4 KUNDDALIYA (Punctuation) # # Sinhala and SLS1134 experts can be contacted at: # sinhala-technical at lists.sourceforge.net # ltrl at ucsc.cmb.ac.lk # # Semi Consonants 0d82-0d83 # Independent Vowels 0d85-0d8d # 0d8e IRUUYANNA (Level 1, but not in modern use) # 0d8f ILUYANNA (Level 3) # 0d90 ILUUYANNA (Level 3) 0d91-0d96 # Consonants 0d9a-0da5 #0da6 SANYAKA JAYANNA (Level 1, but not in modern use) 0da7-0db1 0db3-0dbb 0dbd 0dc0-0dc6 # Dependent Vowels 0dca 0dcf-0dd4 0dd6 0dd8-0dde # 0ddf GAYANUKITTA (Level 3) 0df2 # 0df3 DIGA GAYANUKITTA (Level 3) # Punctuation # 0df4 KUNDDALIYA (Level 3) fontconfig-2.11.1/fc-lang/mk.orth0000664000076400007640000000264212267155334013513 00000000000000# # fontconfig/fc-lang/mk.orth # # 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. # # Macedonian (MK) 0400 # CYRILLIC CAPITAL LETTER IE WITH GRAVE 0403 0405 0408-040a 040c 040d # CYRILLIC CAPITAL LETTER I WITH GRAVE 040f 0410-0418 041a-0428 0450 # CYRILLIC SMALL LETTER IE WITH GRAVE 0453 0455 0458-045a 045c 045d # CYRILLIC SMALL LETTER I WITH GRAVE 045f fontconfig-2.11.1/fc-lang/sma.orth0000664000076400007640000000241712267155334013664 00000000000000# # fontconfig/fc-lang/sma.orth # # 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. # # South Sámi (SMA) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 00c4 00e4 00c5 00e5 00d6 00f6 00cf 00ef fontconfig-2.11.1/fc-lang/fat.orth0000664000076400007640000000254412267155334013657 00000000000000# # fontconfig/fc-lang/fat.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Fanti (fat) # # According to ISO 639-3, Akan is a macro-language of Twi and Fanti. # Information on the web indicates Twi and Fanti now have a unified # orthography. We include Twi. # include tw.orth fontconfig-2.11.1/fc-lang/fil.orth0000664000076400007640000000315212267155334013653 00000000000000# # fontconfig/fc-lang/fil.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Filipino (fil) # # Sources: # * Paul Morrow, "A Brief Guide to Filipino Pronunciation", # http://www.mts.net/~pmorrow/filpro.htm # * Komisyon sa Wikang Filipino, "Ang Ortograpiya ng Wikang Pambansa", # http://wika.pbwiki.com/f/ORTOPDF.pdf (in Filipino) # * CLDR exemplar set for Filipino: # http://unicode.org/cldr/data/common/main/fil.xml # 0041-005A 0061-007A 00C0-00C2 00C8-00CA 00CC-00CE 00D1-00D4 00D9-00DB 00E0-00E2 00E8-00EA 00EC-00EE 00F1-00F4 00F9-00FB fontconfig-2.11.1/fc-lang/eu.orth0000664000076400007640000000357412267155334013522 00000000000000# # fontconfig/fc-lang/eu.orth # # 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. # # Basque (EU) # # Sources: # www.evertype.com # www.eki.ee/letter # # The orthography from evertype.com comes from the Académie de la Langue # Basque prior to 1926. eki.ee adds some additional letters, marked here # and commented out. I've also commented out some older letters # from the evertype.com orthography which are (apparently) no longer # in use # 0041-005a 0061-007a #00C7 # LATIN CAPITAL LETTER C WITH CEDILLA eki.ee 00D1 LATIN CAPITAL LETTER N WITH TILDE 00DC LATIN CAPITAL LETTER U WITH DIAERESIS #00E7 # LATIN SMALL LETTER C WITH CEDILLA eki.ee 00F1 LATIN SMALL LETTER N WITH TILDE 00FC LATIN SMALL LETTER U WITH DIAERESIS #0154 LATIN CAPITAL LETTER R WITH ACUTE evertype.com #0155 LATIN SMALL LETTER R WITH ACUTE evertype.com fontconfig-2.11.1/fc-lang/kn.orth0000664000076400007640000000253312267155334013513 00000000000000# # fontconfig/fc-lang/kn.orth # # 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. # # Kannada (kn) # # Taken from the Unicode coverage of this language # 0c82-0c83 0c85-0c8c 0c8e-0c90 0c92-0ca8 0caa-0cb3 0cb5-0cb9 0cbe-0cc4 0cc6-0cc8 0cca-0ccd 0cd5-0cd6 0cde 0ce0-0ce1 #0ce6-0cef # Digits fontconfig-2.11.1/fc-lang/jv.orth0000664000076400007640000000263412267155334013524 00000000000000# # fontconfig/fc-lang/jv.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Javanese (jv) # # Sources: # http://www.omniglot.com/writing/javanese.htm # http://en.wikipedia.org/wiki/Javanese_language # # The historical Javanese script is not the main script anymore. Latin has # replaced it. # 0041-005A 0061-007A 00C8-00C9 00E8-00E9 fontconfig-2.11.1/fc-lang/za.orth0000664000076400007640000000314712267155334013517 00000000000000# # fontconfig/fc-lang/za.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Zhuang/Chuang (za) # # Sources: # * http://www.omniglot.com/writing/zhuang.htm # * http://www006.upp.so-net.ne.jp/FFS/zhuangyu_ch01.htm # * http://en.wikipedia.org/wiki/Zhuang_language # # There is an older orthography with several uncommon letters that was # reformed in 1986. In the 1986 orthography, just basic Latin letters are # used. # # Some letters are not used. Apostrophe is used, but usage is comparable to # usage in English. # 0041-005A 0061-007A fontconfig-2.11.1/fc-lang/ay.orth0000664000076400007640000000311312267155334013507 00000000000000# # fontconfig/fc-lang/ay.orth # # 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. # # Aymara (KW) # # Orthography from http://www.aymara.org/arusa/qillqa_eng.html # 0041-005a 0061-007a 00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS 00CF # LATIN CAPITAL LETTER I WITH DIAERESIS 00D1 # LATIN CAPITAL LETTER N WITH TILDE 00DC # LATIN CAPITAL LETTER U WITH DIAERESIS 00E4 # LATIN SMALL LETTER A WITH DIAERESIS 00EF # LATIN SMALL LETTER I WITH DIAERESIS 00F1 # LATIN SMALL LETTER N WITH TILDE 00FC # LATIN SMALL LETTER U WITH DIAERESIS fontconfig-2.11.1/fc-lang/cs.orth0000664000076400007640000000544512267155334013515 00000000000000# # fontconfig/fc-lang/cs.orth # # 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. # # Czech (CS) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a 00C1 # LATIN CAPITAL LETTER A WITH ACUTE #00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS evertype.com 00C9 # LATIN CAPITAL LETTER E WITH ACUTE 00CD # LATIN CAPITAL LETTER I WITH ACUTE 00D3 # LATIN CAPITAL LETTER O WITH ACUTE #00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS evertype.com 00DA # LATIN CAPITAL LETTER U WITH ACUTE #00DC # LATIN CAPITAL LETTER U WITH DIAERESIS evertype.com 00DD # LATIN CAPITAL LETTER Y WITH ACUTE 00E1 # LATIN SMALL LETTER A WITH ACUTE #00E4 # LATIN SMALL LETTER A WITH DIAERESIS evertype.com 00E9 # LATIN SMALL LETTER E WITH ACUTE 00ED # LATIN SMALL LETTER I WITH ACUTE 00F3 # LATIN SMALL LETTER O WITH ACUTE #00F6 # LATIN SMALL LETTER O WITH DIAERESIS evertype.com 00FA # LATIN SMALL LETTER U WITH ACUTE #00FC # LATIN SMALL LETTER U WITH DIAERESIS evertype.com 00FD # LATIN SMALL LETTER Y WITH ACUTE 010C # LATIN CAPITAL LETTER C WITH CARON 010D # LATIN SMALL LETTER C WITH CARON 010E # LATIN CAPITAL LETTER D WITH CARON 010F # LATIN SMALL LETTER D WITH CARON 011A # LATIN CAPITAL LETTER E WITH CARON 011B # LATIN SMALL LETTER E WITH CARON 0147 # LATIN CAPITAL LETTER N WITH CARON 0148 # LATIN SMALL LETTER N WITH CARON 0158 # LATIN CAPITAL LETTER R WITH CARON 0159 # LATIN SMALL LETTER R WITH CARON 0160 # LATIN CAPITAL LETTER S WITH CARON 0161 # LATIN SMALL LETTER S WITH CARON 0164 # LATIN CAPITAL LETTER T WITH CARON 0165 # LATIN SMALL LETTER T WITH CARON 016E # LATIN CAPITAL LETTER U WITH RING ABOVE 016F # LATIN SMALL LETTER U WITH RING ABOVE 017D # LATIN CAPITAL LETTER Z WITH CARON 017E # LATIN SMALL LETTER Z WITH CARON fontconfig-2.11.1/fc-lang/gv.orth0000664000076400007640000000241012267155334013511 00000000000000# # fontconfig/fc-lang/gv.orth # # 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. # # Manx Gaelic (GV) # # Orthography from http://www.evertype.com/alphabets/manx-gaelic.pdf # 0041-005a 0061-007a 00c7 00e7 fontconfig-2.11.1/fc-lang/nr.orth0000664000076400007640000000262112267155334013520 00000000000000# # fontconfig/fc-lang/nr.orth # # Copyright © 2007 Dwayne Bailey and Translate.org.za # # 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 Dwayne Bailey or Translate.org.za not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. Dwayne Bailey and Translate.org.za makes no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # DWAYNE BAILEY AND TRANSLATE.ORG.ZA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL DWAYNE BAILEY OR TRANSLATE.ORG.ZA 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. # # Ndebele, South (NR) # # Orthography taken from http://www.inference.phy.cam.ac.uk/dasher/download/alphabets/alphabet.Ndebele.xml # 0041-005a 0061-007a fontconfig-2.11.1/fc-lang/qu.orth0000664000076400007640000000257012267155334013531 00000000000000# # fontconfig/fc-lang/qu.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Quechua (qu) # # Sources: # * http://en.wikipedia.org/wiki/Quechua_alphabet # * http://www.omniglot.com/writing/quechua.htm # # Some basic Latin letters are not used, based on dialect # 0041-005A 0061-007A 00D1 00F1 02C8 fontconfig-2.11.1/fc-lang/gl.orth0000664000076400007640000000254112267155334013504 00000000000000# # fontconfig/fc-lang/gl.orth # # 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. # # Galician (GL) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a #00a1 #00ab #00bb #00bf 00c1 00c9 00cd 00d1 00d3 00da 00dc 00e1 00e9 00ed 00f1 00f3 00fa 00fc #2019-201a # single qutoes fontconfig-2.11.1/fc-lang/zh_sg.orth0000664000076400007640000000234412267155334014215 00000000000000# # fontconfig/fc-lang/zh_sg.orth # # 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. # # Chinese in Singapore (ZH-SG) # # Just use GB2312 as for ZH-CN include zh_cn.orth fontconfig-2.11.1/fc-lang/fj.orth0000664000076400007640000000267212267155334013506 00000000000000# # fontconfig/fc-lang/fj.orth # # 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. # # Fijian (KW) # # Orthography guessed from http://www.deeptrans.com/deeptrans/german.html # # There may be diacritical marks used, but I couldn't find any information # about them, nor any Fijian text using them. # # Fijian doesn't use h, x, z and uses f, j and p in loan words # 0041-005a 0061-007a fontconfig-2.11.1/fc-lang/ur.orth0000664000076400007640000000356612267155334013540 00000000000000# # fontconfig/fc-lang/ur.orth # # Copyright © 2002 Keith Packard # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The 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. # # Urdu (ur) # # We are assuming that: # * Most fonts that claim to support an Arabic letter actually do so; # * Most modern text rendering software use OpenType tables, instead of # directly using presentation forms. # * Some good Arabic fonts do not support codepoints for Arabic presentation # forms. # Thus, we are switching to general forms of Arabic letters. # # General forms: 0621-0624 0626-0628 063a 0641-0642 0644-0646 0648 0679 067e 0686 0688 0691 0698 06a9 06af 06ba 06be 06c3 06cc 06d2 # Presentations forms: #fb56-fb59 #fb66-fb69 #fb7a-fb7d #fb88-fb8d #fb8e-fb95 #fb9e-fb9f #fbfc-fbff #fbaa-fbaf #fe80-fe86 #fe89-fed8 #fedd-feee ##fef5-fef8 # These four happen very rarely #fefb-fefc fontconfig-2.11.1/fc-lang/kok.orth0000664000076400007640000000230212267155334013661 00000000000000# # fontconfig/fc-lang/kok.orth # # 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. # # Kokani (Devanagari script) (KOK) include hi.orth fontconfig-2.11.1/fc-lang/ps_pk.orth0000664000076400007640000000312312267155334014213 00000000000000# # fontconfig/fc-lang/ps_pk.orth # # 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. # # Pashto in Pakistan (PS-PK) # # Data from Roozbeh Pournader # # Since the Unicode Presentation Forms don't contain any of the # Pashto-specific letters (that is Pashto letters not in Persian), we are # going with the general forms instead of the Presentation forms, unlike # Arabic, Persian, or Urdu. # 0621-0624 0626-063a 0641-0642 0644-0648 064a 067c 067e 0681 0685-0686 0689 0693 0696 0698 069a 06a9 06ab 06bc 06cd 06d0 06d2 fontconfig-2.11.1/fc-lang/doi.orth0000664000076400007640000000303712267155334013656 00000000000000# # fontconfig/fc-lang/doi.orth # # Copyright © 2012 Pravin Satpute # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Dogri (doi) # # Source: Enhanced inscript: http://malayalam.kerala.gov.in/images/8/80/Qwerty_enhancedinscriptkeyboardlayout.pdf Page No. 58 # Encircled these characters in Unicode chart: http://pravins.fedorapeople.org/Dogri-characters.pdf # documents 0902-0903 0905-090c 090f-0910 0913-0928 092a-0930 0932 0935-0939 093c-0944 0947-0948 094b-094d 0950-0952 095b-096f fontconfig-2.11.1/fc-lang/nb.orth0000664000076400007640000000226712267155334013506 00000000000000# # fontconfig/fc-lang/nb.orth # # 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. # # Norwegian Bokmål (nb) include no.orth fontconfig-2.11.1/fc-lang/na.orth0000664000076400007640000000254412267155334013503 00000000000000# # fontconfig/fc-lang/na.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Nauru (na) # # Sources: # * http://en.wikipedia.org/wiki/Nauruan_language # * http://www.geonames.de/alphmq.html # # V and X are not used. # 0041-005A 0061-007A 00C3 00D1 00D5 00E3 00F1 00F5 0168-0169 fontconfig-2.11.1/fc-lang/fi.orth0000664000076400007640000000414712267155334013504 00000000000000# # fontconfig/fc-lang/fi.orth # # 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. # # Finnish (FI) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a #00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK * 00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS 00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE #00C6 # LATIN CAPITAL LETTER AE (ash) * evertype.com #00D5 # LATIN CAPITAL LETTER O WITH TILDE evertype.com 00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS #00DC # LATIN CAPITAL LETTER U WITH DIAERESIS evertype.com 00E4 # LATIN SMALL LETTER A WITH DIAERESIS 00E5 # LATIN SMALL LETTER A WITH RING ABOVE #00E6 # LATIN SMALL LETTER AE (ash) * evertype.com #00F5 # LATIN SMALL LETTER O WITH TILDE evertype.com 00F6 # LATIN SMALL LETTER O WITH DIAERESIS #00FC # LATIN SMALL LETTER U WITH DIAERESIS evertype.com 0160 # LATIN CAPITAL LETTER S WITH CARON 0161 # LATIN SMALL LETTER S WITH CARON 017D # LATIN CAPITAL LETTER Z WITH CARON 017E # LATIN SMALL LETTER Z WITH CARON #2019 # single quote #201d # double quote #203a # angle quote fontconfig-2.11.1/fc-lang/ka.orth0000664000076400007640000000277512267155334013506 00000000000000# # fontconfig/fc-lang/ka.orth # # 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. # # Georgian (KA) # 0589 # Armenian full stop (vertsaket) #10a0-10c5 # capital letters, not used in normal writing 10d0-10f0 #10f1-10f6 # Archaic letters not included in modern fonts #10f7-10f8 # additional letters for Mingrelian and Svan #10fb # Ancient Georgian paragraph separator #2018 # single quote #201a # single quote #201c # double quote #201e # double quote fontconfig-2.11.1/fc-lang/tr.orth0000664000076400007640000000371612267155334013534 00000000000000# # fontconfig/fc-lang/tr.orth # # 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. # # Turkish (TR) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX 00C7 LATIN CAPITAL LETTER C WITH CEDILLA 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS 00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX 00DC LATIN CAPITAL LETTER U WITH DIAERESIS 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX 00E7 LATIN SMALL LETTER C WITH CEDILLA 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX 00F6 LATIN SMALL LETTER O WITH DIAERESIS 00FB LATIN SMALL LETTER U WITH CIRCUMFLEX 00FC LATIN SMALL LETTER U WITH DIAERESIS 011E LATIN CAPITAL LETTER G WITH BREVE 011F LATIN SMALL LETTER G WITH BREVE 0130 LATIN CAPITAL LETTER I WITH DOT ABOVE 0131 LATIN SMALL LETTER DOTLESS I 015E LATIN CAPITAL LETTER S WITH CEDILLA * 015F LATIN SMALL LETTER S WITH CEDILLA * fontconfig-2.11.1/fc-lang/chr.orth0000664000076400007640000000225212267155334013655 00000000000000# # fontconfig/fc-lang/chr.orth # # 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. # # Cherokee (chr) 13a0-13f4 fontconfig-2.11.1/fc-lang/fa.orth0000664000076400007640000000552012267155334013470 00000000000000# # fontconfig/fc-lang/fa.orth # # Copyright © 2002 Keith Packard # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The 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. # # Persian (fa) # # Sources: # * ISIRI 6219:2002, "Information Technology — Persian Information # Interchange and Display Mechanism, using Unicode" # * "Dastur-e Khat-te Fārsi", Iranian Academy of Persian Language and # Literature, 4th printing, December 2005, ISBN 964-7531-13-3. Available # at http://www.persianacademy.ir/fa/das.aspx # # We are assuming that: # * Most fonts that claim to support an Arabic letter actually do so; # * Most modern text rendering software use OpenType tables, instead of # directly using presentation forms. # * Some good Arabic fonts do not support codepoints for Arabic presentation # forms. # Thus, we are switching to general forms of Arabic letters. # # General forms: 0621-0624 0626-0628 0629 # TEH MARBUTA, implicitly considered mandatory in the official orthography 062a-063a 0641-0642 0644-0648 064b # FATHATAN, considered mandatory in the official orthography # 064b-064d # DAMMATAN and KASRATAN, considered mandatory in the official orthography, but very rare # 064e-0650 # FATHA, DAMMA, and KASRA, not mandataroy in the official orthography # 0651 # SHADDA, considered mandatory only for legal texts # 0652 # SUKUN, not mandatory in the official orthography 0654 # HAMZA ABOVE, considered mandatory in the official orthography # 0656 # SUBSCRIPT ALEF, not mentioned in official orthography, but sometimes used # 0670 # SUPERSCRIPT ALEF, not explicilty listed in the official orthography, although used in the document; not mandatory 067e 0686 0698 06a9 06af 06cc # Presentations forms: #fb56-fb59 #fb7a-fb7d #fb8a-fb8b #fb8e-fb95 #fbfc-fbff #fe80-fe86 #fe89-fed8 #fedd-feee ##fef5-fef8 # These four happen very rarely #fefb-fefc fontconfig-2.11.1/fc-lang/an.orth0000664000076400007640000000261412267155334013501 00000000000000# # fontconfig/fc-lang/an.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Aragonese (an) # # Source: # * Consello d’a Fabla Aragonesa, "Normas graficas de l’aragonés", at # http://www.charrando.com/normasgraficas.pdf # 0041-005A 0061-007A 00C1 00C9 00CD 00D1 00D3 00DA 00DC 00E1 00E9 00ED 00F1 00F3 00FA 00FC fontconfig-2.11.1/fc-lang/mn_cn.orth0000664000076400007640000000257412267155334014202 00000000000000# # fontconfig/fc-lang/mn_cn.orth # # 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. # # Mongolian in China (mn-CN) # # Taken from the Unicode coverage of this language # # Basic letters 1820-1842 # Todo letters 1843-185c # Sibe letters 185d-1872 # Manchu letters 1873-1877 # Extensions for Sanskrit and Tibetan 1880-18a9 fontconfig-2.11.1/fc-lang/zh_mo.orth0000664000076400007640000000265712267155334014226 00000000000000# # fontconfig/fc-lang/zh_mo.orth # # 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. # # Chinese in Macau (ZH-MO) # # from Abel Cheung: # # a majority of Macau people speak Cantonese too, and also uses additional # traditional Chinese chars from Hong Kong (there are already some place names # that can't be represented in just chars used in Taiwan). # include zh_hk.orth fontconfig-2.11.1/fc-lang/lt.orth0000664000076400007640000000260512267155334013522 00000000000000# # fontconfig/fc-lang/lt.orth # # 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. # # Lithuanian (LT) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a 0104-0105 010c-010d #0106-0109 0116-0117 0118-0119 012e-012f 0160-0161 016a-016b 0172-0173 017d-017e #2019-201a # single quotes #201d-201e # double quotes fontconfig-2.11.1/fc-lang/haw.orth0000664000076400007640000000243312267155334013661 00000000000000# # fontconfig/fc-lang/haw.orth # # 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. # # Hawaiian (HAW) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 0100-0101 0112-0113 012a-012b 014c-014d 016a-016b 02bb fontconfig-2.11.1/fc-lang/gd.orth0000664000076400007640000000257412267155334013502 00000000000000# # fontconfig/fc-lang/gd.orth # # 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. # # Scots Gaelic (GD) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a 00c0 00c1 00c7 00c8 00c9 00cc 00d2 00d3 00d9 00e0 00e1 00e7 00e8 00e9 00ec 00f2 00f3 00f9 #2018-2019 # single quotes #201c-201d # double quotes fontconfig-2.11.1/fc-lang/ber_ma.orth0000664000076400007640000000310512267155334014324 00000000000000# # fontconfig/fc-lang/ber_ma.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Berber in Morocco (ber-MA) # # Tifinagh is the official script for Berber language(s) in Morocco. # The character list comes from Institut Royal de la Culture Amazighe (IRCAM). # Sources: # http://www.omniglot.com/writing/tifinagh.htm # http://www.win.tue.nl/~aeb/natlang/berber/tifinagh/tifinagh.html 2D30-2D31 2D33 2D37 2D39 2D3B-2D3D 2D40 2D43-2D45 2D47 2D49-2D4A 2D4D-2D4F 2D53-2D56 2D59-2D5C 2D5F 2D61-2D63 2D65 2D6F fontconfig-2.11.1/fc-lang/wo.orth0000664000076400007640000000244512267155334013532 00000000000000# # fontconfig/fc-lang/wo.orth # # 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. # # Wolof (WO) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 00c0 00e0 00c3 00e3 00c9 00e9 00cb 00eb 00d1 00f1 014a-014b 00d3 00f3 fontconfig-2.11.1/fc-lang/hr.orth0000664000076400007640000000310412267155334013507 00000000000000# # fontconfig/fc-lang/hr.orth # # 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. # # Croatian (HR) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a #00c0 # evertype.com #00c8 # evertype.com #00cc # evertype.com #00d2 # evertype.com #00d9 # evertype.com #00e0 # evertype.com #00e8 # evertype.com #00ec # evertype.com #00f2 # evertype.com #00f9 # evertype.com 0106-0107 010c-010d 0110-0111 0160-0161 017d-017e #01c4-01cc # evertype.com #01f1-01f5 # evertype.com #0200-0217 # evertype.com fontconfig-2.11.1/fc-lang/pa_pk.orth0000664000076400007640000000257712267155334014205 00000000000000# # fontconfig/fc-lang/pa_pk.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Panjabi/Punjabi in Pakistan (pa-PK) # # This file is kept for compatiblity for glibc: According to ISO 639-3, the # proper code for Pakistani Panjabi is 'lah'. See the file 'lah.orth' for # more information. include lah.orth fontconfig-2.11.1/fc-lang/ne.orth0000664000076400007640000000346712267155334013514 00000000000000# # fontconfig/fc-lang/ne.orth # # Copyright © 2002 Keith Packard # Copyright © 2012 Parag Nemade, Pravin Satpute # # 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. # # Nepali (ne) # # Source: http://www.panl10n.net/english/Outputs%20Phase%202/CCs/Nepal/MPP/Papers/2007/0702/mpp_reports_pdf/report_character_encoding_constraints_nepali.pdf # 0901-0903 # Various Signs 0905-090b # Independent vowels 090f-0910 # Independent vowels 0913-0914 # Independent vowels 0915-0928 # Consonants 092a-0930 # Consonants 0932 # Consonants 0935-0939 # Consonants 093e-0943 # Various and Dependent vowel signs 0947-0948 # Dependent vowel signs 094b-094d # Dependent vowel signs and virama 0950 # Sign and vedic tone marks 0964-0965 # Punctuations 0966-096F # Digits 0970 # Abbrevation sign fontconfig-2.11.1/fc-lang/syr.orth0000664000076400007640000000243412267155334013720 00000000000000# # fontconfig/fc-lang/syr.orth # # 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. # # Syriac (SYR) # # Coverage given by Emil Soleyman-Zomalan # 0710-072c # Syriac letters 0730-073f # Syriac points (vowels) fontconfig-2.11.1/fc-lang/ml.orth0000664000076400007640000000251112267155334013507 00000000000000# # fontconfig/fc-lang/ml.orth # # 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. # # Malayalam (ml) # # Taken from the Unicode coverage of this language # 0d02-0d03 0d05-0d0c 0d0e-0d10 0d12-0d28 0d2a-0d39 0d3e-0d43 0d46-0d48 0d4a-0d4d 0d57 0d60-0d61 #0d66-0d6f # Digits fontconfig-2.11.1/fc-lang/lez.orth0000664000076400007640000000322312267155334013672 00000000000000# # fontconfig/fc-lang/lez.orth # # 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. # # Coverage taken from TITUS (Thesaurus Indogermanischer Text und # Sprachmaterialien) # # http://titus.uni-frankfurt.de/unicode/alphabet/nslatest.htm # # Lezghian (Lezgian) (LEZ) # 0401 0406 0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041a 041b 041c 041d 041e 041f 0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042a 042b 042c 042d 042e 042f 0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043a 043b 043c 043d 043e 043f 0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044a 044b 044c 044d 044e 044f 0451 fontconfig-2.11.1/fc-lang/th.orth0000664000076400007640000000236112267155334013515 00000000000000# # fontconfig/fc-lang/th.orth # # 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. # # Thai (th) # 0e01-0e3a 0e3f-0e4e #0e4f # Punctuation #0e50-0e59 # Digits #0e5a-0e5b # Punctuation fontconfig-2.11.1/fc-lang/bi.orth0000664000076400007640000000273712267155334013503 00000000000000# # fontconfig/fc-lang/bi.orth # # 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. # # Bislama (BI) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 00c9 00e9 00cf 00ef #e000 # LATIN CAPITAL LETTER M WITH MACRON (no UCS code) #e001 # LATIN SMALL LETTER M WITH MACRON (no UCS code) #e002 # LATIN CAPITAL LETTER P WITH MACRON (no UCS code) #e003 # LATIN SMALL LETTER P WITH MACRON (no UCS code) 00dc 00fc fontconfig-2.11.1/fc-lang/fclang.tmpl.h0000664000076400007640000000226112267155334014561 00000000000000/* * fontconfig/fc-lang/fclang.tmpl.h * * 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. */ @@@ fontconfig-2.11.1/fc-lang/hz.orth0000664000076400007640000000250412267155334013522 00000000000000# # fontconfig/fc-lang/hz.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Herero (hz) # # Source: # * http://www.omniglot.com/writing/herero.php # # C, Q, and X are not used. # 0041-005A 0061-007A 032F # used under S and Z 1E12-1E13 1E4A-1E4B fontconfig-2.11.1/fc-lang/sm.orth0000664000076400007640000000234512267155334013523 00000000000000# # fontconfig/fc-lang/sm.orth # # 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. # # Samoan (AF) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 02bb fontconfig-2.11.1/fc-lang/ve.orth0000664000076400007640000000242112267155334013511 00000000000000# # fontconfig/fc-lang/ve.orth # # 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. # # Venda (ve) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 1e12-1e13 1e3c-1e3d 1e44-1e45 1e4a-1e4b 1e70-1e71 fontconfig-2.11.1/fc-lang/vo.orth0000664000076400007640000000237012267155334013526 00000000000000# # fontconfig/fc-lang/vo.orth # # 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. # # Volapük (VO) 0041-0050 0052-0056 0058-005a 0061-0070 0072-0076 0078-007a 00c4 00d6 00dc 00e4 00f6 00fc fontconfig-2.11.1/fc-lang/vot.orth0000664000076400007640000000250712267155334013714 00000000000000# # fontconfig/fc-lang/vot.orth # # 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. # # Orthography from http://www.everytype.com/alphabets/votic.pdf # # Votic (VOT) # # Sources: # www.evertype.com # 0041-005a 0061-007a 00c4 00d6 00dc 00e4 00f6 00fc 0160-0161 017d-017e fontconfig-2.11.1/fc-lang/ps_af.orth0000664000076400007640000000312612267155334014172 00000000000000# # fontconfig/fc-lang/ps_af.orth # # 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. # # Pashto in Afghanistan (PS-AF) # # Data from Roozbeh Pournader # # Since the Unicode Presentation Forms don't contain any of the # Pashto-specific letters (that is Pashto letters not in Persian), we are # going with the general forms instead of the Presentation forms, unlike # Arabic, Persian, or Urdu. # 0621-0624 0626-063a 0641-0642 0644-0648 064a 067c 067e 0681 0685-0686 0689 0693 0696 0698 069a 06a9 06ab 06bc 06cc 06cd 06d0 fontconfig-2.11.1/fc-lang/wen.orth0000664000076400007640000000256712267155334013703 00000000000000# # fontconfig/fc-lang/wen.orth # # 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. # # Sorbian languages (lower and upper) (WEN) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 0106-0107 010c-010d 011a-011b 0141-0142 0143-0144 00d3 00f3 0154-0155 0158-0159 015a-015b 0160-0161 0179-017a 017d-017e fontconfig-2.11.1/fc-lang/ab.orth0000664000076400007640000000261412267155334013465 00000000000000# # fontconfig/fc-lang/ab.orth # # 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. # # Abkhazia (AB) # # Sources: # www.evertype.com # www.eki.ee/letter # #00ab # double angle quotes #00bb # double angle quotes 0401 040f 0410-044f 0451 045f 049e-049f 04a6-04a9 04ac-04ad 04b2-04b7 04bc-04bf 04d8 04d9 04e0-04e1 #2039-203a # angle quotes fontconfig-2.11.1/fc-lang/az_ir.orth0000664000076400007640000000257112267155334014211 00000000000000# # fontconfig/fc-lang/az_ir.orth # # 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. # # Azerbaijani in Iran (AZ-IR) # # Data from Roozbeh Pournader # # Iran's Azerbaijani uses Persian letters plus an obligatory HAMZA ABOVE # (only used over FARSI YEH). # include fa.orth 0654 # ARABIC HAMZA ABOVE fontconfig-2.11.1/fc-lang/ts.orth0000664000076400007640000000234612267155334013533 00000000000000# # fontconfig/fc-lang/ts.orth # # 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. # # Tsonga (TS) # # Orthography taken from http://www.eki.ee/letter # 0041-005a 0061-007a fontconfig-2.11.1/fc-lang/tl.orth0000664000076400007640000000237212267155334013523 00000000000000# # fontconfig/fc-lang/tl.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Tagalog (tl) # # Since Filipino is standardized Tagalog, we just include that include fil.orth fontconfig-2.11.1/fc-lang/la.orth0000664000076400007640000000234112267155334013474 00000000000000# # fontconfig/fc-lang/la.orth # # 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. # # Latin (LA) 0041-005a 0061-007a 0100-0101 0112-0113 012a-012d 014c-014f 016a-016d fontconfig-2.11.1/fc-lang/bho.orth0000664000076400007640000000230412267155334013647 00000000000000# # fontconfig/fc-lang/bho.orth # # 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. # # Bhojpuri (Devanagari script) (BHO) include hi.orth fontconfig-2.11.1/fc-lang/rn.orth0000664000076400007640000000247012267155334013522 00000000000000# # fontconfig/fc-lang/rn.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Rundi (rn) # # Sources: # http://www.omniglot.com/writing/kirundi.php # # Q and X are not used. An apostrophe-like letter also exists. # 0041-005A 0061-007A fontconfig-2.11.1/fc-lang/kab.orth0000664000076400007640000000257012267155334013641 00000000000000# # fontconfig/fc-lang/kab.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Kabyle (kab) # # Sources: # http://www.omniglot.com/writing/kabyle.php # http://www.geonames.de/alphkl.html # 0041-005A 0061-007A 010C-010D 0190 0194 01E6-01E7 025B 0263 1E0C-1E0D 1E24-1E25 1E62-1E63 1E6C-1E6D 1E92-1E93 fontconfig-2.11.1/fc-lang/nl.orth0000664000076400007640000000263512267155334013517 00000000000000# # fontconfig/fc-lang/nl.orth # # 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. # # Dutch (NL) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a 00c1 00c2 00c4 00c8 00c9 00ca 00cb 00cd 00cf 00d3 00d4 00d6 00da 00db 00dc 00e1 00e2 00e4 00e8 00e9 00ea 00eb 00ed 00ef 00f3 00f4 00f6 00fa 00fb 00fc #0132-0133 # IJ and ij ligatures fontconfig-2.11.1/fc-lang/sel.orth0000664000076400007640000000322312267155334013663 00000000000000# # fontconfig/fc-lang/sel.orth # # 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. # # Coverage taken from TITUS (Thesaurus Indogermanischer Text und # Sprachmaterialien) # # http://titus.uni-frankfurt.de/unicode/alphabet/nslatest.htm # # Selkup (Ostyak-Samoyed) (SEL) # 0401 0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041a 041b 041c 041d 041e 041f 0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042a 042b 042c 042d 042e 042f 0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043a 043b 043c 043d 043e 043f 0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044a 044b 044c 044d 044e 044f 0451 fontconfig-2.11.1/fc-lang/ss.orth0000664000076400007640000000260612267155334013531 00000000000000# # fontconfig/fc-lang/ss.orth # # Copyright © 2007 Dwayne Bailey and Translate.org.za # # 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 Dwayne Bailey or Translate.org.za not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. Dwayne Bailey and Translate.org.za makes no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # DWAYNE BAILEY AND TRANSLATE.ORG.ZA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL DWAYNE BAILEY OR TRANSLATE.ORG.ZA 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. # # Swati (SS) # # Orthography taken from http://www.inference.phy.cam.ac.uk/dasher/download/alphabets/alphabet.Swati.xml # 0041-005a 0061-007a fontconfig-2.11.1/fc-lang/README0000664000076400007640000000175112311734674013066 00000000000000Requirements 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. fontconfig-2.11.1/fc-lang/hi.orth0000664000076400007640000000266212267155334013506 00000000000000# # fontconfig/fc-lang/hi.orth # # 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. # # Hindi (Devanagari script) (HI) # # From Unicode coverage for Devanagari # 0905-0914 # Independent vowels 0915-0939 # Consonants 093f-094c # Dependent vowel signs 094d # virama #0958-095f # Additional consonants #0960-0965 # Generic additions #0966-096f # Digits #0970 # Abbreviation sign fontconfig-2.11.1/fc-lang/mt.orth0000664000076400007640000000267712267155334013534 00000000000000# # fontconfig/fc-lang/mt.orth # # 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. # # Maltese (MT) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a 00c0 #00c1 #00c2 00c8 #00c9 #00ca 00cc #00cd 00ce 00d2 #00d3 #00d4 00d9 #00da #00db 00e0 #00e1 #00e2 00e8 #00e9 #00ea 00ec #00ed 00ee 00f2 #00f3 #00f4 00f9 #00fa #00fb 010a-010b 0120-0121 0126-0127 017b-017c #02bc # fontconfig-2.11.1/fc-lang/mh.orth0000664000076400007640000000311512267155334013504 00000000000000# # fontconfig/fc-lang/mh.orth # # 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. # # Marshallese (MH) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 0100 0101 013b 013c #e00a # LATIN CAPITAL LETTER M WITH CEDILLA (no UCS) #e00b # LATIN SMALL LETTER M WITH CEDILLA (no UCS) #e00c # LATIN CAPITAL LETTER N WITH MACRON (no UCS) #e00d # LATIN SMALL LETTER N WITH MACRON (no UCS) 0145 0146 014c 014d #e00e # LATIN CAPITAL LETTER O WITH CEDILLA (no UCS) #e00f # LATIN SMALL LETTER O WITH CEDILLA (no UCS) 016a 016b fontconfig-2.11.1/fc-lang/ch.orth0000664000076400007640000000240012267155334013466 00000000000000# # fontconfig/fc-lang/ch.orth # # 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. # # Chamorro (CH) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 00c2 00e2 00d1 00f1 00dc 00fc fontconfig-2.11.1/fc-lang/it.orth0000664000076400007640000000254312267155334013520 00000000000000# # fontconfig/fc-lang/it.orth # # 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. # # Italian (IT) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a 00c0 #00c1 00c8-00c9 00cc 00cd #00ce 00cf 00d2-00d3 00d9 00da 00e0 #00e1 00e8-00e9 00ec 00ed #00ee 00ef 00f2-00f3 00f9 00fa fontconfig-2.11.1/fc-lang/byn.orth0000664000076400007640000000235712267155334013677 00000000000000# # fontconfig/fc-lang/byn.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Blin/Bilin (byn) # # Copying Tigrinya of Eritrea, as does glibc include ti_er.orth fontconfig-2.11.1/fc-lang/ak.orth0000664000076400007640000000254112267155334013475 00000000000000# # fontconfig/fc-lang/ak.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Akan (ak) # # According to ISO 639-3, Akan is a macro-language of Twi and Fanti. # Information on the web indicates Twi and Fanti now have a unified # orthography. We include Twi. # include tw.orth fontconfig-2.11.1/fc-lang/ki.orth0000664000076400007640000000264212267155334013507 00000000000000# # fontconfig/fc-lang/ki.orth # # 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. # # Kikuyu (KI) # # Orthography taken from http://www.ideography.co.uk/library/pdf/charsets.pdf # 0041-005a 0061-007a 0128 # LATIN CAPITAL LETTER I WITH TILDE 0129 # LATIN SMALL LETTER I WITH TILDE 0168 # LATIN CAPITAL LETTER U WITH TILDE 0169 # LATIN SMALL LETTER U WITH TILDE fontconfig-2.11.1/fc-lang/en.orth0000664000076400007640000000245512267155334013510 00000000000000# # fontconfig/fc-lang/en.orth # # 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. # # English (EN) 0041-005a 0061-007a 00c0 00c7-00cb 00cf 00d1 00d4 00d6 00e0 00e7-00eb 00ef 00f1 00f4 00f6 #2018-2019 # single quotes #201c-201d # double quotes fontconfig-2.11.1/fc-lang/ty.orth0000664000076400007640000000276112267155334013542 00000000000000# # fontconfig/fc-lang/ty.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Tahitian (ty) # # Sources: # * http://www.omniglot.com/writing/tahitian.htm # * http://en.wikipedia.org/wiki/Tahitian_language # # B, C, D, G, J, K, L, Q, S, W, X, Y and Z are not used. # 0041-005A 0061-007A 00CF # used in one word only? 00EF # used in one word only? 0100-0101 0112-0113 012A-012B 014C-014D 016A-016B 02BC # or possibly 02BB fontconfig-2.11.1/fc-lang/shs.orth0000664000076400007640000000261712267155334013703 00000000000000# # fontconfig/fc-lang/shs.orth # # Copyright © 2008 Neskie Manuel # # 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 Neskie Manuel not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. Neskie Manuel makes no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # NESKIE MANUEL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL NESKIE MANUEL 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. # # Secwepemctsin (shs) # # Orthography from A Shuswap Course and # http://www.languagegeek.com/salishan/secwepemctsin.html 0037 0041 0043 0045 0047-0049 004B-0055 0057-0059 0061 0063 0065 0067-0069 006B-0075 0077-0079 00C1 00C9 00CD 00E1 00E9 00ED 0313 fontconfig-2.11.1/fc-lang/lo.orth0000664000076400007640000000256012267155334013515 00000000000000# # fontconfig/fc-lang/lo.orth # # 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. # # Lao (lo) # # Taken from the Unicode coverage of this language # 0e81-0e82 0e84 0e87-0e88 0e8a 0e8d 0e94-0e97 0e99-0e9f 0ea1-0ea3 0ea5 0ea7 0eaa-0eab 0ead-0eb9 0ebb-0ebd 0ec0-0ec4 0ec6 0ec8-0ecd #0ed0-0ed9 # Digits 0edc-0edd fontconfig-2.11.1/fc-lang/chm.orth0000664000076400007640000000347612267155334013661 00000000000000# # fontconfig/fc-lang/chm.orth # # 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. # # Coverage taken from TITUS (Thesaurus Indogermanischer Text und # Sprachmaterialien) # # http://titus.uni-frankfurt.de/unicode/alphabet/nslatest.htm # # Mari (Lower Cheremis / Upper Cheremis) (CHM) # # I've merged both of these languages together so that a font # for 'chm' will cover both orthographies # 0401 0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041a 041b 041c 041d 041e 041f 0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042a 042b 042c 042d 042e 042f 0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043a 043b 043c 043d 043e 043f 0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044a 044b 044c 044d 044e 044f 0451 04a4 04a5 04d2 04d3 04e6 04e7 04f0 04f1 04f8 04f9 fontconfig-2.11.1/fc-lang/rm.orth0000664000076400007640000000247712267155334013530 00000000000000# # fontconfig/fc-lang/rm.orth # # 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. # # Rhaeto-Romance (Romansch) (RM) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a 00c0 00c8 00c9 00cc 00ce 00d2 00d9 00e0 00e8 00e9 00ec 00ee 00f2 00f9 fontconfig-2.11.1/fc-lang/co.orth0000664000076400007640000000225612267155334013506 00000000000000# # fontconfig/fc-lang/co.orth # # 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. # # Corsican (CO) include fr.orth fontconfig-2.11.1/fc-lang/aa.orth0000664000076400007640000000342212267155334013462 00000000000000# # fontconfig/fc-lang/aa.orth # # 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. # # Afar (AA) # # Taken from http://www.arhotaba.com/waldegram.htm # and http://www.arhotaba.com/alphabet.htm # 0041-005a # afar doesn't use J, P, V or Z 0061-007a # afar doesn't use j, p, v or z 00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX 00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX 00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX 00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX 00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX 00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX 00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX 00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX 00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX 00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX fontconfig-2.11.1/fc-lang/uz.orth0000664000076400007640000000315612267155334013543 00000000000000# # fontconfig/fc-lang/uz.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Uzbek (uz) # # Sources: # * http://ru.wikipedia.org/wiki/Узбекская_письменность # * http://unicode.org/cldr/data/common/main/uz_Latn.xml # * http://www.oxuscom.com/New_Uzbek_Latin_Alphabet.pdf # 0041-005A 0061-007A # There are one to three modifier letters too, that are important for the # orthography. But it's impossible to locate them in Unicode with the # information available online. Possible candidates: # U+02BB, U+02BC, U+02BF, U+02C8. fontconfig-2.11.1/fc-lang/sg.orth0000664000076400007640000000265112267155334013515 00000000000000# # fontconfig/fc-lang/sg.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Sango (sg) # # Sources: # * http://en.wikipedia.org/wiki/Sango_language # * http://www.omniglot.com/writing/sango.php # # C, Q, and X are not used. # 0041-005A 0061-007A 00C2 00C4 00CA-00CB 00CE-00CF 00D4 00D6 00DB-00DC 00E2 00E4 00EA-00EB 00EE-00EF 00F4 00F6 00FB-00FC fontconfig-2.11.1/fc-lang/kaa.orth0000664000076400007640000000351612267155334013641 00000000000000# # fontconfig/fc-lang/kaa.orth # # 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. # # Coverage taken from TITUS (Thesaurus Indogermanischer Text und # Sprachmaterialien) # # http://titus.uni-frankfurt.de/unicode/alphabet/nslatest.htm # # Kara-Kalpak (Karakalpak) (KAA) # 0401 0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041a 041b 041c 041d 041e 041f 0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042a 042b 042c 042d 042e 042f 0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043a 043b 043c 043d 043e 043f 0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044a 044b 044c 044d 044e 044f 0451 #0472 # CYRILLIC CAPITAL LETTER FITA (Historic cyrillic letter) #0473 # CYRILLIC SMALL LETTER FITA (Historic cyrillic letter) 0492 0493 049a 049b 04a2 04a3 04ae 04af 04b2 04b3 04d8 04d9 fontconfig-2.11.1/fc-lang/gu.orth0000664000076400007640000000253412267155334013517 00000000000000# # fontconfig/fc-lang/gu.orth # # 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. # # Gujarati (gu) # # Taken from the Unicode coverage of this language # 0a81-0a83 0a85-0a8b 0a8d 0a8f-0a91 0a93-0aa8 0aaa-0ab0 0ab2-0ab3 0ab5-0ab9 0abc-0ac5 0ac7-0ac9 0acb-0acd 0ad0 0ae0 #0ae6-0aef # Digits fontconfig-2.11.1/fc-lang/ba.orth0000664000076400007640000000436112267155334013466 00000000000000# # fontconfig/fc-lang/ba.orth # # 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. # # Bashkir (BA) # # Sources: # www.evertype.com # www.eki.ee/letter # #00AA # FEMININE ORDINAL INDICATOR #00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK * #0401 # CYRILLIC CAPITAL LETTER IO in evertype.com #0451 # CYRILLIC SMALL LETTER IO in evertype.com 0410-044f # CYRILLIC 0492 # CYRILLIC CAPITAL LETTER GHE WITH STROKE 0493 # CYRILLIC SMALL LETTER GHE WITH STROKE 0498 # CYRILLIC CAPITAL LETTER ZE WITH DESCENDER 0499 # CYRILLIC SMALL LETTER ZE WITH DESCENDER 04A0 # CYRILLIC CAPITAL LETTER BASHKIR KA 04A1 # CYRILLIC SMALL LETTER BASHKIR KA 04A2 # CYRILLIC CAPITAL LETTER EN WITH DESCENDER 04A3 # CYRILLIC SMALL LETTER EN WITH DESCENDER 04AA # CYRILLIC CAPITAL LETTER ES WITH DESCENDER 04AB # CYRILLIC SMALL LETTER ES WITH DESCENDER 04AE # CYRILLIC CAPITAL LETTER STRAIGHT U 04AF # CYRILLIC SMALL LETTER STRAIGHT U 04BA # CYRILLIC CAPITAL LETTER SHHA 04BB # CYRILLIC SMALL LETTER SHHA 04D8 # CYRILLIC CAPITAL LETTER SCHWA 04D9 # CYRILLIC SMALL LETTER SCHWA 04E8 # CYRILLIC CAPITAL LETTER BARRED O 04E9 # CYRILLIC SMALL LETTER BARRED O #2018-2019 # single quotes #201c-201d # double quotes #2039-203a # angle quotes fontconfig-2.11.1/fc-lang/et.orth0000664000076400007640000000351412267155334013513 00000000000000# # fontconfig/fc-lang/et.orth # # 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. # # Estonian (ET) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a 00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS 00D5 # LATIN CAPITAL LETTER O WITH TILDE 00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS 00DC # LATIN CAPITAL LETTER U WITH DIAERESIS 00E4 # LATIN SMALL LETTER A WITH DIAERESIS 00F5 # LATIN SMALL LETTER O WITH TILDE 00F6 # LATIN SMALL LETTER O WITH DIAERESIS 00FC # LATIN SMALL LETTER U WITH DIAERESIS 0160 # LATIN CAPITAL LETTER S WITH CARON 0161 # LATIN SMALL LETTER S WITH CARON 017D # LATIN CAPITAL LETTER Z WITH CARON 017E # LATIN SMALL LETTER Z WITH CARON #2018 # # single quote #201a # # single quote #201c # # double quote #201e # # double quote fontconfig-2.11.1/fc-lang/mg.orth0000664000076400007640000000252012267155334013502 00000000000000# # fontconfig/fc-lang/mg.orth # # 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. # # Malagasy (MG) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 00c1 00e1 #e010 # LATIN CAPITAL LETTER N WITH DIAERESIS #e011 # LATIN SMALL LETTER N WITH DIAERESIS 00d4 00f4 fontconfig-2.11.1/fc-lang/ota.orth0000664000076400007640000000300512267155334013661 00000000000000# # fontconfig/fc-lang/ota.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Ottoman Turkish (ota) # # Sources: # * Daniels and Bright, “The World’s Writing Systems”, pp. 756–759. # * Library of Congress ALA-LC Romanization Tables: # http://www.loc.gov/catdir/cpso/romanization/ottoman.pdf # # General forms, since presentation forms for one letter is not in Unicode. # 0621-0622 0626-063A 0641-0648 067E 0686 0698 06AD 06AF 06CC fontconfig-2.11.1/fc-lang/hu.orth0000664000076400007640000000266112267155334013521 00000000000000# # fontconfig/fc-lang/hu.orth # # 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. # # Hungarian (HU) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a #00C0 # LATIN CAPITAL LETTER A WITH GRAVE evertype.com 00c1 00c9 00cd 00d3 00d6 00da 00dc #00E0 # LATIN SMALL LETTER A WITH GRAVE evertype.com 00e1 00e9 00ed 00f3 00f6 00fa 00fc 0150-0151 0170-0171 fontconfig-2.11.1/fc-lang/mr.orth0000664000076400007640000000230112267155334013512 00000000000000# # fontconfig/fc-lang/mr.orth # # 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. # # Marathi (Devanagari script) (MR) include hi.orth fontconfig-2.11.1/fc-lang/km.orth0000664000076400007640000000273412267155334013515 00000000000000# # fontconfig/fc-lang/km.orth # # Copyright © 2002 Keith Packard # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Central Khmer (km) # # Taken from the Unicode coverage of Khmer script and Unicode character # notes # 1780-179C # 179D-179E # Pali/Sanskrit transliteration only 179F-17A2 # 17A3-17A4 # Deprecated/Discouraged 17A5-17A7 # 17A8 # Discouraged 17A9-17B3 # 17B4-17B5 # Discouraged 17B6-17C5 fontconfig-2.11.1/fc-lang/pt.orth0000664000076400007640000000263512267155334013531 00000000000000# # fontconfig/fc-lang/pt.orth # # 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. # # Portuguese (PT) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a #00bb 00c0 00c1 00c2 00c3 00c7 00c8 00c9 00ca 00cd 00d2 00d3 00d4 00d5 00da 00dc 00e0 00e1 00e2 00e3 00e7 00e8 00e9 00ea 00ed 00f2 00f3 00f4 00f5 00fa 00fc ##203a # angle quote # fontconfig-2.11.1/fc-lang/sms.orth0000664000076400007640000000256312267155334013710 00000000000000# # fontconfig/fc-lang/sms.orth # # 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. # # Skolt Sámi (SMJ) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 00c2 00e2 00c4 00e4 00c5 00e5 010c-010d 0110-0111 01b7 0292 01ee-01ef 01e6-01e7 01e4-01e5 01e8-01e9 014a-014b 00d5 00f5 0160-0161 017d-017e fontconfig-2.11.1/fc-lang/sat.orth0000664000076400007640000000362112267155334013671 00000000000000# fontconfig/fc-lang/sat.orth # # Copyright © 2012 Parag Nemade # # 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 Keith Packard not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. Keith Packard makes 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. # # Santali (Devanagari script) (sat) # # Source: Enhanced inscript: http://pune.cdac.in/html/gist/down/inscript_d.asp # Or # Source: http://malayalam.kerala.gov.in/images/8/80/Qwerty_enhancedinscriptkeyboardlayout.pdf Page No. 86 # 0901-0903 # Various Signs 0905-090a # Independent vowels 090f-0910 # Independent vowels 0913-0914 # Independent vowels 0915-0928 # Consonants 092a-0930 # Consonants 0932-0932 # Consonants 0935 # Consonants 0938-0939 # Consonants 093c-0942 # Various and Dependent vowel signs 0947-0948 # Dependent vowel signs 094b-094d # Dependent vowel signs and virama 0950 # Sign 0964-0965 # Punctuations 0966-096F # Digits 0970 # Abbrevation sign fontconfig-2.11.1/fc-lang/mai.orth0000664000076400007640000000230412267155334013645 00000000000000# # fontconfig/fc-lang/mai.orth # # 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. # # Maithili (Devanagari script) (MAI) include hi.orth fontconfig-2.11.1/fc-lang/sn.orth0000664000076400007640000000271512267155334013525 00000000000000# # fontconfig/fc-lang/sn.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Shona (sn) # # Sources: # * http://en.wikipedia.org/wiki/Shona_language # * http://www.dokpro.uio.no/allex/gsd/fm/7-Mabhii.htm # * http://www.omniglot.com/writing/shona.php # # Q and X are not used. An apostrophe-like modifier exists, # that is used after N. More research is needed. # 0041-005A 0061-007A fontconfig-2.11.1/fc-lang/ru.orth0000664000076400007640000000302112267155334013522 00000000000000# # fontconfig/fc-lang/ru.orth # # 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. # # Russian (RU) #00ab #00bb 0401 #0406 # eliminated in 1918 in favor of 418 0410-044f 0451 #0456 # eliminated in 1918 in favor of 438 #0462 # CYRILLIC CAPITAL LETTER YAT #0463 # CYRILLIC SMALL LETTER YAT #0472 # CYRILLIC CAPITAL LETTER FITA #0473 # CYRILLIC SMALL LETTER FITA #0474 # CYRILLIC CAPITAL LETTER IZHITSA #0475 # CYRILLIC SMALL LETTER IZHITSA #2039-203a # angle quotes fontconfig-2.11.1/fc-lang/so.orth0000664000076400007640000000244112267155334013522 00000000000000# # fontconfig/fc-lang/so.orth # # 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. # # Somali (SO) # # Orthography taken from http://www.ideography.co.uk/library/pdf/charsets.pdf # 0041-005a # Somali doesn't use p, v or z 0061-007a fontconfig-2.11.1/fc-lang/tig.orth0000664000076400007640000000333012267155334013662 00000000000000# # fontconfig/fc-lang/tig.orth # # 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. # # Tigre (TIG) Ethiopic Convention # # Taken from Unicode coverage (1200-137f) # # Sylables 1200-1206 # he-ho 1208-1216 # le-Ho, skip HWa 1218-121f # me-mWa 1228-1230 # re-sWa 1238-1246 # re-qo 1248 # qWe 124a-124d # qWi-qW 1260-126e # be-vo 1270-127f # te-cWa 1290-1297 # ne-nWa 12a0-12a6 # a-o 12a8-12ae # ke-ko 12b0 # kWe 12b2-12b5 # kWi-kW 12c8-12ce # we-wo 12d0-12d6 # `e-`o 12d8-12df # ze-zWa 12e8-12ee # ye-yo 12f0-12f7 # de-dWa 1300-130e # je-go 1310 # gWe 1312-1315 # gWi-gW 1320-133f # Te-SWa 1348-1356 # fe-po, skip pWa, rYa, mYa, fYa fontconfig-2.11.1/fc-lang/ng.orth0000664000076400007640000000243712267155334013512 00000000000000# # fontconfig/fc-lang/ng.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Ndonga (ng) # # Considered a sister language/dialect to Kuanyama (kj) and Kwambi (kwm). # We'll include Kuanyama. # include kj.orth fontconfig-2.11.1/fc-lang/cy.orth0000664000076400007640000000505212267155334013515 00000000000000# # fontconfig/fc-lang/cy.orth # # 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. # # Welsh (CY) # # Coverage given by Markus Kuhn # and separately by Jessica Perry Hekman # with help from Mark Kille and Jerry Hunter. # 0041-005a 0061-007a 00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX 00C9 # LATIN CAPITAL LETTER E WITH ACUTE 00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX 00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX 00CF # LATIN CAPITAL LETTER I WITH DIAERESIS 00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX 00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX 00E9 # LATIN SMALL LETTER E WITH ACUTE 00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX 00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX 00EF # LATIN SMALL LETTER I WITH DIAERESIS 00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX 00FF # LATIN SMALL LETTER Y WITH DIAERESIS # # Non-Latin-1 characters needed for Welsh: # 0174 # LATIN CAPITAL LETTER W WITH CIRCUMFLEX 0175 # LATIN SMALL LETTER W WITH CIRCUMFLEX 0176 # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX 0177 # LATIN SMALL LETTER Y WITH CIRCUMFLEX 0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS # # And stricktly speaking for dictionary authors also: # 1E80 # LATIN CAPITAL LETTER W WITH GRAVE 1E81 # LATIN SMALL LETTER W WITH GRAVE 1E82 # LATIN CAPITAL LETTER W WITH ACUTE 1E83 # LATIN SMALL LETTER W WITH ACUTE 1E84 # LATIN CAPITAL LETTER W WITH DIAERESIS 1E85 # LATIN SMALL LETTER W WITH DIAERESIS 1EF2 # LATIN CAPITAL LETTER Y WITH GRAVE 1EF3 # LATIN SMALL LETTER Y WITH GRAVE fontconfig-2.11.1/fc-lang/fur.orth0000664000076400007640000000246612267155334013704 00000000000000# # fontconfig/fc-lang/fur.orth # # 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. # # Friulian (FUR) # # Orthography from http://www.evertype.com/alphabets/friulian.pdf # 0041-005a 0061-007a 00c0-00c2 00c8 00cc 00d2 00d9 00e0-00e2 00e8 00ec 00f2 00f9 fontconfig-2.11.1/fc-lang/nso.orth0000664000076400007640000000265212267155334013704 00000000000000# # fontconfig/fc-lang/nso.orth # # Copyright © 2007 Dwayne Bailey and Translate.org.za # # 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 Dwayne Bailey or Translate.org.za not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. Dwayne Bailey and Translate.org.za makes no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # DWAYNE BAILEY AND TRANSLATE.ORG.ZA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL DWAYNE BAILEY OR TRANSLATE.ORG.ZA 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. # # Northern Sotho (NSO) # # Orthography from http://www.inference.phy.cam.ac.uk/dasher/download/alphabets/alphabet.Tswana.xml # 0041-005a 0061-007a 00ca 00ea 00d4 00f4 0160-0161 fontconfig-2.11.1/fc-lang/csb.orth0000664000076400007640000000274612267155334013660 00000000000000# # fontconfig/fc-lang/csb.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Kashubian (CSB) # # Sources: # http://www.omniglot.com/writing/kashubian.htm # http://www.evertype.com/alphabets/kashubian.pdf # 0041-005A 0061-007A 00C3 00C9 00CB 00D2-00D4 00D9 00E3 00E9 00EB 00F2-00F4 00F9 0104-0105 #0118-0119 # E with ogonek - only in evertype 0141-0144 #015A-015B # S with acute - only in evertype 017B-017C fontconfig-2.11.1/fc-lang/fclang.h0000664000076400007640000044006612267711645013622 00000000000000/* * fontconfig/fc-lang/fclang.tmpl.h * * 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. */ /* total size: 1087 unique leaves: 702 */ #define LEAF0 (244 * sizeof (FcLangCharSet)) #define OFF0 (LEAF0 + 702 * sizeof (FcCharLeaf)) #define NUM0 (OFF0 + 755 * sizeof (uintptr_t)) #define SET(n) (n * sizeof (FcLangCharSet) + offsetof (FcLangCharSet, charset)) #define OFF(s,o) (OFF0 + o * sizeof (uintptr_t) - SET(s)) #define NUM(s,n) (NUM0 + n * sizeof (FcChar16) - SET(s)) #define LEAF(o,l) (LEAF0 + l * sizeof (FcCharLeaf) - (OFF0 + o * sizeof (intptr_t))) #define fcLangCharSets (fcLangData.langCharSets) #define fcLangCharSetIndices (fcLangData.langIndices) #define fcLangCharSetIndicesInv (fcLangData.langIndicesInv) static const struct { FcLangCharSet langCharSets[244]; FcCharLeaf leaves[702]; uintptr_t leaf_offsets[755]; FcChar16 numbers[755]; FcChar8 langIndices[244]; FcChar8 langIndicesInv[244]; } fcLangData = { { { "aa", { FC_REF_CONSTANT, 1, OFF(0,0), NUM(0,0) } }, /* 0 */ { "ab", { FC_REF_CONSTANT, 1, OFF(1,1), NUM(1,1) } }, /* 1 */ { "af", { FC_REF_CONSTANT, 2, OFF(2,2), NUM(2,2) } }, /* 2 */ { "ak", { FC_REF_CONSTANT, 5, OFF(3,4), NUM(3,4) } }, /* 3 */ { "am", { FC_REF_CONSTANT, 2, OFF(4,9), NUM(4,9) } }, /* 4 */ { "an", { FC_REF_CONSTANT, 1, OFF(5,11), NUM(5,11) } }, /* 5 */ { "ar", { FC_REF_CONSTANT, 1, OFF(6,12), NUM(6,12) } }, /* 6 */ { "as", { FC_REF_CONSTANT, 1, OFF(7,13), NUM(7,13) } }, /* 7 */ { "ast", { FC_REF_CONSTANT, 2, OFF(8,14), NUM(8,14) } }, /* 8 */ { "av", { FC_REF_CONSTANT, 1, OFF(9,16), NUM(9,16) } }, /* 9 */ { "ay", { FC_REF_CONSTANT, 1, OFF(10,17), NUM(10,17) } }, /* 10 */ { "az-az", { FC_REF_CONSTANT, 3, OFF(11,18), NUM(11,18) } }, /* 11 */ { "az-ir", { FC_REF_CONSTANT, 1, OFF(12,21), NUM(12,21) } }, /* 12 */ { "ba", { FC_REF_CONSTANT, 1, OFF(13,22), NUM(13,22) } }, /* 13 */ { "be", { FC_REF_CONSTANT, 1, OFF(14,23), NUM(14,23) } }, /* 14 */ { "ber-dz", { FC_REF_CONSTANT, 4, OFF(15,24), NUM(15,24) } }, /* 15 */ { "ber-ma", { FC_REF_CONSTANT, 1, OFF(16,28), NUM(16,28) } }, /* 16 */ { "bg", { FC_REF_CONSTANT, 1, OFF(17,29), NUM(17,29) } }, /* 17 */ { "bh", { FC_REF_CONSTANT, 1, OFF(18,30), NUM(18,30) } }, /* 18 */ { "bho", { FC_REF_CONSTANT, 1, OFF(19,30), NUM(19,30) } }, /* 19 */ { "bi", { FC_REF_CONSTANT, 1, OFF(20,31), NUM(20,31) } }, /* 20 */ { "bin", { FC_REF_CONSTANT, 3, OFF(21,32), NUM(21,32) } }, /* 21 */ { "bm", { FC_REF_CONSTANT, 3, OFF(22,35), NUM(22,35) } }, /* 22 */ { "bn", { FC_REF_CONSTANT, 1, OFF(23,38), NUM(23,38) } }, /* 23 */ { "bo", { FC_REF_CONSTANT, 1, OFF(24,39), NUM(24,39) } }, /* 24 */ { "br", { FC_REF_CONSTANT, 1, OFF(25,40), NUM(25,40) } }, /* 25 */ { "brx", { FC_REF_CONSTANT, 1, OFF(26,41), NUM(26,41) } }, /* 26 */ { "bs", { FC_REF_CONSTANT, 2, OFF(27,42), NUM(27,42) } }, /* 27 */ { "bua", { FC_REF_CONSTANT, 1, OFF(28,44), NUM(28,44) } }, /* 28 */ { "byn", { FC_REF_CONSTANT, 2, OFF(29,45), NUM(29,45) } }, /* 29 */ { "ca", { FC_REF_CONSTANT, 2, OFF(30,47), NUM(30,47) } }, /* 30 */ { "ce", { FC_REF_CONSTANT, 1, OFF(31,16), NUM(31,16) } }, /* 31 */ { "ch", { FC_REF_CONSTANT, 1, OFF(32,49), NUM(32,49) } }, /* 32 */ { "chm", { FC_REF_CONSTANT, 1, OFF(33,50), NUM(33,50) } }, /* 33 */ { "chr", { FC_REF_CONSTANT, 1, OFF(34,51), NUM(34,51) } }, /* 34 */ { "co", { FC_REF_CONSTANT, 2, OFF(35,52), NUM(35,52) } }, /* 35 */ { "crh", { FC_REF_CONSTANT, 2, OFF(36,54), NUM(36,54) } }, /* 36 */ { "cs", { FC_REF_CONSTANT, 2, OFF(37,56), NUM(37,56) } }, /* 37 */ { "csb", { FC_REF_CONSTANT, 2, OFF(38,58), NUM(38,58) } }, /* 38 */ { "cu", { FC_REF_CONSTANT, 1, OFF(39,60), NUM(39,60) } }, /* 39 */ { "cv", { FC_REF_CONSTANT, 2, OFF(40,61), NUM(40,61) } }, /* 40 */ { "cy", { FC_REF_CONSTANT, 3, OFF(41,63), NUM(41,63) } }, /* 41 */ { "da", { FC_REF_CONSTANT, 1, OFF(42,66), NUM(42,66) } }, /* 42 */ { "de", { FC_REF_CONSTANT, 1, OFF(43,67), NUM(43,67) } }, /* 43 */ { "doi", { FC_REF_CONSTANT, 1, OFF(44,68), NUM(44,68) } }, /* 44 */ { "dv", { FC_REF_CONSTANT, 1, OFF(45,69), NUM(45,69) } }, /* 45 */ { "dz", { FC_REF_CONSTANT, 1, OFF(46,39), NUM(46,39) } }, /* 46 */ { "ee", { FC_REF_CONSTANT, 4, OFF(47,70), NUM(47,70) } }, /* 47 */ { "el", { FC_REF_CONSTANT, 1, OFF(48,74), NUM(48,74) } }, /* 48 */ { "en", { FC_REF_CONSTANT, 1, OFF(49,75), NUM(49,75) } }, /* 49 */ { "eo", { FC_REF_CONSTANT, 2, OFF(50,76), NUM(50,76) } }, /* 50 */ { "es", { FC_REF_CONSTANT, 1, OFF(51,11), NUM(51,11) } }, /* 51 */ { "et", { FC_REF_CONSTANT, 2, OFF(52,78), NUM(52,78) } }, /* 52 */ { "eu", { FC_REF_CONSTANT, 1, OFF(53,80), NUM(53,80) } }, /* 53 */ { "fa", { FC_REF_CONSTANT, 1, OFF(54,21), NUM(54,21) } }, /* 54 */ { "fat", { FC_REF_CONSTANT, 5, OFF(55,4), NUM(55,4) } }, /* 55 */ { "ff", { FC_REF_CONSTANT, 3, OFF(56,81), NUM(56,81) } }, /* 56 */ { "fi", { FC_REF_CONSTANT, 2, OFF(57,84), NUM(57,84) } }, /* 57 */ { "fil", { FC_REF_CONSTANT, 1, OFF(58,86), NUM(58,86) } }, /* 58 */ { "fj", { FC_REF_CONSTANT, 1, OFF(59,87), NUM(59,87) } }, /* 59 */ { "fo", { FC_REF_CONSTANT, 1, OFF(60,88), NUM(60,88) } }, /* 60 */ { "fr", { FC_REF_CONSTANT, 2, OFF(61,52), NUM(61,52) } }, /* 61 */ { "fur", { FC_REF_CONSTANT, 1, OFF(62,89), NUM(62,89) } }, /* 62 */ { "fy", { FC_REF_CONSTANT, 1, OFF(63,90), NUM(63,90) } }, /* 63 */ { "ga", { FC_REF_CONSTANT, 3, OFF(64,91), NUM(64,91) } }, /* 64 */ { "gd", { FC_REF_CONSTANT, 1, OFF(65,94), NUM(65,94) } }, /* 65 */ { "gez", { FC_REF_CONSTANT, 2, OFF(66,95), NUM(66,95) } }, /* 66 */ { "gl", { FC_REF_CONSTANT, 1, OFF(67,11), NUM(67,11) } }, /* 67 */ { "gn", { FC_REF_CONSTANT, 3, OFF(68,97), NUM(68,97) } }, /* 68 */ { "gu", { FC_REF_CONSTANT, 1, OFF(69,100), NUM(69,100) } }, /* 69 */ { "gv", { FC_REF_CONSTANT, 1, OFF(70,101), NUM(70,101) } }, /* 70 */ { "ha", { FC_REF_CONSTANT, 3, OFF(71,102), NUM(71,102) } }, /* 71 */ { "haw", { FC_REF_CONSTANT, 3, OFF(72,105), NUM(72,105) } }, /* 72 */ { "he", { FC_REF_CONSTANT, 1, OFF(73,108), NUM(73,108) } }, /* 73 */ { "hi", { FC_REF_CONSTANT, 1, OFF(74,30), NUM(74,30) } }, /* 74 */ { "hne", { FC_REF_CONSTANT, 1, OFF(75,30), NUM(75,30) } }, /* 75 */ { "ho", { FC_REF_CONSTANT, 1, OFF(76,87), NUM(76,87) } }, /* 76 */ { "hr", { FC_REF_CONSTANT, 2, OFF(77,42), NUM(77,42) } }, /* 77 */ { "hsb", { FC_REF_CONSTANT, 2, OFF(78,109), NUM(78,109) } }, /* 78 */ { "ht", { FC_REF_CONSTANT, 1, OFF(79,111), NUM(79,111) } }, /* 79 */ { "hu", { FC_REF_CONSTANT, 2, OFF(80,112), NUM(80,112) } }, /* 80 */ { "hy", { FC_REF_CONSTANT, 1, OFF(81,114), NUM(81,114) } }, /* 81 */ { "hz", { FC_REF_CONSTANT, 3, OFF(82,115), NUM(82,115) } }, /* 82 */ { "ia", { FC_REF_CONSTANT, 1, OFF(83,87), NUM(83,87) } }, /* 83 */ { "id", { FC_REF_CONSTANT, 1, OFF(84,118), NUM(84,118) } }, /* 84 */ { "ie", { FC_REF_CONSTANT, 1, OFF(85,87), NUM(85,87) } }, /* 85 */ { "ig", { FC_REF_CONSTANT, 2, OFF(86,119), NUM(86,119) } }, /* 86 */ { "ii", { FC_REF_CONSTANT, 5, OFF(87,121), NUM(87,121) } }, /* 87 */ { "ik", { FC_REF_CONSTANT, 1, OFF(88,126), NUM(88,126) } }, /* 88 */ { "io", { FC_REF_CONSTANT, 1, OFF(89,87), NUM(89,87) } }, /* 89 */ { "is", { FC_REF_CONSTANT, 1, OFF(90,127), NUM(90,127) } }, /* 90 */ { "it", { FC_REF_CONSTANT, 1, OFF(91,128), NUM(91,128) } }, /* 91 */ { "iu", { FC_REF_CONSTANT, 3, OFF(92,129), NUM(92,129) } }, /* 92 */ { "ja", { FC_REF_CONSTANT, 83, OFF(93,132), NUM(93,132) } }, /* 93 */ { "jv", { FC_REF_CONSTANT, 1, OFF(94,215), NUM(94,215) } }, /* 94 */ { "ka", { FC_REF_CONSTANT, 1, OFF(95,216), NUM(95,216) } }, /* 95 */ { "kaa", { FC_REF_CONSTANT, 1, OFF(96,217), NUM(96,217) } }, /* 96 */ { "kab", { FC_REF_CONSTANT, 4, OFF(97,24), NUM(97,24) } }, /* 97 */ { "ki", { FC_REF_CONSTANT, 2, OFF(98,218), NUM(98,218) } }, /* 98 */ { "kj", { FC_REF_CONSTANT, 1, OFF(99,87), NUM(99,87) } }, /* 99 */ { "kk", { FC_REF_CONSTANT, 1, OFF(100,220), NUM(100,220) } }, /* 100 */ { "kl", { FC_REF_CONSTANT, 2, OFF(101,221), NUM(101,221) } }, /* 101 */ { "km", { FC_REF_CONSTANT, 1, OFF(102,223), NUM(102,223) } }, /* 102 */ { "kn", { FC_REF_CONSTANT, 1, OFF(103,224), NUM(103,224) } }, /* 103 */ { "ko", { FC_REF_CONSTANT, 45, OFF(104,225), NUM(104,225) } }, /* 104 */ { "kok", { FC_REF_CONSTANT, 1, OFF(105,30), NUM(105,30) } }, /* 105 */ { "kr", { FC_REF_CONSTANT, 3, OFF(106,270), NUM(106,270) } }, /* 106 */ { "ks", { FC_REF_CONSTANT, 1, OFF(107,273), NUM(107,273) } }, /* 107 */ { "ku-am", { FC_REF_CONSTANT, 2, OFF(108,274), NUM(108,274) } }, /* 108 */ { "ku-iq", { FC_REF_CONSTANT, 1, OFF(109,276), NUM(109,276) } }, /* 109 */ { "ku-ir", { FC_REF_CONSTANT, 1, OFF(110,276), NUM(110,276) } }, /* 110 */ { "ku-tr", { FC_REF_CONSTANT, 2, OFF(111,277), NUM(111,277) } }, /* 111 */ { "kum", { FC_REF_CONSTANT, 1, OFF(112,279), NUM(112,279) } }, /* 112 */ { "kv", { FC_REF_CONSTANT, 1, OFF(113,280), NUM(113,280) } }, /* 113 */ { "kw", { FC_REF_CONSTANT, 3, OFF(114,281), NUM(114,281) } }, /* 114 */ { "kwm", { FC_REF_CONSTANT, 1, OFF(115,87), NUM(115,87) } }, /* 115 */ { "ky", { FC_REF_CONSTANT, 1, OFF(116,284), NUM(116,284) } }, /* 116 */ { "la", { FC_REF_CONSTANT, 2, OFF(117,285), NUM(117,285) } }, /* 117 */ { "lah", { FC_REF_CONSTANT, 1, OFF(118,287), NUM(118,287) } }, /* 118 */ { "lb", { FC_REF_CONSTANT, 1, OFF(119,288), NUM(119,288) } }, /* 119 */ { "lez", { FC_REF_CONSTANT, 1, OFF(120,16), NUM(120,16) } }, /* 120 */ { "lg", { FC_REF_CONSTANT, 2, OFF(121,289), NUM(121,289) } }, /* 121 */ { "li", { FC_REF_CONSTANT, 1, OFF(122,291), NUM(122,291) } }, /* 122 */ { "ln", { FC_REF_CONSTANT, 4, OFF(123,292), NUM(123,292) } }, /* 123 */ { "lo", { FC_REF_CONSTANT, 1, OFF(124,296), NUM(124,296) } }, /* 124 */ { "lt", { FC_REF_CONSTANT, 2, OFF(125,297), NUM(125,297) } }, /* 125 */ { "lv", { FC_REF_CONSTANT, 2, OFF(126,299), NUM(126,299) } }, /* 126 */ { "mai", { FC_REF_CONSTANT, 1, OFF(127,30), NUM(127,30) } }, /* 127 */ { "mg", { FC_REF_CONSTANT, 1, OFF(128,301), NUM(128,301) } }, /* 128 */ { "mh", { FC_REF_CONSTANT, 2, OFF(129,302), NUM(129,302) } }, /* 129 */ { "mi", { FC_REF_CONSTANT, 3, OFF(130,304), NUM(130,304) } }, /* 130 */ { "mk", { FC_REF_CONSTANT, 1, OFF(131,307), NUM(131,307) } }, /* 131 */ { "ml", { FC_REF_CONSTANT, 1, OFF(132,308), NUM(132,308) } }, /* 132 */ { "mn-cn", { FC_REF_CONSTANT, 1, OFF(133,309), NUM(133,309) } }, /* 133 */ { "mn-mn", { FC_REF_CONSTANT, 1, OFF(134,310), NUM(134,310) } }, /* 134 */ { "mni", { FC_REF_CONSTANT, 1, OFF(135,311), NUM(135,311) } }, /* 135 */ { "mo", { FC_REF_CONSTANT, 4, OFF(136,312), NUM(136,312) } }, /* 136 */ { "mr", { FC_REF_CONSTANT, 1, OFF(137,30), NUM(137,30) } }, /* 137 */ { "ms", { FC_REF_CONSTANT, 1, OFF(138,87), NUM(138,87) } }, /* 138 */ { "mt", { FC_REF_CONSTANT, 2, OFF(139,316), NUM(139,316) } }, /* 139 */ { "my", { FC_REF_CONSTANT, 1, OFF(140,318), NUM(140,318) } }, /* 140 */ { "na", { FC_REF_CONSTANT, 2, OFF(141,319), NUM(141,319) } }, /* 141 */ { "nb", { FC_REF_CONSTANT, 1, OFF(142,321), NUM(142,321) } }, /* 142 */ { "nds", { FC_REF_CONSTANT, 1, OFF(143,67), NUM(143,67) } }, /* 143 */ { "ne", { FC_REF_CONSTANT, 1, OFF(144,322), NUM(144,322) } }, /* 144 */ { "ng", { FC_REF_CONSTANT, 1, OFF(145,87), NUM(145,87) } }, /* 145 */ { "nl", { FC_REF_CONSTANT, 1, OFF(146,323), NUM(146,323) } }, /* 146 */ { "nn", { FC_REF_CONSTANT, 1, OFF(147,324), NUM(147,324) } }, /* 147 */ { "no", { FC_REF_CONSTANT, 1, OFF(148,321), NUM(148,321) } }, /* 148 */ { "nqo", { FC_REF_CONSTANT, 1, OFF(149,325), NUM(149,325) } }, /* 149 */ { "nr", { FC_REF_CONSTANT, 1, OFF(150,87), NUM(150,87) } }, /* 150 */ { "nso", { FC_REF_CONSTANT, 2, OFF(151,326), NUM(151,326) } }, /* 151 */ { "nv", { FC_REF_CONSTANT, 4, OFF(152,328), NUM(152,328) } }, /* 152 */ { "ny", { FC_REF_CONSTANT, 2, OFF(153,332), NUM(153,332) } }, /* 153 */ { "oc", { FC_REF_CONSTANT, 1, OFF(154,334), NUM(154,334) } }, /* 154 */ { "om", { FC_REF_CONSTANT, 1, OFF(155,87), NUM(155,87) } }, /* 155 */ { "or", { FC_REF_CONSTANT, 1, OFF(156,335), NUM(156,335) } }, /* 156 */ { "os", { FC_REF_CONSTANT, 1, OFF(157,279), NUM(157,279) } }, /* 157 */ { "ota", { FC_REF_CONSTANT, 1, OFF(158,336), NUM(158,336) } }, /* 158 */ { "pa", { FC_REF_CONSTANT, 1, OFF(159,337), NUM(159,337) } }, /* 159 */ { "pa-pk", { FC_REF_CONSTANT, 1, OFF(160,287), NUM(160,287) } }, /* 160 */ { "pap-an", { FC_REF_CONSTANT, 1, OFF(161,338), NUM(161,338) } }, /* 161 */ { "pap-aw", { FC_REF_CONSTANT, 1, OFF(162,339), NUM(162,339) } }, /* 162 */ { "pl", { FC_REF_CONSTANT, 2, OFF(163,340), NUM(163,340) } }, /* 163 */ { "ps-af", { FC_REF_CONSTANT, 1, OFF(164,342), NUM(164,342) } }, /* 164 */ { "ps-pk", { FC_REF_CONSTANT, 1, OFF(165,343), NUM(165,343) } }, /* 165 */ { "pt", { FC_REF_CONSTANT, 1, OFF(166,344), NUM(166,344) } }, /* 166 */ { "qu", { FC_REF_CONSTANT, 2, OFF(167,345), NUM(167,345) } }, /* 167 */ { "quz", { FC_REF_CONSTANT, 2, OFF(168,345), NUM(168,345) } }, /* 168 */ { "rm", { FC_REF_CONSTANT, 1, OFF(169,347), NUM(169,347) } }, /* 169 */ { "rn", { FC_REF_CONSTANT, 1, OFF(170,87), NUM(170,87) } }, /* 170 */ { "ro", { FC_REF_CONSTANT, 3, OFF(171,348), NUM(171,348) } }, /* 171 */ { "ru", { FC_REF_CONSTANT, 1, OFF(172,279), NUM(172,279) } }, /* 172 */ { "rw", { FC_REF_CONSTANT, 1, OFF(173,87), NUM(173,87) } }, /* 173 */ { "sa", { FC_REF_CONSTANT, 1, OFF(174,30), NUM(174,30) } }, /* 174 */ { "sah", { FC_REF_CONSTANT, 1, OFF(175,351), NUM(175,351) } }, /* 175 */ { "sat", { FC_REF_CONSTANT, 1, OFF(176,352), NUM(176,352) } }, /* 176 */ { "sc", { FC_REF_CONSTANT, 1, OFF(177,353), NUM(177,353) } }, /* 177 */ { "sco", { FC_REF_CONSTANT, 3, OFF(178,354), NUM(178,354) } }, /* 178 */ { "sd", { FC_REF_CONSTANT, 1, OFF(179,357), NUM(179,357) } }, /* 179 */ { "se", { FC_REF_CONSTANT, 2, OFF(180,358), NUM(180,358) } }, /* 180 */ { "sel", { FC_REF_CONSTANT, 1, OFF(181,279), NUM(181,279) } }, /* 181 */ { "sg", { FC_REF_CONSTANT, 1, OFF(182,360), NUM(182,360) } }, /* 182 */ { "sh", { FC_REF_CONSTANT, 3, OFF(183,361), NUM(183,361) } }, /* 183 */ { "shs", { FC_REF_CONSTANT, 2, OFF(184,364), NUM(184,364) } }, /* 184 */ { "si", { FC_REF_CONSTANT, 1, OFF(185,366), NUM(185,366) } }, /* 185 */ { "sid", { FC_REF_CONSTANT, 2, OFF(186,367), NUM(186,367) } }, /* 186 */ { "sk", { FC_REF_CONSTANT, 2, OFF(187,369), NUM(187,369) } }, /* 187 */ { "sl", { FC_REF_CONSTANT, 2, OFF(188,42), NUM(188,42) } }, /* 188 */ { "sm", { FC_REF_CONSTANT, 2, OFF(189,371), NUM(189,371) } }, /* 189 */ { "sma", { FC_REF_CONSTANT, 1, OFF(190,373), NUM(190,373) } }, /* 190 */ { "smj", { FC_REF_CONSTANT, 1, OFF(191,374), NUM(191,374) } }, /* 191 */ { "smn", { FC_REF_CONSTANT, 2, OFF(192,375), NUM(192,375) } }, /* 192 */ { "sms", { FC_REF_CONSTANT, 3, OFF(193,377), NUM(193,377) } }, /* 193 */ { "sn", { FC_REF_CONSTANT, 1, OFF(194,87), NUM(194,87) } }, /* 194 */ { "so", { FC_REF_CONSTANT, 1, OFF(195,87), NUM(195,87) } }, /* 195 */ { "sq", { FC_REF_CONSTANT, 1, OFF(196,380), NUM(196,380) } }, /* 196 */ { "sr", { FC_REF_CONSTANT, 1, OFF(197,381), NUM(197,381) } }, /* 197 */ { "ss", { FC_REF_CONSTANT, 1, OFF(198,87), NUM(198,87) } }, /* 198 */ { "st", { FC_REF_CONSTANT, 1, OFF(199,87), NUM(199,87) } }, /* 199 */ { "su", { FC_REF_CONSTANT, 1, OFF(200,118), NUM(200,118) } }, /* 200 */ { "sv", { FC_REF_CONSTANT, 1, OFF(201,382), NUM(201,382) } }, /* 201 */ { "sw", { FC_REF_CONSTANT, 1, OFF(202,87), NUM(202,87) } }, /* 202 */ { "syr", { FC_REF_CONSTANT, 1, OFF(203,383), NUM(203,383) } }, /* 203 */ { "ta", { FC_REF_CONSTANT, 1, OFF(204,384), NUM(204,384) } }, /* 204 */ { "te", { FC_REF_CONSTANT, 1, OFF(205,385), NUM(205,385) } }, /* 205 */ { "tg", { FC_REF_CONSTANT, 1, OFF(206,386), NUM(206,386) } }, /* 206 */ { "th", { FC_REF_CONSTANT, 1, OFF(207,387), NUM(207,387) } }, /* 207 */ { "ti-er", { FC_REF_CONSTANT, 2, OFF(208,45), NUM(208,45) } }, /* 208 */ { "ti-et", { FC_REF_CONSTANT, 2, OFF(209,367), NUM(209,367) } }, /* 209 */ { "tig", { FC_REF_CONSTANT, 2, OFF(210,388), NUM(210,388) } }, /* 210 */ { "tk", { FC_REF_CONSTANT, 2, OFF(211,390), NUM(211,390) } }, /* 211 */ { "tl", { FC_REF_CONSTANT, 1, OFF(212,86), NUM(212,86) } }, /* 212 */ { "tn", { FC_REF_CONSTANT, 2, OFF(213,326), NUM(213,326) } }, /* 213 */ { "to", { FC_REF_CONSTANT, 2, OFF(214,371), NUM(214,371) } }, /* 214 */ { "tr", { FC_REF_CONSTANT, 2, OFF(215,392), NUM(215,392) } }, /* 215 */ { "ts", { FC_REF_CONSTANT, 1, OFF(216,87), NUM(216,87) } }, /* 216 */ { "tt", { FC_REF_CONSTANT, 1, OFF(217,394), NUM(217,394) } }, /* 217 */ { "tw", { FC_REF_CONSTANT, 5, OFF(218,4), NUM(218,4) } }, /* 218 */ { "ty", { FC_REF_CONSTANT, 3, OFF(219,395), NUM(219,395) } }, /* 219 */ { "tyv", { FC_REF_CONSTANT, 1, OFF(220,284), NUM(220,284) } }, /* 220 */ { "ug", { FC_REF_CONSTANT, 1, OFF(221,398), NUM(221,398) } }, /* 221 */ { "uk", { FC_REF_CONSTANT, 1, OFF(222,399), NUM(222,399) } }, /* 222 */ { "ur", { FC_REF_CONSTANT, 1, OFF(223,287), NUM(223,287) } }, /* 223 */ { "uz", { FC_REF_CONSTANT, 1, OFF(224,87), NUM(224,87) } }, /* 224 */ { "ve", { FC_REF_CONSTANT, 2, OFF(225,400), NUM(225,400) } }, /* 225 */ { "vi", { FC_REF_CONSTANT, 4, OFF(226,402), NUM(226,402) } }, /* 226 */ { "vo", { FC_REF_CONSTANT, 1, OFF(227,406), NUM(227,406) } }, /* 227 */ { "vot", { FC_REF_CONSTANT, 2, OFF(228,407), NUM(228,407) } }, /* 228 */ { "wa", { FC_REF_CONSTANT, 1, OFF(229,409), NUM(229,409) } }, /* 229 */ { "wal", { FC_REF_CONSTANT, 2, OFF(230,367), NUM(230,367) } }, /* 230 */ { "wen", { FC_REF_CONSTANT, 2, OFF(231,410), NUM(231,410) } }, /* 231 */ { "wo", { FC_REF_CONSTANT, 2, OFF(232,412), NUM(232,412) } }, /* 232 */ { "xh", { FC_REF_CONSTANT, 1, OFF(233,87), NUM(233,87) } }, /* 233 */ { "yap", { FC_REF_CONSTANT, 1, OFF(234,414), NUM(234,414) } }, /* 234 */ { "yi", { FC_REF_CONSTANT, 1, OFF(235,108), NUM(235,108) } }, /* 235 */ { "yo", { FC_REF_CONSTANT, 4, OFF(236,415), NUM(236,415) } }, /* 236 */ { "za", { FC_REF_CONSTANT, 1, OFF(237,87), NUM(237,87) } }, /* 237 */ { "zh-cn", { FC_REF_CONSTANT, 82, OFF(238,419), NUM(238,419) } }, /* 238 */ { "zh-hk", { FC_REF_CONSTANT, 171, OFF(239,501), NUM(239,501) } }, /* 239 */ { "zh-mo", { FC_REF_CONSTANT, 171, OFF(240,501), NUM(240,501) } }, /* 240 */ { "zh-sg", { FC_REF_CONSTANT, 82, OFF(241,419), NUM(241,419) } }, /* 241 */ { "zh-tw", { FC_REF_CONSTANT, 83, OFF(242,672), NUM(242,672) } }, /* 242 */ { "zu", { FC_REF_CONSTANT, 1, OFF(243,87), NUM(243,87) } }, /* 243 */ }, { { { /* 0 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x08104404, 0x08104404, } }, { { /* 1 */ 0xffff8002, 0xffffffff, 0x8002ffff, 0x00000000, 0xc0000000, 0xf0fc33c0, 0x03000000, 0x00000003, } }, { { /* 2 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x0810cf00, 0x0810cf00, } }, { { /* 3 */ 0x00000000, 0x00000000, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 4 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x00220008, 0x00220008, } }, { { /* 5 */ 0x00000000, 0x00000300, 0x00000000, 0x00000300, 0x00010040, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 6 */ 0x00000000, 0x00000000, 0x08100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 7 */ 0x00000048, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 8 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x30000000, 0x00000000, 0x03000000, } }, { { /* 9 */ 0xff7fff7f, 0xff01ff7f, 0x00003d7f, 0xffff7fff, 0xffff3d7f, 0x003d7fff, 0xff7f7f00, 0x00ff7fff, } }, { { /* 10 */ 0x003d7fff, 0xffffffff, 0x007fff7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 11 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x140a2202, 0x140a2202, } }, { { /* 12 */ 0x00000000, 0x07fffffe, 0x000007fe, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 13 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfff99fee, 0xd3c4fdff, 0xb000399f, 0x00030000, } }, { { /* 14 */ 0x00000000, 0x00c00030, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 15 */ 0xffff0042, 0xffffffff, 0x0002ffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 16 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x10028010, 0x10028010, } }, { { /* 17 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x10400080, 0x10400080, } }, { { /* 18 */ 0xc0000000, 0x00030000, 0xc0000000, 0x00000000, 0x00008000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 19 */ 0x00000000, 0x00000000, 0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 20 */ 0x00000000, 0x07ffffde, 0x001009f6, 0x40000000, 0x01000040, 0x00008200, 0x00001000, 0x00000000, } }, { { /* 21 */ 0xffff0000, 0xffffffff, 0x0000ffff, 0x00000000, 0x030c0000, 0x0c00cc0f, 0x03000000, 0x00000300, } }, { { /* 22 */ 0xffff4040, 0xffffffff, 0x4040ffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 23 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 24 */ 0x00003000, 0x00000000, 0x00000000, 0x00000000, 0x00110000, 0x00000000, 0x00000000, 0x000000c0, } }, { { /* 25 */ 0x00000000, 0x00000000, 0x08000000, 0x00000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 26 */ 0x00003000, 0x00000030, 0x00000000, 0x0000300c, 0x000c0000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 27 */ 0x00000000, 0x3a8b0000, 0x9e78e6b9, 0x0000802e, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 28 */ 0xffff0000, 0xffffd7ff, 0x0000d7ff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 29 */ 0xffffffe0, 0x83ffffff, 0x00003fff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 30 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x10008200, 0x10008200, } }, { { /* 31 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x060c3303, 0x060c3303, } }, { { /* 32 */ 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 33 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x03000000, 0x00003000, 0x00000000, } }, { { /* 34 */ 0x00000000, 0x00000000, 0x00000c00, 0x00000000, 0x20010040, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 35 */ 0x00000000, 0x00000000, 0x08100000, 0x00040000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 36 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfff99fee, 0xd3c5fdff, 0xb000399f, 0x00000000, } }, { { /* 37 */ 0x00000000, 0x00000000, 0xfffffeff, 0x3d7e03ff, 0xfeff0003, 0x03ffffff, 0x00000000, 0x00000000, } }, { { /* 38 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x12120404, 0x12120404, } }, { { /* 39 */ 0xfff99fee, 0xf3e5fdff, 0x0007399f, 0x0001ffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 40 */ 0x000330c0, 0x00000000, 0x00000000, 0x60000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 41 */ 0xffff0002, 0xffffffff, 0x0002ffff, 0x00000000, 0x00000000, 0x0c00c000, 0x00000000, 0x00000000, } }, { { /* 42 */ 0xff7fff7f, 0xff01ff00, 0x3d7f3d7f, 0xffff7fff, 0xffff0000, 0x003d7fff, 0xff7f7f3d, 0x00ff7fff, } }, { { /* 43 */ 0x003d7fff, 0xffffffff, 0x007fff00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 44 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x140ca381, 0x140ca381, } }, { { /* 45 */ 0x00000000, 0x80000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 46 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x10020004, 0x10020004, } }, { { /* 47 */ 0xffff0002, 0xffffffff, 0x0002ffff, 0x00000000, 0x00000000, 0x00000030, 0x000c0000, 0x030300c0, } }, { { /* 48 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0x001fffff, } }, { { /* 49 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x1a10cfc5, 0x9a10cfc5, } }, { { /* 50 */ 0x00000000, 0x00000000, 0x000c0000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 51 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x10420084, 0x10420084, } }, { { /* 52 */ 0xc0000000, 0x00030000, 0xc0000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 53 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x24082202, 0x24082202, } }, { { /* 54 */ 0x0c00f000, 0x00000000, 0x03000180, 0x6000c033, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 55 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x021c0a08, 0x021c0a08, } }, { { /* 56 */ 0x00000030, 0x00000000, 0x0000001e, 0x18000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 57 */ 0xfdffa966, 0xffffdfff, 0xa965dfff, 0x03ffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 58 */ 0x0000000c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 59 */ 0xffff0002, 0xffffffff, 0x0002ffff, 0x00000000, 0x00000000, 0x00000c00, 0x00c00000, 0x000c0000, } }, { { /* 60 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x0010c604, 0x8010c604, } }, { { /* 61 */ 0x00000000, 0x00000000, 0x00000000, 0x01f00000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 62 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000003f, 0x00000000, 0x00000000, 0x000c0000, } }, { { /* 63 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x25082262, 0x25082262, } }, { { /* 64 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x90400010, 0x10400010, } }, { { /* 65 */ 0xfff99fec, 0xf3e5fdff, 0xf807399f, 0x0000ffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 66 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x0001ffff, 0x00000000, 0x00000000, } }, { { /* 67 */ 0x0c000000, 0x00000000, 0x00000c00, 0x00000000, 0x00170240, 0x00040000, 0x001fe000, 0x00000000, } }, { { /* 68 */ 0x00000000, 0x00000000, 0x08500000, 0x00000008, 0x00000800, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 69 */ 0x00001003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 70 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffd740, 0xfffffffb, 0x00007fff, 0x00000000, } }, { { /* 71 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x00528f81, 0x00528f81, } }, { { /* 72 */ 0x30000300, 0x00300030, 0x30000000, 0x00003000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 73 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x10600010, 0x10600010, } }, { { /* 74 */ 0x00000000, 0x00000000, 0x00000000, 0x60000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 75 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x10020000, 0x10020000, } }, { { /* 76 */ 0x00000000, 0x00000000, 0x00000c00, 0x00000000, 0x20000402, 0x00180000, 0x00000000, 0x00000000, } }, { { /* 77 */ 0x00000000, 0x00000000, 0x00880000, 0x00040000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 78 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x00400030, 0x00400030, } }, { { /* 79 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x0e1e7707, 0x0e1e7707, } }, { { /* 80 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x25092042, 0x25092042, } }, { { /* 81 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x02041107, 0x02041107, } }, { { /* 82 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x9c508e14, 0x1c508e14, } }, { { /* 83 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x04082202, 0x04082202, } }, { { /* 84 */ 0x00000c00, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 85 */ 0xc0000c0c, 0x00000000, 0x00c00003, 0x00000c03, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 86 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x020c1383, 0x020c1383, } }, { { /* 87 */ 0xff7fff7f, 0xff01ff7f, 0x00003d7f, 0x00ff00ff, 0x00ff3d7f, 0x003d7fff, 0xff7f7f00, 0x00ff7f00, } }, { { /* 88 */ 0x003d7f00, 0xffff01ff, 0x007fff7f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 89 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x040a2202, 0x042a220a, } }, { { /* 90 */ 0x00000000, 0x00000200, 0x00000000, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 91 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x20000000, 0x00000000, 0x02000000, } }, { { /* 92 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffbafee, 0xf3edfdff, 0x00013bbf, 0x00000001, } }, { { /* 93 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x00000080, 0x00000080, } }, { { /* 94 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x03000402, 0x00180000, 0x00000000, 0x00000000, } }, { { /* 95 */ 0x00000000, 0x00000000, 0x00880000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 96 */ 0x000c0003, 0x00000c00, 0x00003000, 0x00000c00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 97 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x08000000, 0x00000000, 0x00000000, } }, { { /* 98 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0x000007ff, } }, { { /* 99 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x00080000, 0x00080000, } }, { { /* 100 */ 0x0c0030c0, 0x00000000, 0x0300001e, 0x66000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 101 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x00040100, 0x00040100, } }, { { /* 102 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x14482202, 0x14482202, } }, { { /* 103 */ 0x00000000, 0x00000000, 0x00030000, 0x00030000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 104 */ 0x00000000, 0xfffe0000, 0x007fffff, 0xfffffffe, 0x000000ff, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 105 */ 0x00000000, 0x00008000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 106 */ 0x000c0000, 0x00000000, 0x00000c00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 107 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x00000200, 0x00000200, } }, { { /* 108 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00003c00, 0x00000030, } }, { { /* 109 */ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, } }, { { /* 110 */ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x00001fff, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 111 */ 0xffff4002, 0xffffffff, 0x4002ffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 112 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x64092242, 0x64092242, } }, { { /* 113 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x060cb301, 0x060cb301, } }, { { /* 114 */ 0x00000c7e, 0x031f8000, 0x0063f200, 0x000df840, 0x00037e08, 0x08000dfa, 0x0df901bf, 0x5437e400, } }, { { /* 115 */ 0x00000025, 0x40006fc0, 0x27f91be4, 0xdee00000, 0x007ff83f, 0x00007f7f, 0x00000000, 0x00000000, } }, { { /* 116 */ 0x00000000, 0x00000000, 0x00000000, 0x007f8000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 117 */ 0x000000e7, 0x00000000, 0xfffffffe, 0xffffffff, 0x780fffff, 0xfffffffe, 0xffffffff, 0x787fffff, } }, { { /* 118 */ 0x43f36f8b, 0x9b462442, 0xe3e0e82c, 0x400a0004, 0xdb365f65, 0x04497977, 0xe3f0ecd7, 0x08c56038, } }, { { /* 119 */ 0x3403e602, 0x35518000, 0x7eabe0c8, 0x98698200, 0x2942a948, 0x8060e803, 0xad93441c, 0x4568c03a, } }, { { /* 120 */ 0x8656aa60, 0x02403f7a, 0x14618388, 0x21741020, 0x07022021, 0x40bc3000, 0x4462a624, 0x0a2060a8, } }, { { /* 121 */ 0x85740217, 0x9c840402, 0x14157bfb, 0x11e27f24, 0x02efb665, 0x20ff1f75, 0x28403a70, 0x676326c3, } }, { { /* 122 */ 0x20924dd9, 0x0fc946b0, 0x4850bc98, 0xa03f8638, 0x88162388, 0x52323e09, 0xe3a422aa, 0xc72c00dd, } }, { { /* 123 */ 0x26e1a166, 0x8f0a840b, 0x559e27eb, 0x89bbc241, 0x85400014, 0x08496361, 0x8ad07f0c, 0x05cfff3e, } }, { { /* 124 */ 0xa803ff1a, 0x7b407a41, 0x80024745, 0x38eb0500, 0x0005d851, 0x710c9934, 0x01000397, 0x24046366, } }, { { /* 125 */ 0x005180d0, 0x430ac000, 0x30c89071, 0x58000008, 0xf7000e99, 0x00415f80, 0x941000b0, 0x62800018, } }, { { /* 126 */ 0x09d00240, 0x01568200, 0x08015004, 0x05101d10, 0x001084c1, 0x10504025, 0x4d8a410f, 0xa60d4009, } }, { { /* 127 */ 0x914cab19, 0x098121c0, 0x0003c485, 0x80000652, 0x00080b04, 0x0009041d, 0x905c4849, 0x16900009, } }, { { /* 128 */ 0x22200c65, 0x24338412, 0x47960c03, 0x42250a04, 0x90880028, 0x4f084900, 0xd3aa14a2, 0x3e87d830, } }, { { /* 129 */ 0x1f618604, 0x41867ea4, 0x05b3c390, 0x211857a5, 0x2a48241e, 0x4a041128, 0x161b0a40, 0x88400d60, } }, { { /* 130 */ 0x9502020a, 0x10608221, 0x04000243, 0x80001444, 0x0c040000, 0x70000000, 0x00c11a06, 0x0c00024a, } }, { { /* 131 */ 0x00401a00, 0x40451404, 0xbdb30029, 0x052b0a78, 0xbfa0bba9, 0x8379407c, 0xe81d12fc, 0xc5694bf6, } }, { { /* 132 */ 0x044aeff6, 0xff022115, 0x402bed63, 0x0242d033, 0x00131000, 0x59ca1b02, 0x020000a0, 0x2c41a703, } }, { { /* 133 */ 0x8ff24880, 0x00000204, 0x10055800, 0x00489200, 0x20011894, 0x34805004, 0x684c3200, 0x68be49ea, } }, { { /* 134 */ 0x2e42184c, 0x21c9a820, 0x80b050b9, 0xff7c001e, 0x14e0849a, 0x01e028c1, 0xac49870e, 0xdddb130f, } }, { { /* 135 */ 0x89fbbe1a, 0x51a2a2e0, 0x32ca5502, 0x928b3e46, 0x438f1dbf, 0x32186703, 0x33c03028, 0xa9230811, } }, { { /* 136 */ 0x3a65c000, 0x04028fe3, 0x86252c4e, 0x00a1bf3d, 0x8cd43a1a, 0x317c06c9, 0x950a00e0, 0x0edb018b, } }, { { /* 137 */ 0x8c20e34b, 0xf0101182, 0xa7287d94, 0x40fbc9ac, 0x06534484, 0x44445a90, 0x00013fc8, 0xf5d40048, } }, { { /* 138 */ 0xec577701, 0x891dc442, 0x49286b83, 0xd2424109, 0x59fe061d, 0x3a221800, 0x3b9fb7e4, 0xc0eaf003, } }, { { /* 139 */ 0x82021386, 0xe4008980, 0x10a1b200, 0x0cc44b80, 0x8944d309, 0x48341faf, 0x0c458259, 0x0450420a, } }, { { /* 140 */ 0x10c8a040, 0x44503140, 0x01004004, 0x05408280, 0x442c0108, 0x1a056a30, 0x051420a6, 0x645690cf, } }, { { /* 141 */ 0x31000021, 0xcbf09c18, 0x63e2a120, 0x01b5104c, 0x9a83538c, 0x3281b8b2, 0x0a84987a, 0x0c0233e7, } }, { { /* 142 */ 0x9018d4cc, 0x9070a1a1, 0xe0048a1e, 0x0451c3d4, 0x21c2439a, 0x53104844, 0x36400292, 0xf3bd0241, } }, { { /* 143 */ 0xe8f0ab09, 0xa5d27dc0, 0xd24bc242, 0xd0afa43f, 0x34a11aa0, 0x03d88247, 0x651bc452, 0xc83ad294, } }, { { /* 144 */ 0x40c8001c, 0x33140e06, 0xb21b614f, 0xc0d00088, 0xa898a02a, 0x166ba1c5, 0x85b42e50, 0x0604c08b, } }, { { /* 145 */ 0x1e04f933, 0xa251056e, 0x76380400, 0x73b8ec07, 0x18324406, 0xc8164081, 0x63097c8a, 0xaa042980, } }, { { /* 146 */ 0xca9c1c24, 0x27604e0e, 0x83000990, 0x81040046, 0x10816011, 0x0908540d, 0xcc0a000e, 0x0c000500, } }, { { /* 147 */ 0xa0440430, 0x6784008b, 0x8a195288, 0x8b18865e, 0x41602e59, 0x9cbe8c10, 0x891c6861, 0x00089800, } }, { { /* 148 */ 0x089a8100, 0x41900018, 0xe4a14007, 0x640d0505, 0x0e4d310e, 0xff0a4806, 0x2aa81632, 0x000b852e, } }, { { /* 149 */ 0xca841800, 0x696c0e20, 0x16000032, 0x03905658, 0x1a285120, 0x11248000, 0x432618e1, 0x0eaa5d52, } }, { { /* 150 */ 0xae280fa0, 0x4500fa7b, 0x89406408, 0xc044c880, 0xb1419005, 0x24c48424, 0x603a1a34, 0xc1949000, } }, { { /* 151 */ 0x003a8246, 0xc106180d, 0x99100022, 0x1511e050, 0x00824057, 0x020a041a, 0x8930004f, 0x444ad813, } }, { { /* 152 */ 0xed228a02, 0x400510c0, 0x01021000, 0x31018808, 0x02044600, 0x0708f000, 0xa2008900, 0x22020000, } }, { { /* 153 */ 0x16100200, 0x10400042, 0x02605200, 0x200052f4, 0x80308510, 0x42021100, 0x80b54308, 0x9a2070e1, } }, { { /* 154 */ 0x08012040, 0xfc653500, 0xab0419c1, 0x62140286, 0x00440087, 0x02449085, 0x0a85405c, 0x33803207, } }, { { /* 155 */ 0xb8c00400, 0xc0d0ce20, 0x0080c030, 0x0d250508, 0x00400a90, 0x080c0200, 0x40006505, 0x41026421, } }, { { /* 156 */ 0x00000268, 0x847c0024, 0xde200002, 0x40498619, 0x40000808, 0x20010084, 0x10108400, 0x01c742cd, } }, { { /* 157 */ 0xd52a7038, 0x1d8f1968, 0x3e12be50, 0x81d92ef5, 0x2412cec4, 0x732e0828, 0x4b3424ac, 0xd41d020c, } }, { { /* 158 */ 0x80002a02, 0x08110097, 0x114411c4, 0x7d451786, 0x064949d9, 0x87914000, 0xd8c4254c, 0x491444ba, } }, { { /* 159 */ 0xc8001b92, 0x15800271, 0x0c000081, 0xc200096a, 0x40024800, 0xba493021, 0x1c802080, 0x1008e2ac, } }, { { /* 160 */ 0x00341004, 0x841400e1, 0x20000020, 0x10149800, 0x04aa70c2, 0x54208688, 0x04130c62, 0x20109180, } }, { { /* 161 */ 0x02064082, 0x54001c40, 0xe4e90383, 0x84802125, 0x2000e433, 0xe60944c0, 0x81260a03, 0x080112da, } }, { { /* 162 */ 0x97906901, 0xf8864001, 0x0081e24d, 0xa6510a0e, 0x81ec011a, 0x8441c600, 0xb62cadb8, 0x8741a46f, } }, { { /* 163 */ 0x4b028d54, 0x02681161, 0x2057bb60, 0x043350a0, 0xb7b4a8c0, 0x01122402, 0x20009ad3, 0x00c82271, } }, { { /* 164 */ 0x809e2081, 0xe1800c8a, 0x8151b009, 0x40281031, 0x89a52a0e, 0x620e69b6, 0xd1444425, 0x4d548085, } }, { { /* 165 */ 0x1fb12c75, 0x862dd807, 0x4841d87c, 0x226e414e, 0x9e088200, 0xed37f80c, 0x75268c80, 0x08149313, } }, { { /* 166 */ 0xc8040e32, 0x6ea6484e, 0x66702c4a, 0xba0126c0, 0x185dd30c, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 167 */ 0x00000000, 0x05400000, 0x81337020, 0x03a54f81, 0x641055ec, 0x2344c318, 0x00341462, 0x1a090a43, } }, { { /* 168 */ 0x13a5187b, 0xa8480102, 0xc5440440, 0xe2dd8106, 0x2d481af0, 0x0416b626, 0x6e405058, 0x31128032, } }, { { /* 169 */ 0x0c0007e4, 0x420a8208, 0x803b4840, 0x87134860, 0x3428850d, 0xe5290319, 0x870a2345, 0x5c1825a9, } }, { { /* 170 */ 0xd9c577a6, 0x03e85e00, 0xa7000081, 0x41c6cd54, 0xa2042800, 0x2b0ab860, 0xda9e0020, 0x0e1a08ea, } }, { { /* 171 */ 0x11c0427c, 0x03768908, 0x01058621, 0x18a80000, 0xc44846a0, 0x20220d05, 0x91485422, 0x28978a01, } }, { { /* 172 */ 0x00087898, 0x31221605, 0x08804240, 0x06a2fa4e, 0x92110814, 0x9b042002, 0x06432e52, 0x90105000, } }, { { /* 173 */ 0x85ba0041, 0x20203042, 0x05a04f0b, 0x40802708, 0x1a930591, 0x0600df50, 0x3021a202, 0x4e800630, } }, { { /* 174 */ 0x04c80cc4, 0x8001a004, 0xd4316000, 0x0a020880, 0x00281c00, 0x00418e18, 0xca106ad0, 0x4b00f210, } }, { { /* 175 */ 0x1506274d, 0x88900220, 0x82a85a00, 0x81504549, 0x80002004, 0x2c088804, 0x000508d1, 0x4ac48001, } }, { { /* 176 */ 0x0062e020, 0x0a42008e, 0x6a8c3055, 0xe0a5090e, 0x42c42906, 0x80b34814, 0xb330803e, 0x731c0102, } }, { { /* 177 */ 0x600d1494, 0x09400c20, 0xc040301a, 0xc094a451, 0x05c88dca, 0xa40c96c2, 0x34040001, 0x011000c8, } }, { { /* 178 */ 0xa9c9550d, 0x1c5a2428, 0x48370142, 0x100f7a4d, 0x452a32b4, 0x9205317b, 0x5c44b894, 0x458a68d7, } }, { { /* 179 */ 0x2ed15097, 0x42081943, 0x9d40d202, 0x20979840, 0x064d5409, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 180 */ 0x00000000, 0x84800000, 0x04215542, 0x17001c06, 0x61107624, 0xb9ddff87, 0x5c0a659f, 0x3c00245d, } }, { { /* 181 */ 0x0059adb0, 0x00000000, 0x00000000, 0x009b28d0, 0x02000422, 0x44080108, 0xac409804, 0x90288d0a, } }, { { /* 182 */ 0xe0018700, 0x00310400, 0x82211794, 0x10540019, 0x021a2cb2, 0x40039c02, 0x88043d60, 0x7900080c, } }, { { /* 183 */ 0xba3c1628, 0xcb088640, 0x90807274, 0x0000001e, 0xd8000000, 0x9c87e188, 0x04124034, 0x2791ae64, } }, { { /* 184 */ 0xe6fbe86b, 0x5366408f, 0x537feea6, 0xb5e4e32b, 0x0002869f, 0x01228548, 0x08004402, 0x20a02116, } }, { { /* 185 */ 0x02040004, 0x00052000, 0x01547e00, 0x01ac162c, 0x10852a84, 0x05308c14, 0xb943fbc3, 0x906000ca, } }, { { /* 186 */ 0x40326000, 0x80901200, 0x4c810b30, 0x40020054, 0x1d6a0029, 0x02802000, 0x00048000, 0x150c2610, } }, { { /* 187 */ 0x07018040, 0x0c24d94d, 0x18502810, 0x50205001, 0x04d01000, 0x02017080, 0x21c30108, 0x00000132, } }, { { /* 188 */ 0x07190088, 0x05600802, 0x4c0e0012, 0xf0a10405, 0x00000002, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 189 */ 0x00000000, 0x00000000, 0x00000000, 0x00800000, 0x035a8e8d, 0x5a0421bd, 0x11703488, 0x00000026, } }, { { /* 190 */ 0x10000000, 0x8804c502, 0xf801b815, 0x25ed147c, 0x1bb0ed60, 0x1bd70589, 0x1a627af3, 0x0ac50d0c, } }, { { /* 191 */ 0x524ae5d1, 0x63050490, 0x52440354, 0x16122b57, 0x1101a872, 0x00182949, 0x10080948, 0x886c6000, } }, { { /* 192 */ 0x058f916e, 0x39903012, 0x4930f840, 0x001b8880, 0x00000000, 0x00428500, 0x98000058, 0x7014ea04, } }, { { /* 193 */ 0x611d1628, 0x60005113, 0x00a71a24, 0x00000000, 0x03c00000, 0x10187120, 0xa9270172, 0x89066004, } }, { { /* 194 */ 0x020cc022, 0x40810900, 0x8ca0202d, 0x00000e34, 0x00000000, 0x11012100, 0xc11a8011, 0x0892ec4c, } }, { { /* 195 */ 0x85000040, 0x1806c7ac, 0x0512e03e, 0x00108000, 0x80ce4008, 0x02106d01, 0x08568641, 0x0027011e, } }, { { /* 196 */ 0x083d3750, 0x4e05e032, 0x048401c0, 0x01400081, 0x00000000, 0x00000000, 0x00000000, 0x00591aa0, } }, { { /* 197 */ 0x882443c8, 0xc8001d48, 0x72030152, 0x04049013, 0x04008280, 0x0d148a10, 0x02088056, 0x2704a040, } }, { { /* 198 */ 0x4c000000, 0x00000000, 0x00000000, 0xa3200000, 0xa0ae1902, 0xdf002660, 0x7b15f010, 0x3ad08121, } }, { { /* 199 */ 0x00284180, 0x48001003, 0x8014cc00, 0x00c414cf, 0x30202000, 0x00000001, 0x00000000, 0x00000000, } }, { { /* 200 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x00000300, 0x00000300, } }, { { /* 201 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffff0000, 0x0001ffff, } }, { { /* 202 */ 0xffff0002, 0xffffffff, 0x0002ffff, 0x00000000, 0x0c0c0000, 0x000cc00c, 0x03000000, 0x00000000, } }, { { /* 203 */ 0x00000000, 0x00000300, 0x00000000, 0x00000300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 204 */ 0xffff0000, 0xffffffff, 0x0040ffff, 0x00000000, 0x0c0c0000, 0x0c00000c, 0x03000000, 0x00000300, } }, { { /* 205 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x0d10646e, 0x0d10646e, } }, { { /* 206 */ 0x00000000, 0x01000300, 0x00000000, 0x00000300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 207 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x9fffffff, 0xffcffee7, 0x0000003f, 0x00000000, } }, { { /* 208 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffddfec, 0xc3effdff, 0x40603ddf, 0x00000003, } }, { { /* 209 */ 0x00000000, 0xfffe0000, 0xffffffff, 0xffffffff, 0x00007fff, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 210 */ 0x3eff0793, 0x1303b011, 0x11102801, 0x05930000, 0xb0111e7b, 0x3b019703, 0x00a01112, 0x306b9593, } }, { { /* 211 */ 0x1102b051, 0x11303201, 0x011102b0, 0xb879300a, 0x30011306, 0x00800010, 0x100b0113, 0x93000011, } }, { { /* 212 */ 0x00102b03, 0x05930000, 0xb051746b, 0x3b011323, 0x00001030, 0x70000000, 0x1303b011, 0x11102900, } }, { { /* 213 */ 0x00012180, 0xb0153000, 0x3001030e, 0x02000030, 0x10230111, 0x13000000, 0x10106b81, 0x01130300, } }, { { /* 214 */ 0x30111013, 0x00000100, 0x22b85530, 0x30000000, 0x9702b011, 0x113afb07, 0x011303b0, 0x00000021, } }, { { /* 215 */ 0x3b0d1b00, 0x03b01138, 0x11330113, 0x13000001, 0x111c2b05, 0x00000100, 0xb0111000, 0x2a011300, } }, { { /* 216 */ 0x02b01930, 0x10100001, 0x11000000, 0x10300301, 0x07130230, 0x0011146b, 0x2b051300, 0x8fb8f974, } }, { { /* 217 */ 0x103b0113, 0x00000000, 0xd9700000, 0x01134ab0, 0x0011103b, 0x00001103, 0x2ab15930, 0x10000111, } }, { { /* 218 */ 0x11010000, 0x00100b01, 0x01130000, 0x0000102b, 0x20000101, 0x02a01110, 0x30210111, 0x0102b059, } }, { { /* 219 */ 0x19300000, 0x011307b0, 0xb011383b, 0x00000003, 0x00000000, 0x383b0d13, 0x0103b011, 0x00001000, } }, { { /* 220 */ 0x01130000, 0x00101020, 0x00000100, 0x00000110, 0x30000000, 0x00021811, 0x00100000, 0x01110000, } }, { { /* 221 */ 0x00000023, 0x0b019300, 0x00301110, 0x302b0111, 0x13c7b011, 0x01303b01, 0x00000280, 0xb0113000, } }, { { /* 222 */ 0x2b011383, 0x03b01130, 0x300a0011, 0x1102b011, 0x00002000, 0x01110100, 0xa011102b, 0x2b011302, } }, { { /* 223 */ 0x01000010, 0x30000001, 0x13029011, 0x11302b01, 0x000066b0, 0xb0113000, 0x6b07d302, 0x07b0113a, } }, { { /* 224 */ 0x00200103, 0x13000000, 0x11386b05, 0x011303b0, 0x000010b8, 0x2b051b00, 0x03000110, 0x10000000, } }, { { /* 225 */ 0x1102a011, 0x79700a01, 0x0111a2b0, 0x0000100a, 0x00011100, 0x00901110, 0x00090111, 0x93000000, } }, { { /* 226 */ 0xf9f2bb05, 0x011322b0, 0x2001323b, 0x00000000, 0x06b05930, 0x303b0193, 0x1123a011, 0x11700000, } }, { { /* 227 */ 0x001102b0, 0x00001010, 0x03011301, 0x00000110, 0x162b0793, 0x01010010, 0x11300000, 0x01110200, } }, { { /* 228 */ 0xb0113029, 0x00000000, 0x0eb05130, 0x383b0513, 0x0303b011, 0x00000100, 0x01930000, 0x00001039, } }, { { /* 229 */ 0x3b000302, 0x00000000, 0x00230113, 0x00000000, 0x00100000, 0x00010000, 0x90113020, 0x00000002, } }, { { /* 230 */ 0x00000000, 0x10000000, 0x11020000, 0x00000301, 0x01130000, 0xb079b02b, 0x3b011323, 0x02b01130, } }, { { /* 231 */ 0xf0210111, 0x1343b0d9, 0x11303b01, 0x011103b0, 0xb0517020, 0x20011322, 0x01901110, 0x300b0111, } }, { { /* 232 */ 0x9302b011, 0x0016ab01, 0x01130100, 0xb0113021, 0x29010302, 0x02b03130, 0x30000000, 0x1b42b819, } }, { { /* 233 */ 0x11383301, 0x00000330, 0x00000020, 0x33051300, 0x00001110, 0x00000000, 0x93000000, 0x01302305, } }, { { /* 234 */ 0x00010100, 0x30111010, 0x00000100, 0x02301130, 0x10100001, 0x11000000, 0x00000000, 0x85130200, } }, { { /* 235 */ 0x10111003, 0x2b011300, 0x63b87730, 0x303b0113, 0x11a2b091, 0x7b300201, 0x011357f0, 0xf0d1702b, } }, { { /* 236 */ 0x1b0111e3, 0x0ab97130, 0x303b0113, 0x13029001, 0x11302b01, 0x071302b0, 0x3011302b, 0x23011303, } }, { { /* 237 */ 0x02b01130, 0x30ab0113, 0x11feb411, 0x71300901, 0x05d347b8, 0xb011307b, 0x21015303, 0x00001110, } }, { { /* 238 */ 0x306b0513, 0x1102b011, 0x00103301, 0x05130000, 0xa01038eb, 0x30000102, 0x02b01110, 0x30200013, } }, { { /* 239 */ 0x0102b071, 0x00101000, 0x01130000, 0x1011100b, 0x2b011300, 0x00000000, 0x366b0593, 0x1303b095, } }, { { /* 240 */ 0x01103b01, 0x00000200, 0xb0113000, 0x20000103, 0x01000010, 0x30000000, 0x030ab011, 0x00101001, } }, { { /* 241 */ 0x01110100, 0x00000003, 0x23011302, 0x03000010, 0x10000000, 0x01000000, 0x00100000, 0x00000290, } }, { { /* 242 */ 0x30113000, 0x7b015386, 0x03b01130, 0x00210151, 0x13000000, 0x11303b01, 0x001102b0, 0x00011010, } }, { { /* 243 */ 0x2b011302, 0x02001110, 0x10000000, 0x0102b011, 0x11300100, 0x000102b0, 0x00011010, 0x2b011100, } }, { { /* 244 */ 0x02101110, 0x002b0113, 0x93000000, 0x11302b03, 0x011302b0, 0x0000303b, 0x00000002, 0x03b01930, } }, { { /* 245 */ 0x102b0113, 0x0103b011, 0x11300000, 0x011302b0, 0x00001021, 0x00010102, 0x00000010, 0x102b0113, } }, { { /* 246 */ 0x01020011, 0x11302000, 0x011102b0, 0x30113001, 0x00000002, 0x02b01130, 0x303b0313, 0x0103b011, } }, { { /* 247 */ 0x00002000, 0x05130000, 0xb011303b, 0x10001102, 0x00000110, 0x142b0113, 0x01000001, 0x01100000, } }, { { /* 248 */ 0x00010280, 0xb0113000, 0x10000102, 0x00000010, 0x10230113, 0x93021011, 0x11100b05, 0x01130030, } }, { { /* 249 */ 0xb051702b, 0x3b011323, 0x00000030, 0x30000000, 0x1303b011, 0x11102b01, 0x01010330, 0xb011300a, } }, { { /* 250 */ 0x20000102, 0x00000000, 0x10000011, 0x9300a011, 0x00102b05, 0x00000200, 0x90111000, 0x29011100, } }, { { /* 251 */ 0x00b01110, 0x30000000, 0x1302b011, 0x11302b21, 0x000103b0, 0x00000020, 0x2b051300, 0x02b01130, } }, { { /* 252 */ 0x103b0113, 0x13002011, 0x11322b21, 0x00130280, 0xa0113028, 0x0a011102, 0x02921130, 0x30210111, } }, { { /* 253 */ 0x13020011, 0x11302b01, 0x03d30290, 0x3011122b, 0x2b011302, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 254 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0x20000000, 0x00000000, } }, { { /* 255 */ 0x00000000, 0x00000000, 0x00003000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 256 */ 0x00000000, 0x040001df, 0x80800176, 0x420c0000, 0x01020140, 0x44008200, 0x00041018, 0x00000000, } }, { { /* 257 */ 0xffff0000, 0xffff27bf, 0x000027bf, 0x00000000, 0x00000000, 0x0c000000, 0x03000000, 0x000000c0, } }, { { /* 258 */ 0x3c000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 259 */ 0x00000000, 0x061ef5c0, 0x000001f6, 0x40000000, 0x01040040, 0x00208210, 0x00005040, 0x00000000, } }, { { /* 260 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x08004480, 0x08004480, } }, { { /* 261 */ 0x00000000, 0x00000000, 0xc0000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 262 */ 0xffff0002, 0xffffffff, 0x0002ffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 263 */ 0xffff0042, 0xffffffff, 0x0042ffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000c0, } }, { { /* 264 */ 0x00000000, 0x000c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 265 */ 0xffff0002, 0xffffffff, 0x0002ffff, 0x00000000, 0x00000000, 0x0000c00c, 0x00000000, 0x00000000, } }, { { /* 266 */ 0x000c0003, 0x00003c00, 0x0000f000, 0x00003c00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 267 */ 0x00000000, 0x040001de, 0x00000176, 0x42000000, 0x01020140, 0x44008200, 0x00041008, 0x00000000, } }, { { /* 268 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x98504f14, 0x18504f14, } }, { { /* 269 */ 0x00000000, 0x00000000, 0x00000c00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 270 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x00480910, 0x00480910, } }, { { /* 271 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x0c186606, 0x0c186606, } }, { { /* 272 */ 0x0c000000, 0x00000000, 0x00000000, 0x00000000, 0x00010040, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 273 */ 0x00001006, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 274 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfef02596, 0x3bffecae, 0x30003f5f, 0x00000000, } }, { { /* 275 */ 0x03c03030, 0x0000c000, 0x00000000, 0x600c0c03, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 276 */ 0x000c3003, 0x18c00c0c, 0x00c03060, 0x60000c03, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 277 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x00100002, 0x00100002, } }, { { /* 278 */ 0x00000003, 0x18000000, 0x00003060, 0x00000c00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 279 */ 0x00000000, 0x00300000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 280 */ 0xfdffb729, 0x000001ff, 0xb7290000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 281 */ 0xfffddfec, 0xc3fffdff, 0x00803dcf, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 282 */ 0x00000000, 0xffffffff, 0xffffffff, 0x00ffffff, 0xffffffff, 0x000003ff, 0x00000000, 0x00000000, } }, { { /* 283 */ 0xffff0002, 0xffffffff, 0x0002ffff, 0x00000000, 0x00000000, 0x0000c000, 0x00000000, 0x00000300, } }, { { /* 284 */ 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0xfff99fee, 0xf3c5fdff, 0xb000798f, 0x0002ffc0, } }, { { /* 285 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x00004004, 0x00004004, } }, { { /* 286 */ 0x0f000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 287 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x02045101, 0x02045101, } }, { { /* 288 */ 0x00000c00, 0x000000c3, 0x00000000, 0x18000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 289 */ 0xffffffff, 0x0007f6fb, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 290 */ 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 291 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x011c0661, 0x011c0661, } }, { { /* 292 */ 0xfff98fee, 0xc3e5fdff, 0x0001398f, 0x0001fff0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 293 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x1c58af16, 0x1c58af16, } }, { { /* 294 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x115c0671, 0x115c0671, } }, { { /* 295 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x07ffffff, } }, { { /* 296 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x00100400, 0x00100400, } }, { { /* 297 */ 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 298 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x00082202, 0x00082202, } }, { { /* 299 */ 0x03000030, 0x0000c000, 0x00000006, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000c00, } }, { { /* 300 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000, } }, { { /* 301 */ 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 302 */ 0x00000000, 0x00000000, 0x00000000, 0x00300000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 303 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x040c2383, 0x040c2383, } }, { { /* 304 */ 0xfff99fee, 0xf3cdfdff, 0xb0c0398f, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 305 */ 0x00000000, 0x07ffffc6, 0x000001fe, 0x40000000, 0x01000040, 0x0000a000, 0x00001000, 0x00000000, } }, { { /* 306 */ 0xfff987e0, 0xd36dfdff, 0x1e003987, 0x001f0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 307 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x160e2302, 0x160e2302, } }, { { /* 308 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x00020000, 0x00020000, } }, { { /* 309 */ 0x030000f0, 0x00000000, 0x0c00001e, 0x1e000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 310 */ 0x00000000, 0x07ffffde, 0x000005f6, 0x50000000, 0x05480262, 0x10000a00, 0x00013000, 0x00000000, } }, { { /* 311 */ 0x00000000, 0x07ffffde, 0x000005f6, 0x50000000, 0x05480262, 0x10000a00, 0x00052000, 0x00000000, } }, { { /* 312 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x143c278f, 0x143c278f, } }, { { /* 313 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, } }, { { /* 314 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x02045301, 0x02045301, } }, { { /* 315 */ 0xffff0002, 0xffffffff, 0x0002ffff, 0x00000000, 0x00300000, 0x0c00c030, 0x03000000, 0x00000000, } }, { { /* 316 */ 0xfff987ee, 0xf325fdff, 0x00013987, 0x0001fff0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 317 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x02041101, 0x02041101, } }, { { /* 318 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00800000, 0x00000000, 0x00000000, } }, { { /* 319 */ 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00040000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 320 */ 0x00000000, 0x07fffdd6, 0x000005f6, 0xec000000, 0x0200b4d9, 0x480a8640, 0x00000000, 0x00000000, } }, { { /* 321 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x00000002, 0x00000002, } }, { { /* 322 */ 0x00033000, 0x00000000, 0x00000c00, 0x600000c3, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 323 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x1850cc14, 0x1850cc14, } }, { { /* 324 */ 0xffff8f04, 0xffffffff, 0x8f04ffff, 0x00000000, 0x030c0000, 0x0c00cc0f, 0x03000000, 0x00000300, } }, { { /* 325 */ 0x00000000, 0x00800000, 0x03bffbaa, 0x03bffbaa, 0x00000000, 0x00000000, 0x00002202, 0x00002202, } }, { { /* 326 */ 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 327 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfc7e3fec, 0x2ffbffbf, 0x7f5f847f, 0x00040000, } }, { { /* 328 */ 0xff7fff7f, 0xff01ff7f, 0x3d7f3d7f, 0xffff7fff, 0xffff3d7f, 0x003d7fff, 0xff7f7f3d, 0x00ff7fff, } }, { { /* 329 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x24182212, 0x24182212, } }, { { /* 330 */ 0x0000f000, 0x66000000, 0x00300180, 0x60000033, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 331 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x00408030, 0x00408030, } }, { { /* 332 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x00020032, 0x00020032, } }, { { /* 333 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x00000016, 0x00000016, } }, { { /* 334 */ 0x00033000, 0x00000000, 0x00000c00, 0x60000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 335 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x00200034, 0x00200034, } }, { { /* 336 */ 0x00033000, 0x00000000, 0x00000c00, 0x60000003, 0x00000000, 0x00800000, 0x00000000, 0x0000c3f0, } }, { { /* 337 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00040000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 338 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x00000880, 0x00000880, } }, { { /* 339 */ 0xfdff8f04, 0xfdff01ff, 0x8f0401ff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 340 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x10400a33, 0x10400a33, } }, { { /* 341 */ 0xffff0000, 0xffff1fff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 342 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xd63dc7e8, 0xc3bfc718, 0x00803dc7, 0x00000000, } }, { { /* 343 */ 0xfffddfee, 0xc3effdff, 0x00603ddf, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 344 */ 0xffff0002, 0xffffffff, 0x0002ffff, 0x00000000, 0x0c0c0000, 0x00cc0000, 0x00000000, 0x0000c00c, } }, { { /* 345 */ 0xfffffffe, 0x87ffffff, 0x00007fff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 346 */ 0xff7fff7f, 0xff01ff00, 0x00003d7f, 0xffff7fff, 0x00ff0000, 0x003d7f7f, 0xff7f7f00, 0x00ff7f00, } }, { { /* 347 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x30400090, 0x30400090, } }, { { /* 348 */ 0x00000000, 0x00000000, 0xc0000180, 0x60000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 349 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x18404084, 0x18404084, } }, { { /* 350 */ 0xffff0002, 0xffffffff, 0x0002ffff, 0x00000000, 0x00c00000, 0x0c00c00c, 0x03000000, 0x00000000, } }, { { /* 351 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x00008000, 0x00008000, } }, { { /* 352 */ 0x00000000, 0x041ed5c0, 0x0000077e, 0x40000000, 0x01000040, 0x4000a000, 0x002109c0, 0x00000000, } }, { { /* 353 */ 0xffff00d0, 0xffffffff, 0x00d0ffff, 0x00000000, 0x00030000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 354 */ 0x000c0000, 0x30000000, 0x00000c30, 0x00030000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 355 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x263c370f, 0x263c370f, } }, { { /* 356 */ 0x0003000c, 0x00000300, 0x00000000, 0x00000300, 0x00000000, 0x00018003, 0x00000000, 0x00000000, } }, { { /* 357 */ 0x0800024f, 0x00000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 358 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0x03ffffff, } }, { { /* 359 */ 0x00000000, 0x00000000, 0x077dfffe, 0x077dfffe, 0x00000000, 0x00000000, 0x10400010, 0x10400010, } }, { { /* 360 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x10400010, 0x10400010, } }, { { /* 361 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x081047a4, 0x081047a4, } }, { { /* 362 */ 0x0c0030c0, 0x00000000, 0x0f30001e, 0x66000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 363 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x000a0a09, 0x000a0a09, } }, { { /* 364 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x00400810, 0x00400810, } }, { { /* 365 */ 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, 0x00000000, 0x00000000, 0x0e3c770f, 0x0e3c770f, } }, { { /* 366 */ 0x0c000000, 0x00000300, 0x00000018, 0x00000300, 0x00000000, 0x00000000, 0x001fe000, 0x03000000, } }, { { /* 367 */ 0x0000100f, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 368 */ 0x00000000, 0xc0000000, 0x00000000, 0x0000000c, 0x00000000, 0x33000000, 0x00003000, 0x00000000, } }, { { /* 369 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000280, 0x00000000, } }, { { /* 370 */ 0x7f7b7f8b, 0xef553db4, 0xf35dfba8, 0x400b0243, 0x8d3efb40, 0x8c2c7bf7, 0xe3fa6eff, 0xa8ed1d3a, } }, { { /* 371 */ 0xcf83e602, 0x35558cf5, 0xffabe048, 0xd85992b9, 0x2892ab18, 0x8020d7e9, 0xf583c438, 0x450ae74a, } }, { { /* 372 */ 0x9714b000, 0x54007762, 0x1420d188, 0xc8c01020, 0x00002121, 0x0c0413a8, 0x04408000, 0x082870c0, } }, { { /* 373 */ 0x000408c0, 0x80000002, 0x14722b7b, 0x3bfb7924, 0x1ae43327, 0x38ef9835, 0x28029ad1, 0xbf69a813, } }, { { /* 374 */ 0x2fc665cf, 0xafc96b11, 0x5053340f, 0xa00486a2, 0xe8090106, 0xc00e3f0f, 0x81450a88, 0xc6010010, } }, { { /* 375 */ 0x26e1a161, 0xce00444b, 0xd4eec7aa, 0x85bbcadf, 0xa5203a74, 0x8840436c, 0x8bd23f06, 0x3befff79, } }, { { /* 376 */ 0xe8eff75a, 0x5b36fbcb, 0x1bfd0d49, 0x39ee0154, 0x2e75d855, 0xa91abfd8, 0xf6bff3d7, 0xb40c67e0, } }, { { /* 377 */ 0x081382c2, 0xd08bd49d, 0x1061065a, 0x59e074f2, 0xb3128f9f, 0x6aaa0080, 0xb05e3230, 0x60ac9d7a, } }, { { /* 378 */ 0xc900d303, 0x8a563098, 0x13907000, 0x18421f14, 0x0008c060, 0x10808008, 0xec900400, 0xe6332817, } }, { { /* 379 */ 0x90000758, 0x4e09f708, 0xfc83f485, 0x18c8af53, 0x080c187c, 0x01146adf, 0xa734c80c, 0x2710a011, } }, { { /* 380 */ 0x422228c5, 0x00210413, 0x41123010, 0x40001820, 0xc60c022b, 0x10000300, 0x00220022, 0x02495810, } }, { { /* 381 */ 0x9670a094, 0x1792eeb0, 0x05f2cb96, 0x23580025, 0x42cc25de, 0x4a04cf38, 0x359f0c40, 0x8a001128, } }, { { /* 382 */ 0x910a13fa, 0x10560229, 0x04200641, 0x84f00484, 0x0c040000, 0x412c0400, 0x11541206, 0x00020a4b, } }, { { /* 383 */ 0x00c00200, 0x00940000, 0xbfbb0001, 0x242b167c, 0x7fa89bbb, 0xe3790c7f, 0xe00d10f4, 0x9f014132, } }, { { /* 384 */ 0x35728652, 0xff1210b4, 0x4223cf27, 0x8602c06b, 0x1fd33106, 0xa1aa3a0c, 0x02040812, 0x08012572, } }, { { /* 385 */ 0x485040cc, 0x601062d0, 0x29001c80, 0x00109a00, 0x22000004, 0x00800000, 0x68002020, 0x609ecbe6, } }, { { /* 386 */ 0x3f73916e, 0x398260c0, 0x48301034, 0xbd5c0006, 0xd6fb8cd1, 0x43e820e1, 0x084e0600, 0xc4d00500, } }, { { /* 387 */ 0x89aa8d1f, 0x1602a6e1, 0x21ed0001, 0x1a8b3656, 0x13a51fb7, 0x30a06502, 0x23c7b278, 0xe9226c93, } }, { { /* 388 */ 0x3a74e47f, 0x98208fe3, 0x2625280e, 0xbf49bf9c, 0xac543218, 0x1916b949, 0xb5220c60, 0x0659fbc1, } }, { { /* 389 */ 0x8420e343, 0x800008d9, 0x20225500, 0x00a10184, 0x20104800, 0x40801380, 0x00160d04, 0x80200040, } }, { { /* 390 */ 0x8de7fd40, 0xe0985436, 0x091e7b8b, 0xd249fec8, 0x8dee0611, 0xba221937, 0x9fdd77f4, 0xf0daf3ec, } }, { { /* 391 */ 0xec424386, 0x26048d3f, 0xc021fa6c, 0x0cc2628e, 0x0145d785, 0x559977ad, 0x4045e250, 0xa154260b, } }, { { /* 392 */ 0x58199827, 0xa4103443, 0x411405f2, 0x07002280, 0x426600b4, 0x15a17210, 0x41856025, 0x00000054, } }, { { /* 393 */ 0x01040201, 0xcb70c820, 0x6a629320, 0x0095184c, 0x9a8b1880, 0x3201aab2, 0x00c4d87a, 0x04c3f3e5, } }, { { /* 394 */ 0xa238d44d, 0x5072a1a1, 0x84fc980a, 0x44d1c152, 0x20c21094, 0x42104180, 0x3a000000, 0xd29d0240, } }, { { /* 395 */ 0xa8b12f01, 0x2432bd40, 0xd04bd34d, 0xd0ada723, 0x75a10a92, 0x01e9adac, 0x771f801a, 0xa01b9225, } }, { { /* 396 */ 0x20cadfa1, 0x738c0602, 0x003b577f, 0x00d00bff, 0x0088806a, 0x0029a1c4, 0x05242a05, 0x16234009, } }, { { /* 397 */ 0x80056822, 0xa2112011, 0x64900004, 0x13824849, 0x193023d5, 0x08922980, 0x88115402, 0xa0042001, } }, { { /* 398 */ 0x81800400, 0x60228502, 0x0b010090, 0x12020022, 0x00834011, 0x00001a01, 0x00000000, 0x00000000, } }, { { /* 399 */ 0x00000000, 0x4684009f, 0x020012c8, 0x1a0004fc, 0x0c4c2ede, 0x80b80402, 0x0afca826, 0x22288c02, } }, { { /* 400 */ 0x8f7ba0e0, 0x2135c7d6, 0xf8b106c7, 0x62550713, 0x8a19936e, 0xfb0e6efa, 0x48f91630, 0x7debcd2f, } }, { { /* 401 */ 0x4e845892, 0x7a2e4ca0, 0x561eedea, 0x1190c649, 0xe83a5324, 0x8124cfdb, 0x634218f1, 0x1a8a5853, } }, { { /* 402 */ 0x24d37420, 0x0514aa3b, 0x89586018, 0xc0004800, 0x91018268, 0x2cd684a4, 0xc4ba8886, 0x02100377, } }, { { /* 403 */ 0x00388244, 0x404aae11, 0x510028c0, 0x15146044, 0x10007310, 0x02480082, 0x40060205, 0x0000c003, } }, { { /* 404 */ 0x0c020000, 0x02200008, 0x40009000, 0xd161b800, 0x32744621, 0x3b8af800, 0x8b00050f, 0x2280bbd0, } }, { { /* 405 */ 0x07690600, 0x00438040, 0x50005420, 0x250c41d0, 0x83108410, 0x02281101, 0x00304008, 0x020040a1, } }, { { /* 406 */ 0x20000040, 0xabe31500, 0xaa443180, 0xc624c2c6, 0x8004ac13, 0x03d1b000, 0x4285611e, 0x1d9ff303, } }, { { /* 407 */ 0x78e8440a, 0xc3925e26, 0x00852000, 0x4000b001, 0x88424a90, 0x0c8dca04, 0x4203a705, 0x000422a1, } }, { { /* 408 */ 0x0c018668, 0x10795564, 0xdea00002, 0x40c12000, 0x5001488b, 0x04000380, 0x50040000, 0x80d0c05d, } }, { { /* 409 */ 0x970aa010, 0x4dafbb20, 0x1e10d921, 0x83140460, 0xa6d68848, 0x733fd83b, 0x497427bc, 0x92130ddc, } }, { { /* 410 */ 0x8ba1142b, 0xd1392e75, 0x50503009, 0x69008808, 0x024a49d4, 0x80164010, 0x89d7e564, 0x5316c020, } }, { { /* 411 */ 0x86002b92, 0x15e0a345, 0x0c03008b, 0xe200196e, 0x80067031, 0xa82916a5, 0x18802000, 0xe1487aac, } }, { { /* 412 */ 0xb5d63207, 0x5f9132e8, 0x20e550a1, 0x10807c00, 0x9d8a7280, 0x421f00aa, 0x02310e22, 0x04941100, } }, { { /* 413 */ 0x40080022, 0x5c100010, 0xfcc80343, 0x0580a1a5, 0x04008433, 0x6e080080, 0x81262a4b, 0x2901aad8, } }, { { /* 414 */ 0x4490684d, 0xba880009, 0x00820040, 0x87d10000, 0xb1e6215b, 0x80083161, 0xc2400800, 0xa600a069, } }, { { /* 415 */ 0x4a328d58, 0x550a5d71, 0x2d579aa0, 0x4aa64005, 0x30b12021, 0x01123fc6, 0x260a10c2, 0x50824462, } }, { { /* 416 */ 0x80409880, 0x810004c0, 0x00002003, 0x38180000, 0xf1a60200, 0x720e4434, 0x92e035a2, 0x09008101, } }, { { /* 417 */ 0x00000400, 0x00008885, 0x00000000, 0x00804000, 0x00000000, 0x00004040, 0x00000000, 0x00000000, } }, { { /* 418 */ 0x00000000, 0x08000000, 0x00000082, 0x00000000, 0x88000004, 0xe7efbfff, 0xffbfffff, 0xfdffefef, } }, { { /* 419 */ 0xbffefbff, 0x057fffff, 0x85b30034, 0x42164706, 0xe4105402, 0xb3058092, 0x81305422, 0x180b4263, } }, { { /* 420 */ 0x13f5387b, 0xa9ea07e5, 0x05143c4c, 0x80020600, 0xbd481ad9, 0xf496ee37, 0x7ec0705f, 0x355fbfb2, } }, { { /* 421 */ 0x455fe644, 0x41469000, 0x063b1d40, 0xfe1362a1, 0x39028505, 0x0c080548, 0x0000144f, 0x58183488, } }, { { /* 422 */ 0xd8153077, 0x4bfbbd0e, 0x85008a90, 0xe61dc100, 0xb386ed14, 0x639bff72, 0xd9befd92, 0x0a92887b, } }, { { /* 423 */ 0x1cb2d3fe, 0x177ab980, 0xdc1782c9, 0x3980fffb, 0x590c4260, 0x37df0f01, 0xb15094a3, 0x23070623, } }, { { /* 424 */ 0x3102f85a, 0x310201f0, 0x1e820040, 0x056a3a0a, 0x12805b84, 0xa7148002, 0xa04b2612, 0x90011069, } }, { { /* 425 */ 0x848a1000, 0x3f801802, 0x42400708, 0x4e140110, 0x180080b0, 0x0281c510, 0x10298202, 0x88000210, } }, { { /* 426 */ 0x00420020, 0x11000280, 0x4413e000, 0xfe025804, 0x30283c07, 0x04739798, 0xcb13ced1, 0x431f6210, } }, { { /* 427 */ 0x55ac278d, 0xc892422e, 0x02885380, 0x78514039, 0x8088292c, 0x2428b900, 0x080e0c41, 0x42004421, } }, { { /* 428 */ 0x08680408, 0x12040006, 0x02903031, 0xe0855b3e, 0x10442936, 0x10822814, 0x83344266, 0x531b013c, } }, { { /* 429 */ 0x0e0d0404, 0x00510c22, 0xc0000012, 0x88000040, 0x0000004a, 0x00000000, 0x5447dff6, 0x00088868, } }, { { /* 430 */ 0x00000081, 0x40000000, 0x00000100, 0x02000000, 0x00080600, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 431 */ 0x00000080, 0x00000040, 0x00000000, 0x00001040, 0x00000000, 0xf7fdefff, 0xfffeff7f, 0xfffffbff, } }, { { /* 432 */ 0xbffffdff, 0x00ffffff, 0x042012c2, 0x07080c06, 0x01101624, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 433 */ 0xe0000000, 0xfffffffe, 0x7f79ffff, 0x00f928df, 0x80120c32, 0xd53a0008, 0xecc2d858, 0x2fa89d18, } }, { { /* 434 */ 0xe0109620, 0x2622d60c, 0x02060f97, 0x9055b240, 0x501180a2, 0x04049800, 0x00004000, 0x00000000, } }, { { /* 435 */ 0x00000000, 0x00000000, 0x00000000, 0xfffffbc0, 0xdffbeffe, 0x62430b08, 0xfb3b41b6, 0x23896f74, } }, { { /* 436 */ 0xecd7ae7f, 0x5960e047, 0x098fa096, 0xa030612c, 0x2aaa090d, 0x4f7bd44e, 0x388bc4b2, 0x6110a9c6, } }, { { /* 437 */ 0x42000014, 0x0202800c, 0x6485fe48, 0xe3f7d63e, 0x0c073aa0, 0x0430e40c, 0x1002f680, 0x00000000, } }, { { /* 438 */ 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x00004000, 0x00004000, 0x00000100, 0x00000000, } }, { { /* 439 */ 0x00000000, 0x40000000, 0x00000000, 0x00000400, 0x00008000, 0x00000000, 0x00400400, 0x00000000, } }, { { /* 440 */ 0x00000000, 0x40000000, 0x00000000, 0x00000800, 0xfebdffe0, 0xffffffff, 0xfbe77f7f, 0xf7ffffbf, } }, { { /* 441 */ 0xefffffff, 0xdff7ff7e, 0xfbdff6f7, 0x804fbffe, 0x00000000, 0x00000000, 0x00000000, 0x7fffef00, } }, { { /* 442 */ 0xb6f7ff7f, 0xb87e4406, 0x88313bf5, 0x00f41796, 0x1391a960, 0x72490080, 0x0024f2f3, 0x42c88701, } }, { { /* 443 */ 0x5048e3d3, 0x43052400, 0x4a4c0000, 0x10580227, 0x01162820, 0x0014a809, 0x00000000, 0x00683ec0, } }, { { /* 444 */ 0x00000000, 0x00000000, 0x00000000, 0xffe00000, 0xfddbb7ff, 0x000000f7, 0xc72e4000, 0x00000180, } }, { { /* 445 */ 0x00012000, 0x00004000, 0x00300000, 0xb4f7ffa8, 0x03ffadf3, 0x00000120, 0x00000000, 0x00000000, } }, { { /* 446 */ 0x00000000, 0x00000000, 0x00000000, 0xfffbf000, 0xfdcf9df7, 0x15c301bf, 0x810a1827, 0x0a00a842, } }, { { /* 447 */ 0x80088108, 0x18048008, 0x0012a3be, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 448 */ 0x00000000, 0x00000000, 0x00000000, 0x90000000, 0xdc3769e6, 0x3dff6bff, 0xf3f9fcf8, 0x00000004, } }, { { /* 449 */ 0x80000000, 0xe7eebf6f, 0x5da2dffe, 0xc00b3fd8, 0xa00c0984, 0x69100040, 0xb912e210, 0x5a0086a5, } }, { { /* 450 */ 0x02896800, 0x6a809005, 0x00030010, 0x80000000, 0x8e001ff9, 0x00000001, 0x00000000, 0x00000000, } }, { { /* 451 */ 0x00000080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 452 */ 0x00000000, 0x00000000, 0x00001000, 0x64080010, 0x00480000, 0x10000020, 0x80000102, 0x08000010, } }, { { /* 453 */ 0x00000040, 0x40000000, 0x00020000, 0x01852002, 0x00800010, 0x80002022, 0x084444a2, 0x480e0000, } }, { { /* 454 */ 0x04000200, 0x02202008, 0x80004380, 0x04000000, 0x00000002, 0x12231420, 0x2058003a, 0x00200060, } }, { { /* 455 */ 0x10002508, 0x040d0028, 0x00000009, 0x00008004, 0x00800000, 0x42000001, 0x00000000, 0x09040000, } }, { { /* 456 */ 0x02008000, 0x01402001, 0x00000000, 0x00000008, 0x00000000, 0x00000001, 0x00021008, 0x04000000, } }, { { /* 457 */ 0x00100100, 0x80040080, 0x00002000, 0x00000008, 0x08040601, 0x01000012, 0x10000000, 0x49001024, } }, { { /* 458 */ 0x0180004a, 0x00100600, 0x50840800, 0x000000c0, 0x00800000, 0x20000800, 0x40000000, 0x08050000, } }, { { /* 459 */ 0x02004000, 0x02000804, 0x01000004, 0x18060001, 0x02400001, 0x40000002, 0x20800014, 0x000c1000, } }, { { /* 460 */ 0x00222000, 0x00000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x10422800, 0x00000800, } }, { { /* 461 */ 0x20080000, 0x00040000, 0x80025040, 0x20208604, 0x00028020, 0x80102020, 0x080820c0, 0x10880800, } }, { { /* 462 */ 0x00000000, 0x00000000, 0x00200109, 0x00100000, 0x00000000, 0x81022700, 0x40c21404, 0x84010882, } }, { { /* 463 */ 0x00004010, 0x00000000, 0x03000000, 0x00000008, 0x00080000, 0x00000000, 0x10800001, 0x06002020, } }, { { /* 464 */ 0x00000010, 0x02000000, 0x00880020, 0x00008424, 0x00000000, 0x88000000, 0x81000100, 0x04000000, } }, { { /* 465 */ 0x00004218, 0x00040000, 0x00000000, 0x80005080, 0x00010000, 0x00040000, 0x08008000, 0x02008000, } }, { { /* 466 */ 0x00020000, 0x00000000, 0x00000001, 0x04000401, 0x00100000, 0x12200004, 0x00000000, 0x18100000, } }, { { /* 467 */ 0x00000000, 0x00000800, 0x00000000, 0x00004000, 0x00800000, 0x04000000, 0x82000002, 0x00042000, } }, { { /* 468 */ 0x00080006, 0x00000000, 0x00000000, 0x04000000, 0x80008000, 0x00810001, 0xa0000000, 0x00100410, } }, { { /* 469 */ 0x00400218, 0x88084080, 0x00260008, 0x00800404, 0x00000020, 0x00000000, 0x00000000, 0x00000200, } }, { { /* 470 */ 0x00a08048, 0x00000000, 0x08000000, 0x04000000, 0x00000000, 0x00000000, 0x00018000, 0x00200000, } }, { { /* 471 */ 0x01000000, 0x00000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00200000, 0x00102000, } }, { { /* 472 */ 0x00000801, 0x00000000, 0x00000000, 0x00020000, 0x08000000, 0x00002000, 0x20010000, 0x04002000, } }, { { /* 473 */ 0x40000040, 0x50202400, 0x000a0020, 0x00040420, 0x00000200, 0x00000080, 0x80000000, 0x00000020, } }, { { /* 474 */ 0x20008000, 0x00200010, 0x00000000, 0x00000000, 0x00400000, 0x01100000, 0x00020000, 0x80000010, } }, { { /* 475 */ 0x02000000, 0x00801000, 0x00000000, 0x48058000, 0x20c94000, 0x60000000, 0x00000001, 0x00000000, } }, { { /* 476 */ 0x00004090, 0x48000000, 0x08000000, 0x28802000, 0x00000002, 0x00014000, 0x00002000, 0x00002002, } }, { { /* 477 */ 0x00010200, 0x00100000, 0x00000000, 0x00800000, 0x10020000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 478 */ 0x00000010, 0x00000402, 0x0c000000, 0x01000400, 0x01000021, 0x00000000, 0x00004000, 0x00004000, } }, { { /* 479 */ 0x00000000, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02000020, } }, { { /* 480 */ 0x00000100, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00002000, 0x00000000, } }, { { /* 481 */ 0x00006000, 0x00000000, 0x00000000, 0x00000400, 0x04000040, 0x003c0180, 0x00000200, 0x00102000, } }, { { /* 482 */ 0x00000800, 0x101000c0, 0x00800000, 0x00000000, 0x00008000, 0x02200000, 0x00020020, 0x00000000, } }, { { /* 483 */ 0x00000000, 0x01000000, 0x00000000, 0x20100000, 0x00080000, 0x00000141, 0x02001002, 0x40400001, } }, { { /* 484 */ 0x00580000, 0x00000002, 0x00003000, 0x00002400, 0x00988000, 0x00040010, 0x00002800, 0x00000008, } }, { { /* 485 */ 0x40080004, 0x00000020, 0x20080000, 0x02060a00, 0x00010040, 0x14010200, 0x40800000, 0x08031000, } }, { { /* 486 */ 0x40020020, 0x0000202c, 0x2014a008, 0x00000000, 0x80040200, 0x82020012, 0x00400000, 0x20000000, } }, { { /* 487 */ 0x00000000, 0x00000000, 0x00000004, 0x04000000, 0x00000000, 0x00000000, 0x40800100, 0x00000000, } }, { { /* 488 */ 0x00000008, 0x04000040, 0x00000001, 0x000c0200, 0x00000000, 0x08000400, 0x00000000, 0x080c0001, } }, { { /* 489 */ 0x00000400, 0x00000000, 0x00000000, 0x00200000, 0x80000000, 0x00001000, 0x00000200, 0x01000800, } }, { { /* 490 */ 0x00000000, 0x00000800, 0x00000000, 0x40000000, 0x00000000, 0x00000000, 0x00000000, 0x04040000, } }, { { /* 491 */ 0x00000000, 0x00000000, 0x00000040, 0x00002000, 0xa0000000, 0x00000000, 0x08000008, 0x00080000, } }, { { /* 492 */ 0x00000020, 0x00000000, 0x40000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00008000, } }, { { /* 493 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0x00000000, 0x00200000, } }, { { /* 494 */ 0x00000000, 0x00000000, 0x00000000, 0x04000000, 0x00000008, 0x00000000, 0x00010000, 0x1b000000, } }, { { /* 495 */ 0x00007000, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000080, 0x80000000, 0x00000000, } }, { { /* 496 */ 0x00000000, 0x00020000, 0x00000000, 0x00200000, 0x40000000, 0x00000010, 0x00800000, 0x00000008, } }, { { /* 497 */ 0x00000000, 0x00000000, 0x02000000, 0x20000010, 0x00000080, 0x00000000, 0x00010000, 0x00000000, } }, { { /* 498 */ 0x00000000, 0x02000000, 0x00000000, 0x00000000, 0x20000000, 0x00000040, 0x00200028, 0x00000000, } }, { { /* 499 */ 0x00000000, 0x00020000, 0x00000000, 0x02000000, 0x00000000, 0x02000000, 0x40020000, 0x51000040, } }, { { /* 500 */ 0x00000080, 0x04040000, 0x00000000, 0x10000000, 0x00022000, 0x00100000, 0x20000000, 0x00000082, } }, { { /* 501 */ 0x40000000, 0x00010000, 0x00002000, 0x00000000, 0x00000240, 0x00000000, 0x00000000, 0x00000008, } }, { { /* 502 */ 0x00000000, 0x00010000, 0x00000810, 0x00080880, 0x00004000, 0x00000000, 0x00000000, 0x00020000, } }, { { /* 503 */ 0x00000000, 0x00400020, 0x00000000, 0x00000082, 0x00000000, 0x00020001, 0x00000000, 0x00000000, } }, { { /* 504 */ 0x40000018, 0x00000004, 0x00000000, 0x00000000, 0x01000000, 0x00400000, 0x00000000, 0x00000000, } }, { { /* 505 */ 0x00000001, 0x00400000, 0x00000000, 0x00080002, 0x00000400, 0x00040000, 0x00000000, 0x00000000, } }, { { /* 506 */ 0x00000800, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, } }, { { /* 507 */ 0x00000000, 0x00200000, 0x00000000, 0x04108000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, } }, { { /* 508 */ 0x00000000, 0x02800000, 0x04000000, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0x00000400, } }, { { /* 509 */ 0x00000000, 0x00000000, 0x10000000, 0x00040000, 0x00400000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 510 */ 0x00200000, 0x00000200, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x2a000000, 0x00000000, } }, { { /* 511 */ 0x00400000, 0x00000000, 0x00400000, 0x00000000, 0x00000002, 0x40000000, 0x00000000, 0x00400000, } }, { { /* 512 */ 0x40000000, 0x00001000, 0x00000000, 0x00000000, 0x00000202, 0x02000000, 0x80000000, 0x00020000, } }, { { /* 513 */ 0x00000020, 0x00000800, 0x00020421, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00400000, } }, { { /* 514 */ 0x00200000, 0x00000000, 0x00000001, 0x00000000, 0x00000084, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 515 */ 0x00000000, 0x00004400, 0x00000002, 0x00100000, 0x00000000, 0x00000000, 0x00008200, 0x00000000, } }, { { /* 516 */ 0x00000000, 0x12000000, 0x00000100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 517 */ 0x00000020, 0x08100000, 0x000a0400, 0x00000081, 0x00006000, 0x00120000, 0x00000000, 0x00000000, } }, { { /* 518 */ 0x00000004, 0x08000000, 0x00004000, 0x044000c0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 519 */ 0x40001000, 0x00000000, 0x01000001, 0x05000000, 0x00080000, 0x02000000, 0x00000800, 0x00000000, } }, { { /* 520 */ 0x00000100, 0x00000000, 0x00000000, 0x00000000, 0x00002002, 0x01020000, 0x00800000, 0x00000000, } }, { { /* 521 */ 0x00000040, 0x00004000, 0x01000000, 0x00000004, 0x00020000, 0x00000000, 0x00000010, 0x00000000, } }, { { /* 522 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00080000, 0x00010000, 0x30000300, 0x00000400, } }, { { /* 523 */ 0x00000800, 0x02000000, 0x00000000, 0x00008000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 524 */ 0x00200000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000040c0, 0x00002200, 0x12002000, } }, { { /* 525 */ 0x00000000, 0x00000020, 0x20000000, 0x00000000, 0x00000200, 0x00080800, 0x1000a000, 0x00000000, } }, { { /* 526 */ 0x00000000, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 527 */ 0x00000000, 0x00000000, 0x00004280, 0x01000000, 0x00800000, 0x00000008, 0x00000000, 0x00000000, } }, { { /* 528 */ 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x00000000, 0x20400000, 0x00000040, 0x00000000, } }, { { /* 529 */ 0x00800080, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x00400020, 0x00000000, 0x00008000, } }, { { /* 530 */ 0x01000000, 0x00000040, 0x00000000, 0x00400000, 0x00000000, 0x00000440, 0x00000000, 0x00800000, } }, { { /* 531 */ 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00080000, 0x00000000, } }, { { /* 532 */ 0x01000000, 0x00000001, 0x00000000, 0x00020000, 0x00000000, 0x20002000, 0x00000000, 0x00000004, } }, { { /* 533 */ 0x00000008, 0x00100000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 534 */ 0x00000004, 0x00008000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00008000, } }, { { /* 535 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0x00004000, 0x00000000, } }, { { /* 536 */ 0x00000010, 0x00002000, 0x40000040, 0x00000000, 0x10000000, 0x00000000, 0x00008080, 0x00000000, } }, { { /* 537 */ 0x00000000, 0x00000000, 0x00000080, 0x00000000, 0x00100080, 0x000000a0, 0x00000000, 0x00000000, } }, { { /* 538 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 539 */ 0x00000000, 0x00000000, 0x00001000, 0x00000000, 0x0001000a, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 540 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x08002000, 0x00000000, } }, { { /* 541 */ 0x00000808, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 542 */ 0x00004000, 0x00002400, 0x00008000, 0x40000000, 0x00000001, 0x00002000, 0x04000000, 0x00040004, } }, { { /* 543 */ 0x00000000, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0x1c200000, 0x00000000, 0x02000000, } }, { { /* 544 */ 0x00000000, 0x00080000, 0x00400000, 0x00000002, 0x00000000, 0x00000100, 0x00000000, 0x00000000, } }, { { /* 545 */ 0x00000000, 0x00000000, 0x00000000, 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 546 */ 0x00004100, 0x00000400, 0x20200010, 0x00004004, 0x00000000, 0x42000000, 0x00000000, 0x00000000, } }, { { /* 547 */ 0x00000080, 0x00000000, 0x00000121, 0x00000200, 0x000000b0, 0x80002000, 0x00000000, 0x00010000, } }, { { /* 548 */ 0x00000010, 0x000000c0, 0x08100000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 549 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02000000, 0x00000404, 0x00000000, 0x00000000, } }, { { /* 550 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00400000, 0x00000008, 0x00000000, 0x00000000, } }, { { /* 551 */ 0x00000000, 0x00000002, 0x00020000, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0x00204000, } }, { { /* 552 */ 0x00000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00800000, 0x00000100, 0x00000001, } }, { { /* 553 */ 0x10000000, 0x01000000, 0x00002400, 0x00000004, 0x00000000, 0x00000000, 0x00000020, 0x00000002, } }, { { /* 554 */ 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 555 */ 0x00000000, 0x00002400, 0x00000000, 0x00000000, 0x00004802, 0x00000000, 0x00000000, 0x80022000, } }, { { /* 556 */ 0x00001004, 0x04208000, 0x20000020, 0x00040000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 557 */ 0x00000000, 0x00100000, 0x40010000, 0x00000000, 0x00080000, 0x00000000, 0x00100211, 0x00000000, } }, { { /* 558 */ 0x00001400, 0x00000000, 0x00000000, 0x00000000, 0x00610000, 0x80008c00, 0x00000000, 0x00000000, } }, { { /* 559 */ 0x00000100, 0x00000040, 0x00000000, 0x00000004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 560 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000400, 0x00000000, } }, { { /* 561 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000210, 0x00000000, 0x00000000, } }, { { /* 562 */ 0x00000000, 0x00000020, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 563 */ 0x00004000, 0x00000000, 0x00000000, 0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 564 */ 0x00000000, 0x00000000, 0x00080002, 0x01000020, 0x00400000, 0x00200000, 0x00008000, 0x00000000, } }, { { /* 565 */ 0x00000000, 0x00020000, 0x00000000, 0xc0020000, 0x10000000, 0x00000080, 0x00000000, 0x00000000, } }, { { /* 566 */ 0x00000210, 0x00000000, 0x00001000, 0x04480000, 0x20000000, 0x00000004, 0x00800000, 0x02000000, } }, { { /* 567 */ 0x00000000, 0x08006000, 0x00001000, 0x00000000, 0x00000000, 0x00100000, 0x00000000, 0x00000400, } }, { { /* 568 */ 0x00100000, 0x00000000, 0x10000000, 0x08608000, 0x00000000, 0x00000000, 0x00080002, 0x00000000, } }, { { /* 569 */ 0x00000000, 0x20000000, 0x00008020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 570 */ 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 571 */ 0x00000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 572 */ 0x00000000, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 573 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02000000, } }, { { /* 574 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000080, 0x00000000, } }, { { /* 575 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000000, } }, { { /* 576 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00008000, 0x00000000, } }, { { /* 577 */ 0x00000000, 0x00000000, 0x00000008, 0x00000000, 0x00000000, 0x00000000, 0x00000400, 0x00000000, } }, { { /* 578 */ 0x00000000, 0x00000000, 0x00220000, 0x00000004, 0x00000000, 0x00040000, 0x00000004, 0x00000000, } }, { { /* 579 */ 0x00000000, 0x00000000, 0x00001000, 0x00000080, 0x00002000, 0x00000000, 0x00000000, 0x00004000, } }, { { /* 580 */ 0x00000000, 0x00000000, 0x00000000, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 581 */ 0x00000000, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 582 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00200000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 583 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x04000000, 0x00000000, 0x00000000, } }, { { /* 584 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000200, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 585 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 586 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00080000, 0x00000000, } }, { { /* 587 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01000000, 0x00000000, 0x00000400, } }, { { /* 588 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000080, 0x00000000, 0x00000000, } }, { { /* 589 */ 0x00000000, 0x00000800, 0x00000100, 0x40000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 590 */ 0x00000000, 0x00200000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 591 */ 0x00000000, 0x00000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 592 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x04000000, 0x00000000, } }, { { /* 593 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001000, 0x00000000, } }, { { /* 594 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000400, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 595 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x04040000, } }, { { /* 596 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 597 */ 0x00000000, 0x00000000, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 598 */ 0x00000000, 0x00200000, 0x40000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 599 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 600 */ 0x00000000, 0x00000000, 0x00000000, 0x04000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, } }, { { /* 601 */ 0x00000000, 0x40000000, 0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 602 */ 0x00000000, 0x00000000, 0x00000000, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 603 */ 0x00000000, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x20000000, 0x00000000, 0x00000000, } }, { { /* 604 */ 0x00000000, 0x00000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 605 */ 0x00000080, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000004, } }, { { /* 606 */ 0x00000000, 0x00000000, 0x00000000, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 607 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000001, 0x00000000, } }, { { /* 608 */ 0x00008000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 609 */ 0x00000000, 0x00000000, 0x00004040, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 610 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00042400, 0x00000000, } }, { { /* 611 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 612 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000080, } }, { { /* 613 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000020, } }, { { /* 614 */ 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 615 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00020000, 0x00000000, } }, { { /* 616 */ 0x00000000, 0x00000000, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 617 */ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 618 */ 0x00000000, 0x00040000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 619 */ 0xc373ff8b, 0x1b0f6840, 0xf34ce9ac, 0xc0080200, 0xca3e795c, 0x06487976, 0xf7f02fdf, 0xa8ff033a, } }, { { /* 620 */ 0x233fef37, 0xfd59b004, 0xfffff3ca, 0xfff9de9f, 0x7df7abff, 0x8eecc000, 0xffdbeebf, 0x45fad003, } }, { { /* 621 */ 0xdffefae1, 0x10abbfef, 0xfcaaffeb, 0x24fdef3f, 0x7f7678ad, 0xedfff00c, 0x2cfacff6, 0xeb6bf7f9, } }, { { /* 622 */ 0x95bf1ffd, 0xbfbf6677, 0xfeb43bfb, 0x11e27bae, 0x41bea681, 0x72c31435, 0x71917d70, 0x276b0003, } }, { { /* 623 */ 0x70cf57cb, 0x0def4732, 0xfc747eda, 0xbdb4fe06, 0x8bca3f9f, 0x58007e49, 0xebec228f, 0xddbb8a5c, } }, { { /* 624 */ 0xb6e7ef60, 0xf293a40f, 0x549e37bb, 0x9bafd04b, 0xf7d4c414, 0x0a1430b0, 0x88d02f08, 0x192fff7e, } }, { { /* 625 */ 0xfb07ffda, 0x7beb7ff1, 0x0010c5ef, 0xfdff99ff, 0x056779d7, 0xfdcbffe7, 0x4040c3ff, 0xbd8e6ff7, } }, { { /* 626 */ 0x0497dffa, 0x5bfff4c0, 0xd0e7ed7b, 0xf8e0047e, 0xb73eff9f, 0x882e7dfe, 0xbe7ffffd, 0xf6c483fe, } }, { { /* 627 */ 0xb8fdf357, 0xef7dd680, 0x47885767, 0xc3dfff7d, 0x37a9f0ff, 0x70fc7de0, 0xec9a3f6f, 0x86814cb3, } }, { { /* 628 */ 0xdd5c3f9e, 0x4819f70d, 0x0007fea3, 0x38ffaf56, 0xefb8980d, 0xb760403d, 0x9035d8ce, 0x3fff72bf, } }, { { /* 629 */ 0x7a117ff7, 0xabfff7bb, 0x6fbeff00, 0xfe72a93c, 0xf11bcfef, 0xf40adb6b, 0xef7ec3e6, 0xf6109b9c, } }, { { /* 630 */ 0x16f4f048, 0x5182feb5, 0x15bbc7b1, 0xfbdf6e87, 0x63cde43f, 0x7e7ec1ff, 0x7d5ffdeb, 0xfcfe777b, } }, { { /* 631 */ 0xdbea960b, 0x53e86229, 0xfdef37df, 0xbd8136f5, 0xfcbddc18, 0xffffd2e4, 0xffe03fd7, 0xabf87f6f, } }, { { /* 632 */ 0x6ed99bae, 0xf115f5fb, 0xbdfb79a9, 0xadaf5a3c, 0x1facdbba, 0x837971fc, 0xc35f7cf7, 0x0567dfff, } }, { { /* 633 */ 0x8467ff9a, 0xdf8b1534, 0x3373f9f3, 0x5e1af7bd, 0xa03fbf40, 0x01ebffff, 0xcfdddfc0, 0xabd37500, } }, { { /* 634 */ 0xeed6f8c3, 0xb7ff43fd, 0x42275eaf, 0xf6869bac, 0xf6bc27d7, 0x35b7f787, 0xe176aacd, 0xe29f49e7, } }, { { /* 635 */ 0xaff2545c, 0x61d82b3f, 0xbbb8fc3b, 0x7b7dffcf, 0x1ce0bf95, 0x43ff7dfd, 0xfffe5ff6, 0xc4ced3ef, } }, { { /* 636 */ 0xadbc8db6, 0x11eb63dc, 0x23d0df59, 0xf3dbbeb4, 0xdbc71fe7, 0xfae4ff63, 0x63f7b22b, 0xadbaed3b, } }, { { /* 637 */ 0x7efffe01, 0x02bcfff7, 0xef3932ff, 0x8005fffc, 0xbcf577fb, 0xfff7010d, 0xbf3afffb, 0xdfff0057, } }, { { /* 638 */ 0xbd7def7b, 0xc8d4db88, 0xed7cfff3, 0x56ff5dee, 0xac5f7e0d, 0xd57fff96, 0xc1403fee, 0xffe76ff9, } }, { { /* 639 */ 0x8e77779b, 0xe45d6ebf, 0x5f1f6fcf, 0xfedfe07f, 0x01fed7db, 0xfb7bff00, 0x1fdfffd4, 0xfffff800, } }, { { /* 640 */ 0x007bfb8f, 0x7f5cbf00, 0x07f3ffff, 0x3de7eba0, 0xfbd7f7bf, 0x6003ffbf, 0xbfedfffd, 0x027fefbb, } }, { { /* 641 */ 0xddfdfe40, 0xe2f9fdff, 0xfb1f680b, 0xaffdfbe3, 0xf7ed9fa4, 0xf80f7a7d, 0x0fd5eebe, 0xfd9fbb5d, } }, { { /* 642 */ 0x3bf9f2db, 0xebccfe7f, 0x73fa876a, 0x9ffc95fc, 0xfaf7109f, 0xbbcdddb7, 0xeccdf87e, 0x3c3ff366, } }, { { /* 643 */ 0xb03ffffd, 0x067ee9f7, 0xfe0696ae, 0x5fd7d576, 0xa3f33fd1, 0x6fb7cf07, 0x7f449fd1, 0xd3dd7b59, } }, { { /* 644 */ 0xa9bdaf3b, 0xff3a7dcf, 0xf6ebfbe0, 0xffffb401, 0xb7bf7afa, 0x0ffdc000, 0xff1fff7f, 0x95fffefc, } }, { { /* 645 */ 0xb5dc0000, 0x3f3eef63, 0x001bfb7f, 0xfbf6e800, 0xb8df9eef, 0x003fff9f, 0xf5ff7bd0, 0x3fffdfdb, } }, { { /* 646 */ 0x00bffdf0, 0xbbbd8420, 0xffdedf37, 0x0ff3ff6d, 0x5efb604c, 0xfafbfffb, 0x0219fe5e, 0xf9de79f4, } }, { { /* 647 */ 0xebfaa7f7, 0xff3401eb, 0xef73ebd3, 0xc040afd7, 0xdcff72bb, 0x2fd8f17f, 0xfe0bb8ec, 0x1f0bdda3, } }, { { /* 648 */ 0x47cf8f1d, 0xffdeb12b, 0xda737fee, 0xcbc424ff, 0xcbf2f75d, 0xb4edecfd, 0x4dddbff9, 0xfb8d99dd, } }, { { /* 649 */ 0xaf7bbb7f, 0xc959ddfb, 0xfab5fc4f, 0x6d5fafe3, 0x3f7dffff, 0xffdb7800, 0x7effb6ff, 0x022ffbaf, } }, { { /* 650 */ 0xefc7ff9b, 0xffffffa5, 0xc7000007, 0xfff1f7ff, 0x01bf7ffd, 0xfdbcdc00, 0xffffbff5, 0x3effff7f, } }, { { /* 651 */ 0xbe000029, 0xff7ff9ff, 0xfd7e6efb, 0x039ecbff, 0xfbdde300, 0xf6dfccff, 0x117fffff, 0xfbf6f800, } }, { { /* 652 */ 0xd73ce7ef, 0xdfeffeef, 0xedbfc00b, 0xfdcdfedf, 0x40fd7bf5, 0xb75fffff, 0xf930ffdf, 0xdc97fbdf, } }, { { /* 653 */ 0xbff2fef3, 0xdfbf8fdf, 0xede6177f, 0x35530f7f, 0x877e447c, 0x45bbfa12, 0x779eede0, 0xbfd98017, } }, { { /* 654 */ 0xde897e55, 0x0447c16f, 0xf75d7ade, 0x290557ff, 0xfe9586f7, 0xf32f97b3, 0x9f75cfff, 0xfb1771f7, } }, { { /* 655 */ 0xee1934ee, 0xef6137cc, 0xef4c9fd6, 0xfbddd68f, 0x6def7b73, 0xa431d7fe, 0x97d75e7f, 0xffd80f5b, } }, { { /* 656 */ 0x7bce9d83, 0xdcff22ec, 0xef87763d, 0xfdeddfe7, 0xa0fc4fff, 0xdbfc3b77, 0x7fdc3ded, 0xf5706fa9, } }, { { /* 657 */ 0x2c403ffb, 0x847fff7f, 0xdeb7ec57, 0xf22fe69c, 0xd5b50feb, 0xede7afeb, 0xfff08c2f, 0xe8f0537f, } }, { { /* 658 */ 0xb5ffb99d, 0xe78fff66, 0xbe10d981, 0xe3c19c7c, 0x27339cd1, 0xff6d0cbc, 0xefb7fcb7, 0xffffa0df, } }, { { /* 659 */ 0xfe7bbf0b, 0x353fa3ff, 0x97cd13cc, 0xfb277637, 0x7e6ccfd6, 0xed31ec50, 0xfc1c677c, 0x5fbff6fa, } }, { { /* 660 */ 0xae2f0fba, 0x7ffea3ad, 0xde74fcf0, 0xf200ffef, 0xfea2fbbf, 0xbcff3daf, 0x5fb9f694, 0x3f8ff3ad, } }, { { /* 661 */ 0xa01ff26c, 0x01bfffef, 0x70057728, 0xda03ff35, 0xc7fad2f9, 0x5c1d3fbf, 0xec33ff3a, 0xfe9cb7af, } }, { { /* 662 */ 0x7a9f5236, 0xe722bffa, 0xfcff9ff7, 0xb61d2fbb, 0x1dfded06, 0xefdf7dd7, 0xf166eb23, 0x0dc07ed9, } }, { { /* 663 */ 0xdfbf3d3d, 0xba83c945, 0x9dd07dd1, 0xcf737b87, 0xc3f59ff3, 0xc5fedf0d, 0x83020cb3, 0xaec0e879, } }, { { /* 664 */ 0x6f0fc773, 0x093ffd7d, 0x0157fff1, 0x01ff62fb, 0x3bf3fdb4, 0x43b2b013, 0xff305ed3, 0xeb9f0fff, } }, { { /* 665 */ 0xf203feef, 0xfb893fef, 0x9e9937a9, 0xa72cdef9, 0xc1f63733, 0xfe3e812e, 0xf2f75d20, 0x69d7d585, } }, { { /* 666 */ 0xffffffff, 0xff6fdb07, 0xd97fc4ff, 0xbe0fefce, 0xf05ef17b, 0xffb7f6cf, 0xef845ef7, 0x0edfd7cb, } }, { { /* 667 */ 0xfcffff08, 0xffffee3f, 0xd7ff13ff, 0x7ffdaf0f, 0x1ffabdc7, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 668 */ 0x00000000, 0xe7400000, 0xf933bd38, 0xfeed7feb, 0x7c767fe8, 0xffefb3f7, 0xd8b7feaf, 0xfbbfff6f, } }, { { /* 669 */ 0xdbf7f8fb, 0xe2f91752, 0x754785c8, 0xe3ef9090, 0x3f6d9ef4, 0x0536ee2e, 0x7ff3f7bc, 0x7f3fa07b, } }, { { /* 670 */ 0xeb600567, 0x6601babe, 0x583ffcd8, 0x87dfcaf7, 0xffa0bfcd, 0xfebf5bcd, 0xefa7b6fd, 0xdf9c77ef, } }, { { /* 671 */ 0xf8773fb7, 0xb7fc9d27, 0xdfefcab5, 0xf1b6fb5a, 0xef1fec39, 0x7ffbfbbf, 0xdafe000d, 0x4e7fbdfb, } }, { { /* 672 */ 0x5ac033ff, 0x9ffebff5, 0x005fffbf, 0xfdf80000, 0x6ffdffca, 0xa001cffd, 0xfbf2dfff, 0xff7fdfbf, } }, { { /* 673 */ 0x080ffeda, 0xbfffba08, 0xeed77afd, 0x67f9fbeb, 0xff93e044, 0x9f57df97, 0x08dffef7, 0xfedfdf80, } }, { { /* 674 */ 0xf7feffc5, 0x6803fffb, 0x6bfa67fb, 0x5fe27fff, 0xff73ffff, 0xe7fb87df, 0xf7a7ebfd, 0xefc7bf7e, } }, { { /* 675 */ 0xdf821ef3, 0xdf7e76ff, 0xda7d79c9, 0x1e9befbe, 0x77fb7ce0, 0xfffb87be, 0xffdb1bff, 0x4fe03f5c, } }, { { /* 676 */ 0x5f0e7fff, 0xddbf77ff, 0xfffff04f, 0x0ff8ffff, 0xfddfa3be, 0xfffdfc1c, 0xfb9e1f7d, 0xdedcbdff, } }, { { /* 677 */ 0xbafb3f6f, 0xfbefdf7f, 0x2eec7d1b, 0xf2f7af8e, 0xcfee7b0f, 0x77c61d96, 0xfff57e07, 0x7fdfd982, } }, { { /* 678 */ 0xc7ff5ee6, 0x79effeee, 0xffcf9a56, 0xde5efe5f, 0xf9e8896e, 0xe6c4f45e, 0xbe7c0001, 0xdddf3b7f, } }, { { /* 679 */ 0xe9efd59d, 0xde5334ac, 0x4bf7f573, 0x9eff7b4f, 0x476eb8fe, 0xff450dfb, 0xfbfeabfd, 0xddffe9d7, } }, { { /* 680 */ 0x7fffedf7, 0x7eebddfd, 0xb7ffcfe7, 0xef91bde9, 0xd77c5d75, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 681 */ 0x00000000, 0xfa800000, 0xb4f1ffee, 0x2fefbf76, 0x77bfb677, 0xfffd9fbf, 0xf6ae95bf, 0x7f3b75ff, } }, { { /* 682 */ 0x0af9a7f5, 0x00000000, 0x00000000, 0x2bddfbd0, 0x9a7ff633, 0xd6fcfdab, 0xbfebf9e6, 0xf41fdfdf, } }, { { /* 683 */ 0xffffa6fd, 0xf37b4aff, 0xfef97fb7, 0x1d5cb6ff, 0xe5ff7ff6, 0x24041f7b, 0xf99ebe05, 0xdff2dbe3, } }, { { /* 684 */ 0xfdff6fef, 0xcbfcd679, 0xefffebfd, 0x0000001f, 0x98000000, 0x8017e148, 0x00fe6a74, 0xfdf16d7f, } }, { { /* 685 */ 0xfef3b87f, 0xf176e01f, 0x7b3fee96, 0xfffdeb8d, 0xcbb3adff, 0xe17f84ef, 0xbff04daa, 0xfe3fbf3f, } }, { { /* 686 */ 0xffd7ebff, 0xcf7fffdf, 0x85edfffb, 0x07bcd73f, 0xfe0faeff, 0x76bffdaf, 0x37bbfaef, 0xa3ba7fdc, } }, { { /* 687 */ 0x56f7b6ff, 0xe7df60f8, 0x4cdfff61, 0xff45b0fb, 0x3ffa7ded, 0x18fc1fff, 0xe3afffff, 0xdf83c7d3, } }, { { /* 688 */ 0xef7dfb57, 0x1378efff, 0x5ff7fec0, 0x5ee334bb, 0xeff6f70d, 0x00bfd7fe, 0xf7f7f59d, 0xffe051de, } }, { { /* 689 */ 0x037ffec9, 0xbfef5f01, 0x60a79ff1, 0xf1ffef1d, 0x0000000f, 0x00000000, 0x00000000, 0x00000000, } }, { { /* 690 */ 0x00000000, 0x00000000, 0x00000000, 0x3c800000, 0xd91ffb4d, 0xfee37b3a, 0xdc7f3fe9, 0x0000003f, } }, { { /* 691 */ 0x50000000, 0xbe07f51f, 0xf91bfc1d, 0x71ffbc1e, 0x5bbe6ff9, 0x9b1b5796, 0xfffc7fff, 0xafe7872e, } }, { { /* 692 */ 0xf34febf5, 0xe725dffd, 0x5d440bdc, 0xfddd5747, 0x7790ed3f, 0x8ac87d7f, 0xf3f9fafa, 0xef4b202a, } }, { { /* 693 */ 0x79cff5ff, 0x0ba5abd3, 0xfb8ff77a, 0x001f8ebd, 0x00000000, 0xfd4ef300, 0x88001a57, 0x7654aeac, } }, { { /* 694 */ 0xcdff17ad, 0xf42fffb2, 0xdbff5baa, 0x00000002, 0x73c00000, 0x2e3ff9ea, 0xbbfffa8e, 0xffd376bc, } }, { { /* 695 */ 0x7e72eefe, 0xe7f77ebd, 0xcefdf77f, 0x00000ff5, 0x00000000, 0xdb9ba900, 0x917fa4c7, 0x7ecef8ca, } }, { { /* 696 */ 0xc7e77d7a, 0xdcaecbbd, 0x8f76fd7e, 0x7cf391d3, 0x4c2f01e5, 0xa360ed77, 0x5ef807db, 0x21811df7, } }, { { /* 697 */ 0x309c6be0, 0xfade3b3a, 0xc3f57f53, 0x07ba61cd, 0x00000000, 0x00000000, 0x00000000, 0xbefe26e0, } }, { { /* 698 */ 0xebb503f9, 0xe9cbe36d, 0xbfde9c2f, 0xabbf9f83, 0xffd51ff7, 0xdffeb7df, 0xffeffdae, 0xeffdfb7e, } }, { { /* 699 */ 0x6ebfaaff, 0x00000000, 0x00000000, 0xb6200000, 0xbe9e7fcd, 0x58f162b3, 0xfd7bf10d, 0xbefde9f1, } }, { { /* 700 */ 0x5f6dc6c3, 0x69ffff3d, 0xfbf4ffcf, 0x4ff7dcfb, 0x11372000, 0x00000015, 0x00000000, 0x00000000, } }, { { /* 701 */ 0x00003000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, } }, }, { /* aa */ LEAF( 0, 0), /* ab */ LEAF( 1, 1), /* af */ LEAF( 2, 2), LEAF( 2, 3), /* ak */ LEAF( 4, 4), LEAF( 4, 5), LEAF( 4, 6), LEAF( 4, 7), LEAF( 4, 8), /* am */ LEAF( 9, 9), LEAF( 9, 10), /* an */ LEAF( 11, 11), /* ar */ LEAF( 12, 12), /* as */ LEAF( 13, 13), /* ast */ LEAF( 14, 11), LEAF( 14, 14), /* av */ LEAF( 16, 15), /* ay */ LEAF( 17, 16), /* az_az */ LEAF( 18, 17), LEAF( 18, 18), LEAF( 18, 19), /* az_ir */ LEAF( 21, 20), /* ba */ LEAF( 22, 21), /* be */ LEAF( 23, 22), /* ber_dz */ LEAF( 24, 23), LEAF( 24, 24), LEAF( 24, 25), LEAF( 24, 26), /* ber_ma */ LEAF( 28, 27), /* bg */ LEAF( 29, 28), /* bh */ LEAF( 30, 29), /* bi */ LEAF( 31, 30), /* bin */ LEAF( 32, 31), LEAF( 32, 32), LEAF( 32, 33), /* bm */ LEAF( 35, 23), LEAF( 35, 34), LEAF( 35, 35), /* bn */ LEAF( 38, 36), /* bo */ LEAF( 39, 37), /* br */ LEAF( 40, 38), /* brx */ LEAF( 41, 39), /* bs */ LEAF( 42, 23), LEAF( 42, 40), /* bua */ LEAF( 44, 41), /* byn */ LEAF( 45, 42), LEAF( 45, 43), /* ca */ LEAF( 47, 44), LEAF( 47, 45), /* ch */ LEAF( 49, 46), /* chm */ LEAF( 50, 47), /* chr */ LEAF( 51, 48), /* co */ LEAF( 52, 49), LEAF( 52, 50), /* crh */ LEAF( 54, 51), LEAF( 54, 52), /* cs */ LEAF( 56, 53), LEAF( 56, 54), /* csb */ LEAF( 58, 55), LEAF( 58, 56), /* cu */ LEAF( 60, 57), /* cv */ LEAF( 61, 58), LEAF( 61, 59), /* cy */ LEAF( 63, 60), LEAF( 63, 61), LEAF( 63, 62), /* da */ LEAF( 66, 63), /* de */ LEAF( 67, 64), /* doi */ LEAF( 68, 65), /* dv */ LEAF( 69, 66), /* ee */ LEAF( 70, 31), LEAF( 70, 67), LEAF( 70, 68), LEAF( 70, 69), /* el */ LEAF( 74, 70), /* en */ LEAF( 75, 71), /* eo */ LEAF( 76, 23), LEAF( 76, 72), /* et */ LEAF( 78, 73), LEAF( 78, 74), /* eu */ LEAF( 80, 75), /* ff */ LEAF( 81, 23), LEAF( 81, 76), LEAF( 81, 77), /* fi */ LEAF( 84, 78), LEAF( 84, 74), /* fil */ LEAF( 86, 79), /* fj */ LEAF( 87, 23), /* fo */ LEAF( 88, 80), /* fur */ LEAF( 89, 81), /* fy */ LEAF( 90, 82), /* ga */ LEAF( 91, 83), LEAF( 91, 84), LEAF( 91, 85), /* gd */ LEAF( 94, 86), /* gez */ LEAF( 95, 87), LEAF( 95, 88), /* gn */ LEAF( 97, 89), LEAF( 97, 90), LEAF( 97, 91), /* gu */ LEAF(100, 92), /* gv */ LEAF(101, 93), /* ha */ LEAF(102, 23), LEAF(102, 94), LEAF(102, 95), /* haw */ LEAF(105, 23), LEAF(105, 96), LEAF(105, 97), /* he */ LEAF(108, 98), /* hsb */ LEAF(109, 99), LEAF(109,100), /* ht */ LEAF(111,101), /* hu */ LEAF(112,102), LEAF(112,103), /* hy */ LEAF(114,104), /* hz */ LEAF(115, 23), LEAF(115,105), LEAF(115,106), /* id */ LEAF(118,107), /* ig */ LEAF(119, 23), LEAF(119,108), /* ii */ LEAF(121,109), LEAF(121,109), LEAF(121,109), LEAF(121,109), LEAF(121,110), /* ik */ LEAF(126,111), /* is */ LEAF(127,112), /* it */ LEAF(128,113), /* iu */ LEAF(129,114), LEAF(129,115), LEAF(129,116), /* ja */ LEAF(132,117), LEAF(132,118), LEAF(132,119), LEAF(132,120), LEAF(132,121), LEAF(132,122), LEAF(132,123), LEAF(132,124), LEAF(132,125), LEAF(132,126), LEAF(132,127), LEAF(132,128), LEAF(132,129), LEAF(132,130), LEAF(132,131), LEAF(132,132), LEAF(132,133), LEAF(132,134), LEAF(132,135), LEAF(132,136), LEAF(132,137), LEAF(132,138), LEAF(132,139), LEAF(132,140), LEAF(132,141), LEAF(132,142), LEAF(132,143), LEAF(132,144), LEAF(132,145), LEAF(132,146), LEAF(132,147), LEAF(132,148), LEAF(132,149), LEAF(132,150), LEAF(132,151), LEAF(132,152), LEAF(132,153), LEAF(132,154), LEAF(132,155), LEAF(132,156), LEAF(132,157), LEAF(132,158), LEAF(132,159), LEAF(132,160), LEAF(132,161), LEAF(132,162), LEAF(132,163), LEAF(132,164), LEAF(132,165), LEAF(132,166), LEAF(132,167), LEAF(132,168), LEAF(132,169), LEAF(132,170), LEAF(132,171), LEAF(132,172), LEAF(132,173), LEAF(132,174), LEAF(132,175), LEAF(132,176), LEAF(132,177), LEAF(132,178), LEAF(132,179), LEAF(132,180), LEAF(132,181), LEAF(132,182), LEAF(132,183), LEAF(132,184), LEAF(132,185), LEAF(132,186), LEAF(132,187), LEAF(132,188), LEAF(132,189), LEAF(132,190), LEAF(132,191), LEAF(132,192), LEAF(132,193), LEAF(132,194), LEAF(132,195), LEAF(132,196), LEAF(132,197), LEAF(132,198), LEAF(132,199), /* jv */ LEAF(215,200), /* ka */ LEAF(216,201), /* kaa */ LEAF(217,202), /* ki */ LEAF(218, 23), LEAF(218,203), /* kk */ LEAF(220,204), /* kl */ LEAF(221,205), LEAF(221,206), /* km */ LEAF(223,207), /* kn */ LEAF(224,208), /* ko */ LEAF(225,209), LEAF(225,210), LEAF(225,211), LEAF(225,212), LEAF(225,213), LEAF(225,214), LEAF(225,215), LEAF(225,216), LEAF(225,217), LEAF(225,218), LEAF(225,219), LEAF(225,220), LEAF(225,221), LEAF(225,222), LEAF(225,223), LEAF(225,224), LEAF(225,225), LEAF(225,226), LEAF(225,227), LEAF(225,228), LEAF(225,229), LEAF(225,230), LEAF(225,231), LEAF(225,232), LEAF(225,233), LEAF(225,234), LEAF(225,235), LEAF(225,236), LEAF(225,237), LEAF(225,238), LEAF(225,239), LEAF(225,240), LEAF(225,241), LEAF(225,242), LEAF(225,243), LEAF(225,244), LEAF(225,245), LEAF(225,246), LEAF(225,247), LEAF(225,248), LEAF(225,249), LEAF(225,250), LEAF(225,251), LEAF(225,252), LEAF(225,253), /* kr */ LEAF(270, 23), LEAF(270,254), LEAF(270,255), /* ks */ LEAF(273,256), /* ku_am */ LEAF(274,257), LEAF(274,258), /* ku_iq */ LEAF(276,259), /* ku_tr */ LEAF(277,260), LEAF(277,261), /* kum */ LEAF(279,262), /* kv */ LEAF(280,263), /* kw */ LEAF(281, 23), LEAF(281, 96), LEAF(281,264), /* ky */ LEAF(284,265), /* la */ LEAF(285, 23), LEAF(285,266), /* lah */ LEAF(287,267), /* lb */ LEAF(288,268), /* lg */ LEAF(289, 23), LEAF(289,269), /* li */ LEAF(291,270), /* ln */ LEAF(292,271), LEAF(292,272), LEAF(292, 6), LEAF(292,273), /* lo */ LEAF(296,274), /* lt */ LEAF(297, 23), LEAF(297,275), /* lv */ LEAF(299, 23), LEAF(299,276), /* mg */ LEAF(301,277), /* mh */ LEAF(302, 23), LEAF(302,278), /* mi */ LEAF(304, 23), LEAF(304, 96), LEAF(304,279), /* mk */ LEAF(307,280), /* ml */ LEAF(308,281), /* mn_cn */ LEAF(309,282), /* mn_mn */ LEAF(310,283), /* mni */ LEAF(311,284), /* mo */ LEAF(312,285), LEAF(312, 58), LEAF(312,286), LEAF(312,262), /* mt */ LEAF(316,287), LEAF(316,288), /* my */ LEAF(318,289), /* na */ LEAF(319, 4), LEAF(319,290), /* nb */ LEAF(321,291), /* ne */ LEAF(322,292), /* nl */ LEAF(323,293), /* nn */ LEAF(324,294), /* nqo */ LEAF(325,295), /* nso */ LEAF(326,296), LEAF(326,297), /* nv */ LEAF(328,298), LEAF(328,299), LEAF(328,300), LEAF(328,301), /* ny */ LEAF(332, 23), LEAF(332,302), /* oc */ LEAF(334,303), /* or */ LEAF(335,304), /* ota */ LEAF(336,305), /* pa */ LEAF(337,306), /* pap_an */ LEAF(338,307), /* pap_aw */ LEAF(339,308), /* pl */ LEAF(340, 99), LEAF(340,309), /* ps_af */ LEAF(342,310), /* ps_pk */ LEAF(343,311), /* pt */ LEAF(344,312), /* qu */ LEAF(345,308), LEAF(345,313), /* rm */ LEAF(347,314), /* ro */ LEAF(348,285), LEAF(348, 58), LEAF(348,286), /* sah */ LEAF(351,315), /* sat */ LEAF(352,316), /* sc */ LEAF(353,317), /* sco */ LEAF(354, 23), LEAF(354,318), LEAF(354,319), /* sd */ LEAF(357,320), /* se */ LEAF(358,321), LEAF(358,322), /* sg */ LEAF(360,323), /* sh */ LEAF(361, 23), LEAF(361, 40), LEAF(361,324), /* shs */ LEAF(364,325), LEAF(364,326), /* si */ LEAF(366,327), /* sid */ LEAF(367,328), LEAF(367, 10), /* sk */ LEAF(369,329), LEAF(369,330), /* sm */ LEAF(371, 23), LEAF(371, 97), /* sma */ LEAF(373,331), /* smj */ LEAF(374,332), /* smn */ LEAF(375,333), LEAF(375,334), /* sms */ LEAF(377,335), LEAF(377,336), LEAF(377,337), /* sq */ LEAF(380,338), /* sr */ LEAF(381,339), /* sv */ LEAF(382,340), /* syr */ LEAF(383,341), /* ta */ LEAF(384,342), /* te */ LEAF(385,343), /* tg */ LEAF(386,344), /* th */ LEAF(387,345), /* tig */ LEAF(388,346), LEAF(388, 43), /* tk */ LEAF(390,347), LEAF(390,348), /* tr */ LEAF(392,349), LEAF(392, 52), /* tt */ LEAF(394,350), /* ty */ LEAF(395,351), LEAF(395, 96), LEAF(395,300), /* ug */ LEAF(398,352), /* uk */ LEAF(399,353), /* ve */ LEAF(400, 23), LEAF(400,354), /* vi */ LEAF(402,355), LEAF(402,356), LEAF(402,357), LEAF(402,358), /* vo */ LEAF(406,359), /* vot */ LEAF(407,360), LEAF(407, 74), /* wa */ LEAF(409,361), /* wen */ LEAF(410, 99), LEAF(410,362), /* wo */ LEAF(412,363), LEAF(412,269), /* yap */ LEAF(414,364), /* yo */ LEAF(415,365), LEAF(415,366), LEAF(415,367), LEAF(415,368), /* zh_cn */ LEAF(419,369), LEAF(419,370), LEAF(419,371), LEAF(419,372), LEAF(419,373), LEAF(419,374), LEAF(419,375), LEAF(419,376), LEAF(419,377), LEAF(419,378), LEAF(419,379), LEAF(419,380), LEAF(419,381), LEAF(419,382), LEAF(419,383), LEAF(419,384), LEAF(419,385), LEAF(419,386), LEAF(419,387), LEAF(419,388), LEAF(419,389), LEAF(419,390), LEAF(419,391), LEAF(419,392), LEAF(419,393), LEAF(419,394), LEAF(419,395), LEAF(419,396), LEAF(419,397), LEAF(419,398), LEAF(419,399), LEAF(419,400), LEAF(419,401), LEAF(419,402), LEAF(419,403), LEAF(419,404), LEAF(419,405), LEAF(419,406), LEAF(419,407), LEAF(419,408), LEAF(419,409), LEAF(419,410), LEAF(419,411), LEAF(419,412), LEAF(419,413), LEAF(419,414), LEAF(419,415), LEAF(419,416), LEAF(419,417), LEAF(419,418), LEAF(419,419), LEAF(419,420), LEAF(419,421), LEAF(419,422), LEAF(419,423), LEAF(419,424), LEAF(419,425), LEAF(419,426), LEAF(419,427), LEAF(419,428), LEAF(419,429), LEAF(419,430), LEAF(419,431), LEAF(419,432), LEAF(419,433), LEAF(419,434), LEAF(419,435), LEAF(419,436), LEAF(419,437), LEAF(419,438), LEAF(419,439), LEAF(419,440), LEAF(419,441), LEAF(419,442), LEAF(419,443), LEAF(419,444), LEAF(419,445), LEAF(419,446), LEAF(419,447), LEAF(419,448), LEAF(419,449), LEAF(419,450), /* zh_hk */ LEAF(501,451), LEAF(501,452), LEAF(501,453), LEAF(501,454), LEAF(501,455), LEAF(501,456), LEAF(501,457), LEAF(501,458), LEAF(501,459), LEAF(501,460), LEAF(501,461), LEAF(501,462), LEAF(501,463), LEAF(501,464), LEAF(501,465), LEAF(501,466), LEAF(501,467), LEAF(501,468), LEAF(501,469), LEAF(501,470), LEAF(501,471), LEAF(501,472), LEAF(501,473), LEAF(501,474), LEAF(501,475), LEAF(501,476), LEAF(501,477), LEAF(501,478), LEAF(501,479), LEAF(501,480), LEAF(501,481), LEAF(501,482), LEAF(501,483), LEAF(501,484), LEAF(501,485), LEAF(501,486), LEAF(501,487), LEAF(501,488), LEAF(501,489), LEAF(501,490), LEAF(501,491), LEAF(501,492), LEAF(501,493), LEAF(501,494), LEAF(501,495), LEAF(501,496), LEAF(501,497), LEAF(501,498), LEAF(501,499), LEAF(501,500), LEAF(501,501), LEAF(501,502), LEAF(501,503), LEAF(501,504), LEAF(501,505), LEAF(501,506), LEAF(501,507), LEAF(501,508), LEAF(501,509), LEAF(501,510), LEAF(501,511), LEAF(501,512), LEAF(501,513), LEAF(501,514), LEAF(501,515), LEAF(501,516), LEAF(501,517), LEAF(501,518), LEAF(501,519), LEAF(501,520), LEAF(501,521), LEAF(501,522), LEAF(501,523), LEAF(501,524), LEAF(501,525), LEAF(501,526), LEAF(501,527), LEAF(501,528), LEAF(501,529), LEAF(501,530), LEAF(501,531), LEAF(501,532), LEAF(501,533), LEAF(501,534), LEAF(501,535), LEAF(501,536), LEAF(501,537), LEAF(501,538), LEAF(501,539), LEAF(501,540), LEAF(501,541), LEAF(501,542), LEAF(501,543), LEAF(501,544), LEAF(501,545), LEAF(501,546), LEAF(501,547), LEAF(501,548), LEAF(501,549), LEAF(501,550), LEAF(501,551), LEAF(501,552), LEAF(501,553), LEAF(501,554), LEAF(501,555), LEAF(501,556), LEAF(501,557), LEAF(501,558), LEAF(501,559), LEAF(501,560), LEAF(501,561), LEAF(501,562), LEAF(501,563), LEAF(501,564), LEAF(501,565), LEAF(501,566), LEAF(501,567), LEAF(501,568), LEAF(501,569), LEAF(501,570), LEAF(501,571), LEAF(501,572), LEAF(501,573), LEAF(501,574), LEAF(501,575), LEAF(501,576), LEAF(501,577), LEAF(501,578), LEAF(501,579), LEAF(501,580), LEAF(501,581), LEAF(501,582), LEAF(501,583), LEAF(501,318), LEAF(501,584), LEAF(501,585), LEAF(501,586), LEAF(501,587), LEAF(501,588), LEAF(501,589), LEAF(501,590), LEAF(501, 3), LEAF(501,591), LEAF(501,592), LEAF(501,593), LEAF(501,594), LEAF(501,595), LEAF(501,596), LEAF(501,580), LEAF(501,597), LEAF(501,598), LEAF(501,599), LEAF(501,600), LEAF(501,601), LEAF(501,602), LEAF(501,603), LEAF(501,604), LEAF(501,605), LEAF(501,606), LEAF(501,607), LEAF(501,608), LEAF(501,609), LEAF(501,610), LEAF(501,611), LEAF(501,612), LEAF(501,613), LEAF(501,614), LEAF(501,615), LEAF(501,616), LEAF(501,617), LEAF(501,618), /* zh_tw */ LEAF(672,619), LEAF(672,620), LEAF(672,621), LEAF(672,622), LEAF(672,623), LEAF(672,624), LEAF(672,625), LEAF(672,626), LEAF(672,627), LEAF(672,628), LEAF(672,629), LEAF(672,630), LEAF(672,631), LEAF(672,632), LEAF(672,633), LEAF(672,634), LEAF(672,635), LEAF(672,636), LEAF(672,637), LEAF(672,638), LEAF(672,639), LEAF(672,640), LEAF(672,641), LEAF(672,642), LEAF(672,643), LEAF(672,644), LEAF(672,645), LEAF(672,646), LEAF(672,647), LEAF(672,648), LEAF(672,649), LEAF(672,650), LEAF(672,651), LEAF(672,652), LEAF(672,653), LEAF(672,654), LEAF(672,655), LEAF(672,656), LEAF(672,657), LEAF(672,658), LEAF(672,659), LEAF(672,660), LEAF(672,661), LEAF(672,662), LEAF(672,663), LEAF(672,664), LEAF(672,665), LEAF(672,666), LEAF(672,667), LEAF(672,668), LEAF(672,669), LEAF(672,670), LEAF(672,671), LEAF(672,672), LEAF(672,673), LEAF(672,674), LEAF(672,675), LEAF(672,676), LEAF(672,677), LEAF(672,678), LEAF(672,679), LEAF(672,680), LEAF(672,681), LEAF(672,682), LEAF(672,683), LEAF(672,684), LEAF(672,685), LEAF(672,686), LEAF(672,687), LEAF(672,688), LEAF(672,689), LEAF(672,690), LEAF(672,691), LEAF(672,692), LEAF(672,693), LEAF(672,694), LEAF(672,695), LEAF(672,696), LEAF(672,697), LEAF(672,698), LEAF(672,699), LEAF(672,700), LEAF(672,701), }, { /* aa */ 0x0000, /* ab */ 0x0004, /* af */ 0x0000, 0x0001, /* ak */ 0x0000, 0x0001, 0x0002, 0x0003, 0x001e, /* am */ 0x0012, 0x0013, /* an */ 0x0000, /* ar */ 0x0006, /* as */ 0x0009, /* ast */ 0x0000, 0x001e, /* av */ 0x0004, /* ay */ 0x0000, /* az_az */ 0x0000, 0x0001, 0x0002, /* az_ir */ 0x0006, /* ba */ 0x0004, /* be */ 0x0004, /* ber_dz */ 0x0000, 0x0001, 0x0002, 0x001e, /* ber_ma */ 0x002d, /* bg */ 0x0004, /* bh */ 0x0009, /* bi */ 0x0000, /* bin */ 0x0000, 0x0003, 0x001e, /* bm */ 0x0000, 0x0001, 0x0002, /* bn */ 0x0009, /* bo */ 0x000f, /* br */ 0x0000, /* brx */ 0x0009, /* bs */ 0x0000, 0x0001, /* bua */ 0x0004, /* byn */ 0x0012, 0x0013, /* ca */ 0x0000, 0x0001, /* ch */ 0x0000, /* chm */ 0x0004, /* chr */ 0x0013, /* co */ 0x0000, 0x0001, /* crh */ 0x0000, 0x0001, /* cs */ 0x0000, 0x0001, /* csb */ 0x0000, 0x0001, /* cu */ 0x0004, /* cv */ 0x0001, 0x0004, /* cy */ 0x0000, 0x0001, 0x001e, /* da */ 0x0000, /* de */ 0x0000, /* doi */ 0x0009, /* dv */ 0x0007, /* ee */ 0x0000, 0x0001, 0x0002, 0x0003, /* el */ 0x0003, /* en */ 0x0000, /* eo */ 0x0000, 0x0001, /* et */ 0x0000, 0x0001, /* eu */ 0x0000, /* ff */ 0x0000, 0x0001, 0x0002, /* fi */ 0x0000, 0x0001, /* fil */ 0x0000, /* fj */ 0x0000, /* fo */ 0x0000, /* fur */ 0x0000, /* fy */ 0x0000, /* ga */ 0x0000, 0x0001, 0x001e, /* gd */ 0x0000, /* gez */ 0x0012, 0x0013, /* gn */ 0x0000, 0x0001, 0x001e, /* gu */ 0x000a, /* gv */ 0x0000, /* ha */ 0x0000, 0x0001, 0x0002, /* haw */ 0x0000, 0x0001, 0x0002, /* he */ 0x0005, /* hsb */ 0x0000, 0x0001, /* ht */ 0x0000, /* hu */ 0x0000, 0x0001, /* hy */ 0x0005, /* hz */ 0x0000, 0x0003, 0x001e, /* id */ 0x0000, /* ig */ 0x0000, 0x001e, /* ii */ 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, /* ik */ 0x0004, /* is */ 0x0000, /* it */ 0x0000, /* iu */ 0x0014, 0x0015, 0x0016, /* ja */ 0x0030, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, /* jv */ 0x0000, /* ka */ 0x0010, /* kaa */ 0x0004, /* ki */ 0x0000, 0x0001, /* kk */ 0x0004, /* kl */ 0x0000, 0x0001, /* km */ 0x0017, /* kn */ 0x000c, /* ko */ 0x0031, 0x00ac, 0x00ad, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, /* kr */ 0x0000, 0x0001, 0x0002, /* ks */ 0x0006, /* ku_am */ 0x0004, 0x0005, /* ku_iq */ 0x0006, /* ku_tr */ 0x0000, 0x0001, /* kum */ 0x0004, /* kv */ 0x0004, /* kw */ 0x0000, 0x0001, 0x0002, /* ky */ 0x0004, /* la */ 0x0000, 0x0001, /* lah */ 0x0006, /* lb */ 0x0000, /* lg */ 0x0000, 0x0001, /* li */ 0x0000, /* ln */ 0x0000, 0x0001, 0x0002, 0x0003, /* lo */ 0x000e, /* lt */ 0x0000, 0x0001, /* lv */ 0x0000, 0x0001, /* mg */ 0x0000, /* mh */ 0x0000, 0x0001, /* mi */ 0x0000, 0x0001, 0x001e, /* mk */ 0x0004, /* ml */ 0x000d, /* mn_cn */ 0x0018, /* mn_mn */ 0x0004, /* mni */ 0x0009, /* mo */ 0x0000, 0x0001, 0x0002, 0x0004, /* mt */ 0x0000, 0x0001, /* my */ 0x0010, /* na */ 0x0000, 0x0001, /* nb */ 0x0000, /* ne */ 0x0009, /* nl */ 0x0000, /* nn */ 0x0000, /* nqo */ 0x0007, /* nso */ 0x0000, 0x0001, /* nv */ 0x0000, 0x0001, 0x0002, 0x0003, /* ny */ 0x0000, 0x0001, /* oc */ 0x0000, /* or */ 0x000b, /* ota */ 0x0006, /* pa */ 0x000a, /* pap_an */ 0x0000, /* pap_aw */ 0x0000, /* pl */ 0x0000, 0x0001, /* ps_af */ 0x0006, /* ps_pk */ 0x0006, /* pt */ 0x0000, /* qu */ 0x0000, 0x0002, /* rm */ 0x0000, /* ro */ 0x0000, 0x0001, 0x0002, /* sah */ 0x0004, /* sat */ 0x0009, /* sc */ 0x0000, /* sco */ 0x0000, 0x0001, 0x0002, /* sd */ 0x0006, /* se */ 0x0000, 0x0001, /* sg */ 0x0000, /* sh */ 0x0000, 0x0001, 0x0004, /* shs */ 0x0000, 0x0003, /* si */ 0x000d, /* sid */ 0x0012, 0x0013, /* sk */ 0x0000, 0x0001, /* sm */ 0x0000, 0x0002, /* sma */ 0x0000, /* smj */ 0x0000, /* smn */ 0x0000, 0x0001, /* sms */ 0x0000, 0x0001, 0x0002, /* sq */ 0x0000, /* sr */ 0x0004, /* sv */ 0x0000, /* syr */ 0x0007, /* ta */ 0x000b, /* te */ 0x000c, /* tg */ 0x0004, /* th */ 0x000e, /* tig */ 0x0012, 0x0013, /* tk */ 0x0000, 0x0001, /* tr */ 0x0000, 0x0001, /* tt */ 0x0004, /* ty */ 0x0000, 0x0001, 0x0002, /* ug */ 0x0006, /* uk */ 0x0004, /* ve */ 0x0000, 0x001e, /* vi */ 0x0000, 0x0001, 0x0003, 0x001e, /* vo */ 0x0000, /* vot */ 0x0000, 0x0001, /* wa */ 0x0000, /* wen */ 0x0000, 0x0001, /* wo */ 0x0000, 0x0001, /* yap */ 0x0000, /* yo */ 0x0000, 0x0001, 0x0003, 0x001e, /* zh_cn */ 0x0002, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009e, 0x009f, /* zh_hk */ 0x0030, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x0200, 0x0201, 0x0203, 0x0207, 0x020c, 0x020d, 0x020e, 0x020f, 0x0210, 0x0211, 0x0219, 0x021a, 0x021c, 0x021d, 0x0220, 0x0221, 0x022a, 0x022b, 0x022c, 0x022d, 0x022f, 0x0232, 0x0235, 0x0236, 0x023c, 0x023e, 0x023f, 0x0244, 0x024d, 0x024e, 0x0251, 0x0255, 0x025e, 0x0262, 0x0266, 0x0267, 0x0268, 0x0269, 0x0272, 0x0275, 0x0276, 0x0277, 0x0278, 0x0279, 0x027a, 0x027d, 0x0280, 0x0281, 0x0282, 0x0283, 0x0289, 0x028a, 0x028b, 0x028c, 0x028d, 0x028e, 0x0294, 0x0297, 0x0298, 0x029a, 0x029d, 0x02a6, /* zh_tw */ 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00fa, }, { 0, /* aa */ 1, /* ab */ 2, /* af */ 190, /* ak */ 3, /* am */ 191, /* an */ 4, /* ar */ 5, /* as */ 6, /* ast */ 7, /* av */ 8, /* ay */ 9, /* az_az */ 10, /* az_ir */ 11, /* ba */ 13, /* be */ 192, /* ber_dz */ 193, /* ber_ma */ 14, /* bg */ 15, /* bh */ 16, /* bho */ 17, /* bi */ 18, /* bin */ 12, /* bm */ 19, /* bn */ 20, /* bo */ 21, /* br */ 240, /* brx */ 22, /* bs */ 23, /* bua */ 194, /* byn */ 24, /* ca */ 25, /* ce */ 26, /* ch */ 27, /* chm */ 28, /* chr */ 29, /* co */ 195, /* crh */ 30, /* cs */ 196, /* csb */ 31, /* cu */ 32, /* cv */ 33, /* cy */ 34, /* da */ 35, /* de */ 242, /* doi */ 197, /* dv */ 36, /* dz */ 198, /* ee */ 37, /* el */ 38, /* en */ 39, /* eo */ 40, /* es */ 41, /* et */ 42, /* eu */ 43, /* fa */ 199, /* fat */ 48, /* ff */ 44, /* fi */ 200, /* fil */ 45, /* fj */ 46, /* fo */ 47, /* fr */ 49, /* fur */ 50, /* fy */ 51, /* ga */ 52, /* gd */ 53, /* gez */ 54, /* gl */ 55, /* gn */ 56, /* gu */ 57, /* gv */ 58, /* ha */ 59, /* haw */ 60, /* he */ 61, /* hi */ 201, /* hne */ 62, /* ho */ 63, /* hr */ 202, /* hsb */ 203, /* ht */ 64, /* hu */ 65, /* hy */ 204, /* hz */ 66, /* ia */ 68, /* id */ 69, /* ie */ 67, /* ig */ 205, /* ii */ 70, /* ik */ 71, /* io */ 72, /* is */ 73, /* it */ 74, /* iu */ 75, /* ja */ 206, /* jv */ 76, /* ka */ 77, /* kaa */ 207, /* kab */ 78, /* ki */ 208, /* kj */ 79, /* kk */ 80, /* kl */ 81, /* km */ 82, /* kn */ 83, /* ko */ 84, /* kok */ 209, /* kr */ 85, /* ks */ 86, /* ku_am */ 210, /* ku_iq */ 87, /* ku_ir */ 211, /* ku_tr */ 88, /* kum */ 89, /* kv */ 90, /* kw */ 212, /* kwm */ 91, /* ky */ 92, /* la */ 238, /* lah */ 93, /* lb */ 94, /* lez */ 213, /* lg */ 214, /* li */ 95, /* ln */ 96, /* lo */ 97, /* lt */ 98, /* lv */ 215, /* mai */ 99, /* mg */ 100, /* mh */ 101, /* mi */ 102, /* mk */ 103, /* ml */ 104, /* mn_cn */ 216, /* mn_mn */ 243, /* mni */ 105, /* mo */ 106, /* mr */ 217, /* ms */ 107, /* mt */ 108, /* my */ 218, /* na */ 109, /* nb */ 110, /* nds */ 111, /* ne */ 219, /* ng */ 112, /* nl */ 113, /* nn */ 114, /* no */ 239, /* nqo */ 115, /* nr */ 116, /* nso */ 220, /* nv */ 117, /* ny */ 118, /* oc */ 119, /* om */ 120, /* or */ 121, /* os */ 221, /* ota */ 122, /* pa */ 222, /* pa_pk */ 223, /* pap_an */ 224, /* pap_aw */ 123, /* pl */ 124, /* ps_af */ 125, /* ps_pk */ 126, /* pt */ 225, /* qu */ 226, /* quz */ 127, /* rm */ 227, /* rn */ 128, /* ro */ 129, /* ru */ 228, /* rw */ 130, /* sa */ 131, /* sah */ 241, /* sat */ 229, /* sc */ 132, /* sco */ 230, /* sd */ 133, /* se */ 134, /* sel */ 231, /* sg */ 135, /* sh */ 136, /* shs */ 137, /* si */ 232, /* sid */ 138, /* sk */ 139, /* sl */ 140, /* sm */ 141, /* sma */ 142, /* smj */ 143, /* smn */ 144, /* sms */ 233, /* sn */ 145, /* so */ 146, /* sq */ 147, /* sr */ 148, /* ss */ 149, /* st */ 234, /* su */ 150, /* sv */ 151, /* sw */ 152, /* syr */ 153, /* ta */ 154, /* te */ 155, /* tg */ 156, /* th */ 157, /* ti_er */ 158, /* ti_et */ 159, /* tig */ 160, /* tk */ 161, /* tl */ 162, /* tn */ 163, /* to */ 164, /* tr */ 165, /* ts */ 166, /* tt */ 167, /* tw */ 235, /* ty */ 168, /* tyv */ 169, /* ug */ 170, /* uk */ 171, /* ur */ 172, /* uz */ 173, /* ve */ 174, /* vi */ 175, /* vo */ 176, /* vot */ 177, /* wa */ 236, /* wal */ 178, /* wen */ 179, /* wo */ 180, /* xh */ 181, /* yap */ 182, /* yi */ 183, /* yo */ 237, /* za */ 184, /* zh_cn */ 185, /* zh_hk */ 186, /* zh_mo */ 187, /* zh_sg */ 188, /* zh_tw */ 189, /* zu */ }, { 0, /* aa */ 1, /* ab */ 2, /* af */ 4, /* am */ 6, /* ar */ 7, /* as */ 8, /* ast */ 9, /* av */ 10, /* ay */ 11, /* az_az */ 12, /* az_ir */ 13, /* ba */ 22, /* bm */ 14, /* be */ 17, /* bg */ 18, /* bh */ 19, /* bho */ 20, /* bi */ 21, /* bin */ 23, /* bn */ 24, /* bo */ 25, /* br */ 27, /* bs */ 28, /* bua */ 30, /* ca */ 31, /* ce */ 32, /* ch */ 33, /* chm */ 34, /* chr */ 35, /* co */ 37, /* cs */ 39, /* cu */ 40, /* cv */ 41, /* cy */ 42, /* da */ 43, /* de */ 46, /* dz */ 48, /* el */ 49, /* en */ 50, /* eo */ 51, /* es */ 52, /* et */ 53, /* eu */ 54, /* fa */ 57, /* fi */ 59, /* fj */ 60, /* fo */ 61, /* fr */ 56, /* ff */ 62, /* fur */ 63, /* fy */ 64, /* ga */ 65, /* gd */ 66, /* gez */ 67, /* gl */ 68, /* gn */ 69, /* gu */ 70, /* gv */ 71, /* ha */ 72, /* haw */ 73, /* he */ 74, /* hi */ 76, /* ho */ 77, /* hr */ 80, /* hu */ 81, /* hy */ 83, /* ia */ 86, /* ig */ 84, /* id */ 85, /* ie */ 88, /* ik */ 89, /* io */ 90, /* is */ 91, /* it */ 92, /* iu */ 93, /* ja */ 95, /* ka */ 96, /* kaa */ 98, /* ki */ 100, /* kk */ 101, /* kl */ 102, /* km */ 103, /* kn */ 104, /* ko */ 105, /* kok */ 107, /* ks */ 108, /* ku_am */ 110, /* ku_ir */ 112, /* kum */ 113, /* kv */ 114, /* kw */ 116, /* ky */ 117, /* la */ 119, /* lb */ 120, /* lez */ 123, /* ln */ 124, /* lo */ 125, /* lt */ 126, /* lv */ 128, /* mg */ 129, /* mh */ 130, /* mi */ 131, /* mk */ 132, /* ml */ 133, /* mn_cn */ 136, /* mo */ 137, /* mr */ 139, /* mt */ 140, /* my */ 142, /* nb */ 143, /* nds */ 144, /* ne */ 146, /* nl */ 147, /* nn */ 148, /* no */ 150, /* nr */ 151, /* nso */ 153, /* ny */ 154, /* oc */ 155, /* om */ 156, /* or */ 157, /* os */ 159, /* pa */ 163, /* pl */ 164, /* ps_af */ 165, /* ps_pk */ 166, /* pt */ 169, /* rm */ 171, /* ro */ 172, /* ru */ 174, /* sa */ 175, /* sah */ 178, /* sco */ 180, /* se */ 181, /* sel */ 183, /* sh */ 184, /* shs */ 185, /* si */ 187, /* sk */ 188, /* sl */ 189, /* sm */ 190, /* sma */ 191, /* smj */ 192, /* smn */ 193, /* sms */ 195, /* so */ 196, /* sq */ 197, /* sr */ 198, /* ss */ 199, /* st */ 201, /* sv */ 202, /* sw */ 203, /* syr */ 204, /* ta */ 205, /* te */ 206, /* tg */ 207, /* th */ 208, /* ti_er */ 209, /* ti_et */ 210, /* tig */ 211, /* tk */ 212, /* tl */ 213, /* tn */ 214, /* to */ 215, /* tr */ 216, /* ts */ 217, /* tt */ 218, /* tw */ 220, /* tyv */ 221, /* ug */ 222, /* uk */ 223, /* ur */ 224, /* uz */ 225, /* ve */ 226, /* vi */ 227, /* vo */ 228, /* vot */ 229, /* wa */ 231, /* wen */ 232, /* wo */ 233, /* xh */ 234, /* yap */ 235, /* yi */ 236, /* yo */ 238, /* zh_cn */ 239, /* zh_hk */ 240, /* zh_mo */ 241, /* zh_sg */ 242, /* zh_tw */ 243, /* zu */ 3, /* ak */ 5, /* an */ 15, /* ber_dz */ 16, /* ber_ma */ 29, /* byn */ 36, /* crh */ 38, /* csb */ 45, /* dv */ 47, /* ee */ 55, /* fat */ 58, /* fil */ 75, /* hne */ 78, /* hsb */ 79, /* ht */ 82, /* hz */ 87, /* ii */ 94, /* jv */ 97, /* kab */ 99, /* kj */ 106, /* kr */ 109, /* ku_iq */ 111, /* ku_tr */ 115, /* kwm */ 121, /* lg */ 122, /* li */ 127, /* mai */ 134, /* mn_mn */ 138, /* ms */ 141, /* na */ 145, /* ng */ 152, /* nv */ 158, /* ota */ 160, /* pa_pk */ 161, /* pap_an */ 162, /* pap_aw */ 167, /* qu */ 168, /* quz */ 170, /* rn */ 173, /* rw */ 177, /* sc */ 179, /* sd */ 182, /* sg */ 186, /* sid */ 194, /* sn */ 200, /* su */ 219, /* ty */ 230, /* wal */ 237, /* za */ 118, /* lah */ 149, /* nqo */ 26, /* brx */ 176, /* sat */ 44, /* doi */ 135, /* mni */ } }; #define NUM_LANG_CHAR_SET 244 #define NUM_LANG_SET_MAP 8 static const FcChar32 fcLangCountrySets[][NUM_LANG_SET_MAP] = { { 0x00000600, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* az */ { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000000, }, /* ber */ { 0x00000000, 0x00000000, 0x00c00000, 0x00000000, 0x00000000, 0x00000000, 0x000c0000, 0x00000000, }, /* ku */ { 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x00000000, 0x00000000, 0x01000000, 0x00000000, }, /* mn */ { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x40000000, 0x00000000, }, /* pa */ { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80000000, 0x00000001, }, /* pap */ { 0x00000000, 0x00000000, 0x00000000, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }, /* ps */ { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x60000000, 0x00000000, 0x00000000, 0x00000000, }, /* ti */ { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x1f000000, 0x00000000, 0x00000000, }, /* zh */ }; #define NUM_COUNTRY_SET 9 static const FcLangCharSetRange fcLangCharSetRanges[] = { { 0, 12 }, /* a */ { 13, 29 }, /* b */ { 30, 41 }, /* c */ { 42, 46 }, /* d */ { 47, 53 }, /* e */ { 54, 63 }, /* f */ { 64, 70 }, /* g */ { 71, 82 }, /* h */ { 83, 92 }, /* i */ { 93, 94 }, /* j */ { 95, 116 }, /* k */ { 117, 126 }, /* l */ { 127, 140 }, /* m */ { 141, 153 }, /* n */ { 154, 158 }, /* o */ { 159, 166 }, /* p */ { 167, 168 }, /* q */ { 169, 173 }, /* r */ { 174, 203 }, /* s */ { 204, 220 }, /* t */ { 221, 224 }, /* u */ { 225, 228 }, /* v */ { 229, 232 }, /* w */ { 233, 233 }, /* x */ { 234, 236 }, /* y */ { 237, 243 }, /* z */ }; fontconfig-2.11.1/fc-lang/my.orth0000664000076400007640000000255512267155334013534 00000000000000# # fontconfig/fc-lang/my.orth # # 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. # # Burmese (Myanmar) (MY) # # Orthography from Unicode range (U+1000-U+1059) # # Consonants 1000-1020 # Independent vowels 1021 1023-1027 1029-102a # Dependent vowel signs 102c-1032 # Pali and Sanskrit extensions #1050-1059 fontconfig-2.11.1/fc-lang/se.orth0000664000076400007640000000245312267155334013513 00000000000000# # fontconfig/fc-lang/se.orth # # 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. # # North Sámi (SE) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 00c1 00e1 010c-010d 0110-0111 014a-014b 0160-0161 0166-0167 017d-017e fontconfig-2.11.1/fc-lang/wa.orth0000664000076400007640000000313312267155334013507 00000000000000# # fontconfig/fc-lang/wa.orth # # 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. # # Walloon (WA) # # Data from private communication with Pablo Saratxaga # 0041-005a 0061-007a 00c2 # A circumflex 00c5 # A ring 00c7 # C cedilla 00c8 # E grave 00c9 # E acute 00ca # E circumflex 00ce # I circumflex 00d4 # O circumflex 00db # U circumflex 00e2 # a circumflex 00e5 # a ring 00e7 # c cedilla 00e8 # e grave 00e9 # e acute 00ea # e circumflex 00ee # i circumflex 00f4 # o circumflex 00fb # u circumflex fontconfig-2.11.1/fc-lang/sa.orth0000664000076400007640000000230212267155334013500 00000000000000# # fontconfig/fc-lang/sa.orth # # 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. # # Sanskrit (Devanagari script) (SA) include hi.orth fontconfig-2.11.1/fc-lang/kv.orth0000664000076400007640000000335312267155334013524 00000000000000# # fontconfig/fc-lang/kv.orth # # 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. # # Coverage taken from TITUS (Thesaurus Indogermanischer Text und # Sprachmaterialien) # # http://titus.uni-frankfurt.de/unicode/alphabet/nslatest.htm # # Komi (Komi-Permyak/Komi-Siryan) (KV) # # I've taken Komi-Permyak as it contains two extra codepoints 0401 0406 0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041a 041b 041c 041d 041e 041f 0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042a 042b 042c 042d 042e 042f 0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043a 043b 043c 043d 043e 043f 0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044a 044b 044c 044d 044e 044f 0451 0456 04e6 04e7 fontconfig-2.11.1/fc-lang/eo.orth0000664000076400007640000000235712267155334013512 00000000000000# # fontconfig/fc-lang/eo.orth # # 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. # # Esperanto (EO) 0041-005a 0061-007a 0108-0109 011c-011d 0124-0125 0134-0135 015c-015d 016c-016d fontconfig-2.11.1/fc-lang/kr.orth0000664000076400007640000000341412267155334013516 00000000000000# # fontconfig/fc-lang/kr.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Kanuri (kr) # # Sources: # * http://www.panafril10n.org/wikidoc/pmwiki.php/PanAfrLoc/Kanuri # * http://www.sciences.univ-nantes.fr/info/perso/permanents/enguehard/recherche/Afrique/alphabet_kanuri.htm # * http://sumale.vjf.cnrs.fr/phono/AfficheTableauOrtho2N.php?choixLangue=kanuri # * http://www.rosettaproject.org/archive/kby/ortho-1 # * http://std.dkuug.dk/jtc1/sc2/wg2/docs/n2906.pdf # # This is for Kanuri as written in the Latin script. An Arabic script # orthography is also used (called Ajami), but I could not find much # information about it. # # Q, V, and X are not used. # 0041-005A 0061-007A 018E 01DD 024C-024D fontconfig-2.11.1/fc-lang/kk.orth0000664000076400007640000000255312267155334013512 00000000000000# # fontconfig/fc-lang/kk.orth # # 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. # # Kazakh (KK) # # Sources: # www.evertype.com # www.eki.ee/letter # #00ab #00bb #0401 #0406 0410-044f #0451 0456 0492-0493 049a-049b 04a2-04a3 #04ae-04af #04b0-04b1 04ba-04bb 04d8-04d9 04e8-04e9 #2039-203a # angle quotes fontconfig-2.11.1/fc-lang/lah.orth0000664000076400007640000000320212267155334013641 00000000000000# # fontconfig/fc-lang/lah.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Lahnda (lah) # # This is basically Western Panjabi/Punjabi, or Panjabi for Pakistan. It is # written in the Arabic script, also known as Shahmukhi. According to # ISO 639-3, the 'pa/pan' language code does not include Pakistani Panjabi, # but 'lah' does: # http://www.sil.org/iso639-3/documentation.asp?id=lah # http://www.sil.org/iso639-3/documentation.asp?id=pan # # The letter list appears to be identical to Urdu. More research may be # needed for rare letters. include ur.orth fontconfig-2.11.1/fc-lang/yo.orth0000664000076400007640000000342312267155334013531 00000000000000# # fontconfig/fc-lang/yo.orth # # 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. # # Yoruba (YO) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 00c0 00c1 00c2 00c3 00c8 00c9 00ca 00cc 00cd 00ce 00d2 00d3 00d4 00d5 00d9 00da 00db 00e0 00e1 00e2 00e3 00e8 00e9 00ea 00ec 00ed 00ee 00f2 00f3 00f4 00f5 00f9 00fa 00fb 011a-011b 0128-0129 0143-0144 0168-0169 01cd-01ce 01cf-01d0 01d1-01d2 01d3-01d4 01f8-01f9 # LATIN LETTER N WITH GRAVE 0300 0301 0302 0303 030c 1e3e-1e3f 1e62-1e63 1eb8-1eb9 1ebc-1ebd 1ecc-1ecd # LATIN CAPTIAL LETTER M WITH MACRON (no UCS code) # LATIN CAPTIAL LETTER N WITH MACRON (no UCS code) # LATIN SMALL LETTER M WITH MACRON (no UCS code) # LATIN SMALL LETTER N WITH MACRON (no UCS code) fontconfig-2.11.1/fc-lang/ug.orth0000664000076400007640000000316012267155334013513 00000000000000# # fontconfig/fc-lang/ug.orth # # Copyright © 2010 # UKIJ - Uyghur Computer Science Association (http://www.ukij.org/) # Ubuntu Uyghur Translation Team (https://launchpad.net/~ubuntu-l10n-ug) # Kenjisoft (http://kenjisoft.homelinux.com/) # Bilik (http://www.bilik.cn/) # # 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 makes 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. # # Uyghur (UG) # # Uyghur is written in a modified Persian-Arabic script. For detailed # information, refer to http://en.wikipedia.org/wiki/Uyghur_language # 0626-0628 062A 062C 062E-062F 0631-0634 063A 0641-0646 0648-064A 067E 0686 0698 06AD 06AF 06BE 06C6-06C8 06CB 06D0 06D5 fontconfig-2.11.1/fc-lang/ks.orth0000664000076400007640000000233112267155334013514 00000000000000# # fontconfig/fc-lang/ks.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Kashmiri (ks) # include ur.orth 0620 0657 065f 0672 0673 06c4 fontconfig-2.11.1/fc-lang/yi.orth0000664000076400007640000000225512267155334013525 00000000000000# # fontconfig/fc-lang/yi.orth # # 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. # # Yiddish (YI) include he.orth fontconfig-2.11.1/fc-lang/kwm.orth0000664000076400007640000000244012267155334013676 00000000000000# # fontconfig/fc-lang/kwm.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Kwambi (kwm) # # Considered a sister language/dialect to Kuanyama (kj) and Ndonga (ng). # We'll include Kuanyama. # include kj.orth fontconfig-2.11.1/fc-lang/av.orth0000664000076400007640000000320512267155334013506 00000000000000# # fontconfig/fc-lang/av.orth # # 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. # # Coverage taken from TITUS (Thesaurus Indogermanischer Text und # Sprachmaterialien) # # http://titus.uni-frankfurt.de/unicode/alphabet/nslatest.htm # # Avaric (av) # 0401 0406 0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041a 041b 041c 041d 041e 041f 0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042a 042b 042c 042d 042e 042f 0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043a 043b 043c 043d 043e 043f 0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044a 044b 044c 044d 044e 044f 0451 fontconfig-2.11.1/fc-lang/id.orth0000664000076400007640000000235612267155334013502 00000000000000# # fontconfig/fc-lang/id.orth # # 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. # # Indonesian (ID) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 00c9 00e9 fontconfig-2.11.1/fc-lang/Makefile.in0000664000076400007640000005307112313745337014255 00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- encoding: utf-8 -*- # # Copyright © 2003 Keith Packard # Copyright © 2013 Google, Inc. # # 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. # # Google Author(s): Behdad Esfahbod # -*- encoding: utf-8 -*- # # Copyright © 2003 Keith Packard # Copyright © 2013 Google, Inc. # # 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. # # Google Author(s): Behdad Esfahbod VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(top_srcdir)/Tools.mk $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am $(noinst_HEADERS) README subdir = fc-lang ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASECONFIGDIR = @BASECONFIGDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CONFIGDIR = @CONFIGDIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DOCMAN3 = @DOCMAN3@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@ EXPAT_CFLAGS = @EXPAT_CFLAGS@ EXPAT_LIBS = @EXPAT_LIBS@ FC_ADD_FONTS = @FC_ADD_FONTS@ FC_CACHEDIR = @FC_CACHEDIR@ FC_DEFAULT_FONTS = @FC_DEFAULT_FONTS@ FC_FONTDATE = @FC_FONTDATE@ FC_FONTPATH = @FC_FONTPATH@ FGREP = @FGREP@ FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ FREETYPE_LIBS = @FREETYPE_LIBS@ GIT = @GIT@ GPERF = @GPERF@ GREP = @GREP@ HASDOCBOOK = @HASDOCBOOK@ HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@ ICONV_CFLAGS = @ICONV_CFLAGS@ ICONV_LIBS = @ICONV_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBT_CURRENT = @LIBT_CURRENT@ LIBT_CURRENT_MINUS_AGE = @LIBT_CURRENT_MINUS_AGE@ LIBT_REVISION = @LIBT_REVISION@ LIBT_VERSION_INFO = @LIBT_VERSION_INFO@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ RM = @RM@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TEMPLATEDIR = @TEMPLATEDIR@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XMLDIR = @XMLDIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ ax_pthread_config = @ax_pthread_config@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fc_cachedir = @fc_cachedir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ ms_librarian = @ms_librarian@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfigdir = @pkgconfigdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ TAG = lang DEPS = $(ORTH) ARGS = -d $(srcdir) $(ORTH) DIST = $(ORTH) DIR = fc-$(TAG) OUT = fc$(TAG) TMPL = $(OUT).tmpl.h TARG = $(OUT).h TSRC = $(DIR).c TOOL = ./$(DIR)$(EXEEXT_FOR_BUILD) EXTRA_DIST = $(TARG) $(TMPL) $(TSRC) $(DIST) AM_CPPFLAGS = \ -I$(builddir) \ -I$(srcdir) \ -I$(top_builddir)/src \ -I$(top_srcdir)/src \ -I$(top_builddir) \ -I$(top_srcdir) \ -DHAVE_CONFIG_H \ $(WARN_CFLAGS) noinst_HEADERS = $(TARG) ALIAS_FILES = fcalias.h fcaliastail.h BUILT_SOURCES = $(ALIAS_FILES) CLEANFILES = $(ALIAS_FILES) $(TOOL) MAINTAINERCLEANFILES = $(TARG) # NOTE: # # The order of the orth files here is extremely important (part of the cache # format) and should not be modified. New orth files should be added at the # end. No files should be removed either. # ORTH = \ aa.orth \ ab.orth \ af.orth \ am.orth \ ar.orth \ as.orth \ ast.orth \ av.orth \ ay.orth \ az_az.orth \ az_ir.orth \ ba.orth \ bm.orth \ be.orth \ bg.orth \ bh.orth \ bho.orth \ bi.orth \ bin.orth \ bn.orth \ bo.orth \ br.orth \ bs.orth \ bua.orth \ ca.orth \ ce.orth \ ch.orth \ chm.orth \ chr.orth \ co.orth \ cs.orth \ cu.orth \ cv.orth \ cy.orth \ da.orth \ de.orth \ dz.orth \ el.orth \ en.orth \ eo.orth \ es.orth \ et.orth \ eu.orth \ fa.orth \ fi.orth \ fj.orth \ fo.orth \ fr.orth \ ff.orth \ fur.orth \ fy.orth \ ga.orth \ gd.orth \ gez.orth \ gl.orth \ gn.orth \ gu.orth \ gv.orth \ ha.orth \ haw.orth \ he.orth \ hi.orth \ ho.orth \ hr.orth \ hu.orth \ hy.orth \ ia.orth \ ig.orth \ id.orth \ ie.orth \ ik.orth \ io.orth \ is.orth \ it.orth \ iu.orth \ ja.orth \ ka.orth \ kaa.orth \ ki.orth \ kk.orth \ kl.orth \ km.orth \ kn.orth \ ko.orth \ kok.orth \ ks.orth \ ku_am.orth \ ku_ir.orth \ kum.orth \ kv.orth \ kw.orth \ ky.orth \ la.orth \ lb.orth \ lez.orth \ ln.orth \ lo.orth \ lt.orth \ lv.orth \ mg.orth \ mh.orth \ mi.orth \ mk.orth \ ml.orth \ mn_cn.orth \ mo.orth \ mr.orth \ mt.orth \ my.orth \ nb.orth \ nds.orth \ ne.orth \ nl.orth \ nn.orth \ no.orth \ nr.orth \ nso.orth \ ny.orth \ oc.orth \ om.orth \ or.orth \ os.orth \ pa.orth \ pl.orth \ ps_af.orth \ ps_pk.orth \ pt.orth \ rm.orth \ ro.orth \ ru.orth \ sa.orth \ sah.orth \ sco.orth \ se.orth \ sel.orth \ sh.orth \ shs.orth \ si.orth \ sk.orth \ sl.orth \ sm.orth \ sma.orth \ smj.orth \ smn.orth \ sms.orth \ so.orth \ sq.orth \ sr.orth \ ss.orth \ st.orth \ sv.orth \ sw.orth \ syr.orth \ ta.orth \ te.orth \ tg.orth \ th.orth \ ti_er.orth \ ti_et.orth \ tig.orth \ tk.orth \ tl.orth \ tn.orth \ to.orth \ tr.orth \ ts.orth \ tt.orth \ tw.orth \ tyv.orth \ ug.orth \ uk.orth \ ur.orth \ uz.orth \ ve.orth \ vi.orth \ vo.orth \ vot.orth \ wa.orth \ wen.orth \ wo.orth \ xh.orth \ yap.orth \ yi.orth \ yo.orth \ zh_cn.orth \ zh_hk.orth \ zh_mo.orth \ zh_sg.orth \ zh_tw.orth \ zu.orth \ ak.orth \ an.orth \ ber_dz.orth \ ber_ma.orth \ byn.orth \ crh.orth \ csb.orth \ dv.orth \ ee.orth \ fat.orth \ fil.orth \ hne.orth \ hsb.orth \ ht.orth \ hz.orth \ ii.orth \ jv.orth \ kab.orth \ kj.orth \ kr.orth \ ku_iq.orth \ ku_tr.orth \ kwm.orth \ lg.orth \ li.orth \ mai.orth \ mn_mn.orth \ ms.orth \ na.orth \ ng.orth \ nv.orth \ ota.orth \ pa_pk.orth \ pap_an.orth \ pap_aw.orth \ qu.orth \ quz.orth \ rn.orth \ rw.orth \ sc.orth \ sd.orth \ sg.orth \ sid.orth \ sn.orth \ su.orth \ ty.orth \ wal.orth \ za.orth \ lah.orth \ nqo.orth \ brx.orth \ sat.orth \ doi.orth \ mni.orth all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/Tools.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fc-lang/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fc-lang/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/Tools.mk: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(HEADERS) installdirs: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: all check install install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool cscopelist-am ctags ctags-am distclean \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am $(TOOL): $(TSRC) $(ALIAS_FILES) $(AM_V_GEN) $(CC_FOR_BUILD) -o $(TOOL) $< $(AM_CPPFLAGS) $(TARG): $(TMPL) $(TSRC) $(DEPS) $(AM_V_GEN) $(MAKE) $(TOOL) && \ $(RM) $(TARG) && \ $(TOOL) $(ARGS) < $< > $(TARG).tmp && \ mv $(TARG).tmp $(TARG) || ( $(RM) $(TARG).tmp && false ) $(ALIAS_FILES): $(AM_V_GEN) touch $@ # ^-------------- Add new orth files here -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fontconfig-2.11.1/fc-lang/tg.orth0000664000076400007640000000327312267155334013517 00000000000000# # fontconfig/fc-lang/tg.orth # # 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. # # Coverage taken from TITUS (Thesaurus Indogermanischer Text und # Sprachmaterialien) # # http://titus.uni-frankfurt.de/unicode/alphabet/nslatest.htm # # Tajik (TG) # 0401 0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041a 041b 041c 041d 041e 041f 0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042a 042b 042c 042d 042e 042f 0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043a 043b 043c 043d 043e 043f 0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044a 044b 044c 044d 044e 044f 0451 0492 0493 049a 049b 04b2 04b3 04b6 04b7 04e2 04e3 04ee 04ef fontconfig-2.11.1/fc-lang/ti_et.orth0000664000076400007640000000252412267155334014207 00000000000000# # fontconfig/fc-lang/ti_et.orth # # 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. # # Ethiopian Tigrinya (TI-ET) Ethiopic Convention # # The same as Ethiopic # include ti_er.orth 1220-1226 # `se-`so 1280-1286 # `he-`ho 1288 # hWe 128a-128d # hWi-hW 1340-1346 # `Se-`So fontconfig-2.11.1/fc-lang/zu.orth0000664000076400007640000000240012267155334013532 00000000000000# # fontconfig/fc-lang/zu.orth # # 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. # # Zulu (zu) # # Orthography taken from http://www.ideography.co.uk/library/pdf/charsets.pdf # 0041-005a 0061-007a fontconfig-2.11.1/fc-lang/iu.orth0000664000076400007640000000330012267155334013511 00000000000000# # fontconfig/fc-lang/iu.orth # # 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. # # Inuktitut (IU) # # Taken from alphabetic coverage of the Pigiarniq font as # produced by the legislative assembly of Nunavut # http://www.assembly.nu.ca/unicode/fonts/ # 1401-1406 140a-140b 142f-1434 1438-1439 1449 144c-1451 1455-1456 1466 146b-1470 1472-1473 1483 1489-148e 1490-1491 14a1 14a3-14a8 14aa-14ab 14bb 14c0-14c5 14c7-14c8 14d0 14d3-14d8 14da-14db 14ea 14ed-14f2 14f4-14f5 14fa 14fc 14fe 1500 1502 1505 1526-152b 152d-152e 153e 1542 1545-1549 154b-154c 1550 1553-155a 155d 1575-1577 1579-157c 157e-1585 158b-1596 15a0-15a6 15a8-15ae 166f 1670-1676 fontconfig-2.11.1/fc-lang/he.orth0000664000076400007640000000224612267155334013500 00000000000000# # fontconfig/fc-lang/he.orth # # 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. # # Hebrew (HE) 05d0-05ea fontconfig-2.11.1/fc-lang/fr.orth0000664000076400007640000000476212267155334013520 00000000000000# # fontconfig/fc-lang/fr.orth # # 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. # # French (FR) 0041-005a 0061-007a 00C0 # LATIN CAPITAL LETTER A WITH GRAVE 00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX 00E0 # LATIN SMALL LETTER A WITH GRAVE 00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX 00C7 # LATIN CAPITAL LETTER C WITH CEDILLA 00E7 # LATIN SMALL LETTER C WITH CEDILLA 00C8 # LATIN CAPITAL LETTER E WITH GRAVE 00E8 # LATIN SMALL LETTER E WITH GRAVE 00C9 # LATIN CAPITAL LETTER E WITH ACUTE 00E9 # LATIN SMALL LETTER E WITH ACUTE 00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX 00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX 00CB # LATIN CAPITAL LETTER E WITH DIAERESIS 00EB # LATIN SMALL LETTER E WITH DIAERESIS 00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX 00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX 00CF # LATIN CAPITAL LETTER I WITH DIAERESIS 00EF # LATIN SMALL LETTER I WITH DIAERESIS 00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX 00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX 0152 # LATIN CAPITAL LIGATURE OE 0153 # LATIN SMALL LIGATURE OE 00D9 # LATIN CAPITAL LETTER U WITH GRAVE 00F9 # LATIN SMALL LETTER U WITH GRAVE 00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX 00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX 00DC # LATIN CAPITAL LETTER U WITH DIAERESIS 00FC # LATIN SMALL LETTER U WITH DIAERESIS 0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS 00FF # LATIN SMALL LETTER Y WITH DIAERESIS 00C6 # LATIN CAPITAL LETTER AE (ash) * 00E6 # LATIN SMALL LETTER AE (ash) * fontconfig-2.11.1/fc-lang/om.orth0000664000076400007640000000244512267155334013520 00000000000000# # fontconfig/fc-lang/om.orth # # 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. # # Oromo or Galla (OM) # # Orthography taken from http://www.ideography.co.uk/library/pdf/charsets.pdf # 0041-005a # Oromo doesn't use v or z 0061-007a fontconfig-2.11.1/fc-lang/sq.orth0000664000076400007640000000237412267155334013531 00000000000000# # fontconfig/fc-lang/sq.orth # # 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. # # Albanian (SQ) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a 00c7 00cb 00e7 00eb fontconfig-2.11.1/fc-lang/sk.orth0000664000076400007640000000304012267155334013512 00000000000000# # fontconfig/fc-lang/sk.orth # # 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. # # Slovak (SK) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a 00c1 00c4 00c9 00cd 00d3 00d4 #00d6 # evertype.com 00da #00dc # evertype.com 00dd 00e1 00e4 00e9 00ed 00f3 00f4 #00f6 # evertype.com 00fa #00fc # evertype.com 00fd 010c-010d 010e-010f 0139-013a 013d-013e 0147-0148 #0150-0151 # evertype.com 0154-0155 0160-0161 0164-0165 #0170-0171 # evertype.com 017d-017e # fontconfig-2.11.1/fc-lang/bn.orth0000664000076400007640000000300612267155334013476 00000000000000# # fontconfig/fc-lang/bn.orth # # Copyright © 2002 Keith Packard # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Bengali (bn) # # Source: Unicode coverage and notes for Bengali script, Unicode internal # documents 0981-0983 0985-098c 098f-0990 0993-09a8 09aa-09b0 09b2 09b6-09b9 09bc 09be-09c4 09c7-09c8 09cb-09cd # 09d7 # Only used as a part of U+09CC 09dc-09dd 09df # 09e0-09e3 # These are for Sanskrit # 09f0-09f1 # These are for Assamese fontconfig-2.11.1/fc-lang/am.orth0000664000076400007640000000254412267155334013502 00000000000000# # fontconfig/fc-lang/am.orth # # 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. # # Amharic (AM) # # The same as Ethiopic # include gez.orth 1238-123f # xe-xWa 1268-126e # ve-vo 1278-127f # ce-cWa 1298-129f # Ne-NWa 12a8 # ea 12e0-12e8 # Ze-ZWa 1300-1307 # je-jWa 1328-132f # Ce-CWa fontconfig-2.11.1/fc-lang/ku_tr.orth0000664000076400007640000000264312267155334014231 00000000000000# # fontconfig/fc-lang/ku_tr.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Kurdish in Turkey (ku-TR) # # This is based on the commonly used "Hawar" alphabet # # Sources: # * http://www.omniglot.com/writing/kurdish.htm # * http://www.kurdishacademy.org/?q=node/145 # 0041-005A 0061-007A 00C7 00CA 00CE 00DB 00E7 00EA 00EE 00FB 015E-015F fontconfig-2.11.1/fc-lang/mo.orth0000664000076400007640000000252212267155334013514 00000000000000# # fontconfig/fc-lang/mo.orth # # 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. # # Moldavian (MO) 0041-005a 0061-007a 00c2 00ce 00e2 00ee 0102-0103 0218-021b # Comma below forms (preferred over cedilla) 0401 0410-044f 0451 #2019-201a # single quotes #201d-201e # double quotes fontconfig-2.11.1/fc-lang/ta.orth0000664000076400007640000000273312267155334013511 00000000000000# # fontconfig/fc-lang/ta.orth # # 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. # # Tamil (TA) # # Taken from the Unicode coverage of this language # # updates from Jungshik Shin # #0b82 # not present in many Tamil fonts 0b83 0b85-0b8a 0b8e-0b90 0b92-0b95 0b99-0b9a 0b9c 0b9e-0b9f 0ba3-0ba4 0ba8-0baa 0bae-0bb5 0bb7-0bb9 0bbe-0bc2 0bc6-0bc8 0bca-0bcd 0bd7 #0be7-0bf2 # Tamil digits and numbers fontconfig-2.11.1/fc-lang/ha.orth0000664000076400007640000000244712267155334013477 00000000000000# # fontconfig/fc-lang/ha.orth # # 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. # # Hausa (HA) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 0181 0253 018a 0257 0198-0199 01b3 # used in Niger 01b4 # used in Niger fontconfig-2.11.1/fc-lang/es.orth0000664000076400007640000000375612267155334013522 00000000000000# # fontconfig/fc-lang/es.orth # # 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. # # Spanish (ES) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a #00A1 # INVERTED EXCLAMATION MARK #00BF # INVERTED QUESTION MARK 00C1 # LATIN CAPITAL LETTER A WITH ACUTE #00C7 # LATIN CAPITAL LETTER C WITH CEDILLA important @eki.ee 00C9 # LATIN CAPITAL LETTER E WITH ACUTE 00CD # LATIN CAPITAL LETTER I WITH ACUTE 00D1 # LATIN CAPITAL LETTER N WITH TILDE 00D3 # LATIN CAPITAL LETTER O WITH ACUTE 00DA # LATIN CAPITAL LETTER U WITH ACUTE 00DC # LATIN CAPITAL LETTER U WITH DIAERESIS 00E1 # LATIN SMALL LETTER A WITH ACUTE #00E7 # LATIN SMALL LETTER C WITH CEDILLA important @eki.ee 00E9 # LATIN SMALL LETTER E WITH ACUTE 00ED # LATIN SMALL LETTER I WITH ACUTE 00F1 # LATIN SMALL LETTER N WITH TILDE 00F3 # LATIN SMALL LETTER O WITH ACUTE 00FA # LATIN SMALL LETTER U WITH ACUTE 00FC # LATIN SMALL LETTER U WITH DIAERESIS # fontconfig-2.11.1/fc-lang/ht.orth0000664000076400007640000000255212267155334013517 00000000000000# # fontconfig/fc-lang/ht.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Haitian/Haitian Creole (ht) # # Sources: # * http://www.omniglot.com/writing/haitiancreole.htm # * http://www.lecorde.com/creole/kreyol/index.php?page=Pronunciation # 0041-005A 0061-007A 00C8 00D2 00E8 00F2 fontconfig-2.11.1/fc-lang/su.orth0000664000076400007640000000247512267155334013537 00000000000000# # fontconfig/fc-lang/su.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Sundanese (su) # # Sources: # * http://en.wikipedia.org/wiki/Sundanese_language # * http://www.omniglot.com/writing/sundanese.php # 0041-005A 0061-007A 00C9 00E9 fontconfig-2.11.1/fc-lang/bg.orth0000664000076400007640000000325712267155334013477 00000000000000# # fontconfig/fc-lang/bg.orth # # 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. # # Bulgarian (BG) # # Sources: # www.evertype.com # www.eki.ee/letter # #0400 # CYRILLIC CAPITAL IE WITH GRAVE evertype.com #040d # CYRILLIC CAPITAL I WITH GRAVE evertype.com 0410-042a 042c 042e-042f 0430-044a 044c 044e-044f #0450 # CYRILLIC SMALL IE WITH GRAVE evertype.com #045d # CYRILLIC SMALL I WITH GRAVE evertype.com #0462 # CYRILLIC CAPITAL LETTER YAT evertype.com #0463 # CYRILLIC SMALL LETTER YAT evertype.com #046A # CYRILLIC CAPITAL LETTER BIG YUS evertype.com #046B # CYRILLIC SMALL LETTER BIG YUS evertype.com fontconfig-2.11.1/fc-lang/ik.orth0000664000076400007640000000334012267155334013503 00000000000000# # fontconfig/fc-lang/ik.orth # # 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. # # Coverage taken from TITUS (Thesaurus Indogermanischer Text und # Sprachmaterialien) # # http://titus.uni-frankfurt.de/unicode/alphabet/nslatest.htm # # Inupiaq (Inupiak, Eskimo) (IK) # # I'm making a guess that this is language is set using Cyrillic # 0401 040e 0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041a 041b 041c 041d 041e 041f 0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042a 042b 042c 042d 042e 042f 0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043a 043b 043c 043d 043e 043f 0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044a 044b 044c 044d 044e 044f 0451 045e fontconfig-2.11.1/fc-lang/hy.orth0000664000076400007640000000226212267155334013522 00000000000000# # fontconfig/fc-lang/hy.orth # # 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. # # Armenian (HY) 0531-0556 0561-0587 fontconfig-2.11.1/fc-lang/or.orth0000664000076400007640000000256712267155334013532 00000000000000# # fontconfig/fc-lang/or.orth # # 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. # # Oriya (or) # # Taken from the Unicode coverage of this language # 0b01-0b03 0b05-0b0c 0b0f-0b10 0b13-0b28 0b2a-0b30 0b32-0b33 0b36-0b39 0b3c-0b43 0b47-0b48 0b4b-0b4d 0b56-0b57 0b5c-0b5d 0b5f-0b61 #0b66-0b6f # Digits #0b70 # Symbol fontconfig-2.11.1/fc-lang/lb.orth0000664000076400007640000000317312267155334013501 00000000000000# # fontconfig/fc-lang/lb.orth # # 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. # # Luxembourgish (Letzeburgesch) (LB) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a # # Required characters # 00c4 00e4 00c9 00e9 00cb 00eb 00d6 00f6 00dc 00fc # # Important characters # 00c2 00e2 00c8 00e8 00ca 00ea 00ce 00ee #e006 # LATIN CAPITAL LETTER M WITH CIRCUMFLEX (no UCS) #e007 # LATIN SMALL LETTER M WITH CIRCUMFLEX (no UCS) #e008 # LATIN CAPITAL LETTER N WITH CIRCUMFLEX (no UCS) #e009 # LATIN SMALL LETTER N WITH CIRCUMFLEX (no UCS) 00d4 00f4 00db 00fb 00df fontconfig-2.11.1/fc-lang/fc-lang.c0000664000076400007640000003272712267155334013670 00000000000000/* * fontconfig/fc-lang/fc-lang.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 "fccharset.c" #include "fcstr.c" #include "fcserialize.c" /* * fc-lang * * Read a set of language orthographies and build C declarations for * charsets which can then be used to identify which languages are * supported by a given font. Note that this uses some utilities * from the fontconfig library, so the necessary file is simply * included in this compilation. A couple of extra utility * functions are also needed in slightly modified form */ FcPrivate void FcCacheObjectReference (void *object FC_UNUSED) { } FcPrivate void FcCacheObjectDereference (void *object FC_UNUSED) { } FcPrivate FcChar8 * FcLangNormalize (const FcChar8 *lang FC_UNUSED) { return NULL; } int FcDebugVal; FcChar8 * FcConfigHome (void) { return (FcChar8 *) getenv ("HOME"); } static void fatal (const char *file, int lineno, const char *msg) { if (lineno) fprintf (stderr, "%s:%d: %s\n", file, lineno, msg); else fprintf (stderr, "%s: %s\n", file, msg); exit (1); } static char * get_line (FILE *f, char *buf, int *lineno) { char *hash; char *line; int end; next: line = buf; if (!fgets (line, 1024, f)) return 0; ++(*lineno); hash = strchr (line, '#'); if (hash) *hash = '\0'; while (line[0] && isspace (line[0])) line++; end = strlen (line); while (end > 0 && isspace (line[end-1])) line[--end] = '\0'; if (line[0] == '\0' || line[0] == '\n' || line[0] == '\r') goto next; return line; } static char *dir = 0; static FILE * scanopen (char *file) { FILE *f; f = fopen (file, "r"); if (!f && dir) { char path[1024]; strcpy (path, dir); strcat (path, "/"); strcat (path, file); f = fopen (path, "r"); } return f; } /* * build a single charset from a source file * * The file format is quite simple, either * a single hex value or a pair separated with a dash * * Comments begin with '#' */ static FcCharSet * scan (FILE *f, char *file, FcCharSetFreezer *freezer) { FcCharSet *c = 0; FcCharSet *n; FcBool del; int start, end, ucs4; char buf[1024]; char *line; int lineno = 0; while ((line = get_line (f, buf, &lineno))) { if (!strncmp (line, "include", 7)) { FILE *included_f; char *included_file; included_file = strchr (line, ' '); if (!included_file) fatal (file, lineno, "invalid syntax, expected: include filename"); while (isspace(*included_file)) included_file++; included_f = scanopen (included_file); if (!included_f) fatal (included_file, 0, "can't open"); n = scan (included_f, included_file, freezer); fclose (included_f); if (!c) c = FcCharSetCreate (); if (!FcCharSetMerge (c, n, NULL)) fatal (file, lineno, "out of memory"); FcCharSetDestroy (n); continue; } del = FcFalse; if (line[0] == '-') { del = FcTrue; line++; } if (strchr (line, '-')) { if (sscanf (line, "%x-%x", &start, &end) != 2) fatal (file, lineno, "parse error"); } else { if (sscanf (line, "%x", &start) != 1) fatal (file, lineno, "parse error"); end = start; } if (!c) c = FcCharSetCreate (); for (ucs4 = start; ucs4 <= end; ucs4++) { if (!((del ? FcCharSetDelChar : FcCharSetAddChar) (c, ucs4))) fatal (file, lineno, "out of memory"); } } n = (FcCharSet *) FcCharSetFreeze (freezer, c); FcCharSetDestroy (c); return n; } /* * Convert a file name into a name suitable for C declarations */ static char * get_name (char *file) { char *name; char *dot; dot = strchr (file, '.'); if (!dot) dot = file + strlen(file); name = malloc (dot - file + 1); strncpy (name, file, dot - file); name[dot-file] = '\0'; return name; } /* * Convert a C name into a language name */ static char * get_lang (char *name) { char *lang = malloc (strlen (name) + 1); char *l = lang; char c; while ((c = *name++)) { if (isupper ((int) (unsigned char) c)) c = tolower ((int) (unsigned char) c); if (c == '_') c = '-'; if (c == ' ') continue; *l++ = c; } *l++ = '\0'; return lang; } typedef struct _Entry { int id; char *file; } Entry; static int compare (const void *a, const void *b) { const Entry *as = a, *bs = b; return FcStrCmpIgnoreCase ((const FcChar8 *) as->file, (const FcChar8 *) bs->file); } #define MAX_LANG 1024 #define MAX_LANG_SET_MAP ((MAX_LANG + 31) / 32) #define BitSet(map, i) ((map)[(entries[i].id)>>5] |= ((FcChar32) 1 << ((entries[i].id) & 0x1f))) int main (int argc FC_UNUSED, char **argv) { static Entry entries[MAX_LANG + 1]; static FcCharSet *sets[MAX_LANG]; static int duplicate[MAX_LANG]; static int country[MAX_LANG]; static char *names[MAX_LANG]; static char *langs[MAX_LANG]; static int off[MAX_LANG]; FILE *f; int ncountry = 0; int i = 0; int nsets = 0; int argi; FcCharLeaf **leaves; int total_leaves = 0; int l, sl, tl, tn; static char line[1024]; static FcChar32 map[MAX_LANG_SET_MAP]; int num_lang_set_map; int setRangeStart[26]; int setRangeEnd[26]; FcChar8 setRangeChar; FcCharSetFreezer *freezer; freezer = FcCharSetFreezerCreate (); if (!freezer) fatal (argv[0], 0, "out of memory"); argi = 1; while (argv[argi]) { if (!strcmp (argv[argi], "-d")) { argi++; dir = argv[argi++]; continue; } if (i == MAX_LANG) fatal (argv[0], 0, "Too many languages"); entries[i].id = i; entries[i].file = argv[argi++]; i++; } entries[i].file = 0; qsort (entries, i, sizeof (Entry), compare); i = 0; while (entries[i].file) { f = scanopen (entries[i].file); if (!f) fatal (entries[i].file, 0, strerror (errno)); sets[i] = scan (f, entries[i].file, freezer); names[i] = get_name (entries[i].file); langs[i] = get_lang(names[i]); if (strchr (langs[i], '-')) country[ncountry++] = i; total_leaves += sets[i]->num; i++; fclose (f); } nsets = i; sets[i] = 0; leaves = malloc (total_leaves * sizeof (FcCharLeaf *)); tl = 0; /* * Find unique leaves */ for (i = 0; sets[i]; i++) { for (sl = 0; sl < sets[i]->num; sl++) { for (l = 0; l < tl; l++) if (leaves[l] == FcCharSetLeaf(sets[i], sl)) break; if (l == tl) leaves[tl++] = FcCharSetLeaf(sets[i], sl); } } /* * Scan the input until the marker is found */ while (fgets (line, sizeof (line), stdin)) { if (!strncmp (line, "@@@", 3)) break; fputs (line, stdout); } printf ("/* total size: %d unique leaves: %d */\n\n", total_leaves, tl); /* * Find duplicate charsets */ duplicate[0] = -1; for (i = 1; sets[i]; i++) { int j; duplicate[i] = -1; for (j = 0; j < i; j++) if (sets[j] == sets[i]) { duplicate[i] = j; break; } } tn = 0; for (i = 0; sets[i]; i++) { if (duplicate[i] >= 0) continue; off[i] = tn; tn += sets[i]->num; } printf ("#define LEAF0 (%d * sizeof (FcLangCharSet))\n", nsets); printf ("#define OFF0 (LEAF0 + %d * sizeof (FcCharLeaf))\n", tl); printf ("#define NUM0 (OFF0 + %d * sizeof (uintptr_t))\n", tn); printf ("#define SET(n) (n * sizeof (FcLangCharSet) + offsetof (FcLangCharSet, charset))\n"); printf ("#define OFF(s,o) (OFF0 + o * sizeof (uintptr_t) - SET(s))\n"); printf ("#define NUM(s,n) (NUM0 + n * sizeof (FcChar16) - SET(s))\n"); printf ("#define LEAF(o,l) (LEAF0 + l * sizeof (FcCharLeaf) - (OFF0 + o * sizeof (intptr_t)))\n"); printf ("#define fcLangCharSets (fcLangData.langCharSets)\n"); printf ("#define fcLangCharSetIndices (fcLangData.langIndices)\n"); printf ("#define fcLangCharSetIndicesInv (fcLangData.langIndicesInv)\n"); printf ("\n"); printf ("static const struct {\n" " FcLangCharSet langCharSets[%d];\n" " FcCharLeaf leaves[%d];\n" " uintptr_t leaf_offsets[%d];\n" " FcChar16 numbers[%d];\n" " FcChar%s langIndices[%d];\n" " FcChar%s langIndicesInv[%d];\n" "} fcLangData = {\n", nsets, tl, tn, tn, nsets < 256 ? "8 " : "16", nsets, nsets < 256 ? "8 " : "16", nsets); /* * Dump sets */ printf ("{\n"); for (i = 0; sets[i]; i++) { int j = duplicate[i]; if (j < 0) j = i; printf (" { \"%s\", " " { FC_REF_CONSTANT, %d, OFF(%d,%d), NUM(%d,%d) } }, /* %d */\n", langs[i], sets[j]->num, i, off[j], i, off[j], i); } printf ("},\n"); /* * Dump leaves */ printf ("{\n"); for (l = 0; l < tl; l++) { printf (" { { /* %d */", l); for (i = 0; i < 256/32; i++) { if (i % 4 == 0) printf ("\n "); printf (" 0x%08x,", leaves[l]->map[i]); } printf ("\n } },\n"); } printf ("},\n"); /* * Dump leaves */ printf ("{\n"); for (i = 0; sets[i]; i++) { int n; if (duplicate[i] >= 0) continue; printf (" /* %s */\n", names[i]); for (n = 0; n < sets[i]->num; n++) { if (n % 4 == 0) printf (" "); for (l = 0; l < tl; l++) if (leaves[l] == FcCharSetLeaf(sets[i], n)) break; if (l == tl) fatal (names[i], 0, "can't find leaf"); printf (" LEAF(%3d,%3d),", off[i], l); if (n % 4 == 3) printf ("\n"); } if (n % 4 != 0) printf ("\n"); } printf ("},\n"); printf ("{\n"); for (i = 0; sets[i]; i++) { int n; if (duplicate[i] >= 0) continue; printf (" /* %s */\n", names[i]); for (n = 0; n < sets[i]->num; n++) { if (n % 8 == 0) printf (" "); printf (" 0x%04x,", FcCharSetNumbers (sets[i])[n]); if (n % 8 == 7) printf ("\n"); } if (n % 8 != 0) printf ("\n"); } printf ("},\n"); /* langIndices */ printf ("{\n"); for (i = 0; sets[i]; i++) { printf (" %d, /* %s */\n", entries[i].id, names[i]); } printf ("},\n"); /* langIndicesInv */ printf ("{\n"); { static int entries_inv[MAX_LANG]; for (i = 0; sets[i]; i++) entries_inv[entries[i].id] = i; for (i = 0; sets[i]; i++) printf (" %d, /* %s */\n", entries_inv[i], names[entries_inv[i]]); } printf ("}\n"); printf ("};\n\n"); printf ("#define NUM_LANG_CHAR_SET %d\n", i); num_lang_set_map = (i + 31) / 32; printf ("#define NUM_LANG_SET_MAP %d\n", num_lang_set_map); /* * Dump indices with country codes */ if (ncountry) { int c; int ncountry_ent = 0; printf ("\n"); printf ("static const FcChar32 fcLangCountrySets[][NUM_LANG_SET_MAP] = {\n"); for (c = 0; c < ncountry; c++) { i = country[c]; if (i >= 0) { int lang = strchr (langs[i], '-') - langs[i]; int d, k; for (k = 0; k < num_lang_set_map; k++) map[k] = 0; BitSet (map, i); for (d = c + 1; d < ncountry; d++) { int j = country[d]; if (j >= 0 && !strncmp (langs[j], langs[i], lang + 1)) { BitSet(map, j); country[d] = -1; } } printf (" {"); for (k = 0; k < num_lang_set_map; k++) printf (" 0x%08x,", map[k]); printf (" }, /* %*.*s */\n", lang, lang, langs[i]); ++ncountry_ent; } } printf ("};\n\n"); printf ("#define NUM_COUNTRY_SET %d\n", ncountry_ent); } /* * Find ranges for each letter for faster searching */ setRangeChar = 'a'; memset(setRangeStart, '\0', sizeof (setRangeStart)); memset(setRangeEnd, '\0', sizeof (setRangeEnd)); for (i = 0; sets[i]; i++) { char c = names[i][0]; while (setRangeChar <= c && c <= 'z') setRangeStart[setRangeChar++ - 'a'] = i; } for (setRangeChar = 'a'; setRangeChar < 'z'; setRangeChar++) setRangeEnd[setRangeChar - 'a'] = setRangeStart[setRangeChar+1-'a'] - 1; setRangeEnd[setRangeChar - 'a'] = i - 1; /* * Dump sets start/finish for the fastpath */ printf ("\n"); printf ("static const FcLangCharSetRange fcLangCharSetRanges[] = {\n"); printf ("\n"); for (setRangeChar = 'a'; setRangeChar <= 'z' ; setRangeChar++) { printf (" { %d, %d }, /* %c */\n", setRangeStart[setRangeChar - 'a'], setRangeEnd[setRangeChar - 'a'], setRangeChar); } printf ("};\n\n"); while (fgets (line, sizeof (line), stdin)) fputs (line, stdout); fflush (stdout); exit (ferror (stdout)); } fontconfig-2.11.1/fc-lang/sah.orth0000664000076400007640000000337512267155334013663 00000000000000# # fontconfig/fc-lang/sah.orth # # 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. # # Coverage taken from TITUS (Thesaurus Indogermanischer Text und # Sprachmaterialien) # # http://titus.uni-frankfurt.de/unicode/alphabet/nslatest.htm # # Yakut (SAH) # 0401 0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041a 041b 041c 041d 041e 041f 0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042a 042b 042c 042d 042e 042f 0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043a 043b 043c 043d 043e 043f 0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044a 044b 044c 044d 044e 044f 0451 #0472 # CYRILLIC CAPITAL LETTER FITA #0473 # CYRILLIC SMALL LETTER FITA 0494 0495 04a4 04a5 04ae 04af 04ba 04bb 04d8 04d9 fontconfig-2.11.1/fc-lang/gez.orth0000664000076400007640000000356412267155334013675 00000000000000# # fontconfig/fc-lang/gez.orth # # 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. # # Ethiopic (Geez) (eth) # # Taken from Unicode coverage (1200-137f) # # Sylables 1200-1206 # he-ho 1208-1216 # le-Ho, skip HWa 1218-1226 # me-`so, skip `sWa 1228-1230 # re-sWa 1238-1246 # re-qo 1248 # qWe 124a-124d # qWi-qW 1260-1267 # be-bWa 1270-1277 # te-to 1280-1286 # `he-`ho 1288 # hWe 128a-128d # hWi-hW 1290-1297 # ne-nWa 12a0-12a7 # a-o, skip ea 12a8-12ae # ke-ko 12b0 # kWe 12b2-12b5 # kWi-kW 12c8-12ce # we-wo 12d0-12d6 # `e-`o 12d8-12df # ze-zWa 12e8-12ee # ye-yo 12f0-12f7 # de-dWa 1308-130e # ge-go 1310 # gWe 1312-1315 # gWi-gW 1320-1328 # Te-TWa 1330-1346 # Pe-`So 1348-1356 # fe-po, skip pWa, rYa, mYa, fYa #1361-1368 # punctuation #1369-1371 # digits #1372-137c # numbers # fontconfig-2.11.1/fc-lang/ln.orth0000664000076400007640000000267712267155334013525 00000000000000# # fontconfig/fc-lang/ln.orth # # Copyright © 2006 Danis Jacquerye # # 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. # # Lingala (LN) 0041-005a # r used in borrowed words, x and q unused. 0061-007a 00c1-00c2 # tonal orthography 00c9-00ca 00cd-00ce 00d3-00d4 00da-00db 00e1-00e2 00e9-00ea 00ed-00ee 00f3-00f4 00fa-00fb 011a-011b 0186 0190 0254 025b 0301-0302 # combining diacritics for accented 0186, 0190, 0254, 025b 030c fontconfig-2.11.1/fc-lang/te.orth0000664000076400007640000000252512267155334013514 00000000000000# # fontconfig/fc-lang/te.orth # # 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. # # Telugu (te) # # Taken from the Unicode coverage of this language # 0c01-0c03 0c05-0c0c 0c0e-0c10 0c12-0c28 0c2a-0c33 0c35-0c39 0c3e-0c44 0c46-0c48 0c4a-0c4d 0c55-0c56 0c60-0c61 #0c66-0c6f # Digits fontconfig-2.11.1/fc-lang/ff.orth0000664000076400007640000000243012267155334013472 00000000000000# # fontconfig/fc-lang/ff.orth # # 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. # # Fulah (Fula) (ff) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 0181 0253 018a 0257 014a 014b 019d 0272 01b3-01b4 fontconfig-2.11.1/fc-lang/bua.orth0000664000076400007640000000343512267155334013654 00000000000000# # fontconfig/fc-lang/bua.orth # # 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. # # Coverage taken from TITUS (Thesaurus Indogermanischer Text und # Sprachmaterialien) # # http://titus.uni-frankfurt.de/unicode/alphabet/nslatest.htm # # Buriat (Buryat) (BUA) # 0401 0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041a 041b 041c 041d 041e 041f 0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042a 042b 042c 042d 042e 042f 0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043a 043b 043c 043d 043e 043f 0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044a 044b 044c 044d 044e 044f 0451 #0472 # CYRILLIC CAPITAL LETTER FITA (Historic cyrillic letter) #0473 # CYRILLIC SMALL LETTER FITA (Historic cyrillic letter) 04ae 04af 04ba 04bb fontconfig-2.11.1/fc-lang/ga.orth0000664000076400007640000000721012267155334013467 00000000000000# # fontconfig/fc-lang/ga.orth # # 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. # # Irish (GA) # # Sources: # www.evertype.com # www.eki.ee/letter # # The orthography from evertype.com includes the lenited consonants # as indicated with seimhiu (dot above). I've included those here # even though they're not present in the orthography listed from eki.ee; # eki.ee mentions that the seimhiu form is still written but is # often written by a following h instead. # 0041-005a 0061-007a #00C0 # LATIN CAPITAL LETTER A WITH GRAVE evertype.com 00C1 # LATIN CAPITAL LETTER A WITH ACUTE #00C7 # LATIN CAPITAL LETTER C WITH CEDILLA evertype.com #00C8 # LATIN CAPITAL LETTER E WITH GRAVE evertype.com 00C9 # LATIN CAPITAL LETTER E WITH ACUTE #00CC # LATIN CAPITAL LETTER I WITH GRAVE evertype.com 00CD # LATIN CAPITAL LETTER I WITH ACUTE #00D2 # LATIN CAPITAL LETTER O WITH GRAVE evertype.com 00D3 # LATIN CAPITAL LETTER O WITH ACUTE #00D9 # LATIN CAPITAL LETTER U WITH GRAVE evertype.com 00DA # LATIN CAPITAL LETTER U WITH ACUTE #00E0 # LATIN SMALL LETTER A WITH GRAVE evertype.com 00E1 # LATIN SMALL LETTER A WITH ACUTE #00E7 # LATIN SMALL LETTER C WITH CEDILLA evertype.com #00E8 # LATIN SMALL LETTER E WITH GRAVE evertype.com 00E9 # LATIN SMALL LETTER E WITH ACUTE #00EC # LATIN SMALL LETTER I WITH GRAVE 00ED # LATIN SMALL LETTER I WITH ACUTE #00F2 # LATIN SMALL LETTER O WITH GRAVE evertype.com 00F3 # LATIN SMALL LETTER O WITH ACUTE #00F9 # LATIN SMALL LETTER U WITH GRAVE evertype.com 00FA # LATIN SMALL LETTER U WITH ACUTE 010A # LATIN CAPITAL LETTER C WITH DOT ABOVE 010B # LATIN SMALL LETTER C WITH DOT ABOVE 0120 # LATIN CAPITAL LETTER G WITH DOT ABOVE 0121 # LATIN SMALL LETTER G WITH DOT ABOVE #017F # LATIN SMALL LETTER LONG S evertype.com #027C # LATIN SMALL LETTER R WITH LONG LEG evertype.com 1E02 # LATIN CAPITAL LETTER B WITH DOT ABOVE 1E03 # LATIN SMALL LETTER B WITH DOT ABOVE 1E0A # LATIN CAPITAL LETTER D WITH DOT ABOVE 1E0B # LATIN SMALL LETTER D WITH DOT ABOVE 1E1E # LATIN CAPITAL LETTER F WITH DOT ABOVE 1E1F # LATIN SMALL LETTER F WITH DOT ABOVE 1E40 # LATIN CAPITAL LETTER M WITH DOT ABOVE 1E41 # LATIN SMALL LETTER M WITH DOT ABOVE 1E56 # LATIN CAPITAL LETTER P WITH DOT ABOVE 1E57 # LATIN SMALL LETTER P WITH DOT ABOVE 1E60 # LATIN CAPITAL LETTER S WITH DOT ABOVE 1E61 # LATIN SMALL LETTER S WITH DOT ABOVE 1E6A # LATIN CAPITAL LETTER T WITH DOT ABOVE 1E6B # LATIN SMALL LETTER T WITH DOT ABOVE #1E9B # LATIN SMALL LETTER LONG S WITH DOT ABOVE evertype.com #1680-169c # Ogham #2018-2019 # single quotes #201c-201d # double quotes #204a # tironian sign et fontconfig-2.11.1/fc-lang/ar.orth0000664000076400007640000000316012267155334013502 00000000000000# # fontconfig/fc-lang/ar.orth # # Copyright © 2002 Keith Packard # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The 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. # # Arabic (ar) # # We are assuming that: # * Most fonts that claim to support an Arabic letter actually do so; # * Most modern text rendering software use OpenType tables, instead of # directly using presentation forms. # * Some good Arabic fonts do not support codepoints for Arabic presentation # forms. # Thus, we are switching to general forms of Arabic letters. # # General forms: 0621-063a 0641-064a # Presentations forms: # fe80-fefc fontconfig-2.11.1/fc-lang/sw.orth0000664000076400007640000000250212267155334013530 00000000000000# # fontconfig/fc-lang/sw.orth # # 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. # # Swahili (SW) # # Orthography taken from http://www.ideography.co.uk/library/pdf/charsets.pdf # 0041-005a # Swahili doesn't use f, q or x and uses r only for loan words 0061-007a fontconfig-2.11.1/fc-lang/cu.orth0000664000076400007640000000255412267155334013515 00000000000000# # fontconfig/fc-lang/cu.orth # # 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. # # Old Church Slavonic (CU) # # Orthography from http://www.evertype.com/alphabets/old-church-slavonic.pdf # 0401-0402 0405-0406 0408 040b 040d 040f-0418 041a-042c 042e-044c 044e-0450 0452 0455-456 0458 045b 045d 045f-0479 fontconfig-2.11.1/fc-lang/tw.orth0000664000076400007640000000402312267155334013531 00000000000000# # fontconfig/fc-lang/tw.orth # # 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. # # Twi (tw) # # Orthography taken from http://www.ideography.co.uk/library/pdf/charsets.pdf # 0041-005a 0061-007a 00C3 # LATIN CAPITAL LETTER A WITH TILDE 00E3 # LATIN SMALL LETTER A WITH TILDE 00D1 # LATIN CAPITAL LETTER N WITH TILDE 00D5 # LATIN CAPITAL LETTER O WITH TILDE 00F1 # LATIN SMALL LETTER N WITH TILDE 00F5 # LATIN SMALL LETTER O WITH TILDE 0128 # LATIN CAPITAL LETTER I WITH TILDE 0129 # LATIN SMALL LETTER I WITH TILDE 0168 # LATIN CAPITAL LETTER U WITH TILDE 0169 # LATIN SMALL LETTER U WITH TILDE 0186 # LATIN CAPITAL LETTER OPEN O 0254 # LATIN SMALL LETTER OPEN O 0190 # LATIN CAPITAL LETTER OPEN E 025B # LATIN SMALL LETTER OPEN E 0303 # COMBINING TILDE 0306 # COMBINING BREVE (Vrachy) 0329 # COMBINING VERTICAL LINE BELOW 1EBC # LATIN CAPITAL LETTER E WITH TILDE 1EBD # LATIN SMALL LETTER E WITH TILDE 1EF8 # LATIN CAPITAL LETTER Y WITH TILDE 1EF9 # LATIN SMALL LETTER Y WITH TILDE fontconfig-2.11.1/fc-lang/ky.orth0000664000076400007640000000342212267155334013524 00000000000000# # fontconfig/fc-lang/ky.orth # # 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. # # Coverage taken from TITUS (Thesaurus Indogermanischer Text und # Sprachmaterialien) # # http://titus.uni-frankfurt.de/unicode/alphabet/nslatest.htm # # Kirgiz (KY) # 0401 0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041a 041b 041c 041d 041e 041f 0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042a 042b 042c 042d 042e 042f 0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043a 043b 043c 043d 043e 043f 0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044a 044b 044c 044d 044e 044f 0451 #0472 # CYRILLIC CAPITAL LETTER FITA (Historic cyrillic letter) #0473 # CYRILLIC SMALL LETTER FITA (Historic cyrillic letter) 04a2 04a3 04ae 04af fontconfig-2.11.1/fc-lang/lg.orth0000664000076400007640000000257212267155334013510 00000000000000# # fontconfig/fc-lang/lg.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Ganda (lg) # # Sources: # * http://www.buganda.com/luganda.htm # * http://www.omniglot.com/writing/ganda.php # * http://sumale.vjf.cnrs.fr/phono/AfficheTableauOrtho2N.php?choixLangue=luganda # 0041-005A 0061-007A 014A-014B fontconfig-2.11.1/fc-lang/sv.orth0000664000076400007640000000365412267155334013540 00000000000000# # fontconfig/fc-lang/sv.orth # # 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. # # Swedish (SV) # # Sources: # www.evertype.com # www.eki.ee/letter # # evertype.com includes a large number of additional precomposed letters # not marked by eki.ee; I've left those commented out here # 0041-005a 0061-007a #00bb 00c0 00c1 #00c2 #00c3 00c4 00c5 #00c6 #00c7 #00c8 00c9 #00ca 00cb #00cc #00cd #00ce #00cf #00d0 #00d1 #00d2 #00d3 #00d4 00d6 #00d7 #00d8 #00d9 #00da #00db 00dc #00dd 00e0 00e1 #00e2 #00e3 00e4 00e5 #00e6 #00e7 #00e8 00e9 #00ea 00eb #00ec #00ed #00ee #00ef #00f0 #00f1 #00f2 #00f3 #00f4 00f6 #00f8 #00f9 #00fa #00fb 00fc #00fd #0106-0107 # C, c with acute #010c-010d # C, c with caron #0141-0144 # L, l with stroke N, n with acute #0158-015b # R, r with caron S, s with acute #0160-0161 # S, s with caron #2019 # single quote #201d # double quote #203a # angle quote fontconfig-2.11.1/fc-lang/ms.orth0000664000076400007640000000251012267155334013515 00000000000000# # fontconfig/fc-lang/ms.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Malay (ms) # # Sources: # http://www.omniglot.com/writing/malay.htm # * CLDR exemplar set for Malay: # http://unicode.org/cldr/data/common/main/ms.xml # 0041-005A 0061-007A fontconfig-2.11.1/fc-lang/li.orth0000664000076400007640000000274412267155334013513 00000000000000# # fontconfig/fc-lang/li.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Limburgan/Limburger/Limburgish (li) # # Sources: # * http://www.limburgsedialecten.nl/pdf/Spellingbook-def.pdf # * http://li.wikipedia.org/wiki/Wikipedia:Sjpellingssjpiekpagina # # There's also an apostrophe-like character that needs more research. U+02BB? # 0041-005A 0061-007A 00C4 00C8 00CB 00D3 00D6 00E4 00E8 00EB 00F3 00F6 fontconfig-2.11.1/fc-lang/kl.orth0000664000076400007640000000265612267155334013517 00000000000000# # fontconfig/fc-lang/kl.orth # # 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. # # Greenlandic (KL) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a #00ab #00bb 00c1 00c2 00c3 00c5 00c6 #00c9 00ca 00cd 00ce 00d4 00d8 00da 00db 00e1 00e2 00e3 00e5 00e6 #00e9 00ea 00ed 00ee 00f4 00f8 00fa 00fb 0128-0129 0138 0168-0169 #2039-203a # angle quotes fontconfig-2.11.1/fc-lang/bin.orth0000664000076400007640000000444512267155334013657 00000000000000# # fontconfig/fc-lang/bin.orth # # 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. # # Edo or Bini (BIN) # # Orthography from http://www.ideography.co.uk/library/pdf/charsets.pdf # 0041-005a 0061-007a 00C0 # LATIN CAPITAL LETTER A WITH GRAVE 00C1 # LATIN CAPITAL LETTER A WITH ACUTE 00C8 # LATIN CAPITAL LETTER E WITH GRAVE 00C9 # LATIN CAPITAL LETTER E WITH ACUTE 00CC # LATIN CAPITAL LETTER I WITH GRAVE 00CD # LATIN CAPITAL LETTER I WITH ACUTE 00D2 # LATIN CAPITAL LETTER O WITH GRAVE 00D3 # LATIN CAPITAL LETTER O WITH ACUTE 00D9 # LATIN CAPITAL LETTER U WITH GRAVE 00DA # LATIN CAPITAL LETTER U WITH ACUTE 00E0 # LATIN SMALL LETTER A WITH GRAVE 00E1 # LATIN SMALL LETTER A WITH ACUTE 00E8 # LATIN SMALL LETTER E WITH GRAVE 00E9 # LATIN SMALL LETTER E WITH ACUTE 00EC # LATIN SMALL LETTER I WITH GRAVE 00ED # LATIN SMALL LETTER I WITH ACUTE 00F2 # LATIN SMALL LETTER O WITH GRAVE 00F3 # LATIN SMALL LETTER O WITH ACUTE 00F9 # LATIN SMALL LETTER U WITH GRAVE 00FA # LATIN SMALL LETTER U WITH ACUTE 1EB8 # LATIN CAPITAL LETTER E WITH DOT BELOW 1EB9 # LATIN SMALL LETTER E WITH DOT BELOW 1ECC # LATIN CAPITAL LETTER O WITH DOT BELOW 1ECD # LATIN SMALL LETTER O WITH DOT BELOW 0300 # COMBINING GRAVE ACCENT (Varia) 0301 # COMBINING ACUTE ACCENT (Oxia, Tonos) fontconfig-2.11.1/fc-lang/br.orth0000664000076400007640000000363412267155334013511 00000000000000# # fontconfig/fc-lang/br.orth # # 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. # # Breton (BR) # # Sources: # www.evertype.com # www.eki.ee/letter # #0027 0041-005a 0061-007a #00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK * #00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK * 00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX 00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX 00D1 # LATIN CAPITAL LETTER N WITH TILDE 00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX eki.ee 00D9 # LATIN CAPITAL LETTER U WITH GRAVE 00DC # LATIN CAPITAL LETTER U WITH DIAERESIS 00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX 00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX 00F1 # LATIN SMALL LETTER N WITH TILDE 00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX eki.ee 00F9 # LATIN SMALL LETTER U WITH GRAVE 00FC # LATIN SMALL LETTER U WITH DIAERESIS #2019-201a # single quote and comma fontconfig-2.11.1/fc-lang/to.orth0000664000076400007640000000234412267155334013525 00000000000000# # fontconfig/fc-lang/to.orth # # 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. # # Tonga (TO) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 02bb fontconfig-2.11.1/fc-lang/sh.orth0000664000076400007640000000274612267155334013523 00000000000000# # fontconfig/fc-lang/sh.orth # # Copyright © 2002 Keith Packard # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Serbo-Croatian (sh) # # This tag is deprecated since 2000 in ISO 639-1 and BCP 47. It is kept here # for backward compatibility. Since ISO 639-3 defines this as a # macrolanguage consisting of Bosnian, Croatian, and Serbian, we union # those three. include ba.orth include hr.orth include sr.orth fontconfig-2.11.1/fc-lang/smj.orth0000664000076400007640000000241612267155334013674 00000000000000# # fontconfig/fc-lang/smj.orth # # 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. # # Lule Sámi (SMJ) # # Orthography from http://www.eki.ee/letter # 0041-005a 0061-007a 00c1 00e1 00c4 00e4 00c5 00e5 00d1 00f1 fontconfig-2.11.1/fc-lang/tn.orth0000664000076400007640000000252512267155334013525 00000000000000# # fontconfig/fc-lang/tn.orth # # 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. # # Tswana (TN) # # Orthography from http://www.eki.ee/letter # and http://www.inference.phy.cam.ac.uk/dasher/download/alphabets/alphabet.Tswana.xml # 0041-005a 0061-007a 00ca 00ea 00d4 00f4 0160-0161 fontconfig-2.11.1/fc-lang/ce.orth0000664000076400007640000000320612267155334013470 00000000000000# # fontconfig/fc-lang/ce.orth # # 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. # # Coverage taken from TITUS (Thesaurus Indogermanischer Text und # Sprachmaterialien) # # http://titus.uni-frankfurt.de/unicode/alphabet/nslatest.htm # # Chechen (CE) # 0401 0406 0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041a 041b 041c 041d 041e 041f 0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042a 042b 042c 042d 042e 042f 0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043a 043b 043c 043d 043e 043f 0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044a 044b 044c 044d 044e 044f 0451 fontconfig-2.11.1/fc-lang/quz.orth0000664000076400007640000000260012267155334013715 00000000000000# # fontconfig/fc-lang/quz.orth # # Copyright © 2009 Roozbeh Pournader # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The author(s) make(s) no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Cusco Quechua (quz) # # Sources: # * http://en.wikipedia.org/wiki/Quechua_alphabet # * http://www.omniglot.com/writing/quechua.htm # # Some basic Latin letters are not used, based on dialect # 0041-005A 0061-007A 00D1 00F1 02C8 fontconfig-2.11.1/fc-lang/sco.orth0000664000076400007640000000240712267155334013667 00000000000000# # fontconfig/fc-lang/sco.orth # # 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. # # Scots (CU) # # Orthography from http://www.evertype.com/alphabets/scots.pdf # 0041-005a 0061-007a 01b7 021c-021d 0292 fontconfig-2.11.1/fc-lang/ca.orth0000664000076400007640000000452312267155334013467 00000000000000# # fontconfig/fc-lang/ca.orth # # 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. # # Catalan (CA) # # Sources: # www.evertype.com # www.eki.ee/letter # 0041-005a 0061-007a #00B7 # MIDDLE DOT 00C0 # LATIN CAPITAL LETTER A WITH GRAVE 00C7 # LATIN CAPITAL LETTER C WITH CEDILLA 00C8 # LATIN CAPITAL LETTER E WITH GRAVE 00C9 # LATIN CAPITAL LETTER E WITH ACUTE 00CD # LATIN CAPITAL LETTER I WITH ACUTE 00CF # LATIN CAPITAL LETTER I WITH DIAERESIS #00D1 # LATIN CAPITAL LETTER N WITH TILDE "important" @ eki.ee 00D2 # LATIN CAPITAL LETTER O WITH GRAVE 00D3 # LATIN CAPITAL LETTER O WITH ACUTE 00DA # LATIN CAPITAL LETTER U WITH ACUTE 00DC # LATIN CAPITAL LETTER U WITH DIAERESIS 00E0 # LATIN SMALL LETTER A WITH GRAVE 00E7 # LATIN SMALL LETTER C WITH CEDILLA 00E8 # LATIN SMALL LETTER E WITH GRAVE 00E9 # LATIN SMALL LETTER E WITH ACUTE 00ED # LATIN SMALL LETTER I WITH ACUTE 00EF # LATIN SMALL LETTER I WITH DIAERESIS #00F1 # LATIN SMALL LETTER N WITH TILDE "important" @ eki.ee 00F2 # LATIN SMALL LETTER O WITH GRAVE 00F3 # LATIN SMALL LETTER O WITH ACUTE 00FA # LATIN SMALL LETTER U WITH ACUTE 00FC # LATIN SMALL LETTER U WITH DIAERESIS 013F # LATIN CAPITAL LETTER L WITH MIDDLE DOT 0140 # LATIN SMALL LETTER L WITH MIDDLE DOT #2018-2019 # single quotes #201c-201d # double quotes fontconfig-2.11.1/m4/0000775000076400007640000000000012313745411011264 500000000000000fontconfig-2.11.1/m4/ax_cc_for_build.m40000664000076400007640000000570612267155334014567 00000000000000# =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_cc_for_build.html # =========================================================================== # # SYNOPSIS # # AX_CC_FOR_BUILD # # DESCRIPTION # # Find a build-time compiler. Sets CC_FOR_BUILD and EXEEXT_FOR_BUILD. # # LICENSE # # Copyright (c) 2010 Reuben Thomas # Copyright (c) 1999 Richard Henderson # # 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 3 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. #serial 2 dnl Get a default for CC_FOR_BUILD to put into Makefile. AC_DEFUN([AX_CC_FOR_BUILD], [# Put a plausible default for CC_FOR_BUILD in Makefile. if test -z "$CC_FOR_BUILD"; then if test "x$cross_compiling" = "xno"; then CC_FOR_BUILD='$(CC)' else CC_FOR_BUILD=gcc fi fi AC_SUBST(CC_FOR_BUILD) # Also set EXEEXT_FOR_BUILD. if test "x$cross_compiling" = "xno"; then EXEEXT_FOR_BUILD='$(EXEEXT)' else AC_CACHE_CHECK([for build system executable suffix], bfd_cv_build_exeext, [rm -f conftest* echo 'int main () { return 0; }' > conftest.c bfd_cv_build_exeext= ${CC_FOR_BUILD} -o conftest conftest.c 1>&5 2>&5 for file in conftest.*; do case $file in *.c | *.o | *.obj | *.ilk | *.pdb) ;; *) bfd_cv_build_exeext=`echo $file | sed -e s/conftest//` ;; esac done rm -f conftest* test x"${bfd_cv_build_exeext}" = x && bfd_cv_build_exeext=no]) EXEEXT_FOR_BUILD="" test x"${bfd_cv_build_exeext}" != xno && EXEEXT_FOR_BUILD=${bfd_cv_build_exeext} fi AC_SUBST(EXEEXT_FOR_BUILD)])dnl fontconfig-2.11.1/m4/ax_create_stdint_h.m40000664000076400007640000005640112267155334015312 00000000000000dnl @synopsis AX_CREATE_STDINT_H [( HEADER-TO-GENERATE [, HEDERS-TO-CHECK])] dnl dnl the "ISO C9X: 7.18 Integer types " section requires the dnl existence of an include file that defines a set of dnl typedefs, especially uint8_t,int32_t,uintptr_t. Many older dnl installations will not provide this file, but some will have the dnl very same definitions in . In other enviroments we can dnl use the inet-types in which would define the typedefs dnl int8_t and u_int8_t respectivly. dnl dnl This macros will create a local "_stdint.h" or the headerfile given dnl as an argument. In many cases that file will just "#include dnl " or "#include ", while in other environments dnl it will provide the set of basic 'stdint's definitions/typedefs: dnl dnl int8_t,uint8_t,int16_t,uint16_t,int32_t,uint32_t,intptr_t,uintptr_t dnl int_least32_t.. int_fast32_t.. intmax_t dnl dnl which may or may not rely on the definitions of other files, or dnl using the AC_CHECK_SIZEOF macro to determine the actual sizeof each dnl type. dnl dnl if your header files require the stdint-types you will want to dnl create an installable file mylib-int.h that all your other dnl installable header may include. So if you have a library package dnl named "mylib", just use dnl dnl AX_CREATE_STDINT_H(mylib-int.h) dnl dnl in configure.ac and go to install that very header file in dnl Makefile.am along with the other headers (mylib.h) - and the dnl mylib-specific headers can simply use "#include " to dnl obtain the stdint-types. dnl dnl Remember, if the system already had a valid , the dnl generated file will include it directly. No need for fuzzy dnl HAVE_STDINT_H things... (oops, GCC 4.2.x has deliberatly dnl disabled its stdint.h for non-c99 compilation and the c99-mode dnl is not the default. Therefore this macro will not use the dnl compiler's stdint.h - please complain to the GCC developers). dnl dnl @category C dnl @author Guido U. Draheim dnl @version 2003-12-07 dnl @license GPLWithACException AC_DEFUN([AX_CHECK_DATA_MODEL],[ AC_CHECK_SIZEOF(char) AC_CHECK_SIZEOF(short) AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(long) AC_CHECK_SIZEOF(void*) ac_cv_char_data_model="" ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_char" ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_short" ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_int" ac_cv_long_data_model="" ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_int" ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_long" ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_voidp" AC_MSG_CHECKING([data model]) case "$ac_cv_char_data_model/$ac_cv_long_data_model" in 122/242) ac_cv_data_model="IP16" ; n="standard 16bit machine" ;; 122/244) ac_cv_data_model="LP32" ; n="standard 32bit machine" ;; 122/*) ac_cv_data_model="i16" ; n="unusual int16 model" ;; 124/444) ac_cv_data_model="ILP32" ; n="standard 32bit unixish" ;; 124/488) ac_cv_data_model="LP64" ; n="standard 64bit unixish" ;; 124/448) ac_cv_data_model="LLP64" ; n="unusual 64bit unixish" ;; 124/*) ac_cv_data_model="i32" ; n="unusual int32 model" ;; 128/888) ac_cv_data_model="ILP64" ; n="unusual 64bit numeric" ;; 128/*) ac_cv_data_model="i64" ; n="unusual int64 model" ;; 222/*2) ac_cv_data_model="DSP16" ; n="strict 16bit dsptype" ;; 333/*3) ac_cv_data_model="DSP24" ; n="strict 24bit dsptype" ;; 444/*4) ac_cv_data_model="DSP32" ; n="strict 32bit dsptype" ;; 666/*6) ac_cv_data_model="DSP48" ; n="strict 48bit dsptype" ;; 888/*8) ac_cv_data_model="DSP64" ; n="strict 64bit dsptype" ;; 222/*|333/*|444/*|666/*|888/*) : ac_cv_data_model="iDSP" ; n="unusual dsptype" ;; *) ac_cv_data_model="none" ; n="very unusual model" ;; esac AC_MSG_RESULT([$ac_cv_data_model ($ac_cv_long_data_model, $n)]) ]) dnl AX_CHECK_HEADER_STDINT_X([HEADERLIST][,ACTION-IF]) AC_DEFUN([AX_CHECK_HEADER_STDINT_X],[ AC_CACHE_CHECK([for stdint uintptr_t], [ac_cv_header_stdint_x],[ ac_cv_header_stdint_x="" # the 1997 typedefs (inttypes.h) AC_MSG_RESULT([(..)]) for i in m4_ifval([$1],[$1],[stdint.h inttypes.h sys/inttypes.h sys/types.h]) do unset ac_cv_type_uintptr_t unset ac_cv_type_uint64_t AC_CHECK_TYPE(uintptr_t,[ac_cv_header_stdint_x=$i],continue,[#include <$i>]) AC_CHECK_TYPE(uint64_t,[and64="/uint64_t"],[and64=""],[#include<$i>]) m4_ifvaln([$2],[$2]) break done AC_MSG_CHECKING([for stdint uintptr_t]) ]) ]) AC_DEFUN([AX_CHECK_HEADER_STDINT_O],[ AC_CACHE_CHECK([for stdint uint32_t], [ac_cv_header_stdint_o],[ ac_cv_header_stdint_o="" # the 1995 typedefs (sys/inttypes.h) AC_MSG_RESULT([(..)]) for i in m4_ifval([$1],[$1],[inttypes.h sys/inttypes.h sys/types.h stdint.h]) do unset ac_cv_type_uint32_t unset ac_cv_type_uint64_t AC_CHECK_TYPE(uint32_t,[ac_cv_header_stdint_o=$i],continue,[#include <$i>]) AC_CHECK_TYPE(uint64_t,[and64="/uint64_t"],[and64=""],[#include<$i>]) m4_ifvaln([$2],[$2]) break break; done AC_MSG_CHECKING([for stdint uint32_t]) ]) ]) AC_DEFUN([AX_CHECK_HEADER_STDINT_U],[ AC_CACHE_CHECK([for stdint u_int32_t], [ac_cv_header_stdint_u],[ ac_cv_header_stdint_u="" # the BSD typedefs (sys/types.h) AC_MSG_RESULT([(..)]) for i in m4_ifval([$1],[$1],[sys/types.h inttypes.h sys/inttypes.h]) ; do unset ac_cv_type_u_int32_t unset ac_cv_type_u_int64_t AC_CHECK_TYPE(u_int32_t,[ac_cv_header_stdint_u=$i],continue,[#include <$i>]) AC_CHECK_TYPE(u_int64_t,[and64="/u_int64_t"],[and64=""],[#include<$i>]) m4_ifvaln([$2],[$2]) break break; done AC_MSG_CHECKING([for stdint u_int32_t]) ]) ]) AC_DEFUN([AX_CREATE_STDINT_H], [# ------ AX CREATE STDINT H ------------------------------------- AC_MSG_CHECKING([for stdint types]) ac_stdint_h=`echo ifelse($1, , _stdint.h, $1)` # try to shortcircuit - if the default include path of the compiler # can find a "stdint.h" header then we assume that all compilers can. AC_CACHE_VAL([ac_cv_header_stdint_t],[ old_CXXFLAGS="$CXXFLAGS" ; CXXFLAGS="" old_CPPFLAGS="$CPPFLAGS" ; CPPFLAGS="" old_CFLAGS="$CFLAGS" ; CFLAGS="" AC_TRY_COMPILE([#include ],[int_least32_t v = 0;], [ac_cv_stdint_result="(assuming C99 compatible system)" ac_cv_header_stdint_t="stdint.h"; ], [ac_cv_header_stdint_t=""]) if test "$GCC" = "yes" && test ".$ac_cv_header_stdint_t" = "."; then CFLAGS="-std=c99" AC_TRY_COMPILE([#include ],[int_least32_t v = 0;], [AC_MSG_WARN(your GCC compiler has a defunct stdint.h for its default-mode)]) fi CXXFLAGS="$old_CXXFLAGS" CPPFLAGS="$old_CPPFLAGS" CFLAGS="$old_CFLAGS" ]) v="... $ac_cv_header_stdint_h" if test "$ac_stdint_h" = "stdint.h" ; then AC_MSG_RESULT([(are you sure you want them in ./stdint.h?)]) elif test "$ac_stdint_h" = "inttypes.h" ; then AC_MSG_RESULT([(are you sure you want them in ./inttypes.h?)]) elif test "_$ac_cv_header_stdint_t" = "_" ; then AC_MSG_RESULT([(putting them into $ac_stdint_h)$v]) else ac_cv_header_stdint="$ac_cv_header_stdint_t" AC_MSG_RESULT([$ac_cv_header_stdint (shortcircuit)]) fi if test "_$ac_cv_header_stdint_t" = "_" ; then # can not shortcircuit.. dnl .....intro message done, now do a few system checks..... dnl btw, all old CHECK_TYPE macros do automatically "DEFINE" a type, dnl therefore we use the autoconf implementation detail CHECK_TYPE_NEW dnl instead that is triggered with 3 or more arguments (see types.m4) inttype_headers=`echo $2 | sed -e 's/,/ /g'` ac_cv_stdint_result="(no helpful system typedefs seen)" AX_CHECK_HEADER_STDINT_X(dnl stdint.h inttypes.h sys/inttypes.h $inttype_headers, ac_cv_stdint_result="(seen uintptr_t$and64 in $i)") if test "_$ac_cv_header_stdint_x" = "_" ; then AX_CHECK_HEADER_STDINT_O(dnl, inttypes.h sys/inttypes.h stdint.h $inttype_headers, ac_cv_stdint_result="(seen uint32_t$and64 in $i)") fi if test "_$ac_cv_header_stdint_x" = "_" ; then if test "_$ac_cv_header_stdint_o" = "_" ; then AX_CHECK_HEADER_STDINT_U(dnl, sys/types.h inttypes.h sys/inttypes.h $inttype_headers, ac_cv_stdint_result="(seen u_int32_t$and64 in $i)") fi fi dnl if there was no good C99 header file, do some typedef checks... if test "_$ac_cv_header_stdint_x" = "_" ; then AC_MSG_CHECKING([for stdint datatype model]) AC_MSG_RESULT([(..)]) AX_CHECK_DATA_MODEL fi if test "_$ac_cv_header_stdint_x" != "_" ; then ac_cv_header_stdint="$ac_cv_header_stdint_x" elif test "_$ac_cv_header_stdint_o" != "_" ; then ac_cv_header_stdint="$ac_cv_header_stdint_o" elif test "_$ac_cv_header_stdint_u" != "_" ; then ac_cv_header_stdint="$ac_cv_header_stdint_u" else ac_cv_header_stdint="stddef.h" fi AC_MSG_CHECKING([for extra inttypes in chosen header]) AC_MSG_RESULT([($ac_cv_header_stdint)]) dnl see if int_least and int_fast types are present in _this_ header. unset ac_cv_type_int_least32_t unset ac_cv_type_int_fast32_t AC_CHECK_TYPE(int_least32_t,,,[#include <$ac_cv_header_stdint>]) AC_CHECK_TYPE(int_fast32_t,,,[#include<$ac_cv_header_stdint>]) AC_CHECK_TYPE(intmax_t,,,[#include <$ac_cv_header_stdint>]) fi # shortcircut to system "stdint.h" # ------------------ PREPARE VARIABLES ------------------------------ if test "$GCC" = "yes" ; then ac_cv_stdint_message="using gnu compiler "`$CC --version | head -1` else ac_cv_stdint_message="using $CC" fi AC_MSG_RESULT([make use of $ac_cv_header_stdint in $ac_stdint_h dnl $ac_cv_stdint_result]) dnl ----------------------------------------------------------------- # ----------------- DONE inttypes.h checks START header ------------- AC_CONFIG_COMMANDS([$ac_stdint_h],[ AC_MSG_NOTICE(creating $ac_stdint_h : $_ac_stdint_h) ac_stdint=$tmp/_stdint.h echo "#ifndef" $_ac_stdint_h >$ac_stdint echo "#define" $_ac_stdint_h "1" >>$ac_stdint echo "#ifndef" _GENERATED_STDINT_H >>$ac_stdint echo "#define" _GENERATED_STDINT_H '"'$PACKAGE $VERSION'"' >>$ac_stdint echo "/* generated $ac_cv_stdint_message */" >>$ac_stdint if test "_$ac_cv_header_stdint_t" != "_" ; then echo "#define _STDINT_HAVE_STDINT_H" "1" >>$ac_stdint echo "#include " >>$ac_stdint echo "#endif" >>$ac_stdint echo "#endif" >>$ac_stdint else cat >>$ac_stdint < #else #include /* .................... configured part ............................ */ STDINT_EOF echo "/* whether we have a C99 compatible stdint header file */" >>$ac_stdint if test "_$ac_cv_header_stdint_x" != "_" ; then ac_header="$ac_cv_header_stdint_x" echo "#define _STDINT_HEADER_INTPTR" '"'"$ac_header"'"' >>$ac_stdint else echo "/* #undef _STDINT_HEADER_INTPTR */" >>$ac_stdint fi echo "/* whether we have a C96 compatible inttypes header file */" >>$ac_stdint if test "_$ac_cv_header_stdint_o" != "_" ; then ac_header="$ac_cv_header_stdint_o" echo "#define _STDINT_HEADER_UINT32" '"'"$ac_header"'"' >>$ac_stdint else echo "/* #undef _STDINT_HEADER_UINT32 */" >>$ac_stdint fi echo "/* whether we have a BSD compatible inet types header */" >>$ac_stdint if test "_$ac_cv_header_stdint_u" != "_" ; then ac_header="$ac_cv_header_stdint_u" echo "#define _STDINT_HEADER_U_INT32" '"'"$ac_header"'"' >>$ac_stdint else echo "/* #undef _STDINT_HEADER_U_INT32 */" >>$ac_stdint fi echo "" >>$ac_stdint if test "_$ac_header" != "_" ; then if test "$ac_header" != "stddef.h" ; then echo "#include <$ac_header>" >>$ac_stdint echo "" >>$ac_stdint fi fi echo "/* which 64bit typedef has been found */" >>$ac_stdint if test "$ac_cv_type_uint64_t" = "yes" ; then echo "#define _STDINT_HAVE_UINT64_T" "1" >>$ac_stdint else echo "/* #undef _STDINT_HAVE_UINT64_T */" >>$ac_stdint fi if test "$ac_cv_type_u_int64_t" = "yes" ; then echo "#define _STDINT_HAVE_U_INT64_T" "1" >>$ac_stdint else echo "/* #undef _STDINT_HAVE_U_INT64_T */" >>$ac_stdint fi echo "" >>$ac_stdint echo "/* which type model has been detected */" >>$ac_stdint if test "_$ac_cv_char_data_model" != "_" ; then echo "#define _STDINT_CHAR_MODEL" "$ac_cv_char_data_model" >>$ac_stdint echo "#define _STDINT_LONG_MODEL" "$ac_cv_long_data_model" >>$ac_stdint else echo "/* #undef _STDINT_CHAR_MODEL // skipped */" >>$ac_stdint echo "/* #undef _STDINT_LONG_MODEL // skipped */" >>$ac_stdint fi echo "" >>$ac_stdint echo "/* whether int_least types were detected */" >>$ac_stdint if test "$ac_cv_type_int_least32_t" = "yes"; then echo "#define _STDINT_HAVE_INT_LEAST32_T" "1" >>$ac_stdint else echo "/* #undef _STDINT_HAVE_INT_LEAST32_T */" >>$ac_stdint fi echo "/* whether int_fast types were detected */" >>$ac_stdint if test "$ac_cv_type_int_fast32_t" = "yes"; then echo "#define _STDINT_HAVE_INT_FAST32_T" "1" >>$ac_stdint else echo "/* #undef _STDINT_HAVE_INT_FAST32_T */" >>$ac_stdint fi echo "/* whether intmax_t type was detected */" >>$ac_stdint if test "$ac_cv_type_intmax_t" = "yes"; then echo "#define _STDINT_HAVE_INTMAX_T" "1" >>$ac_stdint else echo "/* #undef _STDINT_HAVE_INTMAX_T */" >>$ac_stdint fi echo "" >>$ac_stdint cat >>$ac_stdint <= 199901L #define _HAVE_UINT64_T #define _HAVE_LONGLONG_UINT64_T typedef long long int64_t; typedef unsigned long long uint64_t; #elif !defined __STRICT_ANSI__ #if defined _MSC_VER || defined __WATCOMC__ || defined __BORLANDC__ #define _HAVE_UINT64_T typedef __int64 int64_t; typedef unsigned __int64 uint64_t; #elif defined __GNUC__ || defined __MWERKS__ || defined __ELF__ /* note: all ELF-systems seem to have loff-support which needs 64-bit */ #if !defined _NO_LONGLONG #define _HAVE_UINT64_T #define _HAVE_LONGLONG_UINT64_T typedef long long int64_t; typedef unsigned long long uint64_t; #endif #elif defined __alpha || (defined __mips && defined _ABIN32) #if !defined _NO_LONGLONG typedef long int64_t; typedef unsigned long uint64_t; #endif /* compiler/cpu type to define int64_t */ #endif #endif #endif #if defined _STDINT_HAVE_U_INT_TYPES /* int8_t int16_t int32_t defined by inet code, redeclare the u_intXX types */ typedef u_int8_t uint8_t; typedef u_int16_t uint16_t; typedef u_int32_t uint32_t; /* glibc compatibility */ #ifndef __int8_t_defined #define __int8_t_defined #endif #endif #ifdef _STDINT_NEED_INT_MODEL_T /* we must guess all the basic types. Apart from byte-adressable system, */ /* there a few 32-bit-only dsp-systems that we guard with BYTE_MODEL 8-} */ /* (btw, those nibble-addressable systems are way off, or so we assume) */ dnl /* have a look at "64bit and data size neutrality" at */ dnl /* http://unix.org/version2/whatsnew/login_64bit.html */ dnl /* (the shorthand "ILP" types always have a "P" part) */ #if defined _STDINT_BYTE_MODEL #if _STDINT_LONG_MODEL+0 == 242 /* 2:4:2 = IP16 = a normal 16-bit system */ typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned long uint32_t; #ifndef __int8_t_defined #define __int8_t_defined typedef char int8_t; typedef short int16_t; typedef long int32_t; #endif #elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL == 444 /* 2:4:4 = LP32 = a 32-bit system derived from a 16-bit */ /* 4:4:4 = ILP32 = a normal 32-bit system */ typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; #ifndef __int8_t_defined #define __int8_t_defined typedef char int8_t; typedef short int16_t; typedef int int32_t; #endif #elif _STDINT_LONG_MODEL+0 == 484 || _STDINT_LONG_MODEL+0 == 488 /* 4:8:4 = IP32 = a 32-bit system prepared for 64-bit */ /* 4:8:8 = LP64 = a normal 64-bit system */ typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; #ifndef __int8_t_defined #define __int8_t_defined typedef char int8_t; typedef short int16_t; typedef int int32_t; #endif /* this system has a "long" of 64bit */ #ifndef _HAVE_UINT64_T #define _HAVE_UINT64_T typedef unsigned long uint64_t; typedef long int64_t; #endif #elif _STDINT_LONG_MODEL+0 == 448 /* LLP64 a 64-bit system derived from a 32-bit system */ typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; #ifndef __int8_t_defined #define __int8_t_defined typedef char int8_t; typedef short int16_t; typedef int int32_t; #endif /* assuming the system has a "long long" */ #ifndef _HAVE_UINT64_T #define _HAVE_UINT64_T #define _HAVE_LONGLONG_UINT64_T typedef unsigned long long uint64_t; typedef long long int64_t; #endif #else #define _STDINT_NO_INT32_T #endif #else #define _STDINT_NO_INT8_T #define _STDINT_NO_INT32_T #endif #endif /* * quote from SunOS-5.8 sys/inttypes.h: * Use at your own risk. As of February 1996, the committee is squarely * behind the fixed sized types; the "least" and "fast" types are still being * discussed. The probability that the "fast" types may be removed before * the standard is finalized is high enough that they are not currently * implemented. */ #if defined _STDINT_NEED_INT_LEAST_T typedef int8_t int_least8_t; typedef int16_t int_least16_t; typedef int32_t int_least32_t; #ifdef _HAVE_UINT64_T typedef int64_t int_least64_t; #endif typedef uint8_t uint_least8_t; typedef uint16_t uint_least16_t; typedef uint32_t uint_least32_t; #ifdef _HAVE_UINT64_T typedef uint64_t uint_least64_t; #endif /* least types */ #endif #if defined _STDINT_NEED_INT_FAST_T typedef int8_t int_fast8_t; typedef int int_fast16_t; typedef int32_t int_fast32_t; #ifdef _HAVE_UINT64_T typedef int64_t int_fast64_t; #endif typedef uint8_t uint_fast8_t; typedef unsigned uint_fast16_t; typedef uint32_t uint_fast32_t; #ifdef _HAVE_UINT64_T typedef uint64_t uint_fast64_t; #endif /* fast types */ #endif #ifdef _STDINT_NEED_INTMAX_T #ifdef _HAVE_UINT64_T typedef int64_t intmax_t; typedef uint64_t uintmax_t; #else typedef long intmax_t; typedef unsigned long uintmax_t; #endif #endif #ifdef _STDINT_NEED_INTPTR_T #ifndef __intptr_t_defined #define __intptr_t_defined /* we encourage using "long" to store pointer values, never use "int" ! */ #if _STDINT_LONG_MODEL+0 == 242 || _STDINT_LONG_MODEL+0 == 484 typedef unsigned int uintptr_t; typedef int intptr_t; #elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL+0 == 444 typedef unsigned long uintptr_t; typedef long intptr_t; #elif _STDINT_LONG_MODEL+0 == 448 && defined _HAVE_UINT64_T typedef uint64_t uintptr_t; typedef int64_t intptr_t; #else /* matches typical system types ILP32 and LP64 - but not IP16 or LLP64 */ typedef unsigned long uintptr_t; typedef long intptr_t; #endif #endif #endif /* The ISO C99 standard specifies that in C++ implementations these should only be defined if explicitly requested. */ #if !defined __cplusplus || defined __STDC_CONSTANT_MACROS #ifndef UINT32_C /* Signed. */ # define INT8_C(c) c # define INT16_C(c) c # define INT32_C(c) c # ifdef _HAVE_LONGLONG_UINT64_T # define INT64_C(c) c ## L # else # define INT64_C(c) c ## LL # endif /* Unsigned. */ # define UINT8_C(c) c ## U # define UINT16_C(c) c ## U # define UINT32_C(c) c ## U # ifdef _HAVE_LONGLONG_UINT64_T # define UINT64_C(c) c ## UL # else # define UINT64_C(c) c ## ULL # endif /* Maximal type. */ # ifdef _HAVE_LONGLONG_UINT64_T # define INTMAX_C(c) c ## L # define UINTMAX_C(c) c ## UL # else # define INTMAX_C(c) c ## LL # define UINTMAX_C(c) c ## ULL # endif /* literalnumbers */ #endif #endif /* These limits are merily those of a two complement byte-oriented system */ /* Minimum of signed integral types. */ # define INT8_MIN (-128) # define INT16_MIN (-32767-1) # define INT32_MIN (-2147483647-1) # define INT64_MIN (-__INT64_C(9223372036854775807)-1) /* Maximum of signed integral types. */ # define INT8_MAX (127) # define INT16_MAX (32767) # define INT32_MAX (2147483647) # define INT64_MAX (__INT64_C(9223372036854775807)) /* Maximum of unsigned integral types. */ # define UINT8_MAX (255) # define UINT16_MAX (65535) # define UINT32_MAX (4294967295U) # define UINT64_MAX (__UINT64_C(18446744073709551615)) /* Minimum of signed integral types having a minimum size. */ # define INT_LEAST8_MIN INT8_MIN # define INT_LEAST16_MIN INT16_MIN # define INT_LEAST32_MIN INT32_MIN # define INT_LEAST64_MIN INT64_MIN /* Maximum of signed integral types having a minimum size. */ # define INT_LEAST8_MAX INT8_MAX # define INT_LEAST16_MAX INT16_MAX # define INT_LEAST32_MAX INT32_MAX # define INT_LEAST64_MAX INT64_MAX /* Maximum of unsigned integral types having a minimum size. */ # define UINT_LEAST8_MAX UINT8_MAX # define UINT_LEAST16_MAX UINT16_MAX # define UINT_LEAST32_MAX UINT32_MAX # define UINT_LEAST64_MAX UINT64_MAX /* shortcircuit*/ #endif /* once */ #endif #endif STDINT_EOF fi if cmp -s $ac_stdint_h $ac_stdint 2>/dev/null; then AC_MSG_NOTICE([$ac_stdint_h is unchanged]) else ac_dir=`AS_DIRNAME(["$ac_stdint_h"])` AS_MKDIR_P(["$ac_dir"]) rm -f $ac_stdint_h mv $ac_stdint $ac_stdint_h fi ],[# variables for create stdint.h replacement PACKAGE="$PACKAGE" VERSION="$VERSION" ac_stdint_h="$ac_stdint_h" _ac_stdint_h=AS_TR_CPP(_$PACKAGE-$ac_stdint_h) ac_cv_stdint_message="$ac_cv_stdint_message" ac_cv_header_stdint_t="$ac_cv_header_stdint_t" ac_cv_header_stdint_x="$ac_cv_header_stdint_x" ac_cv_header_stdint_o="$ac_cv_header_stdint_o" ac_cv_header_stdint_u="$ac_cv_header_stdint_u" ac_cv_type_uint64_t="$ac_cv_type_uint64_t" ac_cv_type_u_int64_t="$ac_cv_type_u_int64_t" ac_cv_char_data_model="$ac_cv_char_data_model" ac_cv_long_data_model="$ac_cv_long_data_model" ac_cv_type_int_least32_t="$ac_cv_type_int_least32_t" ac_cv_type_int_fast32_t="$ac_cv_type_int_fast32_t" ac_cv_type_intmax_t="$ac_cv_type_intmax_t" ]) ]) fontconfig-2.11.1/m4/ac_check_symbol.m40000664000076400007640000000256512267155334014572 00000000000000dnl @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 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 ]) fontconfig-2.11.1/m4/ltoptions.m40000644000076400007640000003007312313745300013477 00000000000000# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, # Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 7 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for lt_pkg in $withval; do IFS="$lt_save_ifs" if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS="$lt_save_ifs" ;; esac], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) fontconfig-2.11.1/m4/lt~obsolete.m40000644000076400007640000001375612313745300014027 00000000000000# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) fontconfig-2.11.1/m4/libtool.m40000644000076400007640000105756412313745300013127 00000000000000# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool 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. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 57 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ]) # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # `#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test $lt_write_fail = 0 && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_REPLACE_SHELLFNS mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG m4_ifndef([AC_PROG_GO], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_GO. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_GO], [AC_LANG_PUSH(Go)dnl AC_ARG_VAR([GOC], [Go compiler command])dnl AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl _AC_ARG_VAR_LDFLAGS()dnl AC_CHECK_TOOL(GOC, gccgo) if test -z "$GOC"; then if test -n "$ac_tool_prefix"; then AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) fi fi if test -z "$GOC"; then AC_CHECK_PROG(GOC, gccgo, gccgo, false) fi ])#m4_defun ])#m4_ifndef # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([AC_PROG_GO], [LT_LANG(GO)], [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES([TAG]) # --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test "$lt_cv_ld_force_load" = "yes"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX([TAGNAME]) # ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. # Store the results from the different compilers for each TAGNAME. # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed='[ /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }]' _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script which will find a shell with a builtin # printf (which we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case "$ECHO" in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [ --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified).], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([${with_sysroot}]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and in which our libraries should be installed.])]) # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; *-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD="${LD-ld}_sol2" fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} : ${AR_FLAGS=cru} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a ]) ]) if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi _LT_DECL([], [archiver_list_spec], [1], [How to feed a file listing to the archiver]) ])# _LT_PROG_AR # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) _LT_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[23]].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method = "file_magic"]) _LT_DECL([], [file_magic_glob], [1], [How to find potential files when deplibs_check_method = "file_magic"]) _LT_DECL([], [want_nocaseglob], [1], [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # _LT_CHECK_SHAREDLIB_FROM_LINKLIB # -------------------------------- # how to determine the name of the shared library # associated with a specific link library. # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) m4_require([_LT_DECL_DLLTOOL]) AC_CACHE_CHECK([how to associate runtime and link libraries], lt_cv_sharedlib_from_linklib_cmd, [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac ]) sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO _LT_DECL([], [sharedlib_from_linklib_cmd], [1], [Command to associate shared and link libraries]) ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB # _LT_PATH_MANIFEST_TOOL # ---------------------- # locate the manifest tool m4_defun([_LT_PATH_MANIFEST_TOOL], [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], [lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&AS_MESSAGE_LOG_FD if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest*]) if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ])# _LT_PATH_MANIFEST_TOOL # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT@&t@_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then nm_file_list_spec='@' fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) _LT_DECL([], [nm_file_list_spec], [1], [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; *Sun\ F* | *Sun*Fortran*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Intel*\ [[CF]]*Compiler*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; *Portland\ Group*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_CACHE_CHECK([for $compiler option to produce PIC], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global defined # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ;; esac ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], [lt_cv_irix_exported_symbol], [save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE( [AC_LANG_SOURCE( [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], [C++], [[int foo (void) { return 0; }]], [Fortran 77], [[ subroutine foo end]], [Fortran], [[ subroutine foo end]])])], [lt_cv_irix_exported_symbol=yes], [lt_cv_irix_exported_symbol=no]) LDFLAGS="$save_LDFLAGS"]) if test "$lt_cv_irix_exported_symbol" = yes; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [postlink_cmds], [2], [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ func_to_tool_file "$lt_outputfile"~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_FUNC_STRIPNAME_CNF # ---------------------- # func_stripname_cnf prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # # This function is identical to the (non-XSI) version of func_stripname, # except this one can be used by m4 code that may be executed by configure, # rather than the libtool script. m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl AC_REQUIRE([_LT_DECL_SED]) AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) func_stripname_cnf () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF package foo func foo() { } _LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test "$pre_test_object_deps_done" = no; then case ${prev} in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_LANG_PUSH(Fortran 77) if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" CFLAGS="$lt_save_CFLAGS" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_LANG_PUSH(Fortran) if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_GO_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Go compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GO_CONFIG], [AC_REQUIRE([LT_PROG_GO])dnl AC_LANG_SAVE # Source file extension for Go test sources. ac_ext=go # Object file extension for compiled Go test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="package main; func main() { }" # Code to be used in simple link tests lt_simple_link_test_code='package main; func main() { }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GOC-"gccgo"} CFLAGS=$GOFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # Go did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GO_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_GO # ---------- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) ]) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_DLLTOOL # ---------------- # Ensure DLLTOOL variable is set. m4_defun([_LT_DECL_DLLTOOL], [AC_CHECK_TOOL(DLLTOOL, dlltool, false) test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) # ------------------------------------------------------ # In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and # '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. m4_defun([_LT_PROG_FUNCTION_REPLACE], [dnl { sed -e '/^$1 ()$/,/^} # $1 /c\ $1 ()\ {\ m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) } # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: ]) # _LT_PROG_REPLACE_SHELLFNS # ------------------------- # Replace existing portable implementations of several shell functions with # equivalent extended shell implementations where those features are available.. m4_defun([_LT_PROG_REPLACE_SHELLFNS], [if test x"$xsi_shell" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"}]) _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl func_split_long_opt_name=${1%%=*} func_split_long_opt_arg=${1#*=}]) _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) fi if test x"$lt_shell_append" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl func_quote_for_eval "${2}" dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) fi ]) # _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- # Determine which file name conversion functions should be used by # func_to_host_file (and, implicitly, by func_to_host_path). These are needed # for certain cross-compile configurations and native mingw. m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_MSG_CHECKING([how to convert $build file names to $host format]) AC_CACHE_VAL(lt_cv_to_host_file_cmd, [case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac ]) to_host_file_cmd=$lt_cv_to_host_file_cmd AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], [0], [convert $build file names to $host format])dnl AC_MSG_CHECKING([how to convert $build file names to toolchain format]) AC_CACHE_VAL(lt_cv_to_tool_file_cmd, [#assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac ]) to_tool_file_cmd=$lt_cv_to_tool_file_cmd AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], [0], [convert $build files to toolchain format])dnl ])# _LT_PATH_CONVERSION_FUNCTIONS fontconfig-2.11.1/m4/ax_pthread.m40000664000076400007640000003305712267155334013604 00000000000000# =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_pthread.html # =========================================================================== # # SYNOPSIS # # AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) # # DESCRIPTION # # This macro figures out how to build C programs using POSIX threads. It # sets the PTHREAD_LIBS output variable to the threads library and linker # flags, and the PTHREAD_CFLAGS output variable to any special C compiler # flags that are needed. (The user can also force certain compiler # flags/libs to be tested by setting these environment variables.) # # Also sets PTHREAD_CC to any special C compiler that is needed for # multi-threaded programs (defaults to the value of CC otherwise). (This # is necessary on AIX to use the special cc_r compiler alias.) # # NOTE: You are assumed to not only compile your program with these flags, # but also link it with them as well. e.g. you should link with # $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS # # If you are only building threads programs, you may wish to use these # variables in your default LIBS, CFLAGS, and CC: # # LIBS="$PTHREAD_LIBS $LIBS" # CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # CC="$PTHREAD_CC" # # In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant # has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name # (e.g. PTHREAD_CREATE_UNDETACHED on AIX). # # Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the # PTHREAD_PRIO_INHERIT symbol is defined when compiling with # PTHREAD_CFLAGS. # # ACTION-IF-FOUND is a list of shell commands to run if a threads library # is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it # is not found. If ACTION-IF-FOUND is not specified, the default action # will define HAVE_PTHREAD. # # Please let the authors know if this macro fails on any platform, or if # you have any other suggestions or comments. This macro was based on work # by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help # from M. Frigo), as well as ac_pthread and hb_pthread macros posted by # Alejandro Forero Cuervo to the autoconf macro repository. We are also # grateful for the helpful feedback of numerous users. # # Updated for Autoconf 2.68 by Daniel Richard G. # # LICENSE # # Copyright (c) 2008 Steven G. Johnson # Copyright (c) 2011 Daniel Richard G. # # 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 3 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # 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 AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD]) AC_DEFUN([AX_PTHREAD], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_LANG_PUSH([C]) ax_pthread_ok=no # We used to check for pthread.h first, but this fails if pthread.h # requires special compiler flags (e.g. on True64 or Sequent). # It gets checked for in the link test anyway. # First of all, check if the user has set any of the PTHREAD_LIBS, # etcetera environment variables, and if threads linking works using # them: if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" 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]) if test x"$ax_pthread_ok" = xno; then PTHREAD_LIBS="" PTHREAD_CFLAGS="" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" fi # We must check for the threads library under a number of different # names; the ordering is very important because some systems # (e.g. DEC) have both -lpthread and -lpthreads, where one of the # libraries is broken (non-POSIX). # Create a list of thread flags to try. Items starting with a "-" are # C compiler flags, and other items are library names, except for "none" # which indicates that we try without any flags at all, and "pthread-config" # which is a program returning the flags for the Pth emulation library. ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" # The ordering *is* (sometimes) important. Some notes on the # individual items follow: # pthreads: AIX (must check this before -lpthread) # none: in case threads are in libc; should be tried before -Kthread and # other compiler flags to prevent continual compiler warnings # -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) # -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) # -pthreads: Solaris/gcc # -mthreads: Mingw32/gcc, Lynx/gcc # -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it # doesn't hurt to check since this sometimes defines pthreads too; # also defines -D_REENTRANT) # ... -mt is also the pthreads flag for HP/aCC # pthread: Linux, etcetera # --thread-safe: KAI C++ # pthread-config: use pthread-config program (for GNU Pth library) case ${host_os} in solaris*) # On Solaris (at least, for some versions), libc contains stubbed # (non-functional) versions of the pthreads routines, so link-based # tests will erroneously succeed. (We need to link with -pthreads/-mt/ # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather # a function called by this macro, so we could check for that, but # who knows whether they'll stub that too in a future libc.) So, # we'll just look for -pthreads and -lpthread first: ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags" ;; 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 case $flag in none) AC_MSG_CHECKING([whether pthreads work without any flags]) ;; -*) AC_MSG_CHECKING([whether pthreads work with $flag]) PTHREAD_CFLAGS="$flag" ;; pthread-config) 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`" ;; *) AC_MSG_CHECKING([for the pthreads library -l$flag]) PTHREAD_LIBS="-l$flag" ;; esac save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags" # Check for various functions. We must include pthread.h, # since some functions may be macros. (On the Sequent, we # need a special flag -Kthread to make this header compile.) # We check for pthread_join because it is in -lpthread on IRIX # while pthread_create is in libc. We check for pthread_attr_init # due to DEC craziness with -lpthreads. We check for # pthread_cleanup_push because it is one of the few pthread # functions on Solaris that doesn't have a non-functional libc stub. # We try pthread_create on general principles. AC_LINK_IFELSE([AC_LANG_PROGRAM([#include static void routine(void *a) { a = 0; } static void *start_routine(void *a) { return a; }], [pthread_t th; pthread_attr_t attr; pthread_create(&th, 0, start_routine, 0); pthread_join(th, 0); pthread_attr_init(&attr); pthread_cleanup_push(routine, 0); pthread_cleanup_pop(0) /* ; */])], [ax_pthread_ok=yes], []) LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" AC_MSG_RESULT([$ax_pthread_ok]) if test "x$ax_pthread_ok" = xyes; then break; fi PTHREAD_LIBS="" PTHREAD_CFLAGS="" done fi # Various other checks: if test "x$ax_pthread_ok" = xyes; then save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. AC_MSG_CHECKING([for joinable pthread attribute]) attr_name=unknown for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], [int attr = $attr; return attr /* ; */])], [attr_name=$attr; break], []) done AC_MSG_RESULT([$attr_name]) if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE], [$attr_name], [Define to necessary symbol if this constant uses a non-standard name on your system.]) fi AC_MSG_CHECKING([if more special flags are required for pthreads]) flag=no case ${host_os} in aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";; osf* | hpux*) flag="-D_REENTRANT";; solaris*) 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]) 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 ]], [[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.])]) 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 fi fi test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" AC_SUBST([PTHREAD_LIBS]) AC_SUBST([PTHREAD_CFLAGS]) AC_SUBST([PTHREAD_CC]) # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x"$ax_pthread_ok" = xyes; then ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1]) : else ax_pthread_ok=no $2 fi AC_LANG_POP ])dnl AX_PTHREAD fontconfig-2.11.1/m4/ltversion.m40000644000076400007640000000126212313745300013467 00000000000000# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # @configure_input@ # serial 3337 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.4.2]) m4_define([LT_PACKAGE_REVISION], [1.3337]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.2' macro_revision='1.3337' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) fontconfig-2.11.1/m4/ltsugar.m40000644000076400007640000001042412313745300013123 00000000000000# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) fontconfig-2.11.1/config.guess0000755000076400007640000012746312177675036013234 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012, 2013 Free Software Foundation, Inc. timestamp='2012-12-29' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # # Originally written by Per Bothner. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD # # Please send patches with a ChangeLog entry to config-patches@gnu.org. me=`echo "$0" | sed -e 's,.*/,,'` 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 ." 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, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 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 tuples: *-*-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 ;; sh5el) machine=sh5le-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 -q __ELF__ 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 ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-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'` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; 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 ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; 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:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-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 /* 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 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:*:[4567]) 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 #include 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 -q __LP64__ 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 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:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW64*:*) echo ${UNAME_MACHINE}-pc-mingw64 exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-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 ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-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 -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-gnueabi else echo ${UNAME_MACHINE}-unknown-linux-gnueabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) LIBC=gnu eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` echo "${UNAME_MACHINE}-pc-linux-${LIBC}" 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:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu 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 ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-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 ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu 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.[02]*:*) 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' /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 i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-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; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' 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; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; 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.[02]*:*) 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 echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # 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 ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; x86_64:Haiku:*:*) echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-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 i386) eval $set_cc_for_build if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then UNAME_PROCESSOR="x86_64" fi fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac 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 ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} 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 ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; esac eval $set_cc_for_build cat >$dummy.c < # include #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 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 # 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 < 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: fontconfig-2.11.1/doc/0000775000076400007640000000000012313745413011513 500000000000000fontconfig-2.11.1/doc/FcMatrixMultiply.30000664000076400007640000000074012313745357015004 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcMatrixMultiply" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcMatrixMultiply \- Multiply matrices .SH SYNOPSIS .nf \fB#include .sp void FcMatrixMultiply (FcMatrix *\fIresult\fB, const FcMatrix *\fImatrix1\fB, const FcMatrix *\fImatrix2\fB); .fi\fR .SH "DESCRIPTION" .PP \fBFcMatrixMultiply\fR multiplies \fImatrix1\fR and \fImatrix2\fR storing the result in \fIresult\fR\&. fontconfig-2.11.1/doc/fcpattern.fncs0000664000076400007640000003051612267155333014305 00000000000000/* * fontconfig/doc/fcpattern.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@ FcPattern * @FUNC@ FcPatternCreate @TYPE1@ void @PURPOSE@ Create a pattern @DESC@ Creates a pattern with no properties; used to build patterns from scratch. @@ @RET@ FcPattern * @FUNC@ FcPatternDuplicate @TYPE1@ const FcPattern * @ARG1@ p @PURPOSE@ Copy a pattern @DESC@ Copy a pattern, returning a new pattern that matches p. Each pattern may be modified without affecting the other. @@ @RET@ void @FUNC@ FcPatternReference @TYPE1@ FcPattern * @ARG1@ p @PURPOSE@ Increment pattern reference count @DESC@ Add another reference to p. Patterns are freed only when the reference count reaches zero. @@ @RET@ void @FUNC@ FcPatternDestroy @TYPE1@ FcPattern * @ARG1@ p @PURPOSE@ Destroy a pattern @DESC@ Decrement the pattern reference count. If all references are gone, destroys the pattern, in the process destroying all related values. @@ @RET@ FcBool @FUNC@ FcPatternEqual @TYPE1@ const FcPattern * @ARG1@ pa @TYPE2@ const FcPattern * @ARG2@ pb @PURPOSE@ Compare patterns @DESC@ Returns whether pa and pb are exactly alike. @@ @RET@ FcBool @FUNC@ FcPatternEqualSubset @TYPE1@ const FcPattern * @ARG1@ pa @TYPE2@ const FcPattern * @ARG2@ pb @TYPE3@ const FcObjectSet * @ARG3@ os @PURPOSE@ Compare portions of patterns @DESC@ Returns whether pa and pb have exactly the same values for all of the objects in os. @@ @RET@ FcPattern * @FUNC@ FcPatternFilter @TYPE1@ FcPattern * @ARG1@ p @TYPE2@ const FcObjectSet * @ARG1@ os @PURPOSE@ Filter the objects of pattern @DESC@ Returns a new pattern that only has those objects from p that are in os. If os is NULL, a duplicate of p is returned. @@ @RET@ FcChar32 @FUNC@ FcPatternHash @TYPE1@ const FcPattern * @ARG1@ p @PURPOSE@ Compute a pattern hash value @DESC@ Returns a 32-bit number which is the same for any two patterns which are equal. @@ @RET@ FcBool @FUNC@ FcPatternAdd @TYPE1@ FcPattern * @ARG1@ p @TYPE2@ const char * @ARG2@ object @TYPE3@ FcValue% @ARG3@ value @TYPE4@ FcBool% @ARG4@ append @PURPOSE@ Add a value to a pattern @DESC@ Adds a single value to the list of values associated with the property named `object. If `append is FcTrue, the value is added at the end of any existing list, otherwise it is inserted at the beginning. `value' is saved (with FcValueSave) when inserted into the pattern so that the library retains no reference to any application-supplied data structure. @@ @RET@ FcBool @FUNC@ FcPatternAddWeak @TYPE1@ FcPattern * @ARG1@ p @TYPE2@ const char * @ARG2@ object @TYPE3@ FcValue% @ARG3@ value @TYPE4@ FcBool% @ARG4@ append @PURPOSE@ Add a value to a pattern with weak binding @DESC@ FcPatternAddWeak is essentially the same as FcPatternAdd except that any values added to the list have binding weak instead of strong. @@ @TITLE@ FcPatternAdd-Type @RET@ FcBool @FUNC@ FcPatternAddInteger @TYPE1@ FcPattern * @ARG1@ p @TYPE2@ const char * @ARG2@ object @TYPE3@ int% @ARG3@ i @PROTOTYPE+@ @RET+@ FcBool @FUNC+@ FcPatternAddDouble @TYPE1+@ FcPattern * @ARG1+@ p @TYPE2+@ const char * @ARG2+@ object @TYPE3+@ double% @ARG3+@ d @PROTOTYPE++@ @RET++@ FcBool @FUNC++@ FcPatternAddString @TYPE1++@ FcPattern * @ARG1++@ p @TYPE2++@ const char * @ARG2++@ object @TYPE3++@ const FcChar8 * @ARG3++@ s @PROTOTYPE+++@ @RET+++@ FcBool @FUNC+++@ FcPatternAddMatrix @TYPE1+++@ FcPattern * @ARG1+++@ p @TYPE2+++@ const char * @ARG2+++@ object @TYPE3+++@ const FcMatrix * @ARG3+++@ m @PROTOTYPE++++@ @RET++++@ FcBool @FUNC++++@ FcPatternAddCharSet @TYPE1++++@ FcPattern * @ARG1++++@ p @TYPE2++++@ const char * @ARG2++++@ object @TYPE3++++@ const FcCharSet * @ARG3++++@ c @PROTOTYPE+++++@ @RET+++++@ FcBool @FUNC+++++@ FcPatternAddBool @TYPE1+++++@ FcPattern * @ARG1+++++@ p @TYPE2+++++@ const char * @ARG2+++++@ object @TYPE3+++++@ FcBool% @ARG3+++++@ b @PROTOTYPE++++++@ @RET++++++@ FcBool @FUNC++++++@ FcPatternAddFTFace @TYPE1++++++@ FcPattern * @ARG1++++++@ p @TYPE2++++++@ const char * @ARG2++++++@ object @TYPE3++++++@ const FT_Face @ARG3++++++@ f @PROTOTYPE+++++++@ @RET+++++++@ FcBool @FUNC+++++++@ FcPatternAddLangSet @TYPE1+++++++@ FcPattern * @ARG1+++++++@ p @TYPE2+++++++@ const char * @ARG2+++++++@ object @TYPE3+++++++@ const FcLangSet * @ARG3+++++++@ l @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. @@ @RET@ FcResult @FUNC@ FcPatternGet @TYPE1@ FcPattern * @ARG1@ p @TYPE2@ const char * @ARG2@ object @TYPE3@ int% @ARG3@ id @TYPE4@ FcValue * @ARG4@ v @PURPOSE@ Return a value from a pattern @DESC@ Returns in v the id'th value associated with the property object. The value returned is not a copy, but rather refers to the data stored within the pattern directly. Applications must not free this value. @@ @TITLE@ FcPatternGet-Type @PROTOTYPE@ @RET@ FcResult @FUNC@ FcPatternGetInteger @TYPE1@ FcPattern * @ARG1@ p @TYPE2@ const char * @ARG2@ object @TYPE3@ int% @ARG3@ n @TYPE4@ int * @ARG4@ i @PROTOTYPE+@ @RET+@ FcResult @FUNC+@ FcPatternGetDouble @TYPE1+@ FcPattern * @ARG1+@ p @TYPE2+@ const char * @ARG2+@ object @TYPE3+@ int% @ARG3+@ n @TYPE4+@ double * @ARG4+@ d @PROTOTYPE++@ @RET++@ FcResult @FUNC++@ FcPatternGetString @TYPE1++@ FcPattern * @ARG1++@ p @TYPE2++@ const char * @ARG2++@ object @TYPE3++@ int% @ARG3++@ n @TYPE4++@ FcChar8 ** @ARG4++@ s @PROTOTYPE+++@ @RET+++@ FcResult @FUNC+++@ FcPatternGetMatrix @TYPE1+++@ FcPattern * @ARG1+++@ p @TYPE2+++@ const char * @ARG2+++@ object @TYPE3+++@ int% @ARG3+++@ n @TYPE4+++@ FcMatrix ** @ARG4+++@ s @PROTOTYPE++++@ @RET++++@ FcResult @FUNC++++@ FcPatternGetCharSet @TYPE1++++@ FcPattern * @ARG1++++@ p @TYPE2++++@ const char * @ARG2++++@ object @TYPE3++++@ int% @ARG3++++@ n @TYPE4++++@ FcCharSet ** @ARG4++++@ c @PROTOTYPE+++++@ @RET+++++@ FcResult @FUNC+++++@ FcPatternGetBool @TYPE1+++++@ FcPattern * @ARG1+++++@ p @TYPE2+++++@ const char * @ARG2+++++@ object @TYPE3+++++@ int% @ARG3+++++@ n @TYPE4+++++@ FcBool * @ARG4+++++@ b @PROTOTYPE++++++@ @RET++++++@ FcResult @FUNC++++++@ FcPatternGetFTFace @TYPE1++++++@ FcPattern * @ARG1++++++@ p @TYPE2++++++@ const char * @ARG2++++++@ object @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 @TYPE3+++++++@ FcLangSet ** @ARG3+++++++@ l @PURPOSE@ Return a typed value from a pattern @DESC@ These are convenience functions that call FcPatternGet and verify that the returned data is of the expected type. They return FcResultTypeMismatch if this is not the case. Note that these (like FcPatternGet) do not make a copy of any data structure referenced by the return value. Use these in preference to FcPatternGet to provide compile-time typechecking. @@ @RET@ FcPattern * @FUNC@ FcPatternBuild @TYPE1@ FcPattern * @ARG1@ pattern @TYPE2@ ... @PROTOTYPE+@ @RET+@ FcPattern * @FUNC+@ FcPatternVaBuild @TYPE1+@ FcPattern * @ARG1+@ pattern @TYPE2+@ va_list% @ARG2+@ va @PROTOTYPE++@ @RET++@ void @FUNC++@ FcPatternVapBuild @TYPE1++@ FcPattern * @ARG1++@ result @TYPE2++@ FcPattern * @ARG2++@ pattern @TYPE3++@ va_list% @ARG3++@ va @PURPOSE@ Create patterns from arguments @DESC@ Builds a pattern using a list of objects, types and values. Each value to be entered in the pattern is specified with three arguments: Object name, a string describing the property to be added. Object type, one of the FcType enumerated values Value, not an FcValue, but the raw type as passed to any of the FcPatternAdd<type> functions. Must match the type of the second argument. The argument list is terminated by a null object name, no object type nor value need be passed for this. The values are added to `pattern', if `pattern' is null, a new pattern is created. In either case, the pattern is returned. Example pattern = FcPatternBuild (0, FC_FAMILY, FcTypeString, "Times", (char *) 0); FcPatternVaBuild is used when the arguments are already in the form of a varargs value. FcPatternVapBuild is a macro version of FcPatternVaBuild which returns its result directly in the result variable. @@ @RET@ FcBool @FUNC@ FcPatternDel @TYPE1@ FcPattern * @ARG1@ p @TYPE2@ const char * @ARG2@ object @PURPOSE@ Delete a property from a pattern @DESC@ Deletes all values associated with the property `object', returning whether the property existed or not. @@ @RET@ FcBool @FUNC@ FcPatternRemove @TYPE1@ FcPattern * @ARG1@ p @TYPE2@ const char * @ARG2@ object @TYPE3@ int% @ARG3@ id @PURPOSE@ Remove one object of the specified type from the pattern @DESC@ Removes the value associated with the property `object' at position `id', returning whether the property existed and had a value at that position or not. @@ @RET@ void @FUNC@ FcPatternPrint @TYPE1@ const FcPattern * @ARG1@ p @PURPOSE@ Print a pattern for debugging @DESC@ Prints an easily readable version of the pattern to stdout. There is no provision for reparsing data in this format, it's just for diagnostics and debugging. @@ @RET@ void @FUNC@ FcDefaultSubstitute @TYPE1@ FcPattern * @ARG1@ pattern @PURPOSE@ Perform default substitutions in a pattern @DESC@ Supplies default values for underspecified font patterns: Patterns without a specified style or weight are set to Medium Patterns without a specified style or slant are set to Roman Patterns without a specified pixel size are given one computed from any specified point size (default 12), dpi (default 75) and scale (default 1). @@ @RET@ FcPattern * @FUNC@ FcNameParse @TYPE1@ const FcChar8 * @ARG1@ name @PURPOSE@ Parse a pattern string @DESC@ Converts name from the standard text format described above into a pattern. @@ @RET@ FcChar8 * @FUNC@ FcNameUnparse @TYPE1@ FcPattern * @ARG1@ pat @PURPOSE@ Convert a pattern back into a string that can be parsed @DESC@ Converts the given pattern into the standard text format described above. The return value is not static, but instead refers to newly allocated memory which should be freed by the caller using free(). @@ fontconfig-2.11.1/doc/FcCharSetSubtractCount.30000664000076400007640000000067412313745357016060 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcCharSetSubtractCount" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcCharSetSubtractCount \- Subtract and count charsets .SH SYNOPSIS .nf \fB#include .sp FcChar32 FcCharSetSubtractCount (const FcCharSet *\fIa\fB, const FcCharSet *\fIb\fB); .fi\fR .SH "DESCRIPTION" .PP Returns the number of chars that are in \fIa\fR but not in \fIb\fR\&. fontconfig-2.11.1/doc/fclangset.sgml0000664000076400007640000011036312306317520014265 00000000000000 FcLangSetCreate 3 Fontconfig &version; FcLangSetCreate create a langset object #include <fontconfig/fontconfig.h> FcLangSet * FcLangSetCreate void Description FcLangSetCreate creates a new FcLangSet object. FcLangSetDestroy 3 Fontconfig &version; FcLangSetDestroy destroy a langset object #include <fontconfig/fontconfig.h> void FcLangSetDestroy FcLangSet *ls Description FcLangSetDestroy destroys a FcLangSet object, freeing all memory associated with it. FcLangSetCopy 3 Fontconfig &version; FcLangSetCopy copy a langset object #include <fontconfig/fontconfig.h> FcLangSet * FcLangSetCopy const FcLangSet *ls Description FcLangSetCopy creates a new FcLangSet object and populates it with the contents of ls. FcLangSetAdd 3 Fontconfig &version; FcLangSetAdd add a language to a langset #include <fontconfig/fontconfig.h> FcBool FcLangSetAdd FcLangSet *ls const FcChar8 *lang Description lang is added to ls. lang should be of the form Ll-Tt where Ll is a two or three letter language from ISO 639 and Tt is a territory from ISO 3166. FcLangSetDel 3 Fontconfig &version; FcLangSetDel delete a language from a langset #include <fontconfig/fontconfig.h> FcBool FcLangSetDel FcLangSet *ls const FcChar8 *lang Description lang is removed from ls. lang should be of the form Ll-Tt where Ll is a two or three letter language from ISO 639 and Tt is a territory from ISO 3166. Since version 2.9.0 FcLangSetUnion 3 Fontconfig &version; FcLangSetUnion Add langsets #include <fontconfig/fontconfig.h> FcLangSet * FcLangSetUnion const FcLangSet *ls_a const FcLangSet *ls_b Description Returns a set including only those languages found in either ls_a or ls_b. Since version 2.9.0 FcLangSetSubtract 3 Fontconfig &version; FcLangSetSubtract Subtract langsets #include <fontconfig/fontconfig.h> FcLangSet * FcLangSetSubtract const FcLangSet *ls_a const FcLangSet *ls_b Description Returns a set including only those languages found in ls_a but not in ls_b. Since version 2.9.0 FcLangSetCompare 3 Fontconfig &version; FcLangSetCompare compare language sets #include <fontconfig/fontconfig.h> FcLangResult FcLangSetCompare const FcLangSet *ls_a const FcLangSet *ls_b Description FcLangSetCompare compares language coverage for ls_a and ls_b. If they share any language and territory pair, this function returns FcLangEqual. If they share a language but differ in which territory that language is for, this function returns FcLangDifferentTerritory. If they share no languages in common, this function returns FcLangDifferentLang. FcLangSetContains 3 Fontconfig &version; FcLangSetContains check langset subset relation #include <fontconfig/fontconfig.h> FcBool FcLangSetContains const FcLangSet *ls_a const FcLangSet *ls_b Description FcLangSetContains returns FcTrue if ls_a contains every language in ls_b. ls_a will 'contain' a language from ls_b if ls_a has exactly the language, or either the language or ls_a has no territory. FcLangSetEqual 3 Fontconfig &version; FcLangSetEqual test for matching langsets #include <fontconfig/fontconfig.h> FcBool FcLangSetEqual const FcLangSet *ls_a const FcLangSet *ls_b Description Returns FcTrue if and only if ls_a supports precisely the same language and territory combinations as ls_b. FcLangSetHash 3 Fontconfig &version; FcLangSetHash return a hash value for a langset #include <fontconfig/fontconfig.h> FcChar32 FcLangSetHash const FcLangSet *ls Description This function returns a value which depends solely on the languages supported by ls. Any language which equals ls will have the same result from FcLangSetHash. However, two langsets with the same hash value may not be equal. FcLangSetHasLang 3 Fontconfig &version; FcLangSetHasLang test langset for language support #include <fontconfig/fontconfig.h> FcLangResult FcLangSetHasLang const FcLangSet *ls const FcChar8 *lang Description FcLangSetHasLang checks whether ls supports lang. If ls has a matching language and territory pair, this function returns FcLangEqual. If ls has a matching language but differs in which territory that language is for, this function returns FcLangDifferentTerritory. If ls has no matching language, this function returns FcLangDifferentLang. FcGetDefaultLangs 3 Fontconfig &version; FcGetDefaultLangs Get the default languages list #include <fontconfig/fontconfig.h> FcStrSet * FcGetDefaultLangs void Description Returns a string set of the default languages according to the environment variables on the system. This function looks for them in order of FC_LANG, LC_ALL, LC_CTYPE and LANG then. If there are no valid values in those environment variables, "en" will be set as fallback. Since version 2.9.91 FcLangSetGetLangs 3 Fontconfig &version; FcLangSetGetLangs get the list of languages in the langset #include <fontconfig/fontconfig.h> FcStrSet * FcLangSetGetLangs const FcLangSet *ls Description Returns a string set of all languages in langset. FcGetLangs 3 Fontconfig &version; FcGetLangs Get list of languages #include <fontconfig/fontconfig.h> FcStrSet * FcGetLangs void Description Returns a string set of all known languages. FcLangNormalize 3 Fontconfig &version; FcLangNormalize Normalize the language string #include <fontconfig/fontconfig.h> FcChar8 * FcLangNormalize const FcChar8 *lang Description Returns a string to make lang suitable on fontconfig. Since version 2.10.91 FcLangGetCharSet 3 Fontconfig &version; FcLangGetCharSet Get character map for a language #include <fontconfig/fontconfig.h> const FcCharSet * FcLangGetCharSet const FcChar8 *lang Description Returns the FcCharMap for a language. fontconfig-2.11.1/doc/FcPatternDel.30000664000076400007640000000067712313745357014053 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcPatternDel" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcPatternDel \- Delete a property from a pattern .SH SYNOPSIS .nf \fB#include .sp FcBool FcPatternDel (FcPattern *\fIp\fB, const char *\fIobject\fB); .fi\fR .SH "DESCRIPTION" .PP Deletes all values associated with the property `object', returning whether the property existed or not. fontconfig-2.11.1/doc/FcConfigAppFontAddDir.30000664000076400007640000000120612313745357015543 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigAppFontAddDir" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigAppFontAddDir \- Add fonts from directory to font database .SH SYNOPSIS .nf \fB#include .sp FcBool FcConfigAppFontAddDir (FcConfig *\fIconfig\fB, const FcChar8 *\fIdir\fB); .fi\fR .SH "DESCRIPTION" .PP Scans the specified directory for fonts, adding each one found to the application-specific set of fonts. Returns FcFalse if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue. If \fIconfig\fR is NULL, the current configuration is used. fontconfig-2.11.1/doc/FcNameConstant.30000664000076400007640000000074412313745357014376 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcNameConstant" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcNameConstant \- Get the value for a symbolic constant .SH SYNOPSIS .nf \fB#include .sp FcBool FcNameConstant (FcChar8 *\fIstring\fB, int *\fIresult\fB); .fi\fR .SH "DESCRIPTION" .PP Returns whether a symbolic constant with name \fIstring\fR is registered, placing the value of the constant in \fIresult\fR if present. fontconfig-2.11.1/doc/FcAtomicDestroy.30000664000076400007640000000053112313745357014564 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcAtomicDestroy" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcAtomicDestroy \- destroy an FcAtomic object .SH SYNOPSIS .nf \fB#include .sp void FcAtomicDestroy (FcAtomic *\fIatomic\fB); .fi\fR .SH "DESCRIPTION" .PP Destroys \fIatomic\fR\&. fontconfig-2.11.1/doc/fccharset.sgml0000664000076400007640000012257112306317520014265 00000000000000 FcCharSetCreate 3 Fontconfig &version; FcCharSetCreate Create an empty character set #include <fontconfig/fontconfig.h> FcCharSet * FcCharSetCreate void Description FcCharSetCreate allocates and initializes a new empty character set object. FcCharSetDestroy 3 Fontconfig &version; FcCharSetDestroy Destroy a character set #include <fontconfig/fontconfig.h> void FcCharSetDestroy FcCharSet *fcs Description FcCharSetDestroy decrements the reference count fcs. If the reference count becomes zero, all memory referenced is freed. FcCharSetAddChar 3 Fontconfig &version; FcCharSetAddChar Add a character to a charset #include <fontconfig/fontconfig.h> FcBool FcCharSetAddChar FcCharSet *fcs FcChar32 ucs4 Description FcCharSetAddChar adds a single Unicode char to the set, returning FcFalse on failure, either as a result of a constant set or from running out of memory. FcCharSetDelChar 3 Fontconfig &version; FcCharSetDelChar Add a character to a charset #include <fontconfig/fontconfig.h> FcBool FcCharSetDelChar FcCharSet *fcs FcChar32 ucs4 Description FcCharSetDelChar deletes a single Unicode char from the set, returning FcFalse on failure, either as a result of a constant set or from running out of memory. Since version 2.9.0 FcCharSetCopy 3 Fontconfig &version; FcCharSetCopy Copy a charset #include <fontconfig/fontconfig.h> FcCharSet * FcCharSetCopy FcCharSet *src Description Makes a copy of src; note that this may not actually do anything more than increment the reference count on src. FcCharSetEqual 3 Fontconfig &version; FcCharSetEqual Compare two charsets #include <fontconfig/fontconfig.h> FcBool FcCharSetEqual const FcCharSet *a const FcCharSet *b Description Returns whether a and b contain the same set of Unicode chars. FcCharSetIntersect 3 Fontconfig &version; FcCharSetIntersect Intersect charsets #include <fontconfig/fontconfig.h> FcCharSet * FcCharSetIntersect const FcCharSet *a const FcCharSet *b Description Returns a set including only those chars found in both a and b. FcCharSetUnion 3 Fontconfig &version; FcCharSetUnion Add charsets #include <fontconfig/fontconfig.h> FcCharSet * FcCharSetUnion const FcCharSet *a const FcCharSet *b Description Returns a set including only those chars found in either a or b. FcCharSetSubtract 3 Fontconfig &version; FcCharSetSubtract Subtract charsets #include <fontconfig/fontconfig.h> FcCharSet * FcCharSetSubtract const FcCharSet *a const FcCharSet *b Description Returns a set including only those chars found in a but not b. FcCharSetMerge 3 Fontconfig &version; FcCharSetMerge Merge charsets #include <fontconfig/fontconfig.h> FcBool FcCharSetMerge FcCharSet *a const FcCharSet *b FcBool *changed Description Adds all chars in b to a. In other words, this is an in-place version of FcCharSetUnion. If changed is not NULL, then it returns whether any new chars from b were added to a. Returns FcFalse on failure, either when a is a constant set or from running out of memory. FcCharSetHasChar 3 Fontconfig &version; FcCharSetHasChar Check a charset for a char #include <fontconfig/fontconfig.h> FcBool FcCharSetHasChar const FcCharSet *fcs FcChar32 ucs4 Description Returns whether fcs contains the char ucs4. FcCharSetCount 3 Fontconfig &version; FcCharSetCount Count entries in a charset #include <fontconfig/fontconfig.h> FcChar32 FcCharSetCount const FcCharSet *a Description Returns the total number of Unicode chars in a. FcCharSetIntersectCount 3 Fontconfig &version; FcCharSetIntersectCount Intersect and count charsets #include <fontconfig/fontconfig.h> FcChar32 FcCharSetIntersectCount const FcCharSet *a const FcCharSet *b Description Returns the number of chars that are in both a and b. FcCharSetSubtractCount 3 Fontconfig &version; FcCharSetSubtractCount Subtract and count charsets #include <fontconfig/fontconfig.h> FcChar32 FcCharSetSubtractCount const FcCharSet *a const FcCharSet *b Description Returns the number of chars that are in a but not in b. FcCharSetIsSubset 3 Fontconfig &version; FcCharSetIsSubset Test for charset inclusion #include <fontconfig/fontconfig.h> FcBool FcCharSetIsSubset const FcCharSet *a const FcCharSet *b Description Returns whether a is a subset of b. FcCharSetFirstPage 3 Fontconfig &version; FcCharSetFirstPage Start enumerating charset contents #include <fontconfig/fontconfig.h> FcChar32 FcCharSetFirstPage const FcCharSet *a FcChar32[FC_CHARSET_MAP_SIZE] map FcChar32 *next Description Builds an array of bits in map marking the first page of Unicode coverage of a. *next is set to contains the base code point for the next page in a. Returns the base code point for the page, or FC_CHARSET_DONE if a contains no pages. As an example, if FcCharSetFirstPage returns 0x300 and fills map with 0xffffffff 0xffffffff 0x01000008 0x44300002 0xffffd7f0 0xfffffffb 0xffff7fff 0xffff0003 Then the page contains code points 0x300 through 0x33f (the first 64 code points on the page) because map[0] and map[1] both have all their bits set. It also contains code points 0x343 (0x300 + 32*2 + (4-1)) and 0x35e (0x300 + 32*2 + (31-1)) because map[2] has the 4th and 31st bits set. The code points represented by map[3] and later are left as an excercise for the reader ;). FcCharSetNextPage 3 Fontconfig &version; FcCharSetNextPage Continue enumerating charset contents #include <fontconfig/fontconfig.h> FcChar32 FcCharSetNextPage const FcCharSet *a FcChar32[FC_CHARSET_MAP_SIZE] map FcChar32 *next Description Builds an array of bits in map marking the Unicode coverage of a for page containing *next (see the FcCharSetFirstPage description for details). *next is set to contains the base code point for the next page in a. Returns the base of code point for the page, or FC_CHARSET_DONE if a does not contain *next. FcCharSetCoverage 3 Fontconfig &version; FcCharSetCoverage DEPRECATED return coverage for a Unicode page #include <fontconfig/fontconfig.h> FcChar32 FcCharSetCoverage const FcCharSet *a FcChar32page FcChar32[8]result Description DEPRECATED This function returns a bitmask in result which indicates which code points in page are included in a. FcCharSetCoverage returns the next page in the charset which has any coverage. FcCharSetNew 3 Fontconfig &version; FcCharSetNew DEPRECATED alias for FcCharSetCreate #include <fontconfig/fontconfig.h> FcCharSet * FcCharSetNew void Description FcCharSetNew is a DEPRECATED alias for FcCharSetCreate. fontconfig-2.11.1/doc/FcDirCacheUnlink.30000664000076400007640000000110312313745357014615 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcDirCacheUnlink" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcDirCacheUnlink \- Remove all caches related to dir .SH SYNOPSIS .nf \fB#include .sp FcBool FcDirCacheUnlink (const FcChar8 *\fIdir\fB, FcConfig *\fIconfig\fB); .fi\fR .SH "DESCRIPTION" .PP Scans the cache directories in \fIconfig\fR, removing any instances of the cache file for \fIdir\fR\&. Returns FcFalse when some internal error occurs (out of memory, etc). Errors actually unlinking any files are ignored. fontconfig-2.11.1/doc/FcFreeTypeCharIndex.30000664000076400007640000000124212313745357015307 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcFreeTypeCharIndex" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcFreeTypeCharIndex \- map Unicode to glyph id .SH SYNOPSIS .nf \fB#include #include .sp FT_UInt FcFreeTypeCharIndex (FT_Face \fIface\fB, FcChar32 \fIucs4\fB); .fi\fR .SH "DESCRIPTION" .PP Maps a Unicode char to a glyph index. This function uses information from several possible underlying encoding tables to work around broken fonts. As a result, this function isn't designed to be used in performance sensitive areas; results from this function are intended to be cached by higher level functions. fontconfig-2.11.1/doc/FcFontSetList.30000664000076400007640000000127112313745357014216 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcFontSetList" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcFontSetList \- List fonts from a set of font sets .SH SYNOPSIS .nf \fB#include .sp FcFontSet * FcFontSetList (FcConfig *\fIconfig\fB, FcFontSet **\fIsets\fB, int\fInsets\fB, FcPattern *\fIpattern\fB, FcObjectSet *\fIobject_set\fB); .fi\fR .SH "DESCRIPTION" .PP Selects fonts matching \fIpattern\fR from \fIsets\fR, creates patterns from those fonts containing only the objects in \fIobject_set\fR and returns the set of unique such patterns. If \fIconfig\fR is NULL, the default configuration is checked to be up to date, and used. fontconfig-2.11.1/doc/FcStrSetMember.30000664000076400007640000000060612313745357014355 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcStrSetMember" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcStrSetMember \- check set for membership .SH SYNOPSIS .nf \fB#include .sp FcBool FcStrSetMember (FcStrSet *\fIset\fB, const FcChar8 *\fIs\fB); .fi\fR .SH "DESCRIPTION" .PP Returns whether \fIs\fR is a member of \fIset\fR\&. fontconfig-2.11.1/doc/FcAtomicCreate.30000664000076400007640000000116712313745357014344 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcAtomicCreate" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcAtomicCreate \- create an FcAtomic object .SH SYNOPSIS .nf \fB#include .sp FcAtomic * FcAtomicCreate (const FcChar8 *\fIfile\fB); .fi\fR .SH "DESCRIPTION" .PP Creates a data structure containing data needed to control access to \fIfile\fR\&. Writing is done to a separate file. Once that file is complete, the original configuration file is atomically replaced so that reading process always see a consistent and complete file without the need to lock for reading. fontconfig-2.11.1/doc/FcPatternEqualSubset.30000664000076400007640000000076712313745357015604 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcPatternEqualSubset" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcPatternEqualSubset \- Compare portions of patterns .SH SYNOPSIS .nf \fB#include .sp FcBool FcPatternEqualSubset (const FcPattern *\fIpa\fB, const FcPattern *\fIpb\fB, const FcObjectSet *\fIos\fB); .fi\fR .SH "DESCRIPTION" .PP Returns whether \fIpa\fR and \fIpb\fR have exactly the same values for all of the objects in \fIos\fR\&. fontconfig-2.11.1/doc/fcvalue.sgml0000664000076400007640000002031412306317520013740 00000000000000 FcValueDestroy 3 Fontconfig &version; FcValueDestroy Free a value #include <fontconfig/fontconfig.h> void FcValueDestroy FcValue v Description Frees any memory referenced by v. Values of type FcTypeString, FcTypeMatrix and FcTypeCharSet reference memory, the other types do not. FcValueSave 3 Fontconfig &version; FcValueSave Copy a value #include <fontconfig/fontconfig.h> FcValue FcValueSave FcValue v Description Returns a copy of v duplicating any object referenced by it so that v may be safely destroyed without harming the new value. FcValuePrint 3 Fontconfig &version; FcValuePrint Print a value to stdout #include <fontconfig/fontconfig.h> void FcValuePrint FcValue v Description Prints a human-readable representation of v to stdout. The format should not be considered part of the library specification as it may change in the future. FcValueEqual 3 Fontconfig &version; FcValueEqual Test two values for equality #include <fontconfig/fontconfig.h> FcBool FcValueEqual FcValue v_a FcValue v_b Description Compares two values. Integers and Doubles are compared as numbers; otherwise the two values have to be the same type to be considered equal. Strings are compared ignoring case. fontconfig-2.11.1/doc/FcFontSetSortDestroy.30000664000076400007640000000077412313745357015613 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcFontSetSortDestroy" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcFontSetSortDestroy \- DEPRECATED destroy a font set .SH SYNOPSIS .nf \fB#include .sp FcFontSetSortDestroy (FcFontSet *\fIset\fB); .fi\fR .SH "DESCRIPTION" .PP This function is DEPRECATED. \fBFcFontSetSortDestroy\fR destroys \fIset\fR by calling \fBFcFontSetDestroy\fR\&. Applications should use \fBFcFontSetDestroy\fR directly instead. fontconfig-2.11.1/doc/FcDefaultSubstitute.30000664000076400007640000000132512313745357015460 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcDefaultSubstitute" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcDefaultSubstitute \- Perform default substitutions in a pattern .SH SYNOPSIS .nf \fB#include .sp void FcDefaultSubstitute (FcPattern *\fIpattern\fB); .fi\fR .SH "DESCRIPTION" .PP Supplies default values for underspecified font patterns: .TP 0.2i \(bu Patterns without a specified style or weight are set to Medium .TP 0.2i \(bu Patterns without a specified style or slant are set to Roman .TP 0.2i \(bu Patterns without a specified pixel size are given one computed from any specified point size (default 12), dpi (default 75) and scale (default 1). .PP fontconfig-2.11.1/doc/fcpattern.sgml0000664000076400007640000014243312306317520014310 00000000000000 FcPatternCreate 3 Fontconfig &version; FcPatternCreate Create a pattern #include <fontconfig/fontconfig.h> FcPattern * FcPatternCreate void Description Creates a pattern with no properties; used to build patterns from scratch. FcPatternDuplicate 3 Fontconfig &version; FcPatternDuplicate Copy a pattern #include <fontconfig/fontconfig.h> FcPattern * FcPatternDuplicate const FcPattern *p Description Copy a pattern, returning a new pattern that matches p. Each pattern may be modified without affecting the other. FcPatternReference 3 Fontconfig &version; FcPatternReference Increment pattern reference count #include <fontconfig/fontconfig.h> void FcPatternReference FcPattern *p Description Add another reference to p. Patterns are freed only when the reference count reaches zero. FcPatternDestroy 3 Fontconfig &version; FcPatternDestroy Destroy a pattern #include <fontconfig/fontconfig.h> void FcPatternDestroy FcPattern *p Description Decrement the pattern reference count. If all references are gone, destroys the pattern, in the process destroying all related values. FcPatternEqual 3 Fontconfig &version; FcPatternEqual Compare patterns #include <fontconfig/fontconfig.h> FcBool FcPatternEqual const FcPattern *pa const FcPattern *pb Description Returns whether pa and pb are exactly alike. FcPatternEqualSubset 3 Fontconfig &version; FcPatternEqualSubset Compare portions of patterns #include <fontconfig/fontconfig.h> FcBool FcPatternEqualSubset const FcPattern *pa const FcPattern *pb const FcObjectSet *os Description Returns whether pa and pb have exactly the same values for all of the objects in os. FcPatternFilter 3 Fontconfig &version; FcPatternFilter Filter the objects of pattern #include <fontconfig/fontconfig.h> FcPattern * FcPatternFilter FcPattern *p const FcObjectSet * Description Returns a new pattern that only has those objects from p that are in os. If os is NULL, a duplicate of p is returned. FcPatternHash 3 Fontconfig &version; FcPatternHash Compute a pattern hash value #include <fontconfig/fontconfig.h> FcChar32 FcPatternHash const FcPattern *p Description Returns a 32-bit number which is the same for any two patterns which are equal. FcPatternAdd 3 Fontconfig &version; FcPatternAdd Add a value to a pattern #include <fontconfig/fontconfig.h> FcBool FcPatternAdd FcPattern *p const char *object FcValue value FcBool append Description Adds a single value to the list of values associated with the property named `object. If `append is FcTrue, the value is added at the end of any existing list, otherwise it is inserted at the beginning. `value' is saved (with FcValueSave) when inserted into the pattern so that the library retains no reference to any application-supplied data structure. FcPatternAddWeak 3 Fontconfig &version; FcPatternAddWeak Add a value to a pattern with weak binding #include <fontconfig/fontconfig.h> FcBool FcPatternAddWeak FcPattern *p const char *object FcValue value FcBool append Description FcPatternAddWeak is essentially the same as FcPatternAdd except that any values added to the list have binding weak instead of strong. FcPatternAdd-Type 3 Fontconfig &version; FcPatternAddInteger FcPatternAddDouble FcPatternAddString FcPatternAddMatrix FcPatternAddCharSet FcPatternAddBool FcPatternAddFTFace FcPatternAddLangSet Add a typed value to a pattern #include <fontconfig/fontconfig.h> FcBool FcPatternAddInteger FcPattern *p const char *object int i FcBool FcPatternAddDouble FcPattern *p const char *object double d FcBool FcPatternAddString FcPattern *p const char *object const FcChar8 *s FcBool FcPatternAddMatrix FcPattern *p const char *object const FcMatrix *m FcBool FcPatternAddCharSet FcPattern *p const char *object const FcCharSet *c FcBool FcPatternAddBool FcPattern *p const char *object FcBool b FcBool FcPatternAddFTFace FcPattern *p const char *object const FT_Facef FcBool FcPatternAddLangSet FcPattern *p const char *object const FcLangSet *l Description These are all convenience functions that insert objects of the specified type into the pattern. Use these in preference to FcPatternAdd as they will provide compile-time typechecking. These all append values to any existing list of values. FcPatternGet 3 Fontconfig &version; FcPatternGet Return a value from a pattern #include <fontconfig/fontconfig.h> FcResult FcPatternGet FcPattern *p const char *object int id FcValue *v Description Returns in v the id'th value associated with the property object. The value returned is not a copy, but rather refers to the data stored within the pattern directly. Applications must not free this value. FcPatternGet-Type 3 Fontconfig &version; FcPatternGetInteger FcPatternGetDouble FcPatternGetString FcPatternGetMatrix FcPatternGetCharSet FcPatternGetBool FcPatternGetFTFace FcPatternGetLangSet Return a typed value from a pattern #include <fontconfig/fontconfig.h> FcResult FcPatternGetInteger FcPattern *p const char *object int n int *i FcResult FcPatternGetDouble FcPattern *p const char *object int n double *d FcResult FcPatternGetString FcPattern *p const char *object int n FcChar8 **s FcResult FcPatternGetMatrix FcPattern *p const char *object int n FcMatrix **s FcResult FcPatternGetCharSet FcPattern *p const char *object int n FcCharSet **c FcResult FcPatternGetBool FcPattern *p const char *object int n FcBool *b FcResult FcPatternGetFTFace FcPattern *p const char *object int n FcResult FcPatternGetLangSet FcPattern *p const char *object FT_Face *f Description These are convenience functions that call FcPatternGet and verify that the returned data is of the expected type. They return FcResultTypeMismatch if this is not the case. Note that these (like FcPatternGet) do not make a copy of any data structure referenced by the return value. Use these in preference to FcPatternGet to provide compile-time typechecking. FcPatternBuild 3 Fontconfig &version; FcPatternBuild FcPatternVaBuild FcPatternVapBuild Create patterns from arguments #include <fontconfig/fontconfig.h> FcPattern * FcPatternBuild FcPattern *pattern ... FcPattern * FcPatternVaBuild FcPattern *pattern va_list va void FcPatternVapBuild FcPattern *result FcPattern *pattern va_list va Description Builds a pattern using a list of objects, types and values. Each value to be entered in the pattern is specified with three arguments: Object name, a string describing the property to be added. Object type, one of the FcType enumerated values Value, not an FcValue, but the raw type as passed to any of the FcPatternAdd<type> functions. Must match the type of the second argument. The argument list is terminated by a null object name, no object type nor value need be passed for this. The values are added to `pattern', if `pattern' is null, a new pattern is created. In either case, the pattern is returned. Example pattern = FcPatternBuild (0, FC_FAMILY, FcTypeString, "Times", (char *) 0); FcPatternVaBuild is used when the arguments are already in the form of a varargs value. FcPatternVapBuild is a macro version of FcPatternVaBuild which returns its result directly in the result variable. FcPatternDel 3 Fontconfig &version; FcPatternDel Delete a property from a pattern #include <fontconfig/fontconfig.h> FcBool FcPatternDel FcPattern *p const char *object Description Deletes all values associated with the property `object', returning whether the property existed or not. FcPatternRemove 3 Fontconfig &version; FcPatternRemove Remove one object of the specified type from the pattern #include <fontconfig/fontconfig.h> FcBool FcPatternRemove FcPattern *p const char *object int id Description Removes the value associated with the property `object' at position `id', returning whether the property existed and had a value at that position or not. FcPatternPrint 3 Fontconfig &version; FcPatternPrint Print a pattern for debugging #include <fontconfig/fontconfig.h> void FcPatternPrint const FcPattern *p Description Prints an easily readable version of the pattern to stdout. There is no provision for reparsing data in this format, it's just for diagnostics and debugging. FcDefaultSubstitute 3 Fontconfig &version; FcDefaultSubstitute Perform default substitutions in a pattern #include <fontconfig/fontconfig.h> void FcDefaultSubstitute FcPattern *pattern Description Supplies default values for underspecified font patterns: Patterns without a specified style or weight are set to Medium Patterns without a specified style or slant are set to Roman Patterns without a specified pixel size are given one computed from any specified point size (default 12), dpi (default 75) and scale (default 1). FcNameParse 3 Fontconfig &version; FcNameParse Parse a pattern string #include <fontconfig/fontconfig.h> FcPattern * FcNameParse const FcChar8 *name Description Converts name from the standard text format described above into a pattern. FcNameUnparse 3 Fontconfig &version; FcNameUnparse Convert a pattern back into a string that can be parsed #include <fontconfig/fontconfig.h> FcChar8 * FcNameUnparse FcPattern *pat Description Converts the given pattern into the standard text format described above. The return value is not static, but instead refers to newly allocated memory which should be freed by the caller using free(). fontconfig-2.11.1/doc/FcCacheCreateTagFile.30000664000076400007640000000073512313745357015367 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcCacheCreateTagFile" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcCacheCreateTagFile \- Create CACHEDIR.TAG at cache directory. .SH SYNOPSIS .nf \fB#include .sp void FcCacheCreateTagFile (const FcConfig *\fIconfig\fB); .fi\fR .SH "DESCRIPTION" .PP This tries to create CACHEDIR.TAG file at the cache directory registered to \fIconfig\fR\&. .SH "SINCE" .PP version 2.9.91 fontconfig-2.11.1/doc/FcStrCmp.30000664000076400007640000000061012313745357013204 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcStrCmp" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcStrCmp \- compare UTF-8 strings .SH SYNOPSIS .nf \fB#include .sp int FcStrCmp (const FcChar8 *\fIs1\fB, const FcChar8 *\fIs2\fB); .fi\fR .SH "DESCRIPTION" .PP Returns the usual <0, 0, >0 result of comparing \fIs1\fR and \fIs2\fR\&. fontconfig-2.11.1/doc/fcblanks.sgml0000664000076400007640000001765012306317520014107 00000000000000 FcBlanksCreate 3 Fontconfig &version; FcBlanksCreate Create an FcBlanks #include <fontconfig/fontconfig.h> FcBlanks * FcBlanksCreate void Description Creates an empty FcBlanks object. FcBlanksDestroy 3 Fontconfig &version; FcBlanksDestroy Destroy and FcBlanks #include <fontconfig/fontconfig.h> void FcBlanksDestroy FcBlanks *b Description Destroys an FcBlanks object, freeing any associated memory. FcBlanksAdd 3 Fontconfig &version; FcBlanksAdd Add a character to an FcBlanks #include <fontconfig/fontconfig.h> FcBool FcBlanksAdd FcBlanks *b FcChar32 ucs4 Description Adds a single character to an FcBlanks object, returning FcFalse if this process ran out of memory. FcBlanksIsMember 3 Fontconfig &version; FcBlanksIsMember Query membership in an FcBlanks #include <fontconfig/fontconfig.h> FcBool FcBlanksIsMember FcBlanks *b FcChar32 ucs4 Description Returns whether the specified FcBlanks object contains the indicated Unicode value. fontconfig-2.11.1/doc/FcStrSetCreate.30000664000076400007640000000050512313745357014347 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcStrSetCreate" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcStrSetCreate \- create a string set .SH SYNOPSIS .nf \fB#include .sp FcStrSet * FcStrSetCreate (void\fI\fB); .fi\fR .SH "DESCRIPTION" .PP Create an empty set. fontconfig-2.11.1/doc/fontconfig-user.html0000664000076400007640000012041112313745372015434 00000000000000 fonts-conf

fonts-conf

Name

fonts.conf -- Font configuration files

Synopsis

   /etc/fonts/fonts.conf
   /etc/fonts/fonts.dtd
   /etc/fonts/conf.d
   $XDG_CONFIG_HOME/fontconfig/conf.d
   $XDG_CONFIG_HOME/fontconfig/fonts.conf
   ~/.fonts.conf.d
   ~/.fonts.conf

Description

Fontconfig is a library designed to provide system-wide font configuration, customization and application access.

Functional Overview

Fontconfig contains two essential modules, the configuration module which builds an internal configuration from XML files and the matching module which accepts font patterns and returns the nearest matching font.

Font Configuration

The configuration module consists of the FcConfig datatype, libexpat and FcConfigParse which walks over an XML tree and amends a configuration with data found within. From an external perspective, configuration of the library consists of generating a valid XML tree and feeding that to FcConfigParse. The only other mechanism provided to applications for changing the running configuration is to add fonts and directories to the list of application-provided font files.

The intent is to make font configurations relatively static, and shared by as many applications as possible. It is hoped that this will lead to more stable font selection when passing names from one application to another. XML was chosen as a configuration file format because it provides a format which is easy for external agents to edit while retaining the correct structure and syntax.

Font configuration is separate from font matching; applications needing to do their own matching can access the available fonts from the library and perform private matching. The intent is to permit applications to pick and choose appropriate functionality from the library instead of forcing them to choose between this library and a private configuration mechanism. The hope is that this will ensure that configuration of fonts for all applications can be centralized in one place. Centralizing font configuration will simplify and regularize font installation and customization.

Font Properties

While font patterns may contain essentially any properties, there are some well known properties with associated types. Fontconfig uses some of these properties for font matching and font completion. Others are provided as a convenience for the applications' rendering mechanism.

  Property        Type    Description
  --------------------------------------------------------------
  family          String  Font family names
  familylang      String  Languages corresponding to each family
  style           String  Font style. Overrides weight and slant
  stylelang       String  Languages corresponding to each style
  fullname        String  Font full names (often includes style)
  fullnamelang    String  Languages corresponding to each fullname
  slant           Int     Italic, oblique or roman
  weight          Int     Light, medium, demibold, bold or black
  size            Double  Point size
  width           Int     Condensed, normal or expanded
  aspect          Double  Stretches glyphs horizontally before hinting
  pixelsize       Double  Pixel size
  spacing         Int     Proportional, dual-width, monospace or charcell
  foundry         String  Font foundry name
  antialias       Bool    Whether glyphs can be antialiased
  hinting         Bool    Whether the rasterizer should use hinting
  hintstyle       Int     Automatic hinting style
  verticallayout  Bool    Use vertical layout
  autohint        Bool    Use autohinter instead of normal hinter
  globaladvance   Bool    Use font global advance data (deprecated)
  file            String  The filename holding the font
  index           Int     The index of the font within the file
  ftface          FT_Face Use the specified FreeType face object
  rasterizer      String  Which rasterizer is in use (deprecated)
  outline         Bool    Whether the glyphs are outlines
  scalable        Bool    Whether glyphs can be scaled
  scale           Double  Scale factor for point->pixel conversions
  dpi             Double  Target dots per inch
  rgba            Int     unknown, rgb, bgr, vrgb, vbgr,
                          none - subpixel geometry
  lcdfilter       Int     Type of LCD filter
  minspace        Bool    Eliminate leading from line spacing
  charset         CharSet Unicode chars encoded by the font
  lang            String  List of RFC-3066-style languages this
                          font supports
  fontversion     Int     Version number of the font
  capability      String  List of layout capabilities in the font
  embolden        Bool    Rasterizer should synthetically embolden the font
  fontfeatures    String  List of the feature tags in OpenType to be enabled
  prgname         String  String  Name of the running program
    

Font Matching

Fontconfig performs matching by measuring the distance from a provided pattern to all of the available fonts in the system. The closest matching font is selected. This ensures that a font will always be returned, but doesn't ensure that it is anything like the requested pattern.

Font matching starts with an application constructed pattern. The desired attributes of the resulting font are collected together in a pattern. Each property of the pattern can contain one or more values; these are listed in priority order; matches earlier in the list are considered "closer" than matches later in the list.

The initial pattern is modified by applying the list of editing instructions specific to patterns found in the configuration; each consists of a match predicate and a set of editing operations. They are executed in the order they appeared in the configuration. Each match causes the associated sequence of editing operations to be applied.

After the pattern has been edited, a sequence of default substitutions are performed to canonicalize the set of available properties; this avoids the need for the lower layers to constantly provide default values for various font properties during rendering.

The canonical font pattern is finally matched against all available fonts. The distance from the pattern to the font is measured for each of several properties: foundry, charset, family, lang, spacing, pixelsize, style, slant, weight, antialias, rasterizer and outline. This list is in priority order -- results of comparing earlier elements of this list weigh more heavily than later elements.

There is one special case to this rule; family names are split into two bindings; strong and weak. Strong family names are given greater precedence in the match than lang elements while weak family names are given lower precedence than lang elements. This permits the document language to drive font selection when any document specified font is unavailable.

The pattern representing that font is augmented to include any properties found in the pattern but not found in the font itself; this permits the application to pass rendering instructions or any other data through the matching system. Finally, the list of editing instructions specific to fonts found in the configuration are applied to the pattern. This modified pattern is returned to the application.

The return value contains sufficient information to locate and rasterize the font, including the file name, pixel size and other rendering data. As none of the information involved pertains to the FreeType library, applications are free to use any rasterization engine or even to take the identified font file and access it directly.

The match/edit sequences in the configuration are performed in two passes because there are essentially two different operations necessary -- the first is to modify how fonts are selected; aliasing families and adding suitable defaults. The second is to modify how the selected fonts are rasterized. Those must apply to the selected font, not the original pattern as false matches will often occur.

Font Names

Fontconfig provides a textual representation for patterns that the library can both accept and generate. The representation is in three parts, first a list of family names, second a list of point sizes and finally a list of additional properties:

	<families>-<point sizes>:<name1>=<values1>:<name2>=<values2>...
    

Values in a list are separated with commas. The name needn't include either families or point sizes; they can be elided. In addition, there are symbolic constants that simultaneously indicate both a name and a value. Here are some examples:

  Name                            Meaning
  ----------------------------------------------------------
  Times-12                        12 point Times Roman
  Times-12:bold                   12 point Times Bold
  Courier:italic                  Courier Italic in the default size
  Monospace:matrix=1 .1 0 1       The users preferred monospace font
                                  with artificial obliquing
    

The '\', '-', ':' and ',' characters in family names must be preceded by a '\' character to avoid having them misinterpreted. Similarly, values containing '\', '=', '_', ':' and ',' must also have them preceded by a '\' character. The '\' characters are stripped out of the family name and values as the font name is read.

Debugging Applications

To help diagnose font and applications problems, fontconfig is built with a large amount of internal debugging left enabled. It is controlled by means of the FC_DEBUG environment variable. The value of this variable is interpreted as a number, and each bit within that value controls different debugging messages.

  Name         Value    Meaning
  ---------------------------------------------------------
  MATCH            1    Brief information about font matching
  MATCHV           2    Extensive font matching information
  EDIT             4    Monitor match/test/edit execution
  FONTSET          8    Track loading of font information at startup
  CACHE           16    Watch cache files being written
  CACHEV          32    Extensive cache file writing information
  PARSE           64    (no longer in use)
  SCAN           128    Watch font files being scanned to build caches
  SCANV          256    Verbose font file scanning information
  MEMORY         512    Monitor fontconfig memory usage
  CONFIG        1024    Monitor which config files are loaded
  LANGSET       2048    Dump char sets used to construct lang values
  OBJTYPES      4096    Display message when value typechecks fail
  

Add the value of the desired debug levels together and assign that (in base 10) to the FC_DEBUG environment variable before running the application. Output from these statements is sent to stdout.

Lang Tags

Each font in the database contains a list of languages it supports. This is computed by comparing the Unicode coverage of the font with the orthography of each language. Languages are tagged using an RFC-3066 compatible naming and occur in two parts -- the ISO 639 language tag followed a hyphen and then by the ISO 3166 country code. The hyphen and country code may be elided.

Fontconfig has orthographies for several languages built into the library. No provision has been made for adding new ones aside from rebuilding the library. It currently supports 122 of the 139 languages named in ISO 639-1, 141 of the languages with two-letter codes from ISO 639-2 and another 30 languages with only three-letter codes. Languages with both two and three letter codes are provided with only the two letter code.

For languages used in multiple territories with radically different character sets, fontconfig includes per-territory orthographies. This includes Azerbaijani, Kurdish, Pashto, Tigrinya and Chinese.

Configuration File Format

Configuration files for fontconfig are stored in XML format; this format makes external configuration tools easier to write and ensures that they will generate syntactically correct configuration files. As XML files are plain text, they can also be manipulated by the expert user using a text editor.

The fontconfig document type definition resides in the external entity "fonts.dtd"; this is normally stored in the default font configuration directory (/etc/fonts). Each configuration file should contain the following structure:
	<?xml version="1.0"?>
	<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
	<fontconfig>
	...
	</fontconfig>
    

<fontconfig>

This is the top level element for a font configuration and can contain <dir>, <cachedir>, <include>, <match> and <alias> elements in any order.

<dir prefix="default">

This element contains a directory name which will be scanned for font files to include in the set of available fonts. If 'prefix' is set to "xdg", the value in the XDG_DATA_HOME environment variable will be added as the path prefix. please see XDG Base Directory Specification for more details.

<cachedir prefix="default">

This element contains a directory name that is supposed to be stored or read the cache of font information. If multiple elements are specified in the configuration file, the directory that can be accessed first in the list will be used to store the cache files. If it starts with '~', it refers to a directory in the users home directory. If 'prefix' is set to "xdg", the value in the XDG_CACHE_HOME environment variable will be added as the path prefix. please see XDG Base Directory Specification for more details. The default directory is ``$XDG_CACHE_HOME/fontconfig'' and it contains the cache files named ``<hash value>-<architecture>.cache-<version'', where <version> is the font configureation file version number (currently 3).

<include ignore_missing="no" prefix="default">

This element contains the name of an additional configuration file or directory. If a directory, every file within that directory starting with an ASCII digit (U+0030 - U+0039) and ending with the string ``.conf'' will be processed in sorted order. When the XML datatype is traversed by FcConfigParse, the contents of the file(s) will also be incorporated into the configuration by passing the filename(s) to FcConfigLoadAndParse. If 'ignore_missing' is set to "yes" instead of the default "no", a missing file or directory will elicit no warning message from the library. If 'prefix' is set to "xdg", the value in the XDG_CONFIG_HOME environment variable will be added as the path prefix. please see XDG Base Directory Specification for more details.

<config>

This element provides a place to consolidate additional configuration information. <config> can contain <blank> and <rescan> elements in any order.

<blank>

Fonts often include "broken" glyphs which appear in the encoding but are drawn as blanks on the screen. Within the <blank> element, place each Unicode characters which is supposed to be blank in an <int> element. Characters outside of this set which are drawn as blank will be elided from the set of characters supported by the font.

<rescan>

The <rescan> element holds an <int> element which indicates the default interval between automatic checks for font configuration changes. Fontconfig will validate all of the configuration files and directories and automatically rebuild the internal datastructures when this interval passes.

<selectfont>

This element is used to black/white list fonts from being listed or matched against. It holds acceptfont and rejectfont elements.

<acceptfont>

Fonts matched by an acceptfont element are "whitelisted"; such fonts are explicitly included in the set of fonts used to resolve list and match requests; including them in this list protects them from being "blacklisted" by a rejectfont element. Acceptfont elements include glob and pattern elements which are used to match fonts.

<rejectfont>

Fonts matched by an rejectfont element are "blacklisted"; such fonts are excluded from the set of fonts used to resolve list and match requests as if they didn't exist in the system. Rejectfont elements include glob and pattern elements which are used to match fonts.

<glob>

Glob elements hold shell-style filename matching patterns (including ? and *) which match fonts based on their complete pathnames. This can be used to exclude a set of directories (/usr/share/fonts/uglyfont*), or particular font file types (*.pcf.gz), but the latter mechanism relies rather heavily on filenaming conventions which can't be relied upon. Note that globs only apply to directories, not to individual fonts.

<pattern>

Pattern elements perform list-style matching on incoming fonts; that is, they hold a list of elements and associated values. If all of those elements have a matching value, then the pattern matches the font. This can be used to select fonts based on attributes of the font (scalable, bold, etc), which is a more reliable mechanism than using file extensions. Pattern elements include patelt elements.

<patelt name="property">

Patelt elements hold a single pattern element and list of values. They must have a 'name' attribute which indicates the pattern element name. Patelt elements include int, double, string, matrix, bool, charset and const elements.

<match target="pattern">

This element holds first a (possibly empty) list of <test> elements and then a (possibly empty) list of <edit> elements. Patterns which match all of the tests are subjected to all the edits. If 'target' is set to "font" instead of the default "pattern", then this element applies to the font name resulting from a match rather than a font pattern to be matched. If 'target' is set to "scan", then this element applies when the font is scanned to build the fontconfig database.

<test qual="any" name="property" target="default" compare="eq">

This element contains a single value which is compared with the target ('pattern', 'font', 'scan' or 'default') property "property" (substitute any of the property names seen above). 'compare' can be one of "eq", "not_eq", "less", "less_eq", "more", "more_eq", "contains" or "not_contains". 'qual' may either be the default, "any", in which case the match succeeds if any value associated with the property matches the test value, or "all", in which case all of the values associated with the property must match the test value. 'ignore-blanks' takes a boolean value. if 'ignore-blanks' is set "true", any blanks in the string will be ignored on its comparison. this takes effects only when compare="eq" or compare="not_eq". When used in a <match target="font"> element, the target= attribute in the <test> element selects between matching the original pattern or the font. "default" selects whichever target the outer <match> element has selected.

<edit name="property" mode="assign" binding="weak">

This element contains a list of expression elements (any of the value or operator elements). The expression elements are evaluated at run-time and modify the property "property". The modification depends on whether "property" was matched by one of the associated <test> elements, if so, the modification may affect the first matched value. Any values inserted into the property are given the indicated binding ("strong", "weak" or "same") with "same" binding using the value from the matched pattern element. 'mode' is one of:
  Mode                    With Match              Without Match
  ---------------------------------------------------------------------
  "assign"                Replace matching value  Replace all values
  "assign_replace"        Replace all values      Replace all values
  "prepend"               Insert before matching  Insert at head of list
  "prepend_first"         Insert at head of list  Insert at head of list
  "append"                Append after matching   Append at end of list
  "append_last"           Append at end of list   Append at end of list
  "delete"                Delete matching value   Delete all values
  "delete_all"            Delete all values       Delete all values
    

<int>, <double>, <string>, <bool>

These elements hold a single value of the indicated type. <bool> elements hold either true or false. An important limitation exists in the parsing of floating point numbers -- fontconfig requires that the mantissa start with a digit, not a decimal point, so insert a leading zero for purely fractional values (e.g. use 0.5 instead of .5 and -0.5 instead of -.5).

<matrix>

This element holds four numerical expressions of an affine transformation. At their simplest these will be four <double> elements but they can also be more involved expressions.

<range>

This element holds the two <int> elements of a range representation.

<charset>

This element holds at least one <int> element of an Unicode code point or more.

<langset>

This element holds at least one <string> element of a RFC-3066-style languages or more.

<name>

Holds a property name. Evaluates to the first value from the property of the pattern. If the 'target' attribute is not present, it will default to 'default', in which case the property is returned from the font pattern during a target="font" match, and to the pattern during a target="pattern" match. The attribute can also take the values 'font' or 'pattern' to explicitly choose which pattern to use. It is an error to use a target of 'font' in a match that has target="pattern".

<const>

Holds the name of a constant; these are always integers and serve as symbolic names for common font values:
  Constant        Property        Value
  -------------------------------------
  thin            weight          0
  extralight      weight          40
  ultralight      weight          40
  light           weight          50
  book            weight          75
  regular         weight          80
  normal          weight          80
  medium          weight          100
  demibold        weight          180
  semibold        weight          180
  bold            weight          200
  extrabold       weight          205
  black           weight          210
  heavy           weight          210
  roman           slant           0
  italic          slant           100
  oblique         slant           110
  ultracondensed  width           50
  extracondensed  width           63
  condensed       width           75
  semicondensed   width           87
  normal          width           100
  semiexpanded    width           113
  expanded        width           125
  extraexpanded   width           150
  ultraexpanded   width           200
  proportional    spacing         0
  dual            spacing         90
  mono            spacing         100
  charcell        spacing         110
  unknown         rgba            0
  rgb             rgba            1
  bgr             rgba            2
  vrgb            rgba            3
  vbgr            rgba            4
  none            rgba            5
  lcdnone         lcdfilter       0
  lcddefault      lcdfilter       1
  lcdlight        lcdfilter       2
  lcdlegacy       lcdfilter       3
  hintnone        hintstyle       0
  hintslight      hintstyle       1
  hintmedium      hintstyle       2
  hintfull        hintstyle       3
    

<or>, <and>, <plus>, <minus>, <times>, <divide>

These elements perform the specified operation on a list of expression elements. <or> and <and> are boolean, not bitwise.

<eq>, <not_eq>, <less>, <less_eq>, <more>, <more_eq>, <contains>, <not_contains

These elements compare two values, producing a boolean result.

<not>

Inverts the boolean sense of its one expression element

<if>

This element takes three expression elements; if the value of the first is true, it produces the value of the second, otherwise it produces the value of the third.

<alias>

Alias elements provide a shorthand notation for the set of common match operations needed to substitute one font family for another. They contain a <family> element followed by optional <prefer>, <accept> and <default> elements. Fonts matching the <family> element are edited to prepend the list of <prefer>ed families before the matching <family>, append the <accept>able families after the matching <family> and append the <default> families to the end of the family list.

<family>

Holds a single font family name

<prefer>, <accept>, <default>

These hold a list of <family> elements to be used by the <alias> element.

EXAMPLE CONFIGURATION FILE

System configuration file

This is an example of a system-wide configuration file

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- /etc/fonts/fonts.conf file to configure system font access -->
<fontconfig>
<!-- 
	Find fonts in these directories
-->
<dir>/usr/share/fonts</dir>
<dir>/usr/X11R6/lib/X11/fonts</dir>

<!--
	Accept deprecated 'mono' alias, replacing it with 'monospace'
-->
<match target="pattern">
	<test qual="any" name="family"><string>mono</string></test>
	<edit name="family" mode="assign"><string>monospace</string></edit>
</match>

<!--
	Names not including any well known alias are given 'sans-serif'
-->
<match target="pattern">
	<test qual="all" name="family" mode="not_eq"><string>sans-serif</string></test>
	<test qual="all" name="family" mode="not_eq"><string>serif</string></test>
	<test qual="all" name="family" mode="not_eq"><string>monospace</string></test>
	<edit name="family" mode="append_last"><string>sans-serif</string></edit>
</match>

<!--
	Load per-user customization file, but don't complain
	if it doesn't exist
-->
<include ignore_missing="yes" prefix="xdg">fontconfig/fonts.conf</include>

<!--
	Load local customization files, but don't complain
	if there aren't any
-->
<include ignore_missing="yes">conf.d</include>
<include ignore_missing="yes">local.conf</include>

<!--
	Alias well known font names to available TrueType fonts.
	These substitute TrueType faces for similar Type1
	faces to improve screen appearance.
-->
<alias>
	<family>Times</family>
	<prefer><family>Times New Roman</family></prefer>
	<default><family>serif</family></default>
</alias>
<alias>
	<family>Helvetica</family>
	<prefer><family>Arial</family></prefer>
	<default><family>sans</family></default>
</alias>
<alias>
	<family>Courier</family>
	<prefer><family>Courier New</family></prefer>
	<default><family>monospace</family></default>
</alias>

<!--
	Provide required aliases for standard names
	Do these after the users configuration file so that
	any aliases there are used preferentially
-->
<alias>
	<family>serif</family>
	<prefer><family>Times New Roman</family></prefer>
</alias>
<alias>
	<family>sans</family>
	<prefer><family>Arial</family></prefer>
</alias>
<alias>
	<family>monospace</family>
	<prefer><family>Andale Mono</family></prefer>
</alias>

<--
	The example of the requirements of OR operator;
	If the 'family' contains 'Courier New' OR 'Courier'
	add 'monospace' as the alternative
-->
<match target="pattern">
	<test name="family" mode="eq">
		<string>Courier New</string>
	</test>
	<edit name="family" mode="prepend">
		<string>monospace</string>
	</edit>
</match>
<match target="pattern">
	<test name="family" mode="eq">
		<string>Courier</string>
	</test>
	<edit name="family" mode="prepend">
		<string>monospace</string>
	</edit>
</match>

</fontconfig>
    

User configuration file

This is an example of a per-user configuration file that lives in $XDG_CONFIG_HOME/fontconfig/fonts.conf

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- $XDG_CONFIG_HOME/fontconfig/fonts.conf for per-user font configuration -->
<fontconfig>

<!--
	Private font directory
-->
<dir prefix="xdg">fonts</dir>

<!--
	use rgb sub-pixel ordering to improve glyph appearance on
	LCD screens.  Changes affecting rendering, but not matching
	should always use target="font".
-->
<match target="font">
	<edit name="rgba" mode="assign"><const>rgb</const></edit>
</match>
<!--
	use WenQuanYi Zen Hei font when serif is requested for Chinese
-->
<match>
	<!--
		If you don't want to use WenQuanYi Zen Hei font for zh-tw etc,
		you can use zh-cn instead of zh.
		Please note, even if you set zh-cn, it still matches zh.
		if you don't like it, you can use compare="eq"
		instead of compare="contains".
	-->
	<test name="lang" compare="contains">
		<string>zh</string>
	</test>
	<test name="family">
		<string>serif</string>
	</test>
	<edit name="family" mode="prepend">
		<string>WenQuanYi Zen Hei</string>
	</edit>
</match>
<!--
	use VL Gothic font when sans-serif is requested for Japanese
-->
<match>
	<test name="lang" compare="contains">
		<string>ja</string>
	</test>
	<test name="family">
		<string>sans-serif</string>
	</test>
	<edit name="family" mode="prepend">
		<string>VL Gothic</string>
	</edit>
</match>
</fontconfig>
    

Files

fonts.conf contains configuration information for the fontconfig library consisting of directories to look at for font information as well as instructions on editing program specified font patterns before attempting to match the available fonts. It is in XML format.

conf.d is the conventional name for a directory of additional configuration files managed by external applications or the local administrator. The filenames starting with decimal digits are sorted in lexicographic order and used as additional configuration files. All of these files are in XML format. The master fonts.conf file references this directory in an <include> directive.

fonts.dtd is a DTD that describes the format of the configuration files.

$XDG_CONFIG_HOME/fontconfig/conf.d and ~/.fonts.conf.d is the conventional name for a per-user directory of (typically auto-generated) configuration files, although the actual location is specified in the global fonts.conf file. please note that ~/.fonts.conf.d is deprecated now. it will not be read by default in the future version.

$XDG_CONFIG_HOME/fontconfig/fonts.conf and ~/.fonts.conf is the conventional location for per-user font configuration, although the actual location is specified in the global fonts.conf file. please note that ~/.fonts.conf is deprecated now. it will not be read by default in the future version.

$XDG_CACHE_HOME/fontconfig/*.cache-* and ~/.fontconfig/*.cache-* is the conventional repository of font information that isn't found in the per-directory caches. This file is automatically maintained by fontconfig. please note that ~/.fontconfig/*.cache-* is deprecated now. it will not be read by default in the future version.

Environment variables

FONTCONFIG_FILE is used to override the default configuration file.

FONTCONFIG_PATH is used to override the default configuration directory.

FC_DEBUG is used to output the detailed debugging messages. see Debugging Applications section for more details.

FONTCONFIG_USE_MMAP is used to control the use of mmap(2) for the cache files if available. this take a boolean value. fontconfig will checks if the cache files are stored on the filesystem that is safe to use mmap(2). explicitly setting this environment variable will causes skipping this check and enforce to use or not use mmap(2) anyway.

See Also

fc-cat(1), fc-cache(1), fc-list(1), fc-match(1), fc-query(1)

Version

Fontconfig version 2.11.1

fontconfig-2.11.1/doc/FcIsUpper.30000664000076400007640000000056212313745357013371 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcIsUpper" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcIsUpper \- check for upper case ASCII character .SH SYNOPSIS .nf \fB#include .sp FcBool FcIsUpper (FcChar8\fIc\fB); .fi\fR .SH "DESCRIPTION" .PP This macro checks whether \fIc\fR is a upper case ASCII letter. fontconfig-2.11.1/doc/FcObjectSetCreate.30000664000076400007640000000052312313745357015005 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcObjectSetCreate" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcObjectSetCreate \- Create an object set .SH SYNOPSIS .nf \fB#include .sp FcObjectSet * FcObjectSetCreate (void\fI\fB); .fi\fR .SH "DESCRIPTION" .PP Creates an empty set. fontconfig-2.11.1/doc/fcfile.fncs0000664000076400007640000000730112267155333013543 00000000000000/* * fontconfig/doc/fcfile.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@ FcBool @FUNC@ FcFileScan @TYPE1@ FcFontSet * @ARG1@ set @TYPE2@ FcStrSet * @ARG2@ dirs @TYPE3@ FcFileCache * @ARG3@ cache @TYPE4@ FcBlanks * @ARG4@ blanks @TYPE5@ const FcChar8 * @ARG5@ file @TYPE6@ FcBool% @ARG6@ force @PURPOSE@ scan a font file @DESC@ Scans a single file and adds all fonts found to set. If force is FcTrue, then the file is scanned even if associated information is found in cache. If file is a directory, it is added to dirs. Whether fonts are found depends on fontconfig policy as well as the current configuration. Internally, fontconfig will ignore BDF and PCF fonts which are not in Unicode (or the effectively equivalent ISO Latin-1) encoding as those are not usable by Unicode-based applications. The configuration can ignore fonts based on filename or contents of the font file itself. Returns FcFalse if any of the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue. @@ @RET@ FcBool @FUNC@ FcFileIsDir @TYPE1@ const FcChar8 * @ARG1@ file @PURPOSE@ check whether a file is a directory @DESC@ Returns FcTrue if file is a directory, otherwise returns FcFalse. @@ @RET@ FcBool @FUNC@ FcDirScan @TYPE1@ FcFontSet * @ARG1@ set @TYPE2@ FcStrSet * @ARG2@ dirs @TYPE3@ FcFileCache * @ARG3@ cache @TYPE4@ FcBlanks * @ARG4@ blanks @TYPE5@ const FcChar8 * @ARG5@ dir @TYPE6@ FcBool% @ARG6@ force @PURPOSE@ scan a font directory without caching it @DESC@ If cache is not zero or if force is FcFalse, this function currently returns FcFalse. Otherwise, it scans an entire directory and adds all fonts found to set. Any subdirectories found are added to dirs. Calling this function does not create any cache files. Use FcDirCacheRead() if caching is desired. @@ @RET@ FcBool @FUNC@ FcDirSave @TYPE1@ FcFontSet * @ARG1@ set @TYPE2@ FcStrSet * @ARG2@ dirs @TYPE3@ const FcChar8 * @ARG3@ dir @PURPOSE@ DEPRECATED: formerly used to save a directory cache @DESC@ This function now does nothing aside from returning FcFalse. It used to creates the per-directory cache file for dir and populates it with the fonts in set and subdirectories in dirs. All of this functionality is now automatically managed by FcDirCacheLoad and FcDirCacheRead. @@ fontconfig-2.11.1/doc/FcConfigGetFonts.30000664000076400007640000000106612313745357014661 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigGetFonts" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigGetFonts \- Get config font set .SH SYNOPSIS .nf \fB#include .sp FcFontSet * FcConfigGetFonts (FcConfig *\fIconfig\fB, FcSetName \fIset\fB); .fi\fR .SH "DESCRIPTION" .PP Returns one of the two sets of fonts from the configuration as specified by \fIset\fR\&. This font set is owned by the library and must not be modified or freed. If \fIconfig\fR is NULL, the current configuration is used. fontconfig-2.11.1/doc/FcPatternBuild.30000664000076400007640000000275412313745357014404 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcPatternBuild" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcPatternBuild, FcPatternVaBuild, FcPatternVapBuild \- Create patterns from arguments .SH SYNOPSIS .nf \fB#include .sp FcPattern * FcPatternBuild (FcPattern *\fIpattern\fB, \&...\fI\fB); .sp FcPattern * FcPatternVaBuild (FcPattern *\fIpattern\fB, va_list \fIva\fB); .sp void FcPatternVapBuild (FcPattern *\fIresult\fB, FcPattern *\fIpattern\fB, va_list \fIva\fB); .fi\fR .SH "DESCRIPTION" .PP Builds a pattern using a list of objects, types and values. Each value to be entered in the pattern is specified with three arguments: .IP 1. Object name, a string describing the property to be added. .IP 2. Object type, one of the FcType enumerated values .IP 3. Value, not an FcValue, but the raw type as passed to any of the FcPatternAdd functions. Must match the type of the second argument. .PP The argument list is terminated by a null object name, no object type nor value need be passed for this. The values are added to `pattern', if `pattern' is null, a new pattern is created. In either case, the pattern is returned. Example .PP .sp .nf pattern = FcPatternBuild (0, FC_FAMILY, FcTypeString, "Times", (char *) 0); .sp .fi .PP FcPatternVaBuild is used when the arguments are already in the form of a varargs value. FcPatternVapBuild is a macro version of FcPatternVaBuild which returns its result directly in the \fIresult\fR variable. .PP fontconfig-2.11.1/doc/FcMatrixCopy.30000664000076400007640000000057212313745357014102 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcMatrixCopy" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcMatrixCopy \- Copy a matrix .SH SYNOPSIS .nf \fB#include .sp void FcMatrixCopy (const FcMatrix *\fImatrix\fB); .fi\fR .SH "DESCRIPTION" .PP \fBFcMatrixCopy\fR allocates a new FcMatrix and copies \fImat\fR into it. fontconfig-2.11.1/doc/FcUcs4ToUtf8.30000664000076400007640000000070412313745357013670 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcUcs4ToUtf8" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcUcs4ToUtf8 \- convert UCS4 to UTF-8 .SH SYNOPSIS .nf \fB#include .sp int FcUcs4ToUtf8 (FcChar32 \fIsrc\fB, FcChar8 \fIdst[FC_UTF8_MAX_LEN]\fB); .fi\fR .SH "DESCRIPTION" .PP Converts the Unicode char from \fIsrc\fR into \fIdst\fR and returns the number of bytes needed to encode the char. fontconfig-2.11.1/doc/FcStrStr.30000664000076400007640000000075012313745357013242 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcStrStr" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcStrStr \- locate UTF-8 substring .SH SYNOPSIS .nf \fB#include .sp FcChar8 * FcStrStr (const FcChar8 *\fIs1\fB, const FcChar8 *\fIs2\fB); .fi\fR .SH "DESCRIPTION" .PP Returns the location of \fIs2\fR in \fIs1\fR\&. Returns NULL if \fIs2\fR is not present in \fIs1\fR\&. This test will operate properly with UTF8 encoded strings. fontconfig-2.11.1/doc/fontconfig-devel.sgml0000664000076400007640000006001612267155333015557 00000000000000 ]>
Fontconfig Developers Reference, Version &version; Keith Packard HP Cambridge Research Lab KRP Fontconfig &version; 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. DESCRIPTION Fontconfig is a library designed to provide system-wide font configuration, customization and application access. FUNCTIONAL OVERVIEW Fontconfig contains two essential modules, the configuration module which builds an internal configuration from XML files and the matching module which accepts font patterns and returns the nearest matching font. FONT CONFIGURATION The configuration module consists of the FcConfig datatype, libexpat and FcConfigParse which walks over an XML tree and amends a configuration with data found within. From an external perspective, configuration of the library consists of generating a valid XML tree and feeding that to FcConfigParse. The only other mechanism provided to applications for changing the running configuration is to add fonts and directories to the list of application-provided font files. The intent is to make font configurations relatively static, and shared by as many applications as possible. It is hoped that this will lead to more stable font selection when passing names from one application to another. XML was chosen as a configuration file format because it provides a format which is easy for external agents to edit while retaining the correct structure and syntax. Font configuration is separate from font matching; applications needing to do their own matching can access the available fonts from the library and perform private matching. The intent is to permit applications to pick and choose appropriate functionality from the library instead of forcing them to choose between this library and a private configuration mechanism. The hope is that this will ensure that configuration of fonts for all applications can be centralized in one place. Centralizing font configuration will simplify and regularize font installation and customization. FONT PROPERTIES While font patterns may contain essentially any properties, there are some well known properties with associated types. Fontconfig uses some of these properties for font matching and font completion. Others are provided as a convenience for the application's rendering mechanism. Property Definitions Property C Preprocessor Symbol Type Description ---------------------------------------------------- family FC_FAMILY String Font family names familylang FC_FAMILYLANG String Language corresponding to each family name style FC_STYLE String Font style. Overrides weight and slant stylelang FC_STYLELANG String Language corresponding to each style name fullname FC_FULLNAME String Font face full name where different from family and family + style fullnamelang FC_FULLNAMELANG String Language corresponding to each fullname slant FC_SLANT Int Italic, oblique or roman weight FC_WEIGHT Int Light, medium, demibold, bold or black size FC_SIZE Double Point size width FC_WIDTH Int Condensed, normal or expanded aspect FC_ASPECT Double Stretches glyphs horizontally before hinting pixelsize FC_PIXEL_SIZE Double Pixel size spacing FC_SPACING Int Proportional, dual-width, monospace or charcell foundry FC_FOUNDRY String Font foundry name antialias FC_ANTIALIAS Bool Whether glyphs can be antialiased hinting FC_HINTING Bool Whether the rasterizer should use hinting hintstyle FC_HINT_STYLE Int Automatic hinting style verticallayout FC_VERTICAL_LAYOUT Bool Use vertical layout autohint FC_AUTOHINT Bool Use autohinter instead of normal hinter globaladvance FC_GLOBAL_ADVANCE Bool Use font global advance data (deprecated) file FC_FILE String The filename holding the font index FC_INDEX Int The index of the font within the file ftface FC_FT_FACE FT_Face Use the specified FreeType face object rasterizer FC_RASTERIZER String Which rasterizer is in use (deprecated) outline FC_OUTLINE Bool Whether the glyphs are outlines scalable FC_SCALABLE Bool Whether glyphs can be scaled scale FC_SCALE Double Scale factor for point->pixel conversions dpi FC_DPI Double Target dots per inch rgba FC_RGBA Int unknown, rgb, bgr, vrgb, vbgr, none - subpixel geometry lcdfilter FC_LCD_FILTER Int Type of LCD filter minspace FC_MINSPACE Bool Eliminate leading from line spacing charset FC_CHARSET CharSet Unicode chars encoded by the font lang FC_LANG LangSet Set of RFC-3066-style languages this font supports fontversion FC_FONTVERSION Int Version number of the font capability FC_CAPABILITY String List of layout capabilities in the font embolden FC_EMBOLDEN Bool Rasterizer should synthetically embolden the font fontfeatures FC_FONT_FEATURES String List of extra feature tags in OpenType to be enabled namelang FC_NAMELANG String Language name to be used for the default value of familylang, stylelang and fullnamelang prgname FC_PRGNAME String Name of the running program hash FC_HASH String SHA256 hash value of the font data with "sha256:" prefix. postscriptname FC_POSTSCRIPT_NAME String Font name in PostScript Datatypes Fontconfig uses abstract data types to hide internal implementation details for most data structures. A few structures are exposed where appropriate. FcChar8, FcChar16, FcChar32, FcBool These are primitive data types; the FcChar* types hold precisely the number of bits stated (if supported by the C implementation). FcBool holds one of two C preprocessor symbols: FcFalse or FcTrue. FcMatrix An FcMatrix holds an affine transformation, usually used to reshape glyphs. A small set of matrix operations are provided to manipulate these. typedef struct _FcMatrix { double xx, xy, yx, yy; } FcMatrix; FcCharSet An FcCharSet is an abstract type that holds the set of encoded Unicode chars in a font. Operations to build and compare these sets are provided. FcLangSet An FcLangSet is an abstract type that holds the set of languages supported by a font. Operations to build and compare these sets are provided. These are computed for a font based on orthographic information built into the fontconfig library. Fontconfig has orthographies for all of the ISO 639-1 languages except for MS, NA, PA, PS, QU, RN, RW, SD, SG, SN, SU and ZA. If you have orthographic information for any of these languages, please submit them. FcLangResult An FcLangResult is an enumeration used to return the results of comparing two language strings or FcLangSet objects. FcLangEqual means the objects match language and territory. FcLangDifferentTerritory means the objects match in language but differ in territory. FcLangDifferentLang means the objects differ in language. FcType Tags the kind of data stored in an FcValue. FcValue An FcValue object holds a single value with one of a number of different types. The 'type' tag indicates which member is valid. typedef struct _FcValue { FcType type; union { const FcChar8 *s; int i; FcBool b; double d; const FcMatrix *m; const FcCharSet *c; void *f; const FcLangSet *l; } u; } FcValue; FcValue Members Type Union member Datatype -------------------------------- FcTypeVoid (none) (none) FcTypeInteger i int FcTypeDouble d double FcTypeString s FcChar8 * FcTypeBool b b FcTypeMatrix m FcMatrix * FcTypeCharSet c FcCharSet * FcTypeFTFace f void * (FT_Face) FcTypeLangSet l FcLangSet * FcPattern holds a set of names with associated value lists; each name refers to a property of a font. FcPatterns are used as inputs to the matching code as well as holding information about specific fonts. Each property can hold one or more values; conventionally all of the same type, although the interface doesn't demand that. FcFontSet typedef struct _FcFontSet { int nfont; int sfont; FcPattern **fonts; } FcFontSet; An FcFontSet contains a list of FcPatterns. Internally fontconfig uses this data structure to hold sets of fonts. Externally, fontconfig returns the results of listing fonts in this format. 'nfont' holds the number of patterns in the 'fonts' array; 'sfont' is used to indicate the size of that array. FcStrSet, FcStrList FcStrSet holds a list of strings that can be appended to and enumerated. Its unique characteristic is that the enumeration works even while strings are appended during enumeration. FcStrList is used during enumeration to safely and correctly walk the list of strings even while that list is edited in the middle of enumeration. FcObjectSet typedef struct _FcObjectSet { int nobject; int sobject; const char **objects; } FcObjectSet; holds a set of names and is used to specify which fields from fonts are placed in the the list of returned patterns when listing fonts. FcObjectType typedef struct _FcObjectType { const char *object; FcType type; } FcObjectType; marks the type of a pattern element generated when parsing font names. Applications can add new object types so that font names may contain the new elements. FcConstant typedef struct _FcConstant { const FcChar8 *name; const char *object; int value; } FcConstant; Provides for symbolic constants for new pattern elements. When 'name' is seen in a font name, an 'object' element is created with value 'value'. FcBlanks holds a list of Unicode chars which are expected to be blank; unexpectedly blank chars are assumed to be invalid and are elided from the charset associated with the font. FcFileCache holds the per-user cache information for use while loading the font database. This is built automatically for the current configuration when that is loaded. Applications must always pass '0' when one is requested. FcConfig holds a complete configuration of the library; there is one default configuration, other can be constructed from XML data structures. All public entry points that need global data can take an optional FcConfig* argument; passing 0 uses the default configuration. FcConfig objects hold two sets of fonts, the first contains those specified by the configuration, the second set holds those added by the application at run-time. Interfaces that need to reference a particular set use one of the FcSetName enumerated values. FcSetName Specifies one of the two sets of fonts available in a configuration; FcSetSystem for those fonts specified in the configuration and FcSetApplication which holds fonts provided by the application. FcResult Used as a return type for functions manipulating FcPattern objects. FcResult Values Result Code Meaning ----------------------------------------------------------- FcResultMatch Object exists with the specified ID FcResultNoMatch Object doesn't exist at all FcResultTypeMismatch Object exists, but the type doesn't match FcResultNoId Object exists, but has fewer values than specified FcResultOutOfMemory malloc failed FcAtomic Used for locking access to configuration files. Provides a safe way to update configuration files. FcCache Holds information about the fonts contained in a single directory. Normal applications need not worry about this as caches for font access are automatically managed by the library. Applications dealing with cache management may want to use some of these objects in their work, however the included 'fc-cache' program generally suffices for all of that. FUNCTIONS These are grouped by functionality, often using the main data type being manipulated. Initialization These functions provide some control over how the library is initialized. &fcinit; FcPattern An FcPattern is an opaque type that holds both patterns to match against the available fonts, as well as the information about each font. &fcpattern; &fcformat; FcFontSet An FcFontSet simply holds a list of patterns; these are used to return the results of listing available fonts. &fcfontset; FcObjectSet An FcObjectSet holds a list of pattern property names; it is used to indicate which properties are to be returned in the patterns from FcFontList. &fcobjectset; FreeType specific functions While the fontconfig library doesn't insist that FreeType be used as the rasterization mechanism for fonts, it does provide some convenience functions. &fcfreetype; FcValue FcValue is a structure containing a type tag and a union of all possible datatypes. The tag is an enum of type FcType and is intended to provide a measure of run-time typechecking, although that depends on careful programming. &fcvalue; FcCharSet An FcCharSet is a boolean array indicating a set of Unicode chars. Those associated with a font are marked constant and cannot be edited. FcCharSets may be reference counted internally to reduce memory consumption; this may be visible to applications as the result of FcCharSetCopy may return it's argument, and that CharSet may remain unmodifiable. &fccharset; FcLangSet An FcLangSet is a set of language names (each of which include language and an optional territory). They are used when selecting fonts to indicate which languages the fonts need to support. Each font is marked, using language orthography information built into fontconfig, with the set of supported languages. &fclangset; FcMatrix FcMatrix structures hold an affine transformation in matrix form. &fcmatrix; FcConfig An FcConfig object holds the internal representation of a configuration. There is a default configuration which applications may use by passing 0 to any function using the data within an FcConfig. &fcconfig; FcObjectType Provides for application-specified font name object types so that new pattern elements can be generated from font names. &fcobjecttype; FcConstant Provides for application-specified symbolic constants for font names. &fcconstant; FcBlanks An FcBlanks object holds a list of Unicode chars which are expected to be blank when drawn. When scanning new fonts, any glyphs which are empty and not in this list will be assumed to be broken and not placed in the FcCharSet associated with the font. This provides a significantly more accurate CharSet for applications. &fcblanks; FcAtomic These functions provide a safe way to update configuration files, allowing ongoing reading of the old configuration file while locked for writing and ensuring that a consistent and complete version of the configuration file is always available. &fcatomic; File and Directory routines These routines work with font files and directories, including font directory cache files. &fcfile; &fcdircache; FcCache routines These routines work with font directory caches, accessing their contents in limited ways. It is not expected that normal applications will need to use these functions. &fccache; FcStrSet and FcStrList A data structure for enumerating strings, used to list directories while scanning the configuration as directories are added while scanning. &fcstrset; String utilities Fontconfig manipulates many UTF-8 strings represented with the FcChar8 type. These functions are exposed to help applications deal with these UTF-8 strings in a locale-insensitive manner. &fcstring;
fontconfig-2.11.1/doc/FcDirSave.30000664000076400007640000000124012313745357013331 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcDirSave" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcDirSave \- DEPRECATED: formerly used to save a directory cache .SH SYNOPSIS .nf \fB#include .sp FcBool FcDirSave (FcFontSet *\fIset\fB, FcStrSet *\fIdirs\fB, const FcChar8 *\fIdir\fB); .fi\fR .SH "DESCRIPTION" .PP This function now does nothing aside from returning FcFalse. It used to creates the per-directory cache file for \fIdir\fR and populates it with the fonts in \fIset\fR and subdirectories in \fIdirs\fR\&. All of this functionality is now automatically managed by FcDirCacheLoad and FcDirCacheRead. fontconfig-2.11.1/doc/FcAtomicLock.30000664000076400007640000000070112313745357014022 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcAtomicLock" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcAtomicLock \- lock a file .SH SYNOPSIS .nf \fB#include .sp FcBool FcAtomicLock (FcAtomic *\fIatomic\fB); .fi\fR .SH "DESCRIPTION" .PP Attempts to lock the file referenced by \fIatomic\fR\&. Returns FcFalse if the file is already locked, else returns FcTrue and leaves the file locked. fontconfig-2.11.1/doc/fcfreetype.fncs0000664000076400007640000001043112267155333014445 00000000000000/* * fontconfig/doc/fcfreetype.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. */ @SYNOPSIS@ #include <fontconfig.h> #include <fcfreetype.h> @RET@ FT_UInt @FUNC@ FcFreeTypeCharIndex @TYPE1@ FT_Face% @ARG1@ face @TYPE2@ FcChar32% @ARG2@ ucs4 @PURPOSE@ map Unicode to glyph id @DESC@ Maps a Unicode char to a glyph index. This function uses information from several possible underlying encoding tables to work around broken fonts. As a result, this function isn't designed to be used in performance sensitive areas; results from this function are intended to be cached by higher level functions. @@ @SYNOPSIS@ #include <fontconfig.h> #include <fcfreetype.h> @RET@ FcCharSet * @FUNC@ FcFreeTypeCharSet @TYPE1@ FT_Face% @ARG1@ face @TYPE2@ FcBlanks * @ARG2@ blanks @PURPOSE@ compute Unicode coverage @DESC@ Scans a FreeType face and returns the set of encoded Unicode chars. This scans several encoding tables to build as complete a list as possible. If 'blanks' is not 0, the glyphs in the font are examined and any blank glyphs not in 'blanks' are not placed in the returned FcCharSet. @@ @SYNOPSIS@ #include <fontconfig.h> #include <fcfreetype.h> @RET@ FcCharSet * @FUNC@ FcFreeTypeCharSetAndSpacing @TYPE1@ FT_Face% @ARG1@ face @TYPE2@ FcBlanks * @ARG2@ blanks @TYPE3@ int * @ARG3@ spacing @PURPOSE@ compute Unicode coverage and spacing type @DESC@ Scans a FreeType face and returns the set of encoded Unicode chars. This scans several encoding tables to build as complete a list as possible. If 'blanks' is not 0, the glyphs in the font are examined and any blank glyphs not in 'blanks' are not placed in the returned FcCharSet. spacing receives the computed spacing type of the font, one of FC_MONO for a font where all glyphs have the same width, FC_DUAL, where the font has glyphs in precisely two widths, one twice as wide as the other, or FC_PROPORTIONAL where the font has glyphs of many widths. @@ @SYNOPSIS@ #include <fontconfig.h> #include <fcfreetype.h> @RET@ FcPattern * @FUNC@ FcFreeTypeQuery @TYPE1@ const FcChar8 * @ARG1@ file @TYPE2@ int% @ARG2@ id @TYPE3@ FcBlanks * @ARG3@ blanks @TYPE4@ int * @ARG4@ count @PURPOSE@ compute pattern from font file (and index) @DESC@ Constructs a pattern representing the 'id'th font in 'file'. The number of fonts in 'file' is returned in 'count'. @@ @SYNOPSIS@ #include <fontconfig.h> #include <fcfreetype.h> @RET@ FcPattern * @FUNC@ FcFreeTypeQueryFace @TYPE1@ const FT_Face% @ARG1@ face @TYPE2@ const FcChar8 * @ARG2@ file @TYPE3@ int% @ARG3@ id @TYPE4@ FcBlanks * @ARG4@ blanks @PURPOSE@ compute pattern from FT_Face @DESC@ Constructs a pattern representing 'face'. 'file' and 'id' are used solely as data for pattern elements (FC_FILE, FC_INDEX and sometimes FC_FAMILY). @@ fontconfig-2.11.1/doc/fontconfig-user.txt0000664000076400007640000010075212313745362015314 00000000000000 fonts-conf Name fonts.conf -- Font configuration files Synopsis /etc/fonts/fonts.conf /etc/fonts/fonts.dtd /etc/fonts/conf.d $XDG_CONFIG_HOME/fontconfig/conf.d $XDG_CONFIG_HOME/fontconfig/fonts.conf ~/.fonts.conf.d ~/.fonts.conf Description Fontconfig is a library designed to provide system-wide font configuration, customization and application access. Functional Overview Fontconfig contains two essential modules, the configuration module which builds an internal configuration from XML files and the matching module which accepts font patterns and returns the nearest matching font. Font Configuration The configuration module consists of the FcConfig datatype, libexpat and FcConfigParse which walks over an XML tree and amends a configuration with data found within. From an external perspective, configuration of the library consists of generating a valid XML tree and feeding that to FcConfigParse. The only other mechanism provided to applications for changing the running configuration is to add fonts and directories to the list of application-provided font files. The intent is to make font configurations relatively static, and shared by as many applications as possible. It is hoped that this will lead to more stable font selection when passing names from one application to another. XML was chosen as a configuration file format because it provides a format which is easy for external agents to edit while retaining the correct structure and syntax. Font configuration is separate from font matching; applications needing to do their own matching can access the available fonts from the library and perform private matching. The intent is to permit applications to pick and choose appropriate functionality from the library instead of forcing them to choose between this library and a private configuration mechanism. The hope is that this will ensure that configuration of fonts for all applications can be centralized in one place. Centralizing font configuration will simplify and regularize font installation and customization. Font Properties While font patterns may contain essentially any properties, there are some well known properties with associated types. Fontconfig uses some of these properties for font matching and font completion. Others are provided as a convenience for the applications' rendering mechanism. Property Type Description -------------------------------------------------------------- family String Font family names familylang String Languages corresponding to each family style String Font style. Overrides weight and slant stylelang String Languages corresponding to each style fullname String Font full names (often includes style) fullnamelang String Languages corresponding to each fullname slant Int Italic, oblique or roman weight Int Light, medium, demibold, bold or black size Double Point size width Int Condensed, normal or expanded aspect Double Stretches glyphs horizontally before hinting pixelsize Double Pixel size spacing Int Proportional, dual-width, monospace or charcell foundry String Font foundry name antialias Bool Whether glyphs can be antialiased hinting Bool Whether the rasterizer should use hinting hintstyle Int Automatic hinting style verticallayout Bool Use vertical layout autohint Bool Use autohinter instead of normal hinter globaladvance Bool Use font global advance data (deprecated) file String The filename holding the font index Int The index of the font within the file ftface FT_Face Use the specified FreeType face object rasterizer String Which rasterizer is in use (deprecated) outline Bool Whether the glyphs are outlines scalable Bool Whether glyphs can be scaled scale Double Scale factor for point->pixel conversions dpi Double Target dots per inch rgba Int unknown, rgb, bgr, vrgb, vbgr, none - subpixel geometry lcdfilter Int Type of LCD filter minspace Bool Eliminate leading from line spacing charset CharSet Unicode chars encoded by the font lang String List of RFC-3066-style languages this font supports fontversion Int Version number of the font capability String List of layout capabilities in the font embolden Bool Rasterizer should synthetically embolden the font fontfeatures String List of the feature tags in OpenType to be enabled prgname String String Name of the running program Font Matching Fontconfig performs matching by measuring the distance from a provided pattern to all of the available fonts in the system. The closest matching font is selected. This ensures that a font will always be returned, but doesn't ensure that it is anything like the requested pattern. Font matching starts with an application constructed pattern. The desired attributes of the resulting font are collected together in a pattern. Each property of the pattern can contain one or more values; these are listed in priority order; matches earlier in the list are considered "closer" than matches later in the list. The initial pattern is modified by applying the list of editing instructions specific to patterns found in the configuration; each consists of a match predicate and a set of editing operations. They are executed in the order they appeared in the configuration. Each match causes the associated sequence of editing operations to be applied. After the pattern has been edited, a sequence of default substitutions are performed to canonicalize the set of available properties; this avoids the need for the lower layers to constantly provide default values for various font properties during rendering. The canonical font pattern is finally matched against all available fonts. The distance from the pattern to the font is measured for each of several properties: foundry, charset, family, lang, spacing, pixelsize, style, slant, weight, antialias, rasterizer and outline. This list is in priority order -- results of comparing earlier elements of this list weigh more heavily than later elements. There is one special case to this rule; family names are split into two bindings; strong and weak. Strong family names are given greater precedence in the match than lang elements while weak family names are given lower precedence than lang elements. This permits the document language to drive font selection when any document specified font is unavailable. The pattern representing that font is augmented to include any properties found in the pattern but not found in the font itself; this permits the application to pass rendering instructions or any other data through the matching system. Finally, the list of editing instructions specific to fonts found in the configuration are applied to the pattern. This modified pattern is returned to the application. The return value contains sufficient information to locate and rasterize the font, including the file name, pixel size and other rendering data. As none of the information involved pertains to the FreeType library, applications are free to use any rasterization engine or even to take the identified font file and access it directly. The match/edit sequences in the configuration are performed in two passes because there are essentially two different operations necessary -- the first is to modify how fonts are selected; aliasing families and adding suitable defaults. The second is to modify how the selected fonts are rasterized. Those must apply to the selected font, not the original pattern as false matches will often occur. Font Names Fontconfig provides a textual representation for patterns that the library can both accept and generate. The representation is in three parts, first a list of family names, second a list of point sizes and finally a list of additional properties: -:=:=... Values in a list are separated with commas. The name needn't include either families or point sizes; they can be elided. In addition, there are symbolic constants that simultaneously indicate both a name and a value. Here are some examples: Name Meaning ---------------------------------------------------------- Times-12 12 point Times Roman Times-12:bold 12 point Times Bold Courier:italic Courier Italic in the default size Monospace:matrix=1 .1 0 1 The users preferred monospace font with artificial obliquing The '\', '-', ':' and ',' characters in family names must be preceded by a '\' character to avoid having them misinterpreted. Similarly, values containing '\', '=', '_', ':' and ',' must also have them preceded by a '\' character. The '\' characters are stripped out of the family name and values as the font name is read. Debugging Applications To help diagnose font and applications problems, fontconfig is built with a large amount of internal debugging left enabled. It is controlled by means of the FC_DEBUG environment variable. The value of this variable is interpreted as a number, and each bit within that value controls different debugging messages. Name Value Meaning --------------------------------------------------------- MATCH 1 Brief information about font matching MATCHV 2 Extensive font matching information EDIT 4 Monitor match/test/edit execution FONTSET 8 Track loading of font information at startup CACHE 16 Watch cache files being written CACHEV 32 Extensive cache file writing information PARSE 64 (no longer in use) SCAN 128 Watch font files being scanned to build caches SCANV 256 Verbose font file scanning information MEMORY 512 Monitor fontconfig memory usage CONFIG 1024 Monitor which config files are loaded LANGSET 2048 Dump char sets used to construct lang values OBJTYPES 4096 Display message when value typechecks fail Add the value of the desired debug levels together and assign that (in base 10) to the FC_DEBUG environment variable before running the application. Output from these statements is sent to stdout. Lang Tags Each font in the database contains a list of languages it supports. This is computed by comparing the Unicode coverage of the font with the orthography of each language. Languages are tagged using an RFC-3066 compatible naming and occur in two parts -- the ISO 639 language tag followed a hyphen and then by the ISO 3166 country code. The hyphen and country code may be elided. Fontconfig has orthographies for several languages built into the library. No provision has been made for adding new ones aside from rebuilding the library. It currently supports 122 of the 139 languages named in ISO 639-1, 141 of the languages with two-letter codes from ISO 639-2 and another 30 languages with only three-letter codes. Languages with both two and three letter codes are provided with only the two letter code. For languages used in multiple territories with radically different character sets, fontconfig includes per-territory orthographies. This includes Azerbaijani, Kurdish, Pashto, Tigrinya and Chinese. Configuration File Format Configuration files for fontconfig are stored in XML format; this format makes external configuration tools easier to write and ensures that they will generate syntactically correct configuration files. As XML files are plain text, they can also be manipulated by the expert user using a text editor. The fontconfig document type definition resides in the external entity "fonts.dtd"; this is normally stored in the default font configuration directory (/etc/fonts). Each configuration file should contain the following structure: ... This is the top level element for a font configuration and can contain , , , and elements in any order. This element contains a directory name which will be scanned for font files to include in the set of available fonts. If 'prefix' is set to "xdg", the value in the XDG_DATA_HOME environment variable will be added as the path prefix. please see XDG Base Directory Specification for more details. This element contains a directory name that is supposed to be stored or read the cache of font information. If multiple elements are specified in the configuration file, the directory that can be accessed first in the list will be used to store the cache files. If it starts with '~', it refers to a directory in the users home directory. If 'prefix' is set to "xdg", the value in the XDG_CACHE_HOME environment variable will be added as the path prefix. please see XDG Base Directory Specification for more details. The default directory is ``$XDG_CACHE_HOME/fontconfig'' and it contains the cache files named ``-.cache- is the font configureation file version number (currently 3). This element contains the name of an additional configuration file or directory. If a directory, every file within that directory starting with an ASCII digit (U+0030 - U+0039) and ending with the string ``.conf'' will be processed in sorted order. When the XML datatype is traversed by FcConfigParse, the contents of the file(s) will also be incorporated into the configuration by passing the filename(s) to FcConfigLoadAndParse. If 'ignore_missing' is set to "yes" instead of the default "no", a missing file or directory will elicit no warning message from the library. If 'prefix' is set to "xdg", the value in the XDG_CONFIG_HOME environment variable will be added as the path prefix. please see XDG Base Directory Specification for more details. This element provides a place to consolidate additional configuration information. can contain and elements in any order. Fonts often include "broken" glyphs which appear in the encoding but are drawn as blanks on the screen. Within the element, place each Unicode characters which is supposed to be blank in an element. Characters outside of this set which are drawn as blank will be elided from the set of characters supported by the font. The element holds an element which indicates the default interval between automatic checks for font configuration changes. Fontconfig will validate all of the configuration files and directories and automatically rebuild the internal datastructures when this interval passes. This element is used to black/white list fonts from being listed or matched against. It holds acceptfont and rejectfont elements. Fonts matched by an acceptfont element are "whitelisted"; such fonts are explicitly included in the set of fonts used to resolve list and match requests; including them in this list protects them from being "blacklisted" by a rejectfont element. Acceptfont elements include glob and pattern elements which are used to match fonts. Fonts matched by an rejectfont element are "blacklisted"; such fonts are excluded from the set of fonts used to resolve list and match requests as if they didn't exist in the system. Rejectfont elements include glob and pattern elements which are used to match fonts. Glob elements hold shell-style filename matching patterns (including ? and *) which match fonts based on their complete pathnames. This can be used to exclude a set of directories (/usr/share/fonts/uglyfont*), or particular font file types (*.pcf.gz), but the latter mechanism relies rather heavily on filenaming conventions which can't be relied upon. Note that globs only apply to directories, not to individual fonts. Pattern elements perform list-style matching on incoming fonts; that is, they hold a list of elements and associated values. If all of those elements have a matching value, then the pattern matches the font. This can be used to select fonts based on attributes of the font (scalable, bold, etc), which is a more reliable mechanism than using file extensions. Pattern elements include patelt elements. Patelt elements hold a single pattern element and list of values. They must have a 'name' attribute which indicates the pattern element name. Patelt elements include int, double, string, matrix, bool, charset and const elements. This element holds first a (possibly empty) list of elements and then a (possibly empty) list of elements. Patterns which match all of the tests are subjected to all the edits. If 'target' is set to "font" instead of the default "pattern", then this element applies to the font name resulting from a match rather than a font pattern to be matched. If 'target' is set to "scan", then this element applies when the font is scanned to build the fontconfig database. This element contains a single value which is compared with the target ('pattern', 'font', 'scan' or 'default') property "property" (substitute any of the property names seen above). 'compare' can be one of "eq", "not_eq", "less", "less_eq", "more", "more_eq", "contains" or "not_contains". 'qual' may either be the default, "any", in which case the match succeeds if any value associated with the property matches the test value, or "all", in which case all of the values associated with the property must match the test value. 'ignore-blanks' takes a boolean value. if 'ignore-blanks' is set "true", any blanks in the string will be ignored on its comparison. this takes effects only when compare="eq" or compare="not_eq". When used in a element, the target= attribute in the element selects between matching the original pattern or the font. "default" selects whichever target the outer element has selected. This element contains a list of expression elements (any of the value or operator elements). The expression elements are evaluated at run-time and modify the property "property". The modification depends on whether "property" was matched by one of the associated elements, if so, the modification may affect the first matched value. Any values inserted into the property are given the indicated binding ("strong", "weak" or "same") with "same" binding using the value from the matched pattern element. 'mode' is one of: Mode With Match Without Match --------------------------------------------------------------------- "assign" Replace matching value Replace all values "assign_replace" Replace all values Replace all values "prepend" Insert before matching Insert at head of list "prepend_first" Insert at head of list Insert at head of list "append" Append after matching Append at end of list "append_last" Append at end of list Append at end of list "delete" Delete matching value Delete all values "delete_all" Delete all values Delete all values , , , These elements hold a single value of the indicated type. elements hold either true or false. An important limitation exists in the parsing of floating point numbers -- fontconfig requires that the mantissa start with a digit, not a decimal point, so insert a leading zero for purely fractional values (e.g. use 0.5 instead of .5 and -0.5 instead of -.5). This element holds four numerical expressions of an affine transformation. At their simplest these will be four elements but they can also be more involved expressions. This element holds the two elements of a range representation. This element holds at least one element of an Unicode code point or more. This element holds at least one element of a RFC-3066-style languages or more. Holds a property name. Evaluates to the first value from the property of the pattern. If the 'target' attribute is not present, it will default to 'default', in which case the property is returned from the font pattern during a target="font" match, and to the pattern during a target="pattern" match. The attribute can also take the values 'font' or 'pattern' to explicitly choose which pattern to use. It is an error to use a target of 'font' in a match that has target="pattern". Holds the name of a constant; these are always integers and serve as symbolic names for common font values: Constant Property Value ------------------------------------- thin weight 0 extralight weight 40 ultralight weight 40 light weight 50 book weight 75 regular weight 80 normal weight 80 medium weight 100 demibold weight 180 semibold weight 180 bold weight 200 extrabold weight 205 black weight 210 heavy weight 210 roman slant 0 italic slant 100 oblique slant 110 ultracondensed width 50 extracondensed width 63 condensed width 75 semicondensed width 87 normal width 100 semiexpanded width 113 expanded width 125 extraexpanded width 150 ultraexpanded width 200 proportional spacing 0 dual spacing 90 mono spacing 100 charcell spacing 110 unknown rgba 0 rgb rgba 1 bgr rgba 2 vrgb rgba 3 vbgr rgba 4 none rgba 5 lcdnone lcdfilter 0 lcddefault lcdfilter 1 lcdlight lcdfilter 2 lcdlegacy lcdfilter 3 hintnone hintstyle 0 hintslight hintstyle 1 hintmedium hintstyle 2 hintfull hintstyle 3 , , , , , These elements perform the specified operation on a list of expression elements. and are boolean, not bitwise. , , , , , , , Inverts the boolean sense of its one expression element This element takes three expression elements; if the value of the first is true, it produces the value of the second, otherwise it produces the value of the third. Alias elements provide a shorthand notation for the set of common match operations needed to substitute one font family for another. They contain a element followed by optional , and elements. Fonts matching the element are edited to prepend the list of ed families before the matching , append the able families after the matching and append the families to the end of the family list. Holds a single font family name , , These hold a list of elements to be used by the element. EXAMPLE CONFIGURATION FILE System configuration file This is an example of a system-wide configuration file /usr/share/fonts /usr/X11R6/lib/X11/fonts mono monospace sans-serif serif monospace sans-serif fontconfig/fonts.conf conf.d local.conf Times Times New Roman serif Helvetica Arial sans Courier Courier New monospace serif Times New Roman sans Arial monospace Andale Mono <-- The example of the requirements of OR operator; If the 'family' contains 'Courier New' OR 'Courier' add 'monospace' as the alternative --> Courier New monospace Courier monospace User configuration file This is an example of a per-user configuration file that lives in $XDG_CONFIG_HOME/fontconfig/fonts.conf fonts rgb zh serif WenQuanYi Zen Hei ja sans-serif VL Gothic Files fonts.conf contains configuration information for the fontconfig library consisting of directories to look at for font information as well as instructions on editing program specified font patterns before attempting to match the available fonts. It is in XML format. conf.d is the conventional name for a directory of additional configuration files managed by external applications or the local administrator. The filenames starting with decimal digits are sorted in lexicographic order and used as additional configuration files. All of these files are in XML format. The master fonts.conf file references this directory in an directive. fonts.dtd is a DTD that describes the format of the configuration files. $XDG_CONFIG_HOME/fontconfig/conf.d and ~/.fonts.conf.d is the conventional name for a per-user directory of (typically auto-generated) configuration files, although the actual location is specified in the global fonts.conf file. please note that ~/.fonts.conf.d is deprecated now. it will not be read by default in the future version. $XDG_CONFIG_HOME/fontconfig/fonts.conf and ~/.fonts.conf is the conventional location for per-user font configuration, although the actual location is specified in the global fonts.conf file. please note that ~/.fonts.conf is deprecated now. it will not be read by default in the future version. $XDG_CACHE_HOME/fontconfig/*.cache-* and ~/.fontconfig/*.cache-* is the conventional repository of font information that isn't found in the per-directory caches. This file is automatically maintained by fontconfig. please note that ~/.fontconfig/*.cache-* is deprecated now. it will not be read by default in the future version. Environment variables FONTCONFIG_FILE is used to override the default configuration file. FONTCONFIG_PATH is used to override the default configuration directory. FC_DEBUG is used to output the detailed debugging messages. see [1]Debugging Applications section for more details. FONTCONFIG_USE_MMAP is used to control the use of mmap(2) for the cache files if available. this take a boolean value. fontconfig will checks if the cache files are stored on the filesystem that is safe to use mmap(2). explicitly setting this environment variable will causes skipping this check and enforce to use or not use mmap(2) anyway. See Also fc-cat(1), fc-cache(1), fc-list(1), fc-match(1), fc-query(1) Version Fontconfig version 2.11.1 References Visible links 1. file:///tmp/html-aJQR6X#DEBUG fontconfig-2.11.1/doc/fontconfig-user.sgml0000664000076400007640000011511312267155333015435 00000000000000 ]> fonts-conf 5 fonts.conf Font configuration files &confdir;/fonts.conf &confdir;/fonts.dtd &confdir;/conf.d $XDG_CONFIG_HOME/fontconfig/conf.d $XDG_CONFIG_HOME/fontconfig/fonts.conf ~/.fonts.conf.d ~/.fonts.conf Description Fontconfig is a library designed to provide system-wide font configuration, customization and application access. Functional Overview Fontconfig contains two essential modules, the configuration module which builds an internal configuration from XML files and the matching module which accepts font patterns and returns the nearest matching font. Font Configuration The configuration module consists of the FcConfig datatype, libexpat and FcConfigParse which walks over an XML tree and amends a configuration with data found within. From an external perspective, configuration of the library consists of generating a valid XML tree and feeding that to FcConfigParse. The only other mechanism provided to applications for changing the running configuration is to add fonts and directories to the list of application-provided font files. The intent is to make font configurations relatively static, and shared by as many applications as possible. It is hoped that this will lead to more stable font selection when passing names from one application to another. XML was chosen as a configuration file format because it provides a format which is easy for external agents to edit while retaining the correct structure and syntax. Font configuration is separate from font matching; applications needing to do their own matching can access the available fonts from the library and perform private matching. The intent is to permit applications to pick and choose appropriate functionality from the library instead of forcing them to choose between this library and a private configuration mechanism. The hope is that this will ensure that configuration of fonts for all applications can be centralized in one place. Centralizing font configuration will simplify and regularize font installation and customization. Font Properties While font patterns may contain essentially any properties, there are some well known properties with associated types. Fontconfig uses some of these properties for font matching and font completion. Others are provided as a convenience for the applications' rendering mechanism. Property Type Description -------------------------------------------------------------- family String Font family names familylang String Languages corresponding to each family style String Font style. Overrides weight and slant stylelang String Languages corresponding to each style fullname String Font full names (often includes style) fullnamelang String Languages corresponding to each fullname slant Int Italic, oblique or roman weight Int Light, medium, demibold, bold or black size Double Point size width Int Condensed, normal or expanded aspect Double Stretches glyphs horizontally before hinting pixelsize Double Pixel size spacing Int Proportional, dual-width, monospace or charcell foundry String Font foundry name antialias Bool Whether glyphs can be antialiased hinting Bool Whether the rasterizer should use hinting hintstyle Int Automatic hinting style verticallayout Bool Use vertical layout autohint Bool Use autohinter instead of normal hinter globaladvance Bool Use font global advance data (deprecated) file String The filename holding the font index Int The index of the font within the file ftface FT_Face Use the specified FreeType face object rasterizer String Which rasterizer is in use (deprecated) outline Bool Whether the glyphs are outlines scalable Bool Whether glyphs can be scaled scale Double Scale factor for point->pixel conversions dpi Double Target dots per inch rgba Int unknown, rgb, bgr, vrgb, vbgr, none - subpixel geometry lcdfilter Int Type of LCD filter minspace Bool Eliminate leading from line spacing charset CharSet Unicode chars encoded by the font lang String List of RFC-3066-style languages this font supports fontversion Int Version number of the font capability String List of layout capabilities in the font embolden Bool Rasterizer should synthetically embolden the font fontfeatures String List of the feature tags in OpenType to be enabled prgname String String Name of the running program Font Matching Fontconfig performs matching by measuring the distance from a provided pattern to all of the available fonts in the system. The closest matching font is selected. This ensures that a font will always be returned, but doesn't ensure that it is anything like the requested pattern. Font matching starts with an application constructed pattern. The desired attributes of the resulting font are collected together in a pattern. Each property of the pattern can contain one or more values; these are listed in priority order; matches earlier in the list are considered "closer" than matches later in the list. The initial pattern is modified by applying the list of editing instructions specific to patterns found in the configuration; each consists of a match predicate and a set of editing operations. They are executed in the order they appeared in the configuration. Each match causes the associated sequence of editing operations to be applied. After the pattern has been edited, a sequence of default substitutions are performed to canonicalize the set of available properties; this avoids the need for the lower layers to constantly provide default values for various font properties during rendering. The canonical font pattern is finally matched against all available fonts. The distance from the pattern to the font is measured for each of several properties: foundry, charset, family, lang, spacing, pixelsize, style, slant, weight, antialias, rasterizer and outline. This list is in priority order -- results of comparing earlier elements of this list weigh more heavily than later elements. There is one special case to this rule; family names are split into two bindings; strong and weak. Strong family names are given greater precedence in the match than lang elements while weak family names are given lower precedence than lang elements. This permits the document language to drive font selection when any document specified font is unavailable. The pattern representing that font is augmented to include any properties found in the pattern but not found in the font itself; this permits the application to pass rendering instructions or any other data through the matching system. Finally, the list of editing instructions specific to fonts found in the configuration are applied to the pattern. This modified pattern is returned to the application. The return value contains sufficient information to locate and rasterize the font, including the file name, pixel size and other rendering data. As none of the information involved pertains to the FreeType library, applications are free to use any rasterization engine or even to take the identified font file and access it directly. The match/edit sequences in the configuration are performed in two passes because there are essentially two different operations necessary -- the first is to modify how fonts are selected; aliasing families and adding suitable defaults. The second is to modify how the selected fonts are rasterized. Those must apply to the selected font, not the original pattern as false matches will often occur. Font Names Fontconfig provides a textual representation for patterns that the library can both accept and generate. The representation is in three parts, first a list of family names, second a list of point sizes and finally a list of additional properties: <families>-<point sizes>:<name1>=<values1>:<name2>=<values2>... Values in a list are separated with commas. The name needn't include either families or point sizes; they can be elided. In addition, there are symbolic constants that simultaneously indicate both a name and a value. Here are some examples: Name Meaning ---------------------------------------------------------- Times-12 12 point Times Roman Times-12:bold 12 point Times Bold Courier:italic Courier Italic in the default size Monospace:matrix=1 .1 0 1 The users preferred monospace font with artificial obliquing The '\', '-', ':' and ',' characters in family names must be preceded by a '\' character to avoid having them misinterpreted. Similarly, values containing '\', '=', '_', ':' and ',' must also have them preceded by a '\' character. The '\' characters are stripped out of the family name and values as the font name is read. Debugging Applications To help diagnose font and applications problems, fontconfig is built with a large amount of internal debugging left enabled. It is controlled by means of the FC_DEBUG environment variable. The value of this variable is interpreted as a number, and each bit within that value controls different debugging messages. Name Value Meaning --------------------------------------------------------- MATCH 1 Brief information about font matching MATCHV 2 Extensive font matching information EDIT 4 Monitor match/test/edit execution FONTSET 8 Track loading of font information at startup CACHE 16 Watch cache files being written CACHEV 32 Extensive cache file writing information PARSE 64 (no longer in use) SCAN 128 Watch font files being scanned to build caches SCANV 256 Verbose font file scanning information MEMORY 512 Monitor fontconfig memory usage CONFIG 1024 Monitor which config files are loaded LANGSET 2048 Dump char sets used to construct lang values OBJTYPES 4096 Display message when value typechecks fail Add the value of the desired debug levels together and assign that (in base 10) to the FC_DEBUG environment variable before running the application. Output from these statements is sent to stdout. Lang Tags Each font in the database contains a list of languages it supports. This is computed by comparing the Unicode coverage of the font with the orthography of each language. Languages are tagged using an RFC-3066 compatible naming and occur in two parts -- the ISO 639 language tag followed a hyphen and then by the ISO 3166 country code. The hyphen and country code may be elided. Fontconfig has orthographies for several languages built into the library. No provision has been made for adding new ones aside from rebuilding the library. It currently supports 122 of the 139 languages named in ISO 639-1, 141 of the languages with two-letter codes from ISO 639-2 and another 30 languages with only three-letter codes. Languages with both two and three letter codes are provided with only the two letter code. For languages used in multiple territories with radically different character sets, fontconfig includes per-territory orthographies. This includes Azerbaijani, Kurdish, Pashto, Tigrinya and Chinese. Configuration File Format Configuration files for fontconfig are stored in XML format; this format makes external configuration tools easier to write and ensures that they will generate syntactically correct configuration files. As XML files are plain text, they can also be manipulated by the expert user using a text editor. The fontconfig document type definition resides in the external entity "fonts.dtd"; this is normally stored in the default font configuration directory (&confdir;). Each configuration file should contain the following structure: <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> ... </fontconfig> <literal><fontconfig></literal> This is the top level element for a font configuration and can contain <dir>, <cachedir>, <include>, <match> and <alias> elements in any order. <literal><dir prefix="default"></literal> This element contains a directory name which will be scanned for font files to include in the set of available fonts. If 'prefix' is set to "xdg", the value in the XDG_DATA_HOME environment variable will be added as the path prefix. please see XDG Base Directory Specification for more details. <literal><cachedir prefix="default"></literal> This element contains a directory name that is supposed to be stored or read the cache of font information. If multiple elements are specified in the configuration file, the directory that can be accessed first in the list will be used to store the cache files. If it starts with '~', it refers to a directory in the users home directory. If 'prefix' is set to "xdg", the value in the XDG_CACHE_HOME environment variable will be added as the path prefix. please see XDG Base Directory Specification for more details. The default directory is ``$XDG_CACHE_HOME/fontconfig'' and it contains the cache files named ``<hash value>-<architecture>.cache-<version'', where <version> is the font configureation file version number (currently 3). <literal><include ignore_missing="no" prefix="default"></literal> This element contains the name of an additional configuration file or directory. If a directory, every file within that directory starting with an ASCII digit (U+0030 - U+0039) and ending with the string ``.conf'' will be processed in sorted order. When the XML datatype is traversed by FcConfigParse, the contents of the file(s) will also be incorporated into the configuration by passing the filename(s) to FcConfigLoadAndParse. If 'ignore_missing' is set to "yes" instead of the default "no", a missing file or directory will elicit no warning message from the library. If 'prefix' is set to "xdg", the value in the XDG_CONFIG_HOME environment variable will be added as the path prefix. please see XDG Base Directory Specification for more details. <literal><config></literal> This element provides a place to consolidate additional configuration information. <config> can contain <blank> and <rescan> elements in any order. <literal><blank></literal> Fonts often include "broken" glyphs which appear in the encoding but are drawn as blanks on the screen. Within the <blank> element, place each Unicode characters which is supposed to be blank in an <int> element. Characters outside of this set which are drawn as blank will be elided from the set of characters supported by the font. <literal><rescan></literal> The <rescan> element holds an <int> element which indicates the default interval between automatic checks for font configuration changes. Fontconfig will validate all of the configuration files and directories and automatically rebuild the internal datastructures when this interval passes. <literal><selectfont></literal> This element is used to black/white list fonts from being listed or matched against. It holds acceptfont and rejectfont elements. <literal><acceptfont></literal> Fonts matched by an acceptfont element are "whitelisted"; such fonts are explicitly included in the set of fonts used to resolve list and match requests; including them in this list protects them from being "blacklisted" by a rejectfont element. Acceptfont elements include glob and pattern elements which are used to match fonts. <literal><rejectfont></literal> Fonts matched by an rejectfont element are "blacklisted"; such fonts are excluded from the set of fonts used to resolve list and match requests as if they didn't exist in the system. Rejectfont elements include glob and pattern elements which are used to match fonts. <literal><glob></literal> Glob elements hold shell-style filename matching patterns (including ? and *) which match fonts based on their complete pathnames. This can be used to exclude a set of directories (/usr/share/fonts/uglyfont*), or particular font file types (*.pcf.gz), but the latter mechanism relies rather heavily on filenaming conventions which can't be relied upon. Note that globs only apply to directories, not to individual fonts. <literal><pattern></literal> Pattern elements perform list-style matching on incoming fonts; that is, they hold a list of elements and associated values. If all of those elements have a matching value, then the pattern matches the font. This can be used to select fonts based on attributes of the font (scalable, bold, etc), which is a more reliable mechanism than using file extensions. Pattern elements include patelt elements. <literal><patelt name="property"></literal> Patelt elements hold a single pattern element and list of values. They must have a 'name' attribute which indicates the pattern element name. Patelt elements include int, double, string, matrix, bool, charset and const elements. <literal><match target="pattern"></literal> This element holds first a (possibly empty) list of <test> elements and then a (possibly empty) list of <edit> elements. Patterns which match all of the tests are subjected to all the edits. If 'target' is set to "font" instead of the default "pattern", then this element applies to the font name resulting from a match rather than a font pattern to be matched. If 'target' is set to "scan", then this element applies when the font is scanned to build the fontconfig database. <literal><test qual="any" name="property" target="default" compare="eq"></literal> This element contains a single value which is compared with the target ('pattern', 'font', 'scan' or 'default') property "property" (substitute any of the property names seen above). 'compare' can be one of "eq", "not_eq", "less", "less_eq", "more", "more_eq", "contains" or "not_contains". 'qual' may either be the default, "any", in which case the match succeeds if any value associated with the property matches the test value, or "all", in which case all of the values associated with the property must match the test value. 'ignore-blanks' takes a boolean value. if 'ignore-blanks' is set "true", any blanks in the string will be ignored on its comparison. this takes effects only when compare="eq" or compare="not_eq". When used in a <match target="font"> element, the target= attribute in the <test> element selects between matching the original pattern or the font. "default" selects whichever target the outer <match> element has selected. <literal><edit name="property" mode="assign" binding="weak"></literal> This element contains a list of expression elements (any of the value or operator elements). The expression elements are evaluated at run-time and modify the property "property". The modification depends on whether "property" was matched by one of the associated <test> elements, if so, the modification may affect the first matched value. Any values inserted into the property are given the indicated binding ("strong", "weak" or "same") with "same" binding using the value from the matched pattern element. 'mode' is one of: Mode With Match Without Match --------------------------------------------------------------------- "assign" Replace matching value Replace all values "assign_replace" Replace all values Replace all values "prepend" Insert before matching Insert at head of list "prepend_first" Insert at head of list Insert at head of list "append" Append after matching Append at end of list "append_last" Append at end of list Append at end of list "delete" Delete matching value Delete all values "delete_all" Delete all values Delete all values <literal><int></literal>, <literal><double></literal>, <literal><string></literal>, <literal><bool></literal> These elements hold a single value of the indicated type. <bool> elements hold either true or false. An important limitation exists in the parsing of floating point numbers -- fontconfig requires that the mantissa start with a digit, not a decimal point, so insert a leading zero for purely fractional values (e.g. use 0.5 instead of .5 and -0.5 instead of -.5). <literal><matrix></literal> This element holds four numerical expressions of an affine transformation. At their simplest these will be four <double> elements but they can also be more involved expressions. <literal><range></literal> This element holds the two <int> elements of a range representation. <literal><charset></literal> This element holds at least one <int> element of an Unicode code point or more. <literal><langset></literal> This element holds at least one <string> element of a RFC-3066-style languages or more. <literal><name></literal> Holds a property name. Evaluates to the first value from the property of the pattern. If the 'target' attribute is not present, it will default to 'default', in which case the property is returned from the font pattern during a target="font" match, and to the pattern during a target="pattern" match. The attribute can also take the values 'font' or 'pattern' to explicitly choose which pattern to use. It is an error to use a target of 'font' in a match that has target="pattern". <literal><const></literal> Holds the name of a constant; these are always integers and serve as symbolic names for common font values: Constant Property Value ------------------------------------- thin weight 0 extralight weight 40 ultralight weight 40 light weight 50 book weight 75 regular weight 80 normal weight 80 medium weight 100 demibold weight 180 semibold weight 180 bold weight 200 extrabold weight 205 black weight 210 heavy weight 210 roman slant 0 italic slant 100 oblique slant 110 ultracondensed width 50 extracondensed width 63 condensed width 75 semicondensed width 87 normal width 100 semiexpanded width 113 expanded width 125 extraexpanded width 150 ultraexpanded width 200 proportional spacing 0 dual spacing 90 mono spacing 100 charcell spacing 110 unknown rgba 0 rgb rgba 1 bgr rgba 2 vrgb rgba 3 vbgr rgba 4 none rgba 5 lcdnone lcdfilter 0 lcddefault lcdfilter 1 lcdlight lcdfilter 2 lcdlegacy lcdfilter 3 hintnone hintstyle 0 hintslight hintstyle 1 hintmedium hintstyle 2 hintfull hintstyle 3 <literal><or></literal>, <literal><and></literal>, <literal><plus></literal>, <literal><minus></literal>, <literal><times></literal>, <literal><divide></literal> These elements perform the specified operation on a list of expression elements. <or> and <and> are boolean, not bitwise. <literal><eq></literal>, <literal><not_eq></literal>, <literal><less></literal>, <literal><less_eq></literal>, <literal><more></literal>, <literal><more_eq></literal>, <literal><contains></literal>, <literal><not_contains</literal> These elements compare two values, producing a boolean result. <literal><not></literal> Inverts the boolean sense of its one expression element <literal><if></literal> This element takes three expression elements; if the value of the first is true, it produces the value of the second, otherwise it produces the value of the third. <literal><alias></literal> Alias elements provide a shorthand notation for the set of common match operations needed to substitute one font family for another. They contain a <family> element followed by optional <prefer>, <accept> and <default> elements. Fonts matching the <family> element are edited to prepend the list of <prefer>ed families before the matching <family>, append the <accept>able families after the matching <family> and append the <default> families to the end of the family list. <literal><family></literal> Holds a single font family name <literal><prefer></literal>, <literal><accept></literal>, <literal><default></literal> These hold a list of <family> elements to be used by the <alias> element. EXAMPLE CONFIGURATION FILE System configuration file This is an example of a system-wide configuration file <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <!-- &confdir;/fonts.conf file to configure system font access --> <fontconfig> <!-- Find fonts in these directories --> <dir>/usr/share/fonts</dir> <dir>/usr/X11R6/lib/X11/fonts</dir> <!-- Accept deprecated 'mono' alias, replacing it with 'monospace' --> <match target="pattern"> <test qual="any" name="family"><string>mono</string></test> <edit name="family" mode="assign"><string>monospace</string></edit> </match> <!-- Names not including any well known alias are given 'sans-serif' --> <match target="pattern"> <test qual="all" name="family" mode="not_eq"><string>sans-serif</string></test> <test qual="all" name="family" mode="not_eq"><string>serif</string></test> <test qual="all" name="family" mode="not_eq"><string>monospace</string></test> <edit name="family" mode="append_last"><string>sans-serif</string></edit> </match> <!-- Load per-user customization file, but don't complain if it doesn't exist --> <include ignore_missing="yes" prefix="xdg">fontconfig/fonts.conf</include> <!-- Load local customization files, but don't complain if there aren't any --> <include ignore_missing="yes">conf.d</include> <include ignore_missing="yes">local.conf</include> <!-- Alias well known font names to available TrueType fonts. These substitute TrueType faces for similar Type1 faces to improve screen appearance. --> <alias> <family>Times</family> <prefer><family>Times New Roman</family></prefer> <default><family>serif</family></default> </alias> <alias> <family>Helvetica</family> <prefer><family>Arial</family></prefer> <default><family>sans</family></default> </alias> <alias> <family>Courier</family> <prefer><family>Courier New</family></prefer> <default><family>monospace</family></default> </alias> <!-- Provide required aliases for standard names Do these after the users configuration file so that any aliases there are used preferentially --> <alias> <family>serif</family> <prefer><family>Times New Roman</family></prefer> </alias> <alias> <family>sans</family> <prefer><family>Arial</family></prefer> </alias> <alias> <family>monospace</family> <prefer><family>Andale Mono</family></prefer> </alias> <-- The example of the requirements of OR operator; If the 'family' contains 'Courier New' OR 'Courier' add 'monospace' as the alternative --> <match target="pattern"> <test name="family" mode="eq"> <string>Courier New</string> </test> <edit name="family" mode="prepend"> <string>monospace</string> </edit> </match> <match target="pattern"> <test name="family" mode="eq"> <string>Courier</string> </test> <edit name="family" mode="prepend"> <string>monospace</string> </edit> </match> </fontconfig> User configuration file This is an example of a per-user configuration file that lives in $XDG_CONFIG_HOME/fontconfig/fonts.conf <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <!-- $XDG_CONFIG_HOME/fontconfig/fonts.conf for per-user font configuration --> <fontconfig> <!-- Private font directory --> <dir prefix="xdg">fonts</dir> <!-- use rgb sub-pixel ordering to improve glyph appearance on LCD screens. Changes affecting rendering, but not matching should always use target="font". --> <match target="font"> <edit name="rgba" mode="assign"><const>rgb</const></edit> </match> <!-- use WenQuanYi Zen Hei font when serif is requested for Chinese --> <match> <!-- If you don't want to use WenQuanYi Zen Hei font for zh-tw etc, you can use zh-cn instead of zh. Please note, even if you set zh-cn, it still matches zh. if you don't like it, you can use compare="eq" instead of compare="contains". --> <test name="lang" compare="contains"> <string>zh</string> </test> <test name="family"> <string>serif</string> </test> <edit name="family" mode="prepend"> <string>WenQuanYi Zen Hei</string> </edit> </match> <!-- use VL Gothic font when sans-serif is requested for Japanese --> <match> <test name="lang" compare="contains"> <string>ja</string> </test> <test name="family"> <string>sans-serif</string> </test> <edit name="family" mode="prepend"> <string>VL Gothic</string> </edit> </match> </fontconfig> Files fonts.conf contains configuration information for the fontconfig library consisting of directories to look at for font information as well as instructions on editing program specified font patterns before attempting to match the available fonts. It is in XML format. conf.d is the conventional name for a directory of additional configuration files managed by external applications or the local administrator. The filenames starting with decimal digits are sorted in lexicographic order and used as additional configuration files. All of these files are in XML format. The master fonts.conf file references this directory in an <include> directive. fonts.dtd is a DTD that describes the format of the configuration files. $XDG_CONFIG_HOME/fontconfig/conf.d and ~/.fonts.conf.d is the conventional name for a per-user directory of (typically auto-generated) configuration files, although the actual location is specified in the global fonts.conf file. please note that ~/.fonts.conf.d is deprecated now. it will not be read by default in the future version. $XDG_CONFIG_HOME/fontconfig/fonts.conf and ~/.fonts.conf is the conventional location for per-user font configuration, although the actual location is specified in the global fonts.conf file. please note that ~/.fonts.conf is deprecated now. it will not be read by default in the future version. $XDG_CACHE_HOME/fontconfig/*.cache-* and ~/.fontconfig/*.cache-* is the conventional repository of font information that isn't found in the per-directory caches. This file is automatically maintained by fontconfig. please note that ~/.fontconfig/*.cache-* is deprecated now. it will not be read by default in the future version. Environment variables FONTCONFIG_FILE is used to override the default configuration file. FONTCONFIG_PATH is used to override the default configuration directory. FC_DEBUG is used to output the detailed debugging messages. see Debugging Applications section for more details. FONTCONFIG_USE_MMAP is used to control the use of mmap(2) for the cache files if available. this take a boolean value. fontconfig will checks if the cache files are stored on the filesystem that is safe to use mmap(2). explicitly setting this environment variable will causes skipping this check and enforce to use or not use mmap(2) anyway. See Also fc-cat(1), fc-cache(1), fc-list(1), fc-match(1), fc-query(1) Version Fontconfig version &version; fontconfig-2.11.1/doc/FcObjectSetBuild.30000664000076400007640000000140012313745357014634 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcObjectSetBuild" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcObjectSetBuild, FcObjectSetVaBuild, FcObjectSetVapBuild \- Build object set from args .SH SYNOPSIS .nf \fB#include .sp FcObjectSet * FcObjectSetBuild (const char *\fIfirst\fB, \&...\fI\fB); .sp FcObjectSet * FcObjectSetVaBuild (const char *\fIfirst\fB, va_list \fIva\fB); .sp void FcObjectSetVapBuild (FcObjectSet *\fIresult\fB, const char *\fIfirst\fB, va_list \fIva\fB); .fi\fR .SH "DESCRIPTION" .PP These build an object set from a null-terminated list of property names. FcObjectSetVapBuild is a macro version of FcObjectSetVaBuild which returns the result in the \fIresult\fR variable directly. fontconfig-2.11.1/doc/FcCharSetDelChar.30000664000076400007640000000103512313745357014552 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcCharSetDelChar" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcCharSetDelChar \- Add a character to a charset .SH SYNOPSIS .nf \fB#include .sp FcBool FcCharSetDelChar (FcCharSet *\fIfcs\fB, FcChar32 \fIucs4\fB); .fi\fR .SH "DESCRIPTION" .PP \fBFcCharSetDelChar\fR deletes a single Unicode char from the set, returning FcFalse on failure, either as a result of a constant set or from running out of memory. .SH "SINCE" .PP version 2.9.0 fontconfig-2.11.1/doc/FcMatrixEqual.30000664000076400007640000000073312313745357014236 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcMatrixEqual" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcMatrixEqual \- Compare two matrices .SH SYNOPSIS .nf \fB#include .sp void FcMatrixEqual (const FcMatrix *\fImatrix1\fB, const FcMatrix *\fImatrix2\fB); .fi\fR .SH "DESCRIPTION" .PP \fBFcMatrixEqual\fR compares \fImatrix1\fR and \fImatrix2\fR returning FcTrue when they are equal and FcFalse when they are not. fontconfig-2.11.1/doc/FcStrFree.30000664000076400007640000000061212313745357013350 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcStrFree" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcStrFree \- free a string .SH SYNOPSIS .nf \fB#include .sp void FcStrFree (FcChar8 *\fIs\fB); .fi\fR .SH "DESCRIPTION" .PP This is just a wrapper around free(3) which helps track memory usage of strings within the fontconfig library. fontconfig-2.11.1/doc/FcLangSetCopy.30000664000076400007640000000064412313745357014173 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcLangSetCopy" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcLangSetCopy \- copy a langset object .SH SYNOPSIS .nf \fB#include .sp FcLangSet * FcLangSetCopy (const FcLangSet *\fIls\fB); .fi\fR .SH "DESCRIPTION" .PP \fBFcLangSetCopy\fR creates a new FcLangSet object and populates it with the contents of \fIls\fR\&. fontconfig-2.11.1/doc/FcPatternFormat.30000664000076400007640000002216512313745357014573 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcPatternFormat" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcPatternFormat \- Format a pattern into a string according to a format specifier .SH SYNOPSIS .nf \fB#include .sp FcChar8 * FcPatternFormat (FcPattern *\fIpat\fB, const FcChar8 *\fIformat\fB); .fi\fR .SH "DESCRIPTION" .PP Converts given pattern \fIpat\fR into text described by the format specifier \fIformat\fR\&. The return value refers to newly allocated memory which should be freed by the caller using free(), or NULL if \fIformat\fR is invalid. .PP The format is loosely modeled after printf-style format string. The format string is composed of zero or more directives: ordinary characters (not "%"), which are copied unchanged to the output stream; and tags which are interpreted to construct text from the pattern in a variety of ways (explained below). Special characters can be escaped using backslash. C-string style special characters like \\n and \\r are also supported (this is useful when the format string is not a C string literal). It is advisable to always escape curly braces that are meant to be copied to the output as ordinary characters. .PP Each tag is introduced by the character "%", followed by an optional minimum field width, followed by tag contents in curly braces ({}). If the minimum field width value is provided the tag will be expanded and the result padded to achieve the minimum width. If the minimum field width is positive, the padding will right-align the text. Negative field width will left-align. The rest of this section describes various supported tag contents and their expansion. .PP A \fIsimple\fR tag is one where the content is an identifier. When simple tags are expanded, the named identifier will be looked up in \fIpattern\fR and the resulting list of values returned, joined together using comma. For example, to print the family name and style of the pattern, use the format "%{family} %{style}\\n". To extend the family column to forty characters use "%-40{family}%{style}\\n". .PP Simple tags expand to list of all values for an element. To only choose one of the values, one can index using the syntax "%{elt[idx]}". For example, to get the first family name only, use "%{family[0]}". .PP If a simple tag ends with "=" and the element is found in the pattern, the name of the element followed by "=" will be output before the list of values. For example, "%{weight=}" may expand to the string "weight=80". Or to the empty string if \fIpattern\fR does not have weight set. .PP If a simple tag starts with ":" and the element is found in the pattern, ":" will be printed first. For example, combining this with the =, the format "%{:weight=}" may expand to ":weight=80" or to the empty string if \fIpattern\fR does not have weight set. .PP If a simple tag contains the string ":-", the rest of the the tag contents will be used as a default string. The default string is output if the element is not found in the pattern. For example, the format "%{:weight=:-123}" may expand to ":weight=80" or to the string ":weight=123" if \fIpattern\fR does not have weight set. .PP A \fIcount\fR tag is one that starts with the character "#" followed by an element name, and expands to the number of values for the element in the pattern. For example, "%{#family}" expands to the number of family names \fIpattern\fR has set, which may be zero. .PP A \fIsub-expression\fR tag is one that expands a sub-expression. The tag contents are the sub-expression to expand placed inside another set of curly braces. Sub-expression tags are useful for aligning an entire sub-expression, or to apply converters (explained later) to the entire sub-expression output. For example, the format "%40{{%{family} %{style}}}" expands the sub-expression to construct the family name followed by the style, then takes the entire string and pads it on the left to be at least forty characters. .PP A \fIfilter-out\fR tag is one starting with the character "-" followed by a comma-separated list of element names, followed by a sub-expression enclosed in curly braces. The sub-expression will be expanded but with a pattern that has the listed elements removed from it. For example, the format "%{-size,pixelsize{sub-expr}}" will expand "sub-expr" with \fIpattern\fR sans the size and pixelsize elements. .PP A \fIfilter-in\fR tag is one starting with the character "+" followed by a comma-separated list of element names, followed by a sub-expression enclosed in curly braces. The sub-expression will be expanded but with a pattern that only has the listed elements from the surrounding pattern. For example, the format "%{+family,familylang{sub-expr}}" will expand "sub-expr" with a sub-pattern consisting only the family and family lang elements of \fIpattern\fR\&. .PP A \fIconditional\fR tag is one starting with the character "?" followed by a comma-separated list of element conditions, followed by two sub-expression enclosed in curly braces. An element condition can be an element name, in which case it tests whether the element is defined in pattern, or the character "!" followed by an element name, in which case the test is negated. The conditional passes if all the element conditions pass. The tag expands the first sub-expression if the conditional passes, and expands the second sub-expression otherwise. For example, the format "%{?size,dpi,!pixelsize{pass}{fail}}" will expand to "pass" if \fIpattern\fR has size and dpi elements but no pixelsize element, and to "fail" otherwise. .PP An \fIenumerate\fR tag is one starting with the string "[]" followed by a comma-separated list of element names, followed by a sub-expression enclosed in curly braces. The list of values for the named elements are walked in parallel and the sub-expression expanded each time with a pattern just having a single value for those elements, starting from the first value and continuing as long as any of those elements has a value. For example, the format "%{[]family,familylang{%{family} (%{familylang})\\n}}" will expand the pattern "%{family} (%{familylang})\\n" with a pattern having only the first value of the family and familylang elements, then expands it with the second values, then the third, etc. .PP As a special case, if an enumerate tag has only one element, and that element has only one value in the pattern, and that value is of type FcLangSet, the individual languages in the language set are enumerated. .PP A \fIbuiltin\fR tag is one starting with the character "=" followed by a builtin name. The following builtins are defined: .TP \fBunparse\fR Expands to the result of calling FcNameUnparse() on the pattern. .TP \fBfcmatch\fR Expands to the output of the default output format of the fc-match command on the pattern, without the final newline. .TP \fBfclist\fR Expands to the output of the default output format of the fc-list command on the pattern, without the final newline. .TP \fBfccat\fR Expands to the output of the default output format of the fc-cat command on the pattern, without the final newline. .TP \fBpkgkit\fR Expands to the list of PackageKit font() tags for the pattern. Currently this includes tags for each family name, and each language from the pattern, enumerated and sanitized into a set of tags terminated by newline. Package management systems can use these tags to tag their packages accordingly. .PP For example, the format "%{+family,style{%{=unparse}}}\\n" will expand to an unparsed name containing only the family and style element values from \fIpattern\fR\&. .PP The contents of any tag can be followed by a set of zero or more \fIconverter\fRs. A converter is specified by the character "|" followed by the converter name and arguments. The following converters are defined: .TP \fBbasename\fR Replaces text with the results of calling FcStrBasename() on it. .TP \fBdirname\fR Replaces text with the results of calling FcStrDirname() on it. .TP \fBdowncase\fR Replaces text with the results of calling FcStrDowncase() on it. .TP \fBshescape\fR Escapes text for one level of shell expansion. (Escapes single-quotes, also encloses text in single-quotes.) .TP \fBcescape\fR Escapes text such that it can be used as part of a C string literal. (Escapes backslash and double-quotes.) .TP \fBxmlescape\fR Escapes text such that it can be used in XML and HTML. (Escapes less-than, greater-than, and ampersand.) .TP \fBdelete(\fIchars\fB)\fR Deletes all occurrences of each of the characters in \fIchars\fR from the text. FIXME: This converter is not UTF-8 aware yet. .TP \fBescape(\fIchars\fB)\fR Escapes all occurrences of each of the characters in \fIchars\fR by prepending it by the first character in \fIchars\fR\&. FIXME: This converter is not UTF-8 aware yet. .TP \fBtranslate(\fIfrom\fB,\fIto\fB)\fR Translates all occurrences of each of the characters in \fIfrom\fR by replacing them with their corresponding character in \fIto\fR\&. If \fIto\fR has fewer characters than \fIfrom\fR, it will be extended by repeating its last character. FIXME: This converter is not UTF-8 aware yet. .PP For example, the format "%{family|downcase|delete( )}\\n" will expand to the values of the family element in \fIpattern\fR, lower-cased and with spaces removed. .SH "SINCE" .PP version 2.9.0 fontconfig-2.11.1/doc/Makefile.am0000664000076400007640000001265512267155333013504 00000000000000# -*- encoding: utf-8 -*- # # fontconfig/doc/Makefile.am # # 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 = EXTRA_DIST = \ $(BUILT_DOCS) \ $(DOC_FUNCS_FNCS) \ $(DOC_FUNCS_SGML) \ $(HTML_DIR)/* \ $(SGML_FILES) \ $(check_SCRIPTS) \ confdir.sgml.in \ func.sgml \ $(NULL) MAINTAINERCLEANFILES = \ $(DOC_FUNCS_SGML) \ $(NULL) CLEANFILES = \ $(BUILT_DOCS) \ $(LOCAL_SGML_FILES) \ confdir.sgml \ func.refs \ $(NULL) BUILT_SOURCES = \ $(NULL) SUFFIXES = \ .fncs \ .sgml \ .txt \ .html \ $(NULL) TESTS = \ check-missing-doc \ $(NULL) TESTS_ENVIRONMENT = \ top_srcdir=${top_srcdir}; export top_srcdir; \ $(NULL) LOG_COMPILER = sh # DOC2HTML = docbook2html DOC2TXT = docbook2txt DOC2MAN = docbook2man DOC2PDF = docbook2pdf DOC_FUNCS_FNCS = \ fcatomic.fncs \ fcblanks.fncs \ fccache.fncs \ fccharset.fncs \ fcconfig.fncs \ fcconstant.fncs \ fcdircache.fncs \ fcfile.fncs \ fcfontset.fncs \ fcformat.fncs \ fcfreetype.fncs \ fcinit.fncs \ fclangset.fncs \ fcmatrix.fncs \ fcobjectset.fncs \ fcobjecttype.fncs \ fcpattern.fncs \ fcstring.fncs \ fcstrset.fncs \ fcvalue.fncs \ $(NULL) SGML_FILES = \ fontconfig-user.sgml \ fontconfig-devel.sgml \ $(NULL) LOCAL_SGML_FILES = \ local-fontconfig-user.sgml \ local-fontconfig-devel.sgml \ $(NULL) DOC_FUNCS_SGML = $(DOC_FUNCS_FNCS:.fncs=.sgml) BUILT_DOCS = \ $(HTML_FILES) \ $(PDF_FILES) \ $(TXT_FILES) \ $(man3_MANS) \ $(man5_MANS) \ $(NULL) DOCS_DEPS = \ $(DOC_FUNCS_SGML) \ confdir.sgml \ version.sgml \ $(NULL) TXT_FILES = $(SGML_FILES:.sgml=.txt) PDF_FILES = $(SGML_FILES:.sgml=.pdf) HTML_FILES = \ fontconfig-user.html \ $(NULL) HTML_DIR = fontconfig-devel # noinst_PROGRAMS = \ $(NULL) ## edit_sgml_SOURCES = \ edit-sgml.c \ $(NULL) edit_sgml_CC = $(CC_FOR_BUILD) # check_SCRIPTS = \ check-missing-doc \ $(NULL) # man3_MANS = \ $(DOCMAN3) \ $(NULL) man5_MANS = \ fonts-conf.5 \ $(NULL) # doc_DATA = \ $(TXT_FILES) \ $(PDF_FILES) \ $(HTML_FILES) \ $(NULL) # htmldocdir = $(docdir)/$(HTML_DIR) htmldoc_DATA = \ $(NULL) if USEDOCBOOK BUILT_SOURCES += \ $(LOCAL_SGML_FILES) \ $(NULL) noinst_PROGRAMS += \ edit-sgml \ $(NULL) htmldoc_DATA += $(HTML_DIR)/* ## .fncs.sgml: $(AM_V_GEN) $(RM) $@; \ $(builddir)/edit-sgml$(EXEEXT) $(srcdir)/func.sgml < '$(srcdir)/$*.fncs' > $*.sgml .sgml.txt: $(AM_V_GEN) $(RM) $@; \ $(DOC2TXT) $*.sgml .sgml.pdf: $(AM_V_GEN) $(RM) $@; \ $(DOC2PDF) $*.sgml .sgml.html: $(AM_V_GEN) $(RM) $@; \ $(DOC2HTML) -u $*.sgml > $@ ## fonts-conf.5: local-fontconfig-user.sgml version.sgml confdir.sgml $(AM_V_GEN) $(RM) $@; \ $(DOC2MAN) local-fontconfig-user.sgml && \ $(RM) manpage.* ## $(man3_MANS): func.refs func.refs: local-fontconfig-devel.sgml $(DOCS_DEPS) $(AM_V_GEN) $(RM) $@; \ $(DOC2MAN) -o devel-man local-fontconfig-devel.sgml && \ mv devel-man/manpage.refs func.refs && \ mv devel-man/*.3 . && \ $(RM) devel-man/manpage.* && \ rmdir devel-man || rm $@ || : confdir.sgml: $(srcdir)/confdir.sgml.in $(AM_V_GEN) sed -e 's,@CONFDIR\@,${CONFDIR},' $(srcdir)/$@.in | awk '{if (NR > 1) printf("\n"); printf("%s", $$0);}' > $@ ## $(DOC_FUNCS_SGML): $(DOC_FUNCS_FNCS) edit-sgml$(EXEEXT) $(srcdir)/func.sgml $(TXT_FILES): $(DOCS_DEPS) $(PDF_FILES): $(DOCS_DEPS) $(HTML_FILES): $(DOCS_DEPS) $(HTML_DIR)/*: $(HTML_DIR) $(HTML_DIR): local-fontconfig-devel.sgml $(DOCS_DEPS) $(AM_V_GEN) $(RM) -r $@; \ $(DOC2HTML) -V '%use-id-as-filename%' -o $@ local-fontconfig-devel.sgml local-fontconfig-user.sgml: $(srcdir)/fontconfig-user.sgml $(AM_V_GEN) $(LN_S) $(srcdir)/fontconfig-user.sgml $@; \ [ ! -f $(builddir)/fontconfig-user.sgml ] && cp -a $(srcdir)/fontconfig-user.sgml $(builddir)/fontconfig-user.sgml || : local-fontconfig-devel.sgml: $(srcdir)/fontconfig-devel.sgml $(AM_V_GEN) $(LN_S) $(srcdir)/fontconfig-devel.sgml $@; \ [ ! -f $(builddir)/fontconfig-devel.sgml ] && cp -a $(srcdir)/fontconfig-devel.sgml $(builddir)/fontconfig-devel.sgml || : # all-local: $(BUILT_DOCS) $(HTML_DIR)/* clean-local: $(RM) -r $(HTML_DIR) devel-man [ "x$(builddir)" != "x$(srcdir)" ] && $(RM) $(builddir)/*.sgml || : dist-local-check-docs-enabled: @true else htmldoc_DATA += $(srcdir)/$(HTML_DIR)/* all-local: clean-local: dist-local-check-docs-enabled: @echo "*** --enable-man must be used in order to make dist" @false endif # force doc rebulid after configure dist-hook-local: dist-local-check-docs-enabled -include $(top_srcdir)/git.mk fontconfig-2.11.1/doc/FcInitReinitialize.30000664000076400007640000000114012313745357015247 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcInitReinitialize" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcInitReinitialize \- re-initialize library .SH SYNOPSIS .nf \fB#include .sp FcBool FcInitReinitialize (void\fI\fB); .fi\fR .SH "DESCRIPTION" .PP Forces the default configuration file to be reloaded and resets the default configuration. Returns FcFalse if the configuration cannot be reloaded (due to configuration file errors, allocation failures or other issues) and leaves the existing configuration unchanged. Otherwise returns FcTrue. fontconfig-2.11.1/doc/fcobjecttype.fncs0000664000076400007640000000346712267155333015005 00000000000000/* * fontconfig/doc/fcobjecttype.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@ FcBool @FUNC@ FcNameRegisterObjectTypes @TYPE1@ const FcObjectType * @ARG1@ types @TYPE2@ int% @ARG2@ ntype @PURPOSE@ Register object types @DESC@ Deprecated. Does nothing. Returns FcFalse. @@ @RET@ FcBool @FUNC@ FcNameUnregisterObjectTypes @TYPE1@ const FcObjectType * @ARG1@ types @TYPE2@ int% @ARG2@ ntype @PURPOSE@ Unregister object types @DESC@ Deprecated. Does nothing. Returns FcFalse. @@ @RET@ const FcObjectType * @FUNC@ FcNameGetObjectType @TYPE1@ const char * @ARG1@ object @PURPOSE@ Lookup an object type @DESC@ Return the object type for the pattern element named object. @@ fontconfig-2.11.1/doc/fcconstant.sgml0000664000076400007640000002031112306317520014452 00000000000000 FcNameRegisterConstants 3 Fontconfig &version; FcNameRegisterConstants Register symbolic constants #include <fontconfig/fontconfig.h> FcBool FcNameRegisterConstants const FcConstant *consts int nconsts Description Deprecated. Does nothing. Returns FcFalse. FcNameUnregisterConstants 3 Fontconfig &version; FcNameUnregisterConstants Unregister symbolic constants #include <fontconfig/fontconfig.h> FcBool FcNameUnregisterConstants const FcConstant *consts int nconsts Description Deprecated. Does nothing. Returns FcFalse. FcNameGetConstant 3 Fontconfig &version; FcNameGetConstant Lookup symbolic constant #include <fontconfig/fontconfig.h> const FcConstant * FcNameGetConstant FcChar8 *string Description Return the FcConstant structure related to symbolic constant string. FcNameConstant 3 Fontconfig &version; FcNameConstant Get the value for a symbolic constant #include <fontconfig/fontconfig.h> FcBool FcNameConstant FcChar8 *string int *result Description Returns whether a symbolic constant with name string is registered, placing the value of the constant in result if present. fontconfig-2.11.1/doc/FcFontSetPrint.30000664000076400007640000000104612313745357014377 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcFontSetPrint" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcFontSetPrint \- Print a set of patterns to stdout .SH SYNOPSIS .nf \fB#include .sp void FcFontSetPrint (FcFontSet *\fIset\fB); .fi\fR .SH "DESCRIPTION" .PP This function is useful for diagnosing font related issues, printing the complete contents of every pattern in \fIset\fR\&. The format of the output is designed to be of help to users and developers, and may change at any time. fontconfig-2.11.1/doc/FcConfigGetConfigDirs.30000664000076400007640000000102412313745357015611 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigGetConfigDirs" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigGetConfigDirs \- Get config directories .SH SYNOPSIS .nf \fB#include .sp FcStrList * FcConfigGetConfigDirs (FcConfig *\fIconfig\fB); .fi\fR .SH "DESCRIPTION" .PP Returns the list of font directories specified in the configuration files for \fIconfig\fR\&. Does not include any subdirectories. If \fIconfig\fR is NULL, the current configuration is used. fontconfig-2.11.1/doc/FcCharSetSubtract.30000664000076400007640000000065512313745357015046 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcCharSetSubtract" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcCharSetSubtract \- Subtract charsets .SH SYNOPSIS .nf \fB#include .sp FcCharSet * FcCharSetSubtract (const FcCharSet *\fIa\fB, const FcCharSet *\fIb\fB); .fi\fR .SH "DESCRIPTION" .PP Returns a set including only those chars found in \fIa\fR but not \fIb\fR\&. fontconfig-2.11.1/doc/FcFontSetAdd.30000664000076400007640000000103712313745357013773 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcFontSetAdd" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcFontSetAdd \- Add to a font set .SH SYNOPSIS .nf \fB#include .sp FcBool FcFontSetAdd (FcFontSet *\fIs\fB, FcPattern *\fIfont\fB); .fi\fR .SH "DESCRIPTION" .PP Adds a pattern to a font set. Note that the pattern is not copied before being inserted into the set. Returns FcFalse if the pattern cannot be inserted into the set (due to allocation failure). Otherwise returns FcTrue. fontconfig-2.11.1/doc/FcDirCacheValid.30000664000076400007640000000062412313745357014423 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcDirCacheValid" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcDirCacheValid \- check directory cache .SH SYNOPSIS .nf \fB#include .sp FcBool FcDirCacheValid (const FcChar8 *\fIdir\fB); .fi\fR .SH "DESCRIPTION" .PP Returns FcTrue if \fIdir\fR has an associated valid cache file, else returns FcFalse fontconfig-2.11.1/doc/FcDirCacheLoad.30000664000076400007640000000105512313745357014242 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcDirCacheLoad" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcDirCacheLoad \- load a directory cache .SH SYNOPSIS .nf \fB#include .sp FcCache * FcDirCacheLoad (const FcChar8 *\fIdir\fB, FcConfig *\fIconfig\fB, FcChar8 **\fIcache_file\fB); .fi\fR .SH "DESCRIPTION" .PP Loads the cache related to \fIdir\fR\&. If no cache file exists, returns NULL. The name of the cache file is returned in \fIcache_file\fR, unless that is NULL. See also FcDirCacheRead. fontconfig-2.11.1/doc/FcConfigParseAndLoad.30000664000076400007640000000150412313745357015422 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigParseAndLoad" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigParseAndLoad \- load a configuration file .SH SYNOPSIS .nf \fB#include .sp FcBool FcConfigParseAndLoad (FcConfig *\fIconfig\fB, const FcChar8 *\fIfile\fB, FcBool \fIcomplain\fB); .fi\fR .SH "DESCRIPTION" .PP Walks the configuration in 'file' and constructs the internal representation in 'config'. Any include files referenced from within 'file' will be loaded and parsed. If 'complain' is FcFalse, no warning will be displayed if \&'file' does not exist. Error and warning messages will be output to stderr. Returns FcFalse if some error occurred while loading the file, either a parse error, semantic error or allocation failure. Otherwise returns FcTrue. fontconfig-2.11.1/doc/FcPatternFilter.30000664000076400007640000000076112313745357014566 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcPatternFilter" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcPatternFilter \- Filter the objects of pattern .SH SYNOPSIS .nf \fB#include .sp FcPattern * FcPatternFilter (FcPattern *\fIp\fB, const FcObjectSet *\fI\fB); .fi\fR .SH "DESCRIPTION" .PP Returns a new pattern that only has those objects from \fIp\fR that are in \fIos\fR\&. If \fIos\fR is NULL, a duplicate of \fIp\fR is returned. fontconfig-2.11.1/doc/fcstring.sgml0000664000076400007640000012141612306317520014137 00000000000000 FcUtf8ToUcs4 3 Fontconfig &version; FcUtf8ToUcs4 convert UTF-8 to UCS4 #include <fontconfig/fontconfig.h> int FcUtf8ToUcs4 FcChar8 *src FcChar32 *dst int len Description Converts the next Unicode char from src into dst and returns the number of bytes containing the char. src must be at least len bytes long. FcUcs4ToUtf8 3 Fontconfig &version; FcUcs4ToUtf8 convert UCS4 to UTF-8 #include <fontconfig/fontconfig.h> int FcUcs4ToUtf8 FcChar32 src FcChar8 dst[FC_UTF8_MAX_LEN] Description Converts the Unicode char from src into dst and returns the number of bytes needed to encode the char. FcUtf8Len 3 Fontconfig &version; FcUtf8Len count UTF-8 encoded chars #include <fontconfig/fontconfig.h> FcBool FcUtf8Len FcChar8 *src int len int *nchar int *wchar Description Counts the number of Unicode chars in len bytes of src. Places that count in nchar. wchar contains 1, 2 or 4 depending on the number of bytes needed to hold the largest Unicode char counted. The return value indicates whether src is a well-formed UTF8 string. FcUtf16ToUcs4 3 Fontconfig &version; FcUtf16ToUcs4 convert UTF-16 to UCS4 #include <fontconfig/fontconfig.h> int FcUtf16ToUcs4 FcChar8 *src FcEndian endian FcChar32 *dst int len Description Converts the next Unicode char from src into dst and returns the number of bytes containing the char. src must be at least len bytes long. Bytes of src are combined into 16-bit units according to endian. FcUtf16Len 3 Fontconfig &version; FcUtf16Len count UTF-16 encoded chars #include <fontconfig/fontconfig.h> FcBool FcUtf16Len FcChar8 *src FcEndian endian int len int *nchar int *wchar Description Counts the number of Unicode chars in len bytes of src. Bytes of src are combined into 16-bit units according to endian. Places that count in nchar. wchar contains 1, 2 or 4 depending on the number of bytes needed to hold the largest Unicode char counted. The return value indicates whether string is a well-formed UTF16 string. FcIsLower 3 Fontconfig &version; FcIsLower check for lower case ASCII character #include <fontconfig/fontconfig.h> FcBool FcIsLower FcChar8c Description This macro checks whether c is an lower case ASCII letter. FcIsUpper 3 Fontconfig &version; FcIsUpper check for upper case ASCII character #include <fontconfig/fontconfig.h> FcBool FcIsUpper FcChar8c Description This macro checks whether c is a upper case ASCII letter. FcToLower 3 Fontconfig &version; FcToLower convert upper case ASCII to lower case #include <fontconfig/fontconfig.h> FcChar8 FcToLower FcChar8c Description This macro converts upper case ASCII c to the equivalent lower case letter. FcStrCopy 3 Fontconfig &version; FcStrCopy duplicate a string #include <fontconfig/fontconfig.h> FcChar8 * FcStrCopy const FcChar8 *s Description Allocates memory, copies s and returns the resulting buffer. Yes, this is strdup, but that function isn't available on every platform. FcStrDowncase 3 Fontconfig &version; FcStrDowncase create a lower case translation of a string #include <fontconfig/fontconfig.h> FcChar8 * FcStrDowncase const FcChar8 *s Description Allocates memory, copies s, converting upper case letters to lower case and returns the allocated buffer. FcStrCopyFilename 3 Fontconfig &version; FcStrCopyFilename create a complete path from a filename #include <fontconfig/fontconfig.h> FcChar8 * FcStrCopyFilename const FcChar8 *s Description FcStrCopyFilename constructs an absolute pathname from s. It converts any leading '~' characters in to the value of the HOME environment variable, and any relative paths are converted to absolute paths using the current working directory. Sequences of '/' characters are converted to a single '/', and names containing the current directory '.' or parent directory '..' are correctly reconstructed. Returns NULL if '~' is the leading character and HOME is unset or disabled (see FcConfigEnableHome). FcStrCmp 3 Fontconfig &version; FcStrCmp compare UTF-8 strings #include <fontconfig/fontconfig.h> int FcStrCmp const FcChar8 *s1 const FcChar8 *s2 Description Returns the usual <0, 0, >0 result of comparing s1 and s2. FcStrCmpIgnoreCase 3 Fontconfig &version; FcStrCmpIgnoreCase compare UTF-8 strings ignoring case #include <fontconfig/fontconfig.h> int FcStrCmpIgnoreCase const FcChar8 *s1 const FcChar8 *s2 Description Returns the usual <0, 0, >0 result of comparing s1 and s2. This test is case-insensitive for all proper UTF-8 encoded strings. FcStrStr 3 Fontconfig &version; FcStrStr locate UTF-8 substring #include <fontconfig/fontconfig.h> FcChar8 * FcStrStr const FcChar8 *s1 const FcChar8 *s2 Description Returns the location of s2 in s1. Returns NULL if s2 is not present in s1. This test will operate properly with UTF8 encoded strings. FcStrStrIgnoreCase 3 Fontconfig &version; FcStrStrIgnoreCase locate UTF-8 substring ignoring ASCII case #include <fontconfig/fontconfig.h> FcChar8 * FcStrStrIgnoreCase const FcChar8 *s1 const FcChar8 *s2 Description Returns the location of s2 in s1, ignoring case. Returns NULL if s2 is not present in s1. This test is case-insensitive for all proper UTF-8 encoded strings. FcStrPlus 3 Fontconfig &version; FcStrPlus concatenate two strings #include <fontconfig/fontconfig.h> FcChar8 * FcStrPlus const FcChar8 *s1 const FcChar8 *s2 Description This function allocates new storage and places the concatenation of s1 and s2 there, returning the new string. FcStrFree 3 Fontconfig &version; FcStrFree free a string #include <fontconfig/fontconfig.h> void FcStrFree FcChar8 *s Description This is just a wrapper around free(3) which helps track memory usage of strings within the fontconfig library. FcStrDirname 3 Fontconfig &version; FcStrDirname directory part of filename #include <fontconfig/fontconfig.h> FcChar8 * FcStrDirname const FcChar8 *file Description Returns the directory containing file. This is returned in newly allocated storage which should be freed when no longer needed. FcStrBasename 3 Fontconfig &version; FcStrBasename last component of filename #include <fontconfig/fontconfig.h> FcChar8 * FcStrBasename const FcChar8 *file Description Returns the filename of file stripped of any leading directory names. This is returned in newly allocated storage which should be freed when no longer needed. fontconfig-2.11.1/doc/FcStrCopy.30000664000076400007640000000067612313745357013413 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcStrCopy" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcStrCopy \- duplicate a string .SH SYNOPSIS .nf \fB#include .sp FcChar8 * FcStrCopy (const FcChar8 *\fIs\fB); .fi\fR .SH "DESCRIPTION" .PP Allocates memory, copies \fIs\fR and returns the resulting buffer. Yes, this is \fBstrdup\fR, but that function isn't available on every platform. fontconfig-2.11.1/doc/FcCacheCopySet.30000664000076400007640000000075712313745357014322 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcCacheCopySet" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcCacheCopySet \- Returns a copy of the fontset from cache .SH SYNOPSIS .nf \fB#include .sp FcFontSet * FcCacheCopySet (const FcCache *\fIcache\fB); .fi\fR .SH "DESCRIPTION" .PP The returned fontset contains each of the font patterns from \fIcache\fR\&. This fontset may be modified, but the patterns from the cache are read-only. fontconfig-2.11.1/doc/fcmatrix.fncs0000664000076400007640000000670512267155333014137 00000000000000/* * fontconfig/doc/fcmatrix.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@ void @FUNC@ FcMatrixInit @PURPOSE@ initialize an FcMatrix structure @TYPE1@ FcMatrix * @ARG1@ matrix @DESC@ FcMatrixInit initializes matrix to the identity matrix. @@ @FUNC@ FcMatrixCopy @PURPOSE@ Copy a matrix @TYPE1@ const FcMatrix * @ARG1@ matrix @DESC@ FcMatrixCopy allocates a new FcMatrix and copies mat into it. @@ @FUNC@ FcMatrixEqual @PURPOSE@ Compare two matrices @TYPE1@ const FcMatrix * @ARG1@ matrix1 @TYPE2@ const FcMatrix * @ARG2@ matrix2 @DESC@ FcMatrixEqual compares matrix1 and matrix2 returning FcTrue when they are equal and FcFalse when they are not. @@ @FUNC@ FcMatrixMultiply @PURPOSE@ Multiply matrices @TYPE1@ FcMatrix * @ARG1@ result @TYPE2@ const FcMatrix * @ARG2@ matrix1 @TYPE3@ const FcMatrix * @ARG3@ matrix2 @DESC@ FcMatrixMultiply multiplies matrix1 and matrix2 storing the result in result. @@ @FUNC@ FcMatrixRotate @PURPOSE@ Rotate a matrix @TYPE1@ FcMatrix * @ARG1@ matrix @TYPE2@ double% @ARG2@ cos @TYPE3@ double% @ARG3@ sin @DESC@ FcMatrixRotate rotates matrix by the angle who's sine is sin and cosine is cos. This is done by multiplying by the matrix: cos -sin sin cos @@ @FUNC@ FcMatrixScale @PURPOSE@ Scale a matrix @TYPE1@ FcMatrix * @ARG1@ matrix @TYPE2@ double% @ARG2@ sx @TYPE3@ double% @ARG3@ dy @DESC@ FcMatrixScale multiplies matrix x values by sx and y values by dy. This is done by multiplying by the matrix: sx 0 0 dy @@ @FUNC@ FcMatrixShear @PURPOSE@ Shear a matrix @TYPE1@ FcMatrix * @ARG1@ matrix @TYPE2@ double% @ARG2@ sh @TYPE3@ double% @ARG3@ sv @DESC@ FcMatrixShare shears matrix horizontally by sh and vertically by sv. This is done by multiplying by the matrix: 1 sh sv 1 @@ fontconfig-2.11.1/doc/FcConfigGetCache.30000664000076400007640000000074512313745357014576 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigGetCache" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigGetCache \- DEPRECATED used to return per-user cache filename .SH SYNOPSIS .nf \fB#include .sp FcChar8 * FcConfigGetCache (FcConfig *\fIconfig\fB); .fi\fR .SH "DESCRIPTION" .PP With fontconfig no longer using per-user cache files, this function now simply returns NULL to indicate that no per-user file exists. fontconfig-2.11.1/doc/FcUtf8ToUcs4.30000664000076400007640000000076412313745357013676 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcUtf8ToUcs4" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcUtf8ToUcs4 \- convert UTF-8 to UCS4 .SH SYNOPSIS .nf \fB#include .sp int FcUtf8ToUcs4 (FcChar8 *\fIsrc\fB, FcChar32 *\fIdst\fB, int \fIlen\fB); .fi\fR .SH "DESCRIPTION" .PP Converts the next Unicode char from \fIsrc\fR into \fIdst\fR and returns the number of bytes containing the char. \fIsrc\fR must be at least \fIlen\fR bytes long. fontconfig-2.11.1/doc/FcCharSetCoverage.30000664000076400007640000000114712313745357015007 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcCharSetCoverage" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcCharSetCoverage \- DEPRECATED return coverage for a Unicode page .SH SYNOPSIS .nf \fB#include .sp FcChar32 FcCharSetCoverage (const FcCharSet *\fIa\fB, FcChar32\fIpage\fB, FcChar32[8]\fIresult\fB); .fi\fR .SH "DESCRIPTION" .PP DEPRECATED This function returns a bitmask in \fIresult\fR which indicates which code points in \fIpage\fR are included in \fIa\fR\&. \fBFcCharSetCoverage\fR returns the next page in the charset which has any coverage. fontconfig-2.11.1/doc/fcdircache.sgml0000664000076400007640000003603612306317520014376 00000000000000 FcDirCacheUnlink 3 Fontconfig &version; FcDirCacheUnlink Remove all caches related to dir #include <fontconfig/fontconfig.h> FcBool FcDirCacheUnlink const FcChar8 *dir FcConfig *config Description Scans the cache directories in config, removing any instances of the cache file for dir. Returns FcFalse when some internal error occurs (out of memory, etc). Errors actually unlinking any files are ignored. FcDirCacheValid 3 Fontconfig &version; FcDirCacheValid check directory cache #include <fontconfig/fontconfig.h> FcBool FcDirCacheValid const FcChar8 *dir Description Returns FcTrue if dir has an associated valid cache file, else returns FcFalse FcDirCacheLoad 3 Fontconfig &version; FcDirCacheLoad load a directory cache #include <fontconfig/fontconfig.h> FcCache * FcDirCacheLoad const FcChar8 *dir FcConfig *config FcChar8 **cache_file Description Loads the cache related to dir. If no cache file exists, returns NULL. The name of the cache file is returned in cache_file, unless that is NULL. See also FcDirCacheRead. FcDirCacheRescan 3 Fontconfig &version; FcDirCacheRescan Re-scan a directory cache #include <fontconfig/fontconfig.h> FcCache * FcDirCacheRescan const FcChar8 *dir FcConfig *config Description Re-scan directories only at dir and update the cache. returns NULL if failed. Since version 2.11.1 FcDirCacheRead 3 Fontconfig &version; FcDirCacheRead read or construct a directory cache #include <fontconfig/fontconfig.h> FcCache * FcDirCacheRead const FcChar8 *dir FcBool force FcConfig *config Description This returns a cache for dir. If force is FcFalse, then an existing, valid cache file will be used. Otherwise, a new cache will be created by scanning the directory and that returned. FcDirCacheLoadFile 3 Fontconfig &version; FcDirCacheLoadFile load a cache file #include <fontconfig/fontconfig.h> FcCache * FcDirCacheLoadFile const FcChar8 *cache_file struct stat *file_stat Description This function loads a directory cache from cache_file. If file_stat is non-NULL, it will be filled with the results of stat(2) on the cache file. FcDirCacheUnload 3 Fontconfig &version; FcDirCacheUnload unload a cache file #include <fontconfig/fontconfig.h> void FcDirCacheUnload FcCache *cache Description This function dereferences cache. When no other references to it remain, all memory associated with the cache will be freed. fontconfig-2.11.1/doc/FcStrListDone.30000664000076400007640000000053612313745357014215 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcStrListDone" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcStrListDone \- destroy a string iterator .SH SYNOPSIS .nf \fB#include .sp void FcStrListDone (FcStrList *\fIlist\fB); .fi\fR .SH "DESCRIPTION" .PP Destroys the enumerator \fIlist\fR\&. fontconfig-2.11.1/doc/FcValueDestroy.30000664000076400007640000000067012313745357014430 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcValueDestroy" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcValueDestroy \- Free a value .SH SYNOPSIS .nf \fB#include .sp void FcValueDestroy (FcValue \fIv\fB); .fi\fR .SH "DESCRIPTION" .PP Frees any memory referenced by \fIv\fR\&. Values of type FcTypeString, FcTypeMatrix and FcTypeCharSet reference memory, the other types do not. fontconfig-2.11.1/doc/fcinit.fncs0000664000076400007640000000645712267155333013602 00000000000000/* * fontconfig/doc/fcinit.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@ FcConfig * @FUNC@ FcInitLoadConfig @TYPE1@ void @PURPOSE@ load configuration @DESC@ Loads the default configuration file and returns the resulting configuration. Does not load any font information. @@ @RET@ FcConfig * @FUNC@ FcInitLoadConfigAndFonts @TYPE1@ void @PURPOSE@ load configuration and font data @DESC@ Loads the default configuration file and builds information about the available fonts. Returns the resulting configuration. @@ @RET@ FcBool @FUNC@ FcInit @TYPE1@ void @PURPOSE@ initialize fontconfig library @DESC@ Loads the default configuration file and the fonts referenced therein and sets the default configuration to that result. Returns whether this process succeeded or not. If the default configuration has already been loaded, this routine does nothing and returns FcTrue. @@ @RET@ void @FUNC@ FcFini @TYPE1@ void @PURPOSE@ finalize fontconfig library @DESC@ Frees all data structures allocated by previous calls to fontconfig functions. Fontconfig returns to an uninitialized state, requiring a new call to one of the FcInit functions before any other fontconfig function may be called. @@ @RET@ int @FUNC@ FcGetVersion @TYPE1@ void @PURPOSE@ library version number @DESC@ Returns the version number of the library. @@ @RET@ FcBool @FUNC@ FcInitReinitialize @TYPE1@ void @PURPOSE@ re-initialize library @DESC@ Forces the default configuration file to be reloaded and resets the default configuration. Returns FcFalse if the configuration cannot be reloaded (due to configuration file errors, allocation failures or other issues) and leaves the existing configuration unchanged. Otherwise returns FcTrue. @@ @RET@ FcBool @FUNC@ FcInitBringUptoDate @TYPE1@ void @PURPOSE@ reload configuration files if needed @DESC@ Checks the rescan interval in the default configuration, checking the configuration if the interval has passed and reloading the configuration if when any changes are detected. Returns FcFalse if the configuration cannot be reloaded (see FcInitReinitialize). Otherwise returns FcTrue. @@ fontconfig-2.11.1/doc/FcStrBasename.30000664000076400007640000000074712313745357014213 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcStrBasename" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcStrBasename \- last component of filename .SH SYNOPSIS .nf \fB#include .sp FcChar8 * FcStrBasename (const FcChar8 *\fIfile\fB); .fi\fR .SH "DESCRIPTION" .PP Returns the filename of \fIfile\fR stripped of any leading directory names. This is returned in newly allocated storage which should be freed when no longer needed. fontconfig-2.11.1/doc/FcMatrixRotate.30000664000076400007640000000102112313745357014414 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcMatrixRotate" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcMatrixRotate \- Rotate a matrix .SH SYNOPSIS .nf \fB#include .sp void FcMatrixRotate (FcMatrix *\fImatrix\fB, double \fIcos\fB, double \fIsin\fB); .fi\fR .SH "DESCRIPTION" .PP \fBFcMatrixRotate\fR rotates \fImatrix\fR by the angle who's sine is \fIsin\fR and cosine is \fIcos\fR\&. This is done by multiplying by the matrix: .sp .nf cos -sin sin cos .sp .fi fontconfig-2.11.1/doc/FcInitLoadConfigAndFonts.30000664000076400007640000000072712313745357016273 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcInitLoadConfigAndFonts" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcInitLoadConfigAndFonts \- load configuration and font data .SH SYNOPSIS .nf \fB#include .sp FcConfig * FcInitLoadConfigAndFonts (void\fI\fB); .fi\fR .SH "DESCRIPTION" .PP Loads the default configuration file and builds information about the available fonts. Returns the resulting configuration. fontconfig-2.11.1/doc/FcConfigGetRescanInterval.30000664000076400007640000000125212313745357016505 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigGetRescanInterval" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigGetRescanInterval \- Get config rescan interval .SH SYNOPSIS .nf \fB#include .sp int FcConfigGetRescanInterval (FcConfig *\fIconfig\fB); .fi\fR .SH "DESCRIPTION" .PP Returns the interval between automatic checks of the configuration (in seconds) specified in \fIconfig\fR\&. The configuration is checked during a call to FcFontList when this interval has passed since the last check. An interval setting of zero disables automatic checks. If \fIconfig\fR is NULL, the current configuration is used. fontconfig-2.11.1/doc/FcNameUnparse.30000664000076400007640000000104312313745357014213 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcNameUnparse" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcNameUnparse \- Convert a pattern back into a string that can be parsed .SH SYNOPSIS .nf \fB#include .sp FcChar8 * FcNameUnparse (FcPattern *\fIpat\fB); .fi\fR .SH "DESCRIPTION" .PP Converts the given pattern into the standard text format described above. The return value is not static, but instead refers to newly allocated memory which should be freed by the caller using free(). fontconfig-2.11.1/doc/fcinit.sgml0000664000076400007640000003476012306317520013601 00000000000000 FcInitLoadConfig 3 Fontconfig &version; FcInitLoadConfig load configuration #include <fontconfig/fontconfig.h> FcConfig * FcInitLoadConfig void Description Loads the default configuration file and returns the resulting configuration. Does not load any font information. FcInitLoadConfigAndFonts 3 Fontconfig &version; FcInitLoadConfigAndFonts load configuration and font data #include <fontconfig/fontconfig.h> FcConfig * FcInitLoadConfigAndFonts void Description Loads the default configuration file and builds information about the available fonts. Returns the resulting configuration. FcInit 3 Fontconfig &version; FcInit initialize fontconfig library #include <fontconfig/fontconfig.h> FcBool FcInit void Description Loads the default configuration file and the fonts referenced therein and sets the default configuration to that result. Returns whether this process succeeded or not. If the default configuration has already been loaded, this routine does nothing and returns FcTrue. FcFini 3 Fontconfig &version; FcFini finalize fontconfig library #include <fontconfig/fontconfig.h> void FcFini void Description Frees all data structures allocated by previous calls to fontconfig functions. Fontconfig returns to an uninitialized state, requiring a new call to one of the FcInit functions before any other fontconfig function may be called. FcGetVersion 3 Fontconfig &version; FcGetVersion library version number #include <fontconfig/fontconfig.h> int FcGetVersion void Description Returns the version number of the library. FcInitReinitialize 3 Fontconfig &version; FcInitReinitialize re-initialize library #include <fontconfig/fontconfig.h> FcBool FcInitReinitialize void Description Forces the default configuration file to be reloaded and resets the default configuration. Returns FcFalse if the configuration cannot be reloaded (due to configuration file errors, allocation failures or other issues) and leaves the existing configuration unchanged. Otherwise returns FcTrue. FcInitBringUptoDate 3 Fontconfig &version; FcInitBringUptoDate reload configuration files if needed #include <fontconfig/fontconfig.h> FcBool FcInitBringUptoDate void Description Checks the rescan interval in the default configuration, checking the configuration if the interval has passed and reloading the configuration if when any changes are detected. Returns FcFalse if the configuration cannot be reloaded (see FcInitReinitialize). Otherwise returns FcTrue. fontconfig-2.11.1/doc/FcPatternAddWeak.30000664000076400007640000000105212313745357014633 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcPatternAddWeak" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcPatternAddWeak \- Add a value to a pattern with weak binding .SH SYNOPSIS .nf \fB#include .sp FcBool FcPatternAddWeak (FcPattern *\fIp\fB, const char *\fIobject\fB, FcValue \fIvalue\fB, FcBool \fIappend\fB); .fi\fR .SH "DESCRIPTION" .PP FcPatternAddWeak is essentially the same as FcPatternAdd except that any values added to the list have binding \fIweak\fR instead of \fIstrong\fR\&. fontconfig-2.11.1/doc/FcCharSetCopy.30000664000076400007640000000066212313745357014167 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcCharSetCopy" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcCharSetCopy \- Copy a charset .SH SYNOPSIS .nf \fB#include .sp FcCharSet * FcCharSetCopy (FcCharSet *\fIsrc\fB); .fi\fR .SH "DESCRIPTION" .PP Makes a copy of \fIsrc\fR; note that this may not actually do anything more than increment the reference count on \fIsrc\fR\&. fontconfig-2.11.1/doc/FcStrSetAddFilename.30000664000076400007640000000101512313745357015272 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcStrSetAddFilename" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcStrSetAddFilename \- add a filename to a string set .SH SYNOPSIS .nf \fB#include .sp FcBool FcStrSetAddFilename (FcStrSet *\fIset\fB, const FcChar8 *\fIs\fB); .fi\fR .SH "DESCRIPTION" .PP Adds a copy \fIs\fR to \fIset\fR, The copy is created with FcStrCopyFilename so that leading '~' values are replaced with the value of the HOME environment variable. fontconfig-2.11.1/doc/fontconfig-devel/0000775000076400007640000000000012313745413014744 500000000000000fontconfig-2.11.1/doc/fontconfig-devel/fclangsetgetlangs.html0000664000076400007640000000524312313745373021256 00000000000000 FcLangSetGetLangs

FcLangSetGetLangs

Name

FcLangSetGetLangs -- get the list of languages in the langset

Synopsis

#include <fontconfig/fontconfig.h>
	

FcStrSet * FcLangSetGetLangs(const FcLangSet *ls);

Description

Returns a string set of all languages in langset.

fontconfig-2.11.1/doc/fontconfig-devel/fcislower.html0000664000076400007640000000512012313745374017553 00000000000000 FcIsLower

FcIsLower

Name

FcIsLower -- check for lower case ASCII character

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcIsLower(FcChar8c);

Description

This macro checks whether c is an lower case ASCII letter.

fontconfig-2.11.1/doc/fontconfig-devel/fcstrsetdestroy.html0000664000076400007640000000513512313745374021033 00000000000000 FcStrSetDestroy

FcStrSetDestroy

Name

FcStrSetDestroy -- destroy a string set

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcStrSetDestroy(FcStrSet *set);

Description

Destroys set.

fontconfig-2.11.1/doc/fontconfig-devel/fcstrsetmember.html0000664000076400007640000000533112313745374020607 00000000000000 FcStrSetMember

FcStrSetMember

Name

FcStrSetMember -- check set for membership

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcStrSetMember(FcStrSet *set, const FcChar8 *s);

Description

Returns whether s is a member of set.

fontconfig-2.11.1/doc/fontconfig-devel/x102.html0000664000076400007640000006702112313745374016260 00000000000000 FUNCTIONS

FUNCTIONS

These are grouped by functionality, often using the main data type being manipulated.

Initialization

Table of Contents
FcInitLoadConfig -- load configuration
FcInitLoadConfigAndFonts -- load configuration and font data
FcInit -- initialize fontconfig library
FcFini -- finalize fontconfig library
FcGetVersion -- library version number
FcInitReinitialize -- re-initialize library
FcInitBringUptoDate -- reload configuration files if needed

These functions provide some control over how the library is initialized.

FcPattern

Table of Contents
FcPatternCreate -- Create a pattern
FcPatternDuplicate -- Copy a pattern
FcPatternReference -- Increment pattern reference count
FcPatternDestroy -- Destroy a pattern
FcPatternEqual -- Compare patterns
FcPatternEqualSubset -- Compare portions of patterns
FcPatternFilter -- Filter the objects of pattern
FcPatternHash -- Compute a pattern hash value
FcPatternAdd -- Add a value to a pattern
FcPatternAddWeak -- Add a value to a pattern with weak binding
FcPatternAdd-Type -- Add a typed value to a pattern
FcPatternGet -- Return a value from a pattern
FcPatternGet-Type -- Return a typed value from a pattern
FcPatternBuild -- Create patterns from arguments
FcPatternDel -- Delete a property from a pattern
FcPatternRemove -- Remove one object of the specified type from the pattern
FcPatternPrint -- Print a pattern for debugging
FcDefaultSubstitute -- Perform default substitutions in a pattern
FcNameParse -- Parse a pattern string
FcNameUnparse -- Convert a pattern back into a string that can be parsed
FcPatternFormat -- Format a pattern into a string according to a format specifier

An FcPattern is an opaque type that holds both patterns to match against the available fonts, as well as the information about each font.

FcFontSet

Table of Contents
FcFontSetCreate -- Create a font set
FcFontSetDestroy -- Destroy a font set
FcFontSetAdd -- Add to a font set
FcFontSetList -- List fonts from a set of font sets
FcFontSetMatch -- Return the best font from a set of font sets
FcFontSetPrint -- Print a set of patterns to stdout
FcFontSetSort -- Add to a font set
FcFontSetSortDestroy -- DEPRECATED destroy a font set

An FcFontSet simply holds a list of patterns; these are used to return the results of listing available fonts.

FcObjectSet

Table of Contents
FcObjectSetCreate -- Create an object set
FcObjectSetAdd -- Add to an object set
FcObjectSetDestroy -- Destroy an object set
FcObjectSetBuild -- Build object set from args

An FcObjectSet holds a list of pattern property names; it is used to indicate which properties are to be returned in the patterns from FcFontList.

FreeType specific functions

Table of Contents
FcFreeTypeCharIndex -- map Unicode to glyph id
FcFreeTypeCharSet -- compute Unicode coverage
FcFreeTypeCharSetAndSpacing -- compute Unicode coverage and spacing type
FcFreeTypeQuery -- compute pattern from font file (and index)
FcFreeTypeQueryFace -- compute pattern from FT_Face

While the fontconfig library doesn't insist that FreeType be used as the rasterization mechanism for fonts, it does provide some convenience functions.

FcValue

Table of Contents
FcValueDestroy -- Free a value
FcValueSave -- Copy a value
FcValuePrint -- Print a value to stdout
FcValueEqual -- Test two values for equality

FcValue is a structure containing a type tag and a union of all possible datatypes. The tag is an enum of type FcType and is intended to provide a measure of run-time typechecking, although that depends on careful programming.

FcCharSet

Table of Contents
FcCharSetCreate -- Create an empty character set
FcCharSetDestroy -- Destroy a character set
FcCharSetAddChar -- Add a character to a charset
FcCharSetDelChar -- Add a character to a charset
FcCharSetCopy -- Copy a charset
FcCharSetEqual -- Compare two charsets
FcCharSetIntersect -- Intersect charsets
FcCharSetUnion -- Add charsets
FcCharSetSubtract -- Subtract charsets
FcCharSetMerge -- Merge charsets
FcCharSetHasChar -- Check a charset for a char
FcCharSetCount -- Count entries in a charset
FcCharSetIntersectCount -- Intersect and count charsets
FcCharSetSubtractCount -- Subtract and count charsets
FcCharSetIsSubset -- Test for charset inclusion
FcCharSetFirstPage -- Start enumerating charset contents
FcCharSetNextPage -- Continue enumerating charset contents
FcCharSetCoverage -- DEPRECATED return coverage for a Unicode page
FcCharSetNew -- DEPRECATED alias for FcCharSetCreate

An FcCharSet is a boolean array indicating a set of Unicode chars. Those associated with a font are marked constant and cannot be edited. FcCharSets may be reference counted internally to reduce memory consumption; this may be visible to applications as the result of FcCharSetCopy may return it's argument, and that CharSet may remain unmodifiable.

FcLangSet

Table of Contents
FcLangSetCreate -- create a langset object
FcLangSetDestroy -- destroy a langset object
FcLangSetCopy -- copy a langset object
FcLangSetAdd -- add a language to a langset
FcLangSetDel -- delete a language from a langset
FcLangSetUnion -- Add langsets
FcLangSetSubtract -- Subtract langsets
FcLangSetCompare -- compare language sets
FcLangSetContains -- check langset subset relation
FcLangSetEqual -- test for matching langsets
FcLangSetHash -- return a hash value for a langset
FcLangSetHasLang -- test langset for language support
FcGetDefaultLangs -- Get the default languages list
FcLangSetGetLangs -- get the list of languages in the langset
FcGetLangs -- Get list of languages
FcLangNormalize -- Normalize the language string
FcLangGetCharSet -- Get character map for a language

An FcLangSet is a set of language names (each of which include language and an optional territory). They are used when selecting fonts to indicate which languages the fonts need to support. Each font is marked, using language orthography information built into fontconfig, with the set of supported languages.

FcMatrix

Table of Contents
FcMatrixInit -- initialize an FcMatrix structure
FcMatrixCopy -- Copy a matrix
FcMatrixEqual -- Compare two matrices
FcMatrixMultiply -- Multiply matrices
FcMatrixRotate -- Rotate a matrix
FcMatrixScale -- Scale a matrix
FcMatrixShear -- Shear a matrix

FcMatrix structures hold an affine transformation in matrix form.

FcConfig

Table of Contents
FcConfigCreate -- Create a configuration
FcConfigReference -- Increment config reference count
FcConfigDestroy -- Destroy a configuration
FcConfigSetCurrent -- Set configuration as default
FcConfigGetCurrent -- Return current configuration
FcConfigUptoDate -- Check timestamps on config files
FcConfigHome -- return the current home directory.
FcConfigEnableHome -- controls use of the home directory.
FcConfigBuildFonts -- Build font database
FcConfigGetConfigDirs -- Get config directories
FcConfigGetFontDirs -- Get font directories
FcConfigGetConfigFiles -- Get config files
FcConfigGetCache -- DEPRECATED used to return per-user cache filename
FcConfigGetCacheDirs -- return the list of directories searched for cache files
FcConfigGetFonts -- Get config font set
FcConfigGetBlanks -- Get config blanks
FcConfigGetRescanInterval -- Get config rescan interval
FcConfigSetRescanInterval -- Set config rescan interval
FcConfigAppFontAddFile -- Add font file to font database
FcConfigAppFontAddDir -- Add fonts from directory to font database
FcConfigAppFontClear -- Remove all app fonts from font database
FcConfigSubstituteWithPat -- Execute substitutions
FcConfigSubstitute -- Execute substitutions
FcFontMatch -- Return best font
FcFontSort -- Return list of matching fonts
FcFontRenderPrepare -- Prepare pattern for loading font file
FcFontList -- List fonts
FcConfigFilename -- Find a config file
FcConfigParseAndLoad -- load a configuration file
FcConfigGetSysRoot -- Obtain the system root directory
FcConfigSetSysRoot -- Set the system root directory

An FcConfig object holds the internal representation of a configuration. There is a default configuration which applications may use by passing 0 to any function using the data within an FcConfig.

FcObjectType

Table of Contents
FcNameRegisterObjectTypes -- Register object types
FcNameUnregisterObjectTypes -- Unregister object types
FcNameGetObjectType -- Lookup an object type

Provides for application-specified font name object types so that new pattern elements can be generated from font names.

FcConstant

Table of Contents
FcNameRegisterConstants -- Register symbolic constants
FcNameUnregisterConstants -- Unregister symbolic constants
FcNameGetConstant -- Lookup symbolic constant
FcNameConstant -- Get the value for a symbolic constant

Provides for application-specified symbolic constants for font names.

FcBlanks

Table of Contents
FcBlanksCreate -- Create an FcBlanks
FcBlanksDestroy -- Destroy and FcBlanks
FcBlanksAdd -- Add a character to an FcBlanks
FcBlanksIsMember -- Query membership in an FcBlanks

An FcBlanks object holds a list of Unicode chars which are expected to be blank when drawn. When scanning new fonts, any glyphs which are empty and not in this list will be assumed to be broken and not placed in the FcCharSet associated with the font. This provides a significantly more accurate CharSet for applications.

FcAtomic

Table of Contents
FcAtomicCreate -- create an FcAtomic object
FcAtomicLock -- lock a file
FcAtomicNewFile -- return new temporary file name
FcAtomicOrigFile -- return original file name
FcAtomicReplaceOrig -- replace original with new
FcAtomicDeleteNew -- delete new file
FcAtomicUnlock -- unlock a file
FcAtomicDestroy -- destroy an FcAtomic object

These functions provide a safe way to update configuration files, allowing ongoing reading of the old configuration file while locked for writing and ensuring that a consistent and complete version of the configuration file is always available.

File and Directory routines

Table of Contents
FcFileScan -- scan a font file
FcFileIsDir -- check whether a file is a directory
FcDirScan -- scan a font directory without caching it
FcDirSave -- DEPRECATED: formerly used to save a directory cache
FcDirCacheUnlink -- Remove all caches related to dir
FcDirCacheValid -- check directory cache
FcDirCacheLoad -- load a directory cache
FcDirCacheRescan -- Re-scan a directory cache
FcDirCacheRead -- read or construct a directory cache
FcDirCacheLoadFile -- load a cache file
FcDirCacheUnload -- unload a cache file

These routines work with font files and directories, including font directory cache files.

FcCache routines

Table of Contents
FcCacheDir -- Return directory of cache
FcCacheCopySet -- Returns a copy of the fontset from cache
FcCacheSubdir -- Return the i'th subdirectory.
FcCacheNumSubdir -- Return the number of subdirectories in cache.
FcCacheNumFont -- Returns the number of fonts in cache.
FcDirCacheClean -- This tries to clean up the cache directory of cache_dir. This returns FcTrue if the operation is successfully complete. otherwise FcFalse.
FcCacheCreateTagFile -- Create CACHEDIR.TAG at cache directory.

These routines work with font directory caches, accessing their contents in limited ways. It is not expected that normal applications will need to use these functions.

FcStrSet and FcStrList

Table of Contents
FcStrSetCreate -- create a string set
FcStrSetMember -- check set for membership
FcStrSetEqual -- check sets for equality
FcStrSetAdd -- add to a string set
FcStrSetAddFilename -- add a filename to a string set
FcStrSetDel -- delete from a string set
FcStrSetDestroy -- destroy a string set
FcStrListCreate -- create a string iterator
FcStrListFirst -- get first string in iteration
FcStrListNext -- get next string in iteration
FcStrListDone -- destroy a string iterator

A data structure for enumerating strings, used to list directories while scanning the configuration as directories are added while scanning.

String utilities

Table of Contents
FcUtf8ToUcs4 -- convert UTF-8 to UCS4
FcUcs4ToUtf8 -- convert UCS4 to UTF-8
FcUtf8Len -- count UTF-8 encoded chars
FcUtf16ToUcs4 -- convert UTF-16 to UCS4
FcUtf16Len -- count UTF-16 encoded chars
FcIsLower -- check for lower case ASCII character
FcIsUpper -- check for upper case ASCII character
FcToLower -- convert upper case ASCII to lower case
FcStrCopy -- duplicate a string
FcStrDowncase -- create a lower case translation of a string
FcStrCopyFilename -- create a complete path from a filename
FcStrCmp -- compare UTF-8 strings
FcStrCmpIgnoreCase -- compare UTF-8 strings ignoring case
FcStrStr -- locate UTF-8 substring
FcStrStrIgnoreCase -- locate UTF-8 substring ignoring ASCII case
FcStrPlus -- concatenate two strings
FcStrFree -- free a string
FcStrDirname -- directory part of filename
FcStrBasename -- last component of filename

Fontconfig manipulates many UTF-8 strings represented with the FcChar8 type. These functions are exposed to help applications deal with these UTF-8 strings in a locale-insensitive manner.

fontconfig-2.11.1/doc/fontconfig-devel/fclangsethash.html0000664000076400007640000000560612313745373020400 00000000000000 FcLangSetHash

FcLangSetHash

Name

FcLangSetHash -- return a hash value for a langset

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar32 FcLangSetHash(const FcLangSet *ls);

Description

This function returns a value which depends solely on the languages supported by ls. Any language which equals ls will have the same result from FcLangSetHash. However, two langsets with the same hash value may not be equal.

fontconfig-2.11.1/doc/fontconfig-devel/fcnameregisterconstants.html0000664000076400007640000000532212313745374022515 00000000000000 FcNameRegisterConstants

FcNameRegisterConstants

Name

FcNameRegisterConstants -- Register symbolic constants

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcNameRegisterConstants(const FcConstant *consts, int nconsts);

Description

Deprecated. Does nothing. Returns FcFalse.

fontconfig-2.11.1/doc/fontconfig-devel/fccharsetfirstpage.html0000664000076400007640000001034512313745373021431 00000000000000 FcCharSetFirstPage

FcCharSetFirstPage

Name

FcCharSetFirstPage -- Start enumerating charset contents

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar32 FcCharSetFirstPage(const FcCharSet *a, FcChar32[FC_CHARSET_MAP_SIZE] map, FcChar32 *next);

Description

Builds an array of bits in map marking the first page of Unicode coverage of a. *next is set to contains the base code point for the next page in a. Returns the base code point for the page, or FC_CHARSET_DONE if a contains no pages. As an example, if FcCharSetFirstPage returns 0x300 and fills map with
0xffffffff 0xffffffff 0x01000008 0x44300002 0xffffd7f0 0xfffffffb 0xffff7fff 0xffff0003
Then the page contains code points 0x300 through 0x33f (the first 64 code points on the page) because map[0] and map[1] both have all their bits set. It also contains code points 0x343 (0x300 + 32*2 + (4-1)) and 0x35e (0x300 + 32*2 + (31-1)) because map[2] has the 4th and 31st bits set. The code points represented by map[3] and later are left as an excercise for the reader ;).

fontconfig-2.11.1/doc/fontconfig-devel/fcinit.html0000664000076400007640000000542212313745373017036 00000000000000 FcInit

FcInit

Name

FcInit -- initialize fontconfig library

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcInit(void);

Description

Loads the default configuration file and the fonts referenced therein and sets the default configuration to that result. Returns whether this process succeeded or not. If the default configuration has already been loaded, this routine does nothing and returns FcTrue.

fontconfig-2.11.1/doc/fontconfig-devel/fcnameregisterobjecttypes.html0000664000076400007640000000534112313745374023035 00000000000000 FcNameRegisterObjectTypes

FcNameRegisterObjectTypes

Name

FcNameRegisterObjectTypes -- Register object types

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcNameRegisterObjectTypes(const FcObjectType *types, int ntype);

Description

Deprecated. Does nothing. Returns FcFalse.

fontconfig-2.11.1/doc/fontconfig-devel/fcstrbasename.html0000664000076400007640000000504512313745374020401 00000000000000 FcStrBasename

FcStrBasename

Name

FcStrBasename -- last component of filename

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar8 * FcStrBasename(const FcChar8 *file);

Description

Returns the filename of file stripped of any leading directory names. This is returned in newly allocated storage which should be freed when no longer needed.

fontconfig-2.11.1/doc/fontconfig-devel/fcstrlistfirst.html0000664000076400007640000000533612313745374020654 00000000000000 FcStrListFirst

FcStrListFirst

Name

FcStrListFirst -- get first string in iteration

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcStrListFirst(FcStrList *list);

Description

Returns the first string in list.

Since

version 2.11.0

fontconfig-2.11.1/doc/fontconfig-devel/fccharsetnew.html0000664000076400007640000000467512313745373020247 00000000000000 FcCharSetNew

FcCharSetNew

Name

FcCharSetNew -- DEPRECATED alias for FcCharSetCreate

Synopsis

#include <fontconfig/fontconfig.h>
	

FcCharSet * FcCharSetNew(void);

Description

FcCharSetNew is a DEPRECATED alias for FcCharSetCreate.

fontconfig-2.11.1/doc/fontconfig-devel/fcstrsetdel.html0000664000076400007640000000546212313745374020111 00000000000000 FcStrSetDel

FcStrSetDel

Name

FcStrSetDel -- delete from a string set

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcStrSetDel(FcStrSet *set, const FcChar8 *s);

Description

Removes s from set, returning FcTrue if s was a member else FcFalse.

fontconfig-2.11.1/doc/fontconfig-devel/fcstrplus.html0000664000076400007640000000541212313745374017607 00000000000000 FcStrPlus

FcStrPlus

Name

FcStrPlus -- concatenate two strings

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar8 * FcStrPlus(const FcChar8 *s1, const FcChar8 *s2);

Description

This function allocates new storage and places the concatenation of s1 and s2 there, returning the new string.

fontconfig-2.11.1/doc/fontconfig-devel/fcconfigsubstitute.html0000664000076400007640000000572012313745374021476 00000000000000 FcConfigSubstitute

FcConfigSubstitute

Name

FcConfigSubstitute -- Execute substitutions

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcConfigSubstitute(FcConfig *config, FcPattern *p, FcMatchKind kind);

Description

Calls FcConfigSubstituteWithPat setting p_pat to NULL. Returns FcFalse if the substitution cannot be performed (due to allocation failure). Otherwise returns FcTrue. If config is NULL, the current configuration is used.

fontconfig-2.11.1/doc/fontconfig-devel/fcdirscan.html0000664000076400007640000000635012313745374017520 00000000000000 FcDirScan

FcDirScan

Name

FcDirScan -- scan a font directory without caching it

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcDirScan(FcFontSet *set, FcStrSet *dirs, FcFileCache *cache, FcBlanks *blanks, const FcChar8 *dir, FcBool force);

Description

If cache is not zero or if force is FcFalse, this function currently returns FcFalse. Otherwise, it scans an entire directory and adds all fonts found to set. Any subdirectories found are added to dirs. Calling this function does not create any cache files. Use FcDirCacheRead() if caching is desired.

fontconfig-2.11.1/doc/fontconfig-devel/fclangnormalize.html0000664000076400007640000000535212313745373020737 00000000000000 FcLangNormalize

FcLangNormalize

Name

FcLangNormalize -- Normalize the language string

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar8 * FcLangNormalize(const FcChar8 *lang);

Description

Returns a string to make lang suitable on fontconfig.

Since

version 2.10.91

fontconfig-2.11.1/doc/fontconfig-devel/fccharsetcoverage.html0000664000076400007640000000602312313745373021236 00000000000000 FcCharSetCoverage

FcCharSetCoverage

Name

FcCharSetCoverage -- DEPRECATED return coverage for a Unicode page

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar32 FcCharSetCoverage(const FcCharSet *a, FcChar32page, FcChar32[8]result);

Description

DEPRECATED This function returns a bitmask in result which indicates which code points in page are included in a. FcCharSetCoverage returns the next page in the charset which has any coverage.

fontconfig-2.11.1/doc/fontconfig-devel/fccachecreatetagfile.html0000664000076400007640000000516312313745374021661 00000000000000 FcCacheCreateTagFile

FcCacheCreateTagFile

Name

FcCacheCreateTagFile -- Create CACHEDIR.TAG at cache directory.

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcCacheCreateTagFile(const FcConfig *config);

Description

This tries to create CACHEDIR.TAG file at the cache directory registered to config.

Since

version 2.9.91

fontconfig-2.11.1/doc/fontconfig-devel/fcnameunregisterconstants.html0000664000076400007640000000541312313745374023061 00000000000000 FcNameUnregisterConstants

FcNameUnregisterConstants

Name

FcNameUnregisterConstants -- Unregister symbolic constants

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcNameUnregisterConstants(const FcConstant *consts, int nconsts);

Description

Deprecated. Does nothing. Returns FcFalse.

fontconfig-2.11.1/doc/fontconfig-devel/fccharsetsubtractcount.html0000664000076400007640000000552312313745373022347 00000000000000 FcCharSetSubtractCount

FcCharSetSubtractCount

Name

FcCharSetSubtractCount -- Subtract and count charsets

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar32 FcCharSetSubtractCount(const FcCharSet *a, const FcCharSet *b);

Description

Returns the number of chars that are in a but not in b.

fontconfig-2.11.1/doc/fontconfig-devel/fcconfiguptodate.html0000664000076400007640000000551012313745373021104 00000000000000 FcConfigUptoDate

FcConfigUptoDate

Name

FcConfigUptoDate -- Check timestamps on config files

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcConfigUptoDate(FcConfig *config);

Description

Checks all of the files related to config and returns whether any of them has been modified since the configuration was created. If config is NULL, the current configuration is used.

fontconfig-2.11.1/doc/fontconfig-devel/fcvaluedestroy.html0000664000076400007640000000521312313745373020617 00000000000000 FcValueDestroy

FcValueDestroy

Name

FcValueDestroy -- Free a value

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcValueDestroy(FcValue v);

Description

Frees any memory referenced by v. Values of type FcTypeString, FcTypeMatrix and FcTypeCharSet reference memory, the other types do not.

fontconfig-2.11.1/doc/fontconfig-devel/ln12.html0000664000076400007640000000461412313745373016340 00000000000000

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.

fontconfig-2.11.1/doc/fontconfig-devel/fcutf16toucs4.html0000664000076400007640000000610212313745374020177 00000000000000 FcUtf16ToUcs4

FcUtf16ToUcs4

Name

FcUtf16ToUcs4 -- convert UTF-16 to UCS4

Synopsis

#include <fontconfig/fontconfig.h>
	

int FcUtf16ToUcs4(FcChar8 *src, FcEndian endian, FcChar32 *dst, int len);

Description

Converts the next Unicode char from src into dst and returns the number of bytes containing the char. src must be at least len bytes long. Bytes of src are combined into 16-bit units according to endian.

fontconfig-2.11.1/doc/fontconfig-devel/fcconfigfilename.html0000664000076400007640000000643312313745374021045 00000000000000 FcConfigFilename

FcConfigFilename

Name

FcConfigFilename -- Find a config file

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar8 * FcConfigFilename(const FcChar8 *name);

Description

Given the specified external entity name, return the associated filename. This provides applications a way to convert various configuration file references into filename form.

A null or empty name indicates that the default configuration file should be used; which file this references can be overridden with the FONTCONFIG_FILE environment variable. Next, if the name starts with ~, it refers to a file in the current users home directory. Otherwise if the name doesn't start with '/', it refers to a file in the default configuration directory; the built-in default directory can be overridden with the FONTCONFIG_PATH environment variable.

fontconfig-2.11.1/doc/fontconfig-devel/fcatomicdeletenew.html0000664000076400007640000000521112313745374021241 00000000000000 FcAtomicDeleteNew

FcAtomicDeleteNew

Name

FcAtomicDeleteNew -- delete new file

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcAtomicDeleteNew(FcAtomic *atomic);

Description

Deletes the new file. Used in error recovery to back out changes.

fontconfig-2.11.1/doc/fontconfig-devel/fcfontsetsortdestroy.html0000664000076400007640000000520612313745373022077 00000000000000 FcFontSetSortDestroy

FcFontSetSortDestroy

Name

FcFontSetSortDestroy -- DEPRECATED destroy a font set

Synopsis

#include <fontconfig/fontconfig.h>
	

FcFontSetSortDestroy(FcFontSet *set);

Description

This function is DEPRECATED. FcFontSetSortDestroy destroys set by calling FcFontSetDestroy. Applications should use FcFontSetDestroy directly instead.

fontconfig-2.11.1/doc/fontconfig-devel/fcmatrixshear.html0000664000076400007640000000545612313745373020431 00000000000000 FcMatrixShear

FcMatrixShear

Name

FcMatrixShear -- Shear a matrix

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcMatrixShear(FcMatrix *matrix, double sh, double sv);

Description

FcMatrixShare shears matrix horizontally by sh and vertically by sv. This is done by multiplying by the matrix:
  1  sh
  sv  1

fontconfig-2.11.1/doc/fontconfig-devel/fcpatternadd.html0000664000076400007640000000611212313745373020216 00000000000000 FcPatternAdd

FcPatternAdd

Name

FcPatternAdd -- Add a value to a pattern

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcPatternAdd(FcPattern *p, const char *object, FcValue value, FcBool append);

Description

Adds a single value to the list of values associated with the property named `object. If `append is FcTrue, the value is added at the end of any existing list, otherwise it is inserted at the beginning. `value' is saved (with FcValueSave) when inserted into the pattern so that the library retains no reference to any application-supplied data structure.

fontconfig-2.11.1/doc/fontconfig-devel/fcconfigenablehome.html0000664000076400007640000000571412313745374021365 00000000000000 FcConfigEnableHome

FcConfigEnableHome

Name

FcConfigEnableHome -- controls use of the home directory.

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcConfigEnableHome(FcBool enable);

Description

If enable is FcTrue, then Fontconfig will use various files which are specified relative to the user's home directory (using the ~ notation in the configuration). When enable is FcFalse, then all use of the home directory in these contexts will be disabled. The previous setting of the value is returned.

fontconfig-2.11.1/doc/fontconfig-devel/fcfontsetadd.html0000664000076400007640000000545612313745373020235 00000000000000 FcFontSetAdd

FcFontSetAdd

Name

FcFontSetAdd -- Add to a font set

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcFontSetAdd(FcFontSet *s, FcPattern *font);

Description

Adds a pattern to a font set. Note that the pattern is not copied before being inserted into the set. Returns FcFalse if the pattern cannot be inserted into the set (due to allocation failure). Otherwise returns FcTrue.

fontconfig-2.11.1/doc/fontconfig-devel/fcconfigdestroy.html0000664000076400007640000000554412313745373020757 00000000000000 FcConfigDestroy

FcConfigDestroy

Name

FcConfigDestroy -- Destroy a configuration

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcConfigDestroy(FcConfig *config);

Description

Decrements the config reference count. If all references are gone, destroys the configuration and any data associated with it. Note that calling this function with the return from FcConfigGetCurrent will cause a new configuration to be created for use as current configuration.

fontconfig-2.11.1/doc/fontconfig-devel/fcnameunregisterobjecttypes.html0000664000076400007640000000544412313745374023404 00000000000000 FcNameUnregisterObjectTypes

FcNameUnregisterObjectTypes

Name

FcNameUnregisterObjectTypes -- Unregister object types

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcNameUnregisterObjectTypes(const FcObjectType *types, int ntype);

Description

Deprecated. Does nothing. Returns FcFalse.

fontconfig-2.11.1/doc/fontconfig-devel/fcconfiggetfonts.html0000664000076400007640000000566112313745374021120 00000000000000 FcConfigGetFonts

FcConfigGetFonts

Name

FcConfigGetFonts -- Get config font set

Synopsis

#include <fontconfig/fontconfig.h>
	

FcFontSet * FcConfigGetFonts(FcConfig *config, FcSetName set);

Description

Returns one of the two sets of fonts from the configuration as specified by set. This font set is owned by the library and must not be modified or freed. If config is NULL, the current configuration is used.

fontconfig-2.11.1/doc/fontconfig-devel/fccharsetnextpage.html0000664000076400007640000000654612313745373021270 00000000000000 FcCharSetNextPage

FcCharSetNextPage

Name

FcCharSetNextPage -- Continue enumerating charset contents

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar32 FcCharSetNextPage(const FcCharSet *a, FcChar32[FC_CHARSET_MAP_SIZE] map, FcChar32 *next);

Description

Builds an array of bits in map marking the Unicode coverage of a for page containing *next (see the FcCharSetFirstPage description for details). *next is set to contains the base code point for the next page in a. Returns the base of code point for the page, or FC_CHARSET_DONE if a does not contain *next.

fontconfig-2.11.1/doc/fontconfig-devel/fcconfigappfontclear.html0000664000076400007640000000547012313745374021743 00000000000000 FcConfigAppFontClear

FcConfigAppFontClear

Name

FcConfigAppFontClear -- Remove all app fonts from font database

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcConfigAppFontClear(FcConfig *config);

Description

Clears the set of application-specific fonts. If config is NULL, the current configuration is used.

fontconfig-2.11.1/doc/fontconfig-devel/fcfontsetcreate.html0000664000076400007640000000503612313745373020742 00000000000000 FcFontSetCreate

FcFontSetCreate

Name

FcFontSetCreate -- Create a font set

Synopsis

#include <fontconfig/fontconfig.h>
	

FcFontSet * FcFontSetCreate(void);

Description

Creates an empty font set.

fontconfig-2.11.1/doc/fontconfig-devel/fcmatrixscale.html0000664000076400007640000000577212313745373020417 00000000000000 FcMatrixScale

FcMatrixScale

Name

FcMatrixScale -- Scale a matrix

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcMatrixScale(FcMatrix *matrix, double sx, double dy);

Description

FcMatrixScale multiplies matrix x values by sx and y values by dy. This is done by multiplying by the matrix:
   sx  0
   0   dy

fontconfig-2.11.1/doc/fontconfig-devel/fcfileisdir.html0000664000076400007640000000516612313745374020053 00000000000000 FcFileIsDir

FcFileIsDir

Name

FcFileIsDir -- check whether a file is a directory

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcFileIsDir(const FcChar8 *file);

Description

Returns FcTrue if file is a directory, otherwise returns FcFalse.

fontconfig-2.11.1/doc/fontconfig-devel/fcpatternadd-type.html0000664000076400007640000001162612313745373021203 00000000000000 FcPatternAdd-Type

FcPatternAdd-Type

Name

FcPatternAddInteger, FcPatternAddDouble, FcPatternAddString, FcPatternAddMatrix, FcPatternAddCharSet, FcPatternAddBool, FcPatternAddFTFace, FcPatternAddLangSet -- Add a typed value to a pattern

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcPatternAddInteger(FcPattern *p, const char *object, int i);

FcBool FcPatternAddDouble(FcPattern *p, const char *object, double d);

FcBool FcPatternAddString(FcPattern *p, const char *object, const FcChar8 *s);

FcBool FcPatternAddMatrix(FcPattern *p, const char *object, const FcMatrix *m);

FcBool FcPatternAddCharSet(FcPattern *p, const char *object, const FcCharSet *c);

FcBool FcPatternAddBool(FcPattern *p, const char *object, FcBool b);

FcBool FcPatternAddFTFace(FcPattern *p, const char *object, const FT_Facef);

FcBool FcPatternAddLangSet(FcPattern *p, const char *object, const FcLangSet *l);

Description

These are all convenience functions that insert objects of the specified type into the pattern. Use these in preference to FcPatternAdd as they will provide compile-time typechecking. These all append values to any existing list of values.

fontconfig-2.11.1/doc/fontconfig-devel/fcstrcmpignorecase.html0000664000076400007640000000543612313745374021451 00000000000000 FcStrCmpIgnoreCase

FcStrCmpIgnoreCase

Name

FcStrCmpIgnoreCase -- compare UTF-8 strings ignoring case

Synopsis

#include <fontconfig/fontconfig.h>
	

int FcStrCmpIgnoreCase(const FcChar8 *s1, const FcChar8 *s2);

Description

Returns the usual <0, 0, >0 result of comparing s1 and s2. This test is case-insensitive for all proper UTF-8 encoded strings.

fontconfig-2.11.1/doc/fontconfig-devel/fcconfiggetconfigdirs.html0000664000076400007640000000557212313745374022117 00000000000000 FcConfigGetConfigDirs

FcConfigGetConfigDirs

Name

FcConfigGetConfigDirs -- Get config directories

Synopsis

#include <fontconfig/fontconfig.h>
	

FcStrList * FcConfigGetConfigDirs(FcConfig *config);

Description

Returns the list of font directories specified in the configuration files for config. Does not include any subdirectories. If config is NULL, the current configuration is used.

fontconfig-2.11.1/doc/fontconfig-devel/fcpatternequal.html0000664000076400007640000000537312313745373020605 00000000000000 FcPatternEqual

FcPatternEqual

Name

FcPatternEqual -- Compare patterns

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcPatternEqual(const FcPattern *pa, const FcPattern *pb);

Description

Returns whether pa and pb are exactly alike.

fontconfig-2.11.1/doc/fontconfig-devel/fcfontlist.html0000664000076400007640000000575312313745374017745 00000000000000 FcFontList

FcFontList

Name

FcFontList -- List fonts

Synopsis

#include <fontconfig/fontconfig.h>
	

FcFontSet * FcFontList(FcConfig *config, FcPattern *p, FcObjectSet *os);

Description

Selects fonts matching p, creates patterns from those fonts containing only the objects in os and returns the set of unique such patterns. If config is NULL, the default configuration is checked to be up to date, and used.

fontconfig-2.11.1/doc/fontconfig-devel/fcpatternequalsubset.html0000664000076400007640000000561512313745373022032 00000000000000 FcPatternEqualSubset

FcPatternEqualSubset

Name

FcPatternEqualSubset -- Compare portions of patterns

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcPatternEqualSubset(const FcPattern *pa, const FcPattern *pb, const FcObjectSet *os);

Description

Returns whether pa and pb have exactly the same values for all of the objects in os.

fontconfig-2.11.1/doc/fontconfig-devel/fcstrfree.html0000664000076400007640000000512112313745374017542 00000000000000 FcStrFree

FcStrFree

Name

FcStrFree -- free a string

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcStrFree(FcChar8 *s);

Description

This is just a wrapper around free(3) which helps track memory usage of strings within the fontconfig library.

fontconfig-2.11.1/doc/fontconfig-devel/fcblanksismember.html0000664000076400007640000000474412313745374021100 00000000000000 FcBlanksIsMember

FcBlanksIsMember

Name

FcBlanksIsMember -- Query membership in an FcBlanks

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcBlanksIsMember(FcBlanks *b, FcChar32 ucs4);

Description

Returns whether the specified FcBlanks object contains the indicated Unicode value.

fontconfig-2.11.1/doc/fontconfig-devel/fclangsetcompare.html0000664000076400007640000000613612313745373021102 00000000000000 FcLangSetCompare

FcLangSetCompare

Name

FcLangSetCompare -- compare language sets

Synopsis

#include <fontconfig/fontconfig.h>
	

FcLangResult FcLangSetCompare(const FcLangSet *ls_a, const FcLangSet *ls_b);

Description

FcLangSetCompare compares language coverage for ls_a and ls_b. If they share any language and territory pair, this function returns FcLangEqual. If they share a language but differ in which territory that language is for, this function returns FcLangDifferentTerritory. If they share no languages in common, this function returns FcLangDifferentLang.

fontconfig-2.11.1/doc/fontconfig-devel/fccharsetintersectcount.html0000664000076400007640000000550312313745373022516 00000000000000 FcCharSetIntersectCount

FcCharSetIntersectCount

Name

FcCharSetIntersectCount -- Intersect and count charsets

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar32 FcCharSetIntersectCount(const FcCharSet *a, const FcCharSet *b);

Description

Returns the number of chars that are in both a and b.

fontconfig-2.11.1/doc/fontconfig-devel/fcpatternprint.html0000664000076400007640000000534612313745373020632 00000000000000 FcPatternPrint

FcPatternPrint

Name

FcPatternPrint -- Print a pattern for debugging

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcPatternPrint(const FcPattern *p);

Description

Prints an easily readable version of the pattern to stdout. There is no provision for reparsing data in this format, it's just for diagnostics and debugging.

fontconfig-2.11.1/doc/fontconfig-devel/fcdircacheunlink.html0000664000076400007640000000566612313745374021071 00000000000000 FcDirCacheUnlink

FcDirCacheUnlink

Name

FcDirCacheUnlink -- Remove all caches related to dir

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcDirCacheUnlink(const FcChar8 *dir, FcConfig *config);

Description

Scans the cache directories in config, removing any instances of the cache file for dir. Returns FcFalse when some internal error occurs (out of memory, etc). Errors actually unlinking any files are ignored.

fontconfig-2.11.1/doc/fontconfig-devel/fcdircachevalid.html0000664000076400007640000000527712313745374020666 00000000000000 FcDirCacheValid

FcDirCacheValid

Name

FcDirCacheValid -- check directory cache

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcDirCacheValid(const FcChar8 *dir);

Description

Returns FcTrue if dir has an associated valid cache file, else returns FcFalse

fontconfig-2.11.1/doc/fontconfig-devel/fcstrsetaddfilename.html0000664000076400007640000000552312313745374021574 00000000000000 FcStrSetAddFilename

FcStrSetAddFilename

Name

FcStrSetAddFilename -- add a filename to a string set

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcStrSetAddFilename(FcStrSet *set, const FcChar8 *s);

Description

Adds a copy s to set, The copy is created with FcStrCopyFilename so that leading '~' values are replaced with the value of the HOME environment variable.

fontconfig-2.11.1/doc/fontconfig-devel/fcpatternbuild.html0000664000076400007640000001037612313745373020574 00000000000000 FcPatternBuild

FcPatternBuild

Name

FcPatternBuild, FcPatternVaBuild, FcPatternVapBuild -- Create patterns from arguments

Synopsis

#include <fontconfig/fontconfig.h>
	

FcPattern * FcPatternBuild(FcPattern *pattern, ...);

FcPattern * FcPatternVaBuild(FcPattern *pattern, va_list va);

void FcPatternVapBuild(FcPattern *result, FcPattern *pattern, va_list va);

Description

Builds a pattern using a list of objects, types and values. Each value to be entered in the pattern is specified with three arguments:

  1. Object name, a string describing the property to be added.

  2. Object type, one of the FcType enumerated values

  3. Value, not an FcValue, but the raw type as passed to any of the FcPatternAdd<type> functions. Must match the type of the second argument.

The argument list is terminated by a null object name, no object type nor value need be passed for this. The values are added to `pattern', if `pattern' is null, a new pattern is created. In either case, the pattern is returned. Example

pattern = FcPatternBuild (0, FC_FAMILY, FcTypeString, "Times", (char *) 0);

FcPatternVaBuild is used when the arguments are already in the form of a varargs value. FcPatternVapBuild is a macro version of FcPatternVaBuild which returns its result directly in the result variable.

fontconfig-2.11.1/doc/fontconfig-devel/fcvalueequal.html0000664000076400007640000000505412313745373020240 00000000000000 FcValueEqual

FcValueEqual

Name

FcValueEqual -- Test two values for equality

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcValueEqual(FcValue v_a, FcValue v_b);

Description

Compares two values. Integers and Doubles are compared as numbers; otherwise the two values have to be the same type to be considered equal. Strings are compared ignoring case.

fontconfig-2.11.1/doc/fontconfig-devel/fclangsetequal.html0000664000076400007640000000546012313745373020562 00000000000000 FcLangSetEqual

FcLangSetEqual

Name

FcLangSetEqual -- test for matching langsets

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcLangSetEqual(const FcLangSet *ls_a, const FcLangSet *ls_b);

Description

Returns FcTrue if and only if ls_a supports precisely the same language and territory combinations as ls_b.

fontconfig-2.11.1/doc/fontconfig-devel/fcmatrixmultiply.html0000664000076400007640000000557712313745373021212 00000000000000 FcMatrixMultiply

FcMatrixMultiply

Name

FcMatrixMultiply -- Multiply matrices

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcMatrixMultiply(FcMatrix *result, const FcMatrix *matrix1, const FcMatrix *matrix2);

Description

FcMatrixMultiply multiplies matrix1 and matrix2 storing the result in result.

fontconfig-2.11.1/doc/fontconfig-devel/fcinitloadconfig.html0000664000076400007640000000524112313745373021063 00000000000000 FcInitLoadConfig

FcInitLoadConfig

Name

FcInitLoadConfig -- load configuration

Synopsis

#include <fontconfig/fontconfig.h>
	

FcConfig * FcInitLoadConfig(void);

Description

Loads the default configuration file and returns the resulting configuration. Does not load any font information.

fontconfig-2.11.1/doc/fontconfig-devel/fcdircacheread.html0000664000076400007640000000573212313745374020476 00000000000000 FcDirCacheRead

FcDirCacheRead

Name

FcDirCacheRead -- read or construct a directory cache

Synopsis

#include <fontconfig/fontconfig.h>
	

FcCache * FcDirCacheRead(const FcChar8 *dir, FcBool force, FcConfig *config);

Description

This returns a cache for dir. If force is FcFalse, then an existing, valid cache file will be used. Otherwise, a new cache will be created by scanning the directory and that returned.

fontconfig-2.11.1/doc/fontconfig-devel/fcfontsetdestroy.html0000664000076400007640000000516212313745373021170 00000000000000 FcFontSetDestroy

FcFontSetDestroy

Name

FcFontSetDestroy -- Destroy a font set

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcFontSetDestroy(FcFontSet *s);

Description

Destroys a font set. Note that this destroys any referenced patterns as well.

fontconfig-2.11.1/doc/fontconfig-devel/fcgetversion.html0000664000076400007640000000504512313745373020261 00000000000000 FcGetVersion

FcGetVersion

Name

FcGetVersion -- library version number

Synopsis

#include <fontconfig/fontconfig.h>
	

int FcGetVersion(void);

Description

Returns the version number of the library.

fontconfig-2.11.1/doc/fontconfig-devel/fcmatrixrotate.html0000664000076400007640000000603412313745373020616 00000000000000 FcMatrixRotate

FcMatrixRotate

Name

FcMatrixRotate -- Rotate a matrix

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcMatrixRotate(FcMatrix *matrix, double cos, double sin);

Description

FcMatrixRotate rotates matrix by the angle who's sine is sin and cosine is cos. This is done by multiplying by the matrix:
  cos -sin
  sin  cos

fontconfig-2.11.1/doc/fontconfig-devel/fclanggetcharset.html0000664000076400007640000000465212313745373021072 00000000000000 FcLangGetCharSet

FcLangGetCharSet

Name

FcLangGetCharSet -- Get character map for a language

Synopsis

#include <fontconfig/fontconfig.h>
	

const FcCharSet * FcLangGetCharSet(const FcChar8 *lang);

Description

Returns the FcCharMap for a language.

fontconfig-2.11.1/doc/fontconfig-devel/fcconfiggetconfigfiles.html0000664000076400007640000000547212313745374022257 00000000000000 FcConfigGetConfigFiles

FcConfigGetConfigFiles

Name

FcConfigGetConfigFiles -- Get config files

Synopsis

#include <fontconfig/fontconfig.h>
	

FcStrList * FcConfigGetConfigFiles(FcConfig *config);

Description

Returns the list of known configuration files used to generate config. If config is NULL, the current configuration is used.

fontconfig-2.11.1/doc/fontconfig-devel/fcpatterndestroy.html0000664000076400007640000000527412313745373021167 00000000000000 FcPatternDestroy

FcPatternDestroy

Name

FcPatternDestroy -- Destroy a pattern

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcPatternDestroy(FcPattern *p);

Description

Decrement the pattern reference count. If all references are gone, destroys the pattern, in the process destroying all related values.

fontconfig-2.11.1/doc/fontconfig-devel/fclangsetunion.html0000664000076400007640000000553512313745373020606 00000000000000 FcLangSetUnion

FcLangSetUnion

Name

FcLangSetUnion -- Add langsets

Synopsis

#include <fontconfig/fontconfig.h>
	

FcLangSet * FcLangSetUnion(const FcLangSet *ls_a, const FcLangSet *ls_b);

Description

Returns a set including only those languages found in either ls_a or ls_b.

Since

version 2.9.0

fontconfig-2.11.1/doc/fontconfig-devel/fcatomicreplaceorig.html0000664000076400007640000000547212313745374021572 00000000000000 FcAtomicReplaceOrig

FcAtomicReplaceOrig

Name

FcAtomicReplaceOrig -- replace original with new

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcAtomicReplaceOrig(FcAtomic *atomic);

Description

Replaces the original file referenced by atomic with the new file. Returns FcFalse if the file cannot be replaced due to permission issues in the filesystem. Otherwise returns FcTrue.

fontconfig-2.11.1/doc/fontconfig-devel/fcconfigsetsysroot.html0000664000076400007640000000545712313745374021530 00000000000000 FcConfigSetSysRoot

FcConfigSetSysRoot

Name

FcConfigSetSysRoot -- Set the system root directory

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcConfigSetSysRoot(FcConfig *config, const FcChar8 *sysroot);

Description

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

version 2.10.92

fontconfig-2.11.1/doc/fontconfig-devel/fcdircacherescan.html0000664000076400007640000000552512313745374021036 00000000000000 FcDirCacheRescan

FcDirCacheRescan

Name

FcDirCacheRescan -- Re-scan a directory cache

Synopsis

#include <fontconfig/fontconfig.h>
	

FcCache * FcDirCacheRescan(const FcChar8 *dir, FcConfig *config);

Description

Re-scan directories only at dir and update the cache. returns NULL if failed.

Since

version 2.11.1

fontconfig-2.11.1/doc/fontconfig-devel/fcconfiggetcache.html0000664000076400007640000000543312313745374021027 00000000000000 FcConfigGetCache

FcConfigGetCache

Name

FcConfigGetCache -- DEPRECATED used to return per-user cache filename

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar8 * FcConfigGetCache(FcConfig *config);

Description

With fontconfig no longer using per-user cache files, this function now simply returns NULL to indicate that no per-user file exists.

fontconfig-2.11.1/doc/fontconfig-devel/fccharsetdelchar.html0000664000076400007640000000560712313745373021054 00000000000000 FcCharSetDelChar

FcCharSetDelChar

Name

FcCharSetDelChar -- Add a character to a charset

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcCharSetDelChar(FcCharSet *fcs, FcChar32 ucs4);

Description

FcCharSetDelChar deletes a single Unicode char from the set, returning FcFalse on failure, either as a result of a constant set or from running out of memory.

Since

version 2.9.0

fontconfig-2.11.1/doc/fontconfig-devel/fcconfigsetrescaninterval.html0000664000076400007640000000601512313745374023015 00000000000000 FcConfigSetRescanInterval

FcConfigSetRescanInterval

Name

FcConfigSetRescanInterval -- Set config rescan interval

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcConfigSetRescanInterval(FcConfig *config, int rescanInterval);

Description

Sets the rescan interval. Returns FcFalse if the interval cannot be set (due to allocation failure). Otherwise returns FcTrue. An interval setting of zero disables automatic checks. If config is NULL, the current configuration is used.

fontconfig-2.11.1/doc/fontconfig-devel/fcstrstr.html0000664000076400007640000000562512313745374017442 00000000000000 FcStrStr

FcStrStr

Name

FcStrStr -- locate UTF-8 substring

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar8 * FcStrStr(const FcChar8 *s1, const FcChar8 *s2);

Description

Returns the location of s2 in s1. Returns NULL if s2 is not present in s1. This test will operate properly with UTF8 encoded strings.

fontconfig-2.11.1/doc/fontconfig-devel/fcucs4toutf8.html0000664000076400007640000000536112313745374020126 00000000000000 FcUcs4ToUtf8

FcUcs4ToUtf8

Name

FcUcs4ToUtf8 -- convert UCS4 to UTF-8

Synopsis

#include <fontconfig/fontconfig.h>
	

int FcUcs4ToUtf8(FcChar32 src, FcChar8 dst[FC_UTF8_MAX_LEN]);

Description

Converts the Unicode char from src into dst and returns the number of bytes needed to encode the char.

fontconfig-2.11.1/doc/fontconfig-devel/t1.html0000664000076400007640000000333412313745374016107 00000000000000 Fontconfig Developers Reference, Version 2.11.1

DESCRIPTION

Fontconfig is a library designed to provide system-wide font configuration, customization and application access.

fontconfig-2.11.1/doc/fontconfig-devel/fcconfigreference.html0000664000076400007640000000600212313745373021212 00000000000000 FcConfigReference

FcConfigReference

Name

FcConfigReference -- Increment config reference count

Synopsis

#include <fontconfig/fontconfig.h>
	

FcConfig * FcConfigReference(FcConfig *config);

Description

Add another reference to config. Configs are freed only when the reference count reaches zero. If config is NULL, the current configuration is used. In that case this function will be similar to FcConfigGetCurrent() except that it increments the reference count before returning and the user is responsible for destroying the configuration when not needed anymore.

fontconfig-2.11.1/doc/fontconfig-devel/fcstrdowncase.html0000664000076400007640000000531012313745374020424 00000000000000 FcStrDowncase

FcStrDowncase

Name

FcStrDowncase -- create a lower case translation of a string

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar8 * FcStrDowncase(const FcChar8 *s);

Description

Allocates memory, copies s, converting upper case letters to lower case and returns the allocated buffer.

fontconfig-2.11.1/doc/fontconfig-devel/fcvaluesave.html0000664000076400007640000000530612313745373020067 00000000000000 FcValueSave

FcValueSave

Name

FcValueSave -- Copy a value

Synopsis

#include <fontconfig/fontconfig.h>
	

FcValue FcValueSave(FcValue v);

Description

Returns a copy of v duplicating any object referenced by it so that v may be safely destroyed without harming the new value.

fontconfig-2.11.1/doc/fontconfig-devel/fcpatternfilter.html0000664000076400007640000000562112313745373020757 00000000000000 FcPatternFilter

FcPatternFilter

Name

FcPatternFilter -- Filter the objects of pattern

Synopsis

#include <fontconfig/fontconfig.h>
	

FcPattern * FcPatternFilter(FcPattern *p, const FcObjectSet *);

Description

Returns a new pattern that only has those objects from p that are in os. If os is NULL, a duplicate of p is returned.

fontconfig-2.11.1/doc/fontconfig-devel/fcpatterncreate.html0000664000076400007640000000512112313745373020730 00000000000000 FcPatternCreate

FcPatternCreate

Name

FcPatternCreate -- Create a pattern

Synopsis

#include <fontconfig/fontconfig.h>
	

FcPattern * FcPatternCreate(void);

Description

Creates a pattern with no properties; used to build patterns from scratch.

fontconfig-2.11.1/doc/fontconfig-devel/fcconfiggetcurrent.html0000664000076400007640000000520212313745373021437 00000000000000 FcConfigGetCurrent

FcConfigGetCurrent

Name

FcConfigGetCurrent -- Return current configuration

Synopsis

#include <fontconfig/fontconfig.h>
	

FcConfig * FcConfigGetCurrent(void);

Description

Returns the current default configuration.

fontconfig-2.11.1/doc/fontconfig-devel/fcvalueprint.html0000664000076400007640000000527612313745373020273 00000000000000 FcValuePrint

FcValuePrint

Name

FcValuePrint -- Print a value to stdout

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcValuePrint(FcValue v);

Description

Prints a human-readable representation of v to stdout. The format should not be considered part of the library specification as it may change in the future.

fontconfig-2.11.1/doc/fontconfig-devel/fcconfiggetfontdirs.html0000664000076400007640000000565012313745374021615 00000000000000 FcConfigGetFontDirs

FcConfigGetFontDirs

Name

FcConfigGetFontDirs -- Get font directories

Synopsis

#include <fontconfig/fontconfig.h>
	

FcStrList * FcConfigGetFontDirs(FcConfig *config);

Description

Returns the list of font directories in config. This includes the configured font directories along with any directories below those in the filesystem. If config is NULL, the current configuration is used.

fontconfig-2.11.1/doc/fontconfig-devel/fcstrlistcreate.html0000664000076400007640000000523112313745374020762 00000000000000 FcStrListCreate

FcStrListCreate

Name

FcStrListCreate -- create a string iterator

Synopsis

#include <fontconfig/fontconfig.h>
	

FcStrList * FcStrListCreate(FcStrSet *set);

Description

Creates an iterator to list the strings in set.

fontconfig-2.11.1/doc/fontconfig-devel/fcobjectsetdestroy.html0000664000076400007640000000513412313745373021467 00000000000000 FcObjectSetDestroy

FcObjectSetDestroy

Name

FcObjectSetDestroy -- Destroy an object set

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcObjectSetDestroy(FcObjectSet *os);

Description

Destroys an object set.

fontconfig-2.11.1/doc/fontconfig-devel/fcnamegetobjecttype.html0000664000076400007640000000505412313745374021606 00000000000000 FcNameGetObjectType

FcNameGetObjectType

Name

FcNameGetObjectType -- Lookup an object type

Synopsis

#include <fontconfig/fontconfig.h>
	

const FcObjectType * FcNameGetObjectType(const char *object);

Description

Return the object type for the pattern element named object.

fontconfig-2.11.1/doc/fontconfig-devel/fcstrcopy.html0000664000076400007640000000530112313745374017573 00000000000000 FcStrCopy

FcStrCopy

Name

FcStrCopy -- duplicate a string

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar8 * FcStrCopy(const FcChar8 *s);

Description

Allocates memory, copies s and returns the resulting buffer. Yes, this is strdup, but that function isn't available on every platform.

fontconfig-2.11.1/doc/fontconfig-devel/fcpatterndel.html0000664000076400007640000000530712313745373020237 00000000000000 FcPatternDel

FcPatternDel

Name

FcPatternDel -- Delete a property from a pattern

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcPatternDel(FcPattern *p, const char *object);

Description

Deletes all values associated with the property `object', returning whether the property existed or not.

fontconfig-2.11.1/doc/fontconfig-devel/fcutf8toucs4.html0000664000076400007640000000556312313745374020132 00000000000000 FcUtf8ToUcs4

FcUtf8ToUcs4

Name

FcUtf8ToUcs4 -- convert UTF-8 to UCS4

Synopsis

#include <fontconfig/fontconfig.h>
	

int FcUtf8ToUcs4(FcChar8 *src, FcChar32 *dst, int len);

Description

Converts the next Unicode char from src into dst and returns the number of bytes containing the char. src must be at least len bytes long.

fontconfig-2.11.1/doc/fontconfig-devel/fcdefaultsubstitute.html0000664000076400007640000000572712313745373021663 00000000000000 FcDefaultSubstitute

FcDefaultSubstitute

Name

FcDefaultSubstitute -- Perform default substitutions in a pattern

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcDefaultSubstitute(FcPattern *pattern);

Description

Supplies default values for underspecified font patterns:

  • Patterns without a specified style or weight are set to Medium

  • Patterns without a specified style or slant are set to Roman

  • Patterns without a specified pixel size are given one computed from any specified point size (default 12), dpi (default 75) and scale (default 1).

fontconfig-2.11.1/doc/fontconfig-devel/fccharsetcreate.html0000664000076400007640000000516712313745373020716 00000000000000 FcCharSetCreate

FcCharSetCreate

Name

FcCharSetCreate -- Create an empty character set

Synopsis

#include <fontconfig/fontconfig.h>
	

FcCharSet * FcCharSetCreate(void);

Description

FcCharSetCreate allocates and initializes a new empty character set object.

fontconfig-2.11.1/doc/fontconfig-devel/fclangsetadd.html0000664000076400007640000000552112313745373020201 00000000000000 FcLangSetAdd

FcLangSetAdd

Name

FcLangSetAdd -- add a language to a langset

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcLangSetAdd(FcLangSet *ls, const FcChar8 *lang);

Description

lang is added to ls. lang should be of the form Ll-Tt where Ll is a two or three letter language from ISO 639 and Tt is a territory from ISO 3166.

fontconfig-2.11.1/doc/fontconfig-devel/fcatomicunlock.html0000664000076400007640000000510212313745374020557 00000000000000 FcAtomicUnlock

FcAtomicUnlock

Name

FcAtomicUnlock -- unlock a file

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcAtomicUnlock(FcAtomic *atomic);

Description

Unlocks the file.

fontconfig-2.11.1/doc/fontconfig-devel/fcgetlangs.html0000664000076400007640000000511412313745373017675 00000000000000 FcGetLangs

FcGetLangs

Name

FcGetLangs -- Get list of languages

Synopsis

#include <fontconfig/fontconfig.h>
	

FcStrSet * FcGetLangs(void);

Description

Returns a string set of all known languages.

fontconfig-2.11.1/doc/fontconfig-devel/fcfreetypecharset.html0000664000076400007640000000601712313745373021271 00000000000000 FcFreeTypeCharSet

FcFreeTypeCharSet

Name

FcFreeTypeCharSet -- compute Unicode coverage

Synopsis

#include <fontconfig.h>
#include <fcfreetype.h>
	

FcCharSet * FcFreeTypeCharSet(FT_Face face, FcBlanks *blanks);

Description

Scans a FreeType face and returns the set of encoded Unicode chars. This scans several encoding tables to build as complete a list as possible. If 'blanks' is not 0, the glyphs in the font are examined and any blank glyphs not in 'blanks' are not placed in the returned FcCharSet.

fontconfig-2.11.1/doc/fontconfig-devel/fcatomicorigfile.html0000664000076400007640000000524212313745374021071 00000000000000 FcAtomicOrigFile

FcAtomicOrigFile

Name

FcAtomicOrigFile -- return original file name

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar8 * FcAtomicOrigFile(FcAtomic *atomic);

Description

Returns the file referenced by atomic.

fontconfig-2.11.1/doc/fontconfig-devel/fcstrstrignorecase.html0000664000076400007640000000562512313745374021502 00000000000000 FcStrStrIgnoreCase

FcStrStrIgnoreCase

Name

FcStrStrIgnoreCase -- locate UTF-8 substring ignoring ASCII case

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar8 * FcStrStrIgnoreCase(const FcChar8 *s1, const FcChar8 *s2);

Description

Returns the location of s2 in s1, ignoring case. Returns NULL if s2 is not present in s1. This test is case-insensitive for all proper UTF-8 encoded strings.

fontconfig-2.11.1/doc/fontconfig-devel/fclangsetdestroy.html0000664000076400007640000000524012313745373021140 00000000000000 FcLangSetDestroy

FcLangSetDestroy

Name

FcLangSetDestroy -- destroy a langset object

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcLangSetDestroy(FcLangSet *ls);

Description

FcLangSetDestroy destroys a FcLangSet object, freeing all memory associated with it.

fontconfig-2.11.1/doc/fontconfig-devel/fccharsetcount.html0000664000076400007640000000527512313745373020603 00000000000000 FcCharSetCount

FcCharSetCount

Name

FcCharSetCount -- Count entries in a charset

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar32 FcCharSetCount(const FcCharSet *a);

Description

Returns the total number of Unicode chars in a.

fontconfig-2.11.1/doc/fontconfig-devel/fcfreetypequeryface.html0000664000076400007640000000534412313745373021626 00000000000000 FcFreeTypeQueryFace

FcFreeTypeQueryFace

Name

FcFreeTypeQueryFace -- compute pattern from FT_Face

Synopsis

#include <fontconfig.h>
#include <fcfreetype.h>
	

FcPattern * FcFreeTypeQueryFace(const FT_Face face, const FcChar8 *file, int id, FcBlanks *blanks);

Description

Constructs a pattern representing 'face'. 'file' and 'id' are used solely as data for pattern elements (FC_FILE, FC_INDEX and sometimes FC_FAMILY).

fontconfig-2.11.1/doc/fontconfig-devel/fcconfiggetcachedirs.html0000664000076400007640000000564112313745374021712 00000000000000 FcConfigGetCacheDirs

FcConfigGetCacheDirs

Name

FcConfigGetCacheDirs -- return the list of directories searched for cache files

Synopsis

#include <fontconfig/fontconfig.h>
	

FcStrList * FcConfigGetCacheDirs(const FcConfig *config);

Description

FcConfigGetCacheDirs returns a string list containing all of the directories that fontconfig will search when attempting to load a cache file for a font directory. If config is NULL, the current configuration is used.

fontconfig-2.11.1/doc/fontconfig-devel/fcconfiggetrescaninterval.html0000664000076400007640000000606112313745374023002 00000000000000 FcConfigGetRescanInterval

FcConfigGetRescanInterval

Name

FcConfigGetRescanInterval -- Get config rescan interval

Synopsis

#include <fontconfig/fontconfig.h>
	

int FcConfigGetRescanInterval(FcConfig *config);

Description

Returns the interval between automatic checks of the configuration (in seconds) specified in config. The configuration is checked during a call to FcFontList when this interval has passed since the last check. An interval setting of zero disables automatic checks. If config is NULL, the current configuration is used.

fontconfig-2.11.1/doc/fontconfig-devel/fccachenumsubdir.html0000664000076400007640000000526012313745374021070 00000000000000 FcCacheNumSubdir

FcCacheNumSubdir

Name

FcCacheNumSubdir -- Return the number of subdirectories in cache.

Synopsis

#include <fontconfig/fontconfig.h>
	

int FcCacheNumSubdir(const FcCache *cache);

Description

This returns the total number of subdirectories in the cache.

fontconfig-2.11.1/doc/fontconfig-devel/fcdircacheclean.html0000664000076400007640000000561312313745374020643 00000000000000 FcDirCacheClean

FcDirCacheClean

Name

FcDirCacheClean -- This tries to clean up the cache directory of cache_dir. This returns FcTrue if the operation is successfully complete. otherwise FcFalse.

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcDirCacheClean(const FcChar8 *cache_dir, FcBoolverbose);

Description

Since

version 2.9.91

fontconfig-2.11.1/doc/fontconfig-devel/fcpatternreference.html0000664000076400007640000000533212313745373021427 00000000000000 FcPatternReference

FcPatternReference

Name

FcPatternReference -- Increment pattern reference count

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcPatternReference(FcPattern *p);

Description

Add another reference to p. Patterns are freed only when the reference count reaches zero.

fontconfig-2.11.1/doc/fontconfig-devel/fcutf8len.html0000664000076400007640000000613612313745374017464 00000000000000 FcUtf8Len

FcUtf8Len

Name

FcUtf8Len -- count UTF-8 encoded chars

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcUtf8Len(FcChar8 *src, int len, int *nchar, int *wchar);

Description

Counts the number of Unicode chars in len bytes of src. Places that count in nchar. wchar contains 1, 2 or 4 depending on the number of bytes needed to hold the largest Unicode char counted. The return value indicates whether src is a well-formed UTF8 string.

fontconfig-2.11.1/doc/fontconfig-devel/fccharsetunion.html0000664000076400007640000000541712313745373020601 00000000000000 FcCharSetUnion

FcCharSetUnion

Name

FcCharSetUnion -- Add charsets

Synopsis

#include <fontconfig/fontconfig.h>
	

FcCharSet * FcCharSetUnion(const FcCharSet *a, const FcCharSet *b);

Description

Returns a set including only those chars found in either a or b.

fontconfig-2.11.1/doc/fontconfig-devel/fcconfigappfontaddfile.html0000664000076400007640000000574412313745374022251 00000000000000 FcConfigAppFontAddFile

FcConfigAppFontAddFile

Name

FcConfigAppFontAddFile -- Add font file to font database

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcConfigAppFontAddFile(FcConfig *config, const FcChar8 *file);

Description

Adds an application-specific font to the configuration. Returns FcFalse if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue. If config is NULL, the current configuration is used.

fontconfig-2.11.1/doc/fontconfig-devel/fcobjectsetbuild.html0000664000076400007640000000626412313745373021102 00000000000000 FcObjectSetBuild

FcObjectSetBuild

Name

FcObjectSetBuild, FcObjectSetVaBuild, FcObjectSetVapBuild -- Build object set from args

Synopsis

#include <fontconfig/fontconfig.h>
	

FcObjectSet * FcObjectSetBuild(const char *first, ...);

FcObjectSet * FcObjectSetVaBuild(const char *first, va_list va);

void FcObjectSetVapBuild(FcObjectSet *result, const char *first, va_list va);

Description

These build an object set from a null-terminated list of property names. FcObjectSetVapBuild is a macro version of FcObjectSetVaBuild which returns the result in the result variable directly.

fontconfig-2.11.1/doc/fontconfig-devel/fccachesubdir.html0000664000076400007640000000565412313745374020357 00000000000000 FcCacheSubdir

FcCacheSubdir

Name

FcCacheSubdir -- Return the i'th subdirectory.

Synopsis

#include <fontconfig/fontconfig.h>
	

const FcChar8 * FcCacheSubdir(const FcCache *cache, inti);

Description

The set of subdirectories stored in a cache file are indexed by this function, i should range from 0 to n-1, where n is the return value from FcCacheNumSubdir.

fontconfig-2.11.1/doc/fontconfig-devel/fcfreetypequery.html0000664000076400007640000000572612313745373021013 00000000000000 FcFreeTypeQuery

FcFreeTypeQuery

Name

FcFreeTypeQuery -- compute pattern from font file (and index)

Synopsis

#include <fontconfig.h>
#include <fcfreetype.h>
	

FcPattern * FcFreeTypeQuery(const FcChar8 *file, int id, FcBlanks *blanks, int *count);

Description

Constructs a pattern representing the 'id'th font in 'file'. The number of fonts in 'file' is returned in 'count'.

fontconfig-2.11.1/doc/fontconfig-devel/fccharsetdestroy.html0000664000076400007640000000537412313745373021144 00000000000000 FcCharSetDestroy

FcCharSetDestroy

Name

FcCharSetDestroy -- Destroy a character set

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcCharSetDestroy(FcCharSet *fcs);

Description

FcCharSetDestroy decrements the reference count fcs. If the reference count becomes zero, all memory referenced is freed.

fontconfig-2.11.1/doc/fontconfig-devel/fccharsetsubtract.html0000664000076400007640000000537612313745373021304 00000000000000 FcCharSetSubtract

FcCharSetSubtract

Name

FcCharSetSubtract -- Subtract charsets

Synopsis

#include <fontconfig/fontconfig.h>
	

FcCharSet * FcCharSetSubtract(const FcCharSet *a, const FcCharSet *b);

Description

Returns a set including only those chars found in a but not b.

fontconfig-2.11.1/doc/fontconfig-devel/fcinitloadconfigandfonts.html0000664000076400007640000000527212313745373022624 00000000000000 FcInitLoadConfigAndFonts

FcInitLoadConfigAndFonts

Name

FcInitLoadConfigAndFonts -- load configuration and font data

Synopsis

#include <fontconfig/fontconfig.h>
	

FcConfig * FcInitLoadConfigAndFonts(void);

Description

Loads the default configuration file and builds information about the available fonts. Returns the resulting configuration.

fontconfig-2.11.1/doc/fontconfig-devel/fcstrsetcreate.html0000664000076400007640000000502712313745374020605 00000000000000 FcStrSetCreate

FcStrSetCreate

Name

FcStrSetCreate -- create a string set

Synopsis

#include <fontconfig/fontconfig.h>
	

FcStrSet * FcStrSetCreate(void);

Description

Create an empty set.

fontconfig-2.11.1/doc/fontconfig-devel/fcnameunparse.html0000664000076400007640000000537612313745373020421 00000000000000 FcNameUnparse

FcNameUnparse

Name

FcNameUnparse -- Convert a pattern back into a string that can be parsed

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar8 * FcNameUnparse(FcPattern *pat);

Description

Converts the given pattern into the standard text format described above. The return value is not static, but instead refers to newly allocated memory which should be freed by the caller using free().

fontconfig-2.11.1/doc/fontconfig-devel/fcatomicdestroy.html0000664000076400007640000000463212313745374020764 00000000000000 FcAtomicDestroy

FcAtomicDestroy

Name

FcAtomicDestroy -- destroy an FcAtomic object

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcAtomicDestroy(FcAtomic *atomic);

Description

Destroys atomic.

fontconfig-2.11.1/doc/fontconfig-devel/fcpatternformat.html0000664000076400007640000003140112313745373020755 00000000000000 FcPatternFormat

FcPatternFormat

Name

FcPatternFormat -- Format a pattern into a string according to a format specifier

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar8 * FcPatternFormat(FcPattern *pat, const FcChar8 *format);

Description

Converts given pattern pat into text described by the format specifier format. The return value refers to newly allocated memory which should be freed by the caller using free(), or NULL if format is invalid.

The format is loosely modeled after printf-style format string. The format string is composed of zero or more directives: ordinary characters (not "%"), which are copied unchanged to the output stream; and tags which are interpreted to construct text from the pattern in a variety of ways (explained below). Special characters can be escaped using backslash. C-string style special characters like \n and \r are also supported (this is useful when the format string is not a C string literal). It is advisable to always escape curly braces that are meant to be copied to the output as ordinary characters.

Each tag is introduced by the character "%", followed by an optional minimum field width, followed by tag contents in curly braces ({}). If the minimum field width value is provided the tag will be expanded and the result padded to achieve the minimum width. If the minimum field width is positive, the padding will right-align the text. Negative field width will left-align. The rest of this section describes various supported tag contents and their expansion.

A simple tag is one where the content is an identifier. When simple tags are expanded, the named identifier will be looked up in pattern and the resulting list of values returned, joined together using comma. For example, to print the family name and style of the pattern, use the format "%{family} %{style}\n". To extend the family column to forty characters use "%-40{family}%{style}\n".

Simple tags expand to list of all values for an element. To only choose one of the values, one can index using the syntax "%{elt[idx]}". For example, to get the first family name only, use "%{family[0]}".

If a simple tag ends with "=" and the element is found in the pattern, the name of the element followed by "=" will be output before the list of values. For example, "%{weight=}" may expand to the string "weight=80". Or to the empty string if pattern does not have weight set.

If a simple tag starts with ":" and the element is found in the pattern, ":" will be printed first. For example, combining this with the =, the format "%{:weight=}" may expand to ":weight=80" or to the empty string if pattern does not have weight set.

If a simple tag contains the string ":-", the rest of the the tag contents will be used as a default string. The default string is output if the element is not found in the pattern. For example, the format "%{:weight=:-123}" may expand to ":weight=80" or to the string ":weight=123" if pattern does not have weight set.

A count tag is one that starts with the character "#" followed by an element name, and expands to the number of values for the element in the pattern. For example, "%{#family}" expands to the number of family names pattern has set, which may be zero.

A sub-expression tag is one that expands a sub-expression. The tag contents are the sub-expression to expand placed inside another set of curly braces. Sub-expression tags are useful for aligning an entire sub-expression, or to apply converters (explained later) to the entire sub-expression output. For example, the format "%40{{%{family} %{style}}}" expands the sub-expression to construct the family name followed by the style, then takes the entire string and pads it on the left to be at least forty characters.

A filter-out tag is one starting with the character "-" followed by a comma-separated list of element names, followed by a sub-expression enclosed in curly braces. The sub-expression will be expanded but with a pattern that has the listed elements removed from it. For example, the format "%{-size,pixelsize{sub-expr}}" will expand "sub-expr" with pattern sans the size and pixelsize elements.

A filter-in tag is one starting with the character "+" followed by a comma-separated list of element names, followed by a sub-expression enclosed in curly braces. The sub-expression will be expanded but with a pattern that only has the listed elements from the surrounding pattern. For example, the format "%{+family,familylang{sub-expr}}" will expand "sub-expr" with a sub-pattern consisting only the family and family lang elements of pattern.

A conditional tag is one starting with the character "?" followed by a comma-separated list of element conditions, followed by two sub-expression enclosed in curly braces. An element condition can be an element name, in which case it tests whether the element is defined in pattern, or the character "!" followed by an element name, in which case the test is negated. The conditional passes if all the element conditions pass. The tag expands the first sub-expression if the conditional passes, and expands the second sub-expression otherwise. For example, the format "%{?size,dpi,!pixelsize{pass}{fail}}" will expand to "pass" if pattern has size and dpi elements but no pixelsize element, and to "fail" otherwise.

An enumerate tag is one starting with the string "[]" followed by a comma-separated list of element names, followed by a sub-expression enclosed in curly braces. The list of values for the named elements are walked in parallel and the sub-expression expanded each time with a pattern just having a single value for those elements, starting from the first value and continuing as long as any of those elements has a value. For example, the format "%{[]family,familylang{%{family} (%{familylang})\n}}" will expand the pattern "%{family} (%{familylang})\n" with a pattern having only the first value of the family and familylang elements, then expands it with the second values, then the third, etc.

As a special case, if an enumerate tag has only one element, and that element has only one value in the pattern, and that value is of type FcLangSet, the individual languages in the language set are enumerated.

A builtin tag is one starting with the character "=" followed by a builtin name. The following builtins are defined:

unparse

Expands to the result of calling FcNameUnparse() on the pattern.

fcmatch

Expands to the output of the default output format of the fc-match command on the pattern, without the final newline.

fclist

Expands to the output of the default output format of the fc-list command on the pattern, without the final newline.

fccat

Expands to the output of the default output format of the fc-cat command on the pattern, without the final newline.

pkgkit

Expands to the list of PackageKit font() tags for the pattern. Currently this includes tags for each family name, and each language from the pattern, enumerated and sanitized into a set of tags terminated by newline. Package management systems can use these tags to tag their packages accordingly.

For example, the format "%{+family,style{%{=unparse}}}\n" will expand to an unparsed name containing only the family and style element values from pattern.

The contents of any tag can be followed by a set of zero or more converters. A converter is specified by the character "|" followed by the converter name and arguments. The following converters are defined:

basename

Replaces text with the results of calling FcStrBasename() on it.

dirname

Replaces text with the results of calling FcStrDirname() on it.

downcase

Replaces text with the results of calling FcStrDowncase() on it.

shescape

Escapes text for one level of shell expansion. (Escapes single-quotes, also encloses text in single-quotes.)

cescape

Escapes text such that it can be used as part of a C string literal. (Escapes backslash and double-quotes.)

xmlescape

Escapes text such that it can be used in XML and HTML. (Escapes less-than, greater-than, and ampersand.)

delete(chars)

Deletes all occurrences of each of the characters in chars from the text. FIXME: This converter is not UTF-8 aware yet.

escape(chars)

Escapes all occurrences of each of the characters in chars by prepending it by the first character in chars. FIXME: This converter is not UTF-8 aware yet.

translate(from,to)

Translates all occurrences of each of the characters in from by replacing them with their corresponding character in to. If to has fewer characters than from, it will be extended by repeating its last character. FIXME: This converter is not UTF-8 aware yet.

For example, the format "%{family|downcase|delete( )}\n" will expand to the values of the family element in pattern, lower-cased and with spaces removed.

Since

version 2.9.0

fontconfig-2.11.1/doc/fontconfig-devel/fcpatternhash.html0000664000076400007640000000516212313745373020415 00000000000000 FcPatternHash

FcPatternHash

Name

FcPatternHash -- Compute a pattern hash value

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar32 FcPatternHash(const FcPattern *p);

Description

Returns a 32-bit number which is the same for any two patterns which are equal.

fontconfig-2.11.1/doc/fontconfig-devel/fcisupper.html0000664000076400007640000000511212313745374017557 00000000000000 FcIsUpper

FcIsUpper

Name

FcIsUpper -- check for upper case ASCII character

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcIsUpper(FcChar8c);

Description

This macro checks whether c is a upper case ASCII letter.

fontconfig-2.11.1/doc/fontconfig-devel/fcconfigcreate.html0000664000076400007640000000504612313745373020526 00000000000000 FcConfigCreate

FcConfigCreate

Name

FcConfigCreate -- Create a configuration

Synopsis

#include <fontconfig/fontconfig.h>
	

FcConfig * FcConfigCreate(void);

Description

Creates an empty configuration.

fontconfig-2.11.1/doc/fontconfig-devel/fcfontsort.html0000664000076400007640000000762112313745374017755 00000000000000 FcFontSort

FcFontSort

Name

FcFontSort -- Return list of matching fonts

Synopsis

#include <fontconfig/fontconfig.h>
	

FcFontSet * FcFontSort(FcConfig *config, FcPattern *p, FcBool trim, FcCharSet **csp, FcResult *result);

Description

Returns the list of fonts sorted by closeness to p. If trim is FcTrue, elements in the list which don't include Unicode coverage not provided by earlier elements in the list are elided. The union of Unicode coverage of all of the fonts is returned in csp, if csp is not NULL. This function should be called only after FcConfigSubstitute and FcDefaultSubstitute have been called for p; otherwise the results will not be correct.

The returned FcFontSet references FcPattern structures which may be shared by the return value from multiple FcFontSort calls, applications must not modify these patterns. Instead, they should be passed, along with p to FcFontRenderPrepare which combines them into a complete pattern.

The FcFontSet returned by FcFontSort is destroyed by calling FcFontSetDestroy. If config is NULL, the current configuration is used.

fontconfig-2.11.1/doc/fontconfig-devel/fcstrsetequal.html0000664000076400007640000000544312313745374020453 00000000000000 FcStrSetEqual

FcStrSetEqual

Name

FcStrSetEqual -- check sets for equality

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcStrSetEqual(FcStrSet *set_a, FcStrSet *set_b);

Description

Returns whether set_a contains precisely the same strings as set_b. Ordering of strings within the two sets is not considered.

fontconfig-2.11.1/doc/fontconfig-devel/fcatomicnewfile.html0000664000076400007640000000525612313745374020727 00000000000000 FcAtomicNewFile

FcAtomicNewFile

Name

FcAtomicNewFile -- return new temporary file name

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar8 * FcAtomicNewFile(FcAtomic *atomic);

Description

Returns the filename for writing a new version of the file referenced by atomic.

fontconfig-2.11.1/doc/fontconfig-devel/fcatomiclock.html0000664000076400007640000000531412313745374020221 00000000000000 FcAtomicLock

FcAtomicLock

Name

FcAtomicLock -- lock a file

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcAtomicLock(FcAtomic *atomic);

Description

Attempts to lock the file referenced by atomic. Returns FcFalse if the file is already locked, else returns FcTrue and leaves the file locked.

fontconfig-2.11.1/doc/fontconfig-devel/fclangsetsubtract.html0000664000076400007640000000556712313745373021312 00000000000000 FcLangSetSubtract

FcLangSetSubtract

Name

FcLangSetSubtract -- Subtract langsets

Synopsis

#include <fontconfig/fontconfig.h>
	

FcLangSet * FcLangSetSubtract(const FcLangSet *ls_a, const FcLangSet *ls_b);

Description

Returns a set including only those languages found in ls_a but not in ls_b.

Since

version 2.9.0

fontconfig-2.11.1/doc/fontconfig-devel/fcconfiggetsysroot.html0000664000076400007640000000544112313745374021505 00000000000000 FcConfigGetSysRoot

FcConfigGetSysRoot

Name

FcConfigGetSysRoot -- Obtain the system root directory

Synopsis

#include <fontconfig/fontconfig.h>
	

const FcChar8 * FcConfigGetSysRoot(const FcConfig *config);

Description

Obtrains the system root directory in 'config' if available.

Since

version 2.10.92

fontconfig-2.11.1/doc/fontconfig-devel/fcfontsetlist.html0000664000076400007640000000623212313745373020451 00000000000000 FcFontSetList

FcFontSetList

Name

FcFontSetList -- List fonts from a set of font sets

Synopsis

#include <fontconfig/fontconfig.h>
	

FcFontSet * FcFontSetList(FcConfig *config, FcFontSet **sets, intnsets, FcPattern *pattern, FcObjectSet *object_set);

Description

Selects fonts matching pattern from sets, creates patterns from those fonts containing only the objects in object_set and returns the set of unique such patterns. If config is NULL, the default configuration is checked to be up to date, and used.

fontconfig-2.11.1/doc/fontconfig-devel/fcfontsetprint.html0000664000076400007640000000545412313745373020637 00000000000000 FcFontSetPrint

FcFontSetPrint

Name

FcFontSetPrint -- Print a set of patterns to stdout

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcFontSetPrint(FcFontSet *set);

Description

This function is useful for diagnosing font related issues, printing the complete contents of every pattern in set. The format of the output is designed to be of help to users and developers, and may change at any time.

fontconfig-2.11.1/doc/fontconfig-devel/fcconfiggetblanks.html0000664000076400007640000000570012313745374021233 00000000000000 FcConfigGetBlanks

FcConfigGetBlanks

Name

FcConfigGetBlanks -- Get config blanks

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBlanks * FcConfigGetBlanks(FcConfig *config);

Description

Returns the FcBlanks object associated with the given configuration, if no blanks were present in the configuration, this function will return 0. The returned FcBlanks object if not NULL, is valid as long as the owning FcConfig is alive. If config is NULL, the current configuration is used.

fontconfig-2.11.1/doc/fontconfig-devel/fcstrlistdone.html0000664000076400007640000000464412313745374020453 00000000000000 FcStrListDone

FcStrListDone

Name

FcStrListDone -- destroy a string iterator

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcStrListDone(FcStrList *list);

Description

Destroys the enumerator list.

fontconfig-2.11.1/doc/fontconfig-devel/fcstrcmp.html0000664000076400007640000000537112313745374017407 00000000000000 FcStrCmp

FcStrCmp

Name

FcStrCmp -- compare UTF-8 strings

Synopsis

#include <fontconfig/fontconfig.h>
	

int FcStrCmp(const FcChar8 *s1, const FcChar8 *s2);

Description

Returns the usual <0, 0, >0 result of comparing s1 and s2.

fontconfig-2.11.1/doc/fontconfig-devel/fccharsetequal.html0000664000076400007640000000537412313745373020562 00000000000000 FcCharSetEqual

FcCharSetEqual

Name

FcCharSetEqual -- Compare two charsets

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcCharSetEqual(const FcCharSet *a, const FcCharSet *b);

Description

Returns whether a and b contain the same set of Unicode chars.

fontconfig-2.11.1/doc/fontconfig-devel/fcstrlistnext.html0000664000076400007640000000517212313745374020501 00000000000000 FcStrListNext

FcStrListNext

Name

FcStrListNext -- get next string in iteration

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar8 * FcStrListNext(FcStrList *list);

Description

Returns the next string in list.

fontconfig-2.11.1/doc/fontconfig-devel/fcmatrixcopy.html0000664000076400007640000000521112313745373020266 00000000000000 FcMatrixCopy

FcMatrixCopy

Name

FcMatrixCopy -- Copy a matrix

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcMatrixCopy(const FcMatrix *matrix);

Description

FcMatrixCopy allocates a new FcMatrix and copies mat into it.

fontconfig-2.11.1/doc/fontconfig-devel/fcpatternremove.html0000664000076400007640000000547612313745373020777 00000000000000 FcPatternRemove

FcPatternRemove

Name

FcPatternRemove -- Remove one object of the specified type from the pattern

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcPatternRemove(FcPattern *p, const char *object, int id);

Description

Removes the value associated with the property `object' at position `id', returning whether the property existed and had a value at that position or not.

fontconfig-2.11.1/doc/fontconfig-devel/fclangsethaslang.html0000664000076400007640000000627412313745373021074 00000000000000 FcLangSetHasLang

FcLangSetHasLang

Name

FcLangSetHasLang -- test langset for language support

Synopsis

#include <fontconfig/fontconfig.h>
	

FcLangResult FcLangSetHasLang(const FcLangSet *ls, const FcChar8 *lang);

Description

FcLangSetHasLang checks whether ls supports lang. If ls has a matching language and territory pair, this function returns FcLangEqual. If ls has a matching language but differs in which territory that language is for, this function returns FcLangDifferentTerritory. If ls has no matching language, this function returns FcLangDifferentLang.

fontconfig-2.11.1/doc/fontconfig-devel/fcobjectsetcreate.html0000664000076400007640000000504012313745373021235 00000000000000 FcObjectSetCreate

FcObjectSetCreate

Name

FcObjectSetCreate -- Create an object set

Synopsis

#include <fontconfig/fontconfig.h>
	

FcObjectSet * FcObjectSetCreate(void);

Description

Creates an empty set.

fontconfig-2.11.1/doc/fontconfig-devel/fcconfigsetcurrent.html0000664000076400007640000000541312313745373021457 00000000000000 FcConfigSetCurrent

FcConfigSetCurrent

Name

FcConfigSetCurrent -- Set configuration as default

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcConfigSetCurrent(FcConfig *config);

Description

Sets the current default configuration to config. Implicitly calls FcConfigBuildFonts if necessary, returning FcFalse if that call fails.

fontconfig-2.11.1/doc/fontconfig-devel/fcfreetypecharindex.html0000664000076400007640000000567312313745373021614 00000000000000 FcFreeTypeCharIndex

FcFreeTypeCharIndex

Name

FcFreeTypeCharIndex -- map Unicode to glyph id

Synopsis

#include <fontconfig.h>
#include <fcfreetype.h>
	

FT_UInt FcFreeTypeCharIndex(FT_Face face, FcChar32 ucs4);

Description

Maps a Unicode char to a glyph index. This function uses information from several possible underlying encoding tables to work around broken fonts. As a result, this function isn't designed to be used in performance sensitive areas; results from this function are intended to be cached by higher level functions.

fontconfig-2.11.1/doc/fontconfig-devel/fcpatternget-type.html0000664000076400007640000001241112313745373021223 00000000000000 FcPatternGet-Type

FcPatternGet-Type

Name

FcPatternGetInteger, FcPatternGetDouble, FcPatternGetString, FcPatternGetMatrix, FcPatternGetCharSet, FcPatternGetBool, FcPatternGetFTFace, FcPatternGetLangSet -- Return a typed value from a pattern

Synopsis

#include <fontconfig/fontconfig.h>
	

FcResult FcPatternGetInteger(FcPattern *p, const char *object, int n, int *i);

FcResult FcPatternGetDouble(FcPattern *p, const char *object, int n, double *d);

FcResult FcPatternGetString(FcPattern *p, const char *object, int n, FcChar8 **s);

FcResult FcPatternGetMatrix(FcPattern *p, const char *object, int n, FcMatrix **s);

FcResult FcPatternGetCharSet(FcPattern *p, const char *object, int n, FcCharSet **c);

FcResult FcPatternGetBool(FcPattern *p, const char *object, int n, FcBool *b);

FcResult FcPatternGetFTFace(FcPattern *p, const char *object, int n);

FcResult FcPatternGetLangSet(FcPattern *p, const char *object, FT_Face *f);

Description

These are convenience functions that call FcPatternGet and verify that the returned data is of the expected type. They return FcResultTypeMismatch if this is not the case. Note that these (like FcPatternGet) do not make a copy of any data structure referenced by the return value. Use these in preference to FcPatternGet to provide compile-time typechecking.

fontconfig-2.11.1/doc/fontconfig-devel/fcblankscreate.html0000664000076400007640000000503212313745374020527 00000000000000 FcBlanksCreate

FcBlanksCreate

Name

FcBlanksCreate -- Create an FcBlanks

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBlanks * FcBlanksCreate(void);

Description

Creates an empty FcBlanks object.

fontconfig-2.11.1/doc/fontconfig-devel/fcconfigappfontadddir.html0000664000076400007640000000600612313745374022100 00000000000000 FcConfigAppFontAddDir

FcConfigAppFontAddDir

Name

FcConfigAppFontAddDir -- Add fonts from directory to font database

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcConfigAppFontAddDir(FcConfig *config, const FcChar8 *dir);

Description

Scans the specified directory for fonts, adding each one found to the application-specific set of fonts. Returns FcFalse if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue. If config is NULL, the current configuration is used.

fontconfig-2.11.1/doc/fontconfig-devel/fcfini.html0000664000076400007640000000525112313745373017020 00000000000000 FcFini

FcFini

Name

FcFini -- finalize fontconfig library

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcFini(void);

Description

Frees all data structures allocated by previous calls to fontconfig functions. Fontconfig returns to an uninitialized state, requiring a new call to one of the FcInit functions before any other fontconfig function may be called.

fontconfig-2.11.1/doc/fontconfig-devel/fcfreetypecharsetandspacing.html0000664000076400007640000000656612313745373023332 00000000000000 FcFreeTypeCharSetAndSpacing

FcFreeTypeCharSetAndSpacing

Name

FcFreeTypeCharSetAndSpacing -- compute Unicode coverage and spacing type

Synopsis

#include <fontconfig.h>
#include <fcfreetype.h>
	

FcCharSet * FcFreeTypeCharSetAndSpacing(FT_Face face, FcBlanks *blanks, int *spacing);

Description

Scans a FreeType face and returns the set of encoded Unicode chars. This scans several encoding tables to build as complete a list as possible. If 'blanks' is not 0, the glyphs in the font are examined and any blank glyphs not in 'blanks' are not placed in the returned FcCharSet. spacing receives the computed spacing type of the font, one of FC_MONO for a font where all glyphs have the same width, FC_DUAL, where the font has glyphs in precisely two widths, one twice as wide as the other, or FC_PROPORTIONAL where the font has glyphs of many widths.

fontconfig-2.11.1/doc/fontconfig-devel/fcnameconstant.html0000664000076400007640000000516612313745374020573 00000000000000 FcNameConstant

FcNameConstant

Name

FcNameConstant -- Get the value for a symbolic constant

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcNameConstant(FcChar8 *string, int *result);

Description

Returns whether a symbolic constant with name string is registered, placing the value of the constant in result if present.

fontconfig-2.11.1/doc/fontconfig-devel/fcstrcopyfilename.html0000664000076400007640000000620012313745374021273 00000000000000 FcStrCopyFilename

FcStrCopyFilename

Name

FcStrCopyFilename -- create a complete path from a filename

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar8 * FcStrCopyFilename(const FcChar8 *s);

Description

FcStrCopyFilename constructs an absolute pathname from s. It converts any leading '~' characters in to the value of the HOME environment variable, and any relative paths are converted to absolute paths using the current working directory. Sequences of '/' characters are converted to a single '/', and names containing the current directory '.' or parent directory '..' are correctly reconstructed. Returns NULL if '~' is the leading character and HOME is unset or disabled (see FcConfigEnableHome).

fontconfig-2.11.1/doc/fontconfig-devel/fccachenumfont.html0000664000076400007640000000532012313745374020543 00000000000000 FcCacheNumFont

FcCacheNumFont

Name

FcCacheNumFont -- Returns the number of fonts in cache.

Synopsis

#include <fontconfig/fontconfig.h>
	

int FcCacheNumFont(const FcCache *cache);

Description

This returns the number of fonts which would be included in the return from FcCacheCopySet.

fontconfig-2.11.1/doc/fontconfig-devel/fcdircacheloadfile.html0000664000076400007640000000557312313745374021345 00000000000000 FcDirCacheLoadFile

FcDirCacheLoadFile

Name

FcDirCacheLoadFile -- load a cache file

Synopsis

#include <fontconfig/fontconfig.h>
	

FcCache * FcDirCacheLoadFile(const FcChar8 *cache_file, struct stat *file_stat);

Description

This function loads a directory cache from cache_file. If file_stat is non-NULL, it will be filled with the results of stat(2) on the cache file.

fontconfig-2.11.1/doc/fontconfig-devel/fcmatrixequal.html0000664000076400007640000000547312313745373020435 00000000000000 FcMatrixEqual

FcMatrixEqual

Name

FcMatrixEqual -- Compare two matrices

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcMatrixEqual(const FcMatrix *matrix1, const FcMatrix *matrix2);

Description

FcMatrixEqual compares matrix1 and matrix2 returning FcTrue when they are equal and FcFalse when they are not.

fontconfig-2.11.1/doc/fontconfig-devel/fclangsetcopy.html0000664000076400007640000000530312313745373020421 00000000000000 FcLangSetCopy

FcLangSetCopy

Name

FcLangSetCopy -- copy a langset object

Synopsis

#include <fontconfig/fontconfig.h>
	

FcLangSet * FcLangSetCopy(const FcLangSet *ls);

Description

FcLangSetCopy creates a new FcLangSet object and populates it with the contents of ls.

fontconfig-2.11.1/doc/fontconfig-devel/fcconfighome.html0000664000076400007640000000534612313745374020217 00000000000000 FcConfigHome

FcConfigHome

Name

FcConfigHome -- return the current home directory.

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar8 * FcConfigHome(void);

Description

Return the current user's home directory, if it is available, and if using it is enabled, and NULL otherwise. See also FcConfigEnableHome).

fontconfig-2.11.1/doc/fontconfig-devel/fcpatternduplicate.html0000664000076400007640000000534612313745373021450 00000000000000 FcPatternDuplicate

FcPatternDuplicate

Name

FcPatternDuplicate -- Copy a pattern

Synopsis

#include <fontconfig/fontconfig.h>
	

FcPattern * FcPatternDuplicate(const FcPattern *p);

Description

Copy a pattern, returning a new pattern that matches p. Each pattern may be modified without affecting the other.

fontconfig-2.11.1/doc/fontconfig-devel/fccharsetissubset.html0000664000076400007640000000544312313745373021311 00000000000000 FcCharSetIsSubset

FcCharSetIsSubset

Name

FcCharSetIsSubset -- Test for charset inclusion

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcCharSetIsSubset(const FcCharSet *a, const FcCharSet *b);

Description

Returns whether a is a subset of b.

fontconfig-2.11.1/doc/fontconfig-devel/x31.html0000664000076400007640000002625412313745373016203 00000000000000 Datatypes

Datatypes

Fontconfig uses abstract data types to hide internal implementation details for most data structures. A few structures are exposed where appropriate.

FcChar8, FcChar16, FcChar32, FcBool

These are primitive data types; the FcChar* types hold precisely the number of bits stated (if supported by the C implementation). FcBool holds one of two C preprocessor symbols: FcFalse or FcTrue.

FcMatrix

An FcMatrix holds an affine transformation, usually used to reshape glyphs. A small set of matrix operations are provided to manipulate these.
        typedef struct _FcMatrix {
                double xx, xy, yx, yy;
        } FcMatrix;
    

FcCharSet

An FcCharSet is an abstract type that holds the set of encoded Unicode chars in a font. Operations to build and compare these sets are provided.

FcLangSet

An FcLangSet is an abstract type that holds the set of languages supported by a font. Operations to build and compare these sets are provided. These are computed for a font based on orthographic information built into the fontconfig library. Fontconfig has orthographies for all of the ISO 639-1 languages except for MS, NA, PA, PS, QU, RN, RW, SD, SG, SN, SU and ZA. If you have orthographic information for any of these languages, please submit them.

FcLangResult

An FcLangResult is an enumeration used to return the results of comparing two language strings or FcLangSet objects. FcLangEqual means the objects match language and territory. FcLangDifferentTerritory means the objects match in language but differ in territory. FcLangDifferentLang means the objects differ in language.

FcType

Tags the kind of data stored in an FcValue.

FcValue

An FcValue object holds a single value with one of a number of different types. The 'type' tag indicates which member is valid.
        typedef struct _FcValue {
                FcType type;
                union {
                        const FcChar8 *s;
                        int i;
                        FcBool b;
                        double d;
                        const FcMatrix *m;
                        const FcCharSet *c;
			void *f;
			const FcLangSet *l;
                } u;
        } FcValue;
    
                  FcValue Members

        Type            Union member    Datatype
        --------------------------------
        FcTypeVoid      (none)          (none)
        FcTypeInteger   i               int
        FcTypeDouble    d               double
        FcTypeString    s               FcChar8 *
        FcTypeBool      b               b
        FcTypeMatrix    m               FcMatrix *
        FcTypeCharSet   c               FcCharSet *
	FcTypeFTFace	f		void * (FT_Face)
	FcTypeLangSet	l		FcLangSet *
    

FcPattern

holds a set of names with associated value lists; each name refers to a property of a font. FcPatterns are used as inputs to the matching code as well as holding information about specific fonts. Each property can hold one or more values; conventionally all of the same type, although the interface doesn't demand that.

FcFontSet

        typedef struct _FcFontSet {
                int nfont;
                int sfont;
                FcPattern **fonts;
        } FcFontSet;
    
An FcFontSet contains a list of FcPatterns. Internally fontconfig uses this data structure to hold sets of fonts. Externally, fontconfig returns the results of listing fonts in this format. 'nfont' holds the number of patterns in the 'fonts' array; 'sfont' is used to indicate the size of that array.

FcStrSet, FcStrList

FcStrSet holds a list of strings that can be appended to and enumerated. Its unique characteristic is that the enumeration works even while strings are appended during enumeration. FcStrList is used during enumeration to safely and correctly walk the list of strings even while that list is edited in the middle of enumeration.

FcObjectSet

        typedef struct _FcObjectSet {
                int nobject;
                int sobject;
                const char **objects;
        } FcObjectSet;
      
holds a set of names and is used to specify which fields from fonts are placed in the the list of returned patterns when listing fonts.

FcObjectType

        typedef struct _FcObjectType {
                const char *object;
                FcType type;
        } FcObjectType;
      
marks the type of a pattern element generated when parsing font names. Applications can add new object types so that font names may contain the new elements.

FcConstant

        typedef struct _FcConstant {
            const FcChar8 *name;
            const char *object;
            int value;
        } FcConstant;
      
Provides for symbolic constants for new pattern elements. When 'name' is seen in a font name, an 'object' element is created with value 'value'.

FcBlanks

holds a list of Unicode chars which are expected to be blank; unexpectedly blank chars are assumed to be invalid and are elided from the charset associated with the font.

FcFileCache

holds the per-user cache information for use while loading the font database. This is built automatically for the current configuration when that is loaded. Applications must always pass '0' when one is requested.

FcConfig

holds a complete configuration of the library; there is one default configuration, other can be constructed from XML data structures. All public entry points that need global data can take an optional FcConfig* argument; passing 0 uses the default configuration. FcConfig objects hold two sets of fonts, the first contains those specified by the configuration, the second set holds those added by the application at run-time. Interfaces that need to reference a particular set use one of the FcSetName enumerated values.

FcSetName

Specifies one of the two sets of fonts available in a configuration; FcSetSystem for those fonts specified in the configuration and FcSetApplication which holds fonts provided by the application.

FcResult

Used as a return type for functions manipulating FcPattern objects.
      FcResult Values
        Result Code             Meaning
        -----------------------------------------------------------
        FcResultMatch           Object exists with the specified ID
        FcResultNoMatch         Object doesn't exist at all
        FcResultTypeMismatch    Object exists, but the type doesn't match
        FcResultNoId            Object exists, but has fewer values
                                than specified
        FcResultOutOfMemory     malloc failed
    

FcAtomic

Used for locking access to configuration files. Provides a safe way to update configuration files.

FcCache

Holds information about the fonts contained in a single directory. Normal applications need not worry about this as caches for font access are automatically managed by the library. Applications dealing with cache management may want to use some of these objects in their work, however the included 'fc-cache' program generally suffices for all of that.

fontconfig-2.11.1/doc/fontconfig-devel/fcstrdirname.html0000664000076400007640000000527012313745374020245 00000000000000 FcStrDirname

FcStrDirname

Name

FcStrDirname -- directory part of filename

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar8 * FcStrDirname(const FcChar8 *file);

Description

Returns the directory containing file. This is returned in newly allocated storage which should be freed when no longer needed.

fontconfig-2.11.1/doc/fontconfig-devel/fctolower.html0000664000076400007640000000513712313745374017572 00000000000000 FcToLower

FcToLower

Name

FcToLower -- convert upper case ASCII to lower case

Synopsis

#include <fontconfig/fontconfig.h>
	

FcChar8 FcToLower(FcChar8c);

Description

This macro converts upper case ASCII c to the equivalent lower case letter.

fontconfig-2.11.1/doc/fontconfig-devel/fcdirsave.html0000664000076400007640000000604412313745374017532 00000000000000 FcDirSave

FcDirSave

Name

FcDirSave -- DEPRECATED: formerly used to save a directory cache

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcDirSave(FcFontSet *set, FcStrSet *dirs, const FcChar8 *dir);

Description

This function now does nothing aside from returning FcFalse. It used to creates the per-directory cache file for dir and populates it with the fonts in set and subdirectories in dirs. All of this functionality is now automatically managed by FcDirCacheLoad and FcDirCacheRead.

fontconfig-2.11.1/doc/fontconfig-devel/fcconfigsubstitutewithpat.html0000664000076400007640000000654012313745374023100 00000000000000 FcConfigSubstituteWithPat

FcConfigSubstituteWithPat

Name

FcConfigSubstituteWithPat -- Execute substitutions

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcConfigSubstituteWithPat(FcConfig *config, FcPattern *p, FcPattern *p_pat, FcMatchKind kind);

Description

Performs the sequence of pattern modification operations, if kind is FcMatchPattern, then those tagged as pattern operations are applied, else if kind is FcMatchFont, those tagged as font operations are applied and p_pat is used for <test> elements with target=pattern. Returns FcFalse if the substitution cannot be performed (due to allocation failure). Otherwise returns FcTrue. If config is NULL, the current configuration is used.

fontconfig-2.11.1/doc/fontconfig-devel/fcconfigparseandload.html0000664000076400007640000000623212313745374021717 00000000000000 FcConfigParseAndLoad

FcConfigParseAndLoad

Name

FcConfigParseAndLoad -- load a configuration file

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcConfigParseAndLoad(FcConfig *config, const FcChar8 *file, FcBool complain);

Description

Walks the configuration in 'file' and constructs the internal representation in 'config'. Any include files referenced from within 'file' will be loaded and parsed. If 'complain' is FcFalse, no warning will be displayed if 'file' does not exist. Error and warning messages will be output to stderr. Returns FcFalse if some error occurred while loading the file, either a parse error, semantic error or allocation failure. Otherwise returns FcTrue.

fontconfig-2.11.1/doc/fontconfig-devel/fcfontsetsort.html0000664000076400007640000000775612313745373020501 00000000000000 FcFontSetSort

FcFontSetSort

Name

FcFontSetSort -- Add to a font set

Synopsis

#include <fontconfig/fontconfig.h>
	

FcFontSetSort(FcConfig *config, FcFontSet **sets, intnsets, FcPattern *pattern, FcBool trim, FcCharSet **csp, FcResult *result);

Description

Returns the list of fonts from sets sorted by closeness to pattern. If trim is FcTrue, elements in the list which don't include Unicode coverage not provided by earlier elements in the list are elided. The union of Unicode coverage of all of the fonts is returned in csp, if csp is not NULL. This function should be called only after FcConfigSubstitute and FcDefaultSubstitute have been called for p; otherwise the results will not be correct.

The returned FcFontSet references FcPattern structures which may be shared by the return value from multiple FcFontSort calls, applications cannot modify these patterns. Instead, they should be passed, along with pattern to FcFontRenderPrepare which combines them into a complete pattern.

The FcFontSet returned by FcFontSetSort is destroyed by calling FcFontSetDestroy.

fontconfig-2.11.1/doc/fontconfig-devel/fcatomiccreate.html0000664000076400007640000000552212313745374020535 00000000000000 FcAtomicCreate

FcAtomicCreate

Name

FcAtomicCreate -- create an FcAtomic object

Synopsis

#include <fontconfig/fontconfig.h>
	

FcAtomic * FcAtomicCreate(const FcChar8 *file);

Description

Creates a data structure containing data needed to control access to file. Writing is done to a separate file. Once that file is complete, the original configuration file is atomically replaced so that reading process always see a consistent and complete file without the need to lock for reading.

fontconfig-2.11.1/doc/fontconfig-devel/x19.html0000664000076400007640000002147112313745373016205 00000000000000 FUNCTIONAL OVERVIEW

FUNCTIONAL OVERVIEW

Fontconfig contains two essential modules, the configuration module which builds an internal configuration from XML files and the matching module which accepts font patterns and returns the nearest matching font.

FONT CONFIGURATION

The configuration module consists of the FcConfig datatype, libexpat and FcConfigParse which walks over an XML tree and amends a configuration with data found within. From an external perspective, configuration of the library consists of generating a valid XML tree and feeding that to FcConfigParse. The only other mechanism provided to applications for changing the running configuration is to add fonts and directories to the list of application-provided font files.

The intent is to make font configurations relatively static, and shared by as many applications as possible. It is hoped that this will lead to more stable font selection when passing names from one application to another. XML was chosen as a configuration file format because it provides a format which is easy for external agents to edit while retaining the correct structure and syntax.

Font configuration is separate from font matching; applications needing to do their own matching can access the available fonts from the library and perform private matching. The intent is to permit applications to pick and choose appropriate functionality from the library instead of forcing them to choose between this library and a private configuration mechanism. The hope is that this will ensure that configuration of fonts for all applications can be centralized in one place. Centralizing font configuration will simplify and regularize font installation and customization.

FONT PROPERTIES

While font patterns may contain essentially any properties, there are some well known properties with associated types. Fontconfig uses some of these properties for font matching and font completion. Others are provided as a convenience for the application's rendering mechanism.

                 Property Definitions

    Property       C Preprocessor Symbol  Type    Description
    ----------------------------------------------------
    family         FC_FAMILY              String  Font family names
    familylang     FC_FAMILYLANG          String  Language corresponding to
                                                  each family name
    style          FC_STYLE               String  Font style. Overrides weight
                                                  and slant
    stylelang      FC_STYLELANG           String  Language corresponding to
                                                  each style name
    fullname       FC_FULLNAME            String  Font face full name where
                                                  different from family and
                                                  family + style
    fullnamelang   FC_FULLNAMELANG        String  Language corresponding to
                                                  each fullname
    slant          FC_SLANT               Int     Italic, oblique or roman
    weight         FC_WEIGHT              Int     Light, medium, demibold,
                                                  bold or black
    size           FC_SIZE                Double  Point size
    width          FC_WIDTH               Int     Condensed, normal or expanded
    aspect         FC_ASPECT              Double  Stretches glyphs horizontally
                                                  before hinting
    pixelsize      FC_PIXEL_SIZE          Double  Pixel size
    spacing        FC_SPACING             Int     Proportional, dual-width,
                                                  monospace or charcell
    foundry        FC_FOUNDRY             String  Font foundry name
    antialias      FC_ANTIALIAS           Bool    Whether glyphs can be
                                                  antialiased
    hinting        FC_HINTING             Bool    Whether the rasterizer should
                                                  use hinting
    hintstyle      FC_HINT_STYLE          Int     Automatic hinting style
    verticallayout FC_VERTICAL_LAYOUT     Bool    Use vertical layout
    autohint       FC_AUTOHINT            Bool    Use autohinter instead of
                                                  normal hinter
    globaladvance  FC_GLOBAL_ADVANCE      Bool    Use font global advance data (deprecated)
    file           FC_FILE                String  The filename holding the font
    index          FC_INDEX               Int     The index of the font within
                                                  the file
    ftface         FC_FT_FACE             FT_Face Use the specified FreeType
                                                  face object
    rasterizer     FC_RASTERIZER          String  Which rasterizer is in use (deprecated)
    outline        FC_OUTLINE             Bool    Whether the glyphs are outlines
    scalable       FC_SCALABLE            Bool    Whether glyphs can be scaled
    scale          FC_SCALE               Double  Scale factor for point->pixel
                                                  conversions
    dpi            FC_DPI                 Double  Target dots per inch
    rgba           FC_RGBA                Int     unknown, rgb, bgr, vrgb,
                                                  vbgr, none - subpixel geometry
    lcdfilter      FC_LCD_FILTER          Int     Type of LCD filter
    minspace       FC_MINSPACE            Bool    Eliminate leading from line
                                                  spacing
    charset        FC_CHARSET             CharSet Unicode chars encoded by
                                                  the font
    lang           FC_LANG                LangSet Set of RFC-3066-style
                                                  languages this font supports
    fontversion    FC_FONTVERSION         Int     Version number of the font
    capability     FC_CAPABILITY          String  List of layout capabilities in
                                                  the font
    embolden       FC_EMBOLDEN            Bool    Rasterizer should
                                                  synthetically embolden the font
    fontfeatures   FC_FONT_FEATURES       String  List of extra feature tags in
                                                  OpenType to be enabled
    namelang       FC_NAMELANG            String  Language name to be used for the
                                                  default value of familylang,
                                                  stylelang and fullnamelang
    prgname        FC_PRGNAME             String  Name of the running program
    hash           FC_HASH                String  SHA256 hash value of the font data
                                                  with "sha256:" prefix.
    postscriptname FC_POSTSCRIPT_NAME     String  Font name in PostScript
    
fontconfig-2.11.1/doc/fontconfig-devel/fccharsethaschar.html0000664000076400007640000000534712313745373021064 00000000000000 FcCharSetHasChar

FcCharSetHasChar

Name

FcCharSetHasChar -- Check a charset for a char

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcCharSetHasChar(const FcCharSet *fcs, FcChar32 ucs4);

Description

Returns whether fcs contains the char ucs4.

fontconfig-2.11.1/doc/fontconfig-devel/fcfontmatch.html0000664000076400007640000000631012313745374020054 00000000000000 FcFontMatch

FcFontMatch

Name

FcFontMatch -- Return best font

Synopsis

#include <fontconfig/fontconfig.h>
	

FcPattern * FcFontMatch(FcConfig *config, FcPattern *p, FcResult *result);

Description

Finds the font in sets most closely matching pattern and returns the result of FcFontRenderPrepare for that font and the provided pattern. This function should be called only after FcConfigSubstitute and FcDefaultSubstitute have been called for p; otherwise the results will not be correct. If config is NULL, the current configuration is used.

fontconfig-2.11.1/doc/fontconfig-devel/fccharsetintersect.html0000664000076400007640000000540512313745373021446 00000000000000 FcCharSetIntersect

FcCharSetIntersect

Name

FcCharSetIntersect -- Intersect charsets

Synopsis

#include <fontconfig/fontconfig.h>
	

FcCharSet * FcCharSetIntersect(const FcCharSet *a, const FcCharSet *b);

Description

Returns a set including only those chars found in both a and b.

fontconfig-2.11.1/doc/fontconfig-devel/fcpatternget.html0000664000076400007640000000602512313745373020250 00000000000000 FcPatternGet

FcPatternGet

Name

FcPatternGet -- Return a value from a pattern

Synopsis

#include <fontconfig/fontconfig.h>
	

FcResult FcPatternGet(FcPattern *p, const char *object, int id, FcValue *v);

Description

Returns in v the id'th value associated with the property object. The value returned is not a copy, but rather refers to the data stored within the pattern directly. Applications must not free this value.

fontconfig-2.11.1/doc/fontconfig-devel/fcconfigbuildfonts.html0000664000076400007640000000563012313745374021434 00000000000000 FcConfigBuildFonts

FcConfigBuildFonts

Name

FcConfigBuildFonts -- Build font database

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcConfigBuildFonts(FcConfig *config);

Description

Builds the set of available fonts for the given configuration. Note that any changes to the configuration after this call have indeterminate effects. Returns FcFalse if this operation runs out of memory. If config is NULL, the current configuration is used.

fontconfig-2.11.1/doc/fontconfig-devel/fcfontrenderprepare.html0000664000076400007640000000621712313745374021624 00000000000000 FcFontRenderPrepare

FcFontRenderPrepare

Name

FcFontRenderPrepare -- Prepare pattern for loading font file

Synopsis

#include <fontconfig/fontconfig.h>
	

FcPattern * FcFontRenderPrepare(FcConfig *config, FcPattern *pat, FcPattern *font);

Description

Creates a new pattern consisting of elements of font not appearing in pat, elements of pat not appearing in font and the best matching value from pat for elements appearing in both. The result is passed to FcConfigSubstituteWithPat with kind FcMatchFont and then returned.

fontconfig-2.11.1/doc/fontconfig-devel/fccachecopyset.html0000664000076400007640000000541612313745374020551 00000000000000 FcCacheCopySet

FcCacheCopySet

Name

FcCacheCopySet -- Returns a copy of the fontset from cache

Synopsis

#include <fontconfig/fontconfig.h>
	

FcFontSet * FcCacheCopySet(const FcCache *cache);

Description

The returned fontset contains each of the font patterns from cache. This fontset may be modified, but the patterns from the cache are read-only.

fontconfig-2.11.1/doc/fontconfig-devel/fcfontsetmatch.html0000664000076400007640000000663012313745373020574 00000000000000 FcFontSetMatch

FcFontSetMatch

Name

FcFontSetMatch -- Return the best font from a set of font sets

Synopsis

#include <fontconfig/fontconfig.h>
	

FcPattern * FcFontSetMatch(FcConfig *config, FcFontSet **sets, intnsets, FcPattern *pattern, FcResult *result);

Description

Finds the font in sets most closely matching pattern and returns the result of FcFontRenderPrepare for that font and the provided pattern. This function should be called only after FcConfigSubstitute and FcDefaultSubstitute have been called for pattern; otherwise the results will not be correct. If config is NULL, the current configuration is used. Returns NULL if an error occurs during this process.

fontconfig-2.11.1/doc/fontconfig-devel/fclangsetcreate.html0000664000076400007640000000512512313745373020714 00000000000000 FcLangSetCreate

FcLangSetCreate

Name

FcLangSetCreate -- create a langset object

Synopsis

#include <fontconfig/fontconfig.h>
	

FcLangSet * FcLangSetCreate(void);

Description

FcLangSetCreate creates a new FcLangSet object.

fontconfig-2.11.1/doc/fontconfig-devel/fcobjectsetadd.html0000664000076400007640000000544112313745373020527 00000000000000 FcObjectSetAdd

FcObjectSetAdd

Name

FcObjectSetAdd -- Add to an object set

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcObjectSetAdd(FcObjectSet *os, const char *object);

Description

Adds a property name to the set. Returns FcFalse if the property name cannot be inserted into the set (due to allocation failure). Otherwise returns FcTrue.

fontconfig-2.11.1/doc/fontconfig-devel/fcblanksadd.html0000664000076400007640000000530312313745374020015 00000000000000 FcBlanksAdd

FcBlanksAdd

Name

FcBlanksAdd -- Add a character to an FcBlanks

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcBlanksAdd(FcBlanks *b, FcChar32 ucs4);

Description

Adds a single character to an FcBlanks object, returning FcFalse if this process ran out of memory.

fontconfig-2.11.1/doc/fontconfig-devel/fcfilescan.html0000664000076400007640000000713012313745374017656 00000000000000 FcFileScan

FcFileScan

Name

FcFileScan -- scan a font file

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcFileScan(FcFontSet *set, FcStrSet *dirs, FcFileCache *cache, FcBlanks *blanks, const FcChar8 *file, FcBool force);

Description

Scans a single file and adds all fonts found to set. If force is FcTrue, then the file is scanned even if associated information is found in cache. If file is a directory, it is added to dirs. Whether fonts are found depends on fontconfig policy as well as the current configuration. Internally, fontconfig will ignore BDF and PCF fonts which are not in Unicode (or the effectively equivalent ISO Latin-1) encoding as those are not usable by Unicode-based applications. The configuration can ignore fonts based on filename or contents of the font file itself. Returns FcFalse if any of the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue.

fontconfig-2.11.1/doc/fontconfig-devel/fcblanksdestroy.html0000664000076400007640000000512012313745374020753 00000000000000 FcBlanksDestroy

FcBlanksDestroy

Name

FcBlanksDestroy -- Destroy and FcBlanks

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcBlanksDestroy(FcBlanks *b);

Description

Destroys an FcBlanks object, freeing any associated memory.

fontconfig-2.11.1/doc/fontconfig-devel/fcinitreinitialize.html0000664000076400007640000000554312313745373021453 00000000000000 FcInitReinitialize

FcInitReinitialize

Name

FcInitReinitialize -- re-initialize library

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcInitReinitialize(void);

Description

Forces the default configuration file to be reloaded and resets the default configuration. Returns FcFalse if the configuration cannot be reloaded (due to configuration file errors, allocation failures or other issues) and leaves the existing configuration unchanged. Otherwise returns FcTrue.

fontconfig-2.11.1/doc/fontconfig-devel/fcdircacheload.html0000664000076400007640000000567112313745374020504 00000000000000 FcDirCacheLoad

FcDirCacheLoad

Name

FcDirCacheLoad -- load a directory cache

Synopsis

#include <fontconfig/fontconfig.h>
	

FcCache * FcDirCacheLoad(const FcChar8 *dir, FcConfig *config, FcChar8 **cache_file);

Description

Loads the cache related to dir. If no cache file exists, returns NULL. The name of the cache file is returned in cache_file, unless that is NULL. See also FcDirCacheRead.

fontconfig-2.11.1/doc/fontconfig-devel/fccharsetcopy.html0000664000076400007640000000534512313745373020423 00000000000000 FcCharSetCopy

FcCharSetCopy

Name

FcCharSetCopy -- Copy a charset

Synopsis

#include <fontconfig/fontconfig.h>
	

FcCharSet * FcCharSetCopy(FcCharSet *src);

Description

Makes a copy of src; note that this may not actually do anything more than increment the reference count on src.

fontconfig-2.11.1/doc/fontconfig-devel/fcnamegetconstant.html0000664000076400007640000000534712313745374021274 00000000000000 FcNameGetConstant

FcNameGetConstant

Name

FcNameGetConstant -- Lookup symbolic constant

Synopsis

#include <fontconfig/fontconfig.h>
	

const FcConstant * FcNameGetConstant(FcChar8 *string);

Description

Return the FcConstant structure related to symbolic constant string.

fontconfig-2.11.1/doc/fontconfig-devel/fcpatternaddweak.html0000664000076400007640000000567012313745373021076 00000000000000 FcPatternAddWeak

FcPatternAddWeak

Name

FcPatternAddWeak -- Add a value to a pattern with weak binding

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcPatternAddWeak(FcPattern *p, const char *object, FcValue value, FcBool append);

Description

FcPatternAddWeak is essentially the same as FcPatternAdd except that any values added to the list have binding weak instead of strong.

fontconfig-2.11.1/doc/fontconfig-devel/fccharsetaddchar.html0000664000076400007640000000546512313745373021042 00000000000000 FcCharSetAddChar

FcCharSetAddChar

Name

FcCharSetAddChar -- Add a character to a charset

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcCharSetAddChar(FcCharSet *fcs, FcChar32 ucs4);

Description

FcCharSetAddChar adds a single Unicode char to the set, returning FcFalse on failure, either as a result of a constant set or from running out of memory.

fontconfig-2.11.1/doc/fontconfig-devel/fcnameparse.html0000664000076400007640000000524112313745373020045 00000000000000 FcNameParse

FcNameParse

Name

FcNameParse -- Parse a pattern string

Synopsis

#include <fontconfig/fontconfig.h>
	

FcPattern * FcNameParse(const FcChar8 *name);

Description

Converts name from the standard text format described above into a pattern.

fontconfig-2.11.1/doc/fontconfig-devel/fcdircacheunload.html0000664000076400007640000000505112313745374021037 00000000000000 FcDirCacheUnload

FcDirCacheUnload

Name

FcDirCacheUnload -- unload a cache file

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcDirCacheUnload(FcCache *cache);

Description

This function dereferences cache. When no other references to it remain, all memory associated with the cache will be freed.

fontconfig-2.11.1/doc/fontconfig-devel/fcutf16len.html0000664000076400007640000000643412313745374017544 00000000000000 FcUtf16Len

FcUtf16Len

Name

FcUtf16Len -- count UTF-16 encoded chars

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcUtf16Len(FcChar8 *src, FcEndian endian, int len, int *nchar, int *wchar);

Description

Counts the number of Unicode chars in len bytes of src. Bytes of src are combined into 16-bit units according to endian. Places that count in nchar. wchar contains 1, 2 or 4 depending on the number of bytes needed to hold the largest Unicode char counted. The return value indicates whether string is a well-formed UTF16 string.

fontconfig-2.11.1/doc/fontconfig-devel/fccharsetmerge.html0000664000076400007640000000622412313745373020545 00000000000000 FcCharSetMerge

FcCharSetMerge

Name

FcCharSetMerge -- Merge charsets

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcCharSetMerge(FcCharSet *a, const FcCharSet *b, FcBool *changed);

Description

Adds all chars in b to a. In other words, this is an in-place version of FcCharSetUnion. If changed is not NULL, then it returns whether any new chars from b were added to a. Returns FcFalse on failure, either when a is a constant set or from running out of memory.

fontconfig-2.11.1/doc/fontconfig-devel/fcgetdefaultlangs.html0000664000076400007640000000567612313745373021257 00000000000000 FcGetDefaultLangs

FcGetDefaultLangs

Name

FcGetDefaultLangs -- Get the default languages list

Synopsis

#include <fontconfig/fontconfig.h>
	

FcStrSet * FcGetDefaultLangs(void);

Description

Returns a string set of the default languages according to the environment variables on the system. This function looks for them in order of FC_LANG, LC_ALL, LC_CTYPE and LANG then. If there are no valid values in those environment variables, "en" will be set as fallback.

Since

version 2.9.91

fontconfig-2.11.1/doc/fontconfig-devel/fclangsetdel.html0000664000076400007640000000567312313745373020225 00000000000000 FcLangSetDel

FcLangSetDel

Name

FcLangSetDel -- delete a language from a langset

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcLangSetDel(FcLangSet *ls, const FcChar8 *lang);

Description

lang is removed from ls. lang should be of the form Ll-Tt where Ll is a two or three letter language from ISO 639 and Tt is a territory from ISO 3166.

Since

version 2.9.0

fontconfig-2.11.1/doc/fontconfig-devel/fcstrsetadd.html0000664000076400007640000000532112313745374020067 00000000000000 FcStrSetAdd

FcStrSetAdd

Name

FcStrSetAdd -- add to a string set

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcStrSetAdd(FcStrSet *set, const FcChar8 *s);

Description

Adds a copy of s to set.

fontconfig-2.11.1/doc/fontconfig-devel/fcinitbringuptodate.html0000664000076400007640000000525012313745373021625 00000000000000 FcInitBringUptoDate

FcInitBringUptoDate

Name

FcInitBringUptoDate -- reload configuration files if needed

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcInitBringUptoDate(void);

Description

Checks the rescan interval in the default configuration, checking the configuration if the interval has passed and reloading the configuration if when any changes are detected. Returns FcFalse if the configuration cannot be reloaded (see FcInitReinitialize). Otherwise returns FcTrue.

fontconfig-2.11.1/doc/fontconfig-devel/fcmatrixinit.html0000664000076400007640000000515512313745373020266 00000000000000 FcMatrixInit

FcMatrixInit

Name

FcMatrixInit -- initialize an FcMatrix structure

Synopsis

#include <fontconfig/fontconfig.h>
	

void FcMatrixInit(FcMatrix *matrix);

Description

FcMatrixInit initializes matrix to the identity matrix.

fontconfig-2.11.1/doc/fontconfig-devel/fclangsetcontains.html0000664000076400007640000000612012313745373021263 00000000000000 FcLangSetContains

FcLangSetContains

Name

FcLangSetContains -- check langset subset relation

Synopsis

#include <fontconfig/fontconfig.h>
	

FcBool FcLangSetContains(const FcLangSet *ls_a, const FcLangSet *ls_b);

Description

FcLangSetContains returns FcTrue if ls_a contains every language in ls_b. ls_a will 'contain' a language from ls_b if ls_a has exactly the language, or either the language or ls_a has no territory.

fontconfig-2.11.1/doc/fontconfig-devel/fccachedir.html0000664000076400007640000000516312313745374017640 00000000000000 FcCacheDir

FcCacheDir

Name

FcCacheDir -- Return directory of cache

Synopsis

#include <fontconfig/fontconfig.h>
	

const FcChar8 * FcCacheDir(const FcCache *cache);

Description

This function returns the directory from which the cache was constructed.

fontconfig-2.11.1/doc/FcConfigGetFontDirs.30000664000076400007640000000105112313745357015312 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigGetFontDirs" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigGetFontDirs \- Get font directories .SH SYNOPSIS .nf \fB#include .sp FcStrList * FcConfigGetFontDirs (FcConfig *\fIconfig\fB); .fi\fR .SH "DESCRIPTION" .PP Returns the list of font directories in \fIconfig\fR\&. This includes the configured font directories along with any directories below those in the filesystem. If \fIconfig\fR is NULL, the current configuration is used. fontconfig-2.11.1/doc/FcNameRegisterConstants.30000664000076400007640000000064112313745357016262 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcNameRegisterConstants" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcNameRegisterConstants \- Register symbolic constants .SH SYNOPSIS .nf \fB#include .sp FcBool FcNameRegisterConstants (const FcConstant *\fIconsts\fB, int \fInconsts\fB); .fi\fR .SH "DESCRIPTION" .PP Deprecated. Does nothing. Returns FcFalse. fontconfig-2.11.1/doc/fcstrset.sgml0000664000076400007640000005405212306317520014156 00000000000000 FcStrSetCreate 3 Fontconfig &version; FcStrSetCreate create a string set #include <fontconfig/fontconfig.h> FcStrSet * FcStrSetCreate void Description Create an empty set. FcStrSetMember 3 Fontconfig &version; FcStrSetMember check set for membership #include <fontconfig/fontconfig.h> FcBool FcStrSetMember FcStrSet *set const FcChar8 *s Description Returns whether s is a member of set. FcStrSetEqual 3 Fontconfig &version; FcStrSetEqual check sets for equality #include <fontconfig/fontconfig.h> FcBool FcStrSetEqual FcStrSet *set_a FcStrSet *set_b Description Returns whether set_a contains precisely the same strings as set_b. Ordering of strings within the two sets is not considered. FcStrSetAdd 3 Fontconfig &version; FcStrSetAdd add to a string set #include <fontconfig/fontconfig.h> FcBool FcStrSetAdd FcStrSet *set const FcChar8 *s Description Adds a copy of s to set. FcStrSetAddFilename 3 Fontconfig &version; FcStrSetAddFilename add a filename to a string set #include <fontconfig/fontconfig.h> FcBool FcStrSetAddFilename FcStrSet *set const FcChar8 *s Description Adds a copy s to set, The copy is created with FcStrCopyFilename so that leading '~' values are replaced with the value of the HOME environment variable. FcStrSetDel 3 Fontconfig &version; FcStrSetDel delete from a string set #include <fontconfig/fontconfig.h> FcBool FcStrSetDel FcStrSet *set const FcChar8 *s Description Removes s from set, returning FcTrue if s was a member else FcFalse. FcStrSetDestroy 3 Fontconfig &version; FcStrSetDestroy destroy a string set #include <fontconfig/fontconfig.h> void FcStrSetDestroy FcStrSet *set Description Destroys set. FcStrListCreate 3 Fontconfig &version; FcStrListCreate create a string iterator #include <fontconfig/fontconfig.h> FcStrList * FcStrListCreate FcStrSet *set Description Creates an iterator to list the strings in set. FcStrListFirst 3 Fontconfig &version; FcStrListFirst get first string in iteration #include <fontconfig/fontconfig.h> void FcStrListFirst FcStrList *list Description Returns the first string in list. Since version 2.11.0 FcStrListNext 3 Fontconfig &version; FcStrListNext get next string in iteration #include <fontconfig/fontconfig.h> FcChar8 * FcStrListNext FcStrList *list Description Returns the next string in list. FcStrListDone 3 Fontconfig &version; FcStrListDone destroy a string iterator #include <fontconfig/fontconfig.h> void FcStrListDone FcStrList *list Description Destroys the enumerator list. fontconfig-2.11.1/doc/FcConfigHome.30000664000076400007640000000071212313745357014015 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigHome" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigHome \- return the current home directory. .SH SYNOPSIS .nf \fB#include .sp FcChar8 * FcConfigHome (void\fI\fB); .fi\fR .SH "DESCRIPTION" .PP Return the current user's home directory, if it is available, and if using it is enabled, and NULL otherwise. See also \fBFcConfigEnableHome\fR). fontconfig-2.11.1/doc/FcFileIsDir.30000664000076400007640000000061212313745357013610 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcFileIsDir" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcFileIsDir \- check whether a file is a directory .SH SYNOPSIS .nf \fB#include .sp FcBool FcFileIsDir (const FcChar8 *\fIfile\fB); .fi\fR .SH "DESCRIPTION" .PP Returns FcTrue if \fIfile\fR is a directory, otherwise returns FcFalse. fontconfig-2.11.1/doc/FcDirCacheRescan.30000664000076400007640000000072412313745357014600 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcDirCacheRescan" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcDirCacheRescan \- Re-scan a directory cache .SH SYNOPSIS .nf \fB#include .sp FcCache * FcDirCacheRescan (const FcChar8 *\fIdir\fB, FcConfig *\fIconfig\fB); .fi\fR .SH "DESCRIPTION" .PP Re-scan directories only at \fIdir\fR and update the cache. returns NULL if failed. .SH "SINCE" .PP version 2.11.1 fontconfig-2.11.1/doc/FcMatrixScale.30000664000076400007640000000077312313745357014222 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcMatrixScale" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcMatrixScale \- Scale a matrix .SH SYNOPSIS .nf \fB#include .sp void FcMatrixScale (FcMatrix *\fImatrix\fB, double \fIsx\fB, double \fIdy\fB); .fi\fR .SH "DESCRIPTION" .PP \fBFcMatrixScale\fR multiplies \fImatrix\fR x values by \fIsx\fR and y values by \fIdy\fR\&. This is done by multiplying by the matrix: .sp .nf sx 0 0 dy .sp .fi fontconfig-2.11.1/doc/FcLangSetAdd.30000664000076400007640000000077112313745357013752 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcLangSetAdd" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcLangSetAdd \- add a language to a langset .SH SYNOPSIS .nf \fB#include .sp FcBool FcLangSetAdd (FcLangSet *\fIls\fB, const FcChar8 *\fIlang\fB); .fi\fR .SH "DESCRIPTION" .PP \fIlang\fR is added to \fIls\fR\&. \fIlang\fR should be of the form Ll-Tt where Ll is a two or three letter language from ISO 639 and Tt is a territory from ISO 3166. fontconfig-2.11.1/doc/fcatomic.sgml0000664000076400007640000004012512306317520014102 00000000000000 FcAtomicCreate 3 Fontconfig &version; FcAtomicCreate create an FcAtomic object #include <fontconfig/fontconfig.h> FcAtomic * FcAtomicCreate const FcChar8 *file Description Creates a data structure containing data needed to control access to file. Writing is done to a separate file. Once that file is complete, the original configuration file is atomically replaced so that reading process always see a consistent and complete file without the need to lock for reading. FcAtomicLock 3 Fontconfig &version; FcAtomicLock lock a file #include <fontconfig/fontconfig.h> FcBool FcAtomicLock FcAtomic *atomic Description Attempts to lock the file referenced by atomic. Returns FcFalse if the file is already locked, else returns FcTrue and leaves the file locked. FcAtomicNewFile 3 Fontconfig &version; FcAtomicNewFile return new temporary file name #include <fontconfig/fontconfig.h> FcChar8 * FcAtomicNewFile FcAtomic *atomic Description Returns the filename for writing a new version of the file referenced by atomic. FcAtomicOrigFile 3 Fontconfig &version; FcAtomicOrigFile return original file name #include <fontconfig/fontconfig.h> FcChar8 * FcAtomicOrigFile FcAtomic *atomic Description Returns the file referenced by atomic. FcAtomicReplaceOrig 3 Fontconfig &version; FcAtomicReplaceOrig replace original with new #include <fontconfig/fontconfig.h> FcBool FcAtomicReplaceOrig FcAtomic *atomic Description Replaces the original file referenced by atomic with the new file. Returns FcFalse if the file cannot be replaced due to permission issues in the filesystem. Otherwise returns FcTrue. FcAtomicDeleteNew 3 Fontconfig &version; FcAtomicDeleteNew delete new file #include <fontconfig/fontconfig.h> void FcAtomicDeleteNew FcAtomic *atomic Description Deletes the new file. Used in error recovery to back out changes. FcAtomicUnlock 3 Fontconfig &version; FcAtomicUnlock unlock a file #include <fontconfig/fontconfig.h> void FcAtomicUnlock FcAtomic *atomic Description Unlocks the file. FcAtomicDestroy 3 Fontconfig &version; FcAtomicDestroy destroy an FcAtomic object #include <fontconfig/fontconfig.h> void FcAtomicDestroy FcAtomic *atomic Description Destroys atomic. fontconfig-2.11.1/doc/FcInitLoadConfig.30000664000076400007640000000064712313745357014637 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcInitLoadConfig" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcInitLoadConfig \- load configuration .SH SYNOPSIS .nf \fB#include .sp FcConfig * FcInitLoadConfig (void\fI\fB); .fi\fR .SH "DESCRIPTION" .PP Loads the default configuration file and returns the resulting configuration. Does not load any font information. fontconfig-2.11.1/doc/FcConfigAppFontClear.30000664000076400007640000000070612313745357015446 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigAppFontClear" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigAppFontClear \- Remove all app fonts from font database .SH SYNOPSIS .nf \fB#include .sp void FcConfigAppFontClear (FcConfig *\fIconfig\fB); .fi\fR .SH "DESCRIPTION" .PP Clears the set of application-specific fonts. If \fIconfig\fR is NULL, the current configuration is used. fontconfig-2.11.1/doc/version.sgml.in0000664000076400007640000000227012267155333014416 00000000000000 @VERSION@ fontconfig-2.11.1/doc/func.sgml0000664000076400007640000000511412306310210013234 00000000000000 @?TITLE@ @:@ @;@ @?TITLE@ @TITLE@ @:@ @FUNC@ @;@ 3 Fontconfig &version; @{PROTOTYPE@ @FUNC@ @}PROTOTYPE@ @PURPOSE@ @?SYNOPSIS@ @SYNOPSIS@ @:@ #include <fontconfig/fontconfig.h> @;@ @{PROTOTYPE@ @?RET@@RET@@:@void@;@ @FUNC@ @?TYPE1@ @TYPE1@@ARG1@ @;@ @?TYPE2@ @TYPE2@@ARG2@ @;@ @?TYPE3@ @TYPE3@@ARG3@ @;@ @?TYPE4@ @TYPE4@@ARG4@ @;@ @?TYPE5@ @TYPE5@@ARG5@ @;@ @?TYPE6@ @TYPE6@@ARG6@ @;@ @?TYPE7@ @TYPE7@@ARG7@ @;@ @}PROTOTYPE@ Description @DESC@ @?SINCE@ Since version @SINCE@ @;@ fontconfig-2.11.1/doc/FcDirCacheClean.30000664000076400007640000000075512313745357014413 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcDirCacheClean" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcDirCacheClean \- This tries to clean up the cache directory of cache_dir.This returns FcTrue if the operation is successfully complete. otherwise FcFalse. .SH SYNOPSIS .nf \fB#include .sp FcBool FcDirCacheClean (const FcChar8 *\fIcache_dir\fB, FcBool\fIverbose\fB); .fi\fR .SH "DESCRIPTION" .PP .SH "SINCE" .PP version 2.9.91 fontconfig-2.11.1/doc/FcPatternCreate.30000664000076400007640000000057412313745357014546 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcPatternCreate" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcPatternCreate \- Create a pattern .SH SYNOPSIS .nf \fB#include .sp FcPattern * FcPatternCreate (void\fI\fB); .fi\fR .SH "DESCRIPTION" .PP Creates a pattern with no properties; used to build patterns from scratch. fontconfig-2.11.1/doc/FcStrSetDel.30000664000076400007640000000064012313745357013650 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcStrSetDel" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcStrSetDel \- delete from a string set .SH SYNOPSIS .nf \fB#include .sp FcBool FcStrSetDel (FcStrSet *\fIset\fB, const FcChar8 *\fIs\fB); .fi\fR .SH "DESCRIPTION" .PP Removes \fIs\fR from \fIset\fR, returning FcTrue if \fIs\fR was a member else FcFalse. fontconfig-2.11.1/doc/FcLangSetDel.30000664000076400007640000000104012313745357013754 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcLangSetDel" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcLangSetDel \- delete a language from a langset .SH SYNOPSIS .nf \fB#include .sp FcBool FcLangSetDel (FcLangSet *\fIls\fB, const FcChar8 *\fIlang\fB); .fi\fR .SH "DESCRIPTION" .PP \fIlang\fR is removed from \fIls\fR\&. \fIlang\fR should be of the form Ll-Tt where Ll is a two or three letter language from ISO 639 and Tt is a territory from ISO 3166. .SH "SINCE" .PP version 2.9.0 fontconfig-2.11.1/doc/FcConfigSetCurrent.30000664000076400007640000000073712313745357015232 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigSetCurrent" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigSetCurrent \- Set configuration as default .SH SYNOPSIS .nf \fB#include .sp FcBool FcConfigSetCurrent (FcConfig *\fIconfig\fB); .fi\fR .SH "DESCRIPTION" .PP Sets the current default configuration to \fIconfig\fR\&. Implicitly calls FcConfigBuildFonts if necessary, returning FcFalse if that call fails. fontconfig-2.11.1/doc/fclangset.fncs0000664000076400007640000001535412306317300014254 00000000000000/* * Copyright © 2007 Keith Packard * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * the above copyright notice appear in all copies and that both that copyright * notice and this permission notice appear in supporting documentation, and * that the name of the copyright holders not be used in advertising or * publicity pertaining to distribution of the software without specific, * written prior permission. The copyright holders make no representations * about the suitability of this software for any purpose. It is provided "as * is" without express or implied warranty. * * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE * OF THIS SOFTWARE. */ @RET@ FcLangSet * @FUNC@ FcLangSetCreate @TYPE1@ void @PURPOSE@ create a langset object @DESC@ FcLangSetCreate creates a new FcLangSet object. @@ @RET@ void @FUNC@ FcLangSetDestroy @TYPE1@ FcLangSet * @ARG1@ ls @PURPOSE@ destroy a langset object @DESC@ FcLangSetDestroy destroys a FcLangSet object, freeing all memory associated with it. @@ @RET@ FcLangSet * @FUNC@ FcLangSetCopy @TYPE1@ const FcLangSet * @ARG1@ ls @PURPOSE@ copy a langset object @DESC@ FcLangSetCopy creates a new FcLangSet object and populates it with the contents of ls. @@ @RET@ FcBool @FUNC@ FcLangSetAdd @TYPE1@ FcLangSet * @ARG1@ ls @TYPE2@ const FcChar8 * @ARG2@ lang @PURPOSE@ add a language to a langset @DESC@ lang is added to ls. lang should be of the form Ll-Tt where Ll is a two or three letter language from ISO 639 and Tt is a territory from ISO 3166. @@ @RET@ FcBool @FUNC@ FcLangSetDel @TYPE1@ FcLangSet * @ARG1@ ls @TYPE2@ const FcChar8 * @ARG2@ lang @PURPOSE@ delete a language from a langset @DESC@ lang is removed from ls. lang should be of the form Ll-Tt where Ll is a two or three letter language from ISO 639 and Tt is a territory from ISO 3166. @SINCE@ 2.9.0 @@ @RET@ FcLangSet * @FUNC@ FcLangSetUnion @TYPE1@ const FcLangSet * @ARG1@ ls_a @TYPE2@ const FcLangSet * @ARG2@ ls_b @PURPOSE@ Add langsets @DESC@ Returns a set including only those languages found in either ls_a or ls_b. @SINCE@ 2.9.0 @@ @RET@ FcLangSet * @FUNC@ FcLangSetSubtract @TYPE1@ const FcLangSet * @ARG1@ ls_a @TYPE2@ const FcLangSet * @ARG2@ ls_b @PURPOSE@ Subtract langsets @DESC@ Returns a set including only those languages found in ls_a but not in ls_b. @SINCE@ 2.9.0 @@ @RET@ FcLangResult @FUNC@ FcLangSetCompare @TYPE1@ const FcLangSet * @ARG1@ ls_a @TYPE2@ const FcLangSet * @ARG2@ ls_b @PURPOSE@ compare language sets @DESC@ FcLangSetCompare compares language coverage for ls_a and ls_b. If they share any language and territory pair, this function returns FcLangEqual. If they share a language but differ in which territory that language is for, this function returns FcLangDifferentTerritory. If they share no languages in common, this function returns FcLangDifferentLang. @@ @RET@ FcBool @FUNC@ FcLangSetContains @TYPE1@ const FcLangSet * @ARG1@ ls_a @TYPE2@ const FcLangSet * @ARG2@ ls_b @PURPOSE@ check langset subset relation @DESC@ FcLangSetContains returns FcTrue if ls_a contains every language in ls_b. ls_a will 'contain' a language from ls_b if ls_a has exactly the language, or either the language or ls_a has no territory. @@ @RET@ FcBool @FUNC@ FcLangSetEqual @TYPE1@ const FcLangSet * @ARG1@ ls_a @TYPE2@ const FcLangSet * @ARG2@ ls_b @PURPOSE@ test for matching langsets @DESC@ Returns FcTrue if and only if ls_a supports precisely the same language and territory combinations as ls_b. @@ @RET@ FcChar32 @FUNC@ FcLangSetHash @TYPE1@ const FcLangSet * @ARG1@ ls @PURPOSE@ return a hash value for a langset @DESC@ This function returns a value which depends solely on the languages supported by ls. Any language which equals ls will have the same result from FcLangSetHash. However, two langsets with the same hash value may not be equal. @@ @RET@ FcLangResult @FUNC@ FcLangSetHasLang @TYPE1@ const FcLangSet * @ARG1@ ls @TYPE2@ const FcChar8 * @ARG2@ lang @PURPOSE@ test langset for language support @DESC@ FcLangSetHasLang checks whether ls supports lang. If ls has a matching language and territory pair, this function returns FcLangEqual. If ls has a matching language but differs in which territory that language is for, this function returns FcLangDifferentTerritory. If ls has no matching language, this function returns FcLangDifferentLang. @@ @RET@ FcStrSet * @FUNC@ FcGetDefaultLangs @TYPE1@ void @PURPOSE@ Get the default languages list @DESC@ 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 @TYPE1@ const FcLangSet * @ARG1@ ls @PURPOSE@ get the list of languages in the langset @DESC@ Returns a string set of all languages in langset. @@ @RET@ FcStrSet * @FUNC@ FcGetLangs @TYPE1@ void @PURPOSE@ Get list of languages @DESC@ Returns a string set of all known languages. @@ @RET@ FcChar8 * @FUNC@ FcLangNormalize @TYPE1@ const FcChar8 * @ARG1@ lang @PURPOSE@ Normalize the language string @DESC@ Returns a string to make lang suitable on fontconfig. @SINCE@ 2.10.91 @@ @RET@ const FcCharSet * @FUNC@ FcLangGetCharSet @TYPE1@ const FcChar8 * @ARG1@ lang @PURPOSE@ Get character map for a language @DESC@ Returns the FcCharMap for a language. @@ fontconfig-2.11.1/doc/FcFontRenderPrepare.30000664000076400007640000000130012313745357015356 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcFontRenderPrepare" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcFontRenderPrepare \- Prepare pattern for loading font file .SH SYNOPSIS .nf \fB#include .sp FcPattern * FcFontRenderPrepare (FcConfig *\fIconfig\fB, FcPattern *\fIpat\fB, FcPattern *\fIfont\fB); .fi\fR .SH "DESCRIPTION" .PP Creates a new pattern consisting of elements of \fIfont\fR not appearing in \fIpat\fR, elements of \fIpat\fR not appearing in \fIfont\fR and the best matching value from \fIpat\fR for elements appearing in both. The result is passed to FcConfigSubstituteWithPat with \fIkind\fR FcMatchFont and then returned. fontconfig-2.11.1/doc/FcUtf16Len.30000664000076400007640000000136212313745357013345 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcUtf16Len" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcUtf16Len \- count UTF-16 encoded chars .SH SYNOPSIS .nf \fB#include .sp FcBool FcUtf16Len (FcChar8 *\fIsrc\fB, FcEndian \fIendian\fB, int \fIlen\fB, int *\fInchar\fB, int *\fIwchar\fB); .fi\fR .SH "DESCRIPTION" .PP Counts the number of Unicode chars in \fIlen\fR bytes of \fIsrc\fR\&. Bytes of \fIsrc\fR are combined into 16-bit units according to \fIendian\fR\&. Places that count in \fInchar\fR\&. \fIwchar\fR contains 1, 2 or 4 depending on the number of bytes needed to hold the largest Unicode char counted. The return value indicates whether \fIstring\fR is a well-formed UTF16 string. fontconfig-2.11.1/doc/FcCharSetHasChar.30000664000076400007640000000063012313745357014561 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcCharSetHasChar" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcCharSetHasChar \- Check a charset for a char .SH SYNOPSIS .nf \fB#include .sp FcBool FcCharSetHasChar (const FcCharSet *\fIfcs\fB, FcChar32 \fIucs4\fB); .fi\fR .SH "DESCRIPTION" .PP Returns whether \fIfcs\fR contains the char \fIucs4\fR\&. fontconfig-2.11.1/doc/FcInit.30000664000076400007640000000105212313745357012700 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcInit" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcInit \- initialize fontconfig library .SH SYNOPSIS .nf \fB#include .sp FcBool FcInit (void\fI\fB); .fi\fR .SH "DESCRIPTION" .PP Loads the default configuration file and the fonts referenced therein and sets the default configuration to that result. Returns whether this process succeeded or not. If the default configuration has already been loaded, this routine does nothing and returns FcTrue. fontconfig-2.11.1/doc/FcConfigBuildFonts.30000664000076400007640000000111412313745357015173 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigBuildFonts" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigBuildFonts \- Build font database .SH SYNOPSIS .nf \fB#include .sp FcBool FcConfigBuildFonts (FcConfig *\fIconfig\fB); .fi\fR .SH "DESCRIPTION" .PP Builds the set of available fonts for the given configuration. Note that any changes to the configuration after this call have indeterminate effects. Returns FcFalse if this operation runs out of memory. If \fIconfig\fR is NULL, the current configuration is used. fontconfig-2.11.1/doc/FcToLower.30000664000076400007640000000060712313745357013375 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcToLower" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcToLower \- convert upper case ASCII to lower case .SH SYNOPSIS .nf \fB#include .sp FcChar8 FcToLower (FcChar8\fIc\fB); .fi\fR .SH "DESCRIPTION" .PP This macro converts upper case ASCII \fIc\fR to the equivalent lower case letter. fontconfig-2.11.1/doc/FcLangGetCharSet.30000664000076400007640000000057712313745357014603 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcLangGetCharSet" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcLangGetCharSet \- Get character map for a language .SH SYNOPSIS .nf \fB#include .sp const FcCharSet * FcLangGetCharSet (const FcChar8 *\fIlang\fB); .fi\fR .SH "DESCRIPTION" .PP Returns the FcCharMap for a language. fontconfig-2.11.1/doc/FcFreeTypeQueryFace.30000664000076400007640000000107112313745357015326 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcFreeTypeQueryFace" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcFreeTypeQueryFace \- compute pattern from FT_Face .SH SYNOPSIS .nf \fB#include #include .sp FcPattern * FcFreeTypeQueryFace (const FT_Face \fIface\fB, const FcChar8 *\fIfile\fB, int \fIid\fB, FcBlanks *\fIblanks\fB); .fi\fR .SH "DESCRIPTION" .PP Constructs a pattern representing 'face'. 'file' and 'id' are used solely as data for pattern elements (FC_FILE, FC_INDEX and sometimes FC_FAMILY). fontconfig-2.11.1/doc/FcPatternGet-Type.30000664000076400007640000000315112313745357014773 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcPatternGet-Type" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcPatternGetInteger, FcPatternGetDouble, FcPatternGetString, FcPatternGetMatrix, FcPatternGetCharSet, FcPatternGetBool, FcPatternGetFTFace, FcPatternGetLangSet \- Return a typed value from a pattern .SH SYNOPSIS .nf \fB#include .sp FcResult FcPatternGetInteger (FcPattern *\fIp\fB, const char *\fIobject\fB, int \fIn\fB, int *\fIi\fB); .sp FcResult FcPatternGetDouble (FcPattern *\fIp\fB, const char *\fIobject\fB, int \fIn\fB, double *\fId\fB); .sp FcResult FcPatternGetString (FcPattern *\fIp\fB, const char *\fIobject\fB, int \fIn\fB, FcChar8 **\fIs\fB); .sp FcResult FcPatternGetMatrix (FcPattern *\fIp\fB, const char *\fIobject\fB, int \fIn\fB, FcMatrix **\fIs\fB); .sp FcResult FcPatternGetCharSet (FcPattern *\fIp\fB, const char *\fIobject\fB, int \fIn\fB, FcCharSet **\fIc\fB); .sp FcResult FcPatternGetBool (FcPattern *\fIp\fB, const char *\fIobject\fB, int \fIn\fB, FcBool *\fIb\fB); .sp FcResult FcPatternGetFTFace (FcPattern *\fIp\fB, const char *\fIobject\fB, int \fIn\fB); .sp FcResult FcPatternGetLangSet (FcPattern *\fIp\fB, const char *\fIobject\fB, FT_Face *\fIf\fB); .fi\fR .SH "DESCRIPTION" .PP These are convenience functions that call FcPatternGet and verify that the returned data is of the expected type. They return FcResultTypeMismatch if this is not the case. Note that these (like FcPatternGet) do not make a copy of any data structure referenced by the return value. Use these in preference to FcPatternGet to provide compile-time typechecking. fontconfig-2.11.1/doc/FcLangSetEqual.30000664000076400007640000000073312313745357014327 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcLangSetEqual" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcLangSetEqual \- test for matching langsets .SH SYNOPSIS .nf \fB#include .sp FcBool FcLangSetEqual (const FcLangSet *\fIls_a\fB, const FcLangSet *\fIls_b\fB); .fi\fR .SH "DESCRIPTION" .PP Returns FcTrue if and only if \fIls_a\fR supports precisely the same language and territory combinations as \fIls_b\fR\&. fontconfig-2.11.1/doc/FcNameUnregisterConstants.30000664000076400007640000000065112313745357016626 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcNameUnregisterConstants" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcNameUnregisterConstants \- Unregister symbolic constants .SH SYNOPSIS .nf \fB#include .sp FcBool FcNameUnregisterConstants (const FcConstant *\fIconsts\fB, int \fInconsts\fB); .fi\fR .SH "DESCRIPTION" .PP Deprecated. Does nothing. Returns FcFalse. fontconfig-2.11.1/doc/FcStrListCreate.30000664000076400007640000000057212313745357014533 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcStrListCreate" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcStrListCreate \- create a string iterator .SH SYNOPSIS .nf \fB#include .sp FcStrList * FcStrListCreate (FcStrSet *\fIset\fB); .fi\fR .SH "DESCRIPTION" .PP Creates an iterator to list the strings in \fIset\fR\&. fontconfig-2.11.1/doc/FcCacheSubdir.30000664000076400007640000000101212313745357014145 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcCacheSubdir" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcCacheSubdir \- Return the i'th subdirectory. .SH SYNOPSIS .nf \fB#include .sp const FcChar8 * FcCacheSubdir (const FcCache *\fIcache\fB, int\fIi\fB); .fi\fR .SH "DESCRIPTION" .PP The set of subdirectories stored in a cache file are indexed by this function, \fIi\fR should range from 0 to \fIn\fR-1, where \fIn\fR is the return value from FcCacheNumSubdir. fontconfig-2.11.1/doc/FcInitBringUptoDate.30000664000076400007640000000115112313745357015330 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcInitBringUptoDate" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcInitBringUptoDate \- reload configuration files if needed .SH SYNOPSIS .nf \fB#include .sp FcBool FcInitBringUptoDate (void\fI\fB); .fi\fR .SH "DESCRIPTION" .PP Checks the rescan interval in the default configuration, checking the configuration if the interval has passed and reloading the configuration if when any changes are detected. Returns FcFalse if the configuration cannot be reloaded (see FcInitReinitialize). Otherwise returns FcTrue. fontconfig-2.11.1/doc/FcStrDirname.30000664000076400007640000000070712313745357014053 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcStrDirname" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcStrDirname \- directory part of filename .SH SYNOPSIS .nf \fB#include .sp FcChar8 * FcStrDirname (const FcChar8 *\fIfile\fB); .fi\fR .SH "DESCRIPTION" .PP Returns the directory containing \fIfile\fR\&. This is returned in newly allocated storage which should be freed when no longer needed. fontconfig-2.11.1/doc/FcLangSetDestroy.30000664000076400007640000000063112313745357014706 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcLangSetDestroy" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcLangSetDestroy \- destroy a langset object .SH SYNOPSIS .nf \fB#include .sp void FcLangSetDestroy (FcLangSet *\fIls\fB); .fi\fR .SH "DESCRIPTION" .PP \fBFcLangSetDestroy\fR destroys a FcLangSet object, freeing all memory associated with it. fontconfig-2.11.1/doc/FcConfigSetSysRoot.30000664000076400007640000000122412313745357015222 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigSetSysRoot" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigSetSysRoot \- Set the system root directory .SH SYNOPSIS .nf \fB#include .sp void FcConfigSetSysRoot (FcConfig *\fIconfig\fB, const FcChar8 *\fIsysroot\fB); .fi\fR .SH "DESCRIPTION" .PP Set 'sysroot' as the system root directory. fontconfig prepend 'sysroot' to the cache directories in order to allow people to generate caches at the build time. Note that this causes changing current config. i.e. this function calls FcConfigSetCurrent() internally. .SH "SINCE" .PP version 2.10.92 fontconfig-2.11.1/doc/FcCharSetCount.30000664000076400007640000000057312313745357014346 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcCharSetCount" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcCharSetCount \- Count entries in a charset .SH SYNOPSIS .nf \fB#include .sp FcChar32 FcCharSetCount (const FcCharSet *\fIa\fB); .fi\fR .SH "DESCRIPTION" .PP Returns the total number of Unicode chars in \fIa\fR\&. fontconfig-2.11.1/doc/FcConfigGetCacheDirs.30000664000076400007640000000113712313745357015414 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigGetCacheDirs" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigGetCacheDirs \- return the list of directories searched for cache files .SH SYNOPSIS .nf \fB#include .sp FcStrList * FcConfigGetCacheDirs (const FcConfig *\fIconfig\fB); .fi\fR .SH "DESCRIPTION" .PP \fBFcConfigGetCacheDirs\fR returns a string list containing all of the directories that fontconfig will search when attempting to load a cache file for a font directory. If \fIconfig\fR is NULL, the current configuration is used. fontconfig-2.11.1/doc/FcCharSetMerge.30000664000076400007640000000122212313745357014305 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcCharSetMerge" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcCharSetMerge \- Merge charsets .SH SYNOPSIS .nf \fB#include .sp FcBool FcCharSetMerge (FcCharSet *\fIa\fB, const FcCharSet *\fIb\fB, FcBool *\fIchanged\fB); .fi\fR .SH "DESCRIPTION" .PP Adds all chars in \fIb\fR to \fIa\fR\&. In other words, this is an in-place version of FcCharSetUnion. If \fIchanged\fR is not NULL, then it returns whether any new chars from \fIb\fR were added to \fIa\fR\&. Returns FcFalse on failure, either when \fIa\fR is a constant set or from running out of memory. fontconfig-2.11.1/doc/FcCharSetNew.30000664000076400007640000000057212313745357014006 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcCharSetNew" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcCharSetNew \- DEPRECATED alias for FcCharSetCreate .SH SYNOPSIS .nf \fB#include .sp FcCharSet * FcCharSetNew (void\fI\fB); .fi\fR .SH "DESCRIPTION" .PP \fBFcCharSetNew\fR is a DEPRECATED alias for FcCharSetCreate. fontconfig-2.11.1/doc/FcFreeTypeCharSetAndSpacing.30000664000076400007640000000174012313745357016726 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcFreeTypeCharSetAndSpacing" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcFreeTypeCharSetAndSpacing \- compute Unicode coverage and spacing type .SH SYNOPSIS .nf \fB#include #include .sp FcCharSet * FcFreeTypeCharSetAndSpacing (FT_Face \fIface\fB, FcBlanks *\fIblanks\fB, int *\fIspacing\fB); .fi\fR .SH "DESCRIPTION" .PP Scans a FreeType face and returns the set of encoded Unicode chars. This scans several encoding tables to build as complete a list as possible. If 'blanks' is not 0, the glyphs in the font are examined and any blank glyphs not in 'blanks' are not placed in the returned FcCharSet. \fIspacing\fR receives the computed spacing type of the font, one of FC_MONO for a font where all glyphs have the same width, FC_DUAL, where the font has glyphs in precisely two widths, one twice as wide as the other, or FC_PROPORTIONAL where the font has glyphs of many widths. fontconfig-2.11.1/doc/FcUtf8Len.30000664000076400007640000000120412313745357013261 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcUtf8Len" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcUtf8Len \- count UTF-8 encoded chars .SH SYNOPSIS .nf \fB#include .sp FcBool FcUtf8Len (FcChar8 *\fIsrc\fB, int \fIlen\fB, int *\fInchar\fB, int *\fIwchar\fB); .fi\fR .SH "DESCRIPTION" .PP Counts the number of Unicode chars in \fIlen\fR bytes of \fIsrc\fR\&. Places that count in \fInchar\fR\&. \fIwchar\fR contains 1, 2 or 4 depending on the number of bytes needed to hold the largest Unicode char counted. The return value indicates whether \fIsrc\fR is a well-formed UTF8 string. fontconfig-2.11.1/doc/fcformat.fncs0000664000076400007640000002753512306317101014112 00000000000000/* * fontconfig/doc/fcformat.fncs * * Copyright © 2008 Behdad Esfahbod * * 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@ FcChar8 * @FUNC@ FcPatternFormat @TYPE1@ FcPattern * @ARG1@ pat @TYPE2@ const FcChar8 * @ARG2@ format @PURPOSE@ Format a pattern into a string according to a format specifier @DESC@ Converts given pattern pat into text described by the format specifier format. The return value refers to newly allocated memory which should be freed by the caller using free(), or NULL if format is invalid. The format is loosely modeled after printf-style format string. The format string is composed of zero or more directives: ordinary characters (not "%"), which are copied unchanged to the output stream; and tags which are interpreted to construct text from the pattern in a variety of ways (explained below). Special characters can be escaped using backslash. C-string style special characters like \n and \r are also supported (this is useful when the format string is not a C string literal). It is advisable to always escape curly braces that are meant to be copied to the output as ordinary characters. Each tag is introduced by the character "%", followed by an optional minimum field width, followed by tag contents in curly braces ({}). If the minimum field width value is provided the tag will be expanded and the result padded to achieve the minimum width. If the minimum field width is positive, the padding will right-align the text. Negative field width will left-align. The rest of this section describes various supported tag contents and their expansion. A simple tag is one where the content is an identifier. When simple tags are expanded, the named identifier will be looked up in pattern and the resulting list of values returned, joined together using comma. For example, to print the family name and style of the pattern, use the format "%{family} %{style}\n". To extend the family column to forty characters use "%-40{family}%{style}\n". Simple tags expand to list of all values for an element. To only choose one of the values, one can index using the syntax "%{elt[idx]}". For example, to get the first family name only, use "%{family[0]}". If a simple tag ends with "=" and the element is found in the pattern, the name of the element followed by "=" will be output before the list of values. For example, "%{weight=}" may expand to the string "weight=80". Or to the empty string if pattern does not have weight set. If a simple tag starts with ":" and the element is found in the pattern, ":" will be printed first. For example, combining this with the =, the format "%{:weight=}" may expand to ":weight=80" or to the empty string if pattern does not have weight set. If a simple tag contains the string ":-", the rest of the the tag contents will be used as a default string. The default string is output if the element is not found in the pattern. For example, the format "%{:weight=:-123}" may expand to ":weight=80" or to the string ":weight=123" if pattern does not have weight set. A count tag is one that starts with the character "#" followed by an element name, and expands to the number of values for the element in the pattern. For example, "%{#family}" expands to the number of family names pattern has set, which may be zero. A sub-expression tag is one that expands a sub-expression. The tag contents are the sub-expression to expand placed inside another set of curly braces. Sub-expression tags are useful for aligning an entire sub-expression, or to apply converters (explained later) to the entire sub-expression output. For example, the format "%40{{%{family} %{style}}}" expands the sub-expression to construct the family name followed by the style, then takes the entire string and pads it on the left to be at least forty characters. A filter-out tag is one starting with the character "-" followed by a comma-separated list of element names, followed by a sub-expression enclosed in curly braces. The sub-expression will be expanded but with a pattern that has the listed elements removed from it. For example, the format "%{-size,pixelsize{sub-expr}}" will expand "sub-expr" with pattern sans the size and pixelsize elements. A filter-in tag is one starting with the character "+" followed by a comma-separated list of element names, followed by a sub-expression enclosed in curly braces. The sub-expression will be expanded but with a pattern that only has the listed elements from the surrounding pattern. For example, the format "%{+family,familylang{sub-expr}}" will expand "sub-expr" with a sub-pattern consisting only the family and family lang elements of pattern. A conditional tag is one starting with the character "?" followed by a comma-separated list of element conditions, followed by two sub-expression enclosed in curly braces. An element condition can be an element name, in which case it tests whether the element is defined in pattern, or the character "!" followed by an element name, in which case the test is negated. The conditional passes if all the element conditions pass. The tag expands the first sub-expression if the conditional passes, and expands the second sub-expression otherwise. For example, the format "%{?size,dpi,!pixelsize{pass}{fail}}" will expand to "pass" if pattern has size and dpi elements but no pixelsize element, and to "fail" otherwise. An enumerate tag is one starting with the string "[]" followed by a comma-separated list of element names, followed by a sub-expression enclosed in curly braces. The list of values for the named elements are walked in parallel and the sub-expression expanded each time with a pattern just having a single value for those elements, starting from the first value and continuing as long as any of those elements has a value. For example, the format "%{[]family,familylang{%{family} (%{familylang})\n}}" will expand the pattern "%{family} (%{familylang})\n" with a pattern having only the first value of the family and familylang elements, then expands it with the second values, then the third, etc. As a special case, if an enumerate tag has only one element, and that element has only one value in the pattern, and that value is of type FcLangSet, the individual languages in the language set are enumerated. A builtin tag is one starting with the character "=" followed by a builtin name. The following builtins are defined: unparse Expands to the result of calling FcNameUnparse() on the pattern. fcmatch Expands to the output of the default output format of the fc-match command on the pattern, without the final newline. fclist Expands to the output of the default output format of the fc-list command on the pattern, without the final newline. fccat Expands to the output of the default output format of the fc-cat command on the pattern, without the final newline. pkgkit Expands to the list of PackageKit font() tags for the pattern. Currently this includes tags for each family name, and each language from the pattern, enumerated and sanitized into a set of tags terminated by newline. Package management systems can use these tags to tag their packages accordingly. For example, the format "%{+family,style{%{=unparse}}}\n" will expand to an unparsed name containing only the family and style element values from pattern. The contents of any tag can be followed by a set of zero or more converters. A converter is specified by the character "|" followed by the converter name and arguments. The following converters are defined: basename Replaces text with the results of calling FcStrBasename() on it. dirname Replaces text with the results of calling FcStrDirname() on it. downcase Replaces text with the results of calling FcStrDowncase() on it. shescape Escapes text for one level of shell expansion. (Escapes single-quotes, also encloses text in single-quotes.) cescape Escapes text such that it can be used as part of a C string literal. (Escapes backslash and double-quotes.) xmlescape Escapes text such that it can be used in XML and HTML. (Escapes less-than, greater-than, and ampersand.) delete(chars) Deletes all occurrences of each of the characters in chars from the text. FIXME: This converter is not UTF-8 aware yet. escape(chars) Escapes all occurrences of each of the characters in chars by prepending it by the first character in chars. FIXME: This converter is not UTF-8 aware yet. translate(from,to) Translates all occurrences of each of the characters in from by replacing them with their corresponding character in to. If to has fewer characters than from, it will be extended by repeating its last character. FIXME: This converter is not UTF-8 aware yet. For example, the format "%{family|downcase|delete( )}\n" will expand to the values of the family element in pattern, lower-cased and with spaces removed. @SINCE@ 2.9.0 @@ fontconfig-2.11.1/doc/fcobjectset.sgml0000664000076400007640000002130412306317520014606 00000000000000 FcObjectSetCreate 3 Fontconfig &version; FcObjectSetCreate Create an object set #include <fontconfig/fontconfig.h> FcObjectSet * FcObjectSetCreate void Description Creates an empty set. FcObjectSetAdd 3 Fontconfig &version; FcObjectSetAdd Add to an object set #include <fontconfig/fontconfig.h> FcBool FcObjectSetAdd FcObjectSet *os const char *object Description Adds a property name to the set. Returns FcFalse if the property name cannot be inserted into the set (due to allocation failure). Otherwise returns FcTrue. FcObjectSetDestroy 3 Fontconfig &version; FcObjectSetDestroy Destroy an object set #include <fontconfig/fontconfig.h> void FcObjectSetDestroy FcObjectSet *os Description Destroys an object set. FcObjectSetBuild 3 Fontconfig &version; FcObjectSetBuild FcObjectSetVaBuild FcObjectSetVapBuild Build object set from args #include <fontconfig/fontconfig.h> FcObjectSet * FcObjectSetBuild const char *first ... FcObjectSet * FcObjectSetVaBuild const char *first va_list va void FcObjectSetVapBuild FcObjectSet *result const char *first va_list va Description These build an object set from a null-terminated list of property names. FcObjectSetVapBuild is a macro version of FcObjectSetVaBuild which returns the result in the result variable directly. fontconfig-2.11.1/doc/FcPatternEqual.30000664000076400007640000000061412313745357014405 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcPatternEqual" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcPatternEqual \- Compare patterns .SH SYNOPSIS .nf \fB#include .sp FcBool FcPatternEqual (const FcPattern *\fIpa\fB, const FcPattern *\fIpb\fB); .fi\fR .SH "DESCRIPTION" .PP Returns whether \fIpa\fR and \fIpb\fR are exactly alike. fontconfig-2.11.1/doc/FcStrSetDestroy.30000664000076400007640000000051512313745357014576 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcStrSetDestroy" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcStrSetDestroy \- destroy a string set .SH SYNOPSIS .nf \fB#include .sp void FcStrSetDestroy (FcStrSet *\fIset\fB); .fi\fR .SH "DESCRIPTION" .PP Destroys \fIset\fR\&. fontconfig-2.11.1/doc/FcCacheNumFont.30000664000076400007640000000064712313745357014320 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcCacheNumFont" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcCacheNumFont \- Returns the number of fonts in cache. .SH SYNOPSIS .nf \fB#include .sp int FcCacheNumFont (const FcCache *\fIcache\fB); .fi\fR .SH "DESCRIPTION" .PP This returns the number of fonts which would be included in the return from FcCacheCopySet. fontconfig-2.11.1/doc/FcCharSetCreate.30000664000076400007640000000062012313745357014452 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcCharSetCreate" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcCharSetCreate \- Create an empty character set .SH SYNOPSIS .nf \fB#include .sp FcCharSet * FcCharSetCreate (void\fI\fB); .fi\fR .SH "DESCRIPTION" .PP \fBFcCharSetCreate\fR allocates and initializes a new empty character set object. fontconfig-2.11.1/doc/FcNameGetObjectType.30000664000076400007640000000063612313745357015315 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcNameGetObjectType" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcNameGetObjectType \- Lookup an object type .SH SYNOPSIS .nf \fB#include .sp const FcObjectType * FcNameGetObjectType (const char *\fIobject\fB); .fi\fR .SH "DESCRIPTION" .PP Return the object type for the pattern element named \fIobject\fR\&. fontconfig-2.11.1/doc/check-missing-doc0000664000076400007640000000102112267155333014643 00000000000000#!/bin/sh header=fontconfig-header doc=fontconfig-doc trap "rm $header $doc" 0 1 15 top_srcdir=${top_srcdir-".."} ( cat $top_srcdir/fontconfig/*.h | grep '^Fc' | grep -v FcPublic | sed 's/[^a-zA-Z0-9].*//'; cat $top_srcdir/fontconfig/*.h | sed -n 's/#define \(Fc[a-zA-Z]*\)(.*$/\1/p') | sort -u > $header grep '@FUNC[+]*@' $top_srcdir/doc/*.fncs | awk '{print $2}' | sort -u > $doc if cmp $doc $header > /dev/null; then exit 0 fi echo \ 'Library Export Documentation' diff -y $header $doc | grep '[<>]' exit 1 fontconfig-2.11.1/doc/FcLangSetContains.30000664000076400007640000000113712313745357015035 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcLangSetContains" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcLangSetContains \- check langset subset relation .SH SYNOPSIS .nf \fB#include .sp FcBool FcLangSetContains (const FcLangSet *\fIls_a\fB, const FcLangSet *\fIls_b\fB); .fi\fR .SH "DESCRIPTION" .PP \fBFcLangSetContains\fR returns FcTrue if \fIls_a\fR contains every language in \fIls_b\fR\&. \fIls_a\fR will 'contain' a language from \fIls_b\fR if \fIls_a\fR has exactly the language, or either the language or \fIls_a\fR has no territory. fontconfig-2.11.1/doc/fcdircache.fncs0000664000076400007640000000705412306311511014355 00000000000000/* * Copyright © 2007 Keith Packard * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * the above copyright notice appear in all copies and that both that copyright * notice and this permission notice appear in supporting documentation, and * that the name of the copyright holders not be used in advertising or * publicity pertaining to distribution of the software without specific, * written prior permission. The copyright holders make no representations * about the suitability of this software for any purpose. It is provided "as * is" without express or implied warranty. * * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE * OF THIS SOFTWARE. */ @RET@ FcBool @FUNC@ FcDirCacheUnlink @TYPE1@ const FcChar8 * @ARG1@ dir @TYPE2@ FcConfig * @ARG2@ config @PURPOSE@ Remove all caches related to dir @DESC@ Scans the cache directories in config, removing any instances of the cache file for dir. Returns FcFalse when some internal error occurs (out of memory, etc). Errors actually unlinking any files are ignored. @@ @RET@ FcBool @FUNC@ FcDirCacheValid @TYPE1@ const FcChar8 * @ARG1@ dir @PURPOSE@ check directory cache @DESC@ Returns FcTrue if dir has an associated valid cache file, else returns FcFalse @@ @RET@ FcCache * @FUNC@ FcDirCacheLoad @TYPE1@ const FcChar8 * @ARG1@ dir @TYPE2@ FcConfig * @ARG2@ config @TYPE3@ FcChar8 ** @ARG3@ cache_file @PURPOSE@ load a directory cache @DESC@ Loads the cache related to dir. If no cache file exists, returns NULL. The name of the cache file is returned in cache_file, unless that is NULL. See also FcDirCacheRead. @@ @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 dir 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 @TYPE3@ FcConfig * @ARG3@ config @PURPOSE@ read or construct a directory cache @DESC@ This returns a cache for dir. If force is FcFalse, then an existing, valid cache file will be used. Otherwise, a new cache will be created by scanning the directory and that returned. @@ @RET@ FcCache * @FUNC@ FcDirCacheLoadFile @TYPE1@ const FcChar8 * @ARG1@ cache_file @TYPE2@ struct stat * @ARG2@ file_stat @PURPOSE@ load a cache file @DESC@ This function loads a directory cache from cache_file. If file_stat is non-NULL, it will be filled with the results of stat(2) on the cache file. @@ @RET@ void @FUNC@ FcDirCacheUnload @TYPE1@ FcCache * @ARG1@ cache @PURPOSE@ unload a cache file @DESC@ This function dereferences cache. When no other references to it remain, all memory associated with the cache will be freed. @@ fontconfig-2.11.1/doc/FcPatternHash.30000664000076400007640000000062212313745357014220 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcPatternHash" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcPatternHash \- Compute a pattern hash value .SH SYNOPSIS .nf \fB#include .sp FcChar32 FcPatternHash (const FcPattern *\fIp\fB); .fi\fR .SH "DESCRIPTION" .PP Returns a 32-bit number which is the same for any two patterns which are equal. fontconfig-2.11.1/doc/FcPatternPrint.30000664000076400007640000000074012313745357014432 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcPatternPrint" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcPatternPrint \- Print a pattern for debugging .SH SYNOPSIS .nf \fB#include .sp void FcPatternPrint (const FcPattern *\fIp\fB); .fi\fR .SH "DESCRIPTION" .PP Prints an easily readable version of the pattern to stdout. There is no provision for reparsing data in this format, it's just for diagnostics and debugging. fontconfig-2.11.1/doc/FcAtomicDeleteNew.30000664000076400007640000000057512313745357015017 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcAtomicDeleteNew" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcAtomicDeleteNew \- delete new file .SH SYNOPSIS .nf \fB#include .sp void FcAtomicDeleteNew (FcAtomic *\fIatomic\fB); .fi\fR .SH "DESCRIPTION" .PP Deletes the new file. Used in error recovery to back out changes. fontconfig-2.11.1/doc/FcMatrixShear.30000664000076400007640000000077212313745357014234 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcMatrixShear" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcMatrixShear \- Shear a matrix .SH SYNOPSIS .nf \fB#include .sp void FcMatrixShear (FcMatrix *\fImatrix\fB, double \fIsh\fB, double \fIsv\fB); .fi\fR .SH "DESCRIPTION" .PP \fBFcMatrixShare\fR shears \fImatrix\fR horizontally by \fIsh\fR and vertically by \fIsv\fR\&. This is done by multiplying by the matrix: .sp .nf 1 sh sv 1 .sp .fi fontconfig-2.11.1/doc/FcStrPlus.30000664000076400007640000000070512313745357013415 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcStrPlus" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcStrPlus \- concatenate two strings .SH SYNOPSIS .nf \fB#include .sp FcChar8 * FcStrPlus (const FcChar8 *\fIs1\fB, const FcChar8 *\fIs2\fB); .fi\fR .SH "DESCRIPTION" .PP This function allocates new storage and places the concatenation of \fIs1\fR and \fIs2\fR there, returning the new string. fontconfig-2.11.1/doc/FcCharSetFirstPage.30000664000076400007640000000236612313745357015144 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcCharSetFirstPage" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcCharSetFirstPage \- Start enumerating charset contents .SH SYNOPSIS .nf \fB#include .sp FcChar32 FcCharSetFirstPage (const FcCharSet *\fIa\fB, FcChar32[FC_CHARSET_MAP_SIZE] \fImap\fB, FcChar32 *\fInext\fB); .fi\fR .SH "DESCRIPTION" .PP Builds an array of bits in \fImap\fR marking the first page of Unicode coverage of \fIa\fR\&. \fI*next\fR is set to contains the base code point for the next page in \fIa\fR\&. Returns the base code point for the page, or FC_CHARSET_DONE if \fIa\fR contains no pages. As an example, if \fBFcCharSetFirstPage\fR returns 0x300 and fills \fImap\fR with .sp .nf 0xffffffff 0xffffffff 0x01000008 0x44300002 0xffffd7f0 0xfffffffb 0xffff7fff 0xffff0003 .sp .fi Then the page contains code points 0x300 through 0x33f (the first 64 code points on the page) because \fImap[0]\fR and \fImap[1]\fR both have all their bits set. It also contains code points 0x343 (\fI0x300 + 32*2 + (4-1)\fR) and 0x35e (\fI0x300 + 32*2 + (31-1)\fR) because \fImap[2]\fR has the 4th and 31st bits set. The code points represented by map[3] and later are left as an excercise for the reader ;). fontconfig-2.11.1/doc/FcConfigReference.30000664000076400007640000000131512313745357015023 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigReference" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigReference \- Increment config reference count .SH SYNOPSIS .nf \fB#include .sp FcConfig * FcConfigReference (FcConfig *\fIconfig\fB); .fi\fR .SH "DESCRIPTION" .PP Add another reference to \fIconfig\fR\&. Configs are freed only when the reference count reaches zero. If \fIconfig\fR is NULL, the current configuration is used. In that case this function will be similar to FcConfigGetCurrent() except that it increments the reference count before returning and the user is responsible for destroying the configuration when not needed anymore. fontconfig-2.11.1/doc/FcLangSetCompare.30000664000076400007640000000133312313745357014643 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcLangSetCompare" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcLangSetCompare \- compare language sets .SH SYNOPSIS .nf \fB#include .sp FcLangResult FcLangSetCompare (const FcLangSet *\fIls_a\fB, const FcLangSet *\fIls_b\fB); .fi\fR .SH "DESCRIPTION" .PP \fBFcLangSetCompare\fR compares language coverage for \fIls_a\fR and \fIls_b\fR\&. If they share any language and territory pair, this function returns FcLangEqual. If they share a language but differ in which territory that language is for, this function returns FcLangDifferentTerritory. If they share no languages in common, this function returns FcLangDifferentLang. fontconfig-2.11.1/doc/FcCharSetEqual.30000664000076400007640000000064012313745357014320 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcCharSetEqual" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcCharSetEqual \- Compare two charsets .SH SYNOPSIS .nf \fB#include .sp FcBool FcCharSetEqual (const FcCharSet *\fIa\fB, const FcCharSet *\fIb\fB); .fi\fR .SH "DESCRIPTION" .PP Returns whether \fIa\fR and \fIb\fR contain the same set of Unicode chars. fontconfig-2.11.1/doc/FcAtomicNewFile.30000664000076400007640000000064212313745357014467 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcAtomicNewFile" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcAtomicNewFile \- return new temporary file name .SH SYNOPSIS .nf \fB#include .sp FcChar8 * FcAtomicNewFile (FcAtomic *\fIatomic\fB); .fi\fR .SH "DESCRIPTION" .PP Returns the filename for writing a new version of the file referenced by \fIatomic\fR\&. fontconfig-2.11.1/doc/fontconfig-user.pdf0000664000076400007640000037571012313745366015262 00000000000000%PDF-1.5 % 201 0 obj << /Length 1887 /Filter /FlateDecode >> stream xڥˎF잯@e`zkMS$Y"`F^9K9zx2-{[y݋0X$^ۭM"׋]٭i^oޭ$I+ںi6Afpb>J2m, $V?q4a(םȍ'IzmŐ~ zĞsL N R%E7,rtV+=h HpU03x |-}=tI ]?&CAO_7_}#7*;/Q,. ]QJSqSg_ )k n&8-}'3m վQ anN I}ֽ6'F&"{~s8#R'!'ꂁ-U>=sd$H/>9NG٭VQɵ;k(YP]jd+ US!c yv*?,eGVmtlDL%=X?$yV?Jkrn('QG}T ] @-j0х%O\ uv9YsyrRgyiw͎ފ_yN!zџ[yEǐqv:ĵ"VGiAؘ8G#%nɸ T.[/zRp8#bU:7c zke[ )B̐z35иR0.Z4 {*Hb+JD&$5DU5-aI%d q tʌ&pҗ`ԒyOB!8).3Ƅ| Eߩi+*ffDCT&8j>PD&x!U9R@HPr7{9d6 ,ʛΦ!to>e>ÌmL> pe+}f6g@ZjzWCk,FA*,ukj㥓ѹI$T(Ti~kG C1ܦRXre۩Gcj.mH3|Nw+ygQi?q>4#g1AGZ;a|VQ)BDBb lSe i"2TYrr)TcD^')e?S(%׌/Ǝҥ8K{)M0CUA*g!|`Dx x•#^,ӁϾc@* m)r.k=GK pU΄RsYKсFDje&VmȸTzB|>cgmi%tᏌ*4~gJy"$XN;U"ijT>ɲ\CmJL:̴NucfAKg zK 䭖W.GeD>-3S8fst6 ӓ`edK{KT>9ͮm.d7IXsﭏAT^?-܉JaX&6 ~JsrJajyr)0hmSS#GV|\hr+\5 vM'xh 2Nr?f endstream endobj 2 0 obj << /Type /ObjStm /N 100 /First 798 /Length 1206 /Filter /FlateDecode >> stream xڕVn8}W F,Rԅ@R E4 t@Zneɑ4=cdv]ԙ QSJ24eXP$$ÊI$RE󅌤$cDq $GB 8MICsDKR#KҪNQAKa)J 9eM6Qse2RRzkc**,WiٮlݺwM}tS 3]=ٟ!롏X[nZfW.mml'_L_޻zBWhf/8}eY.NʕNta3.p,Mve_:)w!h6@箥ukd4 Q)JSY .ܒ[MkW@ɨnFK*\ܬ2 ̫Myue^v,mz ^V,]mxI zzVm +~7pܧ ac&)P٬֦>KpH_U3@pzD3Wwi͏pH~Lf3옺fMS] ZyleRޛAH~ˤ~&_m]8Dӎ1M7; =y8ׇ}S|l> stream xڭYݏKvصdY{@rW6A$MQmGHw(ɶه>3POoپӇzm4lrgdNge6ٖ=]pۿa8Mp2r=[4gK>i?Ti0:hˌ=1<}pm*eUp :_ DHkqުCd\ѾvUI[jUڷVx{E탮xj¶mIH^K{ؒlnseMv;k~kLmIU#2TwҥiO2)-eKA;OcA[0>;nQєxsw`B]y5\sRRSk]{_(ӡ8F>;đ,{׈ptꭰ|֖ _4UAѲ.L}j*e{Zed M9.uɑK `e3^>&d?D,ر@2{]:3|_[Y_T_&V,1>^*S^/Vk**<6Bb(= Qx! lQu5_ڡA9'f$ S_I x~:%o xo ,Bl ruPHȦ2 ,=AAf?FT•/%]!Yuw~qy nv;0YOcOwok"}^ ov9ҩt] q1Xct{X.9WGR ;Wz1Wmh5b* *{""8́mw1gWQo4kڪnܡQ'Otgzo)WdLfy⹣LWP<&rr|s;|E"*<Ϡ+0i/ۦ# pPٹ!پyL8SžOr(*LAV $ېW{hE򤌔/[&[4cH-c'K 3%<UBc Ef 1Ks& pl%ri-rtW_kMӜT]#8`ÒI>Ԭ㻜maPfb`,ɠW]S@kx@h >4뇶 J;ȍH.7c)LVcrEr81hhZ~} I O"p.A%Qy:g+9% yLYRoˆ'ԅF&Z,+z":a,m ] 7Y^q[7TcP m/uvLorҪ vWB%5{(ҾTmfUxQXnS|+clz[ӊ? dFq3˟ۡ+q.M>%"RPF1;PdDSP> stream xڵَ8=_ᷖ::rtO2d73m%|EYvI0EbX7μ^= YfqVY]/gIe4[:E^W_y.GKkhbw+W;E.tnTɃ\fL+y~ڛ Õk!RCi:ٶbA8MUj۾ifˌn;bTW"SGUgqhHH&"R+^W2^uZs`D ]Boi&ګ.MIІQ % #ѥk0v)d#`<"4sqGBL"d,S砛ZFq(Gz!^m5@M1nP 坩+}IT[z'y씿y^ FXƞzN_{eJ.;p^Y4= rPXX`ZX:9F[eIs*/B!I,53,{߉{-#p,mU1li4 Sh1±G4/|@A#mg5Vn {nK q=Xlz{f$kF̣..ahkஈ;syEvyU+ ψL~Pڬ{ku:X?Zӫy9_KnTcܼ-}+D I)?N}gg Lӹi!,NrW\9[g5!u6(K6 (ۢ!LjjwXIo+# a8= Bo#kI4x+DGb1J<1GygRxAv~lI* `UiTх?B@6Gިld%F'92$ U Vn^& W}OZ2 KM3>*!-M(l>N%Qe+ZeQ[y̓ %r1^EX;$u>P[+Ʒ1!3.W !G#8Lm~=˻(O%Ikl0T47?K1cO,MQPD#c&rBNgoqZ\(-&e-͏'f߯?*$aoj$Q$c[#j$9HpI#ou'R,ܑ27|<7I46,'Iqv m#b(vEW{0i"{E\oH뢺K3h#5L@O\Ch= _ 8^0x}a7k_]B kˤMLcE܇;~]5@l;~hH{hDT뾵Y߼~#*/)J;ioC"wzܲmmG?C=7O3\֯ZU]*%96`[0k(0z|ۚrYFʧ}cts$Pe aHyL{ZWu{Pv1/}&wF6+.Hh44 aLmp!]p_? \1Sڙ_ًϓnGID}\5GՂ!@\1+&wHmZs|SF>tɀ\˖OFkY21̻M~)6;u/CghojDzh@vՔ6 mXE`q5LlbH|Qg2"|8^3$`pAVkl>ͳar$M?^]Q-LgA{qXp\y%pem$J]?Y<}ٲ.j|rJZrPaԶ; D`q|FpS /FץXM),H#sl}ԾQ(+SB-k |eG~Pl=o"ݛ?޾s v7o!Fc!e<=N"7At[uLbgΓJ&߯9dϜV\J>Rq} Hm}zY&9[ݺ(q_b$G.` Zy7_$W=5܍-gb*\kCh !] >vj_ l+{ȪLW7#^;vHû~X}]s3/.kU ՛s"0zVDz/NZZ%Ok=HИ%֟0͟?d??0u;^JO]=De endstream endobj 257 0 obj << /Length 2477 /Filter /FlateDecode >> stream xڽYm ~/g:QjfziIstnhȒGvHd:/C@ڝl&7Wod:iEzNIxNE6t]b=W.O$Q3 1{Ҽg(ri^įn%pb*uAߦV0D&2O$I{&CՖf"Ltj"J", Q0esfj lǸS/XϪZiźvQq{}{lPx,)wjWVjrF^޽yv6ca_~ϊR L\я_/@Vrvݞeo%+>@PY9sAܽalM->\5/Y= WZ#2G]"e"B"n"\ij]̀Pdjl/W*yBQ0YhYzS! .hR֬J0%hp/fT^Lo.?_]-U@bй +-RKejLvdze}ߡw7f ֚`\\ F!ښ5 ɅhdV6&s0Hp@8"k%aMYn>tS94i޵>|?lC202i$oEM}yܔiC5[[9|o<aq//*T;AU`ˢ/v +-7ohDhtϵ6^Հ- b}sEԲ+5zBx+!\jT8"{_X|ߔv],DnXy^>*tl{,>ìnslI}ab m .-NcƱYD$PDtXB'bw;VB f2*^ɜ1t}]×m]f'Lefp!3zo8"\{W¡Ҁv9ߤUwgqϾ.\D7+W//#׷DcNj RĈa}'NӁYNqFd 뗁`B;b^a_=1J 1GuX"Hm^lS\'m7KrO}=!RB6(!vs ʢfs Bio0r6"G/d |D$5a<(_ә߾zc |J^iLI*mȱO(;<0"'y~@>R~b8lxa\}>n\P1ϟ ̇HeRkgҳ B$` rhHqH߆g݂g zL̶X lu?dRP 0U6Zs?+7~)""|9bx7t{57,>g+g=ec \|u.F^$K oDeQ!c/iG 'X1Xx] wY{(yիU wU 8S^;A1OG\.ūC endstream endobj 282 0 obj << /Length 2573 /Filter /FlateDecode >> stream xڽYm~0 ]k%QHSr{"i dh-ӶzZɑ/7ʒ3z~"5!yyH̝JfF~4̂0r\w0ݭg\lmYUn.uWH_x^Ot<ҏ%7Q |I-v yt3뼾\Ffv6}(9 IYT C'JA/r2.o.Axa soʖ?Koy)K&kI7kwģ9Uc2^q2$4LVjgp7:iL1(֧`J^n^yU:Lp{Hʞ׼05{忻OќܶJuq0WK/X;##z5fJul8#H;/Gy#3=ELvLQ``XU[nVdM?S/sq557n<ZP\ 3t`;v]uod=[t3}F4mmcZiZoWB#e󠋃tSc}o~|Ǔ5J ;<J35'uniI5Zz]ڙ#qw"Jr獌E瀤mXd:Xau_k@Q y#SRтv А6 a,$k >-agd. ]~T١ ˶D tϙ7*/k#Ú}3<L@!a8a ECɃ)}R烩XwVd薌(~ DNgCUˏS$=_1WQp6 n{Sb2] <-+ SxYrR'L^T.z0M;P𦥂#ďc)Hi]{k;c2ա.kZ?Nfxj>Ēi- JKBߥ}{O{aGu4jM/eFe;'3SңR=B:>3h bKc0IbuOMs pd.{ o: n1 BC Q kF"%IR?_F(%/FJ^D3d /jFkZuF&19vy+~F:5L=!t4ǂŮ* w'(k:>ͦ uˈ|I$x* S?н;N Po}h+|3ۙ2k <D2k5 y"d«A' B- #PH@N( Qna2`_sf,:n{bKyd6Mlf dq=C #_)@'`h*nkt0uekϪ ?ho [HG|dކa3!N-[|wm+̾%$&i`D+Eo/?,& 5l{!p'Gxs:*657ى[%w Q n'u 8Ov5L:ȓP*T nYZ8 2Lix:tlNdaPx%ɝ_e(׫*^s 1> fҡ e_:;TmQ,Ooj |IzCH2֞|aG?‰%p  f endstream endobj 226 0 obj << /Type /ObjStm /N 100 /First 853 /Length 1356 /Filter /FlateDecode >> stream xڭXn\7 W 4H`d,Y(E&vf⛹l}!Ň4Jo\Dp^w> /~{c<5qI1>o,vf9(LXҹ(R5KjX2SRXPfyhøjxzW3JbaJ)l$\Kc,V/g{ Go&4 B bؕNXgvqR&qkцJNk6 ?$m؇8v>pFGqVRY$| ?7ƗOۣxT=&k1QfoOǧp b@q,S{,:!Ş?|r< “%jsKoxms≉9 Ilh E!q\:֚ԉDP ̌jm?u@%#ݪsX endstream endobj 312 0 obj << /Length 2598 /Filter /FlateDecode >> stream xڭێۺ=_aZ+. 4=EP,Ї(h^%Ǥ6~}FY* ' p8W*\<.oc\,ʠ̢l_i%jQZsZg7ݿBY|Q$H-6QH~1+b$ʃ<)a5͟!w&K@'#SbeA勍ʂ$.#~%`*l/׺* gs4~W-}njL l;09YewM_ ;d L )vG^Fk ޽qkd9JY0&;+z?!z]y<#!D5(3 ?󵽀c>R/EI떔SMeFझ3疉KCG"rp4du׫@Rk0cv$p}&LAW7VAMZ(&-k*ۃiu0_a5Gätĺ}YѡiZl'a Ш9ezkA1Nԍ`B3vgxPjP [!x5ϛ9Ş\k7%qHބf{ٹ\H}o tO B;&=鳫w}ef{ .'3cqn y4nk{!ԞtIF?ͅx!K$Sk<"!j vd$ X"@ TO]0 ;hYNcٵ($"Ag91Mnz|t^2JГW=dOpFyߝ<]>RqqҡeN4Σ(3 -3j!Q,gvvFOɹ꯲V7 L5s|I"p9KŽdqbH`5pO XǢH "QZ|(j3 -Ikom_7RnX4O"(?,u }6OµXܒ݄9nT\a| Bz/$s!G6 Ў5w  }0}}JV\ Q #0X/ƨmNWTPվÆ c ةs B|&ZQKʶZW;DP!̼QTFth%(ѐ%Ro'<im$T#N4]kA h wZBѰ1 O8gej6d4\@I}ňEQ8Ti"%ܢl -3])"Đ4숯Ќ^.JBBd[B0z^\NHʇ"3oU8#ǧ Vxg*n";ދa =QmU؊ln?ەӟM?X#~NYqs Kw~_{2c` ^&Z K1ךtyNκ?rm)*I{y$kG{}oOI+q0ؔvV"ld1+t OHPfm :N(?Hr" x"T|Sމ94AlF̴BTe1˗ŔM \ԏMf'Y4qHcy5+t6Ǻr N߁V(do=' i8"xFU · 릵Pud;h_29}Ixŏuԋ};v !FC\_7˯Fs8w$RΙT LiH^ Z|F&|,Sb1T20KD;T,gv>#]8 dV*I ?*J!Rh7DZ!;ʓ?қ2zXF6Ywx; endstream endobj 332 0 obj << /Length 1981 /Filter /FlateDecode >> stream xڽY_o60bYQ)it[u@_ {؆)[,y4Q$+NRt xȻp_p2HnY, %iĤg7A^W]*_ KeoRpXijevk"ViPMc2挈7^aҶ+TDLW<ؚC{[T^e2#vڮf},:۶^ Mg)b4ːY[8{, *i턘3ɳ{/e0}LivsM*^綾)?{%O3>яYYpT>A1MG ty0&^UqĖEBXGOoO %)R.V.Fnxj ἵE_s׍zg氀һn3g7Bm&t9)iӉ^[k>ЌF YPh$ X\-ya3PApLcO?1JMȝÅ+6:ߛ}WtqrƑw,Z2dehCC`8}LR/h߸ߺ@nM^7g9slڷ[mYP6y`yvD~ 3^[#1HxچJLVYktFNm:zY->'lDX[|y|jPT6`MKc|>!\fL3)2dbT[Tc]nK3!EH&C?j&ɣ_Mۺ.'dD_p<;,#"\.D ;e [`h.IJrm )!k*?R<}C|걟EϢrf)9^,,})m@i34tZqE/%^{K/[\J>)`ᩋnYmW+ L;3/c[=4t #B?6xqףk9ͺoS  3 vm =$|OM|4MqIoSfܾ7$8G 8iz?Bjڹ>}yMWÓm<)UaRj[.^"!u䓓{kη(W@{NP7AS>nXݏV9X?XoVt`t;x FĐRcI8Y*x}_$ endstream endobj 356 0 obj << /Length 1161 /Filter /FlateDecode >> stream xXQs6~ϯљ9$k4{i;6| 5i߷ZvWu8 '`"*w [vFw ƭoUb9OϺ2$BVho6%O g[8%E>Bs/[Hv Ƨ$|e9=NVBsrihk~EV.K^F΂s4'mP4nF6KUU\ AG1z!|h<o6R,)!HNQyK,_!Ddl|6YwŴ_3䲻)v(?&+eb8 &)IR_f#Â$d endstream endobj 370 0 obj << /Length 1871 /Filter /FlateDecode >> stream xZmo6_K Ez!Ⱥ˰P06 %Wlɦm9_{x\wΫg . ܠ3t :agwoeezpAimiߣ&d_ .i! }zFc' s|\YO|i@Feq /^9qe2-x6ϸZ6ϏiԓEgfLL6aP<mq<)LIRrG(i {-SR|fjMYmi|fYs#ifq7/Ա~̏BJ!7Pi1b$2!Z+$8ļ6[X-0I, 6.bwx0>g=M<8/Y^NE:]2Q*7r=YR7(eY5}&a6a!"Xu{(rQJ=B (%fqr+pP Nn"N mh'̀UӀڔ p0ln ]pqa5an@A$nػl0 ymR/Or"N'khb'o-似 Z ŒD,4! =FM0w #N &􌓀+2NZ"&4%%acRK ܮG<5M"^#c+ؼ'{p?FP$e{W9EkK,pN[kELW8xm` }m- ﰞzm]6#'+RWw$fd@!nQKQ0Ҟ6ae_dkޚT7,1tm NgazyHSGykG\%c0xKRRuR1ߟI&nG6ZM{@ASZ\GO$ ml(aj% $Y%SSnJCry=MX2J, i[Ŝ܀O[[|heuyk0“Wq(4 YDk.gy@훋W?;Nox ÀszwE)gz $X'^/rS $Ңc+qU}WQCUyVUߪ6e ^AK^|%xu@)sO86_pioN<_N鷷/ޝ듑 M|>}Cks+Dr!zH>q @H A>؋ w*t (tN6QCEs5[Z[|KUGX{\Dh52Ql\,Ǵ@m4j*pq tkLR[7,|PLE.0lM\.%>Z3H+z,?R>$M([ F ᅭ oFj$TYfG&;\1Rrt6.\#cOײ> stream x͘nTG=]Iy I DFQ$#0y|5x6fNѩsNtuTΑܹ4FR^έ$U6jB 6;R @5'j:uQ>v*B'4kuof8,( ;:kc\F` ubfP#,>eBXXqج"5 PI|'wG5'dY0+Ĝ%H},mmA-O}VWd,)@eUF(Yt;#+)F@P Ģa=_rwguH6x~R̛:M4.97'o^|N˴vp>xa 7HCwwW߾:;6㣟ySG&F#(=FoBk}ԥT!(ҊdI7Hr.dc cZ=G+]u@T`MU39yUqX3#yl%N WuOÏCvs_3i.1Hf_2lS-Ĥz!8DZe0W 8f1[ ^ e i`L'331I-}s!mMAZcV |++>B 1.rg`IW, Kml[wu[mwۺ[mSyu|p-ˈj U]أ9Y NIsd3n(ɵ5O'7wN H[3,1ȮƮVөNݪ;o/-S+Eu[Wz V5\rg&4[?q8 4ԹhuMaI> stream xZ[6~_®TLرv*m/m՛VUU!c5N0Sf||wN:3u>\}= `L"a !3 DYh?&?^Vx,F2@$"BFj-" |6UKΈ_?e<|; \M.QDJgkͭHEC{9͒<25+Jd, )rA*ݘj]cw H+{޲VtҬ&R)ήs-! zsZŸp6Czcn: io|0Q28Hˣ8$R.(lx!m5F}2(GѰ$ؚ*ZB{@< p{=U%;)XT]č[wkOdmn= ^GHl=rF28N_}s1Kxڳ55`Cov\_l 1~ EXoz1SF;b KD&G@迊mߋNh9}yhbztT e^"e<8`$l- =3B'jZUi=LC @=%Ytt~:aU8ڡFYB|*e!씭k7< y. ֛o HEg60XSjbYAU؎m\n!Ba8t5ڰx~ Nt T w 6z݃٥ =6e*9g̳Nqo&ܓmÌ-O AUK~hnDhښn<6UE>Z:=\c O G` [k/fB_r+zW.گPKVM I[7ָkA J2diMƀ=x\`'9ObjH8psR KC>b#a}\`?xAuًkd@v0T$r`7+_>hV*SԴ|7'` endstream endobj 403 0 obj << /Length 1288 /Filter /FlateDecode >> stream xYYoF~`scnJvpki%mK IȯϐT%:pIrg9R:9spsG A=tNR}00 n}wyxgq8Ҡu}zFB }2PPn8P}M @} q3{C+@pv aN(2!s" twA{i*sfXERMw=W[͂ 0J{?xwiiGdɎbadrUҹař1_x7'K&CU\vLViv  ]=;>?^^)]랼1s~4 ~$D1iiU]o-Od͆@ͲX$@^PmOd}zeS\Jf 7BR zp{4 R`2NUl7WSWqb/vV_F4[э2z 5xٖD #Y#Xo&}XYq _3+|X)rY"OAoQr)gT4ZB'A־m_Tv*KmnSP7!Dm{Ϊ:0UYz2de=(gl/wImFY9"c#71*7̈k ܳk GIdP=G /"%+ @Rg*+rEs\_ufpƵ[UkۖK&&dhr [PiA2 Α'6aNA7ofuG8Z᮰6!.\]~۶ @utD~=Uaeoc}2LP^;)wr{kM o!{ZFw7_~~m~ϒ|{kF8gn9/l_rS<(vӇ~;QQ¿Ǎp>sho".ϫ9!CyF' endstream endobj 412 0 obj << /Length 2002 /Filter /FlateDecode >> stream xڵXݏ6_N.bFnC[h-^"hoᐶd3=/ ϶xWorV*lUS>+J,-׳ߣMךaQwf^N4Ō giiJg uԹI<[Ue1ϼ}F`e!#u;"qG9^ݵDw'BcƩoU/'bkЃ]- *+ɗn3_$yu?ej "21B#ic}A@(#b@2V'l:%Q{$o!"I T;*brxg@4oq,PbgR\j@X&1VneBL%"UC-ƁCB'NhpĊ4bD_zYW<g07m/QK;/6 6e ]oʜvkAD"ULN0xe魟c*9yL/08="ᯝ-BB,=wr0?g+q#7B^ӏ6m\:l ` d 0NaPY^CzBye$/jmB]PaRC9j\Jhl~̼ O y5^~}?ǻ77+/x2} bLiiMlj[1>_~OZ.*%vs| >EѣJ3n%H(a{|uHrH˖ a}To+lV;!#Gj{;u_|CGU=-wNoWR`in·*ܞweµhDnrSq0 6#89P]z":j8&P'06-*}m{@ɼ~$TjgҮG8^5/ l OrZR;~VNfqQ7R]"V7zW??_砈G! ?43~=)͛@.&:wWLIJ endstream endobj 451 0 obj << /Length1 1416 /Length2 6052 /Length3 0 /Length 7019 /Filter /FlateDecode >> stream xڍwT6҄RE:QCH* $$ IU*H* H)*J/_PϽ_VJޙyfϳΛwv05$Iuu5 $, 89XW~) #RPF XOuW XK@@!Ho -Tx큺@-$p*#Qhߏ@n(,))~W:P C!.sïP8 2NX,JJPS@x=X'! C{# n? 8Np AÀx+ C`)04:HS!~u~l,W?_(醂 GWza! C< pWuPMOg>  Ga1Ōe۬WFX ?8ﻷuA =>[pP& $ą%D0w $x7 +pgA!Q@0? @<`@,?`0`pnoh 0{$_G,htO)ߟTRBz}B $"?]Op@/]ߨ{C? O]L/R42;R{+!npW??ښ#]D[ORؤwY8)}EW&Ң^YC"i!ɮxEtOnAKіzeZ T }3]QZVsbUXTD.W<3c3NVaӾ8;J\SQhB͌oF-ZhzU2mq߷kJ YWkqq4R Ȟl-28A9VRW[)a=A^ދ@=aGI`&t0@H߽.m:(PnT-7E੡pD/]O+SeIaݤe}J'?~iW'F(.6FU1R"H& s殰#3N5vVssJ,=.obH\zя N*ܲn{Y6!l:;^򵖯U`A%HvMYZ!N1vy:<mA-@I߫ ĽiNF !OHѠG7& @7t}g ajS%'$yg*=ƺݱKh"P (.mВ̜ F.Q~1G!TN^Dz;|Ш9`2Vp0;X^fQͺJ,gPջ7MfoHۋ<7.tAw;3!͇~<wx`l޳[c'iyMlq 5'Bgt+o-_p|n^N>vj8cgآ -ִ&h^ce`>x/8/ :e4x;6xدfu$2Tp<LV9Yߺe1JIvsȂx`^i3e7 h jg'zH֞*E`׺6 p{# mud+pai@&EV [[eU`W盟^7Q&C,lQR }2G|PSMJ"1nl}@@sP!+(/s.{ɚCC{rO:&|;u]~ %nTR_[#{&fcZI?2`X@hE)!gœ'{1=^4h92oeùakz;4veP,1̜;+f:<&.,=XipՄ=XeVAS@Υfx3(H~!M5f<2>;¥ܒGكr ѽ+oFK$׹gzAЃAgz9q:qOzMR+3a,}3.IOOL"LV$2D}׊Xaʌk +JfJRoV $Ѽ1K(j 0(MHA}!PWHCCx.%*o׻zo^F҈,x7sLi31@B,q3iU44yg-e uix8[~<+Jt^^Mff4#[ΦV'@mWj ИNOPnHԅ ÁS3qzџᷙ?yjbCsW>r{Srר{W|۬3[eCb-c{w;fZ|`dNCA&G}sJ> nkZ TDwR^|a>R|btD+DF38=hIR0e;іIͷ/k/FyO$U R&:)+5Q l,qG؂UMI|; dSQQo3m_\Rwߩzg%SrܤT˪Euk{aS3drEyg{صʲj!\a#1,εk]j$An3& Oq5#B藷ʋ QݢT^:*o"v3$D}rZRNy4ȫȚ<y9X=GVIĶj񌟨޵@ܫXt9 (Gs BȸRJ{\9Cb +m a779^$w{R)?K˦ݓlnQ s6~h-}}u@] &8Xơ@|(&AhoKjt3-l1NWcj >Z@]*Շdaav[Qww:BOi753{ӈѯ,_?zsHXlF@/rx*t|DžiPb;2jJr*8UeYvKqс8GЯsHT+Nh Eȫp[g.Q-MN\k׃B ̶K Q7Ӑ :T+C,J\[_L&ҡ#L+!ȗvfD+~Jj{E]p ,s=pPjBEsP*UC6uwpf\c'~nfY?tp[_\Ni'Q&"HLE뷨9'Ku[K6>ka 񽭥e[/=ڢϨ brgYVEJ0RVB!]jt4gw vo7{dBgN]NW|IGCyo{JsRGZl4K>Fl2| J4r3Y|춄Okw0Ĭߟm~]JlAj$VDbRt)?Ww|ܔvYHIVcML>'4 rvXQn{3j9Ax0 ^iJ`cŋ2 gKVY3!wog9 }DQ美-{5N@겹eա*T^h`']mk,cag䕩 M&. Dq7oB}[百^͍lxzܩ"PIdJƺgforדm3^9ZtHQ?<ơ{52qK$I_a+|SzR*tseWʑibcz[=Hhh%ʏ*dgq#)tYeBVmz0l$P Q8uL5ԶwegUV33jv"іB&P­<)u"%C(R%Hv#xQ+,GWU ]]|;҆ш! z?kMn`ZIFJzgЫBi(s;K;e5#zmI21ښKX#"r*M֬; #w4k^Y m ,r's֞=Sw.yqj]cAti{ŖbFKo~ɲk)+n|NT'mY?*z!b Ƣc_- ] KbfR:;I&*2<)[Vߒ_~O(4#!ØcMSw; C^DPշvS !I<*퐄K?QrVn%R.C8LbqTFhWh5G[%(n@ta'iv)`u$F@clEUoW_?=$% !lOA bG((wy4m dv K5.ES1)]P+ކ2l^Y?Շ*5}Aw+y?L'Ku2R]:C VQqՌT~?/6dmɿ\DnwXGy];p RE*j!9;a2O+ͣD.`1aE/%T8x֘:ο0Y)T|L~@Rt|dۆl#/` aqFz\_K_g~uPԑ9n^|:6lU־Ș6{GǪ1mtNQ?!E g^ؗQ>L<{N_Ed&svXHI'jgҟѐ:G'2E0}1t;h#o ~峊ƻ5_+w: <* k?_.P60FPfkq+:v8&R;#X R*+ ]'Qו e\ouF<.lrN[D/6 XKaQ_]Ȓpq@@uUk#$Մ`XcKptzy錔 AIBζt36 |E[ϝ>v圱5GD-?\Tu Z$"qr,8jLŅK;J2prݷ\s~ a~Ѳ$:cNLJ juxL> ͋y->jŁync>yRXPHid{G %źQxz qKʽwǟ;V>|Fz`Ga\xmI6.rv kz7ٌ(I(^ endstream endobj 453 0 obj << /Length1 1408 /Length2 6052 /Length3 0 /Length 7021 /Filter /FlateDecode >> stream xڍt4ڮ%A!a-轗(QQf-G wA.$Ѣh|#9{׺wZ{?d aH($ 0?$Di8F0DW 0EDݜ`A10$Dw @D H/_K7 (!!; C@ 9vBH(G nI{ , qF#Qv<|8a6ˁg؟9p\i`h\6it\`? /r/ !P(#p'@GY@6'4q ָߝCrzn㡡( ͏;](pYwJ3 A_Gcsa G^a"` `v0 @$.&,.`P{^.NK7 ` Ƚwrzo?-rAA XT0?6QpO=A^6H߯#U?'/x$@!Q@$& -|YF?j[$.OsWW<Fh p Q/X )99vsn3on8 ;j`6p7a 8%!pl Dp2f @pnx5'8D/\_>#S5^0ه}xgq y6@R}H5]bc9` e?vPv~ʿߚ\= ke~"?)]$#a ֕Ng]lK2RpC Ogwx`x  :LJ[Z ԔĮo k@B>]ge$`>F2&]pT?VjiV6(QǠ9G#a?ex 6i?|F:&c 5!aRKV$p 6z[pՙE"Wț5/5Yw#jcІ%6Ǽ.K3MmD/a!o$"bu2wF˾6Re5L9ګ mZV֌p=8UkB\N b!7vzŭ5q%QIBbG<+}7޵YFn0E5D[b9w5$-S+NMd+FV?Dwؠ?|v[ n ?ʑ~FٌCn>͠qp f+(t1 _FЇqCǢ(~rF'k궙#};qnVM~Yl7Y7|'%`FyM/h@r~ U,b`˕XM*$xand˿lra.8]~d5KoEk+ƺN%1 i/suG~!7y8 rVa]E aޙkZ; kcC1 g  ^{g';~j^ $}4]?hQB>>۶&ݖW qU/ Ch7$w\3jeh&-.m9!4cgA1 _Cܵ n0-'͊*c'C4> FұmNrlf+.A&g ;};׌1l!+Mlm[VYƞ>L ;"@}'V>%ѳf\?WP+Zrkᥲ}Pߜ*Կ9 3Rep0'"+f|uƞv-,OύG8zv SdB\ Ib/GE/ Tu1K{Me䓇Ⱦ!$IT%So0rkxǕ䣻H铀H$zE=Y̗`^KގљW  R\V k߅*š,mkH<ۮ&ge"g,ݲ1V::j%fOGyzH6PJ]4D8 YidnPJf9b+~0%|^;XXd S,j PJA v [4$=/O*V⼉rN@"Ĭh06r 0b9"z쌡%jFo6Ӿ_5ʁ.#G5'b6ZE[{tX&'5,[D_6KsʴeJU4⫯BC6ڱ"ZxK{1sA%с%KP(1j/uUM{Y 8J&5sت485E " {/Ɣk(=KdBMo]U!>$504+\m,u]tQ@6@?YQ0$&iHgMW[PƑCվd'Zs֦E6v* ~9Tڶle.V^spJ̦VTU tH\lgcIXx&H2̏tm3fC*^;ivj8Crt &vǯ\6[ ui㹞cd VTKuh%k ,IG\=y}ai ;}sxzᣅA%+gu]^lL0#r1BCPz^6bƹ֔Vp,8U@|sxm2?5X1WL%x:}K|en6jCyOԟǞ|&SM&sQ ТepjQ^(p'AC*0:U͒NL'+_>1PMRAJM%:zg,H9G3ztZbc\a9Â"M'6T̯aŁ۠5ĆM)m6ȼ<{N0c,+|ɃhI#Tݪ~ v+ԟ޷QЌNڷwj9O{e=of)D{÷n|9Wȅ3z;CL"-J9-]fx-Z+ hHFÍB6$> lwنi\Cw"_)?Q8v[@Ī ΅ǛN8^ @t1nBͼdlLmUO䭷?To2) Pmoe|>82+Ȃ36Ƶ}HO,ؒ qW[L$#b.R)a}ǘe*O.[)w;?\e%726<Ӥ>jxP-‹" ';s6Y1;oUm;w ٯ&\.Wkw\QK=8Xq8͖`gW!Z%òU gCF0!2%`;uycEd Y }J{S 'BN;Z:8P FjpGΩIaJGצTwRK&_1=0Į}$=̺{G,|ǢE0A)FCWmWzBoȕqU#хWv)U6)W+4 G_UȞkIj H 9|Em=KkRӹIT|Gy"cdN4$ C5l|WEN^ǏT|'p@?SP3qML͕uӨt_4C tr@tX0X %Ai)Gzi~":㭋M(]76Bbљlj91IAw"NKw?hJC\ Ҷw'vQ(ԪPIz㋦˳q-7G !۩s#%=rdΗG_ԅ 4kfvʑ!o8O2:/QgRLYuiJ?Y6J).̚~tB]E Z{*FlD7ih%13Э@~6~`$T 'z)w9@ʓg(p+7r&9}fck(ׇ5d'S-Lŗk7MNR_VU Roi^}h2B$'Uމ/ %tРp(o`FC6ROXȑ>^V<%F _o3ABBeyEd1|"fw֋9,mHas'^ ]rv%[2hi7qZK<↲ E<4$K-w Uys{O$z]eۭJ]A{2@o8&iED7jTCx=*UG >.4uF`"ӓ\dK-A ƪKɹ~ɳPy|i2pфJu 3_%K@,q;_9{BI9H"sаBLn҃ /`1O|o:Ya.$Ld[t, OI/s=>& hN7+b!2SLk΅^4vL%nllsw)hS*#g@O g -mNEO|XDO& r$GͲKP޻;4l rcj%tV1K<"swl]\@ړ(ǠA>O$͍l>_*Jn/y8RA*DhϓB_ F:+A*UOڊ#ԧc;-kj[xv&AT+EF.҇At; PI7}7't}3:{; u< ];ݛxos}.ef=0{MIGG>dK |As*ΕlJT)Y(FPe2T^<,J'j1|ؐ]%8 !֊o7’P}-PE>^h8|'Lx@W˧d3n.PNN2NT_<f֞V;XZ9Jzd?v-V`ۇ5S)|2հ}D̼0;s~fj1pzOm/LVsF]C4ia*$٫H$?Y~)/#oY46*#Uhh< p7#=籃p&fUr}$:]H(] O1VRI2g]úM) & @M&)xwVhӼYsܷJc~(\c4BL>aR+g|/:s.k#a%1s鏘4 endstream endobj 455 0 obj << /Length1 1606 /Length2 9511 /Length3 0 /Length 10331 /Filter /FlateDecode >> stream xڭteT[5$:CK 48!;]!8wfY_3gUΡz$bfo21&{;y&Q{3 J āP?@ dl|||(T1{w'%@E/ϟF^NBv-> 9SR֑QJ)j@v ' @l  :o`jogK  S1)OrC /0`jۙ8!7KKL:ZjC/aKD@A2K0'_4!`;1`8,Nf6 t'utpq_Y l̙Q_jB_j[PX,=o\@N нٸ@(,З> [KtQھ, 共1_.l?d3Q 7 D |ŋ̬;IL 5m^f_ dhLl[M _7$?_ӿ_T;>!*jd0y#Kc+ tK'{?a1zV:.71UâD6't.yxަɵX08?_:G!bȊFz'O;]ՙ>!ܹ8clw{Z.MDɠ?7" YAH'e 1b^?s8t/>ԽNؚPʕ]zX%h$Ӆ u~`wZ׈\@W6|w0~v*0.CaHWNi@cٸVIA;1_ޮZްvsgypd1$}d]O@*_Y؜#؄b>/ךz#HȰ(&r;F#(fM5zS7I-sM(n" &Y9To;fs%o_Œ Y wNm\^y1rLl]w,[IcR"z,(&z|l{'L پnZ2_%lB~ .-sR_FlH;Uc=7x 9vy#ANm|kPQjN~ʥTf6ӏ\%5>R\œJb_wfg|qdlZ+ݔ64wPF:'}pB_{i, 3%(r=޿SNJhdu(uz~o簂Aʽ)}+ _jǪ4qУ;3:u2 qrԞh9j+J#W* B<ިmNvSg0v G(lJ$e@>R :lUQ*GK-XOtb`ekA֯>gQ8͘x #N&P[jP y7q6@Ur~ng_si^ʲi̽y[C D앋Ño9hN)<㩣i+}&xvqYqYinR< (~Cz-Pd~v ig;سZgrUv!i>{#d X Ix֫ksn Ɓn w rN9g D8 -TXJ_*&M$_$h[c 'W8\ ɞJuvtim&'o{QuGNkq Mod> Zhn6k}'' K1Fo˼{^):8}1!hcpV/xmAWZ1V#Ō= f\~fOYPO=%Un\5!{ 3s;fv$|Gfp[ Tڨ)9ؕP JR!D*>JS I&I*ͭ0F<)'Sy>j Ju[]{ml#vb.? Vzʰ9^C|C~"(VX3.`>XN8bGB`[Bt.HLxoZO{"Qn!zxqUCOQ Ӊzh+p .p?31Kojet ^%H8:"H¤&s0,hR>۶D#[vBJp\9Z˔j;c^x& OKaXi{֝xVFR#tgwyz_ .9+%咁^up(9O/Ld-m{X\ssfds=S}Yjи6Pﶽ>\ȶUO=g_wHfR: [@Uż86T1:#Wb^5#9_. 4픖lRx i{) T]qgfo󸈶h4@NǼKn C=U^n]ҏSek@& (|=Ax,TԋwZEE,J?'at'{h _Z4Y9I nG7ˀF7!MH {b2^` $/"ȳA0^3SiK쇸b+Z̎piޖ, bɎ(_7!Iof x _]$XD4IBF ?x?Y"gL&GGEr:SYEqf*T#Dy'9ž CyVcW)cz6eTdu2L1+T@)Q _X+3{m$Y/M΂!iYXO9FO"D"`轋{%wNA0f (|6a^vo/ڑLJNSvb} F_M]I.$[ wJZ1`ϕ/<v~"*Qxmqh"Vx!vO5giBMa;`R]46Ս& :߆'NVĮş6!TcLL3p"oi_V0 6BJ^">73거<;匄".{Q`7ec/IjJkBr7r8xJ$A[J3[1_i;m$;=k(\0b-}Gz W*V)ۣOa`4utcS[p֛AZD[#مYȚmll̕.лNʨpgi0.fZ]ͱi5B lEv[h6-Y|uwHTn Y^$%@4)FLĕ#R` 2l`f^ܿ+ivR.@!vIS 4i|\b6v3Ui&im>Ze f _d8sC)UPVqmyW19U)Lnf{wMī19ig# ӯ7!czVE)$gnrL?t8!ȧ_`]dZŬp6o`TZ۵\ɈթfگMgv`S*υ7ea">}H<պgX 4z6)⍉<}4EfYTZx J{y ֽ^xmSp_!^0TLƯ)m͚X G DziG` aM:um'Q: DZܬ̈|$y-FR~u%fxrWd;lNyth& k#d_C0b]J;DρQpNni>#0цoQk|i..*2^w-4h<"M R]4ճf(B1".]>w>7St+$ _HpUG6@AB6[ľ3PoWПUTK9\3F#'/ے,O|r"WWb*sm N{ts)iT3W+#bVܜ=[JoX:) 9qma;R|g5^5!Ԅ xA&8ӿmKhB`~g ]`xs@(*gG#(Bd\xZo^C4LceWZ|h^[Dώx4~ꁭvhJiW2=dHͱid1tl{gjP|Q}_iTlldA,5RN8(HrEF:#!t d*M>ihԇ9y+Sc'HDϷN"2|5q~rk=.ZTс3^KnX?)`HSы@;qIY sgP4C DzkRIɑ-y*ab.;y$`ې:A9 vɱT&u5oJ|wҐ22zH hF4\*k܇Xr7v]TkcAPD, RPZKūS"LK6#C2땨vHi GNl?cPm|7t_p;J6OtH(4a{6əVsP,T:GVz$5FRc8gZ8-TVHWm1~0` 1b;Er9N1RUa\k@KrISB%d7;Ѧf}g=6) ~Q lsvܯ —;aF\]X_ax<ܳw!T N.EqǤLl'5fsK_>”"z(Q7;X`EpX_RxHJs ,)'#F)9w9`80ڤjD0c#{WJ:TIbvG*ӮE`.% \=o&wYV5۴j5 uD$$!} L5>رDlu ƙ0c&rђ HpΫCm`!N E}jT|W; sX?GBH6§ q ?^<րs /QLjwІ2&#;빏E4IW=5BH0oiޥ|t0gF ȋr{Zb &h}Iħ':@Sxw~ ->4 '4y=R˞A*R0)ZfJ[tP8"SLA`pi3%|d3}dF">iW noPkEX`X9RQΜ$J?MX=8 Fd^NNUrh<ƽ ea<[fѫ\Myy[M ڻ HvL4΄Yptn߽WOEYĥ͝7u* QiD *jDm wPkSaFX|ՊEag_ɲEҝǧ͒uѡR)xAJK2- 3䨝&ݍ'giU a&̓7+!@=Տ^ +v15(2ŪY<5 sr?Q h"CRJA8O!eԐ WZ#(DBj`d^[vt}J]g{BlN݌qk{NαhMSBN;Hu_aXW:Tה; \ ~_dXӌ9՟ w*DˣV: 3E ZH*V Ѝ9ؔhݞ9 F=VF*4?/v T#n.MZ)G,wSU.<7}ٳ{% bYcBXXhnAciC^+ %Π]([eϸ5#zlo rꈢiWޢ5q#:I={H(TojYAF-Fho07(!/HQ•4j"fv*Kķ)3ac,Rp@ee}/ N9[>[4|iw\a-JZljIFB5;,b|uv f]-f?xwa_.EL׵mJn\I}3rY ׹w'ujz%_]\l+ ,~]( endstream endobj 457 0 obj << /Length1 1612 /Length2 17304 /Length3 0 /Length 18148 /Filter /FlateDecode >> stream xڬctf].mm۶m[wlcu:m۶;;9=XUWUsȉTM% L<k{7WyG9zsK7_#;,91Ah47XXܰQG'/kK+ J]E,LNWkKws;G'{s_덪9 - TPH;LMr֦ GݿSG3Jse% 0:Zfijdbo` t1v``jfv rrqaLjbͪ$&o@+c?]#M)_0@ckWO.s\E\-]]];U'_8X],`Y4miϠH;X8m7ss>ws5ꟙK `fn˨@2 "?qS= -fg`lw}09?w+?5MGhab`ULhj0۩]*f虙çfemjO2w0OEuFa5U) 5SW{_byGCDCҳr8&bf?d 十.֞ݿ%31J?`LU_ܦn..U׉[\k=MaWMyCm2ӁuX#Sb}`#aNjE5i{ܕFa M3<^gNeh0({SͯH P):9i J5c|vu84U J> f:Y]I ɞM6ct!7S$>?Q BÐc8#Nz<4~Bsz* W1}G"9 Zlr媹,D+3MLG&rvFt],VK~8ϲChfѾ(_!CBG$R<nv9}j=L$2aY\6YOs0?MI7$P/1V&o=+;r1]FVq9@E~ئ~uuX$Rs/*O ecnD# %}?Vɹ*ތ6t姌(Y7K!7\J6_>dYÍ#87(S?|ɟ?xn}氉^TrvhkC lƆП&VybG)˼Z 3`05(`* hb؏ģ:;Dû=Dg](FdjZ!%{f診fW0 d?z,wp\N%K7BHd6ܺaS{" &S7㹨Lx?jW^_(]$ v{O.()!\9Q#V`s < A ^JBY8In6K;!34/]OW6XwTD\oD?Fts~c4Pw>\!X[uo| FDY=: ^xP܇d* }8tg.WdK^ޤ(,qTcxZ0f~"T9Ṳ|J ?zGk B\*r5cJ R"+?s =/%SvX@J^Fu r];s$< ̈́}5, pg&mޘO@:d]&Dl(N7;^LYlM$N&` |s-KB V.Aiɜ~H:_pBf1x@Z h_;ig~IY/(K˰STރe@G_vemC a綔ݺ [O-7biAjƁ Gh&)܄ TI@5Wk22Θ qE "T*%I>8vUFZazfe~F` 0U4-յGh2)UR@d}c2kp21AsGxۿ ۱cHY6ŀğ3MCjVgh'3Pa18{- Tbb?׹}я;pހQU-_'/t &N_Ȯ^OZRƥyC zpvj I/ȩQЕR-Pncn\exP[ ,]`f| ^%\,!ŏPr˶<4%ODԸ.XYpH|48;5^74=OW_}BtVJW˵!THP/&#@L fo/,6-*Ά`:A0;Sݮ `躭QziCtvm5;4qTwW)6M jF-,։/̪֙T*)jO[RDo_UlK+慭H#>+Әp~W a(zTw\?Ԑ]u'+W)Oj ìQ"Y[ybE]wS|$sŦ`%|s, FRosM~W07mJji@󇻎ѠTL- Z-/ӑ,ʌU6FJيT唵 8my[A V1( &QR9.,LW6he%g}L0~睇%6G4kр}6f]::GKc¯[((d#yӺx<+I'ݱ"#uF|~Y#DLg'd^FFB?cFsFg7mP2RTWPk!@M|pu3l3+[oG\tT5(|<|KμGIN2DG}.~;`U!DU-y'FOsn㭝/`<apeqFN'?&޷?4Ĕt7W|;vtc>Il.h7 Km"/;G'R H9 "Pm4?!W7?9:;tuITެuOZ8cOGhov4 Hi1ADN(=4Uߥ c3ͤs0, Ho$P:ou#߱ xvl'6XdGErk5,g%E`H,wr|9qkӌ{jg/ՃR GgD>XwrmgUdquGROJ Mq.6ƷE;(5I !c~wD~ސ$Seflߐ8TἪL¿)~ 0ajgG@)Bt%tA/+1A,r=2ҥJ6밃ZV׾{>ƻsrgm11fa`MHҰuM,_XUafž@!`S!˷|ܞ>P]wmG-y-DBПqj 3aG;BWqvٞ <SLl֣ ,MS7 ^m88*J(-".nnhL;P ÐHP 6"zwA!8o2G/%Y0|i_Y_Ff8 ̿shnmJ  7b[;KZaq]0a_X-W}˭BSH QٕᢠsBK $gW+nxSF(b Du#ଞMM˗p 4g(Ieg-7n˭_YbD +代"`=PͲm{{h|* jcSF$DMuZ9˒#ISC2ԯuBh뎢ҒL%\!7EbƈʮP}/J(SNiz[.I qpͱ:n 4a $9K®f9ָͧ r$SbC.=5\ՍAʛ2F1$* &%F Xg|bijˣghG57_&kK )W8mr۪ r0V3'-A|'cxں".R)3Jv/M8Ֆ%`idvOy;VWG~IZ:s*~9|u$\:F慸X #"ޤ0FCB~!y6YߍEzʔ9\M+d? b9గ^CK:Nue_vBYƇceJoݵQz0{1=š70!lx 0TBN IPZy(~:U@=2{OGG2g{1 o/3`E{ l^ r>89&0LsEuy,vbGvtiAگ97m쀙}fSg&o}-QӝSbuQPNȓYB_t9^_bfk͓xer :z2]aH@h U8rMSMǔZ[o d%GqT qbq1ϼDK{V q5JaBStgl\A%դ'i{I?0 /N~GԤfGZ\m;tx7WKțPRh 3!08:c?20–QfMٲbD V#l8F4cBM]쥓2#`䞆דRB'%>"X:9}jQW$4gΝ/z p"*OqÈ2MƇȩ0fR6!Ŵqn6KGROb|-17nQe/x+WX`)() vi[0NlE+YN@C$N##RZGFMݵ}ǿS*&6b9OŤ`s;xIR.$h)B$B~QU}i|$7O.kʫ5iM׭4|-ΰpVQ"E1'Y xRfg5O`p^ivm;hZԾ~Xaor#Ji7e^AStf9W]Ƙ7GFŰ}Iz`CrTbGo-牿T3ZY'a3 Clʤ"ǸE+oK ˞щ$#sA1ǰCe++iF$2OsGAM| !kj:UਤDp&#>6_ % 'L( 7J;ܸ$[#fdXe{MhM\'JF]ʱ{j. >ɃrK69wiOCԡ^Dk<6ܙ:T~^-m}~\6m Z$㎯Z+_G B|Iww'?=x=^1Ub&R|q/)T?ZuquXrIenAl-jk'>ٔ"ygPBS.mrq E<dT(@- C7~< یֲ5%L'zcz-"\7"\\MED1h*:y~r^_?\)I<էg"[ v-ܱnmP??  < YF2Vi0lE%|!: }%X[j0vY4|sһ<)Zhɉ" YA<.^@vKL3dhevb/̾\Ae|/rdBɹN!{sسf^(֩p3A 3fR.[tQ{!ȑݢ,E8!"%h&:iV362ɹSإfHFҴrk!E-jm*n 7tǫ<[cgc7 %h)8:9ۚm!>rYpזh^q\%`w:1S2~84sn7"Z騙ϧɌT Jt2SZp\y4MYj w+Ǜ'eկ~u2e 6d AZw8Қ?y^ohKSޚ).VߟUʲ/`MN U1:%>K*&C`/V8B/Ϧ^JcZ K 08(mWkz-2YoO `EL 1Fu1D65vϐvc-(CijӆD>ݥw%X!3mvʡ]j)8čT <Հf׽v{|lx14"sUѴ%ddVU&{L /ka'nsMԫoa:e+ĵ!)'͈T 18FEbD8H\x{65ԶvgBF* dp/KDȋyKh5zy7t^:wO竷̓e$WmdO/F'1"`(8qrNV03)<<>kixDhOD<+Me3 Ev3y'6BR(0SX3nIWV<ܽo J$k-+6,j }ꐗ|OMu:ti\dJ'^AMi37; UM|WӪ8͐.S4[=uV2ʠٜZbF xTU,38l+_5EQ6YG[X4 LKvfR\\d5.Y::Rl46QHR5}B89q?CgrW@8k "_#׻9Cj,x+f^<*nhqi% N/R#wfVܷjen pnv, ,O‘4ēr Z\9M94Spmh+9K~5)j}/kW{KNl;KGyMuhZ8q1YlaZRvz|N.X3oC:8%׿p}|oyK֜zd q2o<"ݿ\ޜi.ֆlȌ66bAW>W+ie{uqtsor  9!65y8Զ몲0q9/ =0Ɵ'))(鹒8iRi"VPk \L2Q2e9WjH39qn.F2y"*,4%3s_פ_FnUY?QmrV8ɹa6b q3\YvL,kU+PL٠ ^''O.p%*bJ^8 !d[Msͅe^^xCSF[& c7x M7MPr&T ( Qd8i1t*2VKbz✲$Ew .oE1liz #ѡ_x- 9/ 'b,k!CGhGܭxc^ݙA Z5= *+G RuxGZm\3 )1Vc{]+G|?(M3vs)"vH: ~/Ti\SP5HKY6h RrD bI/9' i ,CrڢGr{9+N=W9SzQ5^ol#\ANSiZ|k oV.sd]ٗ,Pr+S'iMp5H8FכzK~~(ΡPZ+/KˊڰǪѽ@IuEJވ=i`L^͸P~8xqV6%:; $3%y)EG?-5H;X3sm):aL(ntpOy[gLɳT yXp=f\Xlv(m0 YXδhT̳HR柈횕30i I_ad^J԰i' P oU:9;8λцC}NPJntK}evjq_9LVn25W:hR O/no+˶=FgF* SXv GR÷`DYùXcBpӕr4 YfG6zʓbP[*\ssv*0j\f. >$;x&58:uCu$׍47ϬNIOi5e~/a$ӫE?7ܲBWfR|}-ɲw1? L7+uS{T,őK w #^[v`8%F 5Zhn* nUd6iim +Ggw͇]:v@2*9yܺE,K9KY|UY@*(XөU&5;1Y@\Ԣxû;?FxoqL Mo24,yYw,ZH5UO6|?ȫH:,":q ,BQݴvu)V*h)0JCc/@ºj;YիۭbDZcWLDf}@qSc ANGQ9ya.(Sc⥼ڙ6ҕn^cڢ`3gD>`E(V}0: LUKNe# roqǺmXz«.^+ĔgrEN+>MN-ֺ׃dHk?,}~ O՝EX|q,nfgl7xG(^:u%q.+, |&pDדD#sdz,y\_`&_C$C-SB`ߜaX3aElGCl2ۓ*J,}/r퀫Hy*{3^%q,(z D8‰UD{hvq Wv&J(1׹!Sp4F\m&&SDV2~@B*A%Mw |6b'*TV1pVz>x*Kg5@NiY@Fn4= I!| ~;BIРZ|h~ف }XS I'nLe[8t_~eCPG'!r?fLj10|uvI:qr)"KPqoɖ *PYW;ŨX 'ka`)N|Αn[V %wIH/jn>[7e'fX,,;AvP[RybQR<<8w ,]DqtMGU|I9(H_.P-a8'U<'@'}tǣ-y=|:)`#9HC ;yEm:Uw7^Gw ﺋR*[ݥ%Ւu I7 ֮WlK!"N܁sa'&{]?궚fC]ERrޗXb,M݆)eV^dRS[);XuL!;I2̙b{&=HO>i3ak~.XQsᨗp1F6~ KWs H{!3V gas䏒8 h 65R1pWxؚom;)3ݙc v6hf̀Yl_)DDF px^姇1B ݈sAڠ2cXͼ_Rh+,tz⍕ i7o]J["}Ait=3A|"{^T" CW12VH}s T^! Wb.PYguW7fYapx(GOrF=&n A\x^쬜N'ɑ^m.9u-YtLDn_hDXH*]mYzJI 1) $9hq(L[K6^TKFt@n3;`` Tv('Dܗg)`| JT7fµ&Lu^\7ƿUIUs|b\,bUK Lm^HqC&h36K֥RPYMz{R'F*FRt%Z-?3 0xPU&%(2gX ?T7?=M<0ߖ qz/jt e%:I+_}F p-WIb<%wL{޹<) q4I͘$PbWs:IE(&؞^Nk ș9Ņ8 HIz3aWlv2(HWHbjyaDԭ25Mj>M飫9h.F&k+Or|JܳΫhY».N ̕ShXtN:`|KI񢒓t1E փ[ 苿v $Qpjjg o'tN jc̻&N !h2m^)'_lحvVid4YE ^VsԙK dWw"Hj$'af`@QMyXdwrzU z0T^] $2źy\6/N Rfp+U0Ao$tzԢJT 1*At1 7dhT6M'6WYz@ >k4q [d:qb@]&̆Ў5qh5}O 7jzR E/k`ݤ*gX ԽsT'L/ A'.\V-/jbx?']Wy Wl2#> r,jsgJqY0m"ܲ62[SG&MKO`~!0pL$PKJAmx558 ɢ8EsԷSZieT||=Ft\d[etDCIǽ#z`"51L>f+\̱?R>lA"C'Ws"fP110ɯi ҧ4=L2Ȇ1Q>Q3c:8ήq MK)qCF5jX)=2"([Dkp2NхY='n/7NX"_ Oil+]?Ns;/|Mw`~f_Iը fG6yEX<> stream xڭveTђ-NM.Biw ACp\ #3sg7f^+9vծsVPjښm!PVvA2Q"nkm xqH8`[1$$A@''C@@ ak65յ0qIG9@ A/ jA U]9e&@9[TL@"8f-5G,1G1AvB; v;C/3/~3ۿl_2l^b/`PG x*)P cڎ0%( q@A?L@SK0;_N`?0@ G?gֽӶ6cE| 6CP,ƜADgg^HB 3T6e[KINe-[K -dmllx`//#@rmnC&jA b";+?`Gi+T Ž_fׯ 19X!-/`y@e"_lJJ:LR}Qdk_ qq[W 岱sz8i+C9Z#ښ 1e' trpxQmi?Ksw)J¬Ivj>۶ |zZ;&6{h-ϸ3A`Mמ:!f^mcg =v/ƈǂ$f.W|s}^ax[jap*m?C&eBΘ;*R.y 5z[-Ž(ʼna0Z~{Fb@s)>uveP!N\2}_hG;A&IG(xqxsπH)n/ ޖ=\hd(:2h= rNol5ԞAc451vTFPW=v蘎 yCGK{U[ xe4g$SE1}곢U(R3~NSdSRS9x zmyLx CcphD1nN]ıvM ibgxT眜pFz's6›$[p3'pfAlCmmCu_`=U{XPԝ,BOa*DA+ͥ6U/j62ȟI,z.BG] sIw̖mf3b$HIwlE2q6i/c Yw 1%XԺm}:\CHEn2Nvgއ\C=`wDVHAQ\[1W?RPk1>K ~"QH &!iG"xm$SkC*6) I݌BXJ \o[O k9UZx(<0%rFSTDkrrye?S8PKr 2'{ig_gxi7t hi WT˫zlZe T<\bˏS@rdD;Pʑ dG~D3 (,ֵ* ÷Ŝżsj 55(piPP%֍XǼsMmP9HQXY!}dM𢆠DKlAثuy[ N~23e [5ch!'څIdm͕BKV.q(|i,k5]C0 b }ӣ |s_ZdB={oƧ&tpk}pU~FSٛ MtX- Gok:RU4x3|c!&N}3UKsڠRxBͣrmaÙmݡU4IeCM2Bg(i'A %iAc P_Z@v(wwgmi-&lD'}ݳ˰Id)#zCr(qN\Οhy^/yX47GIHj/40(ӻmss43_8=Vj't.nֳ07 7zvf"7 ph~];bQφՑ()p&63I OIcsq"Smi#FgVx;8;VO;lՒ0G=\/']\fXuy;7ݽb!~MQ#Vȝ(&%CzѧNCo?|`q0l︵<,ڜ h*y@^z|? ay_䈾ͫB#tI} ݣ9V.2o[O_*i))Zҩ+`- &D9Nƍ06Qu Zote ~՜3+h<Ss+-W lSˆ̴Uz+ͦ]"pܔn b6:QѲû[ܵvµ˜ŵf#j,ac!UǏ_ɜ/!`d%r^(yfhP( 낡@ݕ~gbe/{YV)~  +?>hJ˕(M495ا1*n3qRG螗yBB48jroe)E'=Ễt 3sRܻ_R܋0ݪ,ms"׬O NZ;c1,LN";n42f UZYGkF9m2P)zKCp;GtK` )aJ\N9b7ܛG4yc#쁼jO)҆4`FY6VA7|=N=  Rيy\+ rp4%1jaVgVb A{+ThP_}scm L%i[Q9=5B 02?pujYk{,k"í8Hb< et%”]wqԤKi m#cpKtL6Pb|ʳ6Z~rQw3[%GCܟ!z_ls?hHv!*H4t }ΨZCY07=1NN^[/{QpЦ_irP9rU4jPqʹeH|XW b7-2kc8ɫaoz@k}a5ܞzE%)7A!η?opq-}t._ 96eKZQ<$wp.^~e)76d Y9j3F|>a\4k/Kw܌DS@o*k!^O_O) d['\C 5cRm琸%O^ԟ箋8^J=H˾xs2NR * ߔIh>{E[BA^lRmRRU ]!P)0n{Ntbq8YLzOPp[y<+L=c)]=oQ3b~𕹹L!e=.U♦^Y}˘/weqڄZ7 p4 DLoByܕHT]()/ΙBhFNYu#y: MT"[`^C`"m$q&+T~Lk_uG "yJuKĜTLts ycW"-wh c: Ť X7 1RB>QfwX'W:H.:]H,R/,VFonտ`;<ގnp렗 k[9ㇶŦ#skT_zpck׷tbkm?Q/^Ή(UGcN'dI[h5yUn\7/U Fbֽk`|f5Ţ̨Pd1*|Y[ԔF!n:5vԵ-Wp)@mz'_jiY`KHhw]z^쎆? fk,V>~%xb„2#-+jZDXDŰT=:",qr-jxY.͢sxX_C= U-B{Me㑿B7q)H ;YA o\ DxOl>hwTVwZyZvSl)YAZXHilV}$I@ {Qɜ tۃ!)"KoNm;6vX7h(1^exؼoçY{ #h;.L0bwr8؟% z37Dp&c|ԭo}~M+1}^42rIFcM)"xYcDUqU _G!%Pܤ1y4{U쐂EM_ٹ #Rx`? 0 hXI y_^/"GLvۑ;]04DG:{ԋRD䮉I_}*♌^=͟ Dr+~j&OCjS  ~%Kbufm?[:MG50<Ēx?RjhMF*&>EBU+O/sŇ{pOJ%6 n\rxbSgYoti~Rt̾Ո~G.yPʥ{ Ԅc-Q0zA)@-J|~kT-Aڰ X꣯5kkP5V,]k'#\b!3W:$f}TJRI* A'VŸ*{m[pQ>?QcsF=@4'9A16h`Q2x0~ e*J Sa[RӚ٘UT?h?mWtS":!T!%U%_,}rj,y_Iۛ' K,XN/Vx*'byCۺ[5;Ctwo0\?eᱷ}}4=5@q;x$(R4,}>سi*<Е|ݡtPP-5\hn-S R" m5VzVe Wᘠi3X!8q4ygFȺN8kʚ7a`nij:,:Ph2Cc@\+J΢5x <3?c7˦_BNc6:_$\ۢE2K'٥2_-Y; !-0^ynGKÑ4-'ĤCS8ߒ`%I6.8g!frAR){xJ65a E8UڀWnP`n?-3JrpdUbǐc1Ě+PH?ƈٖi]OY %VKK؛]KrO&8ƣ ω 9lӾ>RH")yմz(4P=RxH#6 ^(4(Яe3OWJH_5cL!}KJiO!7όҿT vɝC66U ZJECݨ,y7|ec 3.qk{Hʍ=d|v ltg9:8L [=eZY Z"eP]7 "Ѿ߱3ag7/\+pr1Y0ʂ{ 07^웱Yi(EKJz iV VslK .h-Cro}1͹xk磛>bYVH/XfiLγU3Ob{ǦII'8\)xfl) 8I%QuBp3UFP-m O%Gf7AÙ`wF=f&dV Y; ABy=P 5uDk$aI><4G?Fv4>\o`õqý FA reJe3b`2+o.x)!QmL m&H)zi2چdEU,u{UNN{n`n"s1lW|"QGp]bJkfs8跢 N0yV_^E61 gJD3'[2z?Qx5A"Y> UgVMV&N>GFx_8fZc]n×x$%u-5(ɗ2SGۻuuԷ!4rq}0}#n쵒z[[zah:{ L2E=j7MY3::bU ǏȆ<[J[(YtOg֐K`j9kcxe; Xb>ijLȊfB!pŊnމlVzQr-:{! 4#ScƳBɖ:햇CE r0̴rbMşvKdB_j iD3m.z]dde(?/iT/,tL ){ʋ+SR- W%t8׺Z }[>uID_6hfĒ'*0Za_ot ky$Am4k2@ApBr&]xpfWމAX?V(.q:#s w^Y}k=A4 Aa t/zUO%)&QuBTf*)(s"ϵ#ypts9+]3CRSu:nɌ? no/dfa~,\IZm=Xt_61ѥUL;}$se*Ф[@'zK$QIl*3*n5X,2%,du/}{0*"=}!s^QZGNHOLBqW۳] 8A:ZA_ZM|5bWNڸHX"32:JGz۷93rS0Ob~gΫٙ(?8cF;Bǘg-?Jol7զ~nR|1aqxx"8Hw 3L?`CT۾$_%c7[ )XH(BD#u\&t(9ka-4)M<@/,u endstream endobj 461 0 obj << /Length1 1616 /Length2 23020 /Length3 0 /Length 23847 /Filter /FlateDecode >> stream xڬcfM%\6쪧˶mWu˶m6l۶m۶~;w;kq:cG\9$?i mDmih9 rzzf64 6Vzf!{#=G3ka=G#N!@`!غٛ:bPPQQzt03}q62v =Qhj064-!+ UYY- fFFc{ 6ֆf@Kp520;5;`bg63kK'Ko__09G{3[G߬r¢Tf㿑6N/_\FC3[K=ڛKPL -;U'^6FOfFƴ0 s8mbf CR60?}F65C񗄞NoJʴD O-di)ge$1i?gefFA#&堧)Xo+[[YVhOƳs+ѿdUeT38;*?J1Pm\4 Fv[/e\˦gHXZ .imdoWߢsR72r52Y]1 4OHsa -W*I (mju[<<<A$N6"C$mg:.O;W^SgW9ܝW.jg~%rE%~E6HA\vNpD60:<4} {CM¥t3M ͙%E?C5*dt'fkKQF(I7Cֺ ߞMw% "bZK9T΁]לmC3(̩ʼnyM׊ؾ- :$tƈ+ NiR]rlӆM)pӮ#^'HSi3UrJW',#щ݃sYfZٱ y̟7(gmN)h|\EnIr?%JMa_@fntyyF;:R] zvr ! >1*D1 ]po󰒱BWׁ:wTa٢wQE#Dr֨36hD[sP8w;њ|@Zc/h{m~0SE$l%pg|-zތ ӸK>Y+IUWKDB|*ߣ胪ugyh;7\=o IqkټaXa(&=8ALoAoݏNށˁH88p>M 5KƜ'못2'%NhIe*1_2?87St7_5![/3e[_E̺iɽ OCBa3}|be;vI=gI0~$̆a՞qiojȝo<B*9hqMjL%4nO7Ar+|D ,*r3+ H #{CpR*}33`phAv!f\[.XН17$9BmhAq>qf&Q4B N;6ap9'$  Y}ߕ?xWN_JȍN 54_cxh 5Sm"+-_ƈG{? l"i~?JOۗ'LFj ;K41vրf56]"L J-iMg1~ j@6s)ģ!g x^cT3nV?u`geP3t<\|\DI÷u>Vj|̛F`ug GCxy)yFDpGeR`SuR 9Lo]Cdu\ ~yz:dL~gTczڨ29*b}-k~ Hd k3sM\<.֩-QK&aY&r8`}浿ЏPx|XjŬڌ"f{xdtkg;hUR~Iߖ$ak:%JčcjaO^ñ lV8Еwf&K*Ba9#:fUr`3d۝Y o2"J4큌k<^w |2˩Ix\<6`snArbY;!4?Eժx?!BUq*hvM-.Yl!ѩä'=TJZSJꌄxcQ;PjQ}z uʪYAdGX3z厂'8ھЃ\wv_HAp}eO?˓ 3 4xqu8ok|=2ٗzzlœw峪`pו @%uetMT K=ꌔʰN!0S8ܤK< 9$R*9轢buzkmի#gV~qKǾA6+jO~lGG"c16n$o<Ѽ/i-du w93 zsW +8I0A'EÅ)G#>R= ~A\Aӳ/ܟoQ m**Eod@(U"Q:<,"0a#?WðܓEX#'޵_^=C:4 Hj4&m5/7jG`e"t'DAM\Y74KN҃P)Hh~ Q_fm%C\dyGWS+MhU["Qt-&[(@I>5 (v"N 6uc-IkFMY}ec*i!=#QH4 T~]{xӺ[/V]ENC$(lws?¥EHh}dB,}%QԤq5(sa-V'0gYj޴XG"bnVO.Qx(f:0dHxsuH0JV7K`s([b3%wRvn{6S:8p3 B+Ypw/l( OV=/0>/ﲀ>l%ޡg9?q+lfB NNF?q L;uG-" NΓҁk'ux}'r1iDd6̖|1rzWcN r--U:f6lBQ;@!3W%lIZ}q|P.D!.D<X5U܌l a1yJ,5 [=SEM#ay?, zRp7 .W-r8ȡ!7_JZWc_h>!BҘb(3^rDCAg6."sٜ>G5cĤ75L M1%zp}JU* :_8$J^s"PeT UX"C{kH1[]בp,q3}̸Ur?}&;7N`Pu5WxnLI$49 2L- lRm#qɴkTV(2~MZ}:_T\W za s:H.S=6!ˮnKr5(lxi".,Lj>$]-xdAJ3 W1#d$5kYsGv_t]fP)~ݲ6DI FzT=hY|Fx Q":烳WP:l^V>Ceq!\^qp,k:ݤ\*RZ F3I{H l(&')ceU\dxKM d>*w@0D4@s6e;ԚeS1LVe4mPL :UsY\R #DXVN>qМJ;N`3HnX\L/PjP}8$vm2U;>+ldpȅ oԷJ%V3]g BR.iOQWfZ$Cd R!*P,pƈzؑ[3C=) Ib}TDA!IY:@dk_1+=eRMCrT2 <G$a>S1hXy^WlK?\EWIM@Wm'r;k.VT`µC.BtGӮ Xmj" ? J;8}v:onhA3>2( UllvaJ}C%9{WC*`k @Noʝ{Cum%Hp* ϲLn1bF$}A~ 9c ٛ@|aXi]7 "L>nS֬&Bc!һ &ƨ`2'Gm37WZ0ެTQib_oz Nok$'e %\Mヶ1 %<ڋxNUr*RJM;|q (3b3;Nǀ.^*RBp,\ENqʚ|؇X볌Nc#h\U=2j43:GNX2.=5\l ia=٢q La\gCJQ7x+7 }'λ-up)f='uoۛE$ ,EDzD1,Ok| '>X])u^#!І]Oߌl"ϻjj`E- 9TQ~p*A/DGD *4BP` iX)ۣ yXwj2@J5Nx#aKfi8#;ѽ:țN>PP^O$X\3w18U};t:*$ jzz*`fIDr+܈kxsX*ttqYNrO͙vghU܈]4%Pac5ǿq8O1=ʢXfWfe9X f2d$e:(#Ud@Ġ$,]]('7rf4}M{vr.xh= a`O&_2f?SSl᦭,WT||! ]<9A哐_CD?4|F%:fbc8^D~E4+F?_$II WGJQ/{S x2C\a[``N;ׅX`ؖ#ZӒ:~"f88[znx¥T7f,4's͎hq?6A3>< n8[zA*\Mɱ*![bFu§o%ލ+nߐnhE`y&{T@hChm#mur r vTX[h{P)jI?Y*³|]bf+RTzj>ύg Nr[Xa I˽!v muߵ4!!657^#]O 1Hpuos({Ik? D<+e`Q,5Pc9'GOnB\3fLϾxe)}\911S XE>FDqzlX,V 8SJ wD_#uSׄmOtߕ% ! CS\^*M݂afVǧIOvW$lx iBU6D+""A?Խ!K.?/qc|+w~nL\TqvWQ3ŧ 9m762'6 wOO|g\JiC3{32Y*[f^`A12O02R̍nbSh(9` jt9 N N~dFӣ')K*`LIQB"Et߈K^.#[[>>u@S_3:ԂD5]U-G3ʮg_}fXH0w4?RLyTH=͡O"r(&3 RUqP2chi"+`ܧ/mtOKM-c.ۿ m/ZP]n`Z2]ȶqNzh?TlXd4=x*K3yʟ=y_D.F}6^ ̂=<09 K\yKC 8BM<DPD4e/Cm*rH>Pc;Op5;:B`KG^FbʊV&6'ա쾈]x_Dmِ~j]=d$W˓=%Y+{?W8biRHȃ0oSxܰT)K%c=Łf$,l f~Q5|ƌ.bƮ$aE`i o#GH3C¾PA 9Ŕ-]'p]pB!yZpCilepͣkFVɒ?`17e(08 C?>"y[5]sJ>jcG:rr'2B+.z߻ 욢D2w> 0"hDvC> vDfXmJDȉh#E{w %߯RdZ3QaJvFsnVqݨ>nݠ_Z2k58su)w2{ (/[H5> ]{{|fsW-pwd-B}cM~MäC%kŗʙ$2AƜzhwiDPJ8QXRdWgF jY/p 7)mӲG39{ D)e.iD b5GIX( +Vɲne~ 5Z/+Ld,6v %D` ȠJIyb`GWk⽚fɸ&[@:&oe^zZ h<\?d+(v 䀂іQ! ~,H(͢_kʋ'Q@JNOP/ QA-@MNKtqhzhfF߸Z$sfx!G-xݻlsd㱱 Zr4ŧJH4]S7I:nr܀|fz@E3r!uF\{D 8J5H~,<ѻ+U;֩m s, 9ʲ Ii5U_cݕsB<@I9o|rÃDr?oSů07hV(XP_wFTz.F0tiCoMٜmM>XvBV`%,>-J!bUQRG+XO/ӸKHd݅ގ=8DʢDcqYk3ˎԟJ*-$F9F~^(80˭o\Wg<;!{_rH炫9)g[Z Prk& Jj] +t7?`mԪqeCXj/i:ݲXp_'%3!a?lcFu3o-7/Yxx4&~qK=>~xFpEpfU[躈]w!+mG$eN]a-,f+~v9zld)P!*ͭVy% ׅTLJn}B5Naɹ`(9zUd*Qi {iouz84U4=xw ~""2["uXz#,_*."ɖP^id LWXz,lyڤ) JKOn'/\U|WǪO5$fbKl  lECPpy1RO<.|Z1˱L-rʪagsm >- bT$Dpͱ]J4i5fys}pT!mzqURa12R9-X>DI$eLAe\[(\bC^u Y8k "d+ 8ʧ*('SÙ,e!kAW^)ɦ;i0'L,Cgu,Gv\鶌Ehp2H]={51YJÉb4p BGh+AOm}5`3(_ Q,uʓ*F? CҌW&-`j3yōv,VZL#1zRoѭ\阤L1xcDƂ:0ꦊ \;`;$ >z p%OMeRf#3㏕L!yhy2+l̾!;jt'! }3BA ,:'36gϋLd~‰ `0C'Q|֑4R6FV~OFOl]|7_T=! ۖc[z:m a(HE_Οո1PF,16Lg`0I `;?DӗWPILjb&'ݾLT v&IbE?/KqI|nt[ %If6DKy G3s^L3( vUjD%$=& . cNM֮m~`.0B5/ 'Fl8}DNԇ^ǐNopn}\夵߳uA b]!-Q| C+j;c^ K{D")U&iZ}ҔEnb[KJk3iB[K ظפ}s ˺;♧fq(/U:M,:fNr&xxSu,ZuTH:v7r4ewO8i|,$+4U;CNȤT:^Ʌ(Aևɷ[6Q|q~Us3`&;Y}{& A}dH6]c0on.*]yA30?5@.u`\YF7^XnusU{c1,#v.؄&\ƪΣ~eLrse}}$KưaTvxT>%H 8?ԇdXOIGJ=9jHCt"y'E/lrG e&z܅, d"o tFf43nȟߧNiV`C/f>@?-Q/hf0dcUeQ<[Yck(`4r/T pmsr?i.+@+p oHNJٲF][n|AԷik9'J)%kf&?Hl΅nLm#v_,>:A:+7*a>q4 ^7ksE| x6Q`m')[]ԟC9,E9 n[l2?[Y]YOi.:ٶJEuS}!0 Ӂn+-;$ӫwYj؍ПV #D'ʫo f DldCAB0\\4SpQxd7Sw}8b*J/ʥ;h謈h,n H-! <&$#$aWh F/ЈE6r'_\k5M_f 7K)RC5, dA$4xq7# &aᎹ+P#|J:l6 |ygf  ,!zNWlO^Il~hf;JwYĕ_ךPWe)mu=PtؾOC?H X>|2,s>;#pOmP}٢y)]ZD͡ =񆩤t@+LRn`RSI2~P>TÎ YTx$7dgbXtl왗IoQ+8p 5a"UqcV&FI1HJ8k|hv!ǾgkU4Bi4zq fݠÁoB7: hV=?pX4N |T}ˆ%^tn@^02Քu<i>5U}1s:аj:eUQ5aI%^%WRQz[,Jj$dI4*p9AQF?4v7&b%˓k+ 6QmjQa:C6i׼̫!bę'2Cf-Ac}"p[E] Lq}'W=6C'D:U[3@6^WBŗ%_&la^Ve͗!98a>) DFM,к OoxBEYp)~mP> r7!YLa?b/ogxLװMpgs .ڛt9nGCpdz"oUċWΌiBKৣIǻxhH4-|@V1]` 2ď`puZZ Xc)tOSuK(M2*j5W/ -&wIP< ugw1 (P‘͢ [L6ii* 8R^;#4:SP1qWзb`sa}VT ʜR&k5F}lEtQgc9<|쭆 !;!G:u=Q[cA,u;{pM~yq5P9h%26s=zj) s*׶:LΠRrD)nx)' <:k7nseG:M-5gZ8NvI_ܲs>5rLY`Z ~Vӻ/\(ǧ!֜^n[ ˃c\^rj}5v['BZx ߣi-DF8'YC!3!/=b0ZwK؂Dȇx+p"a-h=F*3E,G1#dn~&襂#\p]NRUsR%c핖نb QSiʼInXgTG`ˤhx c{ `^yNe}qASpfUNUr(Uzum 9 d5vlk)3({)@uȬT[1#OP eoi,$B7%g i{ h?k)upNEpgƃ&wY(: L"1BbQΜ6G}o澾RĄɭ`h@ܣ@x NRMD[adwV MCl$CI VPbM<6^4'Zن#݊ P2z/Hn $s^7H& ?J.t^֋* -(Nd|f"J[+T}>IϏ +EؽU 19J F(-kіs) ߮~Wԓ֖wx0k%Y1R2UWntcwesW^Hǔv[3rI#Z(1&3}6\dik)0좆CcjJz#XՅ'eO Z=:"[dUS+( Zy%zgUzt#=+kVH4L7?ΝzNR%9#^|1)y+^z卜 fpI9.d-f9.dR\$>@r|fgYu9[ZY{("z2nÀ 7vfKWP}tzI3p(0!DiM:"MO≀fڟ{_aW?'#7s鷋K ~컧$r?#r7cgb̖,'nAP\h?"e v8Z"F4>#,Ku:_A][/E,S "W-s4 ·0#}7O^䤂 wRW:s!EDcM hlo[q;l74%;ewNL83@tv/5|t֭LvR!?|B❇:F\Ц`؄4V2pT7x-ZWh<| C_ 9c*eRҨblڐɷ0 oOV<z ;INz\nUp4{0*ÅRPkpۤ$Tz]ָ}U\$l@amRΊS~=é04EZ0<)4M/#/s/kGƅ}=t?j<*LkӦ0辭U޵1Y88ӄgՠzi+qepU)]W3Q:_" (+y^Lp:Tt6/kŴquXu;>ғf$*%n표rk+mFr A)m?م iXP *woCv/_Ϧv޹d ړ~2BnMrsT3nfg֠ >ىa*)5 |l8}XVe{V(׶*(z(pD%E+~%M9H_9bٟlwR8GƟN g"٢)yՀ1mE3+@v|cб]OiZ8:pb3' 2n9}|&R (ƌWjŪ!D|$Agy{>@[^:W?ho5M&Y俒Op vLݑPsrmyt4nT"3aX^gc7@ n=KA*O5Dve/o yr $GCo:>1-G$1t3*_6 ~"e9 >s=;AuрE %K6\9UP2 0󀏇rӻP1>LiztgD4zt/A#j(oq,"*NonaSv{un"HI'ؼO6VL&,Kx >,F%5H՚Z`~rEApl!9ZFB^^LSe&.`ŭ5ؼk47m$ChWfRh켫')f?Bdn S0\k:-Bůb`貼?J}?mX?s3CɺW8pyJd 50̀og_Ɂ=m]n'yNy^[$NMA a N1<#AwlmCd^>LH^^il%$<1 ߦ6NhkF,I_e,䁥jL N|vMRKz)*4GOj1(D猒En"L#Y_ɡ2 qNqe&M.yuj;* /ˡMm|g!P_9#užZr%u;l:Zx .)&WC5K7S'WWhۨCr?:tEI``/j_Q췻BxӋMp2DmWqP쿀Lߎ6;2|כ;,i x8gUO&|1ͯ.J{O 0s>nn;;TGXyB#~2;9L( J0P05 Hh bb£HɏN٦W \_UzfEAQ! D.8k9f<>M5mW&{)M]jΐJ4;UTdDvtx :ϭQDL@@}: ;j ]Jk. ZR+4UzP!^ p]9[//9cSW %Ht&^a: bھL(9UylZҦD[ECf6 *[ .[E,uΏ.&ً7jj"KJǁ0!$SrqW3a)-fʏuC^=b%y/]Cpn'`Hߏ I料8D .03q(0/ BcRzäuثb/1V q=s姚;܇i٥i83/bAi횏M߳MC_d愳ta%7NϧS6fdc9'͠yf?|h\,cc"p{&i•<'*IThjvWIZĊ/Z% x){Y)@7϶g:ܹ@a` ZşDž"H0Yb_lfbd'@ՐG^V*4"fjհ*0^Sao TP4~56@c~$X9z‚;-8Nƶ8眠\lE;o-.nDNͩzg Yal \ߠKuB#(LN`O{r"aؑd|TϞ:Y GQ7gpUDY]okm؛^9,vq_El&ݴKC#rDJA4wp~jRzbQ sXPU(TLs5md$ I`R$KHXUu0,E,MjUW M0rr4|ZB@dI {@ōhX>`x͖de1=ƤP.2vS6J7"Pդ-Jø2 *Csa1,s D*ЗXvk¬Q&,:u_k|Ňdֲˣ; /u kN+ƭ>Rqk&牢 b ){!9 Lh~?]W|ü^9,u1hlUIvl ~~} M O!=PCǛ3Et R d4$RkaY^'Vi[b S9/aqȱ3b7O\^!P!&wHHᖂ mž8*}~a1Э`FXGuYGw'\ JAE>rܣ]m=ߐE!xB=ޢzEFc2-:`WDPk,u1qǜBO(i <<86Sk*~QRj=~iWM]Ml*7)OUwLTO\ $cP<|56Jf]7:4,Ve»>Pxx 'yͤzYSd]ZFuW.9>)YL$n8wOڪ@]$f-fMB>oiwZ60 Wi/7_buXTꫤʌm?O~ S;ؾ.•H nEya]O# d:>Y0 | 2%B+y}x)I[dHwFY#~w? ,OfyϦr<'v^Q;mY`̞r:yK]igoMѤPQ$ S^ scŚZQl@>r{P&6/b!?͑H.%T<&$"' R@Yob<]b] HM2iQb\,s9%T^wI ]\eC$iֿ[_&{ vǡ1. 'xVϤn擛JqՎ ǧ!>Lp엡0J.9P tI2%7 Б#:ɯnJhȬbɖ#5cU`7:NHQ R-BbZuvANP=ЕBCp\rQ$3X2g=;R,KT[_ ׈~FKe3‣fީU̲aPBBB@4a z0hh0bժ85~AMa@H1F<mFl9fRn=#m-R_n_5'Q|dKC|SdJw%MĵOL{6 >cU:Ȝd+NüO9l*= ^iqP;?/vSZtg1gƖs%ǧ0`'W`'`T$.d/{GعK,n _d4P@rg1®(׋km$%ya^֋/p}^] @(0a6]>lSPg>1bSp8w3NrHR8Qwo´8cՀUI6湽6m,}5!FdsIj5{3/e?42ѥ V޷Pz?_9;0Ot+ $9)c挎 ;rS< 9P>kzo83CydtD#ڊG5)Xw|@em%(!jwb:70Y&8t;j%ٮ< Õڍ!Lb]It(lS |='7tԼh<6 \sŮVj)xb S ܞx;I|a P q(aupek_ZxD LibcQ X'۟#H rJ7 z ?Zc3>dLUs}^FZ\VJ%l/ 1:9Yr?)6pp8oʫ mCx ఘ рB3kn]1xk!FLJ%nc|qw+CLLh+-J2&9B~{Cfk-@Omeʕ.7?V d2pHݨ^r[XxY '6ue_9iX>V#Hqj#‡MrCC09ɘ.3DϤ*M6 Bw]Ug,cd!C)IJ}$)+VImFOgFäEWA3U"YyG`;oRowvOgu5u+BӃ9%ccHI^ХD$a=MC4aٜ ȸ$fޅa_ek!K3#ibڮȐ7d:`ڜbc-NLZI1S][PçyuR=1 :mٻ+û3Wp^ż)%9ކ!Dg#]Po_:}M0ݯI߱ܖ66c8JKP{? kG9mkZ:9ZFv~:][%9|/,ƴ{Д>)Agpw@pLEa½jږ$:%C0ذ3^UVb$L Ï]sLnMOɚL"IÉݴ%~2iʃ4|8U0d/SAtrɯ rA%&4[M40ym`!)[ A~^a|ɦuGR6]s(UnņaěDAm}%j1E:ۜ5ߍH{SOШ٣F,;4(NۣԎ@ w"@UY gP=ꞻu_AwO74{*}]h ׁ|-aÃ6siwᳯڴHH۱&XN;N8/QXaM IL6 endstream endobj 463 0 obj << /Length1 1620 /Length2 15403 /Length3 0 /Length 16236 /Filter /FlateDecode >> stream xڭvcxe]el9mbNNP1+mNŶbb'}ݿsL9$J "f&@ {;Ff^ ௙N ĀVV  / Zqx7@ hc` sK \,s+ $ZRA :mB ge s6^L̬i͙/34t7:NVV 'c;3pXٙڸS_ rpaKdldUILuX/ 7ifoOKE].@wrfV6s%spWVvY= hadftvKg{cE` 1gcaon +;8=v3W܀N?{ofv639ߔ7DoEyo,TUM!e'Q Abƅf'ޔA(™N6'g2B '$_Ӵ8.&EIOTC#ýtq|ؾ)$.FNon\3o=eu=qoUw%o$JS#.55n7ƣ]Eb.8pI좞#zxGed&jarE|ӊ 1D{y\J[Cv܋\vGma=T?c8aJ6B 5e9kDa, cxdLsc}U}2AX7RHC,_݃JS#*:||K$.ua/:PiY2v kZ葟Bjn:#mOW?Lq]ՑQ7rFs:w/ $!րŀ_Ax+P͂ߠ.yFM:U,H r̴Lߞ+6|C"='Mh ̓:]&3V֭$)r4Kl)U -VIBj?<01tYk v9URcz~ٞB6pvwmH"˻$ѢLv3C)HS&J|dr#vܿIa" ON']z*VY]^ndgCqH4lN‡5!{imF^.nаq55\&nm :E@4,-ܹ҄a)󸩃b^HW; ;+#roc.صn%!毗W*.B^FMe=plU;)H%GGnnduG8I=?\Ox.n<ӄjd;{C$Iۈ,A]+{}@ h.q EF`+<\>r -{QD,("D ʻ9bCy͆x5QI36EKiyv\l:44s"m {^ypUtkN5UO`#b7v$M2d*Yst)aSU됟KNy=DVP eZGtϕM&)OIvEʧscvkGЯ8LX'#ʝ'?Wx7渟M#.>qv^ (xlUk$<]ڞ}f_.y\,D]Κ\.[rʭJ I s34z2 YwD YIwzI?J~-J\rڧ JKS6Sgҥ&4ӓ)u65,mgui"Cxn~"<5;9Ƕqrf fN C[*ɐU6.G=$shp \F2?)yA2NwP\,$G9yͅWN""琞x8ZƼ/~m=mܤF9cDa15Q>Ęj89d#Z?)V4!SVjV\Є&e$/(KN1B1HC-1#03x#X<(%*+3v *s![_nțI{N*;[8z,J_); 8J*V3lgm?y޴d %͜CW2Z5^/X8,A1kiCdU/`F:Z\::8]80"EPJ 2U+ Opt7M`lM$Hr}grHc׼ S/j*{6 ."u[O]蔅+1Iy+v HF-g v{~qж]p ~; 9i}(KbL)jk"c/`IreLIIpI&|ڶ@\,fP&.te%!o)kkuCGg}%썲*0P͵Xs> u5\ow0ow ì["3φKLx71}!|,8FS~VGH{G}))^ 659gPt4xX Ա0 Lʱ@M H2(7=\@+ @J=Fj $L'L+ 樐e;Ž6eTTAl?]^wdFOzr(=ۥWq'J~?aH4ϿI4iGӠ=~:?/7[LzZ,~l|LG i6az׸m>gPyo!ZhE)>'|ƾ|CT HGlP-[ nD  J<-43v_DlWL}Ud0 @B:=fCov[t8F\m^&-$Or]tF[T~AsIL#sQ_Ek.Շ!3Ol3bqps~`}do_5ƶ(ʥM;eĽMwl׵uj QB<9Xe!%K2%<넖$ fIErjYق?ⴖ ۼ$e~)jJ~x]TqkKu=J;hT`!o_Svgp(wΟ3pH&r(Kk^8sYƗB9eE֬<^foltH2A JIt[ڟMcHo\淟<2YR,~ʠOjXv0sɁ5bQ&_=νpmP}\BdkXWS\<=-n,Ụ*1.PwRw(Y-rV%1svHF : n#'ȫX]sX;zgŔ9U&;e{g4cYnd_5Kc[#ʋK<ӧ|ͫmlt^`F/F&$ 6rG +;s~A0K75N%= Z٣VƶhZq^/ {/4g3C uS`.fۯ=Ǐy#pRE^}oW4iφD/I"D0gQY3Y0Jm 0# 5a/07 Æ! 烱D𡕲؃{ct Y/n׆aͦ+"FX@h+YcyLuPpDGٰB$ƛn3+fp C#O;YϟW~ȱhe~ HIp1U^֕*ţkgX5PHcB˗4{ ?E5>ۚɴ5.m~}3n29lHƵh캓Kb'g/M  KLJ{>.0뵳QgzO4;sщ vPzkCkI[uuWVD)QbX}5P_b.=2:H}Y!P#ъ30h*PUQu[s 1!#'gs%aٿ˸/f|N لRuW T՜ccj^ uH:4NSJ3{DSe [-vi]/XzNMltXk(d(Y#A,tw}9Ș ~QDG)LOZӴFZ/K}\Q=a@?)\a$7f9 =ZW{p$R?Kn˺؉~3"Wc&e֢ C"vzi}(̀<ſqQ F wŹs%}N<רP m(/LgX9z$LJO!5]鏏\|Yx+_{ KݟLDPHI9*18^O3!/!^87NDL%la6yWLn¨[[e 4ZUbʓZt(ձCԥ?AF$HwzW'-eG4s}P|ٮO,L !]p&8T\z=)L1ŇF0Cn9[aޡנl^l'wDƓT`J!/֯p<IeG% W7g!vTrximτ33=0ѐ:}/ȨG7Q"*} j$^qhuD˔bkt)c'w OB }Yg[LiƁ~Yfwfxuzj~(쀕D;cS^5oROUǟFe5.(0`rq^J"b5=Dj)|WY'cm14o2nFL̽^lMq[p} S2dK74R@`Sr;ƌu‹Y[In4Cxy*Vy@b|o<5وh \[;ΞAU:ʮ:G}=lՙxۮ[#@H+|ImUE )۶N3ցR:Ѧۧµ2jgja6QcI\G4:%'(Y:-0"q@p~NkD5d:ЌbpwSW){7dyI fX.pjbgU=#BZvsS+6xm"+8NDw֠-5giv32D€LN[Ѕ@ل[^8:Z_W; xw٭OBxIਯʡRb0TPNK}u;^^e7(4q!Bk=Y#ȖPA 8θ*&z><QE1!)*e3aX,7Գpm+6"}'c" U~0:ӫWԚo3G%r[7;MpDthoU;CY`ov޶p[ ɪBA}a"o✄épgfOH 0&X8ODhjnbL)iR$eGq&~( ',BMHD6$o$_D$/"b<Ԙbxn%BG¢Şhy]RCK, ħ i*җAn`SUBPګ ToitQ~2Y0Gh{}nh_Ѳ_G!>مnk`J6MdCĂ_QPŶ˧Ln zܙНJM mM\3Qru]TuO5/{yjn*Nj`iG)$װ{bH2v %hcX ,(FAxcۆXh=;jzg"AċԷFo_[l2 K?# E)N)#qviGr ^;T2_,;Մr͆Dc‡䏔RI65M5 e?nPuI4K0|> FFP;ggzv ;V)U5'Ym7<6s`-Ŋ0+%I0Pf 7 wT5~} C2ŭU J:RY$8a.ĝh46'vfmyfl^DWY X6[ d?߳`D$֚ԇx%Ĉz:| ȅj01+ ={>+X_NZ"ftE8e:Hu1y1%f%8c^?rLs>-ڊ駊YU}X=B=3d> O' 99zk/b=*è,Z~1qf+lqSѲ//{3#D0%.[HeDwsq$AI>:HZo>4.N%"'ӾK*&9վ: Qk(<Vz鏋'"܎3,`_ sF`J I#K)z:B1w^ -&2{iAjQhAKB?h%ȿ\Uaapb,$^B8{X/& u!4pan,FTu4# s:Ry" :x667O=yc NQV4mG* U6mwHG^{ )@ҩ;%>\/"Nr9 !^maʘ!V(,]\N0g[1]J$u=]1@if:J %,Ii T:~t.f%q4z%E7M8,IwtcY 7ڙ>1||r@HiR9MMJP+~ #({!8keWD/uޘڟ0ӖI{D _֤8K/7Ɇ }sB4reIL_WbˢDWٚ/PCaArt;ك#7SS{Wg=fPw&Ff:r/c`SGM.t[nODċj郖͡xNoeCrxVl'8&4YߪK$gAk_5^H6K༓]GI!}RW G/@KZTnV2(c`%_'xa :nQR)yI=Ea/4ІA wItvYu{*m_'jT:e_70;`KfN]哲t؊'ȅ$W{H4z]ܽ-L FYh::6%-k"T>@.PfKԥkWKה.@Y4+KȠVȓ⋑J. 79~1^͘؊C ĕ-Be\Ֆx TRvԥ 4{ _K=x#{A8&`ϑxRNd/GFNN)C{-">)ZbN*n^FrjFe)͂K(㕛h=86p_NPH #N_ze2'  {e$݁?si-$<Hv(‡S;mȍDSk}Zeˌzo2]*CwkI* 4tB>)cƈoQɻ㦤Jy]k^ib~vv )˧%㣩IrP\hSҥ|ͭv*wәtWk2 W_ON{pA1_"QXh@N1~QNV?6eRP3SjqL~''ӛ^mFVu;"|$zH+h0[gd=\~yODVjq_GXrC>;oIlvIMp$!k*ž0eO zFabXVKGJ×W`5Rչ࿀ =qM'nL WK:j,2 kNnz.N!<%zj.fu%[[y,axg.E<4REP;2,Dvo>1Q;'ڐPrdHC0f7bwje]1z׭mO8.ʶNEM^VĶ)Y 3Y?8'<k^ҡ }kw+-$.ǭH3φV~UP&ЭTպ#Qo3n3o~_mfA/{=D2LSyqBL}QA.CkLlTfK3 N9ǐ xX~XQm^)RFs~:C )>G =!Diul&Ex .~D ٲ! +Tԟq- X0J@2akQ<:iLFwn (^ : L{o]=9$[< 1NpeI3ycPP-73r! b% hed(C=dn-5.h?yܗk1͒0ɑM8i\@)7Y05fD= <] n $_,(;;Wv& \E2viS~л;5Q4x_}Uy_.OrQ_/m# &X;-`&A1jکS|M? TNpo6xbuMjz*|l^"=)Oo : %Ѣj!%Plȏ !tV8$'r4%2je GB~_']pPƣq{E Xrڋf)k$J0 |/3lzjQ;ЧIh>o>qu iig*g:8"inK^?kx]KdK`B#pX9dm3IBOM|ZSYd9@(&fy8T=MBgL)>jZ\'/L=6x˶/5w C5 ^,Z Xf1ZD`TEgAGV ֮|COv{`O#f @[?Vd%:s\މJ:Ӡ@X$Z>LcA1VuL|h@__SXtp 4l8p7P=]?  {SD!~P`iCbVWr;LhM3d$ʴn(^WEW*Rgj#}`L@5Y;A5U(!`g|sˬnx42Cek@WxZ̒:2< 3i)a"1!qQǸ꺹 ƗQ܉B,&FI[޺3k/ERhxGWSL;{!Ō'q씛ϵe4T(3Gh ڏ|*DlVl +,ZJn>?z؄ E?X|5*u#5P޳?INxZ*hU(pmB9?\czԎB6NKɈ=ut﬷SWX]ڸ{)IJNs0Fn2${NUأ3&-Z&\;(`EEM3.SNw'Ħ2r @ѓb2n2)2!p]3WH\e4rU`Yk4Q NzkuqLiS|,,kL[_{TDfO'p1wlBvcÓIt/$EJ[J;K* 䍸&F]xPN|dv7tԭU|uҾJ+똖M{v:]JʧMgJFN {KIϮu rZ+F9/3n-:i@TZ 27 )VYACI9?#UM]]!#RVzYj}R8ckG!@_W$ǙD3+ԏ~hQϬA9+ɟջF9˂%DERRVȕ"DP! D71 Z֐a a_5j|]h'*wQgzrf$1rwT-SKg".I]my wl>xsRݰMU3$\ /mtfm[R>m[2nϒwY@66S!\g"0GVIzs{%6KbjZ?S&A+(6~oJ]ߣQ<(B :/7 1)HHP((Pti=n@{m8csfH'őNL# Li #<.qcl9ax?XdK=JDOrkj Tn&h,hck6 FwǴ$W a#' a>ᾳuKKpn,:jY"UvP713_n2p`j_NGZ$ =yw"Gq;BqiLzi{y``>tTb# \(c>AdCht@4NDqjuaQd $!ezu!fbUQ:^ Me&#3(' [i 5# ! ]upޑo@Q1_ƿn6 FrZ=p$cfꐼFvmg!h0J0yw73U^!ED)`(1Na[xfon>p@z%s{T9'S4D?}}G!S4KAp, _^fleףLج-b5H| F`Au8G=QBtWY #kj [5OڑQlĝvn(\7)*HvVm6OAo SnOe;au-2#5v6I:LkXd *;U% tԄu!\_qXB\ \~-f} 69:ȼk/G󞖌u$n矣U[gb•R5B+,0?_qO~0LFq;ùp=Բ0aX0,(P6`9xMd;$?^w½IY(4`DpM  KvMB shHuՂ%/V/Q^Ljݲ+yʼ][LhvL꺏Uj -$:cf BeH5cίVyz|b0u%L5-FK{# (]I}Hf?ԁqO&82jq<sy =pV._-DӛCLNH?.[(v|%K Xt 3 XBfr9scëe1!n0j5*ĔMU)W@ yы"\D8`pV9ER2٤P ?AYC! /G&uEeq|Lc]~2Mt Kؘnx,#`ўChS=V՞hx0xIQ7'aplVQ &PJ `;0mHYbH ܜNXH%"R\6-崔n gC?q֔0h?.NhUkX}ICJƪNy!E@z)hz<)ho*,"C,Ekl-'2IUDA7.g|Xh,=gVz(]?DSsJwh<(˛ȅ>ʵ{^[ajMTtkk]9%`[pyߢXà !>o$v8 釟GOe~H\f7'W'Z~uh}m', J$̗(e:m:6;̯ok߭J9f#x*J,5i ~ҰI{SVFm`g0&Y"hX y#gڝ=>fv7چ6oF̐<9dLG~ jpձe!^BV~ y7o'{bO>]Ġ&M Fj-F^d|cHL<9ˉ5u9EMAȰO2cȭHIfZ/R-k nc\YrWZsdH@%d/͡Q=u]-9Y&qaX>D,S^QUԉ`Qٵ2ף >ztvJW<劋C: zr 'hL(8BԑϜ$c8Y*~!n!Gr }Jk˒#R5}Jќ|.e! .1@EU?'eԂ$;fpd ;3eV%䇐3'sЦ, v,ջ(~J-|>e%˜SW٧NfoGTX7@Q5 q,DOt֪:%IN!_7לtO:VipdD\ܣ?9>doރhn> stream xZ[o~ׯE8I>['5HYrE)M7KDɒ,'*K\såtL03'"]&5]Z&];N3"==3But<%ΒYpVB9Q3-'-F˂PLq<hT3)#iL*AbIU y’θI3pL1,Z-:F@HbMǬ+}e4CX!()!*@#-@#  ꎑ)!KF `Q)>Sg gN9Y0PtpvgOh(p!a hPCDd58 r9Vj"&/z1nT$9O &OCw!|p*@w )"&1] Nk(>3$aNcN]}@ ԌS̓CDCB5 㹂M ?P伨!P>oȍ,:;ݐM, 1 B7q,R #4?BS\8fӧ~.5-.HYC!h6^u~q-1⹈ȄH2c ʛ"^e1*vXYxx+*$?}׃ѧ?O$W%ş]tA`B ٴk(:]g__|OE*'P0H͒$nPtH{ieI;8l'],+ퟶ1~ߴ?-H ^z7,Z +hn@mMշurK/Fjc4`{NVXzT|wZtjT?@ {Uz U38:@H[ ەH 1XM x+ݾ._:!ؿ?v\u.E@e,Ӡ4= klZ /OHc:D54zc!!@K2hk$dz:#ٖm;G>HVL\t߷ttv[~MYxk#Wlڽq>#[\ S\EҜt4IAv}ҒEZ:=m:&zZ8 7;y6%kgEYx֥2F$ӫs8} >>*dܳR1w6&%@ [. *г8[C P#Ү0mC˃JRW׮hQR9_> c\NLmWV_N)m7Fz@o`H)pL+J\򜇎̇x#e}Z:RbjikuHY75cDr\f-˵}8g3 , ּ;6uMGe՛ IE~xvrJ <v+fjô U<) ~PhEP>޽,7 \Y?{"iw8%ٴ pufLnj˾ד;-'|XV6VO^_Lvf͢x؏Y+ҏ1fpaVG )^/[)ݶZնOeDN 6/'>|eÐOxŧ|g~9zI??2:Q蜟<>o󶼞GGRTc=v б6:o@Ǵ! CH{Y?Ss+_w=pv`0 eB7G{{p؝$vo&A~M9Zrh0*1;Ah8ߕVVT;0 j*eUj%3T/vxyz3)K>sow9/?''GNu& M_zhmǧ˹xj j|wMԮ-RH3Ju_^vH2n@9FQht 1i h#BL=U~^ E$݊0?t{ۜ7}zk fn86' i^nΧo$Uɋ7ˑA.ܔKr@\r*'W8_AC+4bSH̖Wڟp}׬Gq0"K}TI!ڹ\s0r187;Eamٜd隌$jk di+a{h: ʫLx,k/{,Eh[ȢiovLʹBoA&lJi}nU{]R_ڤrǃI5[V Š?Oy6+ppx;U5ܪڴԐJhTΙ~lx6u{%\K66,+9PlKgڪm{3C-KӪjf;jmw]T}c;r+yGoOGY7: ]wxE,d'D%<,C̔~W3k&2QOրKxqp>o0'nT=F5Ws=_f^&G}N!9YN`fN^95psN>,qnx/pfFȳW endstream endobj 521 0 obj << /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.14)/Keywords() /CreationDate (D:20140324150438+09'00') /ModDate (D:20140324150438+09'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.6-1.40.14 (TeX Live 2014/dev) kpathsea version 6.2.0dev) >> endobj 467 0 obj << /Type /ObjStm /N 96 /First 822 /Length 2791 /Filter /FlateDecode >> stream xڕZˎ߯R,Ac'Yđ '^Z aߧN5rBh!\&cK8G eOk(XL#_c!`M¼O&rqL<S0OT̓5d85g K,&']*/ Ol1bՙeǼ{2@ؒ B. B;?Y@̉u#p~Vu)E41rCպ B5;Sl#Fw9syq 'S_s2뗐لl.! -y  `*BŚLt 2<Dϡ-lD#'YgH1F4' 7U4I7 2luX`q 4yc X\yu-oF~#ZϧVn K&fS*^p4x*3aJ!n0).y9RhKwgŕ <˫W?JX[nڭݗG>[?8kys#6/e<Ҭ|+._4FsLFx^=TVn*S1 V™)Lٕc7=15G8 S2uhaE{8hg3@{X4WA;N~E;4N+ݝiE;hwgvZvݭhv;Vۃv{Fh+N{=au缞P^^O.=uv.'\`DKOsY\v ɹ',8;s\zO(N=yA!g*zC0r˕ZbyT3drH>JM|*]g(]GmWv{_I桘O2HJ-|YСOqxsPƕ0DG3=+4&>āv1qAQFV&6/Rlw=hPGJ~s`~}ao8Lql^ؗ1뽤!YhoXvwfg@<0 kr?1݄Iv˖&B%=9N 1 !aL \+yN,#y3#$c#,cu+s֯*~sXfgϹ*mpJ `I8zl,ΈMXt~Ė[Gly0'A>ox6l~- FBH[Pt+A+5Bz@EAoֶO9Ac[sSa{vjqO"ziHɢ ͬv*z!9uP4Etĸ~]+ImּZmډ&=]0._BZK= 1) /5D/'/$`rűFثS)\ ȷ@ѬbO$%$ "%IU7 R`D5G.fBbr` v,&HIRCFRT`U@y3%f17C&RTycOz#Lf_,nH+iRýTBP!wH5C.f }! -L'0b8{=Txp!4 8SJBЦT༪%8WMTop!\qN.&X*[|_mDv|"M)|km!}׿w?Ϳ< 6L]KKۀȨGP 픘/lw|o\ S? %trLz7P!ɇLo $ ;f?x>$W?lOמԞ -Ö_^gsmb8l5i( cc;sRo~]m6x-CK28kbwmyZ%fgOVjjہ[ٞ~G}}, Il7/6퉶, 8Ep؊_lI]X<v=.^sэ竹w'a?G?HFW.~xZnݼ~E"iynyiniEnEi%n%ieneiniUnͲEl~Po|>WwU[ endstream endobj 522 0 obj << /Type /XRef /Index [0 523] /Size 523 /W [1 3 1] /Root 520 0 R /Info 521 0 R /ID [<2C636DFCC2D7D4EA4EE22B157F51D244> <2C636DFCC2D7D4EA4EE22B157F51D244>] /Length 1193 /Filter /FlateDecode >> stream x;SVW:^"wݢ5/**\'ULk22M~NV"͚d"y^oRJܔ+-ܱ}Chh)wh{QZR=hhg(}hhA+Z@ Ӕ)ʃ:!Ѕ6v0FAG;Ay͡Оq|#W-r U=OoѴ6K;xF/ ީM/)OȀ!Ch0n4v\Ў\WЎ֚Z?^up xSMhbBF[mpEC6h,8p(c{*R<@(>WhSh$hMћіHg3^)3`M^f̣KE~,n^+%..OS64:yV:[^E~lR)17(JޕS J-eZ)jq͆,EU W/Rk1*q5՜FB$,td2j-/KgֿT訤R-Dvɛ`Jw$d$]̫'\H{^7E0be`J+8}@DLC@$:19'ǀ4 f9 ᢏrn ZJ.@60kI"sEVyJl+=`6+yaetKA]0`R#>p0I0N\&F#YCaeQu0۫&R#@6`W͗{` hGz&N QޗGt|]\ ߺbeW{Ы뀖@p8_s .sp FcLangSet * FcLangSetUnion (const FcLangSet *\fIls_a\fB, const FcLangSet *\fIls_b\fB); .fi\fR .SH "DESCRIPTION" .PP Returns a set including only those languages found in either \fIls_a\fR or \fIls_b\fR\&. .SH "SINCE" .PP version 2.9.0 fontconfig-2.11.1/doc/FcDirCacheLoadFile.30000664000076400007640000000101412313745357015035 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcDirCacheLoadFile" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcDirCacheLoadFile \- load a cache file .SH SYNOPSIS .nf \fB#include .sp FcCache * FcDirCacheLoadFile (const FcChar8 *\fIcache_file\fB, struct stat *\fIfile_stat\fB); .fi\fR .SH "DESCRIPTION" .PP This function loads a directory cache from \fIcache_file\fR\&. If \fIfile_stat\fR is non-NULL, it will be filled with the results of stat(2) on the cache file. fontconfig-2.11.1/doc/fccache.fncs0000664000076400007640000000621012306317475013666 00000000000000/* * Copyright © 2007 Keith Packard * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * the above copyright notice appear in all copies and that both that * copyright notice and this permission notice appear in supporting * documentation, and that the name of the 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@ const FcChar8 * @FUNC@ FcCacheDir @TYPE1@ const FcCache * @ARG1@ cache @PURPOSE@ Return directory of cache @DESC@ This function returns the directory from which the cache was constructed. @@ @RET@ FcFontSet * @FUNC@ FcCacheCopySet @TYPE1@ const FcCache * @ARG1@ cache @PURPOSE@ Returns a copy of the fontset from cache @DESC@ The returned fontset contains each of the font patterns from cache. This fontset may be modified, but the patterns from the cache are read-only. @@ @RET@ const FcChar8 * @FUNC@ FcCacheSubdir @TYPE1@ const FcCache * @ARG1@ cache @TYPE2@ int @ARG2@ i @PURPOSE@ Return the i'th subdirectory. @DESC@ The set of subdirectories stored in a cache file are indexed by this function, i should range from 0 to n-1, where n is the return value from FcCacheNumSubdir. @@ @RET@ int @FUNC@ FcCacheNumSubdir @TYPE1@ const FcCache * @ARG1@ cache @PURPOSE@ Return the number of subdirectories in cache. @DESC@ This returns the total number of subdirectories in the cache. @@ @RET@ int @FUNC@ FcCacheNumFont @TYPE1@ const FcCache * @ARG1@ cache @PURPOSE@ Returns the number of fonts in cache. @DESC@ This returns the number of fonts which would be included in the return from FcCacheCopySet. @@ @RET@ FcBool @FUNC@ FcDirCacheClean @TYPE1@ const FcChar8 * @ARG1@ cache_dir @TYPE2@ FcBool @ARG2@ verbose @PURPOSE@ This tries to clean up the cache directory of cache_dir. This returns FcTrue if the operation is successfully complete. otherwise FcFalse. @SINCE@ 2.9.91 @@ @RET@ void @FUNC@ FcCacheCreateTagFile @TYPE1@ const FcConfig * @ARG1@ config @PURPOSE@ Create CACHEDIR.TAG at cache directory. @DESC@ This tries to create CACHEDIR.TAG file at the cache directory registered to config. @SINCE@ 2.9.91 @@ fontconfig-2.11.1/doc/FcFontSetCreate.30000664000076400007640000000051512313745357014506 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcFontSetCreate" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcFontSetCreate \- Create a font set .SH SYNOPSIS .nf \fB#include .sp FcFontSet * FcFontSetCreate (void\fI\fB); .fi\fR .SH "DESCRIPTION" .PP Creates an empty font set. fontconfig-2.11.1/doc/fcblanks.fncs0000664000076400007640000000370212267155333014077 00000000000000/* * fontconfig/doc/fcblanks.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@ FcBlanks * @FUNC@ FcBlanksCreate @TYPE1@ void @PURPOSE@ Create an FcBlanks @DESC@ Creates an empty FcBlanks object. @@ @RET@ void @FUNC@ FcBlanksDestroy @TYPE1@ FcBlanks * @ARG1@ b @PURPOSE@ Destroy and FcBlanks @DESC@ Destroys an FcBlanks object, freeing any associated memory. @@ @RET@ FcBool @FUNC@ FcBlanksAdd @TYPE1@ FcBlanks * @ARG1@ b @TYPE2@ FcChar32% @ARG2@ ucs4 @PURPOSE@ Add a character to an FcBlanks @DESC@ Adds a single character to an FcBlanks object, returning FcFalse if this process ran out of memory. @@ @RET@ FcBool @FUNC@ FcBlanksIsMember @TYPE1@ FcBlanks * @ARG1@ b @TYPE2@ FcChar32% @ARG2@ ucs4 @PURPOSE@ Query membership in an FcBlanks @DESC@ Returns whether the specified FcBlanks object contains the indicated Unicode value. @@ fontconfig-2.11.1/doc/FcFontSetMatch.30000664000076400007640000000155612313745357014345 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcFontSetMatch" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcFontSetMatch \- Return the best font from a set of font sets .SH SYNOPSIS .nf \fB#include .sp FcPattern * FcFontSetMatch (FcConfig *\fIconfig\fB, FcFontSet **\fIsets\fB, int\fInsets\fB, FcPattern *\fIpattern\fB, FcResult *\fIresult\fB); .fi\fR .SH "DESCRIPTION" .PP Finds the font in \fIsets\fR most closely matching \fIpattern\fR and returns the result of \fBFcFontRenderPrepare\fR for that font and the provided pattern. This function should be called only after \fBFcConfigSubstitute\fR and \fBFcDefaultSubstitute\fR have been called for \fIpattern\fR; otherwise the results will not be correct. If \fIconfig\fR is NULL, the current configuration is used. Returns NULL if an error occurs during this process. fontconfig-2.11.1/doc/FcConfigGetBlanks.30000664000076400007640000000115512313745357015001 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigGetBlanks" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigGetBlanks \- Get config blanks .SH SYNOPSIS .nf \fB#include .sp FcBlanks * FcConfigGetBlanks (FcConfig *\fIconfig\fB); .fi\fR .SH "DESCRIPTION" .PP Returns the FcBlanks object associated with the given configuration, if no blanks were present in the configuration, this function will return 0. The returned FcBlanks object if not NULL, is valid as long as the owning FcConfig is alive. If \fIconfig\fR is NULL, the current configuration is used. fontconfig-2.11.1/doc/fccache.sgml0000664000076400007640000003510012306317520013666 00000000000000 FcCacheDir 3 Fontconfig &version; FcCacheDir Return directory of cache #include <fontconfig/fontconfig.h> const FcChar8 * FcCacheDir const FcCache *cache Description This function returns the directory from which the cache was constructed. FcCacheCopySet 3 Fontconfig &version; FcCacheCopySet Returns a copy of the fontset from cache #include <fontconfig/fontconfig.h> FcFontSet * FcCacheCopySet const FcCache *cache Description The returned fontset contains each of the font patterns from cache. This fontset may be modified, but the patterns from the cache are read-only. FcCacheSubdir 3 Fontconfig &version; FcCacheSubdir Return the i'th subdirectory. #include <fontconfig/fontconfig.h> const FcChar8 * FcCacheSubdir const FcCache *cache inti Description The set of subdirectories stored in a cache file are indexed by this function, i should range from 0 to n-1, where n is the return value from FcCacheNumSubdir. FcCacheNumSubdir 3 Fontconfig &version; FcCacheNumSubdir Return the number of subdirectories in cache. #include <fontconfig/fontconfig.h> int FcCacheNumSubdir const FcCache *cache Description This returns the total number of subdirectories in the cache. FcCacheNumFont 3 Fontconfig &version; FcCacheNumFont Returns the number of fonts in cache. #include <fontconfig/fontconfig.h> int FcCacheNumFont const FcCache *cache Description This returns the number of fonts which would be included in the return from FcCacheCopySet. FcDirCacheClean 3 Fontconfig &version; FcDirCacheClean This tries to clean up the cache directory of cache_dir. This returns FcTrue if the operation is successfully complete. otherwise FcFalse. #include <fontconfig/fontconfig.h> FcBool FcDirCacheClean const FcChar8 *cache_dir FcBoolverbose Description Since version 2.9.91 FcCacheCreateTagFile 3 Fontconfig &version; FcCacheCreateTagFile Create CACHEDIR.TAG at cache directory. #include <fontconfig/fontconfig.h> void FcCacheCreateTagFile const FcConfig *config Description This tries to create CACHEDIR.TAG file at the cache directory registered to config. Since version 2.9.91 fontconfig-2.11.1/doc/FcValuePrint.30000664000076400007640000000072012313745357014067 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcValuePrint" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcValuePrint \- Print a value to stdout .SH SYNOPSIS .nf \fB#include .sp void FcValuePrint (FcValue \fIv\fB); .fi\fR .SH "DESCRIPTION" .PP Prints a human-readable representation of \fIv\fR to stdout. The format should not be considered part of the library specification as it may change in the future. fontconfig-2.11.1/doc/fcfreetype.sgml0000664000076400007640000002726312306317520014461 00000000000000 FcFreeTypeCharIndex 3 Fontconfig &version; FcFreeTypeCharIndex map Unicode to glyph id #include <fontconfig.h> #include <fcfreetype.h> FT_UInt FcFreeTypeCharIndex FT_Face face FcChar32 ucs4 Description Maps a Unicode char to a glyph index. This function uses information from several possible underlying encoding tables to work around broken fonts. As a result, this function isn't designed to be used in performance sensitive areas; results from this function are intended to be cached by higher level functions. FcFreeTypeCharSet 3 Fontconfig &version; FcFreeTypeCharSet compute Unicode coverage #include <fontconfig.h> #include <fcfreetype.h> FcCharSet * FcFreeTypeCharSet FT_Face face FcBlanks *blanks Description Scans a FreeType face and returns the set of encoded Unicode chars. This scans several encoding tables to build as complete a list as possible. If 'blanks' is not 0, the glyphs in the font are examined and any blank glyphs not in 'blanks' are not placed in the returned FcCharSet. FcFreeTypeCharSetAndSpacing 3 Fontconfig &version; FcFreeTypeCharSetAndSpacing compute Unicode coverage and spacing type #include <fontconfig.h> #include <fcfreetype.h> FcCharSet * FcFreeTypeCharSetAndSpacing FT_Face face FcBlanks *blanks int *spacing Description Scans a FreeType face and returns the set of encoded Unicode chars. This scans several encoding tables to build as complete a list as possible. If 'blanks' is not 0, the glyphs in the font are examined and any blank glyphs not in 'blanks' are not placed in the returned FcCharSet. spacing receives the computed spacing type of the font, one of FC_MONO for a font where all glyphs have the same width, FC_DUAL, where the font has glyphs in precisely two widths, one twice as wide as the other, or FC_PROPORTIONAL where the font has glyphs of many widths. FcFreeTypeQuery 3 Fontconfig &version; FcFreeTypeQuery compute pattern from font file (and index) #include <fontconfig.h> #include <fcfreetype.h> FcPattern * FcFreeTypeQuery const FcChar8 *file int id FcBlanks *blanks int *count Description Constructs a pattern representing the 'id'th font in 'file'. The number of fonts in 'file' is returned in 'count'. FcFreeTypeQueryFace 3 Fontconfig &version; FcFreeTypeQueryFace compute pattern from FT_Face #include <fontconfig.h> #include <fcfreetype.h> FcPattern * FcFreeTypeQueryFace const FT_Face face const FcChar8 *file int id FcBlanks *blanks Description Constructs a pattern representing 'face'. 'file' and 'id' are used solely as data for pattern elements (FC_FILE, FC_INDEX and sometimes FC_FAMILY). fontconfig-2.11.1/doc/FcConfigCreate.30000664000076400007640000000052312313745357014330 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigCreate" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigCreate \- Create a configuration .SH SYNOPSIS .nf \fB#include .sp FcConfig * FcConfigCreate (void\fI\fB); .fi\fR .SH "DESCRIPTION" .PP Creates an empty configuration. fontconfig-2.11.1/doc/fonts-conf.50000664000076400007640000007617112313745357013620 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FONTS-CONF" "5" "24 3月 2014" "" "" .SH NAME fonts.conf \- Font configuration files .SH SYNOPSIS .sp .nf /etc/fonts/fonts.conf /etc/fonts/fonts.dtd /etc/fonts/conf.d $XDG_CONFIG_HOME/fontconfig/conf.d $XDG_CONFIG_HOME/fontconfig/fonts.conf ~/.fonts.conf.d ~/.fonts.conf .sp .fi .SH "DESCRIPTION" .PP Fontconfig is a library designed to provide system-wide font configuration, customization and application access. .SH "FUNCTIONAL OVERVIEW" .PP Fontconfig contains two essential modules, the configuration module which builds an internal configuration from XML files and the matching module which accepts font patterns and returns the nearest matching font. .SS "FONT CONFIGURATION" .PP The configuration module consists of the FcConfig datatype, libexpat and FcConfigParse which walks over an XML tree and amends a configuration with data found within. From an external perspective, configuration of the library consists of generating a valid XML tree and feeding that to FcConfigParse. The only other mechanism provided to applications for changing the running configuration is to add fonts and directories to the list of application-provided font files. .PP The intent is to make font configurations relatively static, and shared by as many applications as possible. It is hoped that this will lead to more stable font selection when passing names from one application to another. XML was chosen as a configuration file format because it provides a format which is easy for external agents to edit while retaining the correct structure and syntax. .PP Font configuration is separate from font matching; applications needing to do their own matching can access the available fonts from the library and perform private matching. The intent is to permit applications to pick and choose appropriate functionality from the library instead of forcing them to choose between this library and a private configuration mechanism. The hope is that this will ensure that configuration of fonts for all applications can be centralized in one place. Centralizing font configuration will simplify and regularize font installation and customization. .SS "FONT PROPERTIES" .PP While font patterns may contain essentially any properties, there are some well known properties with associated types. Fontconfig uses some of these properties for font matching and font completion. Others are provided as a convenience for the applications' rendering mechanism. .sp .nf Property Type Description -------------------------------------------------------------- family String Font family names familylang String Languages corresponding to each family style String Font style. Overrides weight and slant stylelang String Languages corresponding to each style fullname String Font full names (often includes style) fullnamelang String Languages corresponding to each fullname slant Int Italic, oblique or roman weight Int Light, medium, demibold, bold or black size Double Point size width Int Condensed, normal or expanded aspect Double Stretches glyphs horizontally before hinting pixelsize Double Pixel size spacing Int Proportional, dual-width, monospace or charcell foundry String Font foundry name antialias Bool Whether glyphs can be antialiased hinting Bool Whether the rasterizer should use hinting hintstyle Int Automatic hinting style verticallayout Bool Use vertical layout autohint Bool Use autohinter instead of normal hinter globaladvance Bool Use font global advance data (deprecated) file String The filename holding the font index Int The index of the font within the file ftface FT_Face Use the specified FreeType face object rasterizer String Which rasterizer is in use (deprecated) outline Bool Whether the glyphs are outlines scalable Bool Whether glyphs can be scaled scale Double Scale factor for point->pixel conversions dpi Double Target dots per inch rgba Int unknown, rgb, bgr, vrgb, vbgr, none - subpixel geometry lcdfilter Int Type of LCD filter minspace Bool Eliminate leading from line spacing charset CharSet Unicode chars encoded by the font lang String List of RFC-3066-style languages this font supports fontversion Int Version number of the font capability String List of layout capabilities in the font embolden Bool Rasterizer should synthetically embolden the font fontfeatures String List of the feature tags in OpenType to be enabled prgname String String Name of the running program .sp .fi .SS "FONT MATCHING" .PP Fontconfig performs matching by measuring the distance from a provided pattern to all of the available fonts in the system. The closest matching font is selected. This ensures that a font will always be returned, but doesn't ensure that it is anything like the requested pattern. .PP Font matching starts with an application constructed pattern. The desired attributes of the resulting font are collected together in a pattern. Each property of the pattern can contain one or more values; these are listed in priority order; matches earlier in the list are considered "closer" than matches later in the list. .PP The initial pattern is modified by applying the list of editing instructions specific to patterns found in the configuration; each consists of a match predicate and a set of editing operations. They are executed in the order they appeared in the configuration. Each match causes the associated sequence of editing operations to be applied. .PP After the pattern has been edited, a sequence of default substitutions are performed to canonicalize the set of available properties; this avoids the need for the lower layers to constantly provide default values for various font properties during rendering. .PP The canonical font pattern is finally matched against all available fonts. The distance from the pattern to the font is measured for each of several properties: foundry, charset, family, lang, spacing, pixelsize, style, slant, weight, antialias, rasterizer and outline. This list is in priority order -- results of comparing earlier elements of this list weigh more heavily than later elements. .PP There is one special case to this rule; family names are split into two bindings; strong and weak. Strong family names are given greater precedence in the match than lang elements while weak family names are given lower precedence than lang elements. This permits the document language to drive font selection when any document specified font is unavailable. .PP The pattern representing that font is augmented to include any properties found in the pattern but not found in the font itself; this permits the application to pass rendering instructions or any other data through the matching system. Finally, the list of editing instructions specific to fonts found in the configuration are applied to the pattern. This modified pattern is returned to the application. .PP The return value contains sufficient information to locate and rasterize the font, including the file name, pixel size and other rendering data. As none of the information involved pertains to the FreeType library, applications are free to use any rasterization engine or even to take the identified font file and access it directly. .PP The match/edit sequences in the configuration are performed in two passes because there are essentially two different operations necessary -- the first is to modify how fonts are selected; aliasing families and adding suitable defaults. The second is to modify how the selected fonts are rasterized. Those must apply to the selected font, not the original pattern as false matches will often occur. .SS "FONT NAMES" .PP Fontconfig provides a textual representation for patterns that the library can both accept and generate. The representation is in three parts, first a list of family names, second a list of point sizes and finally a list of additional properties: .sp .nf -:=:=\&... .sp .fi .PP Values in a list are separated with commas. The name needn't include either families or point sizes; they can be elided. In addition, there are symbolic constants that simultaneously indicate both a name and a value. Here are some examples: .sp .nf Name Meaning ---------------------------------------------------------- Times-12 12 point Times Roman Times-12:bold 12 point Times Bold Courier:italic Courier Italic in the default size Monospace:matrix=1 .1 0 1 The users preferred monospace font with artificial obliquing .sp .fi .PP The '\\', '-', ':' and ',' characters in family names must be preceded by a \&'\\' character to avoid having them misinterpreted. Similarly, values containing '\\', '=', '_', ':' and ',' must also have them preceded by a \&'\\' character. The '\\' characters are stripped out of the family name and values as the font name is read. .SH "DEBUGGING APPLICATIONS" .PP To help diagnose font and applications problems, fontconfig is built with a large amount of internal debugging left enabled. It is controlled by means of the FC_DEBUG environment variable. The value of this variable is interpreted as a number, and each bit within that value controls different debugging messages. .sp .nf Name Value Meaning --------------------------------------------------------- MATCH 1 Brief information about font matching MATCHV 2 Extensive font matching information EDIT 4 Monitor match/test/edit execution FONTSET 8 Track loading of font information at startup CACHE 16 Watch cache files being written CACHEV 32 Extensive cache file writing information PARSE 64 (no longer in use) SCAN 128 Watch font files being scanned to build caches SCANV 256 Verbose font file scanning information MEMORY 512 Monitor fontconfig memory usage CONFIG 1024 Monitor which config files are loaded LANGSET 2048 Dump char sets used to construct lang values OBJTYPES 4096 Display message when value typechecks fail .sp .fi .PP Add the value of the desired debug levels together and assign that (in base 10) to the FC_DEBUG environment variable before running the application. Output from these statements is sent to stdout. .SH "LANG TAGS" .PP Each font in the database contains a list of languages it supports. This is computed by comparing the Unicode coverage of the font with the orthography of each language. Languages are tagged using an RFC-3066 compatible naming and occur in two parts -- the ISO 639 language tag followed a hyphen and then by the ISO 3166 country code. The hyphen and country code may be elided. .PP Fontconfig has orthographies for several languages built into the library. No provision has been made for adding new ones aside from rebuilding the library. It currently supports 122 of the 139 languages named in ISO 639-1, 141 of the languages with two-letter codes from ISO 639-2 and another 30 languages with only three-letter codes. Languages with both two and three letter codes are provided with only the two letter code. .PP For languages used in multiple territories with radically different character sets, fontconfig includes per-territory orthographies. This includes Azerbaijani, Kurdish, Pashto, Tigrinya and Chinese. .SH "CONFIGURATION FILE FORMAT" .PP Configuration files for fontconfig are stored in XML format; this format makes external configuration tools easier to write and ensures that they will generate syntactically correct configuration files. As XML files are plain text, they can also be manipulated by the expert user using a text editor. .PP The fontconfig document type definition resides in the external entity "fonts.dtd"; this is normally stored in the default font configuration directory (/etc/fonts). Each configuration file should contain the following structure: .sp .nf \&... .sp .fi .SS "" .PP This is the top level element for a font configuration and can contain , , , and elements in any order. .SS "" .PP This element contains a directory name which will be scanned for font files to include in the set of available fonts. If 'prefix' is set to "xdg", the value in the XDG_DATA_HOME environment variable will be added as the path prefix. please see XDG Base Directory Specification for more details. .SS "" .PP This element contains a directory name that is supposed to be stored or read the cache of font information. If multiple elements are specified in the configuration file, the directory that can be accessed first in the list will be used to store the cache files. If it starts with '~', it refers to a directory in the users home directory. If 'prefix' is set to "xdg", the value in the XDG_CACHE_HOME environment variable will be added as the path prefix. please see XDG Base Directory Specification for more details. The default directory is ``$XDG_CACHE_HOME/fontconfig'' and it contains the cache files named ``-\&.cache- is the font configureation file version number (currently 3). .SS "" .PP This element contains the name of an additional configuration file or directory. If a directory, every file within that directory starting with an ASCII digit (U+0030 - U+0039) and ending with the string ``.conf'' will be processed in sorted order. When the XML datatype is traversed by FcConfigParse, the contents of the file(s) will also be incorporated into the configuration by passing the filename(s) to FcConfigLoadAndParse. If 'ignore_missing' is set to "yes" instead of the default "no", a missing file or directory will elicit no warning message from the library. If 'prefix' is set to "xdg", the value in the XDG_CONFIG_HOME environment variable will be added as the path prefix. please see XDG Base Directory Specification for more details. .SS "" .PP This element provides a place to consolidate additional configuration information. can contain and elements in any order. .SS "" .PP Fonts often include "broken" glyphs which appear in the encoding but are drawn as blanks on the screen. Within the element, place each Unicode characters which is supposed to be blank in an element. Characters outside of this set which are drawn as blank will be elided from the set of characters supported by the font. .SS "" .PP The element holds an element which indicates the default interval between automatic checks for font configuration changes. Fontconfig will validate all of the configuration files and directories and automatically rebuild the internal datastructures when this interval passes. .SS "" .PP This element is used to black/white list fonts from being listed or matched against. It holds acceptfont and rejectfont elements. .SS "" .PP Fonts matched by an acceptfont element are "whitelisted"; such fonts are explicitly included in the set of fonts used to resolve list and match requests; including them in this list protects them from being "blacklisted" by a rejectfont element. Acceptfont elements include glob and pattern elements which are used to match fonts. .SS "" .PP Fonts matched by an rejectfont element are "blacklisted"; such fonts are excluded from the set of fonts used to resolve list and match requests as if they didn't exist in the system. Rejectfont elements include glob and pattern elements which are used to match fonts. .SS "" .PP Glob elements hold shell-style filename matching patterns (including ? and *) which match fonts based on their complete pathnames. This can be used to exclude a set of directories (/usr/share/fonts/uglyfont*), or particular font file types (*.pcf.gz), but the latter mechanism relies rather heavily on filenaming conventions which can't be relied upon. Note that globs only apply to directories, not to individual fonts. .SS "" .PP Pattern elements perform list-style matching on incoming fonts; that is, they hold a list of elements and associated values. If all of those elements have a matching value, then the pattern matches the font. This can be used to select fonts based on attributes of the font (scalable, bold, etc), which is a more reliable mechanism than using file extensions. Pattern elements include patelt elements. .SS "" .PP Patelt elements hold a single pattern element and list of values. They must have a 'name' attribute which indicates the pattern element name. Patelt elements include int, double, string, matrix, bool, charset and const elements. .SS "" .PP This element holds first a (possibly empty) list of elements and then a (possibly empty) list of elements. Patterns which match all of the tests are subjected to all the edits. If 'target' is set to "font" instead of the default "pattern", then this element applies to the font name resulting from a match rather than a font pattern to be matched. If 'target' is set to "scan", then this element applies when the font is scanned to build the fontconfig database. .SS "" .PP This element contains a single value which is compared with the target ('pattern', 'font', 'scan' or 'default') property "property" (substitute any of the property names seen above). 'compare' can be one of "eq", "not_eq", "less", "less_eq", "more", "more_eq", "contains" or "not_contains". 'qual' may either be the default, "any", in which case the match succeeds if any value associated with the property matches the test value, or "all", in which case all of the values associated with the property must match the test value. 'ignore-blanks' takes a boolean value. if 'ignore-blanks' is set "true", any blanks in the string will be ignored on its comparison. this takes effects only when compare="eq" or compare="not_eq". When used in a element, the target= attribute in the element selects between matching the original pattern or the font. "default" selects whichever target the outer element has selected. .SS "" .PP This element contains a list of expression elements (any of the value or operator elements). The expression elements are evaluated at run-time and modify the property "property". The modification depends on whether "property" was matched by one of the associated elements, if so, the modification may affect the first matched value. Any values inserted into the property are given the indicated binding ("strong", "weak" or "same") with "same" binding using the value from the matched pattern element. \&'mode' is one of: .sp .nf Mode With Match Without Match --------------------------------------------------------------------- "assign" Replace matching value Replace all values "assign_replace" Replace all values Replace all values "prepend" Insert before matching Insert at head of list "prepend_first" Insert at head of list Insert at head of list "append" Append after matching Append at end of list "append_last" Append at end of list Append at end of list "delete" Delete matching value Delete all values "delete_all" Delete all values Delete all values .sp .fi .SS ", , , " .PP These elements hold a single value of the indicated type. elements hold either true or false. An important limitation exists in the parsing of floating point numbers -- fontconfig requires that the mantissa start with a digit, not a decimal point, so insert a leading zero for purely fractional values (e.g. use 0.5 instead of .5 and -0.5 instead of -.5). .SS "" .PP This element holds four numerical expressions of an affine transformation. At their simplest these will be four elements but they can also be more involved expressions. .SS "" .PP This element holds the two elements of a range representation. .SS "" .PP This element holds at least one element of an Unicode code point or more. .SS "" .PP This element holds at least one element of a RFC-3066-style languages or more. .SS "" .PP Holds a property name. Evaluates to the first value from the property of the pattern. If the 'target' attribute is not present, it will default to \&'default', in which case the property is returned from the font pattern during a target="font" match, and to the pattern during a target="pattern" match. The attribute can also take the values 'font' or 'pattern' to explicitly choose which pattern to use. It is an error to use a target of 'font' in a match that has target="pattern". .SS "" .PP Holds the name of a constant; these are always integers and serve as symbolic names for common font values: .sp .nf Constant Property Value ------------------------------------- thin weight 0 extralight weight 40 ultralight weight 40 light weight 50 book weight 75 regular weight 80 normal weight 80 medium weight 100 demibold weight 180 semibold weight 180 bold weight 200 extrabold weight 205 black weight 210 heavy weight 210 roman slant 0 italic slant 100 oblique slant 110 ultracondensed width 50 extracondensed width 63 condensed width 75 semicondensed width 87 normal width 100 semiexpanded width 113 expanded width 125 extraexpanded width 150 ultraexpanded width 200 proportional spacing 0 dual spacing 90 mono spacing 100 charcell spacing 110 unknown rgba 0 rgb rgba 1 bgr rgba 2 vrgb rgba 3 vbgr rgba 4 none rgba 5 lcdnone lcdfilter 0 lcddefault lcdfilter 1 lcdlight lcdfilter 2 lcdlegacy lcdfilter 3 hintnone hintstyle 0 hintslight hintstyle 1 hintmedium hintstyle 2 hintfull hintstyle 3 .sp .fi .SS ", , , , , " .PP These elements perform the specified operation on a list of expression elements. and are boolean, not bitwise. .SS ", , , , , , , " .PP Inverts the boolean sense of its one expression element .SS "" .PP This element takes three expression elements; if the value of the first is true, it produces the value of the second, otherwise it produces the value of the third. .SS "" .PP Alias elements provide a shorthand notation for the set of common match operations needed to substitute one font family for another. They contain a element followed by optional , and elements. Fonts matching the element are edited to prepend the list of ed families before the matching , append the able families after the matching and append the families to the end of the family list. .SS "" .PP Holds a single font family name .SS ", , " .PP These hold a list of elements to be used by the element. .SH "EXAMPLE CONFIGURATION FILE" .SS "SYSTEM CONFIGURATION FILE" .PP This is an example of a system-wide configuration file .sp .nf /usr/share/fonts /usr/X11R6/lib/X11/fonts mono monospace sans-serif serif monospace sans-serif fontconfig/fonts.conf conf.d local.conf Times Times New Roman serif Helvetica Arial sans Courier Courier New monospace serif Times New Roman sans Arial monospace Andale Mono <-- The example of the requirements of OR operator; If the 'family' contains 'Courier New' OR 'Courier' add 'monospace' as the alternative --> Courier New monospace Courier monospace .sp .fi .SS "USER CONFIGURATION FILE" .PP This is an example of a per-user configuration file that lives in $XDG_CONFIG_HOME/fontconfig/fonts.conf .sp .nf fonts rgb zh serif WenQuanYi Zen Hei ja sans-serif VL Gothic .sp .fi .SH "FILES" .PP \fBfonts.conf\fR contains configuration information for the fontconfig library consisting of directories to look at for font information as well as instructions on editing program specified font patterns before attempting to match the available fonts. It is in XML format. .PP \fBconf.d\fR is the conventional name for a directory of additional configuration files managed by external applications or the local administrator. The filenames starting with decimal digits are sorted in lexicographic order and used as additional configuration files. All of these files are in XML format. The master fonts.conf file references this directory in an directive. .PP \fBfonts.dtd\fR is a DTD that describes the format of the configuration files. .PP \fB$XDG_CONFIG_HOME/fontconfig/conf.d\fR and \fB~/.fonts.conf.d\fR is the conventional name for a per-user directory of (typically auto-generated) configuration files, although the actual location is specified in the global fonts.conf file. please note that ~/.fonts.conf.d is deprecated now. it will not be read by default in the future version. .PP \fB$XDG_CONFIG_HOME/fontconfig/fonts.conf\fR and \fB~/.fonts.conf\fR is the conventional location for per-user font configuration, although the actual location is specified in the global fonts.conf file. please note that ~/.fonts.conf is deprecated now. it will not be read by default in the future version. .PP \fB$XDG_CACHE_HOME/fontconfig/*.cache-*\fR and \fB ~/.fontconfig/*.cache-*\fR is the conventional repository of font information that isn't found in the per-directory caches. This file is automatically maintained by fontconfig. please note that ~/.fontconfig/*.cache-* is deprecated now. it will not be read by default in the future version. .SH "ENVIRONMENT VARIABLES" .PP \fBFONTCONFIG_FILE\fR is used to override the default configuration file. .PP \fBFONTCONFIG_PATH\fR is used to override the default configuration directory. .PP \fBFC_DEBUG\fR is used to output the detailed debugging messages. see Debugging Applications section for more details. .PP \fBFONTCONFIG_USE_MMAP\fR 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. .SH "SEE ALSO" .PP fc-cat(1), fc-cache(1), fc-list(1), fc-match(1), fc-query(1) .SH "VERSION" .PP Fontconfig version 2.11.1 fontconfig-2.11.1/doc/FcNameRegisterObjectTypes.30000664000076400007640000000064012313745357016540 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcNameRegisterObjectTypes" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcNameRegisterObjectTypes \- Register object types .SH SYNOPSIS .nf \fB#include .sp FcBool FcNameRegisterObjectTypes (const FcObjectType *\fItypes\fB, int \fIntype\fB); .fi\fR .SH "DESCRIPTION" .PP Deprecated. Does nothing. Returns FcFalse. fontconfig-2.11.1/doc/FcStrListNext.30000664000076400007640000000055112313745357014243 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcStrListNext" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcStrListNext \- get next string in iteration .SH SYNOPSIS .nf \fB#include .sp FcChar8 * FcStrListNext (FcStrList *\fIlist\fB); .fi\fR .SH "DESCRIPTION" .PP Returns the next string in \fIlist\fR\&. fontconfig-2.11.1/doc/FcAtomicUnlock.30000664000076400007640000000050212313745357014364 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcAtomicUnlock" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcAtomicUnlock \- unlock a file .SH SYNOPSIS .nf \fB#include .sp void FcAtomicUnlock (FcAtomic *\fIatomic\fB); .fi\fR .SH "DESCRIPTION" .PP Unlocks the file. fontconfig-2.11.1/doc/FcStrCmpIgnoreCase.30000664000076400007640000000077012313745357015153 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcStrCmpIgnoreCase" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcStrCmpIgnoreCase \- compare UTF-8 strings ignoring case .SH SYNOPSIS .nf \fB#include .sp int FcStrCmpIgnoreCase (const FcChar8 *\fIs1\fB, const FcChar8 *\fIs2\fB); .fi\fR .SH "DESCRIPTION" .PP Returns the usual <0, 0, >0 result of comparing \fIs1\fR and \fIs2\fR\&. This test is case-insensitive for all proper UTF-8 encoded strings. fontconfig-2.11.1/doc/FcCharSetIntersectCount.30000664000076400007640000000067612313745357016233 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcCharSetIntersectCount" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcCharSetIntersectCount \- Intersect and count charsets .SH SYNOPSIS .nf \fB#include .sp FcChar32 FcCharSetIntersectCount (const FcCharSet *\fIa\fB, const FcCharSet *\fIb\fB); .fi\fR .SH "DESCRIPTION" .PP Returns the number of chars that are in both \fIa\fR and \fIb\fR\&. fontconfig-2.11.1/doc/FcFileScan.30000664000076400007640000000213512313745357013464 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcFileScan" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcFileScan \- scan a font file .SH SYNOPSIS .nf \fB#include .sp FcBool FcFileScan (FcFontSet *\fIset\fB, FcStrSet *\fIdirs\fB, FcFileCache *\fIcache\fB, FcBlanks *\fIblanks\fB, const FcChar8 *\fIfile\fB, FcBool \fIforce\fB); .fi\fR .SH "DESCRIPTION" .PP Scans a single file and adds all fonts found to \fIset\fR\&. If \fIforce\fR is FcTrue, then the file is scanned even if associated information is found in \fIcache\fR\&. If \fIfile\fR is a directory, it is added to \fIdirs\fR\&. Whether fonts are found depends on fontconfig policy as well as the current configuration. Internally, fontconfig will ignore BDF and PCF fonts which are not in Unicode (or the effectively equivalent ISO Latin-1) encoding as those are not usable by Unicode-based applications. The configuration can ignore fonts based on filename or contents of the font file itself. Returns FcFalse if any of the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue. fontconfig-2.11.1/doc/confdir.sgml.in0000664000076400007640000000236212267155333014357 00000000000000 /etc/fonts fontconfig-2.11.1/doc/FcConfigSetRescanInterval.30000664000076400007640000000115412313745357016522 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigSetRescanInterval" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigSetRescanInterval \- Set config rescan interval .SH SYNOPSIS .nf \fB#include .sp FcBool FcConfigSetRescanInterval (FcConfig *\fIconfig\fB, int \fIrescanInterval\fB); .fi\fR .SH "DESCRIPTION" .PP Sets the rescan interval. Returns FcFalse if the interval cannot be set (due to allocation failure). Otherwise returns FcTrue. An interval setting of zero disables automatic checks. If \fIconfig\fR is NULL, the current configuration is used. fontconfig-2.11.1/doc/fcconfig.fncs0000664000076400007640000004012012306311464014056 00000000000000/* * fontconfig/doc/fcconfig.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@ FcConfig * @FUNC@ FcConfigCreate @TYPE1@ void @PURPOSE@ Create a configuration @DESC@ Creates an empty configuration. @@ @RET@ FcConfig * @FUNC@ FcConfigReference @TYPE1@ FcConfig * @ARG1@ config @PURPOSE@ Increment config reference count @DESC@ Add another reference to config. Configs are freed only when the reference count reaches zero. If config is NULL, the current configuration is used. In that case this function will be similar to FcConfigGetCurrent() except that it increments the reference count before returning and the user is responsible for destroying the configuration when not needed anymore. @@ @RET@ void @FUNC@ FcConfigDestroy @TYPE1@ FcConfig * @ARG1@ config @PURPOSE@ Destroy a configuration @DESC@ Decrements the config reference count. If all references are gone, destroys the configuration and any data associated with it. Note that calling this function with the return from FcConfigGetCurrent will cause a new configuration to be created for use as current configuration. @@ @RET@ FcBool @FUNC@ FcConfigSetCurrent @TYPE1@ FcConfig * @ARG1@ config @PURPOSE@ Set configuration as default @DESC@ Sets the current default configuration to config. Implicitly calls FcConfigBuildFonts if necessary, returning FcFalse if that call fails. @@ @RET@ FcConfig * @FUNC@ FcConfigGetCurrent @TYPE1@ void @PURPOSE@ Return current configuration @DESC@ Returns the current default configuration. @@ @RET@ FcBool @FUNC@ FcConfigUptoDate @TYPE1@ FcConfig * @ARG1@ config @PURPOSE@ Check timestamps on config files @DESC@ Checks all of the files related to config and returns whether any of them has been modified since the configuration was created. If config is NULL, the current configuration is used. @@ @RET@ FcChar8 * @FUNC@ FcConfigHome @TYPE1@ void @PURPOSE@ return the current home directory. @DESC@ Return the current user's home directory, if it is available, and if using it is enabled, and NULL otherwise. See also FcConfigEnableHome). @@ @RET@ FcBool @FUNC@ FcConfigEnableHome @TYPE1@ FcBool% @ARG1@ enable @PURPOSE@ controls use of the home directory. @DESC@ If enable is FcTrue, then Fontconfig will use various files which are specified relative to the user's home directory (using the ~ notation in the configuration). When enable is FcFalse, then all use of the home directory in these contexts will be disabled. The previous setting of the value is returned. @@ @RET@ FcBool @FUNC@ FcConfigBuildFonts @TYPE1@ FcConfig * @ARG1@ config @PURPOSE@ Build font database @DESC@ Builds the set of available fonts for the given configuration. Note that any changes to the configuration after this call have indeterminate effects. Returns FcFalse if this operation runs out of memory. If config is NULL, the current configuration is used. @@ @RET@ FcStrList * @FUNC@ FcConfigGetConfigDirs @TYPE1@ FcConfig * @ARG1@ config @PURPOSE@ Get config directories @DESC@ Returns the list of font directories specified in the configuration files for config. Does not include any subdirectories. If config is NULL, the current configuration is used. @@ @RET@ FcStrList * @FUNC@ FcConfigGetFontDirs @TYPE1@ FcConfig * @ARG1@ config @PURPOSE@ Get font directories @DESC@ Returns the list of font directories in config. This includes the configured font directories along with any directories below those in the filesystem. If config is NULL, the current configuration is used. @@ @RET@ FcStrList * @FUNC@ FcConfigGetConfigFiles @TYPE1@ FcConfig * @ARG1@ config @PURPOSE@ Get config files @DESC@ Returns the list of known configuration files used to generate config. If config is NULL, the current configuration is used. @@ @RET@ FcChar8 * @FUNC@ FcConfigGetCache @TYPE1@ FcConfig * @ARG1@ config @PURPOSE@ DEPRECATED used to return per-user cache filename @DESC@ With fontconfig no longer using per-user cache files, this function now simply returns NULL to indicate that no per-user file exists. @@ @RET@ FcStrList * @FUNC@ FcConfigGetCacheDirs @TYPE1@ const FcConfig * @ARG1@ config @PURPOSE@ return the list of directories searched for cache files @DESC@ FcConfigGetCacheDirs returns a string list containing all of the directories that fontconfig will search when attempting to load a cache file for a font directory. If config is NULL, the current configuration is used. @@ @RET@ FcFontSet * @FUNC@ FcConfigGetFonts @TYPE1@ FcConfig * @ARG1@ config @TYPE2@ FcSetName% @ARG2@ set @PURPOSE@ Get config font set @DESC@ Returns one of the two sets of fonts from the configuration as specified by set. This font set is owned by the library and must not be modified or freed. If config is NULL, the current configuration is used. @@ @RET@ FcBlanks * @FUNC@ FcConfigGetBlanks @TYPE1@ FcConfig * @ARG1@ config @PURPOSE@ Get config blanks @DESC@ Returns the FcBlanks object associated with the given configuration, if no blanks were present in the configuration, this function will return 0. The returned FcBlanks object if not NULL, is valid as long as the owning FcConfig is alive. If config is NULL, the current configuration is used. @@ @RET@ int @FUNC@ FcConfigGetRescanInterval @TYPE1@ FcConfig * @ARG1@ config @PURPOSE@ Get config rescan interval @DESC@ Returns the interval between automatic checks of the configuration (in seconds) specified in config. The configuration is checked during a call to FcFontList when this interval has passed since the last check. An interval setting of zero disables automatic checks. If config is NULL, the current configuration is used. @@ @RET@ FcBool @FUNC@ FcConfigSetRescanInterval @TYPE1@ FcConfig * @ARG1@ config @TYPE2@ int% @ARG2@ rescanInterval @PURPOSE@ Set config rescan interval @DESC@ Sets the rescan interval. Returns FcFalse if the interval cannot be set (due to allocation failure). Otherwise returns FcTrue. An interval setting of zero disables automatic checks. If config is NULL, the current configuration is used. @@ @RET@ FcBool @FUNC@ FcConfigAppFontAddFile @TYPE1@ FcConfig * @ARG1@ config @TYPE2@ const FcChar8 * @ARG2@ file @PURPOSE@ Add font file to font database @DESC@ Adds an application-specific font to the configuration. Returns FcFalse if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue. If config is NULL, the current configuration is used. @@ @RET@ FcBool @FUNC@ FcConfigAppFontAddDir @TYPE1@ FcConfig * @ARG1@ config @TYPE2@ const FcChar8 * @ARG2@ dir @PURPOSE@ Add fonts from directory to font database @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 config is NULL, the current configuration is used. @@ @RET@ void @FUNC@ FcConfigAppFontClear @TYPE1@ FcConfig * @ARG1@ config @PURPOSE@ Remove all app fonts from font database @DESC@ Clears the set of application-specific fonts. If config is NULL, the current configuration is used. @@ @RET@ FcBool @FUNC@ FcConfigSubstituteWithPat @TYPE1@ FcConfig * @ARG1@ config @TYPE2@ FcPattern * @ARG2@ p @TYPE3@ FcPattern * @ARG3@ p_pat @TYPE4@ FcMatchKind% @ARG4@ kind @PURPOSE@ Execute substitutions @DESC@ Performs the sequence of pattern modification operations, if kind is FcMatchPattern, then those tagged as pattern operations are applied, else if kind is FcMatchFont, those tagged as font operations are applied and p_pat is used for <test> elements with target=pattern. Returns FcFalse if the substitution cannot be performed (due to allocation failure). Otherwise returns FcTrue. If config is NULL, the current configuration is used. @@ @RET@ FcBool @FUNC@ FcConfigSubstitute @TYPE1@ FcConfig * @ARG1@ config @TYPE2@ FcPattern * @ARG2@ p @TYPE3@ FcMatchKind% @ARG3@ kind @PURPOSE@ Execute substitutions @DESC@ Calls FcConfigSubstituteWithPat setting p_pat to NULL. Returns FcFalse if the substitution cannot be performed (due to allocation failure). Otherwise returns FcTrue. If config is NULL, the current configuration is used. @@ @RET@ FcPattern * @FUNC@ FcFontMatch @TYPE1@ FcConfig * @ARG1@ config @TYPE2@ FcPattern * @ARG2@ p @TYPE3@ FcResult * @ARG3@ result @PURPOSE@ Return best font @DESC@ Finds the font in sets most closely matching pattern and returns the result of FcFontRenderPrepare for that font and the provided pattern. This function should be called only after FcConfigSubstitute and FcDefaultSubstitute have been called for p; otherwise the results will not be correct. If config is NULL, the current configuration is used. @@ @RET@ FcFontSet * @FUNC@ FcFontSort @TYPE1@ FcConfig * @ARG1@ config @TYPE2@ FcPattern * @ARG2@ p @TYPE3@ FcBool% @ARG3@ trim @TYPE4@ FcCharSet ** @ARG4@ csp @TYPE5@ FcResult * @ARG5@ result @PURPOSE@ Return list of matching fonts @DESC@ Returns the list of fonts sorted by closeness to p. If trim is FcTrue, elements in the list which don't include Unicode coverage not provided by earlier elements in the list are elided. The union of Unicode coverage of all of the fonts is returned in csp, if csp is not NULL. This function should be called only after FcConfigSubstitute and FcDefaultSubstitute have been called for p; otherwise the results will not be correct. The returned FcFontSet references FcPattern structures which may be shared by the return value from multiple FcFontSort calls, applications must not modify these patterns. Instead, they should be passed, along with p to FcFontRenderPrepare which combines them into a complete pattern. The FcFontSet returned by FcFontSort is destroyed by calling FcFontSetDestroy. If config is NULL, the current configuration is used. @@ @RET@ FcPattern * @FUNC@ FcFontRenderPrepare @TYPE1@ FcConfig * @ARG1@ config @TYPE2@ FcPattern * @ARG2@ pat @TYPE3@ FcPattern * @ARG3@ font @PURPOSE@ Prepare pattern for loading font file @DESC@ Creates a new pattern consisting of elements of font not appearing in pat, elements of pat not appearing in font and the best matching value from pat for elements appearing in both. The result is passed to FcConfigSubstituteWithPat with kind FcMatchFont and then returned. @@ @RET@ FcFontSet * @FUNC@ FcFontList @TYPE1@ FcConfig * @ARG1@ config @TYPE2@ FcPattern * @ARG2@ p @TYPE3@ FcObjectSet * @ARG3@ os @PURPOSE@ List fonts @DESC@ Selects fonts matching p, creates patterns from those fonts containing only the objects in os and returns the set of unique such patterns. If config is NULL, the default configuration is checked to be up to date, and used. @@ @RET@ FcChar8 * @FUNC@ FcConfigFilename @TYPE1@ const FcChar8 * @ARG1@ name @PURPOSE@ Find a config file @DESC@ Given the specified external entity name, return the associated filename. This provides applications a way to convert various configuration file references into filename form. A null or empty name indicates that the default configuration file should be used; which file this references can be overridden with the FONTCONFIG_FILE environment variable. Next, if the name starts with ~, it refers to a file in the current users home directory. Otherwise if the name doesn't start with '/', it refers to a file in the default configuration directory; the built-in default directory can be overridden with the FONTCONFIG_PATH environment variable. @@ @RET@ FcBool @FUNC@ FcConfigParseAndLoad @TYPE1@ FcConfig * @ARG1@ config @TYPE2@ const FcChar8 * @ARG2@ file @TYPE3@ FcBool% @ARG3@ complain @PURPOSE@ load a configuration file @DESC@ Walks the configuration in 'file' and constructs the internal representation in 'config'. Any include files referenced from within 'file' will be loaded and parsed. If 'complain' is FcFalse, no warning will be displayed if 'file' does not exist. Error and warning messages will be output to stderr. Returns FcFalse if some error occurred while loading the file, either a parse error, semantic error or allocation failure. Otherwise returns FcTrue. @@ @RET@ const FcChar8 * @FUNC@ FcConfigGetSysRoot @TYPE1@ const FcConfig * @ARG1@ config @PURPOSE@ Obtain the system root directory @DESC@ Obtrains the system root directory in 'config' if available. @SINCE@ 2.10.92 @@ @RET@ void @FUNC@ FcConfigSetSysRoot @TYPE1@ FcConfig * @ARG1@ config @TYPE2@ const FcChar8 * @ARG2@ sysroot @PURPOSE@ Set the system root directory @DESC@ Set 'sysroot' as the system root directory. fontconfig prepend 'sysroot' to the cache directories in order to allow people to generate caches at the build time. Note that this causes changing current config. i.e. this function calls FcConfigSetCurrent() internally. @SINCE@ 2.10.92 @@ fontconfig-2.11.1/doc/FcBlanksAdd.30000664000076400007640000000065612313745357013631 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcBlanksAdd" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcBlanksAdd \- Add a character to an FcBlanks .SH SYNOPSIS .nf \fB#include .sp FcBool FcBlanksAdd (FcBlanks *\fIb\fB, FcChar32 \fIucs4\fB); .fi\fR .SH "DESCRIPTION" .PP Adds a single character to an FcBlanks object, returning FcFalse if this process ran out of memory. fontconfig-2.11.1/doc/fcmatrix.sgml0000664000076400007640000003575412306317520014146 00000000000000 FcMatrixInit 3 Fontconfig &version; FcMatrixInit initialize an FcMatrix structure #include <fontconfig/fontconfig.h> void FcMatrixInit FcMatrix *matrix Description FcMatrixInit initializes matrix to the identity matrix. FcMatrixCopy 3 Fontconfig &version; FcMatrixCopy Copy a matrix #include <fontconfig/fontconfig.h> void FcMatrixCopy const FcMatrix *matrix Description FcMatrixCopy allocates a new FcMatrix and copies mat into it. FcMatrixEqual 3 Fontconfig &version; FcMatrixEqual Compare two matrices #include <fontconfig/fontconfig.h> void FcMatrixEqual const FcMatrix *matrix1 const FcMatrix *matrix2 Description FcMatrixEqual compares matrix1 and matrix2 returning FcTrue when they are equal and FcFalse when they are not. FcMatrixMultiply 3 Fontconfig &version; FcMatrixMultiply Multiply matrices #include <fontconfig/fontconfig.h> void FcMatrixMultiply FcMatrix *result const FcMatrix *matrix1 const FcMatrix *matrix2 Description FcMatrixMultiply multiplies matrix1 and matrix2 storing the result in result. FcMatrixRotate 3 Fontconfig &version; FcMatrixRotate Rotate a matrix #include <fontconfig/fontconfig.h> void FcMatrixRotate FcMatrix *matrix double cos double sin Description FcMatrixRotate rotates matrix by the angle who's sine is sin and cosine is cos. This is done by multiplying by the matrix: cos -sin sin cos FcMatrixScale 3 Fontconfig &version; FcMatrixScale Scale a matrix #include <fontconfig/fontconfig.h> void FcMatrixScale FcMatrix *matrix double sx double dy Description FcMatrixScale multiplies matrix x values by sx and y values by dy. This is done by multiplying by the matrix: sx 0 0 dy FcMatrixShear 3 Fontconfig &version; FcMatrixShear Shear a matrix #include <fontconfig/fontconfig.h> void FcMatrixShear FcMatrix *matrix double sh double sv Description FcMatrixShare shears matrix horizontally by sh and vertically by sv. This is done by multiplying by the matrix: 1 sh sv 1 fontconfig-2.11.1/doc/FcFontSort.30000664000076400007640000000243112313745357013555 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcFontSort" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcFontSort \- Return list of matching fonts .SH SYNOPSIS .nf \fB#include .sp FcFontSet * FcFontSort (FcConfig *\fIconfig\fB, FcPattern *\fIp\fB, FcBool \fItrim\fB, FcCharSet **\fIcsp\fB, FcResult *\fIresult\fB); .fi\fR .SH "DESCRIPTION" .PP Returns the list of fonts sorted by closeness to \fIp\fR\&. If \fItrim\fR is FcTrue, elements in the list which don't include Unicode coverage not provided by earlier elements in the list are elided. The union of Unicode coverage of all of the fonts is returned in \fIcsp\fR, if \fIcsp\fR is not NULL. This function should be called only after FcConfigSubstitute and FcDefaultSubstitute have been called for \fIp\fR; otherwise the results will not be correct. .PP The returned FcFontSet references FcPattern structures which may be shared by the return value from multiple FcFontSort calls, applications must not modify these patterns. Instead, they should be passed, along with \fIp\fR to \fBFcFontRenderPrepare\fR which combines them into a complete pattern. .PP The FcFontSet returned by FcFontSort is destroyed by calling FcFontSetDestroy. If \fIconfig\fR is NULL, the current configuration is used. fontconfig-2.11.1/doc/FcStrCopyFilename.30000664000076400007640000000153712313745357015051 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcStrCopyFilename" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcStrCopyFilename \- create a complete path from a filename .SH SYNOPSIS .nf \fB#include .sp FcChar8 * FcStrCopyFilename (const FcChar8 *\fIs\fB); .fi\fR .SH "DESCRIPTION" .PP \fBFcStrCopyFilename\fR constructs an absolute pathname from \fIs\fR\&. It converts any leading '~' characters in to the value of the HOME environment variable, and any relative paths are converted to absolute paths using the current working directory. Sequences of '/' characters are converted to a single '/', and names containing the current directory '.' or parent directory '..' are correctly reconstructed. Returns NULL if '~' is the leading character and HOME is unset or disabled (see \fBFcConfigEnableHome\fR). fontconfig-2.11.1/doc/FcStrListFirst.30000664000076400007640000000061012313745357014410 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcStrListFirst" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcStrListFirst \- get first string in iteration .SH SYNOPSIS .nf \fB#include .sp void FcStrListFirst (FcStrList *\fIlist\fB); .fi\fR .SH "DESCRIPTION" .PP Returns the first string in \fIlist\fR\&. .SH "SINCE" .PP version 2.11.0 fontconfig-2.11.1/doc/FcMatrixInit.30000664000076400007640000000060112313745357014064 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcMatrixInit" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcMatrixInit \- initialize an FcMatrix structure .SH SYNOPSIS .nf \fB#include .sp void FcMatrixInit (FcMatrix *\fImatrix\fB); .fi\fR .SH "DESCRIPTION" .PP \fBFcMatrixInit\fR initializes \fImatrix\fR to the identity matrix. fontconfig-2.11.1/doc/FcObjectSetDestroy.30000664000076400007640000000053312313745357015234 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcObjectSetDestroy" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcObjectSetDestroy \- Destroy an object set .SH SYNOPSIS .nf \fB#include .sp void FcObjectSetDestroy (FcObjectSet *\fIos\fB); .fi\fR .SH "DESCRIPTION" .PP Destroys an object set. fontconfig-2.11.1/doc/FcBlanksCreate.30000664000076400007640000000052112313745357014333 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcBlanksCreate" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcBlanksCreate \- Create an FcBlanks .SH SYNOPSIS .nf \fB#include .sp FcBlanks * FcBlanksCreate (void\fI\fB); .fi\fR .SH "DESCRIPTION" .PP Creates an empty FcBlanks object. fontconfig-2.11.1/doc/edit-sgml.c0000664000076400007640000002341012267155333013470 00000000000000/* * fontconfig/doc/edit-sgml.c * * 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. */ #include #include #include #include static void * New (int size); static void * Reallocate (void *p, int size); static void Dispose (void *p); typedef enum { False, True } Bool; typedef struct { char *buf; int size; int len; } String; static String * StringNew (void); static void StringAdd (String *s, char c); static void StringAddString (String *s, char *buf); static String * StringMake (char *buf); static void StringDel (String *s); static void StringPut (FILE *f, String *s); static void StringDispose (String *s); typedef struct { String *tag; String *text; } Replace; static Replace * ReplaceNew (void); static void ReplaceDispose (Replace *r); static void Bail (const char *format, int line, const char *arg); static Replace * ReplaceRead (FILE *f, int *linep); typedef struct _replaceList { struct _replaceList *next; Replace *r; } ReplaceList; static ReplaceList * ReplaceListNew (Replace *r, ReplaceList *next); static void ReplaceListDispose (ReplaceList *l); typedef struct { ReplaceList *head; } ReplaceSet; static ReplaceSet * ReplaceSetNew (void); static void ReplaceSetDispose (ReplaceSet *s); static void ReplaceSetAdd (ReplaceSet *s, Replace *r); static Replace * ReplaceSetFind (ReplaceSet *s, char *tag); static ReplaceSet * ReplaceSetRead (FILE *f, int *linep); typedef struct _skipStack { struct _skipStack *prev; int skipping; } SkipStack; static SkipStack * SkipStackPush (SkipStack *prev, int skipping); static SkipStack * SkipStackPop (SkipStack *prev); typedef struct _loopStack { struct _loopStack *prev; String *tag; String *extra; long pos; } LoopStack; static LoopStack * LoopStackPush (LoopStack *prev, FILE *f, char *tag); static LoopStack * LoopStackLoop (ReplaceSet *rs, LoopStack *ls, FILE *f); static void LineSkip (FILE *f, int *linep); static void DoReplace (FILE *f, int *linep, ReplaceSet *s); #define STRING_INIT 128 static void * New (int size) { void *m = malloc (size); if (!m) abort (); return m; } static void * Reallocate (void *p, int size) { void *r = realloc (p, size); if (!r) abort (); return r; } static void Dispose (void *p) { free (p); } static String * StringNew (void) { String *s; s = New (sizeof (String)); s->buf = New (STRING_INIT); s->size = STRING_INIT - 1; s->buf[0] = '\0'; s->len = 0; return s; } static void StringAdd (String *s, char c) { if (s->len == s->size) s->buf = Reallocate (s->buf, (s->size *= 2) + 1); s->buf[s->len++] = c; s->buf[s->len] = '\0'; } static void StringAddString (String *s, char *buf) { while (*buf) StringAdd (s, *buf++); } static String * StringMake (char *buf) { String *s = StringNew (); StringAddString (s, buf); return s; } static void StringDel (String *s) { if (s->len) s->buf[--s->len] = '\0'; } static void StringPut (FILE *f, String *s) { char *b = s->buf; while (*b) putc (*b++, f); } #define StringLast(s) ((s)->len ? (s)->buf[(s)->len - 1] : '\0') static void StringDispose (String *s) { Dispose (s->buf); Dispose (s); } static Replace * ReplaceNew (void) { Replace *r = New (sizeof (Replace)); r->tag = StringNew (); r->text = StringNew (); return r; } static void ReplaceDispose (Replace *r) { StringDispose (r->tag); StringDispose (r->text); Dispose (r); } static void Bail (const char *format, int line, const char *arg) { fprintf (stderr, "fatal: "); fprintf (stderr, format, line, arg); fprintf (stderr, "\n"); exit (1); } static int Getc (FILE *f, int *linep) { int c = getc (f); if (c == '\n') ++(*linep); return c; } static void Ungetc (int c, FILE *f, int *linep) { if (c == '\n') --(*linep); ungetc (c, f); } static Replace * ReplaceRead (FILE *f, int *linep) { int c; Replace *r; while ((c = Getc (f, linep)) != '@') { if (c == EOF) return 0; } r = ReplaceNew(); while ((c = Getc (f, linep)) != '@') { if (c == EOF) { ReplaceDispose (r); return 0; } if (isspace (c)) Bail ("%d: invalid character after tag %s", *linep, r->tag->buf); StringAdd (r->tag, c); } if (r->tag->buf[0] == '\0') { ReplaceDispose (r); return 0; } while (isspace ((c = Getc (f, linep)))) ; Ungetc (c, f, linep); while ((c = Getc (f, linep)) != '@' && c != EOF) StringAdd (r->text, c); if (c == '@') Ungetc (c, f, linep); while (isspace (StringLast (r->text))) StringDel (r->text); if (StringLast(r->text) == '%') { StringDel (r->text); StringAdd (r->text, ' '); } return r; } static ReplaceList * ReplaceListNew (Replace *r, ReplaceList *next) { ReplaceList *l = New (sizeof (ReplaceList)); l->r = r; l->next = next; return l; } static void ReplaceListDispose (ReplaceList *l) { if (l) { ReplaceListDispose (l->next); ReplaceDispose (l->r); Dispose (l); } } static ReplaceSet * ReplaceSetNew (void) { ReplaceSet *s = New (sizeof (ReplaceSet)); s->head = 0; return s; } static void ReplaceSetDispose (ReplaceSet *s) { ReplaceListDispose (s->head); Dispose (s); } static void ReplaceSetAdd (ReplaceSet *s, Replace *r) { s->head = ReplaceListNew (r, s->head); } static Replace * ReplaceSetFind (ReplaceSet *s, char *tag) { ReplaceList *l; for (l = s->head; l; l = l->next) if (!strcmp (tag, l->r->tag->buf)) return l->r; return 0; } static ReplaceSet * ReplaceSetRead (FILE *f, int *linep) { ReplaceSet *s = ReplaceSetNew (); Replace *r; while ((r = ReplaceRead (f, linep))) { while (ReplaceSetFind (s, r->tag->buf)) StringAdd (r->tag, '+'); ReplaceSetAdd (s, r); } if (!s->head) { ReplaceSetDispose (s); s = 0; } return s; } static SkipStack * SkipStackPush (SkipStack *prev, int skipping) { SkipStack *ss = New (sizeof (SkipStack)); ss->prev = prev; ss->skipping = skipping; return ss; } static SkipStack * SkipStackPop (SkipStack *prev) { SkipStack *ss = prev->prev; Dispose (prev); return ss; } static LoopStack * LoopStackPush (LoopStack *prev, FILE *f, char *tag) { LoopStack *ls = New (sizeof (LoopStack)); ls->prev = prev; ls->tag = StringMake (tag); ls->extra = StringNew (); ls->pos = ftell (f); return ls; } static LoopStack * LoopStackLoop (ReplaceSet *rs, LoopStack *ls, FILE *f) { String *s = StringMake (ls->tag->buf); LoopStack *ret = ls; Bool loop; StringAdd (ls->extra, '+'); StringAddString (s, ls->extra->buf); loop = ReplaceSetFind (rs, s->buf) != 0; StringDispose (s); if (loop) fseek (f, ls->pos, SEEK_SET); else { ret = ls->prev; StringDispose (ls->tag); StringDispose (ls->extra); Dispose (ls); } return ret; } static void LineSkip (FILE *f, int *linep) { int c; while ((c = Getc (f, linep)) == '\n') ; Ungetc (c, f, linep); } static void DoReplace (FILE *f, int *linep, ReplaceSet *s) { int c; String *tag; Replace *r; SkipStack *ss = 0; LoopStack *ls = 0; int skipping = 0; while ((c = Getc (f, linep)) != EOF) { if (c == '@') { tag = StringNew (); while ((c = Getc (f, linep)) != '@') { if (c == EOF) abort (); StringAdd (tag, c); } if (ls) StringAddString (tag, ls->extra->buf); switch (tag->buf[0]) { case '?': ss = SkipStackPush (ss, skipping); if (!ReplaceSetFind (s, tag->buf + 1)) skipping++; LineSkip (f, linep); break; case ':': if (!ss) abort (); if (ss->skipping == skipping) ++skipping; else --skipping; LineSkip (f, linep); break; case ';': skipping = ss->skipping; ss = SkipStackPop (ss); LineSkip (f, linep); break; case '{': ls = LoopStackPush (ls, f, tag->buf + 1); LineSkip (f, linep); break; case '}': ls = LoopStackLoop (s, ls, f); LineSkip (f, linep); break; default: r = ReplaceSetFind (s, tag->buf); if (r && !skipping) StringPut (stdout, r->text); break; } StringDispose (tag); } else if (!skipping) putchar (c); } } int main (int argc, char **argv) { FILE *f; ReplaceSet *s; int iline, oline; if (!argv[1]) Bail ("usage: %*s ", 0, argv[0]); f = fopen (argv[1], "r"); if (!f) { Bail ("can't open file %s", 0, argv[1]); exit (1); } iline = 1; while ((s = ReplaceSetRead (stdin, &iline))) { oline = 1; DoReplace (f, &oline, s); ReplaceSetDispose (s); rewind (f); } if (ferror (stdout)) Bail ("%s", 0, "error writing output"); exit (0); } fontconfig-2.11.1/doc/FcCacheNumSubdir.30000664000076400007640000000062712313745357014640 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcCacheNumSubdir" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcCacheNumSubdir \- Return the number of subdirectories in cache. .SH SYNOPSIS .nf \fB#include .sp int FcCacheNumSubdir (const FcCache *\fIcache\fB); .fi\fR .SH "DESCRIPTION" .PP This returns the total number of subdirectories in the cache. fontconfig-2.11.1/doc/fccharset.fncs0000664000076400007640000002032512306317360014250 00000000000000/* * fontconfig/doc/fccharset.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@ FcCharSet * @FUNC@ FcCharSetCreate @TYPE1@ void @PURPOSE@ Create an empty character set @DESC@ FcCharSetCreate allocates and initializes a new empty character set object. @@ @RET@ void @FUNC@ FcCharSetDestroy @TYPE1@ FcCharSet * @ARG1@ fcs @PURPOSE@ Destroy a character set @DESC@ FcCharSetDestroy decrements the reference count fcs. If the reference count becomes zero, all memory referenced is freed. @@ @RET@ FcBool @FUNC@ FcCharSetAddChar @TYPE1@ FcCharSet * @ARG1@ fcs @TYPE2@ FcChar32% @ARG2@ ucs4 @PURPOSE@ Add a character to a charset @DESC@ FcCharSetAddChar adds a single Unicode char to the set, returning FcFalse on failure, either as a result of a constant set or from running out of memory. @@ @RET@ FcBool @FUNC@ FcCharSetDelChar @TYPE1@ FcCharSet * @ARG1@ fcs @TYPE2@ FcChar32% @ARG2@ ucs4 @PURPOSE@ Add a character to a charset @DESC@ FcCharSetDelChar deletes a single Unicode char from the set, returning FcFalse on failure, either as a result of a constant set or from running out of memory. @SINCE@ 2.9.0 @@ @RET@ FcCharSet * @FUNC@ FcCharSetCopy @TYPE1@ FcCharSet * @ARG1@ src @PURPOSE@ Copy a charset @DESC@ Makes a copy of src; note that this may not actually do anything more than increment the reference count on src. @@ @RET@ FcBool @FUNC@ FcCharSetEqual @TYPE1@ const FcCharSet * @ARG1@ a @TYPE2@ const FcCharSet * @ARG2@ b @PURPOSE@ Compare two charsets @DESC@ Returns whether a and b contain the same set of Unicode chars. @@ @RET@ FcCharSet * @FUNC@ FcCharSetIntersect @TYPE1@ const FcCharSet * @ARG1@ a @TYPE2@ const FcCharSet * @ARG2@ b @PURPOSE@ Intersect charsets @DESC@ Returns a set including only those chars found in both a and b. @@ @RET@ FcCharSet * @FUNC@ FcCharSetUnion @TYPE1@ const FcCharSet * @ARG1@ a @TYPE2@ const FcCharSet * @ARG2@ b @PURPOSE@ Add charsets @DESC@ Returns a set including only those chars found in either a or b. @@ @RET@ FcCharSet * @FUNC@ FcCharSetSubtract @TYPE1@ const FcCharSet * @ARG1@ a @TYPE2@ const FcCharSet * @ARG2@ b @PURPOSE@ Subtract charsets @DESC@ Returns a set including only those chars found in a but not b. @@ @RET@ FcBool @FUNC@ FcCharSetMerge @TYPE1@ FcCharSet * @ARG1@ a @TYPE2@ const FcCharSet * @ARG2@ b @TYPE3@ FcBool * @ARG3@ changed @PURPOSE@ Merge charsets @DESC@ Adds all chars in b to a. In other words, this is an in-place version of FcCharSetUnion. If changed is not NULL, then it returns whether any new chars from b were added to a. Returns FcFalse on failure, either when a is a constant set or from running out of memory. @@ @RET@ FcBool @FUNC@ FcCharSetHasChar @TYPE1@ const FcCharSet * @ARG1@ fcs @TYPE2@ FcChar32% @ARG2@ ucs4 @PURPOSE@ Check a charset for a char @DESC@ Returns whether fcs contains the char ucs4. @@ @RET@ FcChar32 @FUNC@ FcCharSetCount @TYPE1@ const FcCharSet * @ARG1@ a @PURPOSE@ Count entries in a charset @DESC@ Returns the total number of Unicode chars in a. @@ @RET@ FcChar32 @FUNC@ FcCharSetIntersectCount @TYPE1@ const FcCharSet * @ARG1@ a @TYPE2@ const FcCharSet * @ARG2@ b @PURPOSE@ Intersect and count charsets @DESC@ Returns the number of chars that are in both a and b. @@ @RET@ FcChar32 @FUNC@ FcCharSetSubtractCount @TYPE1@ const FcCharSet * @ARG1@ a @TYPE2@ const FcCharSet * @ARG2@ b @PURPOSE@ Subtract and count charsets @DESC@ Returns the number of chars that are in a but not in b. @@ @RET@ FcBool @FUNC@ FcCharSetIsSubset @TYPE1@ const FcCharSet * @ARG1@ a @TYPE2@ const FcCharSet * @ARG2@ b @PURPOSE@ Test for charset inclusion @DESC@ Returns whether a is a subset of b. @@ @RET@ FcChar32 @FUNC@ FcCharSetFirstPage @TYPE1@ const FcCharSet * @ARG1@ a @TYPE2@ FcChar32[FC_CHARSET_MAP_SIZE]% @ARG2@ map @TYPE3@ FcChar32 * @ARG3@ next @PURPOSE@ Start enumerating charset contents @DESC@ Builds an array of bits in map marking the first page of Unicode coverage of a. *next is set to contains the base code point for the next page in a. Returns the base code point for the page, or FC_CHARSET_DONE if a contains no pages. As an example, if FcCharSetFirstPage returns 0x300 and fills map with 0xffffffff 0xffffffff 0x01000008 0x44300002 0xffffd7f0 0xfffffffb 0xffff7fff 0xffff0003 Then the page contains code points 0x300 through 0x33f (the first 64 code points on the page) because map[0] and map[1] both have all their bits set. It also contains code points 0x343 (0x300 + 32*2 + (4-1)) and 0x35e (0x300 + 32*2 + (31-1)) because map[2] has the 4th and 31st bits set. The code points represented by map[3] and later are left as an excercise for the reader ;). @@ @RET@ FcChar32 @FUNC@ FcCharSetNextPage @TYPE1@ const FcCharSet * @ARG1@ a @TYPE2@ FcChar32[FC_CHARSET_MAP_SIZE]% @ARG2@ map @TYPE3@ FcChar32 * @ARG3@ next @PURPOSE@ Continue enumerating charset contents @DESC@ Builds an array of bits in map marking the Unicode coverage of a for page containing *next (see the FcCharSetFirstPage description for details). *next is set to contains the base code point for the next page in a. Returns the base of code point for the page, or FC_CHARSET_DONE if a does not contain *next. @@ @RET@ FcChar32 @FUNC@ FcCharSetCoverage @TYPE1@ const FcCharSet * @ARG1@ a @TYPE2@ FcChar32 @ARG2@ page @TYPE3@ FcChar32[8] @ARG3@ result @PURPOSE@ DEPRECATED return coverage for a Unicode page @DESC@ DEPRECATED This function returns a bitmask in result which indicates which code points in page are included in a. FcCharSetCoverage returns the next page in the charset which has any coverage. @@ @RET@ FcCharSet * @FUNC@ FcCharSetNew @TYPE1@ void @PURPOSE@ DEPRECATED alias for FcCharSetCreate @DESC@ FcCharSetNew is a DEPRECATED alias for FcCharSetCreate. @@ fontconfig-2.11.1/doc/fcstring.fncs0000664000076400007640000002004612267155333014133 00000000000000/* * fontconfig/doc/fcstring.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@ int @FUNC@ FcUtf8ToUcs4 @TYPE1@ FcChar8 * @ARG1@ src @TYPE2@ FcChar32 * @ARG2@ dst @TYPE3@ int% @ARG3@ len @PURPOSE@ convert UTF-8 to UCS4 @DESC@ Converts the next Unicode char from src into dst and returns the number of bytes containing the char. src must be at least len bytes long. @@ @RET@ int @FUNC@ FcUcs4ToUtf8 @TYPE1@ FcChar32% @ARG1@ src @TYPE2@ FcChar8% @ARG2@ dst[FC_UTF8_MAX_LEN] @PURPOSE@ convert UCS4 to UTF-8 @DESC@ Converts the Unicode char from src into dst and returns the number of bytes needed to encode the char. @@ @RET@ FcBool @FUNC@ FcUtf8Len @TYPE1@ FcChar8 * @ARG1@ src @TYPE2@ int% @ARG2@ len @TYPE3@ int * @ARG3@ nchar @TYPE4@ int * @ARG4@ wchar @PURPOSE@ count UTF-8 encoded chars @DESC@ Counts the number of Unicode chars in len bytes of src. Places that count in nchar. wchar contains 1, 2 or 4 depending on the number of bytes needed to hold the largest Unicode char counted. The return value indicates whether src is a well-formed UTF8 string. @@ @RET@ int @FUNC@ FcUtf16ToUcs4 @TYPE1@ FcChar8 * @ARG1@ src @TYPE2@ FcEndian% @ARG2@ endian @TYPE3@ FcChar32 * @ARG3@ dst @TYPE4@ int% @ARG4@ len @PURPOSE@ convert UTF-16 to UCS4 @DESC@ Converts the next Unicode char from src into dst and returns the number of bytes containing the char. src must be at least len bytes long. Bytes of src are combined into 16-bit units according to endian. @@ @RET@ FcBool @FUNC@ FcUtf16Len @TYPE1@ FcChar8 * @ARG1@ src @TYPE2@ FcEndian% @ARG2@ endian @TYPE3@ int% @ARG3@ len @TYPE4@ int * @ARG4@ nchar @TYPE5@ int * @ARG5@ wchar @PURPOSE@ count UTF-16 encoded chars @DESC@ Counts the number of Unicode chars in len bytes of src. Bytes of src are combined into 16-bit units according to endian. Places that count in nchar. wchar contains 1, 2 or 4 depending on the number of bytes needed to hold the largest Unicode char counted. The return value indicates whether string is a well-formed UTF16 string. @@ @RET@ FcBool @FUNC@ FcIsLower @TYPE1@ FcChar8 @ARG1@ c @PURPOSE@ check for lower case ASCII character @DESC@ This macro checks whether c is an lower case ASCII letter. @@ @RET@ FcBool @FUNC@ FcIsUpper @TYPE1@ FcChar8 @ARG1@ c @PURPOSE@ check for upper case ASCII character @DESC@ This macro checks whether c is a upper case ASCII letter. @@ @RET@ FcChar8 @FUNC@ FcToLower @TYPE1@ FcChar8 @ARG1@ c @PURPOSE@ convert upper case ASCII to lower case @DESC@ This macro converts upper case ASCII c to the equivalent lower case letter. @@ @RET@ FcChar8 * @FUNC@ FcStrCopy @TYPE1@ const FcChar8 * @ARG1@ s @PURPOSE@ duplicate a string @DESC@ Allocates memory, copies s and returns the resulting buffer. Yes, this is strdup, but that function isn't available on every platform. @@ @RET@ FcChar8 * @FUNC@ FcStrDowncase @TYPE1@ const FcChar8 * @ARG1@ s @PURPOSE@ create a lower case translation of a string @DESC@ Allocates memory, copies s, converting upper case letters to lower case and returns the allocated buffer. @@ @RET@ FcChar8 * @FUNC@ FcStrCopyFilename @TYPE1@ const FcChar8 * @ARG1@ s @PURPOSE@ create a complete path from a filename @DESC@ FcStrCopyFilename constructs an absolute pathname from s. It converts any leading '~' characters in to the value of the HOME environment variable, and any relative paths are converted to absolute paths using the current working directory. Sequences of '/' characters are converted to a single '/', and names containing the current directory '.' or parent directory '..' are correctly reconstructed. Returns NULL if '~' is the leading character and HOME is unset or disabled (see FcConfigEnableHome). @@ @RET@ int @FUNC@ FcStrCmp @TYPE1@ const FcChar8 * @ARG1@ s1 @TYPE2@ const FcChar8 * @ARG2@ s2 @PURPOSE@ compare UTF-8 strings @DESC@ Returns the usual <0, 0, >0 result of comparing s1 and s2. @@ @RET@ int @FUNC@ FcStrCmpIgnoreCase @TYPE1@ const FcChar8 * @ARG1@ s1 @TYPE2@ const FcChar8 * @ARG2@ s2 @PURPOSE@ compare UTF-8 strings ignoring case @DESC@ Returns the usual <0, 0, >0 result of comparing s1 and s2. This test is case-insensitive for all proper UTF-8 encoded strings. @@ @RET@ FcChar8 * @FUNC@ FcStrStr @TYPE1@ const FcChar8 * @ARG1@ s1 @TYPE2@ const FcChar8 * @ARG2@ s2 @PURPOSE@ locate UTF-8 substring @DESC@ Returns the location of s2 in s1. Returns NULL if s2 is not present in s1. This test will operate properly with UTF8 encoded strings. @@ @RET@ FcChar8 * @FUNC@ FcStrStrIgnoreCase @TYPE1@ const FcChar8 * @ARG1@ s1 @TYPE2@ const FcChar8 * @ARG2@ s2 @PURPOSE@ locate UTF-8 substring ignoring ASCII case @DESC@ Returns the location of s2 in s1, ignoring case. Returns NULL if s2 is not present in s1. This test is case-insensitive for all proper UTF-8 encoded strings. @@ @RET@ FcChar8 * @FUNC@ FcStrPlus @TYPE1@ const FcChar8 * @ARG1@ s1 @TYPE2@ const FcChar8 * @ARG2@ s2 @PURPOSE@ concatenate two strings @DESC@ This function allocates new storage and places the concatenation of s1 and s2 there, returning the new string. @@ @RET@ void @FUNC@ FcStrFree @TYPE1@ FcChar8 * @ARG1@ s @PURPOSE@ free a string @DESC@ This is just a wrapper around free(3) which helps track memory usage of strings within the fontconfig library. @@ @RET@ FcChar8 * @FUNC@ FcStrDirname @TYPE1@ const FcChar8 * @ARG1@ file @PURPOSE@ directory part of filename @DESC@ Returns the directory containing file. This is returned in newly allocated storage which should be freed when no longer needed. @@ @RET@ FcChar8 * @FUNC@ FcStrBasename @TYPE1@ const FcChar8 * @ARG1@ file @PURPOSE@ last component of filename @DESC@ Returns the filename of file stripped of any leading directory names. This is returned in newly allocated storage which should be freed when no longer needed. @@ fontconfig-2.11.1/doc/fcformat.sgml0000664000076400007640000003104012306317520014112 00000000000000 FcPatternFormat 3 Fontconfig &version; FcPatternFormat Format a pattern into a string according to a format specifier #include <fontconfig/fontconfig.h> FcChar8 * FcPatternFormat FcPattern *pat const FcChar8 *format Description Converts given pattern pat into text described by the format specifier format. The return value refers to newly allocated memory which should be freed by the caller using free(), or NULL if format is invalid. The format is loosely modeled after printf-style format string. The format string is composed of zero or more directives: ordinary characters (not "%"), which are copied unchanged to the output stream; and tags which are interpreted to construct text from the pattern in a variety of ways (explained below). Special characters can be escaped using backslash. C-string style special characters like \n and \r are also supported (this is useful when the format string is not a C string literal). It is advisable to always escape curly braces that are meant to be copied to the output as ordinary characters. Each tag is introduced by the character "%", followed by an optional minimum field width, followed by tag contents in curly braces ({}). If the minimum field width value is provided the tag will be expanded and the result padded to achieve the minimum width. If the minimum field width is positive, the padding will right-align the text. Negative field width will left-align. The rest of this section describes various supported tag contents and their expansion. A simple tag is one where the content is an identifier. When simple tags are expanded, the named identifier will be looked up in pattern and the resulting list of values returned, joined together using comma. For example, to print the family name and style of the pattern, use the format "%{family} %{style}\n". To extend the family column to forty characters use "%-40{family}%{style}\n". Simple tags expand to list of all values for an element. To only choose one of the values, one can index using the syntax "%{elt[idx]}". For example, to get the first family name only, use "%{family[0]}". If a simple tag ends with "=" and the element is found in the pattern, the name of the element followed by "=" will be output before the list of values. For example, "%{weight=}" may expand to the string "weight=80". Or to the empty string if pattern does not have weight set. If a simple tag starts with ":" and the element is found in the pattern, ":" will be printed first. For example, combining this with the =, the format "%{:weight=}" may expand to ":weight=80" or to the empty string if pattern does not have weight set. If a simple tag contains the string ":-", the rest of the the tag contents will be used as a default string. The default string is output if the element is not found in the pattern. For example, the format "%{:weight=:-123}" may expand to ":weight=80" or to the string ":weight=123" if pattern does not have weight set. A count tag is one that starts with the character "#" followed by an element name, and expands to the number of values for the element in the pattern. For example, "%{#family}" expands to the number of family names pattern has set, which may be zero. A sub-expression tag is one that expands a sub-expression. The tag contents are the sub-expression to expand placed inside another set of curly braces. Sub-expression tags are useful for aligning an entire sub-expression, or to apply converters (explained later) to the entire sub-expression output. For example, the format "%40{{%{family} %{style}}}" expands the sub-expression to construct the family name followed by the style, then takes the entire string and pads it on the left to be at least forty characters. A filter-out tag is one starting with the character "-" followed by a comma-separated list of element names, followed by a sub-expression enclosed in curly braces. The sub-expression will be expanded but with a pattern that has the listed elements removed from it. For example, the format "%{-size,pixelsize{sub-expr}}" will expand "sub-expr" with pattern sans the size and pixelsize elements. A filter-in tag is one starting with the character "+" followed by a comma-separated list of element names, followed by a sub-expression enclosed in curly braces. The sub-expression will be expanded but with a pattern that only has the listed elements from the surrounding pattern. For example, the format "%{+family,familylang{sub-expr}}" will expand "sub-expr" with a sub-pattern consisting only the family and family lang elements of pattern. A conditional tag is one starting with the character "?" followed by a comma-separated list of element conditions, followed by two sub-expression enclosed in curly braces. An element condition can be an element name, in which case it tests whether the element is defined in pattern, or the character "!" followed by an element name, in which case the test is negated. The conditional passes if all the element conditions pass. The tag expands the first sub-expression if the conditional passes, and expands the second sub-expression otherwise. For example, the format "%{?size,dpi,!pixelsize{pass}{fail}}" will expand to "pass" if pattern has size and dpi elements but no pixelsize element, and to "fail" otherwise. An enumerate tag is one starting with the string "[]" followed by a comma-separated list of element names, followed by a sub-expression enclosed in curly braces. The list of values for the named elements are walked in parallel and the sub-expression expanded each time with a pattern just having a single value for those elements, starting from the first value and continuing as long as any of those elements has a value. For example, the format "%{[]family,familylang{%{family} (%{familylang})\n}}" will expand the pattern "%{family} (%{familylang})\n" with a pattern having only the first value of the family and familylang elements, then expands it with the second values, then the third, etc. As a special case, if an enumerate tag has only one element, and that element has only one value in the pattern, and that value is of type FcLangSet, the individual languages in the language set are enumerated. A builtin tag is one starting with the character "=" followed by a builtin name. The following builtins are defined: unparse Expands to the result of calling FcNameUnparse() on the pattern. fcmatch Expands to the output of the default output format of the fc-match command on the pattern, without the final newline. fclist Expands to the output of the default output format of the fc-list command on the pattern, without the final newline. fccat Expands to the output of the default output format of the fc-cat command on the pattern, without the final newline. pkgkit Expands to the list of PackageKit font() tags for the pattern. Currently this includes tags for each family name, and each language from the pattern, enumerated and sanitized into a set of tags terminated by newline. Package management systems can use these tags to tag their packages accordingly. For example, the format "%{+family,style{%{=unparse}}}\n" will expand to an unparsed name containing only the family and style element values from pattern. The contents of any tag can be followed by a set of zero or more converters. A converter is specified by the character "|" followed by the converter name and arguments. The following converters are defined: basename Replaces text with the results of calling FcStrBasename() on it. dirname Replaces text with the results of calling FcStrDirname() on it. downcase Replaces text with the results of calling FcStrDowncase() on it. shescape Escapes text for one level of shell expansion. (Escapes single-quotes, also encloses text in single-quotes.) cescape Escapes text such that it can be used as part of a C string literal. (Escapes backslash and double-quotes.) xmlescape Escapes text such that it can be used in XML and HTML. (Escapes less-than, greater-than, and ampersand.) delete(chars) Deletes all occurrences of each of the characters in chars from the text. FIXME: This converter is not UTF-8 aware yet. escape(chars) Escapes all occurrences of each of the characters in chars by prepending it by the first character in chars. FIXME: This converter is not UTF-8 aware yet. translate(from,to) Translates all occurrences of each of the characters in from by replacing them with their corresponding character in to. If to has fewer characters than from, it will be extended by repeating its last character. FIXME: This converter is not UTF-8 aware yet. For example, the format "%{family|downcase|delete( )}\n" will expand to the values of the family element in pattern, lower-cased and with spaces removed. Since version 2.9.0 fontconfig-2.11.1/doc/FcConfigGetCurrent.30000664000076400007640000000056012313745357015210 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigGetCurrent" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigGetCurrent \- Return current configuration .SH SYNOPSIS .nf \fB#include .sp FcConfig * FcConfigGetCurrent (void\fI\fB); .fi\fR .SH "DESCRIPTION" .PP Returns the current default configuration. fontconfig-2.11.1/doc/fcfontset.fncs0000664000076400007640000001252012267155333014305 00000000000000/* * fontconfig/doc/fcfontset.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@ FcFontSet * @FUNC@ FcFontSetCreate @TYPE1@ void @PURPOSE@ Create a font set @DESC@ Creates an empty font set. @@ @RET@ void @FUNC@ FcFontSetDestroy @TYPE1@ FcFontSet * @ARG1@ s @PURPOSE@ Destroy a font set @DESC@ Destroys a font set. Note that this destroys any referenced patterns as well. @@ @RET@ FcBool @FUNC@ FcFontSetAdd @TYPE1@ FcFontSet * @ARG1@ s @TYPE2@ FcPattern * @ARG2@ font @PURPOSE@ Add to a font set @DESC@ Adds a pattern to a font set. Note that the pattern is not copied before being inserted into the set. Returns FcFalse if the pattern cannot be inserted into the set (due to allocation failure). Otherwise returns FcTrue. @@ @RET@ FcFontSet * @FUNC@ FcFontSetList @TYPE1@ FcConfig * @ARG1@ config @TYPE2@ FcFontSet ** @ARG2@ sets @TYPE3@ int @ARG3@ nsets @TYPE4@ FcPattern * @ARG4@ pattern @TYPE5@ FcObjectSet * @ARG5@ object_set @PURPOSE@ List fonts from a set of font sets @DESC@ Selects fonts matching pattern from sets, creates patterns from those fonts containing only the objects in object_set and returns the set of unique such patterns. If config is NULL, the default configuration is checked to be up to date, and used. @@ @RET@ FcPattern * @FUNC@ FcFontSetMatch @TYPE1@ FcConfig * @ARG1@ config @TYPE2@ FcFontSet ** @ARG2@ sets @TYPE3@ int @ARG3@ nsets @TYPE4@ FcPattern * @ARG4@ pattern @TYPE5@ FcResult * @ARG5@ result @PURPOSE@ Return the best font from a set of font sets @DESC@ Finds the font in sets most closely matching pattern and returns the result of FcFontRenderPrepare for that font and the provided pattern. This function should be called only after FcConfigSubstitute and FcDefaultSubstitute have been called for pattern; otherwise the results will not be correct. If config is NULL, the current configuration is used. Returns NULL if an error occurs during this process. @@ @RET@ void @FUNC@ FcFontSetPrint @TYPE1@ FcFontSet * @ARG1@ set @PURPOSE@ Print a set of patterns to stdout @DESC@ This function is useful for diagnosing font related issues, printing the complete contents of every pattern in set. The format of the output is designed to be of help to users and developers, and may change at any time. @@ @RET@ @FUNC@ FcFontSetSort @TYPE1@ FcConfig * @ARG1@ config @TYPE2@ FcFontSet ** @ARG2@ sets @TYPE3@ int @ARG3@ nsets @TYPE4@ FcPattern * @ARG4@ pattern @TYPE5@ FcBool% @ARG5@ trim @TYPE6@ FcCharSet ** @ARG6@ csp @TYPE7@ FcResult * @ARG7@ result @PURPOSE@ Add to a font set @DESC@ Returns the list of fonts from sets sorted by closeness to pattern. If trim is FcTrue, elements in the list which don't include Unicode coverage not provided by earlier elements in the list are elided. The union of Unicode coverage of all of the fonts is returned in csp, if csp is not NULL. This function should be called only after FcConfigSubstitute and FcDefaultSubstitute have been called for p; otherwise the results will not be correct. The returned FcFontSet references FcPattern structures which may be shared by the return value from multiple FcFontSort calls, applications cannot modify these patterns. Instead, they should be passed, along with pattern to FcFontRenderPrepare which combines them into a complete pattern. The FcFontSet returned by FcFontSetSort is destroyed by calling FcFontSetDestroy. @@ @RET@ @FUNC@ FcFontSetSortDestroy @TYPE1@ FcFontSet * @ARG1@ set @PURPOSE@ DEPRECATED destroy a font set @DESC@ This function is DEPRECATED. FcFontSetSortDestroy destroys set by calling FcFontSetDestroy. Applications should use FcFontSetDestroy directly instead. @@ fontconfig-2.11.1/doc/FcValueSave.30000664000076400007640000000065312313745357013676 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcValueSave" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcValueSave \- Copy a value .SH SYNOPSIS .nf \fB#include .sp FcValue FcValueSave (FcValue \fIv\fB); .fi\fR .SH "DESCRIPTION" .PP Returns a copy of \fIv\fR duplicating any object referenced by it so that \fIv\fR may be safely destroyed without harming the new value. fontconfig-2.11.1/doc/FcPatternGet.30000664000076400007640000000112712313745357014055 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcPatternGet" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcPatternGet \- Return a value from a pattern .SH SYNOPSIS .nf \fB#include .sp FcResult FcPatternGet (FcPattern *\fIp\fB, const char *\fIobject\fB, int \fIid\fB, FcValue *\fIv\fB); .fi\fR .SH "DESCRIPTION" .PP Returns in \fIv\fR the \fIid\fR\&'th value associated with the property \fIobject\fR\&. The value returned is not a copy, but rather refers to the data stored within the pattern directly. Applications must not free this value. fontconfig-2.11.1/doc/FcIsLower.30000664000076400007640000000056312313745357013367 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcIsLower" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcIsLower \- check for lower case ASCII character .SH SYNOPSIS .nf \fB#include .sp FcBool FcIsLower (FcChar8\fIc\fB); .fi\fR .SH "DESCRIPTION" .PP This macro checks whether \fIc\fR is an lower case ASCII letter. fontconfig-2.11.1/doc/FcFini.30000664000076400007640000000077712313745357012677 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcFini" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcFini \- finalize fontconfig library .SH SYNOPSIS .nf \fB#include .sp void FcFini (void\fI\fB); .fi\fR .SH "DESCRIPTION" .PP Frees all data structures allocated by previous calls to fontconfig functions. Fontconfig returns to an uninitialized state, requiring a new call to one of the FcInit functions before any other fontconfig function may be called. fontconfig-2.11.1/doc/fcstrset.fncs0000664000076400007640000000711612306311303014135 00000000000000/* * fontconfig/doc/fcstrset.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@ FcStrSet * @FUNC@ FcStrSetCreate @TYPE1@ void @PURPOSE@ create a string set @DESC@ Create an empty set. @@ @RET@ FcBool @FUNC@ FcStrSetMember @TYPE1@ FcStrSet * @ARG1@ set @TYPE2@ const FcChar8 * @ARG2@ s @PURPOSE@ check set for membership @DESC@ Returns whether s is a member of set. @@ @RET@ FcBool @FUNC@ FcStrSetEqual @TYPE1@ FcStrSet * @ARG1@ set_a @TYPE2@ FcStrSet * @ARG2@ set_b @PURPOSE@ check sets for equality @DESC@ Returns whether set_a contains precisely the same strings as set_b. Ordering of strings within the two sets is not considered. @@ @RET@ FcBool @FUNC@ FcStrSetAdd @TYPE1@ FcStrSet * @ARG1@ set @TYPE2@ const FcChar8 * @ARG2@ s @PURPOSE@ add to a string set @DESC@ Adds a copy of s to set. @@ @RET@ FcBool @FUNC@ FcStrSetAddFilename @TYPE1@ FcStrSet * @ARG1@ set @TYPE2@ const FcChar8 * @ARG2@ s @PURPOSE@ add a filename to a string set @DESC@ Adds a copy s to set, The copy is created with FcStrCopyFilename so that leading '~' values are replaced with the value of the HOME environment variable. @@ @RET@ FcBool @FUNC@ FcStrSetDel @TYPE1@ FcStrSet * @ARG1@ set @TYPE2@ const FcChar8 * @ARG2@ s @PURPOSE@ delete from a string set @DESC@ Removes s from set, returning FcTrue if s was a member else FcFalse. @@ @RET@ void @FUNC@ FcStrSetDestroy @TYPE1@ FcStrSet * @ARG1@ set @PURPOSE@ destroy a string set @DESC@ Destroys set. @@ @RET@ FcStrList * @FUNC@ FcStrListCreate @TYPE1@ FcStrSet * @ARG1@ set @PURPOSE@ create a string iterator @DESC@ Creates an iterator to list the strings in set. @@ @RET@ void @FUNC@ FcStrListFirst @TYPE1@ FcStrList * @ARG1@ list @PURPOSE@ get first string in iteration @DESC@ Returns the first string in list. @SINCE@ 2.11.0 @@ @RET@ FcChar8 * @FUNC@ FcStrListNext @TYPE1@ FcStrList * @ARG1@ list @PURPOSE@ get next string in iteration @DESC@ Returns the next string in list. @@ @RET@ void @FUNC@ FcStrListDone @TYPE1@ FcStrList * @ARG1@ list @PURPOSE@ destroy a string iterator @DESC@ Destroys the enumerator list. @@ fontconfig-2.11.1/doc/FcStrSetAdd.30000664000076400007640000000055312313745357013637 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcStrSetAdd" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcStrSetAdd \- add to a string set .SH SYNOPSIS .nf \fB#include .sp FcBool FcStrSetAdd (FcStrSet *\fIset\fB, const FcChar8 *\fIs\fB); .fi\fR .SH "DESCRIPTION" .PP Adds a copy of \fIs\fR to \fIset\fR\&. fontconfig-2.11.1/doc/FcBlanksIsMember.30000664000076400007640000000065612313745357014644 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcBlanksIsMember" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcBlanksIsMember \- Query membership in an FcBlanks .SH SYNOPSIS .nf \fB#include .sp FcBool FcBlanksIsMember (FcBlanks *\fIb\fB, FcChar32 \fIucs4\fB); .fi\fR .SH "DESCRIPTION" .PP Returns whether the specified FcBlanks object contains the indicated Unicode value. fontconfig-2.11.1/doc/FcDirCacheRead.30000664000076400007640000000107712313745357014242 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcDirCacheRead" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcDirCacheRead \- read or construct a directory cache .SH SYNOPSIS .nf \fB#include .sp FcCache * FcDirCacheRead (const FcChar8 *\fIdir\fB, FcBool \fIforce\fB, FcConfig *\fIconfig\fB); .fi\fR .SH "DESCRIPTION" .PP This returns a cache for \fIdir\fR\&. If \fIforce\fR is FcFalse, then an existing, valid cache file will be used. Otherwise, a new cache will be created by scanning the directory and that returned. fontconfig-2.11.1/doc/FcPatternDuplicate.30000664000076400007640000000070012313745357015244 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcPatternDuplicate" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcPatternDuplicate \- Copy a pattern .SH SYNOPSIS .nf \fB#include .sp FcPattern * FcPatternDuplicate (const FcPattern *\fIp\fB); .fi\fR .SH "DESCRIPTION" .PP Copy a pattern, returning a new pattern that matches \fIp\fR\&. Each pattern may be modified without affecting the other. fontconfig-2.11.1/doc/FcPatternAdd-Type.30000664000076400007640000000265412313745357014753 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcPatternAdd-Type" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcPatternAddInteger, FcPatternAddDouble, FcPatternAddString, FcPatternAddMatrix, FcPatternAddCharSet, FcPatternAddBool, FcPatternAddFTFace, FcPatternAddLangSet \- Add a typed value to a pattern .SH SYNOPSIS .nf \fB#include .sp FcBool FcPatternAddInteger (FcPattern *\fIp\fB, const char *\fIobject\fB, int \fIi\fB); .sp FcBool FcPatternAddDouble (FcPattern *\fIp\fB, const char *\fIobject\fB, double \fId\fB); .sp FcBool FcPatternAddString (FcPattern *\fIp\fB, const char *\fIobject\fB, const FcChar8 *\fIs\fB); .sp FcBool FcPatternAddMatrix (FcPattern *\fIp\fB, const char *\fIobject\fB, const FcMatrix *\fIm\fB); .sp FcBool FcPatternAddCharSet (FcPattern *\fIp\fB, const char *\fIobject\fB, const FcCharSet *\fIc\fB); .sp FcBool FcPatternAddBool (FcPattern *\fIp\fB, const char *\fIobject\fB, FcBool \fIb\fB); .sp FcBool FcPatternAddFTFace (FcPattern *\fIp\fB, const char *\fIobject\fB, const FT_Face\fIf\fB); .sp FcBool FcPatternAddLangSet (FcPattern *\fIp\fB, const char *\fIobject\fB, const FcLangSet *\fIl\fB); .fi\fR .SH "DESCRIPTION" .PP 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. fontconfig-2.11.1/doc/fcobjectset.fncs0000664000076400007640000000461112267155333014607 00000000000000/* * fontconfig/doc/fcobjectset.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@ FcObjectSet * @FUNC@ FcObjectSetCreate @TYPE1@ void @PURPOSE@ Create an object set @DESC@ Creates an empty set. @@ @RET@ FcBool @FUNC@ FcObjectSetAdd @TYPE1@ FcObjectSet * @ARG1@ os @TYPE2@ const char * @ARG2@ object @PURPOSE@ Add to an object set @DESC@ Adds a property name to the set. Returns FcFalse if the property name cannot be inserted into the set (due to allocation failure). Otherwise returns FcTrue. @@ @RET@ void @FUNC@ FcObjectSetDestroy @TYPE1@ FcObjectSet * @ARG1@ os @PURPOSE@ Destroy an object set @DESC@ Destroys an object set. @@ @RET@ FcObjectSet * @FUNC@ FcObjectSetBuild @TYPE1@ const char * @ARG1@ first @TYPE2@ ... @PROTOTYPE+@ @RET+@ FcObjectSet * @FUNC+@ FcObjectSetVaBuild @TYPE1+@ const char * @ARG1+@ first @TYPE2+@ va_list% @ARG2+@ va @PROTOTYPE++@ @RET++@ void @FUNC++@ FcObjectSetVapBuild @TYPE1++@ FcObjectSet * @ARG1++@ result @TYPE2++@ const char * @ARG2++@ first @TYPE3++@ va_list% @ARG3++@ va @PURPOSE@ Build object set from args @DESC@ These build an object set from a null-terminated list of property names. FcObjectSetVapBuild is a macro version of FcObjectSetVaBuild which returns the result in the result variable directly. @@ fontconfig-2.11.1/doc/FcLangSetGetLangs.30000664000076400007640000000062712313745357014766 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcLangSetGetLangs" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcLangSetGetLangs \- get the list of languages in the langset .SH SYNOPSIS .nf \fB#include .sp FcStrSet * FcLangSetGetLangs (const FcLangSet *\fIls\fB); .fi\fR .SH "DESCRIPTION" .PP Returns a string set of all languages in \fIlangset\fR\&. fontconfig-2.11.1/doc/FcFontSetSort.30000664000076400007640000000243212313745357014232 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcFontSetSort" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcFontSetSort \- Add to a font set .SH SYNOPSIS .nf \fB#include .sp FcFontSetSort (FcConfig *\fIconfig\fB, FcFontSet **\fIsets\fB, int\fInsets\fB, FcPattern *\fIpattern\fB, FcBool \fItrim\fB, FcCharSet **\fIcsp\fB, FcResult *\fIresult\fB); .fi\fR .SH "DESCRIPTION" .PP Returns the list of fonts from \fIsets\fR sorted by closeness to \fIpattern\fR\&. If \fItrim\fR is FcTrue, elements in the list which don't include Unicode coverage not provided by earlier elements in the list are elided. The union of Unicode coverage of all of the fonts is returned in \fIcsp\fR, if \fIcsp\fR is not NULL. This function should be called only after FcConfigSubstitute and FcDefaultSubstitute have been called for \fIp\fR; otherwise the results will not be correct. .PP The returned FcFontSet references FcPattern structures which may be shared by the return value from multiple FcFontSort calls, applications cannot modify these patterns. Instead, they should be passed, along with \fIpattern\fR to \fBFcFontRenderPrepare\fR which combines them into a complete pattern. .PP The FcFontSet returned by FcFontSetSort is destroyed by calling FcFontSetDestroy. fontconfig-2.11.1/doc/FcLangNormalize.30000664000076400007640000000064712313745357014550 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcLangNormalize" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcLangNormalize \- Normalize the language string .SH SYNOPSIS .nf \fB#include .sp FcChar8 * FcLangNormalize (const FcChar8 *\fIlang\fB); .fi\fR .SH "DESCRIPTION" .PP Returns a string to make \fIlang\fR suitable on fontconfig. .SH "SINCE" .PP version 2.10.91 fontconfig-2.11.1/doc/FcFreeTypeCharSet.30000664000076400007640000000120612313745357014773 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcFreeTypeCharSet" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcFreeTypeCharSet \- compute Unicode coverage .SH SYNOPSIS .nf \fB#include #include .sp FcCharSet * FcFreeTypeCharSet (FT_Face \fIface\fB, FcBlanks *\fIblanks\fB); .fi\fR .SH "DESCRIPTION" .PP Scans a FreeType face and returns the set of encoded Unicode chars. This scans several encoding tables to build as complete a list as possible. If 'blanks' is not 0, the glyphs in the font are examined and any blank glyphs not in 'blanks' are not placed in the returned FcCharSet. fontconfig-2.11.1/doc/FcConfigSubstitute.30000664000076400007640000000112412313745357015276 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigSubstitute" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigSubstitute \- Execute substitutions .SH SYNOPSIS .nf \fB#include .sp FcBool FcConfigSubstitute (FcConfig *\fIconfig\fB, FcPattern *\fIp\fB, FcMatchKind \fIkind\fB); .fi\fR .SH "DESCRIPTION" .PP Calls FcConfigSubstituteWithPat setting p_pat to NULL. Returns FcFalse if the substitution cannot be performed (due to allocation failure). Otherwise returns FcTrue. If \fIconfig\fR is NULL, the current configuration is used. fontconfig-2.11.1/doc/FcAtomicOrigFile.30000664000076400007640000000056612313745357014643 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcAtomicOrigFile" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcAtomicOrigFile \- return original file name .SH SYNOPSIS .nf \fB#include .sp FcChar8 * FcAtomicOrigFile (FcAtomic *\fIatomic\fB); .fi\fR .SH "DESCRIPTION" .PP Returns the file referenced by \fIatomic\fR\&. fontconfig-2.11.1/doc/FcLangSetCreate.30000664000076400007640000000055612313745357014466 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcLangSetCreate" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcLangSetCreate \- create a langset object .SH SYNOPSIS .nf \fB#include .sp FcLangSet * FcLangSetCreate (void\fI\fB); .fi\fR .SH "DESCRIPTION" .PP \fBFcLangSetCreate\fR creates a new FcLangSet object. fontconfig-2.11.1/doc/fcobjecttype.sgml0000664000076400007640000001412112306317520014773 00000000000000 FcNameRegisterObjectTypes 3 Fontconfig &version; FcNameRegisterObjectTypes Register object types #include <fontconfig/fontconfig.h> FcBool FcNameRegisterObjectTypes const FcObjectType *types int ntype Description Deprecated. Does nothing. Returns FcFalse. FcNameUnregisterObjectTypes 3 Fontconfig &version; FcNameUnregisterObjectTypes Unregister object types #include <fontconfig/fontconfig.h> FcBool FcNameUnregisterObjectTypes const FcObjectType *types int ntype Description Deprecated. Does nothing. Returns FcFalse. FcNameGetObjectType 3 Fontconfig &version; FcNameGetObjectType Lookup an object type #include <fontconfig/fontconfig.h> const FcObjectType * FcNameGetObjectType const char *object Description Return the object type for the pattern element named object. fontconfig-2.11.1/doc/FcStrSetEqual.30000664000076400007640000000073412313745357014217 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcStrSetEqual" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcStrSetEqual \- check sets for equality .SH SYNOPSIS .nf \fB#include .sp FcBool FcStrSetEqual (FcStrSet *\fIset_a\fB, FcStrSet *\fIset_b\fB); .fi\fR .SH "DESCRIPTION" .PP Returns whether \fIset_a\fR contains precisely the same strings as \fIset_b\fR\&. Ordering of strings within the two sets is not considered. fontconfig-2.11.1/doc/FcAtomicReplaceOrig.30000664000076400007640000000101312313745357015323 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcAtomicReplaceOrig" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcAtomicReplaceOrig \- replace original with new .SH SYNOPSIS .nf \fB#include .sp FcBool FcAtomicReplaceOrig (FcAtomic *\fIatomic\fB); .fi\fR .SH "DESCRIPTION" .PP Replaces the original file referenced by \fIatomic\fR with the new file. Returns FcFalse if the file cannot be replaced due to permission issues in the filesystem. Otherwise returns FcTrue. fontconfig-2.11.1/doc/FcCacheDir.30000664000076400007640000000061112313745357013437 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcCacheDir" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcCacheDir \- Return directory of cache .SH SYNOPSIS .nf \fB#include .sp const FcChar8 * FcCacheDir (const FcCache *\fIcache\fB); .fi\fR .SH "DESCRIPTION" .PP This function returns the directory from which the cache was constructed. fontconfig-2.11.1/doc/FcCharSetIsSubset.30000664000076400007640000000062612313745357015016 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcCharSetIsSubset" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcCharSetIsSubset \- Test for charset inclusion .SH SYNOPSIS .nf \fB#include .sp FcBool FcCharSetIsSubset (const FcCharSet *\fIa\fB, const FcCharSet *\fIb\fB); .fi\fR .SH "DESCRIPTION" .PP Returns whether \fIa\fR is a subset of \fIb\fR\&. fontconfig-2.11.1/doc/FcPatternAdd.30000664000076400007640000000134212313745357014025 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcPatternAdd" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcPatternAdd \- Add a value to a pattern .SH SYNOPSIS .nf \fB#include .sp FcBool FcPatternAdd (FcPattern *\fIp\fB, const char *\fIobject\fB, FcValue \fIvalue\fB, FcBool \fIappend\fB); .fi\fR .SH "DESCRIPTION" .PP Adds a single value to the list of values associated with the property named `object\fI\&. If `append\fR is FcTrue, the value is added at the end of any existing list, otherwise it is inserted at the beginning. `value' is saved (with FcValueSave) when inserted into the pattern so that the library retains no reference to any application-supplied data structure. fontconfig-2.11.1/doc/FcCharSetDestroy.30000664000076400007640000000070712313745357014706 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcCharSetDestroy" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcCharSetDestroy \- Destroy a character set .SH SYNOPSIS .nf \fB#include .sp void FcCharSetDestroy (FcCharSet *\fIfcs\fB); .fi\fR .SH "DESCRIPTION" .PP \fBFcCharSetDestroy\fR decrements the reference count \fIfcs\fR\&. If the reference count becomes zero, all memory referenced is freed. fontconfig-2.11.1/doc/Makefile.in0000664000076400007640000012746312313745337013522 00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- encoding: utf-8 -*- # # fontconfig/doc/Makefile.am # # Copyright © 2003 Keith Packard # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The authors make no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ TESTS = check-missing-doc $(am__EXEEXT_1) noinst_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) @USEDOCBOOK_TRUE@am__append_1 = \ @USEDOCBOOK_TRUE@ $(LOCAL_SGML_FILES) \ @USEDOCBOOK_TRUE@ $(NULL) @USEDOCBOOK_TRUE@am__append_2 = \ @USEDOCBOOK_TRUE@ edit-sgml \ @USEDOCBOOK_TRUE@ $(NULL) @USEDOCBOOK_TRUE@am__append_3 = $(HTML_DIR)/* @USEDOCBOOK_FALSE@am__append_4 = $(srcdir)/$(HTML_DIR)/* subdir = doc DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(srcdir)/version.sgml.in $(top_srcdir)/depcomp \ $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = version.sgml CONFIG_CLEAN_VPATH_FILES = am__EXEEXT_1 = @USEDOCBOOK_TRUE@am__EXEEXT_2 = edit-sgml$(EXEEXT) $(am__EXEEXT_1) PROGRAMS = $(noinst_PROGRAMS) am__objects_1 = am_edit_sgml_OBJECTS = edit-sgml.$(OBJEXT) $(am__objects_1) edit_sgml_OBJECTS = $(am_edit_sgml_OBJECTS) edit_sgml_LDADD = $(LDADD) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(edit_sgml_SOURCES) DIST_SOURCES = $(edit_sgml_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man3dir = $(mandir)/man3 am__installdirs = "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(man5dir)" \ "$(DESTDIR)$(docdir)" "$(DESTDIR)$(htmldocdir)" man5dir = $(mandir)/man5 NROFF = nroff MANS = $(man3_MANS) $(man5_MANS) DATA = $(doc_DATA) $(htmldoc_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no am__tty_colors = { \ $(am__tty_colors_dummy); \ if test "X$(AM_COLOR_TESTS)" = Xno; then \ am__color_tests=no; \ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ am__color_tests=yes; \ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ am__color_tests=yes; \ fi; \ if test $$am__color_tests = yes; then \ red=''; \ grn=''; \ lgn=''; \ blu=''; \ mgn=''; \ brg=''; \ std=''; \ fi; \ } am__recheck_rx = ^[ ]*:recheck:[ ]* am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* # A command that, given a newline-separated list of test names on the # standard input, print the name of the tests that are to be re-run # upon "make recheck". am__list_recheck_tests = $(AWK) '{ \ recheck = 1; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ { \ if ((getline line2 < ($$0 ".log")) < 0) \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ { \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ { \ break; \ } \ }; \ if (recheck) \ print $$0; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # A command that, given a newline-separated list of test names on the # standard input, create the global log from their .trs and .log files. am__create_global_log = $(AWK) ' \ function fatal(msg) \ { \ print "fatal: making $@: " msg | "cat >&2"; \ exit 1; \ } \ function rst_section(header) \ { \ print header; \ len = length(header); \ for (i = 1; i <= len; i = i + 1) \ printf "="; \ printf "\n\n"; \ } \ { \ copy_in_global_log = 1; \ global_test_result = "RUN"; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".trs"); \ if (line ~ /$(am__global_test_result_rx)/) \ { \ sub("$(am__global_test_result_rx)", "", line); \ sub("[ ]*$$", "", line); \ global_test_result = line; \ } \ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ copy_in_global_log = 0; \ }; \ if (copy_in_global_log) \ { \ rst_section(global_test_result ": " $$0); \ while ((rc = (getline line < ($$0 ".log"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".log"); \ print line; \ }; \ printf "\n"; \ }; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # Restructured Text title. am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } # Solaris 10 'make', and several other traditional 'make' implementations, # pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it # by disabling -e (using the XSI extension "set +e") if it's set. am__sh_e_setup = case $$- in *e*) set +e;; esac # Default flags passed to test drivers. am__common_driver_flags = \ --color-tests "$$am__color_tests" \ --enable-hard-errors "$$am__enable_hard_errors" \ --expect-failure "$$am__expect_failure" # To be inserted before the command running the test. Creates the # directory for the log if needed. Stores in $dir the directory # containing $f, in $tst the test, in $log the log. Executes the # developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and # passes TESTS_ENVIRONMENT. Set up options for the wrapper that # will run the test scripts (or their associated LOG_COMPILER, if # thy have one). am__check_pre = \ $(am__sh_e_setup); \ $(am__vpath_adj_setup) $(am__vpath_adj) \ $(am__tty_colors); \ srcdir=$(srcdir); export srcdir; \ case "$@" in \ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ *) am__odir=.;; \ esac; \ test "x$$am__odir" = x"." || test -d "$$am__odir" \ || $(MKDIR_P) "$$am__odir" || exit $$?; \ if test -f "./$$f"; then dir=./; \ elif test -f "$$f"; then dir=; \ else dir="$(srcdir)/"; fi; \ tst=$$dir$$f; log='$@'; \ if test -n '$(DISABLE_HARD_ERRORS)'; then \ am__enable_hard_errors=no; \ else \ am__enable_hard_errors=yes; \ fi; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ am__expect_failure=yes;; \ *) \ am__expect_failure=no;; \ esac; \ $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) # A shell command to get the names of the tests scripts with any registered # extension removed (i.e., equivalently, the names of the test logs, with # the '.log' extension removed). The result is saved in the shell variable # '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, # we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", # since that might cause problem with VPATH rewrites for suffix-less tests. # See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` RECHECK_LOGS = $(TEST_LOGS) AM_RECURSIVE_TARGETS = check recheck TEST_SUITE_LOG = test-suite.log TEST_EXTENSIONS = @EXEEXT@ .test LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) am__set_b = \ case '$@' in \ */*) \ case '$*' in \ */*) b='$*';; \ *) b=`echo '$@' | sed 's/\.log$$//'`; \ esac;; \ *) \ b='$*';; \ esac am__test_logs1 = $(TESTS:=.log) am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) TEST_LOGS = $(am__test_logs2:.test.log=.log) TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASECONFIGDIR = @BASECONFIGDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CONFIGDIR = @CONFIGDIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DOCMAN3 = @DOCMAN3@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@ EXPAT_CFLAGS = @EXPAT_CFLAGS@ EXPAT_LIBS = @EXPAT_LIBS@ FC_ADD_FONTS = @FC_ADD_FONTS@ FC_CACHEDIR = @FC_CACHEDIR@ FC_DEFAULT_FONTS = @FC_DEFAULT_FONTS@ FC_FONTDATE = @FC_FONTDATE@ FC_FONTPATH = @FC_FONTPATH@ FGREP = @FGREP@ FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ FREETYPE_LIBS = @FREETYPE_LIBS@ GIT = @GIT@ GPERF = @GPERF@ GREP = @GREP@ HASDOCBOOK = @HASDOCBOOK@ HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@ ICONV_CFLAGS = @ICONV_CFLAGS@ ICONV_LIBS = @ICONV_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBT_CURRENT = @LIBT_CURRENT@ LIBT_CURRENT_MINUS_AGE = @LIBT_CURRENT_MINUS_AGE@ LIBT_REVISION = @LIBT_REVISION@ LIBT_VERSION_INFO = @LIBT_VERSION_INFO@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ RM = @RM@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TEMPLATEDIR = @TEMPLATEDIR@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XMLDIR = @XMLDIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ ax_pthread_config = @ax_pthread_config@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fc_cachedir = @fc_cachedir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ ms_librarian = @ms_librarian@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfigdir = @pkgconfigdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ NULL = EXTRA_DIST = \ $(BUILT_DOCS) \ $(DOC_FUNCS_FNCS) \ $(DOC_FUNCS_SGML) \ $(HTML_DIR)/* \ $(SGML_FILES) \ $(check_SCRIPTS) \ confdir.sgml.in \ func.sgml \ $(NULL) MAINTAINERCLEANFILES = \ $(DOC_FUNCS_SGML) \ $(NULL) CLEANFILES = \ $(BUILT_DOCS) \ $(LOCAL_SGML_FILES) \ confdir.sgml \ func.refs \ $(NULL) BUILT_SOURCES = $(NULL) $(am__append_1) SUFFIXES = \ .fncs \ .sgml \ .txt \ .html \ $(NULL) TESTS_ENVIRONMENT = \ top_srcdir=${top_srcdir}; export top_srcdir; \ $(NULL) LOG_COMPILER = sh # DOC2HTML = docbook2html DOC2TXT = docbook2txt DOC2MAN = docbook2man DOC2PDF = docbook2pdf DOC_FUNCS_FNCS = \ fcatomic.fncs \ fcblanks.fncs \ fccache.fncs \ fccharset.fncs \ fcconfig.fncs \ fcconstant.fncs \ fcdircache.fncs \ fcfile.fncs \ fcfontset.fncs \ fcformat.fncs \ fcfreetype.fncs \ fcinit.fncs \ fclangset.fncs \ fcmatrix.fncs \ fcobjectset.fncs \ fcobjecttype.fncs \ fcpattern.fncs \ fcstring.fncs \ fcstrset.fncs \ fcvalue.fncs \ $(NULL) SGML_FILES = \ fontconfig-user.sgml \ fontconfig-devel.sgml \ $(NULL) LOCAL_SGML_FILES = \ local-fontconfig-user.sgml \ local-fontconfig-devel.sgml \ $(NULL) DOC_FUNCS_SGML = $(DOC_FUNCS_FNCS:.fncs=.sgml) BUILT_DOCS = \ $(HTML_FILES) \ $(PDF_FILES) \ $(TXT_FILES) \ $(man3_MANS) \ $(man5_MANS) \ $(NULL) DOCS_DEPS = \ $(DOC_FUNCS_SGML) \ confdir.sgml \ version.sgml \ $(NULL) TXT_FILES = $(SGML_FILES:.sgml=.txt) PDF_FILES = $(SGML_FILES:.sgml=.pdf) HTML_FILES = \ fontconfig-user.html \ $(NULL) HTML_DIR = fontconfig-devel edit_sgml_SOURCES = \ edit-sgml.c \ $(NULL) edit_sgml_CC = $(CC_FOR_BUILD) # check_SCRIPTS = \ check-missing-doc \ $(NULL) # man3_MANS = \ $(DOCMAN3) \ $(NULL) man5_MANS = \ fonts-conf.5 \ $(NULL) # doc_DATA = \ $(TXT_FILES) \ $(PDF_FILES) \ $(HTML_FILES) \ $(NULL) # htmldocdir = $(docdir)/$(HTML_DIR) htmldoc_DATA = $(NULL) $(am__append_3) $(am__append_4) all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .fncs .sgml .txt .html .c .lo .log .o .obj .pdf .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): version.sgml: $(top_builddir)/config.status $(srcdir)/version.sgml.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list edit-sgml$(EXEEXT): $(edit_sgml_OBJECTS) $(edit_sgml_DEPENDENCIES) $(EXTRA_edit_sgml_DEPENDENCIES) @rm -f edit-sgml$(EXEEXT) $(AM_V_CCLD)$(LINK) $(edit_sgml_OBJECTS) $(edit_sgml_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/edit-sgml.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man3: $(man3_MANS) @$(NORMAL_INSTALL) @list1='$(man3_MANS)'; \ list2=''; \ test -n "$(man3dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man3dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man3dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.3[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man3dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man3dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man3dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man3dir)" || exit $$?; }; \ done; } uninstall-man3: @$(NORMAL_UNINSTALL) @list='$(man3_MANS)'; test -n "$(man3dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man3dir)'; $(am__uninstall_files_from_dir) install-man5: $(man5_MANS) @$(NORMAL_INSTALL) @list1='$(man5_MANS)'; \ list2=''; \ test -n "$(man5dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man5dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man5dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.5[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \ done; } uninstall-man5: @$(NORMAL_UNINSTALL) @list='$(man5_MANS)'; test -n "$(man5dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man5dir)'; $(am__uninstall_files_from_dir) install-docDATA: $(doc_DATA) @$(NORMAL_INSTALL) @list='$(doc_DATA)'; test -n "$(docdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(docdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(docdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \ done uninstall-docDATA: @$(NORMAL_UNINSTALL) @list='$(doc_DATA)'; test -n "$(docdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir) install-htmldocDATA: $(htmldoc_DATA) @$(NORMAL_INSTALL) @list='$(htmldoc_DATA)'; test -n "$(htmldocdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(htmldocdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(htmldocdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldocdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldocdir)" || exit $$?; \ done uninstall-htmldocDATA: @$(NORMAL_UNINSTALL) @list='$(htmldoc_DATA)'; test -n "$(htmldocdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(htmldocdir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags # Recover from deleted '.trs' file; this should ensure that # "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create # both 'foo.log' and 'foo.trs'. Break the recipe in two subshells # to avoid problems with "make -n". .log.trs: rm -f $< $@ $(MAKE) $(AM_MAKEFLAGS) $< # Leading 'am--fnord' is there to ensure the list of targets does not # expand to empty, as could happen e.g. with make check TESTS=''. am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) am--force-recheck: @: $(TEST_SUITE_LOG): $(TEST_LOGS) @$(am__set_TESTS_bases); \ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ redo_bases=`for i in $$bases; do \ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ done`; \ if test -n "$$redo_bases"; then \ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ if $(am__make_dryrun); then :; else \ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ fi; \ if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ else \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ st=0; \ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ for i in $$redo_bases; do \ test -f $$i.trs && test -r $$i.trs \ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ test -f $$i.log && test -r $$i.log \ || { echo "$$errmsg $$i.log" >&2; st=1; }; \ done; \ test $$st -eq 0 || exit 1; \ fi @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ ws='[ ]'; \ results=`for b in $$bases; do echo $$b.trs; done`; \ test -n "$$results" || results=/dev/null; \ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ if test `expr $$fail + $$xpass + $$error` -eq 0; then \ success=true; \ else \ success=false; \ fi; \ br='==================='; br=$$br$$br$$br$$br; \ result_count () \ { \ if test x"$$1" = x"--maybe-color"; then \ maybe_colorize=yes; \ elif test x"$$1" = x"--no-color"; then \ maybe_colorize=no; \ else \ echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ shift; \ desc=$$1 count=$$2; \ if test $$maybe_colorize = yes && test $$count -gt 0; then \ color_start=$$3 color_end=$$std; \ else \ color_start= color_end=; \ fi; \ echo "$${color_start}# $$desc $$count$${color_end}"; \ }; \ create_testsuite_report () \ { \ result_count $$1 "TOTAL:" $$all "$$brg"; \ result_count $$1 "PASS: " $$pass "$$grn"; \ result_count $$1 "SKIP: " $$skip "$$blu"; \ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ result_count $$1 "FAIL: " $$fail "$$red"; \ result_count $$1 "XPASS:" $$xpass "$$red"; \ result_count $$1 "ERROR:" $$error "$$mgn"; \ }; \ { \ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ $(am__rst_title); \ create_testsuite_report --no-color; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for b in $$bases; do echo $$b; done \ | $(am__create_global_log); \ } >$(TEST_SUITE_LOG).tmp || exit 1; \ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ if $$success; then \ col="$$grn"; \ else \ col="$$red"; \ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ if $$success; then :; else \ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ if test -n "$(PACKAGE_BUGREPORT)"; then \ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ fi; \ echo "$$col$$br$$std"; \ fi; \ $$success || exit 1 check-TESTS: @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ log_list=`for i in $$bases; do echo $$i.log; done`; \ trs_list=`for i in $$bases; do echo $$i.trs; done`; \ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ exit $$?; recheck: all $(check_SCRIPTS) @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ bases=`for i in $$bases; do echo $$i; done \ | $(am__list_recheck_tests)` || exit 1; \ log_list=`for i in $$bases; do echo $$i.log; done`; \ log_list=`echo $$log_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ am__force_recheck=am--force-recheck \ TEST_LOGS="$$log_list"; \ exit $$? check-missing-doc.log: check-missing-doc @p='check-missing-doc'; \ b='check-missing-doc'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) .test.log: @p='$<'; \ $(am__set_b); \ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) @am__EXEEXT_TRUE@.test$(EXEEXT).log: @am__EXEEXT_TRUE@ @p='$<'; \ @am__EXEEXT_TRUE@ $(am__set_b); \ @am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ @am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_SCRIPTS) $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(PROGRAMS) $(MANS) $(DATA) all-local installdirs: for dir in "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(docdir)" "$(DESTDIR)$(htmldocdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool clean-local clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-docDATA install-htmldocDATA install-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man3 install-man5 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-docDATA uninstall-htmldocDATA uninstall-man uninstall-man: uninstall-man3 uninstall-man5 .MAKE: all check check-am install install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am all-local check check-TESTS \ check-am clean clean-generic clean-libtool clean-local \ clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-docDATA install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am \ install-htmldocDATA install-info install-info-am install-man \ install-man3 install-man5 install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ recheck tags tags-am uninstall uninstall-am uninstall-docDATA \ uninstall-htmldocDATA uninstall-man uninstall-man3 \ uninstall-man5 @USEDOCBOOK_TRUE@.fncs.sgml: @USEDOCBOOK_TRUE@ $(AM_V_GEN) $(RM) $@; \ @USEDOCBOOK_TRUE@ $(builddir)/edit-sgml$(EXEEXT) $(srcdir)/func.sgml < '$(srcdir)/$*.fncs' > $*.sgml @USEDOCBOOK_TRUE@.sgml.txt: @USEDOCBOOK_TRUE@ $(AM_V_GEN) $(RM) $@; \ @USEDOCBOOK_TRUE@ $(DOC2TXT) $*.sgml @USEDOCBOOK_TRUE@.sgml.pdf: @USEDOCBOOK_TRUE@ $(AM_V_GEN) $(RM) $@; \ @USEDOCBOOK_TRUE@ $(DOC2PDF) $*.sgml @USEDOCBOOK_TRUE@.sgml.html: @USEDOCBOOK_TRUE@ $(AM_V_GEN) $(RM) $@; \ @USEDOCBOOK_TRUE@ $(DOC2HTML) -u $*.sgml > $@ @USEDOCBOOK_TRUE@fonts-conf.5: local-fontconfig-user.sgml version.sgml confdir.sgml @USEDOCBOOK_TRUE@ $(AM_V_GEN) $(RM) $@; \ @USEDOCBOOK_TRUE@ $(DOC2MAN) local-fontconfig-user.sgml && \ @USEDOCBOOK_TRUE@ $(RM) manpage.* @USEDOCBOOK_TRUE@$(man3_MANS): func.refs @USEDOCBOOK_TRUE@func.refs: local-fontconfig-devel.sgml $(DOCS_DEPS) @USEDOCBOOK_TRUE@ $(AM_V_GEN) $(RM) $@; \ @USEDOCBOOK_TRUE@ $(DOC2MAN) -o devel-man local-fontconfig-devel.sgml && \ @USEDOCBOOK_TRUE@ mv devel-man/manpage.refs func.refs && \ @USEDOCBOOK_TRUE@ mv devel-man/*.3 . && \ @USEDOCBOOK_TRUE@ $(RM) devel-man/manpage.* && \ @USEDOCBOOK_TRUE@ rmdir devel-man || rm $@ || : @USEDOCBOOK_TRUE@confdir.sgml: $(srcdir)/confdir.sgml.in @USEDOCBOOK_TRUE@ $(AM_V_GEN) sed -e 's,@CONFDIR\@,${CONFDIR},' $(srcdir)/$@.in | awk '{if (NR > 1) printf("\n"); printf("%s", $$0);}' > $@ @USEDOCBOOK_TRUE@$(DOC_FUNCS_SGML): $(DOC_FUNCS_FNCS) edit-sgml$(EXEEXT) $(srcdir)/func.sgml @USEDOCBOOK_TRUE@$(TXT_FILES): $(DOCS_DEPS) @USEDOCBOOK_TRUE@$(PDF_FILES): $(DOCS_DEPS) @USEDOCBOOK_TRUE@$(HTML_FILES): $(DOCS_DEPS) @USEDOCBOOK_TRUE@$(HTML_DIR)/*: $(HTML_DIR) @USEDOCBOOK_TRUE@$(HTML_DIR): local-fontconfig-devel.sgml $(DOCS_DEPS) @USEDOCBOOK_TRUE@ $(AM_V_GEN) $(RM) -r $@; \ @USEDOCBOOK_TRUE@ $(DOC2HTML) -V '%use-id-as-filename%' -o $@ local-fontconfig-devel.sgml @USEDOCBOOK_TRUE@local-fontconfig-user.sgml: $(srcdir)/fontconfig-user.sgml @USEDOCBOOK_TRUE@ $(AM_V_GEN) $(LN_S) $(srcdir)/fontconfig-user.sgml $@; \ @USEDOCBOOK_TRUE@ [ ! -f $(builddir)/fontconfig-user.sgml ] && cp -a $(srcdir)/fontconfig-user.sgml $(builddir)/fontconfig-user.sgml || : @USEDOCBOOK_TRUE@local-fontconfig-devel.sgml: $(srcdir)/fontconfig-devel.sgml @USEDOCBOOK_TRUE@ $(AM_V_GEN) $(LN_S) $(srcdir)/fontconfig-devel.sgml $@; \ @USEDOCBOOK_TRUE@ [ ! -f $(builddir)/fontconfig-devel.sgml ] && cp -a $(srcdir)/fontconfig-devel.sgml $(builddir)/fontconfig-devel.sgml || : # @USEDOCBOOK_TRUE@all-local: $(BUILT_DOCS) $(HTML_DIR)/* @USEDOCBOOK_TRUE@clean-local: @USEDOCBOOK_TRUE@ $(RM) -r $(HTML_DIR) devel-man @USEDOCBOOK_TRUE@ [ "x$(builddir)" != "x$(srcdir)" ] && $(RM) $(builddir)/*.sgml || : @USEDOCBOOK_TRUE@dist-local-check-docs-enabled: @USEDOCBOOK_TRUE@ @true @USEDOCBOOK_FALSE@all-local: @USEDOCBOOK_FALSE@clean-local: @USEDOCBOOK_FALSE@dist-local-check-docs-enabled: @USEDOCBOOK_FALSE@ @echo "*** --enable-man must be used in order to make dist" @USEDOCBOOK_FALSE@ @false # force doc rebulid after configure dist-hook-local: dist-local-check-docs-enabled -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fontconfig-2.11.1/doc/FcObjectSetAdd.30000664000076400007640000000075712313745357014303 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcObjectSetAdd" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcObjectSetAdd \- Add to an object set .SH SYNOPSIS .nf \fB#include .sp FcBool FcObjectSetAdd (FcObjectSet *\fIos\fB, const char *\fIobject\fB); .fi\fR .SH "DESCRIPTION" .PP Adds a property name to the set. Returns FcFalse if the property name cannot be inserted into the set (due to allocation failure). Otherwise returns FcTrue. fontconfig-2.11.1/doc/FcStrStrIgnoreCase.30000664000076400007640000000106112313745357015176 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcStrStrIgnoreCase" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcStrStrIgnoreCase \- locate UTF-8 substring ignoring ASCII case .SH SYNOPSIS .nf \fB#include .sp FcChar8 * FcStrStrIgnoreCase (const FcChar8 *\fIs1\fB, const FcChar8 *\fIs2\fB); .fi\fR .SH "DESCRIPTION" .PP Returns the location of \fIs2\fR in \fIs1\fR, ignoring case. Returns NULL if \fIs2\fR is not present in \fIs1\fR\&. This test is case-insensitive for all proper UTF-8 encoded strings. fontconfig-2.11.1/doc/FcConfigGetConfigFiles.30000664000076400007640000000073512313745357015762 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigGetConfigFiles" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigGetConfigFiles \- Get config files .SH SYNOPSIS .nf \fB#include .sp FcStrList * FcConfigGetConfigFiles (FcConfig *\fIconfig\fB); .fi\fR .SH "DESCRIPTION" .PP Returns the list of known configuration files used to generate \fIconfig\fR\&. If \fIconfig\fR is NULL, the current configuration is used. fontconfig-2.11.1/doc/FcConfigAppFontAddFile.30000664000076400007640000000111612313745357015704 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigAppFontAddFile" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigAppFontAddFile \- Add font file to font database .SH SYNOPSIS .nf \fB#include .sp FcBool FcConfigAppFontAddFile (FcConfig *\fIconfig\fB, const FcChar8 *\fIfile\fB); .fi\fR .SH "DESCRIPTION" .PP Adds an application-specific font to the configuration. Returns FcFalse if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue. If \fIconfig\fR is NULL, the current configuration is used. fontconfig-2.11.1/doc/fcfontset.sgml0000664000076400007640000004530212306317520014312 00000000000000 FcFontSetCreate 3 Fontconfig &version; FcFontSetCreate Create a font set #include <fontconfig/fontconfig.h> FcFontSet * FcFontSetCreate void Description Creates an empty font set. FcFontSetDestroy 3 Fontconfig &version; FcFontSetDestroy Destroy a font set #include <fontconfig/fontconfig.h> void FcFontSetDestroy FcFontSet *s Description Destroys a font set. Note that this destroys any referenced patterns as well. FcFontSetAdd 3 Fontconfig &version; FcFontSetAdd Add to a font set #include <fontconfig/fontconfig.h> FcBool FcFontSetAdd FcFontSet *s FcPattern *font Description Adds a pattern to a font set. Note that the pattern is not copied before being inserted into the set. Returns FcFalse if the pattern cannot be inserted into the set (due to allocation failure). Otherwise returns FcTrue. FcFontSetList 3 Fontconfig &version; FcFontSetList List fonts from a set of font sets #include <fontconfig/fontconfig.h> FcFontSet * FcFontSetList FcConfig *config FcFontSet **sets intnsets FcPattern *pattern FcObjectSet *object_set Description Selects fonts matching pattern from sets, creates patterns from those fonts containing only the objects in object_set and returns the set of unique such patterns. If config is NULL, the default configuration is checked to be up to date, and used. FcFontSetMatch 3 Fontconfig &version; FcFontSetMatch Return the best font from a set of font sets #include <fontconfig/fontconfig.h> FcPattern * FcFontSetMatch FcConfig *config FcFontSet **sets intnsets FcPattern *pattern FcResult *result Description Finds the font in sets most closely matching pattern and returns the result of FcFontRenderPrepare for that font and the provided pattern. This function should be called only after FcConfigSubstitute and FcDefaultSubstitute have been called for pattern; otherwise the results will not be correct. If config is NULL, the current configuration is used. Returns NULL if an error occurs during this process. FcFontSetPrint 3 Fontconfig &version; FcFontSetPrint Print a set of patterns to stdout #include <fontconfig/fontconfig.h> void FcFontSetPrint FcFontSet *set Description This function is useful for diagnosing font related issues, printing the complete contents of every pattern in set. The format of the output is designed to be of help to users and developers, and may change at any time. FcFontSetSort 3 Fontconfig &version; FcFontSetSort Add to a font set #include <fontconfig/fontconfig.h> FcFontSetSort FcConfig *config FcFontSet **sets intnsets FcPattern *pattern FcBool trim FcCharSet **csp FcResult *result Description Returns the list of fonts from sets sorted by closeness to pattern. If trim is FcTrue, elements in the list which don't include Unicode coverage not provided by earlier elements in the list are elided. The union of Unicode coverage of all of the fonts is returned in csp, if csp is not NULL. This function should be called only after FcConfigSubstitute and FcDefaultSubstitute have been called for p; otherwise the results will not be correct. The returned FcFontSet references FcPattern structures which may be shared by the return value from multiple FcFontSort calls, applications cannot modify these patterns. Instead, they should be passed, along with pattern to FcFontRenderPrepare which combines them into a complete pattern. The FcFontSet returned by FcFontSetSort is destroyed by calling FcFontSetDestroy. FcFontSetSortDestroy 3 Fontconfig &version; FcFontSetSortDestroy DEPRECATED destroy a font set #include <fontconfig/fontconfig.h> FcFontSetSortDestroy FcFontSet *set Description This function is DEPRECATED. FcFontSetSortDestroy destroys set by calling FcFontSetDestroy. Applications should use FcFontSetDestroy directly instead. fontconfig-2.11.1/doc/FcCharSetNextPage.30000664000076400007640000000137512313745357014772 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcCharSetNextPage" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcCharSetNextPage \- Continue enumerating charset contents .SH SYNOPSIS .nf \fB#include .sp FcChar32 FcCharSetNextPage (const FcCharSet *\fIa\fB, FcChar32[FC_CHARSET_MAP_SIZE] \fImap\fB, FcChar32 *\fInext\fB); .fi\fR .SH "DESCRIPTION" .PP Builds an array of bits in \fImap\fR marking the Unicode coverage of \fIa\fR for page containing \fI*next\fR (see the \fBFcCharSetFirstPage\fR description for details). \fI*next\fR is set to contains the base code point for the next page in \fIa\fR\&. Returns the base of code point for the page, or FC_CHARSET_DONE if \fIa\fR does not contain \fI*next\fR\&. fontconfig-2.11.1/doc/FcConfigUptoDate.30000664000076400007640000000101612313745357014650 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigUptoDate" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigUptoDate \- Check timestamps on config files .SH SYNOPSIS .nf \fB#include .sp FcBool FcConfigUptoDate (FcConfig *\fIconfig\fB); .fi\fR .SH "DESCRIPTION" .PP Checks all of the files related to \fIconfig\fR and returns whether any of them has been modified since the configuration was created. If \fIconfig\fR is NULL, the current configuration is used. fontconfig-2.11.1/doc/fontconfig-devel.pdf0000664000076400007640000134761112313745372015400 00000000000000%PDF-1.5 % 2 0 obj << /Type /ObjStm /N 100 /First 794 /Length 907 /Filter /FlateDecode >> stream xڍN@sYx%DC"%^mFj=JT^g,aȒ23⌂!ĈX"E.&+H)O &p!4錴f 66QY{1dP0Fxd<>@H o 65dlHɡS@CH:lL D! ]a 6:X 1Rpц)Bd(BE`͒dJRxbU9sz,/+ԒF mj> stream xڍAoA +|K:3 !! "Js␬vJf$D iJI8Q䆐YX38dă hmI}H3jIkF6swYP e:KuɢĜ,X#k+BEW )PJQWcڈLUPW3SjA}uѧ6zrAP#VD5Ԥ!fjѨŜ4,0qI&Ey~pH*T*< 0Ճ/F8AEÚA ʠ0cb)K01CIXޔ⚳D9KKBؑ'9,摠aj$ 7\jq T  :W̤EBk\cm &@q+8:(Ő$tnX[)6H  q)܇g.l?m⒞"<χ'><rܯ7?q(פHP!WqܟW^ǩd@ծ ށnw^M"YR]X+ҏq?nV D}Gb;~Bm6 Qℰr׿ZYJZeYKYS^}=lj³I+'W[ qɳY&`]~LHKȻ !lN _L(kc 0PzqsB]u r9OqB]gBtc endstream endobj 404 0 obj << /Type /ObjStm /N 100 /First 845 /Length 818 /Filter /FlateDecode >> stream xڕAn1 Es .#R$A슠NS@b@nOiZ؃QW5_# )P J)QbB5#(1{X%gǖ$H!XI#TBbHoQP5(|ZK296p7ޱWaf#Z'!& b|BN7l}Db:#ʼna}S;rR]xH~ZΝ endstream endobj 605 0 obj << /Type /ObjStm /N 100 /First 847 /Length 825 /Filter /FlateDecode >> stream xڕn1 )| 7m8v"!$~TğT^lvAo3LJZRJdRf, Lձ1WN,8D\ +E[ gJJFRg!s&iQFeq\rUA8C"ѧd*PoROq*`G?c*,D8S=`NzL= 5U4X-T5+jl wSsj K`&L7n>8>;~pj!a &˜CbƦ 1PΈy,7b:8aO9ss4DgLϡs4E 力q :7 k$58Bb>9-)OR<I@IAa06(6*ãGt~I/tY3f;x7v{83 ^l.r\_/۾:.R7uyEʴ{2_m*iUgPܥ3Ht6XɫB.A^wnZbV]BB=ôJ[ *.ArNM:Q5KY䞨#Dwaؼy܄Y|vq ϫy9Q]y9yQѺl^ LP<#_qq /.AvEg>rDkYuI Cޥ0ooF:ތ>~mv*}rw=~_**} ;B6vk '( endstream endobj 806 0 obj << /Type /ObjStm /N 100 /First 851 /Length 827 /Filter /FlateDecode >> stream xڕO1W̱\񌄐4UzªD4Jf 5gP FI9P.Ո!+qJ8L\AHX"NPFd(9؛"؟*I)c9R2쇄sY(l+^NqnIT2QJRq]$[" XHu*BR(H UoL5aRUOPqYk_Џ@u-}l8=VS20C΂`"100f8a0#c[}hjLD+Dbx(3\Gtbp` `'4r@ax3\⬡3Xy'H0I18n*L>9Y,~ pū.xexX,v4_ ab c(꽣[VAŇ9Evؼ:`0]=CK1x/Xk0?%Нٜξln6tvM4)4E麿_Vj>9S~gٮob7v\m,~gj~XoQ?\tRS֤V6tXc'::>V^3[X=_k[aɤ TSR5)/cLdRdmMIoT~ۭ1Nc1(wcd͓2*M2Ȭ5OgGv~ q-" 9"}@tLj1wR/oo}6FtTjQGnnT*hR&NKZE'z=&$+ endstream endobj 1007 0 obj << /Type /ObjStm /N 100 /First 947 /Length 798 /Filter /FlateDecode >> stream xڍMo@sl/~TR@ $%v%О\{3nyvsYS'A=$oX& wnW2tXSfW&IcP%A`0. Y&dzDK lp,aJz,aj&KVdɞsQE%jA/l%IT)V4)^Jc\_MhN%l*Y– R-3sk*~B7(t "7o61 [e(!r29Ll@1N|cp\)vC1STTrDxV}`k`eQyOj\gn9y̙u)EQԣFk)YXlź1k]d tj,Ȁ|Y`l26e=_Du#.c-~AQQ(kӗ\ɅnSݢ_bxz^ɻa|<&ܶ?%_"DINfpioeM֨#kdՙ2eUv~&{6 ME^V]I.W5\? wiUT%Y{EL~d@*(u]$W5ToOiWEI.QW4/x4]$KqY|\0% һ^:oqpuՕTױedﱕ> stream xڍnQ y /a^WBHl !H4sCA(t<Ͼ>$jH5U«I$&^(b5#M\4(ZBPOQ52M,$VAkiF&q pcb̂X9V3Sب0eI3MAR?=#rdc\%;ӋJLGOϠ`Y%Kaۆ%Qa R2Si̪Qj`_HʵJdJ-dI $My7g֤Az `<3B pPrxHa[eu;?N+ML~sVOSw= b='LߜsvzeYyVֹj1[pVc#GRπ8pXbXjW̃^#k9[,⌒̈gpW 9%pP&V]ZmZF\V;-̂eF(q`Ct\\'zUJ'7_x9L7O/N)o>R~G~}Eδ!}Q&8$d7#zv}ԋvsL l^"U"FgJq<fh[k·{A񍱨؞ޓ|ŧO3ż(TI,:CZl2A0$߲QZRcArx;~Y??>8[Z~{~a.|~M9ڲ.u)験>Q Rwi[hQ+4djgZ_}1}a6 endstream endobj 1409 0 obj << /Type /ObjStm /N 100 /First 947 /Length 838 /Filter /FlateDecode >> stream xڍAoF <&{3A.qhrc, P=Iaׂ"QO#5$5s<7.qV@2U51. Lh%S&,P[5I)`)Ax5) "sT@j(&кXS-E3i*d j܆NJkd1LKW&$=B]`dp/ }W2T(Xk42FeKIt#2zeC,!Ad`\sBQDP9-n4{aL %tSkRk' "198K_1eq֠m"a,5,-YjqE\.?nv矗ӗT{uJ)$uVg}I'Z{ٔJNI%iR?vݙRO+TJj+7[B;)6'_i;Ou[շ7܆y26ɿ<`QVh BjnAHN/ƿDBb~Jr؟WHul dC3+)_M50̟ܭ%mGPS~\G|w+tI>#A~FF}.y9C?칵 endstream endobj 1610 0 obj << /Type /ObjStm /N 100 /First 947 /Length 845 /Filter /FlateDecode >> stream xڍAo7sL.6CrH !v^CEٴ!)@e"7oJZB ZĔIݥ4W<8T b^rdPœ֮XDsIb0n$"E1cVbYyb$9HRjIJ$,F\%VXD]\d'F)+@E *{q@8 :gAf2*YFB1̪Ekj[ڭNԖVjK뽷u<4!JB` B╺ tpPCˌ Q#BI5fG.ZM 316wp4j\gQcyǸ OZaIR˻e[ b}bx%978stt%>|^D\r"pqg4zy_I7g}~0Zkצv11jlwϏݸ? c*J<6<*W\{'7rq};y-][(vI/;.*n:nn޿*zo?mN V90Irq5m RӸI qR9M~{;|UvtViZКUc+BKߦoao@ք5iH8 bR5(T. .Q{ZJpϲ2{0^\V1`H- K?N3FRp)a\u^b0N먔1TJ0jDe8-?|:LiΗ~q)RXLǀ)嵇;r,O endstream endobj 1811 0 obj << /Type /ObjStm /N 100 /First 949 /Length 846 /Filter /FlateDecode >> stream xڍOo1 >¥ U(,tE٭ߞRq&wlni 4E$I|4;bQ+ZRD2X J\$1e$: EvNQ,5ZfTĜJ \T JJ앓ZM2Qjd4VBM1ɕKKNZ R2R*YծY$CRR1I넭JKlAZcelu'eq [Y,CZW4x9CBڽqʃwp"72&~D#<~~,z֌=xVHKь=੦NspUS'8%ΒW͝j8՜=`f:V 70W =p&8GZx +w%s*K9<ƀ83w;ssc>ą?ҫqzOׇݷ7_vQ͏XV)mSpGI|)ih?ێ\ǥp)MFñ@弊ee K48[n블.%L7ǑފRx)i^;I}YIܔ9nJ4wf;K]禬qS_ˇ/%Y Д4q1ʱj̔]]:}j0nG)Vo.tnnl?햻egu]]zE endstream endobj 2012 0 obj << /Type /ObjStm /N 100 /First 947 /Length 867 /Filter /FlateDecode >> stream xڕUnA +|K%@KYe3"vC 0͡w=eL{*N$?K4TſwR'GNh4h)0v:+DM lD'( qb?$UBˎ;DN1)ILL@0 Cb$#HBPQRn;E1`S "/9se%݋I’\ R2i(ST[GR!yQK,La&,` ƫb֎gv8*DS, ≮(V,S;;%-HUrx"S(^C~))$BSQ<=䈙 +FF!,O,= -B[,E1u#@^ͩq&[dRh-ZZdhDbZ=XʌV3H  0JcjV&'icbGBU;{D.6rrz? y\ӧg.wϧ㼟PszX܎q\_qwi+ڻ{—8λ/KP*]Lt3S0/Z'J\7QJjûp= Kt1a1q8ej%,%4w_a\%%Ժ馇tmxj^/D)} ݔC/ys{y!NGǗyCX?<@*,Qܽuoo,j}8ܻ_T wQ5hEe?^<aWpBh7X u˦ endstream endobj 2213 0 obj << /Type /ObjStm /N 100 /First 949 /Length 845 /Filter /FlateDecode >> stream xڕUJ\A|+1t DH @.` Kt7.>U#ボ:gkj1F$Fb"AJS). z"4l#C*[Wb ]1GbIUZò0@jY+Cl030\kaMkmJU0[[\-!rف0s @ 4L'+OD9U~\X{y'`x 'XϏ޼6şb> stream xڕV]kA|ϯG}Ig E/E\nݩ[5eǧlWWWw]G G&aDhB_02!|?G)4.op+Ch{s6.RB:ˈ_iwǫ˺\R\Bs\*Ӱnx[WKXS hujé7pUSQ3,^.0;_ endstream endobj 2615 0 obj << /Type /ObjStm /N 100 /First 948 /Length 865 /Filter /FlateDecode >> stream xڕUN[1{,^-!. zzhᩍDP}gZ*kgfwĢYĢURg\xgڿQ@QhR)BE !0ڏ@Eh+"Y$I K׳IN#˒#$' \UR ,RČbGiR]xXEEa+f t ĝh+p*JiY507ܪrkhCƖ"0Ap!(4pX"?T U" ʶA҆3ؙeAtf7ƖAOՐ&9y92ԨP5G:E{9=G f#5eWt9 [5Ð!]TTCZ2TK\J$xdP- PA+H>䌊8Fyxq1YkcꎰeH[AufBHHTDP9+Vd{[첒O..|%Yί坞Y<˓wf}8l"Wf;s֛oӧi}έ">-oq*o~w7i=n8f4l fcv -a凉tݴ P_:p0; :;ѫj:,M!txoJxevna_[^~|/ r?n:f6l7{3K`Yt,qlz֋h[[B?Z,sJ~(a]]|Ł!lpkSj͒AW=1Iai?_zR<> 4O+S endstream endobj 2816 0 obj << /Type /ObjStm /N 100 /First 947 /Length 843 /Filter /FlateDecode >> stream xڕUn0|W#^k{%T Q  ѿgUHdg;{Ilj$6u\AV޳{BD#Ww(Z6=Q;뙜DPT%A IM%uAu$C9RQpNIb:%)uJJ+|RU)XsU kKlAwE2:QySJWiFT Pj}ՑP5Fd4rD~}I ޣT`a9I98 j Nνhb@5%:F5UZF8-FjP#!UFWh.܋\B@ 2U^QSk܋p1uTFteHi9RE{*,h}Av/h@A‘r@PE(ڼO/j8GPg5X2{ J4"PBJDGD`<$SBѫWrr)'rr&/XK9֗rzzr]Nˇ{Bd~N+˻~ޯSl_˼<Ϯ;fkJy5a_1-a1afڬZqÎI1ǤQ5> stream xڍJ$A>E׋Vf&E 2 Ì F;v2uF  ONRY󳉪pQI4ќXDXDbJ ,QT,Y,#Za9}vFk76v"I#sdԔ P\hX$,@fxdptx kDHZD BX*vܰ iRasnRG,G^EWixڨ!H`*$q*+Gix/<"sP#3[Ѭ}Mh覈PɃ*!nOd7fm(4Lu r P頋tS3V#{AD=8Œ ai<]fj\SYIdEg ל9 ٢ŒtQj,w2CZ#bhDAPK)f4ьX,#OYy o[Oi[i o/ Q~B0|3\^|y~|V]>?^V)Lz?/͟y޾~az|ާ9me:JiemunfX/R.aPMoݜ.7[,qR9ov9)+ca0gm20g]M9]v]8)Üzz> stream xOo0;Xj\Kb7 +m"CCPۤҾ8tV99?ym.op!|~\3!SE+򐌛]6w冦0Ʌ"KsvrgnMOKGSyaN0tqR2!U,C1sՕZT*K˸ݶWOI'O. Q~!*UͥݜQӘ1^jӕ{ػ {vS- „J5T`%5EXܧ6,]Cq>+-C.gDgi9ca$6a' :nwÊ z; ThF 'o3q}x XUO%Y>Ӂ08_v8* endstream endobj 3314 0 obj << /Length 19 /Filter /FlateDecode >> stream x3PHW0Pp2Ac( endstream endobj 3318 0 obj << /Length 2175 /Filter /FlateDecode >> stream xڵks8{=%1)]߸Iq{sCKt̉>QN@A鸣;ϛwx4yzn/E IG}zج&o~酣؉y~Dh: EDz,,tc Zfj[DTjTȔ(꒰j2J%!I22b1)e:VVeqأpukW"epTICjjŎ{|/w7h5j' 䟷guOϏc`-TiUrh1aZKK^%!Km*Ks>xm'ZV3وܑrbק5ԳR6j"&uWX?$Pkr@Q{V>6;t4YBG 9Fu9'nC[>~|=Nļ1rg1d6nixs\;V2iuǩE}:+چH2!tDA#(gM`"+0V0$#&J2"enAۛCT=܍EGfU"/PtI/oM +}I^@io6nhhR14 {j,H|Q,$6APeϋTJ %Nwg I6iK´A`<քQNCږp9t@&{Q(ӲSSQNM]2P“қs"DcQupnj[rzioS>Ud.+%p6)?N0__i9 ';"=Y ʪ-\D/B6) pAʼ iZm@.9_e6 SK{ gfu  |0X&m> stream xڥXm8>f5d @J'iΊDҳ;wj߅$_U~IIzfub;vSe;Ni>wlöLG{lXAvb㇝Ӥ{o=sܿG͹ohD`rC~k_y;X A/}|hw&!s6Nϴ䜱Ws_ ~f>}^ϞYK KZnc00aǍ8̀Q6&P Xz&vۻ7)]iO⏒dXbQP6GּHyPy$7ؓtc[Y ۭQ6aƔ [q|ʄ0-Y ` -3~p稌L/p@\bMc1IerB6eG-Z"B^ʺ*-T~gw͗9˖Ew}QCb!STQ`f݂jGd>:odoO)aAҺRA(,+Lڞ~!5h7;%VD,G%L5ж̧ A(רz^f؎Ȥ8V F҇sWKu|՛EΛzs7ȖŬ8LLN+ 3'/{zdYΠ0jÛF<)Aܡ nI >Nl`]Lf5|4eK҄6C'  QLm!nWW;~ ⴮xXݓ8j˰9&`ve7uY v,+yީ_F ^V CKQj.RŧxI59ʳaW K,g`Nb"Ao~ðpw9f@=.NeG. endstream endobj 3342 0 obj << /Length 1463 /Filter /FlateDecode >> stream xڭXr6}W-R'yo'3IjL/Ӂ(HdK,/5{w TK Ee[.,..o8pk<<?+mYIYff:s}{rT^Vn}֪:DzM؝"+ rq3}Å.or\a0& ?s[xQ`@hzV^뢛YC_a dQTkmL:=Q:yȠAp ;((a ZҏGa~e9W,Hm5];U[bL}`E Bؼ{={]tS--,{dt_ciܨ]Uu,P_mϋh냟FS1TVw/Ɠ#u>b(/P`6Ʒ<5? 91 <;ZP##Ob,ÝL`7hz^"\ -Y=8WM{Ѱxb: "n;tcHv5w(_ӐjǬR k$jh?нS%-S[% N@q.pz4ԆLR{Im Vu֖N"pg.xdf:Sʹy2 Zh}\7C%cu<EߠN]#lXUbCYn>"\fWd+yz {׵̻3~F?m{117Q O"gMdmJVY (zsyu5h]U_!K-7FU )? Qx2&^|1C! 0ו];0p6y:6e\#mE"AMYX Vco=P9}k×ewe''ܵbyOeQx0[s:n}kM"aܐp'`n,(ޟ&¾ $4;txCνңژ;o2|[(z]\v endstream endobj 3218 0 obj << /Type /ObjStm /N 100 /First 929 /Length 1393 /Filter /FlateDecode >> stream xڽXMo71pIpHF8ma>5|pE ĕ I7,[ĶkGǙ7;3LJ^ak4)UL.z-JAWE !LpMz UnhBV,&? QF6d{hp̊ ,D@PRL$ݞ=$21M,j+%#9e#$(:NBUVΤjx*R GAWT4څq]UO 5AR^5\"uXp<ւT & *ث2$0ѭ%, P&"r%r|Gt#,^%ʢN U&i0H\ XkC%-$T/A'p/hx|TI@aV* s^2T; *eej#ţZ٧\ jQ~IV Tf]D+Z$HZj$jgez>5y/Ίw65uoξM^_COl|O'_"Gg|N|Xka?x*y-0Éy*Lx*45-'d/|JU@k[T~ 0W6 :RGG]v0?L'akЮ8̧w롮çЅp9O_J7O3o_lN`?8Y% ;˽+8X3k,6ᅲ VF#-ܲڟΦg}22u=ܞwn~ssNM1~@ ݼ<^[CYM5ǽ CK¨48D]x$sy=brmS#E t`sm`t~頇t։4)M5> stream xڭXIoFWfOMc)Rh\"# E$e-6RF8m{fǫ˫E2~<[fYPϒWQΖwg}=~9o죭m;fWԱun_1<( Z˟<Y 㐌{*gH,Д bs>zW7@9!rPf'8TDʹhYg%4ʂ!0"P0-Df6mJBUg,Q,i>^] 8RY48TrarKO@G|oWYOhԞQX~Be#@[ ;S?}n%v@&a(zifg3̋QSqqt<Y,H O* @L't:t͊؎Ϟ~-]mGS,3UewL&_9'슒O1n,X[ILYAPL|N8ovd9.5*oL)p7=~UuHI(ÜUӂbLpfYy.=^S Ql,75/<3AMbRw cz)x O>3U=qq/(ٯ~'Plmخec7.9v4H$eNy(OdzX]׷\r^(fGOs;QGP:Hdq2[).^츸ˆǻN$;%=A [Л 1@)HRC)fv xauPRVO)7X>iW{(llբ Uf0"p,\]rapP&@]3PNV6v R|;ֺF)RKZӶy2;NY*cJfߢ̡ڟo{Z5٤_0yR޾C} L3=? [\0 ՄR\@YvkCAPk!Xxb Tm/:wuNVX[LəX| I xԴFၸ.+qj^w N*HCa#5@wh! ѱx} T$`MEi㼯&[>>HH"w s,Abat9%4DOmʢ 掂t .mZ^ץͫ!o_ybv…H6)\XȆ){7Ic]6\ixd& 5OfAj+8! 3؂GA ; fiWe= Aqݷ>ֶ rp.BW z)~*U?X;z+np90up+h|Ab|$pHN endstream endobj 3378 0 obj << /Length 1677 /Filter /FlateDecode >> stream xڝ]o6oQX) y2tXڢM0k)OxGGv֘_t<GGY4ɋ'ϮѬT,0_,a,f75lQ$o2WN7Vw=EhS }:/duk!C!BqOO"VUEq,\HI7 rDvXvՄjWU*kugJ7z[mthy%E`nij6 ~6u?>QX$ihF,RTU`=y.ҥ%$'Qkś; ڱU jϮd12)8P| [q\rF@EFЅyvi?G')D"SfQ"rG%a,2pkէnlE\yi}{ C,?5 (y퍻S0߽yKvA{Q\i\wua# 62V%s>ripnK}Лg̫װ;5')@ȃk^1V2E-~Aڮ reF>;-_4@xk$ h,r6jX8cIԘ5v.JS'.|, -e[.yw]n0ٍv\HtUɂ' Nk>+4y RnC;ODkז5 6]Z?$i1R" ɡ `KW|pR~6Pe"*r MUʪuH˛uOqP7@5(U($I φoQ>oݡn.$&]<ʂ`mkS5j-k0:5I[CAcW9emՄ|쥜 6ɹheX:;arjpbʡ dBݺ;σ[D]z3aO (vo?oCt;bmkw/H7/);ѨFm.UpƲ,@Ϛ dAEБ|ƧL攽_ $WTg TxtB3Df[BA;M baLyHqꧻ]-$.DCCs+ ;B>Q\S 4-j/fK$M訨pYdY|]n7eiR8 @-ӘX(څШt@-,ZQ7#Wm|F78zF6DGľ!/ J-Pji\jTݨe\ĸ$N;ϯFJ!;ap-wGeiA|{l ߍTJ -/2zG10r|;*So!-.)݅v‰'T,C/q ##`>]#Ƅ/0^kPzoZY{j7, L=4#랇ׯ!MBőս9K$P/܆_{Ὦ 1I .h n25؜ɓ{pq~?/9)$<^Er 9v{N{ZoZș4m¡C_3G %a{X1Np?t endstream endobj 3398 0 obj << /Length 1089 /Filter /FlateDecode >> stream xڭn6=_!`;6 ȒyPde#Q6Wt}}yHjusCE.^l((I,6A,A^0IÍVcQv5K^> stream xVˎ0+"I#C $X@ņa&RƮ4|=v줙NAbU>(0`fqY)h$\ol[9吝|0d:^c( ?YX^9欏8<9c3Oo<{9&O4!QR6)[/}zˑ_uTO> ~MWR sq50۝ }Ӿҹf>om^yyy [)?UvbrvVojF+ iawԭR8;;yfaV1f> stream xڭXn\7 W 4"ŗ#6@f6"HE .bH;c+'^9HJE,? O/S!PZa)p)"|eAТ7Q7+i̼x(.Z`|%;o%pMBZI$:N) ֧f@L̙o@b)1$2poS!Ib$z-k6`ߤ (`KJXੂ\6AXCpܚ m7GBw@B(;HBl iTnY2;D!1<)b9U;QlHg}1( UXF^5,1^N9IϜR  ̳!`D0k!!}Db-&:)e/\tz5:\;'$!@/j ‘!;;ퟗؓg_o:8F2}ݳgCᙣWK`V|~᪜y ZyJǪO}滹a|~=\eyٿ:|*_<xa.ݦw#1L/?~:jCѣ8|V2@/^<@> stream xVK(ϯ[vC8=$Ҥfg<0Ggg w{z)QrɸG8Mpb8Hrʓ}qFRPT,7_iX;czh7;ot~ O;ISoaE {+*B.Y%IF9* =ԽyCy] -N2‘e tD߉t LgK,]F݀`t4n!koo{Qg$B 2F왓<|IBYf43A5KP?鍍!h\ulgu\QqUc-u;V :߮>iWKsuOrD9ùg Q8Fwz󞁋E:8M\ !#߫{%7"dRfϔzWNvde9(?>Z0TA9#  cnj[Y2 7bA<^n#09*s8ڈRLJ i5rKVp~p ˅{(.>5,H7A|7>#;ld[^կ6螗+ _NzB+u9/D 5F3E5 ZM(%b0X9tLS/L߰4I~iu\\a!f+b„abB/f뾰jU 1.OޤV(Ň!O\po endstream endobj 3497 0 obj << /Length 919 /Filter /FlateDecode >> stream xV͏4_K60{a9Xd쐸3zw7wu#xAhR"dymxm1ݯAt~;ٯ;}\q; e40("կnpvMyDRD z Q\M^+{+Y 6@"pjV"FI 1Q<ٔϒQB Y7rD .r<*} ֈR^cP-UKYz)d'6ݠcJE)1_(]:e3)LG~-j 2-&ů,'(m8*}Ywƴ3q\rbOKs OM9~1v+y\gʝ,J  Wؽk \羑omې C%4PEu!^˝8yލB(H0y # <1@9ANqFj0!YB`QK+++k䓴^u/UD#Shm,A<~)r_%ZB'U !`Pެ ;Lp\85eYzHW"Ц$['kaט*[c݁VMJv2&(^jŶ 5zm{;:ޘzg}*`a+c2:lLd 7W&r7s5R?^ " >w^x<"ʝΜʋpl\&ë́sE-?cEXofIapL x&s*9aSĶg?G]<ΟYdwFwnn65 endstream endobj 3462 0 obj << /Type /ObjStm /N 100 /First 950 /Length 1355 /Filter /FlateDecode >> stream xڭj6~ =VF[!9 9t)؁y7č[;;?ih )B)A0!k 搻 J " Ԡ@BCIE Kj(cnP˔P{E3#X.C)4=6{%bs$@Y :aLK 7uqUcim!LYgeS'jnװR {ܪ;ts =ˡr/SQ0`2weaXf_ ! 0]&V©H2 iءejL#+<@J:L̀}'&Z"$8t(EcPܑ=I Rs'VΎܷe \48&7< @Nfbzkal+y FB>EJdZ#b Hޔ7ٔY(9Mu=+Kv 5P}NG}_/2}PÈNWd<|{Õ(mLV<&=}%xn2>|zųg1q |!}\j$R97BTјuQxD*zHҨiu*@&jxdmV@6u4rE삖 % m˲.AfȦ6םy 6$2^] pWe]W2|'ONepϘ0zx:^< WϷዿWu䋷/?gtqxynNO|ԡ.!o?bg,0q6Yqcp]YhnEl)-BւU4M)ϭN +rDD]GVVPiіiK1=SL#M!v[g6쥴J^]Bp}Is'jۅ Ge|. |[f$u ɴ[5۳,^6aHCoͻ(ڲZAowCU -3l)YSf7Ω2w{s[gh_ӈ_3yK<}&/=Myr>zns#htG-6k{us'0:Ʀi+ۦ2&Fʶ Q2lQy%O|(YՀ(3qC endstream endobj 3530 0 obj << /Length 802 /Filter /FlateDecode >> stream xVKo@WXb#ݷwB"8 8Rb[ɦUzi]@P$y|l-"N.%,h:"Z(3(%,_֕/RHRh|ݪnfn6 3 ec( 0FXevBgFLirMTx޻MukVe{ь f2#(ہ~;]aA5!ƨ lE+3U_0TpȷCq_ͶH#Ơ⣲*VYOʁ4D2ӣ{6*#Ly8;r1dBG<,DpKPHk@(mQ6kQhtoo ġ5TQHhTSz eDl V3ьD>ʞCRDnݶؔkqw &2LdpdC qnSb`࡟V/su 'a!f"^XvXC.m6-[z]@3ntSeݎCsW6 KN$Ј#=AhJ5#0 t(2$yk*kWSi/p(.?$ r641ϏiY2/\^`˄q^Ō TC0fgBှv/nxj7KW] k sINXm$$X(}QH!L܁Bb~ N>S& gݲ˚;)Ӛ endstream endobj 3567 0 obj << /Length 834 /Filter /FlateDecode >> stream xVn@+Fb |;@,J @mĆpIkp;=3۱CJY!dz׹Gad~t<0J4_"hh@&""Ę^O#*٬Xu~ۥ]O<ǩH<\P n8Q,\L>"ET/y*?<1Vr(b&$͓ly5p݃bK`*^ǻ#܌@1>|9eQG(vukcZY!*OmYX jX#a(B&)za0&FBqj E*!lP$8UUOvO-8 jy5Ɔê)P=egٞ7e\ױ_rmBfFu $.^4=4oB2Y\E-aqTbVw+Д/ѝt9}ذڗL;5.ΨY{0S-vʤTB^ucO9*%bԕ!̒F,)WK.(--I'Cs09zF;* j@j|b.8_8U0I+ W]dIm[?Iq ӯ]CsUi!" C,X96)0;`* `Qk('6m}gbb"4 ;}C)E#Z 8N endstream endobj 3527 0 obj << /Type /ObjStm /N 100 /First 955 /Length 1356 /Filter /FlateDecode >> stream xڵXn\7 +!J,AE[# # jf4v|]x9IQW: k+ڋt){!1,!a*K…ǒH -b%Z3:i|cE݋uIX5BeT,2BYsq]->CB O ԆwX2-VӒ! !@2%z$n%JIg:(| &C/- [fa dKsAL`,`Oj2-S X^-ʴl-@\<,"pKZ ӌ`_836v2 g@y03hK'=q, y&G f ![*6 P K^2`mɠ]ZąpD"`m ].#C*@?\o0`!\$͐ui,K6 &QZP+ak"L`Ke " vĥDÞ銜 )=ą2*Rhgg ~ZQ |g/^<&ER῁ԧG<r2$WG? 6ka!6ALC>hkONխTӔ //ew .g$l?>!Qǧh W7~ߗ˲{?ޗO_\?ڥlzwa^p\E2e֡n.rs0a^4LHLa4Mi!VsiXe4A-0w^Fk5jCmmExfzU|^L {Ch AZ-εQ|ttЦӇF1LРj80Tn}knUF@RcH˩H* > ݓ.$Y0,2P3RdN:-*+_]((`o0Z̡OnTJL 'LUff8qj6AS7F$' U?'T2Թ\6)Žy=^ #=vn}oD b =ކt>> stream xVMo6WE[T4I)zhmil{irB+]5Z/]4(rIQ4h뭠%VqJDJmm>Po7 4~]ܱwp 3kr ~XCD616wzm8R]hb8ܯ\CQ`6+4J"h ~ӱ JחjXdd`~VĘYD*5d>,Q07am2wH}_X $ew]Y}r6FV-1.͟. PMOePYF ]2%z8ߤpEL" `)JR;bm_7)wf[TpSC7ު9%s #;Rƹ 6 f3'#zr(c/)1cUi?SU0D036 Ss@n`sν.0mI9h~E$ a1UV/s 7l_(QId2=e$U!K@/ (v]6eR3>Y'EpbR/j+O3D*Ѹ02/20/΍_/ ]@0,]WS?{3HXB|N!i.B",\f( 7 p ıo{f2|OʳBqILoҠr@*}XedD}^fʺ3}sJ;"eb:o-x^F/Ca_1='j^qm3Q[q$1}^93? _H"NyrSjNw7Kt \xۃcNyq zh3lw7KNYMŞB'c q+Lawh endstream endobj 3655 0 obj << /Length 1158 /Filter /FlateDecode >> stream xW[o4~﯈Ը$-RH DG,R=L $v=ǗT[-<>ɹ} ~xIq$iw TD\PeiF7Mm1ݯZ9_N+"b][IF~"BYnC4̚O(bB`epmvEp .E8nʑ$J@BVi-qI =z@f|SD)KNܿv{UM3;9z%0 Qnߞؕgs$W To8"9ޕQD`B,/~.oE$6>o\rWt1"xpjGD \z" z4Vۭyn:jpP 楇ky"`Ft}(;gĥOq뺃XZ_JS}Y`{/kwcͮs,+c+x8z)S7D X @wΝJ8~rӪ tQ7Ӄ n7P9 ;YXiLθ([@c;N#&~ŲX??ϧ}V&?,<}[d9iS[[K*?5dl9Gi.d- Nlθ=Bz%=3|e!?Yg{:]RUoxSI*ξ BMQӔps`qLME`x<|"0WU! Џ@F`89j!0ś lgK+_z|٧N{<\7M/r6U5-daO N/aoS^eІw$]~}7=, endstream endobj 3612 0 obj << /Type /ObjStm /N 100 /First 961 /Length 1362 /Filter /FlateDecode >> stream xڭXn7 +K#6@f"H/A\}5ix[9")>9Wzk鍊Z2׳ ǢvhbϢDҩA^qqY{$/X2zȃI![yj! +xXMH,H2!X T:Bp#^R'A&hB,d-쑆YVkʺ=({ ڂVkkr@٤P!P6,sQB?m˔ ΋,VpMޢI8BXȀPPCt Yڃ8[ؖ Z~D 0z_ EZ)TM 'Ex,űpK¸,7Z8XTTD[ۄ^yCڃ]2X+9WF8t+f[{ж2עmBmX݋2~dGHB B&=4 )ja"۽`nR>/]Z huˋrurʴCSkw/={<V8) Q:Tq4׉tɡŵ:*2,Y٤:~x{(ct7?|*aM 3dTW} o>@JXF|hzOF:A_9!֡Nwvjphf6k;W &P94Tm*z _GS{ezih;Y|p!Y{``{1պD i2CrhSv}BFjM&IO/ƛFoI=ٙAȞ`3N3 iO >׳d&@B߻bhg'smV+ 8*w}PN=Da$F D-,5>G Cf;zU:;>M7厽c`IM61)u$k$ZDb1> stream xYݏ4߿"GXt-!M6&Q=IְV'b8o3 ^^]߆8PHqʃP"$t5y,f/}N^~ @cdC2 UgˈA>?`O/V>{ z.+/3%\jfW dIf(<0;8jBB3;a^j]'` GpvX>xs+W QĔPwO? +s-7,/Ks}40{jpN.&ւFQFW:-kӒ8GJkt+Gbp/YfSM4 xLk;JJHyKTNRk1ˮԾ\q \7:vn׶kZ}߷3q1@aVYn6y5MUfzR+0j,u>Ble4V*sqSZ&Ӽe9mLY6mc cGm[I$k %BD)=Az^in-:Ĝۀz;]mz 3H8"iI\ſ}v^M-|m 8x_ryRaAqnAIҔ24YC>!kSi⊚`׶3&IL@`a/Y/NmP "zU$i\7k1mbH\`/!w|j@=e B:f%pb Fa"S̋bHr7&5}n&@i2Y\7䨪 KL"ծM키ά&ȗ^e&,#e1ڌ=#n),Ӫ.A$m&|߿>|s endstream endobj 3703 0 obj << /Type /ObjStm /N 100 /First 970 /Length 1291 /Filter /FlateDecode >> stream xڭXM7ϯ/ШT,>$fodaq0a=dC.3zғQZ>fюB2FC ,~8NϺӋqBËOF1]Y \hJ-T-\G'2H⎕)j@B$ݩ58ZȞyD t(U0AH )hZAAud+0l 롋#d. =z0G8& 8f­E.Ȗ/D%2i( V˜,x(J+ИGlz,z(8*8/x1{kП4pcW1xGtR@,ň ` c] Ma9_N W8yzܕ׷\#z?^>=~~pY.~r,$Oڢ5}_6H(}shX+ z$L vyms譴h4ABMhISm/ӷIJ ;Uyt,DrhʵcJ {[9z%Ƭǡ,Yecr۬%~Yn&94uYbMdžadƩf/`]=:],+w };Nrл)45*̵38V}DuU;CjWs]:6ƵbҐqлq'ћqлq'ћq'GSpl"Etx/90fbIt겡$z{KG/9.6$L3dԤл$ћл$ћWM˳gK8W#ɡw#IFCFf$mɗFp>,;#{Qo5p@:< VO|EF=ŧ+/ endstream endobj 3808 0 obj << /Length 1394 /Filter /FlateDecode >> stream xYK6Ћ]T\>$D6[-Ⱥ4Eh[,md}"eK6r7'Qp4~<볋$DSLg H(`&u1Cѥڪ^uc߫Z*S?ؾcIG QԕDM;n*!Q@Y~3jӗ俬Jl"qn rq,J2= 7c|\Q|%w0w}D8$9Q&G_`q,b//YKAIo?EOvL?u12xD 2hKdb wtc) ըqd4J-g^qVU!lSeFec"v KTVڪu1T)Cez(Ouj[Ec>[MhA &ƶ=r{LDz2ZpU V#iwvvN84WTHߓ&V&eMO=|/oX:ZyX6!GhN %m8n0pr# N|ȨhYm;Z2T.jO_f }1H=c9FL  })D3?ȶCCzKͰacBpKdNpN6^j}oҍ 7N9"G= 1~ 2=Cm,_ķdB\x?M/`ۺ=p P;H"Fݶ>,%jO)TOSo + q-9J

> stream xڭXn\7 W 4K#6@f"HE.H\.y5G$Ç%)jE|X{!q{y0 0PV; C[`&΅b!X鳗.arz飅0sawb*0Z+ pdzmPɣUjv́;F,'<! ( ҊNhITPam6OI*ʍiƚu L"Q {vIM8)y4G4}OQ><$>?r{u}?oEMm4F\jļ`㏗rWo^ߖק[=sm.5f94#;$~fRqǗ+:@YŒ`> stream xXݏ4"*[$×[TD+$"MAd{f<&xA<;ܻճ:^b%yqT HKɼ7uU6iU\-W2ќj2;sZ 0ej2 ȫ wWܝ'$a bZ o% NOA)fGm:"gP%?Z$ыc4T\ynҦ&jx42}RM͈6IUil{24ªYjR;wj0ɝIsɈ7v#Iw;;=| |,>/ؘ獕uI,CiӜȗ0lݼ*ygB\4\Z*t ՉM`,*=٧o!;ѹ8$.-#l}}9 utGf;d^@[JʠSQ^8I\I5Sɻ}K]?4$ Cq8_|El![r~ֿmi"#=S?7{zʏ YP9w}fWBG{2$:[Nh+ "g"haoJY/⨡Z?vRf!KИZ{sz.olbaXEo698z]D` Uqy9924`ތ>+e9QҦpomT8CD/ vy"Qz6p_l ÈoS> ;;Њ) ˅%){nQ~ Cb$/9`hIPÎϻ`)e#J^(V*-lEUr*\a!]".]f3j&x@nRD4T.33G${ a r[Gҵ2[ 'USysaIx-a߄XUF# >\zG ۊ(^ִ{\CKY 2j)y%Q)Ga O Ƹ Cbh<0Ƣ}d.^FGXLφ"HlfdbDlF8jo?.=p]=Y$\ =s endstream endobj 3931 0 obj << /Type /ObjStm /N 100 /First 961 /Length 1346 /Filter /FlateDecode >> stream xڭXnESvvdoHQr !E6r)=_zMK] .;5TUJ+2rW)$#-V{^/ hqřE[?ȘgB 9jrE#^:TA r !p X(kAʤV4x6Z]Z{PP֙*d8"cj1g 7 y %C/+z9"Dp"󒌈s7A\Vo w u3w )HЁoxF~&O[1(ъ"b-`hRgZ#jzZu ԈFEja=R` -:Q lr XYdu8~Y-gӊZE=nI4'Y+-x ~t~rw^M( flWsf0~LzScωvEю,dϊΖs``= FӌHG"'fqh7}=iw Kv! E#V;eHTh4%=eKعhܹ#a({#+fCbY |{Jɶ eq#B츢h%/EhA>y|uրS2)л endstream endobj 3982 0 obj << /Length 1049 /Filter /FlateDecode >> stream xW͏&_aI hTj&S$l $iv{h/=^un~X=d0aH$)M ϳdY'4|s8{ި?qYw^Jz4} 0K0>* Hi,r s]Dk%{!%Н,*?s 3~/.,KU%Jkf3nX\|%2 zJ s:}>I!s3uíOkV? M)bSFDq5iw*LW}2(FՇylvBSɔrrC5ljL zgSzC~[C-Κ.X_ئ!AV }O-c>ERU!,(fdF]0E* +?f+;-aS@"" Dʰp^%cj mz shj[YnS@zkos;I3 ۋD,dA҇͝8E3^j̏vY/ }$9V^ϴ[jjS`YnwzˠHa/t?c{+mi@ui`AtlKZ i3QFTzD2竲kSbMl}\s0*;GsN;_ootg Y ke:X>1w"']g3*aj@,4fy`%Lm:d ;Y[iy%K,> \ Gͧ<,(` >?W?Avc2B.n$63t>~yrcz].Ztۿf-P"G馔Уږߊxʉ!QDfě{ :[=^dUjv&X[j<ҥ5iϸ> 4nj$wj{JWe]&9+J3a  $ȏ˛v endstream endobj 4022 0 obj << /Length 876 /Filter /FlateDecode >> stream xVI0ϯĥE䍗رR$h ppSh*I ԙ ĩ[>C6Aɛ˫E ,7d3cY\'gꊺS>}}M̱O٧$3Q֕? 1+_/L0Q BxfNLljk k NR*il .LA > 1#e.dq_C9Mxg5e)%۪>e;th)!|TVPf& âlW _Mp (!F!7!)"aƋjqG It@qdf;gb<)GXܩF 0(:*UCQJk/4abb$e`{W-٩qwe]uӵ֡G8cg$E{UUkJ輴 ^頤V9x(2)d*G@c:!w't?<+U|{ B,Խ;i==AQ( c;D}W9 Ȉ Ya( 8!("6b(ϭ0"Rʨk+l˳]Z֞F)Zx w=X9QxeaC Yȍ 'YAѕ:йVkma/K}EׅFqЇ WweB~=Kϖ,L 8ޛEm9T Cq|XglbYD)%}k]p$i0.Q]=Mǫhos`2 A#˫-̸ endstream endobj 3979 0 obj << /Type /ObjStm /N 100 /First 958 /Length 1348 /Filter /FlateDecode >> stream xڭXj\GWt=.`//3$9գ$l|X jVשJ+2;/ed1P_/̋ ""AE܁͂ŭV|.?ܐe@7Q&Þ)ebBzg(‡ɠNGdMBkP>a95/wZAb~ybpj -Ph# !mx0< Jj*G y@ xjZY\kc{` .,x,<(EeA(Q=a|Cm}4|$FB,b>]\oP?,Ӫáni-7_>}{4V NXMjo)aQ3yjY*0q ۬C\\˨f㷨73BcyT2-F~P˲Pζ>a>²_>}xۯ*6F D~Dui=^5 |6Oϕ5fGR5iŐ ;lK3 %Z׎1Խb"W8rۈ 1̈ CfkWT-Kf`P[Sc3UFtUF;%-krҏfcr# lV=xT {SpV`n v*j,td`I `4cFbHWבjV9i7uƚ~4&! Q5;S(׹r,y⾠T5xmi&FF!̤jx5=gRh5.9?<_o.4ϗzO7“]o vJcCÖ`T;c>MT؀%7wHɬՂ[§W#Ω6k@Nx`}lc@%.eVg-a':),1~{Re7$@FgICXH֑M*iu&ZqNnC%+²/tv㸣JhcKE-XcZ23nG=a3Pp,So&e+'} N KC/V8vPtH0G,X&urhJyԓY?^f7 endstream endobj 4059 0 obj << /Length 3072 /Filter /FlateDecode >> stream xڥk۸{~ 3hskl@Z,;/JWKOpC;΂ٟ_(*Ot2L`Te4*viqݦ }{q+XZ0[X2W^EԌ* Ux_^kB΄Wa(%NŢ|c[gpDHV&TY2TmQQF 'JU;};j?qJMabUh @R3 uaoO"X U<;o S:+Pi 7]WtԵJt_8q4::cЊq0Ra`I,@xmǠ,QAvQE XVq evs**ozN]<}hԁ(_ܖW⮨ytD+eєu٢+:>`K-O D>4M^ 9PU404ϓJ#SCŨ@p0|y|ghjǑo7_}([UvxECs}3s%$k|ǻʜCg)$=v7pHbӹ-kmn4# gP~bMIĕ%-H;=K-kTIX/ZFV÷j fl3v=zB--kV%:Yܣp|bA)$N[&t)|$HqCįs[vxa%Gb8:>NVg!%4Q=]MdvKTmP{>GԐ=^-v}Q3$Jу7~r#fEŇU ׵L,~$gyK]5y< )´D߀c-09(,e/  [ˑ7.t{olg6QƁ¶탮]1@J u>@FRc7ٞ7q>ΆdҽT^@!`e]·)eQ6$yߗnG%!+j92eM Q.#eMuU]R&-CRſ;nnO7+,xu#ŃEe,ZR+(b졄9(zL_tzqtID~KFC{3|sxb 4BQoW\D\:ą]gӵ= Xc풩Q,^'E#`$c{ M׳Ifk^^1Seq?MJA T!˶x`(ugeTYTݧrioh`ȣ C' N}EbEp|AQߧy4{:>.j!!oWpމ2TpKC4ACO>1DBv#\fRV U_,p3 BS }" l?*Z.{#DT`R- ݝav SbpbI, ГL4b_q%dI%q(Ek*%/%.%Tٲnxn5_^{4Ŵ)a$8dZ7Yjp0T#{RI!bv!#DVɎ8sh:b~*I Y3qROø5Ok=3œ6S/=b 7_ 3(-}QF hiYJliM&IݻITf<9^6:TTx01`_k E-Heh=̅h Ve ؖYzKċ (@{,²7,Zڠp.کkBL7=kɧ}Cm\tkQjݺV^H$rӿ%:h kK :"DKіqϏR>,8#Xyϳ" hBK&l$~K^z?RDU%A)O9) v/TYWe/t_>%~b^g5"hKq]24aP=,"}/S d?siK{ØH N(]7Tm^%ſCMʳ>[Oͫ\ endstream endobj 4093 0 obj << /Length 2503 /Filter /FlateDecode >> stream xYݏ1؊H}hh}OɒaI="%t{=ȓ!9ǏT_^շq*"* *u$nzmlPtnhlݞ^nTMiM7 Q 3tTnU({e,ȵZt$(~JPe0$P];,<2 6G6mcWt?VhY<)a!wk&m]vϭO,mP.ExSaP$Pu 8. M]u=R=0d9n 5醷;gѱQ Υn;js*IlS Ijwh.MU]3V$A4{ԑp2f"lzhU40* h:&,@kY9;vj[oiOܪ„}oN}'oԆΗT[aUsH}py~Щ Ŷ@ZmNKAid1:NOvbkN3MӒ@uy7zAhp4O"~1"uՒQ<d\p@—I@BK2q i@Bs͚I@B. @@J]heŀdA4+R{BpA!b 8V|*q14gـnp鸱WX&lbA;]*WLצD,n$h]ef ͈ΗA9eؔK飈B}>}DYD}EPBb^*#F&UhDUa1Xq/=p""Tl$~qq\#(y)5sig~(h7K) )Z?L,&3I 2> `韤|TL!0 |<(\e-xʣLi:\K1R pJl|^ׂF%{U!0 l-&GWk&&W[ 5S:+闭c/oHخN7s4Hlv2_S'&DŽ鸍Y."FRI?|KN|R&`ݒo e( }@jՈPSՄP R ݷ2j)Fw$gS5Ŭ>"1_ @O} mfEz_K) Uw+ '9ta b4'2b%uVǂHׯ߬ >hӉC|$ >].b/iEjy0yBzϼ@aX,U] =z9pR$NRjƮzk0dFY <^t* " ێx>b|9ABd *K ' L2/5J%333A^DԾ_|E㗍[űCrl[31Hla/"DQTwn$"-sf`0y[ggOR`$GQ*PN~^˜0 ڪ%Bp`Y om&xMܱ&zyZq -)Dl__mHk >\uzc]KX>J9[旘J}dLl dkߙMm5m0 lUdVw/rTL6p ͔ KBs%]cs})GTlAYn!ɪ[Ǻ_Z)ѡO,AHc HIgebc J ZRƐ4\J ʚJnKt ne/',E6RB/.=\?u=u#f֓Ǵ{/U]Үʕe: ԯ|tstP\*ƴ-Z>??;Ѝyn4s_6.0,?фn{S54wp_qsW*ɟ Q%r%YI٘^ɤ endstream endobj 4128 0 obj << /Length 1586 /Filter /FlateDecode >> stream xXo6_!`1+RWԮ֢}iFcatl#$Kܤ 㑼Gu?=_=a<I\QLfA 2X_gMmzq8{ottk;g3]_湘D9ߖBRev_$dQ 7_n|rX][5ÎU$j\uSUͭ^J x?ѐm9\&({n-EGE)xIk?s"b18!6?^ Ŭ4ؚ.Jo*htjUO<|3&ՖTjcw~"0>b{5_HȥJ;sjzm#a\).Ctm9fe] M;Ybﶴ:-Q ,I;&x}UU_m!8K0>%**/Pџm]0`hScҋ#d@g@ֈTfg>0W?T2!!huVVzǾ\$UfAs߱%9aN:I]%1}!l+-"c>ŐThjifaٙ~mYࠪ *#CGNJJ"KbmՃ."|Vv?qǼVZDp@/yo @fO˷ob#F1P,`b1xێNR[wҕ@╗AW^"vdY_yV2#\y'mvՋ(Do6KÉž uܒ2]Hu['Lr!"΢HvRk*G:rP)TG0uW޾|ݫ9I\7 ~^^.2 蚽_'" &G2g2'K(1s/\c"X@gK:O)V9g VܡV;]0=],E3Ytkτt㙫yZcl 0g"(0\[wT|nW=@\r؁K 8YݨfxxHJOFdu'dާ/8.\u U"z{n;Jg8X -v3Xuexd?x[jLH0d< Hd ZHm4wd"fW.kDO}VCB vEYL,~ 2PX^O?$;ɦ^PQQdxL.PHTևaJZmY}Ew<9J9l3,{(f77F A'm_XO0ʘNYpa=O=rƮ /(t+> stream xڭXnU7ߧz~mKeW Qm DJ(B_HIgƭF!v s*{lP EmXAx154,>]Ce2xpI!k:jM PӵAҁd5AP<Nı7T_{\H8 (j8Iڃ.t\BK ǒ|t: OBʴ­tBf 0iHJ&(Wp8 (ׄ񛀂AAia% : :( !GHpdXn_{1Xk:&->٠zx&(]|Tx`l!=xXh= 0ܖW< /8?]sӻ7oNI~:?Ǧ0Q+(|})xB>jzZ^µPoȓpVzGi9{ݵWAsfD@nfT޴*w[$51ǭڪrGj8 @ZWZ#]6>#ܽ'IMrF)9p(@UD h"q1UJ0A1+ ;KFWLEFmQΈbӓǪ.8"{ bLےg!mm'VR%>x "1V}=ްon_Sl_}Ms滶4 3תusk0lvL KCq+L(%]t *c@w]O }t15f =udSLb{D5.<_΅a^bH$i=\`jZG@`M0uwh֓0pEIjƇxk 4ݖtJpLc%a!Uh4kɐeZk JA$ב_kw3qN{̻>sw{KexK#ayQx&E{G2ecYL*Y1L2<-<+:9f>08 m=ͫQvcdEיι.ϊƵTdr+hÔ8~C.}$F8ڟt;?@ endstream endobj 4180 0 obj << /Length 684 /Filter /FlateDecode >> stream xVn1sV(utDT {mF{p12`$hhE9 _EYf8Peqg2!M/g)kA[ ӗ>˕J%1n7$W4uv,b]G@窶wO,bl0e endstream endobj 4222 0 obj << /Length 1145 /Filter /FlateDecode >> stream xWYD~_a{p_!Kh]^X=1d۠[}J!#Dp|+ZM }frb2RH̟v`~H|֜*Ok s5EvW&0pi @UX'nMQњ Hs .ƜZ+F~Yi=%y,޴ݩjR%QbDP-ޖM;JU 1^.{2ŴzV{ #5HP*'G{s~ !ewQ`jIj(&чwU}lfIR3~TVt˜*{* fVE۠;;(Ѓ|OS;w0V._Z6]Rmmacڇgk+?!xK^!00{Ev#H$?I;;{;½il{s^^Ӡ2}\,C"!H>36Wx endstream endobj 4177 0 obj << /Type /ObjStm /N 100 /First 957 /Length 1387 /Filter /FlateDecode >> stream xڭXM6 ϯ/išE{(b+X$^fqx^lsq=RG!/I,(hn,v 4BM&BK֦+Q3R- !J!CSshiRzDKSQSo9P-FR#d]#h-H(rH6]P$U&!S)QF҆81?aݹs:>)r5iQxǗTd(]u@p4 ak)I Z:MLӗ"T$(=2M}iWnIaOpznX\hG] V(y5ɊNBj^La cуAR:X1.`"p@8A:Gkh SVuk6>U5Au`Ur#E K+;o F*#:;yNWF8$2mB"3[X=}fczs@p| ?M_~ ȍ yãG u&lܱ=:f泷U$a[9leʝM#׾2z  fLj>s 37Ɂ&gZq{K/WYfP?k%;|ݛts <ڜKJ/xVIѻ fO޽tǷ>}NGx;pWw:u?~wspMu9_˷9O7㓜xG v-Emp CNFQ'FViHdiQDЕ38yԱcȣMuLZmY732K[􌙣ԭ,OlVyMCԸ}YF&6LWm+> stream xXKo6W,Cׅ"E($u"{KӃ,qBr.];EO=cf8ofV׋ۋ4ђv1TH6_./Q.7,ͣ)iZ5;\dm\aGQW8^"o^QFX$P$atai8v j&mPItEDu78؁8*< Q tm D~ӡn=Ŭ[S>!}Q=ЈE1:ӄ#"/r$:}$z 1 t'^W5뭩r|j1mL@ z'r#Ύ"_;EkG'^X/\w} 6r"WX{뾴d^fiY:Tv6($JdjW2Ӷkq&#.<׋3' M'$?39Ri/LHB,17n0=xY?ۺx^`uPSUۢ D\Sx-}WTYB6 u RNp4.y= >@2+?0*M8b^u1ǏHjCiKET2rxĹdA p&O?̂q`iKkB 1g蛠 .smbAh|K\`sؘ 0 1K;d^UݺsG}ʴ3@M{?GYJ ٔhA> lpJÕu:y'XkPYJ8 |CIf޹ ݰubM[W'+ >_]q0Duwp1@?SNs/Ur ! npZڻDXV#I2I(2E&1kp^E%J@e'Dm5 8L:mQ\8E{|&Iy+TmNmNkF"nY 0>`J)_83eaY;78$vXBGchTOߵ^:h!H1܈@C?OlL%6 4l:ϙKA->pAWT]}q2\Y=d5-? :PϘ) cHB BI`Qu3eBpe;l+|XةIn]%4k/E2DhHܥJKs+3pq!//h*ڶSkGm`=/j ܆Hj%"Tcrq1+" endstream endobj 4331 0 obj << /Length 1266 /Filter /FlateDecode >> stream xWKo6W.֌I!Em-6H^=%Cwd)V[/8* 0ZALbdrf$DɂjӺybQ3/8~4iT/LO82f @uPJͯW7z!Z+&I'y W:V<-ck܊Z$UCLvЋ][c*K4~c^7β뵌 IхJ{ΖB&6GDܠa8VnC%8ZX4 B eRU(l=6-N A}Db):cS9W`>v :}HZ}C6K8 De"!bP\`-bjd).$Ѡwk{Pq(wnZ\uYp-9"MZř4\(gYM\)gKKP.~lkӀ;>[CbIYW(nldѿDPC⑮Cԣ2<44fF; Qy`~[TݣTT`C'%zzG^YPKHV -3r]Bj]*j%tA0R,(PD3\ي8huYR~NgM$ܥ+>*'{3g$1Tɋ4U4_S?<~^*(pJִsncA#O>X%ONUZ3#@r0K*@=+/"(eǑP R1(qfŒs FvQLҠDSQum1#̐aT܎0z3'p;46f7hJ=ݨҊ̚ ky o(xOVw|wqњ!> stream xڭXMk]7ݿ__ь4,]!Y5YQ .9 i6zUTUkz:>$\xQL V w$5uX4/7~ڰA k“;Mj# Y;3^ 4 wh'I;&)KE7ޒ.<ܑ^?vVN2zE;XYwUr! ;ĹRC;N!-S *L M UZD"|ѱjU^W`Z6%j5 \gdJ1[ffe'&܀Qz*âhȮ-6Jv ZpHy.3Du zZFcUt(  faC,8bs n˛tqo]r${R=KTM0a *>޼tt|sr~xpo? YzקO7??};\O|͗tE9t  }}ǣad`gCmvܞ=Q960->WU`h!p~Sx endstream endobj 4372 0 obj << /Length 724 /Filter /FlateDecode >> stream xVMo@WAx/(HF\(4FNQ=޵VKU8qI3oμkrH4hAZ yuuu1ǔܚM5}nVf7'*2Unx۷((dceCEJ5"0O˞HP >i]m\LbZIsZxe!ٶlL ɥf@f*s L4?i´9Qq5Stz/& T6sT*wwhJo(un@cFmšM .;ΌR{*|/BuI2L$DlM`I bpXZ׋#' e O Dj`ڃIf䎅{b=;хQG>}ڻ@r` |꩎k*uG;Ml~F UIN ('@|Φw]v+(s_2v$[T{Q v wswUifrX<֫n;4=+uep{so=7:A WY{rmo=h_e}_5r]E{*L}v7V'៩Y>L ]jB<5DKZ?hm]fg*=ho1W:gO{ƞ hGG 9%4qäPui9 RY) endstream endobj 4406 0 obj << /Length 1379 /Filter /FlateDecode >> stream xڵXێ6}߯ЇEE7"Eh 4N Ym62e;Pm' p8gll|ryuh Lx,7dQ'quWLST=|;󘆯IAg, )Է8n&y28 c^rE} .&Opf{U4oT˵381 dsL us!ޅ aLL{S9DJQG*/lZh=vS84=oΦ:Xm{2-&#Y_iSǵ+QF"u'nTJX+l0W6z{}n0イ"6~?ayRI H:ho]Y jAfC#Md$Zә5>[JFS8m0\$ l~kL<9yG E%dX{P?c&v S~SN{lKy' JdSF*@T&82"ez%.ܺRGQ__)[8[;ugSVA Yanp caP*NcYUhh $ۜF`4KPRfނJDŽϱos.D-~]" yp35 @gQXxIdo1 ?tHͱ6KSÕ61MLE/SDB%F=f[(au*ZcESgL'#4K\+%4< ڠǛ)\gڟ;!q [},Xy;R|635{i0e&̮h)hw]2PǷM߳=6U ӾMqSlv}a8ACuvPbj~ڀ'9LFN>M4-4GPxktQuX4~N6t5u9GѸay SFkLOGhy 5zozAU$-V_.X[F3=Φ, FV&Ty9wZ`QxuyfPѪu?jY/WcU W pAl+?X'#uJ2h Ѐy ĵzkZdm:Їaf)PRO~gR}޷Sxt0 62%/vߝge1E9?##'--?-cu endstream endobj 4369 0 obj << /Type /ObjStm /N 100 /First 953 /Length 1391 /Filter /FlateDecode >> stream xڭn[7z >^,AE[# A\}$J5g\R%R(9PZ=6R> #, ! %]Y 9K u_<)ZL'e,iℚBo a ?9 W'Z9 izQ-j &6IT?goMJu&Z&I9ue7j3aC5CC3GӱjH-Wb&u堒 (N*?L<2?neTkpn!Zk7^[v+Gw;M>A5սhɽ(SBJ`d 3I$~ Y&)s y xD6&*nWE|/L_T V#FBpm #y*rndH =T'J&hǗr˝+UW֚_wU$_iMOM' IjnD_~dQ)䏟?|x{if)9ܢ#562KEc31z$,L>Fŵj)M)U9JZcYDUME(_$L\b.6f|$v$3]$~|6) 3҈E-5ʲb 8Qj(1,b--E-f25#uIloik35YdێBEM?T([%P2 u"dU!Mbm@ m,E<|rp v*qGhjq>YH_pu׬ 5|9S8z~6$Z[oWCէ?Mؿzyo_Ã7u?XrxԴۿ>~pwZ&KqB%l@][_]< 1a'Ze?As6e9OVcf6CikᏄ9MemG 6FDR5ɵkL)/2̋LguF(uUI![h(2kwV&"w)U\_ָ7oR}Jg%D-3(JkMJZ&)ˍ>'󹺸juo_n* 9ۜLk=7fkـY!\P6cipӪW-X"7suaϪ=[,f@l84dVEɯWoˡ~ \rQ㟻ȿƿJ92/I+牞=Is2;_M>5K\lE+n;# m5-O=E"3RڪdКl ӞR/2W endstream endobj 4460 0 obj << /Length 1121 /Filter /FlateDecode >> stream xX_o6ϧC̒"%0 mEu()a)wǣdu6tM'wsƒU_N^O^ 3Ie`b(:bq"=UΣd<7v.v"thܞ﷉B(7'1L $.;Qb6mO6:ӭXiR#Lfx̗ٝ%]i0ӑC2\\pn|}k*za;Ƀf+{ ԛ`ovUi; `)֤]Q[Vj4SBw0aX ĒFC LĤ,Mcm3$mc>eMܘ>^idI)%eVP8h8#o1zmocdm!4~.loMPusrg<%0Ïg7$tqZ-a q%1q]XPƆ`.<ơ"\L3X]բZѩnKx}Q.̼1fEӎ6u`& $(ĶewEÓ?;Rvmth^yH?=rw;#7%}Aok b_Nqv"LZlK4K'y8t4^??OǝR@4{̎Hy]*곆 ,.Ջ _2N QwwZTHl|l͙TL7 SJ>oMM7%tV|1ޔ(:ܔ~nG70M}X\D:o|`8,j. 0gD֕^iWW█lOk%ogeI"H{OE><[;X#Ec˝7BD=E;BúE>CHﮯ]]Od__]%atCC>:E'ѡ%h(C7t)v) V endstream endobj 4497 0 obj << /Length 1162 /Filter /FlateDecode >> stream xW[6~_ԇaVݥ*zE*b̠00u}9 ʶ}sw0uuxxQD .]'2N$9 en\W]ZW(C^鏺OiqueU_ۭ.Hu0Fxs0pA}TN#Zih ޝO=8̍!焆HϗD*Mr(Y JF /փ5G3!#qaXi}<):؀!%Ѯ 83,8iRe(L ;l-6|rWէh%5}FD/*-f"f$c`_@Ր{rX&(Ik0Pv|i'Ic|L>ȏlA }) $ BE$Lhp"x4$!iAR"!p!$#ȋRP}1} O-(Zdk(Tܳʤ0*\pBHv2r)WpWz#f+1K_Дj  ¨+ݦMq 1~J3#/ٲ4lۧ![E3C;٦;"eIiCp`R[øf^gvR75)Qh̲mJO|fH3R8k # J|% C~RLA^xr88*o7x>~7*B#P(>EL h^  ɧSczL>CwYW=#K6> g!)i#-vj+֥.ﬖ%]Jyݬtٍ/7#V7o#GGNR6 oym^ԓd/[#׏<: Am\6\_ӁStIQa0 PK/Ctg§ |)K-nKl"^ͭ' q [8GxH8ݙLA DS䛛{9!],cY G紂tHy!!1 ^ezL`҃N?aJP8$ 5>PS{ xurszwaY endstream endobj 4457 0 obj << /Type /ObjStm /N 100 /First 957 /Length 1366 /Filter /FlateDecode >> stream x՘O7 ) 2IljТUBC[QU VH e` ^o<gk=Pk6/)琥PB j(.hp-H-\vlչ}M 9Jh EBPj0` fBǰY u:wS A=;T #iJ@eZd-XgHP_q j Aʚh*zu2V񣉯CnV&̜js cabaաΎbl _K;L%7_k0(ٙFQV8?vu:(u):.-MKo22 NH/&-9# #5a%4)HNJԙL-: Rk,s u-{&uZs}hȘg=18fCӘ1.LL4H? Z2,1MUSD[-̫2(q6\iCUS;\VKX!'T8gM" Ά}hSn"΢eX3̠΋7rii&K-m[Z9WZm"W?Snx& j|b#{_cd-*_TM3%mq{nnVnKg_L%/')s_?ysCxO߆:?xr{xmhZ޿{8͵ṃx{{oxCL/8eLNzrKp<lպ}l611&h#[~MknsM5F-6D\mx!l<)ܺHbX'.bil \=IW5z^.8Pzq nKʢjX2'\W<(-$1ݑǢb%Fs.,c.uNK22ݠXX+Ep>:W*"-6нǦ."U[v |SJYm-z=:g L CmК>*Iׇ phPcCŅ_*.*tug endstream endobj 4544 0 obj << /Length 810 /Filter /FlateDecode >> stream xV]o0}﯈K*-F@hxH j*M;﹮4Y#4&@qn> >F"-#IH<NLYg|.qxzmڹ;՘Pr! S:E 2680Df;"*Pfct׷zWWcCcRc.U II1N7a^@J&և,@$I@i{K`> stream xW[4~_Zi뱝!;bʾZ$vI9qt6"''sshthSBϢ>iL4Mmz2VFy9ɮOr/5+VRWޭK20Fw4ㄦ'la%qEwhsU2*Y4ČCJWPKD& $a(xW \9aأ{uNqq6*~ayIbaRݳCg`EYtO; NiQ>ӔfD|^b#I^(F4s}թuF|U9E0ݛ#\ 2: !Q]#3JN8R[a1@gfN( ]8/K7mmKy{ M hF6AWo?WpNVaM]fUzmLPgd:3wȿ3KH'k_d>MrL 8GBc=Zoc 9 HP[ ]#REu%X`zhw+a_zmzYM|d5Q@xq'5.r9݀>.q GplzT]8q~^(gi?o\ә ,Q,pAH:_qAt\ipgHbuZU(2ݹpxO9ھ7Zt>XG 7dzFhEcӣXh.ZVӕ#'E $:h } %iЭQ.#C:z8wY=NFa?č 1CcqF"<(c5~Pˑ: -<\^sأK[S{+u_%IY"?; _,*>gÓE3%xDAG?BÎݣ:n$FOd% endstream endobj 4541 0 obj << /Type /ObjStm /N 100 /First 955 /Length 1358 /Filter /FlateDecode >> stream xXAn\7 :F"),E[# # }5q {9$HQ#IiEFZ|=YbaOVHC{$Tx, i%?Y h6c12.:$o^XԊ Yn#$* . V{Qz%Sa_Dac{ P< 2K 爱,|/| F.-VJÙN]_oT jmx_񪷈XPA=QG X@/ !rxIU W V Lt4M| x]|d  [)K[&(ʹBK rl Ʈ@Y:ZT rMa_y,_^`p(V30 b3M 4pV[09AE0,cȃ}Z\5{Hz XҊxW d*%u Kg)sm >/_~ UQ0xO>yreejVmZe0Ye)j(՜k CUFs쵣NS]>NbC۬*,M}ԨΜ}AY9:AnJ2sةoY4MeJQk@xƬX, hUx hՍFNW٘l4keZmImٳZk9c IS&Q̒+qRFq>4]Փ C#g)2ҍL8̻pB;DIYFk:A'p]_ݕӲ;ĘOdf "Oi&ƘpM w7ߕ{ܕk/.؟~D$h1ןo>oȒg8Dd7/p\x & GRhs(Ɇ=ޓ|ϺL%+%'Pʾǡ͓WT֬2)^ Fڤas!ҷL=I'\nP=qAŽR6S!AǶDbf'rlĠՕ%b%lɜ6XA3%Mָ1ϝ3OJLմ6 &01ɖ M͎fqpjLWń>M6o,S>k* s|Q+{2hPkapy|:\kgܫœ2*-sz#O04[(}/ $?B)] endstream endobj 4617 0 obj << /Length 758 /Filter /FlateDecode >> stream xVKo@W%Ax@H}4B95JQkͦP \w|kFx12`$h:GF)MA>L]q1%Tṽ Mxjv="zhԾ ヘ zB~L?p< Xp]E 4%(D}-jo*}W%$hʋtq٠yGkD{Z]ė"w P<E8&b5|eQ4=/lYY 5@H^w\aiT r j߹[v:<~?32OE5h࿲[r]sqyF .ݺٳ8-M5>fqiɢ&'وaV=h_IGD-"0sKUCw1HK:~ $MƼm1ӁA%aOixt:0 endstream endobj 4660 0 obj << /Length 920 /Filter /FlateDecode >> stream xKF)ra"%Glo&R$琝A ,ͷO500i 4zhͻ6%VqDp"ex]M%gW5Oޝ6Į+<q|zCC[n# 'LQ"wOSV@*kt(5N{[~<a98YQq`5«upMS azo x( E$+ ʪ'\g>Ю7k:Uܛ}VUУ;61쨗MdK51EWϚ+)\ub' 16LoMB_dV_$Ogy76ګ{o$dHVuԖ FahCYU_æ25$ef,X05˒V3.jt|9aDSe@ Mc/Ȳ\TMTi d'18lZYJ$ JQ|-*&}ަkA?JN^לhDQ=ʍ!*c1\T`3K}!D9 r[#5V< ޸vQdb*Hw֭Hp%埞%|GEKxIK۟GAKB.<~ y endstream endobj 4614 0 obj << /Type /ObjStm /N 100 /First 953 /Length 1343 /Filter /FlateDecode >> stream xڭnTG=U}, .", HȎHU)-S?uK)PO g!!{6KQ 9d 9rԛ+ei$XYfT%.\ŔHh撆 +.F$nchcFNt<µ $ipZA  DY9lb+| њ$%utp@(z%EBEC|d!~dȨvf2Z\5EN R^2<,(Mͬ28(\e59-QѲDanvuWEfWEfk uEjoh8ijvAC\\,|-1i%  $] 34$4^@0L[& /KV_#$bo͇o_q̚@jm99D 1=%טiv5Hpp]30.]uޙ5YՋ`žD=o(^".49N|OL+=⑔ҏwN3vY-ؼ$dumpAӏ)9k+O*|7KM8>UuG_Am%*db/ MZgj~ WWxQ5SZeM,m2DR\6dよwo~>݅u88} ^q:D{`?~x~j?_p14uXhI9 SybhSl ׅ2>|i6>ụ+\.cSvseit(sљyQھ8[iĒvEۦ}Qdgh$g^+Vo}`;51璎Vs[_F;gL𥾤B%Tթ`K/;'Lto}mf벷gҞ?b]^NtB9wwV47[7e-w/2bUBEسm-c/M`=MƓO;Ne}kj3?4JW汛MSsss. endstream endobj 4700 0 obj << /Length 728 /Filter /FlateDecode >> stream xVKo@WX⒠z@H \(qK7U=lڍhR'o$IHxrpt.Hb*,6 d]uELiXebVԌ*/e#(]P tstΙM(o$e d6?gˢ9mwg@0`MRn؎u!2U`ޏuoP1l~ŘEeK͝Fu1irvL/+z`k0{-`w|SVb="p5=( T 3hk<LU!Rm3ݶwعENխ;נ+ $ȶnƩ"d& iTJ$p>Y$#X'۟WynH^ DX.:F I*PiQrٴxh֫[ۻyqqQ@(i:8T]Ƕ m}n 卺goa7﷪ݴ]ۊJJ%8 <UjDy!Q[PJl/=s .DGp MH`m?]ǩnGg"CL^Lg&:voէk#zA ^ EUKg'I(l}_\'=x>N'xS9: -Ej'lrE3 endstream endobj 4742 0 obj << /Length 738 /Filter /FlateDecode >> stream xWMo@W%Ad?PJCP$]R= @qfͼ}dI(y;#I&TA)Is?ʳrg /7߯o}6g٧}H,<#U $T@"-H8b[-pJZ"_l)e'RZb.uۀEx.%"`nD*'8xޑ:{ln|YeUPڅRT;C`4U>fϏcn8LQMAT&փV=L"UԳvX'.4Jљ A2#J&_bI=s2h%Np޾k_n7Y-I(p"0Ӓg*Wyr|͛r'jOB3 ܎8tjvZn&2ƾ9 -jշy#(n)k% ){}YDQHq:݅/ٗ1">pܠJ )o"$SrG:Q}*Sg2RMHI\Z8>CSEn Kj`> stream xWˊ\G WTz /3qHb0Nf}ΩOŽ~hY$7gϾ3W7'厈2rAʡb`mf4 X\8ԉ.[ځsB'^3Ьdk#(Z$#M0+\]r:*YKH:$G5v=Af{bSKA8?aˮ#Q|56kiT=s4jV [(10=%b4v^ré!C37'*1 3|0Ox<”xx\0P7~>ݧu::}O_ /q:%w yf-O|ͧԗ4ѿ0@[Ht9 <&WLfp C1nЗp#I|C`["8NtK8w8w&4bnm zt׎plJleŖCc=\.'hl~yWЗvN>5S5Lm>q=onSDkώЏ{֭!Ulub/R؅YݰkS!#X\m{16 gh|}uV6!/6׌oo(7Ϫk% Dj1MD+C Ku\3>wvC?n36S `,!Ŀ%RB,8w<5jue^w?Yî^/g /gO~ o!$"Fa21qͯQ,@A/4TqFz7}C=έ'%׶Qa| m\,6S y,  endstream endobj 4793 0 obj << /Length 1003 /Filter /FlateDecode >> stream xWK6Ћ\|?Т@AKEBBcPdahN=i4~A g~zrd$ٮΌ@Lino[7TØo *p~v}xmkmέuнEӺD6~-5 \!MIVPD8y< 2ghCpnypq8@D2dWo_:e3M(Թ>,6WKΞ&qoJTf !RGRLӆTd)&dXS).? 4qn*l$4as)QB4[2<ڴ1>YL^DQ ":ɵ=dh f5 5:1TΗ'sL`)DlPA_772\?% b"):m s,L!)>LRV+ <J_kB#n_86ubp$2 6yv]T9J 6PtozqFs4j ;@3>ޖ>Ztmb^SiN@*3J:@j EJ֒yqf+ IF㴟*+7wuޮFl֕e^`9n.nv6MyQ{iwMtnbC T1Pl`_;]inu]!Os!cj _!"th+2D񿋳!C24hL%Ѐn"OO6BET8HOby@.++%:?!d4XeQO[-*w+> stream xڭX]T7 }__c;v-ڷJQU ,=̠2{r8+VZS/2,hһ nB/LkE4?@PЭp^tR `e@b=-PK|ȁ7&eeB^ ~d- HquH (mB5h`: ذpl'$mpJAs퀶kt fa1 12G ,S!ii}$k!y0㨽3f3$\ > Ɛptm0bZ^v h[5`A,qX#X06S*BX4CHJ!)>^gsG 8[蘅`fBas'HI mk 8 OHH3.>v f} ec<`_D  &9,( ޜquoYq mA"0,8Gq6J8o5G Ɉqߘtjq9p|Z^"9HxV޼7$R]6䖒!4oiRR#RԲI ;޼"YsGrZ n"+ShiF-ΡI\T2uY|ՎlIQhhg3C]!xΡv R~wVQQ)k2Pџ*J_3SwaSq+ZQD37֒EK[W_iɎCD%D3{ԶQ8Z>:hI4Gr_:r7fĊy {{_nnMmф1C\8ЍO0 \Ù*ݽt_^㳧|?Ox=,9]|qO>{}zkocyDǤ^MW(|,ѡ)?L\gRA{JCn*&ViG C[)|[ A˄!w C 3M̽)yЂn#kV#jrԑƬ|a[VϤ[kW5Ij=}$aHzXzR9Q+wr`|`,cI 4D_g34Hꔬ7F316::1¸@,:MkjM*%Dρ˘< Z l?Mg,Gͪ{204dv:N1[ǰo kE C3?SR՘f2 ?Dvn6!q|m5YBكac͜g,]Q}2{Nfa}_ȚqfQ %svGƎKm&boɡ endstream endobj 4879 0 obj << /Length 1569 /Filter /FlateDecode >> stream xXK6ЋF\>E) $6Y&A ZW2$9%Σ@z+K g#%8D#<-PI"EBdJ^7u- nQg;ӴYfFTjyiŠE 2{;7T'",ڹD$9^Ǫ޵ek]0(05v1N2FRįVr8Q-1"K" 0D`B,7IdӺގ\KI Y^mt5]DDxn؍& k{/1#b*)"Z9RJyeHV"W 8<8-X'`?3)wE,G8i"t 1~yN`AED.@Z)?ZT7B!`."!_tpC4#lsVGк)!sEv/gFp YM̳}20L~xQܛ!Tg:Vʊ;9 !a%S*wn 24EWV wp#3UFaы|{bس /L-XJ(P$Io]oO^}ۈjH /v݄mNMFD>heb<c6 j$տr"bLEe<-觀Ԣ¢P!@=:qoV(cYioHe2eY-9B\~]D91WJQ59VAi1:b]',[eՆY.,evυ [ﰴ48 H*r҆zіQimg=UD/ a: zƆȑDD[߇ l_r~,6A ]p70bߚX 'zFLg)Vڪ|,un׀Qgxl/4eN %;sϻ~}[`!^"J /ryH Y<&XB(sIwj}zױBqAV)ψ "w!Czd0U*zf_fSi|!mH'(?~O!cH(9baaKvF0(ԍ}G Yc5,>87ヱ3Fm4Fy bѷ᳔yXoW˲ E/XŻmzmyT_j?|VTNC@N+(Ye7_kM>(f$(-xz~f endstream endobj 4876 0 obj << /Type /ObjStm /N 100 /First 973 /Length 1392 /Filter /FlateDecode >> stream xڭn\7 zDR7Ȣ +Y AQ ҷGL^`i7QǺiHYKw YB gz. MJ y U .J Uͅj&s܌CϘQkv]aMaLØ%Rk˪.$hP(⛫X/-~oԎ4wS&dtpcqF.k ުN伵56ZMm:`,ɽ{H-՝fH3<*R58ؾXv XqNJpbG5z܂onHnL6ia3[G{Éyl%IνP5g"9'ސҘkɖ=Y'[ak 6l7$5$ͽ mmf P!<8MŒd?D'،pM6wI 8 (77*p_Xɯj#tw?~|wxyԘy䈃kQ `Q=4iWeR4i5h(BSQHTMզγ] me}1mi#&oS]z$U%^ۻ֘(n-ZIbhмQĞʞjme\{Լi4潺U#eREwubױ yN-f2 D?ZTKؖ1G{鈭P.jV.7Am|+-evcYд%Jxh_oM8~pkw%us839tZOh{POuS𵝵}苻X4oM}-.3\LW:hh*hV"6NiMu./ݬ8*. ڲ_42?D宰C jɱq)M{ -fV) 8])mrGSm u&G=#?$-칅8c_HT[G @vM3큯N.o6 זE eDNsDahY?D_Ce*o[`Nſ ]2GyX U-6|Ck\9yr9R;O6ȫumr]4&ᢑ&Z;d mLZgHnq ݝKm_sCl ܑu<ɧͻ endstream endobj 4938 0 obj << /Length 1261 /Filter /FlateDecode >> stream xXYoF~ {hQ@V80Ȥ@v3]^Bq&T%>)2Ll[]vh\^la}T]gꈗO/LQ>a8phqxp F .`.<`)B!_'A4+S!*1k#`(To^㜗c;c&03 YAR4/*CߣЖeER3M w6!&u_4m$o?S_/Md_'m8++ZTY -7ȗ۴ M<_;XLhotA1T:`>ڙȋeHw78Q ;3S<,P}n_K3{{ȳn}+C!K7ZjQwaUy7>~.4?R:/柖8X !DP:I7ynG,}y\v*w_Qm`ԏЧp64-4h$ endstream endobj 4996 0 obj << /Length 951 /Filter /FlateDecode >> stream xVK6Ћ\|H| At[("1zȴV I>C-KHԋMFF?{Lid\F]d2"S)If}f(R_% ŏxlabSqvBw- O=M{]|1cyFtU #i>z|Bj(q* pXK ~ ߑdL| 36a}g10B`(?qbҮk> ZdjpՇ?/ց?\5tjq^B8].IqA7  2b`D1ɀ'4GDh|R8\'s[mDxxL@'t%YJU3=Z@W0{2UR 'e ݊ sH㣴%h;k>/hB{gA8.)ژb"_(I،e|m$KSHoejBwmJS[쐮߮ަqqxla߷E+3 gwΓ)<ހ?`zs endstream endobj 4935 0 obj << /Type /ObjStm /N 100 /First 977 /Length 1366 /Filter /FlateDecode >> stream xXˎT7W ܮ-X$hva@EBLD><݄;,r=ˣCCeo)$Gȕ(bQ[++ +\\SJ>1ZG V"&KgJ!J4 J:ʰ[+Ԛ` 5kiZ1 #ya8G5ǩxE )gytaZjqذT H-Ota;0[.H 򴁵40|wp0%Ӄb-4@(BTl=f$k6;|ZCIh搹1#TrgNrܠ3ČHk)!6NAE$$-B˂6Xllx(\k(S\irtRF\0% k ! 9ǯ0\qB@Ill &p,FB!!=B6W,R-q0չwQ)AZ 9-?~xp^ݾڜOon޾~qzsWsӯ?]yؐy]z g05 hAPp!Ϡd@}4f9}whTC@M0i]*;VtW4 g0VM%6M*UA>Z_V;BVVDw$oϱ*\15`\U#6U ռS-jިXe]yԤ=4WHqbT*QN37`s ѪN65$7D(>O+] rSM#[/W ʣʒ.W!$刂 cUՂ7Ue\h뛑Ǫpiɪ{ nWMdP{ aKG95M >SfN*].)DG{c|֖ۢP׵)zU[ ٨/Gm4Q$Nwv|~.K *|v7mM!AX6M 5] o g-٣uAk9&8f[ˬ0#žv|;|5IKxK;ڶ&<-K?8zI-^]1cflVnIp!ޣ >pW{ ⺒&a c!B&V-~?:}h״2F=Ղ+m`LdcI4xjqNb4] endstream endobj 5034 0 obj << /Length 858 /Filter /FlateDecode >> stream xVKo8W^ThQm6.l{pmVlߑH۔MY=4<>]]\^ RXb*8`)a (fɵoo>ӒI2ro] n)5,Բ zT /P teDSKF 0P cŇyq[R9yFD"Y(4F06{~/IQRsunPkq1Nk5\7rLXrǎToU]]Nj2KQ쉾@i E]Uˣ 0e4W2%8chX}FwQA?(ЪHrJc+ D$ :GAɄnRu.IT"[m>1R%nVۮlŇUOkP!"s8'p1#26jpm]}t^a;tC2R)VUCKQ`Њ@MBYzl)E[s)%OR uBbOnva)AKx}QA;#S[;É*YIxhEo7 aڎ"LdjdpFdi3ѫv_-w`bCKdFU@n#. &^q_p؈q#h \HJ5H> stream xV[@~_%svA]+(ꋊdifdI&Mx|9omgOgs Z,7 N"9Kc:[Bd;G酹16uߙgXZ݇&G /` xy D'LޙEp<^|uS49Չ ւQQ JြWTr60(%  1&$#(! $w)]=вS |: .L 0"'ѰE'\{.t4|r*aX5E|BL9_=*J=CxySDNԴw20%3Yŵk¨ĝh&E4m+~7f^l7*GC~N094D88=K6;/.MX]If8ݙ`ol}. ×ӓ4uW 3?{}a.P qΓdo/C T#k PO[_HGkVQHw^QL$']s39 MD> stream x՘ˊ\7zJUEbf0I&iBx=N$& {J:^R$-P`%H%ABg2Bw$N䠜РuXvs N ~t=T-NPh OaU: oPOsu%wsn6t>8aɅF}S1,Hln!57 ڔfm50vN#Udd1\BvS>ZȢ@4xX^!ٵ*jpVeu]1 8g6s!s pD. 8Wu.\CZ i&aurmv4Ϡ)MjnG+AuꌩjB=djcDN4e-HY3:rLnP3svb !!T1#P3]۲L<ԓ֫,gH:% l[ Nxa=VpmYGXSujfl d}EEkK9kJP/ Ċ DӻwoϞ],=R$wYGa9)"I:T.*-}`RT68g-v]E+ڪWuћ؎"iּi³oW!wM8J/R n[q+j[nMop폷}]24ЕhAp7UK OdtIF/,FRcz"go7\|i!K,Q?ZJ5=*Ac 8XAEhy5WܱcL{ЊzEY_n]Rj"뢱| d}RSXLj.h,,{^֔[tQirE쥴 GK,h38Vm~bm8bVL͋`5Ehu? Pd;cqTl}fƱfND4rf X&)S\>H|C<^"/kY4w"q_ ] 3j鋅.J5g 5V_NZ7LZ퉷'\˓)},_:|n~fbvЗ淆4E/o }:\<7Zx-FK&8jl׳iYD?,ִEKc`-XT;/Vۢy$&aÞ93ۘ溍kzXK1-2M77Wpo endstream endobj 5120 0 obj << /Length 959 /Filter /FlateDecode >> stream xWID%A8@O#qAqW ϫ*)g_򽽌}osd$f1̐:S"!xy>/#tΩ;mp~;ۮ^ٺ/kCWQ5uDֿn~#{j2B`DbĴr*_Ug&ӀVrǎ5 _Tuyl<qA3~Х3.xg eH19 ~МejSQm$2Z$ _F4[H,b<۾->aR~?]%0 A\ )"r8v .j2. 11CX,7HK\óMq,@E*(Vve[zWAEF}coӁKEZc+5%Pl QŮI:r2##I9slN )ަP2  j1 {=C |y \!MI 5SIi3Ng;Ыpѹ(UK\,]2QpcfSТKx3CcD'XRS endstream endobj 5161 0 obj << /Length 954 /Filter /FlateDecode >> stream xWKDϯa4C !!XvONl HH{r]]W]_IMHJĂUL%Mb%(AmH)cbUW]^W2e,޺i{q͒rw~YZ@J.[xC e@0]h0&)S ޷EݭM RU$ã BL,A . @`ۻvǔq\ xNÁܧ4]Ĝ(9נjuoGVT4NqJD$vTrr&T6<*9 dbSg`+=SP-Yp7&X͏TXaT D뷮͛b=XT57AFS6 MbT~KL>byTyIWE(f!GA >AOxXi/gϢ,)zjUxCM>S,Ap X${<=@c}y&!6s+Ksn|  r;S [XZ3_UpiC)wٗ 2`y> stream xXˎ[7 +ħ h,YQ2EfCy4v/΢+$u(Z{ҊE,>LO-GV`|^֊r c3YFoEzEt-txp*xb. #FOihqaX+iP/,8D`@H8 k-¯ b=Ea XjAtmt0ba٢ ,DE#{dB ²C2Ę~($vvmQ8.  gWM,v$TYց}p K"d5xŚ .P4xŚ"SCDm ϊhEpES"{ k[pupXXkC_$v;,f0Kܨ`X+{QFl7vh!!<: 9b {icOGBfy4;UiʡQ3I#|WOE [e߃X=J+VnŁJOyAhWz^Cjܿ ;jÒ'U̽I6\5-5 ?_7U_Kz\s|6A=[ Po}+u|WDon-29|ֵ"/7>;t}w׷|.k E ۏv%RH:]G>!wWçlvl36`}1nE&5Zxϡy@l-qæf3iQbв)>oz>jIt8a(^1*s0cF}ʣkJ}*S;Y9> fuE45͚rL!=cSO*6![;$ր$oJ!of=GvN[Ya榛8Fc&c)5e!Sb2t`zOPs033{s`vA-NNQ=>%Ңkex!Dr*O 22ԾyeLޕ-!^Yˉ>1YC91_΁/MLr0Gt!eJ\㟍$:1zyf:&7gs/LN$E\^F|mEU O+D*R%JzA9%5Gs endstream endobj 5212 0 obj << /Length 1357 /Filter /FlateDecode >> stream xW[o6~ϯ@/:_ԪR9UtT%JUOuDXPXh}njY !7/}b<ߌ؁w˃ xhL0ʓ(r_TeT `w y0E1uk*ߔ9B`W%*ÿe$`MX~AE@B%$L~`E(G;h%x~-Vm]1~bk1˓ +1Y6Uaʽ63(nߙvTukVi- :RvE)/O%!ΤhfB2ҽ 9\MrBG.+qod הDc^4J] k'amqঢ়Z;zaA",ҮВ+ƴ&A%@ (>?BMXY!rӘAcfbb]ӹ:ޡPV-ݚng}pmY HKiPZ=JafZK.Yr,qƗIk=ۣZKC)*c/=ѷk~R>#blVb-h e*єeҴg&?ʯr^e߈ My3ߓeKiI:x3Mrҧ][{K;6^JhǠW?TF޹ouW9SFSFM[#E /mRTՌR׋$c;j+㵾\¿q/yEkZ&u6PX EU?'zX*wVR)/N_|)?3++bGi\qrO<n;-r2|y/Ï6 endstream endobj 5255 0 obj << /Length 639 /Filter /FlateDecode >> stream xVˎ0P.)HU5uafkcQ7]qsOl6|0p I% 9AJS }N^#t3J;Yeږ#6_7aСH>zWqQe_CeseHiptfSS zNpjuCKחi-Y_ bbE!'F}ϋل:"K}ӮwrwR 't{`܋z\Ӑ7YD? endstream endobj 5209 0 obj << /Type /ObjStm /N 100 /First 974 /Length 1416 /Filter /FlateDecode >> stream xڭn\7 z(R7Ȣ +Y AQ ҷGm؍i63-P`ſGHA AC Y * %X97ĕQ'BB,P;'9E6] ?ɡr@PL~baJQEyԃ3)( [x -)XGr1w/X.- M+X1ۼJsڬPFmzټ K]{G,g9Ьjq(YÛ#ofoHߜ5oǜ7v6겄e&-M4V^h=۠;q+.-8H&Bvf}FH־9!+ TjWz-׾#dغxymt51ڞZ7+!]ex;*?A7*[L(yٶI7ʛ.0֗> stream xVnP+&AxrX@I]¸7EjGSAqةi芕_gfμ5%KB|4IJ85/XJI2%dz<g鋫ɱ^$Ex^AѿHOcƣZ0Aɧ/.sW endstream endobj 5329 0 obj << /Length 690 /Filter /FlateDecode >> stream xVMo@W%Ad?mHp `9v~}YWU%o5%t&)q4d$NA)I u<ʺsJ$㊎O_UkO~7fǾ,I|e* |};8P%m]kP1]Ya,΄#KղS ֲ|bu)e$r`.1W380MM jg0εtC^oweFy > 0QXva:ԻY ^b*x4yS'LwCmk'_X>W֡#B݀4#Ôpn{}tϑ JcJ{1ߣ*pJGժ*o{Wt-_E jM\֨0 Z)њ:N@A}Wƶ u~K&.:wmv?4 lRB`Mt˝q 3B<1?4w$l̢q3' 7{zE{k; endstream endobj 5290 0 obj << /Type /ObjStm /N 100 /First 973 /Length 1352 /Filter /FlateDecode >> stream xڭXn7W $ 0>"`X%ߧ5$aalp~9U{$TY*^II58Uxɤq% '/}H^9>钪+;œrz ,dkj1Ԣ˜ԣ@ro X*Ҩ$acT8ZJ*ܑVQ,sa!^ VKOBaʑ`Aij#02W Gw7B^j@HQ[O*VF8s~Px;DMsQm!LACGјsf52IVht s]:@d@t$t2lMј`Xk"{eUccH)'37!sGx-N*LgbԌAH`oG`k2qb!Xa`<Vjc #{s62@~nM \4\MGaع[ Vg|KL`S[ަ\ ]\/ߑӯ@L2b^82S)꾍l<#9=3bY**kXFϬNk.E(9`o 0lVˋhijluUr"XI"KE2#lYf%%(dӲ0-рfUQ5آTph}'n5h[TǼ<676,$G"YZב.Z\I"iAC6}%a^4/kht{]Dhbޢhī\ږs ])QyՋVfz2$* (ψ=e"7 *gŦbx~|oSaP0m?TֺT<QYOu gOu gOt 9# 6zvhId Ղ<тT `EU<ݯ]&޷D D(SxN>ᾟKAVY#Pqu].h f (@1 Zb1j &gAnv endstream endobj 5374 0 obj << /Length 979 /Filter /FlateDecode >> stream xWnF+tQ(h.D TBTE*>wH{8EJCιs Iq_׫_W+A V1U N8a mH)kjjBd,^wnܱoݝ;.Yrw.-[E6J.^vER+f ʀHKp)+U{{0~{Blc?>I~w}8lb]4Vr-(AL3t4 @cKXvcS7Lc%Y\|~|Z;ߥ,&`RDlJ:CU;,Li{).r` }. Ѣʹfޙ7}_K*g {cQ)Ҡ::SV>m{ݻ Uk! w]|q3$WжC[0I\Yf }m٨C~ii~~%)s)*%yUQ-cSE OKEs`S犇1柳].m$unj餉JœaN}ȁe*goK}{!331"g|#g endstream endobj 5425 0 obj << /Length 789 /Filter /FlateDecode >> stream xKo@$Owg߀8R$$8Ј &Nbɵ#硆O8gPlf2`JӨ"p 䁱J`:l;˳p9 Qe|k 8ůocH?@ӈU/\j&J,Q>G"Ei\LI[ZKy U~*[:"aY0sˀ;G7_; EV"@_!כdӄhgy QpHYWI1$upo p,|]j@#t}݀rȍH LViϓyǘigJc*m8FpNsX}4,yUT lб֧HjwԳȻO!ɖ*PhE["%%HǎaPiS hϖ]yhoI8N:cG31>G +wr2x5 @[D#<S`}Zxu{y~{%sۊ"I]iIϠ4__6Njb yevbyiՒA*g!/w}bNK񻧟oPYP`ʑbXޙ/`L endstream endobj 5371 0 obj << /Type /ObjStm /N 100 /First 975 /Length 1365 /Filter /FlateDecode >> stream xڭj\G=7^$FQH"F l)ԩO?u!Zj Z{ȥ\O4[7'-SZ[5᭦lVᷚ75˭nXb&Ayh#S+M&I$Mf]:&$HrS|fA"j(R쎬HoPIbGѺ୦7,c [S`y69Y Z\B˺tiXTRl@=L*B?Dj.dpl>\t!awbw0G]\o5dpFWPϟ>}ؽysp9sc>Ң0寃90&;2-C3s'z+821[8/-1Vy Ȁ8-:QLYh۵Kl[М؛xmF:CkWb/w"/9@K1#U+xzd ٍ Vpwcwo/cn3n_><<p~9Ow_µS' 2bWÛ{p,i7'XJ{1i O4G<(63g؍Av|&x[QKV`мQ$[>cmg;I4AfV#[ch.pI%F`֎8@*G5g#CwTi7''1tZ9p1/Z{4V3892oe{˴=#sOdSHO6&5i4oi3=fw-Ri:'Oaq^ZxgҕmǮk*m݋_5[pr/Z ߾|v ~ R[ysK^_m8F~e ~>Lf='=m|z܋/6:xl[gNӕ|t'Xy)g46wo[8:DszbhЉfw$ʛЧu|w_d endstream endobj 5474 0 obj << /Length 1057 /Filter /FlateDecode >> stream xWK6ϯ@ʅm%ͬ&Z!K&@DCqSL=j)ꫯ\<4x{>&:i-AQ $I`[]k}?m"d`=19n MWqyu'} n'4`>b)%BASxhToNh%Q3\gw?Lnq\uMh+ZZslg?imf T7x, CwaaWޑRtH”٩8Bt4|ph|qeqp vgT;d}_OHc;z惥9AO^g"k[>N'O0\.18Dq$au&fR2c(g{/+JN3^`/rHI j#]:%t?Z!yHpܳva` Fb(Mͩ\x&+35r~K^J\vjqAHGV#&5@ɯwHO/b$I} };C1Jd̄Vc4J"Յ#M觮.˾[ A5Jb¨oLV/3 _xٴxG9pQ82C[:3ܝuQAK$G! C777Jba8ZNg _ϭ}/> stream xVMo0WD"#vl8 ;@ŅqZʒ)q:MHpi^;~= #\\m..)RhSF#(qFm5^7-czJ(Q?R+"c]}Y); pA!m>^rMUD3G ŻZw]Q7g]%E[D H6Р$Ed6 S,!wGi6TrY;EV}[$LuuؙY:3#HJP|a!4(DX,GZҿE[pL(C b:AkhvʼTjp܄l=6^9.2BK"$*GLF$U2 G^/H(QSDp)EњDZq:k]<ں}bRvA׎Id%<aYhp8<:FcfPy=V'cw nAzIƅ.{8۝@b }p7|('e4Tm |'6!mm'K"0Z?Wgqw ڡ߇2,-xx^ 4[03 GtdFS[?C埡U1SU .oZ2eWvy1eXR캸jjdY?#ٳL#Hghsx6eF?'f(x;aܽ[1c.wrӘ ꇇV]:Uomr9mgwy_B]6rܺX@6q_?/_fģuќ!Z z0<\0 endstream endobj 5471 0 obj << /Type /ObjStm /N 100 /First 974 /Length 1375 /Filter /FlateDecode >> stream xڭXn\7 W 4")`d,Y(؅PcxI$]s#5d$S)~k"q,,1XxbhI'2IlTjIUAP!5*uWLu;OjHn 85ZITJP4ªܠ`$Xcap``Gk* :Ɛ_#Ag{ ǧU>"1J4F[7w><:ubGT.Sp;}lD $XplF\dE ,n}Q`c]{xu͢k+"ZP|<( B؛/sVj97s@WraMM/ >jN.U( endstream endobj 5544 0 obj << /Length 810 /Filter /FlateDecode >> stream xVKo@WX⒠z@ڒz()`Mcؑgk' U"|ʋmUp::R`NE1Š/<]k2h2 +k(%g#cBARcb!5h:^ I,dSf۲ EqmAbJ,?X L&t;pҽpD8wbĈ[X5z q^CtOҎtԼ[[^PAQ7ˡj2K^-anqe,K)vH7J*͘&A\yhr)K%A5W?6i.G1:K/ Ď!lN-k]_ ` 6Q?w!kƮr]x5+6k-] endstream endobj 5584 0 obj << /Length 1173 /Filter /FlateDecode >> stream xWKo6Wr3$%R$Z,ruCElm.Њl HwSO 7v~\ܥtJ5&o++cچ /W<ؿ6qfHflq}UOj7wI6Gk5 w؁Dx;" {u=1cV$Z mB״Qa :p4?U?.v~@J}k3 Ł !^#{GT u1\6dFS̒)`Y6e{۠0Z 0‘\ FRXI['2-L֜%,nA+㹝'>| ֟r yn!%@?RPY(2*iz(e D0cI~U5E=nC@i:L K!!teLI iy!~A ˒K_мe@Xɩm[Ĺ'ʾvs Wɬ\V3ix2BU休]tJO)F/z9Whh)UmVģ`S6aqSU״{Y1CAx_{\QzhZř eC:PCualǗG,Oh?>'}SȀws[r$OB^ޢ?ߴ W3x>9vs\ endstream endobj 5541 0 obj << /Type /ObjStm /N 100 /First 975 /Length 1381 /Filter /FlateDecode >> stream xڭXj\GWt‹h0IBHA;HaL-4St̸&Y-4_D}1HI|G( u_pTP3+< S,N]|Ss{ vZ;#iBKUfQHZM-)= "nŝaq Oj7.g%UhxWq}a6i*hWQA9Nszu䨆Mk)"Ei%["`5!쨠9qk@2-jHu kV<65|kв6ߐj|CFHwձt.g$iGإױҹ75 g¤Hqߺ%QR ~#@jŊka6fpj]&/Iu}Cj0!I˴6 i P::V}A ~($Z +ª=N:TgVvgf*,[jNԂ7<3r: 0 ]67r1⿥ϟ>?zuYzXʐYhPTT1,jYJ4sZ8Sׅ4fopj>F RF"f빴T#2’;O%F + A%Go00X$sCuCX0Dxs}wL!iv/I q~B?0ONr~{?ǟO&߼Nw/wu8?Vs~Kq8 CR{p-Nೠ< J1 TOwi sqfAbዜsI4/sqS+"<~,1i+X?&}#!BHEH0>q,f+a=p} 6 /(\0j-P9ʵEQӷhRhWĚcuAZ3NJ~`V(ùN BЯ15[@a,ki%2ܼ1V,b! 5hqN P0\K(Ƅb-yY$93 &+  3` S_bטc`Xw JA8G΋ 8€_`3 πT `TcnqdLTqq;TةPyK5Tx%Vjk~/*{aOitUηݐ ¸Ƅw!m~jt ̅C1X2cb<-iyr?9T+0[Š;Gg)5Sf<x endstream endobj 5621 0 obj << /Length 876 /Filter /FlateDecode >> stream xVKo0WDEdG"P,\CzJ{Ʊuv#(R8pd ʽ:l5~z'f&0eU8ê[o/\{L`4qHl_mU R^AF"/4}p&f-)KI3U9qXc~Jo,J&oA1Hs8([9?v0ګ>fTzvnڤgc+8 {1iYZ+J<oDlYRC0> nV o38qAf RE$..qhQHaR-bZ 'aȑ$n Ez~`zGg.&%Gt!RDޗc?F)E`(#=b,=1rNáEb*OЯ_v,WD) ׅtq"iU0PA NL9cJW&.:p&=?2罾GX7Mgv x"mofYc V jR"KcZOi\>n+T>ڿǫAHrLs<>'~FT[ 5x< = endstream endobj 5659 0 obj << /Length 899 /Filter /FlateDecode >> stream xVMoFW*~ AĶFP8jsHrDDY $$ETiHr)zp8;o#QPrPA ":ÙT8gb~@lf(6]7M43rcK$i1Ac(_Ή0ęL"8+~ZrNuV(+(p2A%Sr B᳉^8)DcL(H*':Xj@$J˷]s[_qE+W\XZ4Rdyyt1W;3EFPo_zS9P1᧱j4.=]8f]3c+7V*]Mp28% b 1ٿ+( Ht"q{bdIK0}OFDpJd{bhŸ,g[35~5Utr7({g=컏H 0=  3CuFv>Z*X aT=Li'nJ8h3Ozv٨$IFƃ';z+ L>`jѠyo_;݌궳`=uWۍנmecv&P0 ԇҞĻnv@92%myDcO9ONeWU1929;Iqw16__0\WýO2{Pډb؄{э7E宫*]T&qݚe:VzdF~`E?[M?gd `-@ёAW#RR?5"e qW57G endstream endobj 5618 0 obj << /Type /ObjStm /N 100 /First 977 /Length 1389 /Filter /FlateDecode >> stream xڵXjG߯//]8^$^F TƑ8ASkT2T{D2 $17?h&IhR,I?ԤphuN:K<̩"5uή5jAbi: Nk8 SOD2@2uIImP n$+ j8S l7&[[%FԚӴxG@Ы,aCe4éOZML2i X#X`su,: ^e1Qb->Uw;,bwmj3-ש n`G`xhQn9KQStie䈸6$e3lPsRwsVlYG: }B!OcCO$sW+&cjk2Ƥud8Rw{IJ3P J3<ߙRyVDeEMv<<.nWG[Q(IBnQ : Y(Zmggtt_PBSkuW^f60~Y$bȄH #_F^dFb-'y{]Y(#7 U\%=K܃KyϯY:uuf(lw3g(KW^۹~77~<ݥt|<ߝ>ߥ/ .;;t8=^pǤp? `CrAwH y$dž7TApcfe.x/s߻I͆a2gF]p3hT]J&1um\ZB0&F1AOKd 'lYҭRpuGǏqߣ6\1JjQMr]\]$ 2/(Ĺ`gpl֎@ `U%KGy/uⱡWV\)Xb+-i 1f0A_ό*K0@IוU2ri֨wXe12$kA.QۈP3 !Ҿ(2 MUXrn><)0/8B{ameY[Qc Xtyjߴ5FKK  #={fٗŸ,M_,-_)JZh@x`hAvo^3}hǘwFg ϩ`NSCl!|3: N, endstream endobj 5699 0 obj << /Length 1126 /Filter /FlateDecode >> stream xWKoFW DK4M+QkǫD=Nr怙fGj^cfU(9QT`]LMt“`[ iRN.-k>oϔ&⒆Tͣi;|h nX:7oF$ʦF'}\q0N>b %"M'D[m[;{}'tBIl5!:U>r7Y~0%Zj&cp@iam>3|t}[{둂RYY'YU!E]ٰ-M6*S)Ꝇ*Llr05RYߛ(Su{VMC - Eib6 fiXHkȳd4&~@HS6aȏ3|qm֏5X8vfGП.AxBTFyl`1;ݤ:eHYoŇ95 db g)a̹D@e. }0 Z7 h?=cWv+$INΫ38%1KH_KF?ǐDÊaQ"X1D񱼶+؈vf&Z9o$ ]h"1EbD%&zͳۍ$BvqM$6"L[Nbh,2, Qư/ CqRⰩ%Gp{mAD-e *7g/0fghJ? lfOE46 l H,A + Tg<15dI=瀨6k=7ñ6^ٍY:9%3g$F"NG"ԽoLP jľf-}-T/z*K V_n9[Ŭ5_i V_җ J 5;e> stream xWKo6WE.*"Ѣ@[/@t,V2,9A;e1mBOG]Y^]S94r9L*Ju-W/񼩻9DjOj~ίn&lEg?ϜQ65H&_?\`z.]$+ΣD`|[;L8P)Ԣ4cV(QYBUn-9,{O3* -S2(AӌQvP'ˉiIН( ,~m[C\> %j Z {32&XS!!%ۜQ,b2ohND昒eCDBFXn\X)RUx:8r5?#:sKRcT%9AʼnAU1'>[R 2Cpv'Nw]Κx\d>|}M|5,Yl|17k: jЬ]уC^YY`Ht3Cӵ[_fI*Gi=$K!Yφ3ҷDOqZ_8GBī h5Hpe۷bXe!P fURƔգ&oi#rΪ G}EosJ[u}!wfRlZw2R6g $dƜt+h >t{ Mwa.44!q|s!0:`ΔaO3e_n>ဘo:3#Tƌ~1#׌3#+FqMt&SAS&YHbw) ̚3(^1B1 Hr6ӾŋC2UpM4cPX7<DO/d}8EWcO1bir:/=yB/SN5q/gcq6 z†@=d3i†YeSy|-Md(;;ej\5L=٘ҴR9AlBϫ'*'p&amO!W恍$ endstream endobj 5696 0 obj << /Type /ObjStm /N 100 /First 977 /Length 1382 /Filter /FlateDecode >> stream xڭώ7~emi!A{$"(b#X$FQ[qTR6r(?5%Vj.OzКCm)R;;7$8!+4J^\I U,QI Cą')ez C7i8.":Г>4H ܜ`dHf.q}Y`UuVKCruY@&Zͬ nn3ev_P^ie|6ELR3b1mӌ40!3EZB.\ (e3$Ίe[Қ*hni@Fd(4fҌAe&@1>Z<}e! iC) RI]]OKʵSD*$w߾}uzaݜztyہ2sM{XY+;i}m kl?ΞE7"}$\q#ٓwͶe͛_/e8?{z/.ns.05ˇ\>l6~n>NZyj=)4ͷF|+ڟMuƊCQYBjԵKsaE\ NcJEuPv,jh/^mz\ L)2WnQZNy)%S5_QhE^5bIxҐ״?{.EX,\FvHAgOG._bhazX$hqvx5L> stream xWߏ6~/l|1V\je;$^cưas{j0<=ghp৫7뭠!Fr 1BJs$"ᶩYSo">٪im-la:uf_eS\o '4N$2$ \7m_n66J4bFf[D 1C M0a~K&'@;.IV3q+# 9<$5{4 NQ("3fomuoʮ0 O4TXѰHo1Lf d?a) 7$al#:tGN9ұ3"b~9}qfOf{e!ꤚ J JaT!YW{WYꟺ$FCt ,L]þҶ,uӣYnEW*7?X4s膩avjϰͶi[).p%RbҺnkXl]gZU x]2 rXp|\v m  bvqŜ)^<\l=oւY#;tcgtɱPb%b,\1jv`07eVlcXm|z>l}y'Ezr+L@k!-#~%f)7g8ǃ}zv&yn8!H1ЖmJZesI_VoZ |+DZ mك?@s.oBS3:=`ñᦼBeY#zڎs8ܙ9\ z\ zw :&1p@;MCsln\Sw~aW"/@_:#L "xV $tӌ"&Kp @lh̸WԖ AQM7Dap @&VD>6O^%ἽѶ(r/ՃC)9m &_zOyc }+].~]ɥ endstream endobj 5822 0 obj << /Length 1254 /Filter /FlateDecode >> stream xXK4p*iIEPR&͌Y=-4w斓ۦ>+IKlƳdK"d6(%6}6+J~rEOX۹Ӓ+si.-_* c-XpA *iv,IyF~Tԭ+G$eFGMt_EZT;|nX/2mjޱՆ jTb@c&FR@²+3 EXzPz.B쌡NēJ,xJUv~ lnkܖ-> oLQ"lE7M[]~+˥Q;ȹ}=cCr\࿝l "uCUT3 SXCwŹFr`MA9[ &}oYMќ . WEmpMIid&pF&,;aÒf3.YdnFrʴ%sXX98:N3,$S6 K[lU4iTȤA5X<\Le[F2J`0uL$]e=MEAY_gU™LRKL&b|l$[.iÏEAzMΒ̎.}3_$U0!^Ӯ:]{&o;ܣ.<~s]mu#o'y9R&f3! eJL•Fh53V]nR5mqi98ّp=l|q۠杅bg~YEg LG}[;ѽ~kY2?}7[ؔa/ 7*@GP hz8&Z uM;#)"- c)DFn썥v0W-zw%֧ w\۝Wfn=LZ7eY~j@_u} *#si+|n\[mcW g0h3nx*_/-Yt.f(M2DPi CiABϟNJj3 OCis8Nu F0pC$YF,?a|ts%Y*#.[-=rt䡈rtx?:38߀waxށV} (75pv~=uic_}71cQ߹L}U=U0O2!2@sNDL݌Ox/_ endstream endobj 5775 0 obj << /Type /ObjStm /N 100 /First 979 /Length 1368 /Filter /FlateDecode >> stream xڭXjG߯//]8^$ZF T.mtkjTU׻eMj*Zk:1 'Vk$,NPڝ49&Fɱd: lsZ*zO\&䜑T1JNPP1U NÆ=E'OAM-C/'Y@6MV6UThP@sSf.j4H΃ފɔ\Gy[q_ptu* "PP.#NLa$CSxjW=t@Նs(ya3u zp3o\vAAf=2z@zAǨܓ8RL_5zUPW>R%SLmx!R'ϒ()t MEmZ+m6Ln]ḡ0C<` )B۠Ƀanej ڸ Z6m0Ymx/X&@58́ |[lYg jj3C=ɫt o; P%Hm3*$cHK%ǓG:??5tuS54ϧ7oww==t|2?<^s‹Nϰt ÖϿo~=TRQ w}y`Fkbh笽Q /US ֗ t=XZ(+۲9CZ IiR)=l J8ce5GC9lYM _uØ+90Hq eA]sfDX:D..} 5 ts|ҿI^Ğl?^ֹャdd/{ >'^,2rA5}n1{Nt[VWlOW$V# VཅTEme56p٭w]VS+C-Wm,-&z{A /soƘ5 &\ cq}0W+#`\32/R+A y!!]m f%/m~G ,N/hdjK4bʲ\|ENK5ͦC#H,hkK2ք[X0Xp\Fq3=jF`k"xTZ Z:t1VC+Qv ΛWJ endstream endobj 5869 0 obj << /Length 1723 /Filter /FlateDecode >> stream xXI6Wv3DRHC:"ELȒ!3G>jp$.o>.ntwWo.%]$U\-6ip$r.^^UWJjiq~ewY1Un__/+\1VlxEo.y`pEN5 I3˽;8 Ǥ&ZbҠ`VbI>g =!Vp~\v&XumG;nجCznӫ(1 (5wB1ũɺ%RZ%c!`+JDj% $3] #ec;9q_۸~rЏ8*}䧀~ ^.]]~[+)&Y!#jq}~vB uGf!!ǁCmc91Ⱥ)orXc`ΗkgcY6й{e7؁j csj|~﫶@NB+Zˁ4+k,dh"rnC,e\^h:澜GẨl;<]P~ .<.kx"M: N7=+Hwk]hGG\d cKh3_fyӅ+ob΅XC> stream xWr6+8Ӎԉ`AL;]4:8'VEMATI0}/|ɴew xq}'w N~~sq8HK*.INR$O6ź*m^0wx|2h&7;S/I0en^ߖ.@ʰA!,|#0D%f'+")1;NQO)PJIb)Ju]veD"3L8JU: 3l3kM}UuXl[wni0ԪC]1 n|)cS4k)X>zAiJWEmHs]  BwDń2~7yEFRXhh58ТS@B HZy4LFBgsl&dbkp.Kyj$7$'JrH(<ʨC-iJ?i# RbLq",*H1M^G^3=KVnB7aqky|#~Q/~"$C >cH9ATiHGȓ((37hd(֦=(U1۰Ux)5/Xv\03|[cM}[uS>'n9m]-{ 󕆴2)i5WEc2x9z'IǠ!{񞑛Ͼ$Bxc)!gp#N]~yyR)>8$>/\Q%O(!3lj4);ϯDV5z.NvMi>΀@c>arGw|ov_5QP 6+0*_`%g51']e#,H32!' SWܗذ~AF[&5m]PxiC~u_ w^] Ū0'qښ]MB֙xE{4eTy/Hq:2*N*I%as3 endstream endobj 5866 0 obj << /Type /ObjStm /N 100 /First 977 /Length 1424 /Filter /FlateDecode >> stream xڭˎTG U&X$hva@EBLD> $oe.JHJ$%l!ku3 29=hu`M}nNT倘j hP &ֻ5t5Bo9- ,a4vNJ :rNU&O[@ SSx*PIP-<6jqmښ/ֺ{.:m kMf}vMQ%2'N3/&w$]OQ>?QO(<>y{mxO_ӇіgqNuzssӻo_ޝSv~8n>n׵G _E 䳐OCDxҼ͗||_k)vئhQέF-43ZJ1xv-ڢ7=eD<l#J8=5!&lkLJ-JnDkveg0mƺt4侑{5"]hSiy%X7Tmu抇-tc\,bd&K2_ɪ'3Z,\D[ػP[vCs7z&hK!teFarVir4.},d'Zꪛ`Rf-2wF3 07&69oI:_K MҶAʾ9+k1ӨwIKm"-Rf3G[`JW% IO.ژ˚٩/#Z,농畸3ѯr)eVt3ؕc'RxT6b\qoǸ8>M1ˍ÷qzqMr,_/><$rAVZ-ƺ2ֶiu{]?.5h(n‰C6.*MjĞlS\C̩oMZM4Nqm9[H2_]2àGun#]"X/d[3T{\N@ڨCq endstream endobj 5977 0 obj << /Length 1559 /Filter /FlateDecode >> stream xn60Ѓ"fЃoS,EHtLT IN6~{g8,'Jړ_6*䳔gLqtg,ٺ vޚ;S{Ӵtl6Y*7y(l]B2!X{.V2 d_J 1AR22LbT}=Ъtd#-ERo#*H5JC YUAPFS/!XNjJ^ݟzvPYxTViM*/#PP^&X%L" _A`,bOp^$eJU"e zλw5gb,┮1q8Y%HLNJX !cn9?Asb&tSz3RRŊW*fD!g[wX!OOS@!T tcvҟvD ;4tm۬#n_|Ɉ`t1Υ)gi]ug }AEAߗ6B ]}@&D4C/-G@n9QO*uS7;6D"Cա, {L!%TA3-I[ ti.!"YClC.Q#Ƞև )\rBSGomD9%r&ݜ$AUDp{m{fdz﫫i;;#ʵj :tݔ `f"2@C ˚%i$6c`k ّG^K@gt ([yGƻ(I(=c "2WIlk ˼"`xCD\XԦg:Tv`َ8!Iv;=9ز[W9f\"ፙ$}/Bsp˹\4c3ְtm=si`QК˪Pgŋ+PVt~ʚGN_HNA%OAPrbQ !!ˀN?tvNI#a2eևskVxKSwT*d22=sۼVv%1Tj9ֹ_od8(x?:V x@8*)s?g]!wu~)CL j"́$vq*WyK7Ovj;:aunҕ-0jz.d={,«u|}CYtCGy g8!>Ϳ%*o=83 I}0$B@ s: }\ Tw/4L]U6'đȽYYcʷ̖қ`mIx<>n"E<M/TG0ɡ+)?ɻ_y؎E endstream endobj 6014 0 obj << /Length 828 /Filter /FlateDecode >> stream xV;o0+t\D "EE&M)]Lɐd=>dKuu*u"/őIH8"^WeU=t5(qwz).3}d?WPD"g* Q񎃈 Ľ;lUUkE H*m.Sd᳤̟gCF,4qxh֮[4Տnm+b@"wڪޏu"F">پ6Mٴ0t2+ vcb" >@%ҝ7D`BJ G$QQ SR E`laҘ G@B9͏=L,TbbA#$gs6 )NF+Qd'BgiQ28|o+dui=ή}]'khĮ'O|.͋h, l RW=! = "]`T(fL),!^(;l\ 66QI81> mٞ7ΰ !!rH6Ns˅Cz> stream xXMk7/j4[!959t)`ǁ˻H|̫}4hF#[7N%Y7IZǷ&%j_C$'KR%VZwzRZ%Uy =KBMFRBҺ{l*ܣ咈$`쐆o"Z뀐0 J^c 6 F&9l15 ƒvw@?p qQ }F֑ & OaEf:L` >3: x^hʰѡES!D6L@/dBA\NVK)l 8H:pƩNJAcGLLqkT Ñ. E54L[ D`! L2l85ukת!|J |qXCmk;<]%PJÚxR8$!\vs5kШ'=̰&,MUZix(ؘvbߦ/3Z3#Z=7?~|{j-(g8u, +# Yz )xA09"l#9:dF(WT#T5ue4ŞUdQ5i[ENh9 "Z~(f5_D+t"ZJ.ÆմF 4cgwgEEf~zhru[-ikLs9u>]\ݢ?l&×I "躏_u\<`bχto^_×dGxrfk?~/验IPݔaZ0͠Eņ C@0F9jNtlf:yFO| ?˚hY,cOq}z:+5/2]4t,ep Rq# mcsE&fT3 c!CH3MYTWE bBla pf^Le2g_Z0b)b1/iS kE0hqL:Qg n-hhRjV`]d }1.O䱇PkcR\RG9&E?F?,j`5b> stream xVKo@WX⒠zK UI%rpMjHw-{[ߵwG !$zgvfɢd|t:MgJ(Nx2_&QL$XɗWXsYMRL鵭t݄^zXBo'GiM@c7# LgD%b>ObJًWtn3*vX6!CGޕ tukd㼪e;O*m*]2.X&!vWGƆmw!G09]i˷c@1m\]\F׹X2&GohHpD*f$ XzU6~I-ʶ= Ui!b@T4{ $D7*Dզ v+ė"2xolՔ͎͆5 %JSo|YIȰIa,Wӭ PS,PB@MO]#D'`gP{\0l17 0啊qbXv1dHO2 hC$d-e 5w2IHNCqp ;/e3uYs&`J✴:Xw]&n͊Ynq)sQݮ~2ddO#Y? "o5E qak7&~RaZ vry,GoJb/|o endstream endobj 6092 0 obj << /Length 768 /Filter /FlateDecode >> stream xVn@+FbfXŕX* e:(حԿgc'vpR(b7}{cD]MO&1ȀT4!8QgUg8.]ݔ.fLf= > 9DgBLߜ&$ XpsQ "El3KUr(b&,͒$$v5/DnP"]NvGX 8&b5|59" (OG:e5$ƣ8yw&sGSD9g,cPѷC٭U^F1 &Y6uCIHIB:@Tj\I'*yP fE*/llҢ<Ⱥ9 nݦjeáI+ԧE][5Vcv!`[ m ͒*`v*5_̲"ӹ-J:Mfè,lz9M>‹aGF٩5l%l@ޝ+LK9ӎo'`GH#̝Nv uu6KO89Bb ؎~tw/0Il##A3{vX>NC̴[gD5 hɂEv3cnl{ƻE|+:oW@W4[B;~=6$K{\3ԏoh`bv5)Ot_{>ܕ)ִ2@~u_u珶;i]wa[7B endstream endobj 6048 0 obj << /Type /ObjStm /N 100 /First 977 /Length 1382 /Filter /FlateDecode >> stream xڵn7 zDR_CV Hsh@oN]9_&-!+1{:#!,D Z\Z4p u%2ʴ`51 5e ђBO)\V0-rJbP%p$YJPݱ1L^jn$[xZ-CH5A &Oi+[uZ^5 zq.^oY{[?iZk@sv@s?( |zٳDžEc| qt>.[Z=qF8qi)-&K[6m^?QBOx4K1A&/>^t^&|Nxp$7~L݇էN5y?~Wkޣwۏh^w^p'% LqC/,89ҷnh^=mD?脽S VxG,Nۢ z&Uꕾ' }E_Sļ 3'ѦA:NKmt1S?m/4I-kҖ FWK~I7SF1頋.Iٽ Fmרym^YT1HDk֞Rx+/m^u7Ap5bT[[uᒨVUK}nm_K"bH9EakM[#[*Kj#sI[]i.QVs:\Nys1;= ^'_{%-Ļ~]Sֽ?LYC=eS0eOYwwEpF/ g=4=X1wӸI[Q IoMX @=_yy@u_R]{_͍TtQ5'](lFyZ*33MUȾo1$40†狼P0"VƔ`QpJ?8[⒰2%mJ=1ZEiemd*mLPur4H}!(M?@~Ls^ endstream endobj 6137 0 obj << /Length 782 /Filter /FlateDecode >> stream xVK0WDҢGòt%8@ŅRU.8vҤ]Vqf&.r=[iz1̐JT$E'z}ld1x~eLafkQsSf}Zh:ܖ"BY|Y`:"a9!}LFL(qY|+&AZqdic6(&,mP7Ǫ UZCT`J$RDCCU>5צym˺Iy*sd )B%z`Q'Sl=n(w~;j<!\(T~/0#H)-eV7$X& %Du8_NĒ`w'ʐds|59&R#F)44t?p JkąapwGRD_kDC}Z6sDf9dn*D6e#/&Nxs?OQ]gX7Nx"6B͏ \88o~e cX-ug5-s1P`PHggKc8nmW@?Uvim1!m&=S&G4JQ_jǢN[76(? SL o9 wev,>oU7^^4is0pu8 P Z9!ցt\H8LhK~92逍u,(> stream xV6W BG6Jiv6)C&܍4 `M4&RNtˮWūqpp>DSNd'$HE%~M=M1="pN=iUWuRݎPչz;ICsB75(("o2 a=I$(GVYf8]AAD8"w6H-**`l©3Tw{ 6~u yMZt)Wl hnhXX$Z*,,Z#?.>ZSyX+OKo@s5e /0B]a @ D RON\%Fë*M/Sf{Jy 4 +:&shUֺP:}~o>{傛PM3[lܫL1 ZÔZ 5i֖C5U,;V 8չ3m[<%5#%~(DZr0_"F-;e.f/%HH1dw6nt1?PBCA*u{ۨ[sdn^ Vab kLpp du0(!bU_`YD11Jc>TR#HRr^"wv sN0Jy:8> stream xڭXn7W d?I@!1t `8>$|0E[O5WHFqt8f=cҊujE(cs/%TO"B…|BjD4aaEBEb%EGH:8$$T$m2zhf+C3&@ڰZdy~d+骔~+0l p3ZX viC 8kƮctZ 87CAl;N aJL lp'~ǾW0qACSX G*/4E u<\@8-XN+p,`?iFS/ }sfg$KͮA?!o9a}iq=lcyb5^F._

ݽx$WX\jܽFz?#S QhzRE "[=)X2f4.CUji $YAz~Z~4P!Ҥ2.Q)0vE5jG˛rqQtu(''V'5wOh27<ܖܖ?&O3=n>|tK}w\|e.-8\$пOq1ڮd}nz.ςWBMn pF|} Q endstream endobj 6211 0 obj << /Length 944 /Filter /FlateDecode >> stream xVI6ϯЋ]D.4.Z4=p$b"(R{Fi"'Qo۾Gpjsp'*a!DH+J$ܖg^')#HJ$mь Yv!I [T!n^1L(CYŊpPHnFbA rpG[|>}mk۬R57U('캍^wӶUrtk F{X swʼzNJNq0~7i.] endstream endobj 6247 0 obj << /Length 1015 /Filter /FlateDecode >> stream xW[D~_A %YĘ1Y;PBu:Uiw*s?17o7;2#$Q"!x/] E| s]ݞ\;.#:uMᾂ_2CS("78ڿQ:X iJJ$=Unw$ڻ*y$giMEs5D{͆.Po/KPs bA*$yLifh"L i MX5HdunöTHٻX`K?dK=Nh Xx KUeʤZ%_j]28 VNChPkN$2:G£øi?tNާaUS55^s+a=#G鶎V $j5Q熺i $f!kxUC-@J08FFș0i6VY&t@d.nl~3eIw>j7ypjX5P@ ZXr@nk PSm[x1 ' # lbq;M>~qSn9;E 5/>aQ Ϻ-auh;X,n$4&}L\kMؓ4ÔU;S?tpL!)RО钮W 3I^_4i]FDͽ[(_ۡ|sID/1pQmguӫNFtqoڍj(TیXb8[ѕw?N[ endstream endobj 6208 0 obj << /Type /ObjStm /N 100 /First 977 /Length 1355 /Filter /FlateDecode >> stream xڭn[7z >ř0h im,T( v8@RsϹI)TMr5 67r(A͝L/ZʎSU m -SXh}Ck̝zF;=}1j SqGjAjF)k7r{U1XO+Yp[)\چOckuĹk(n낔1Dn)5OsfsBҜiNB}u(7t0gh*!3ZkZsQ.*;:(9 :;>q-y8BU!pν̰8޵c9et`:N`GUqB ;pi :mUs@kՙǺL :NFrV8ԆPS0NNm1o^;2,&[-7(|)~|Ik?& 鿲Z蓵f l5![QYK96HYEcB\C5]e&ҺETpjIdآ,ǀ%0oŷTcJ%z}BʞM6&PDRE:bvfo$:m[&W6個ESulKlY3г*J 'g{$e10W=1ɌSEp،)cu `EJL.OC.$K+1sKf'"0]SpjOR֧>zs~t~lxp'Fs~n)rXDfa,7CG}pկPp*w`h7} _MKK2q1ֈd8zYL\hbVEg^U81 }x^^nj_ :"FۈYi-_,{E3xN%/nצB[nh.CO>gJ_k%?^&YZ$XsµDeB.50@?yb<ѭm }bt'?0^ endstream endobj 6287 0 obj << /Length 799 /Filter /FlateDecode >> stream xVKo@WX 2C $J1* :RbGӨw8'KED` Yh:8`a 0.*-Bb4f /ݝ[WnrD{,EV~@Gߧ$Fӏ"L/6-MUAIu0}퍯]+Z:\(b_fU/yoLw({X b%N4"o'UҞ8. EMoV6״Akb^"cy$Zh0bƆ68l'ȭ cKSݠ)dм`>B1T>/6lb?r9c|j7 X 7=4P̽$br\²'0e4WǷ=T[ ˢ4k~LJSGA1HLN8Bm$&DenYjyOY<d'}hTH*P(P![ 9>Z*jifn')%ωqS>󳯣v/bգPABs-馰B5X<9DMٵDAvw=)c Vmw A xA8նM$(§Om;w h})~[5+Xb>)ӑ`;nrHcYb ,|@O|>L? D endstream endobj 6323 0 obj << /Length 654 /Filter /FlateDecode >> stream xVK0WX"2#~ ZaK ˡmh7^%iQ=viv-f|h0z{; G)FgHs)ARQ> stream xXKo6W. I==$nqCӃ"S1-JrH=m8qf86 pu^G4D$< 6eҐdQ'qmb]뮨#y1]ɏi,edBBAޯK j N#l+^s0Nh 6%YbAX;wF^ejN1+E$2N"#1YἫ?bFiI3/FP4$iD9T%!4[zĝjdrℼf>tJ!mv5ZiA9͋TC CYE% /˸dJa󹒱 YE^J  OhhRq 1U\ρOɄ;SA:eNN88}<mr\@a`ഭB:'N޷R 22_!Nu5#˼J KzTIv3 + r )Qj$NڂII9@//.FHc lFA4$N\V}=do1FdZ<~fE$} C|TAU.W4xE4 %F!QwfGSMk8mojr]dvmTq:>3'JmFARofk= $:Oa4) ӏCn{ ,-\j2m۵![P{]^g=&7TOpEËgݗsڠwpб:HθR.uY X8A YCR3& Æ?`(H׼mB块Pw8#hdfbб!U8 :gJL@A=$D cM1ħ J@DLR[mc3RTS`ͦ ޿Q&ႺvA3jKuB^d-Tqr܁* ;sK,(S;F bj$8rG Y>@[H[ALffNfK,uҸUQoݠiP3] Y%$IǼo!vb9I q4zj;2>Z͟*'tM)o1~_¢dmvN.h@0ϧ \fc N><+pߵ*]ݡN,j7>m_v8Pϸ_Uuq3rU/sLU㾏 ӎc&x¯/1׏O(z=C.^> stream xڭn7 zDQ9An4F( v8@Qt7h8Ԛh )t ỶHMiOF(R F ź9h.cA}$#3Ҡ9QHWcY4(O%5y֡GxF1Z2?rf( vU?Hr 9\jg 8F+Mm6d6m#`GCyPAe)SuHQo#\NQb(aŢ_ Py<+Lh&>CG <}fګ[m:쮮vWw*_M07<eq|(xOM/գo9/v|xa嫰{nvro? 9=|nnӇw$g?~7b"ToPx) ekߨh-$7ӈj Q-V}f ѡ`Mr*Qm[-fr d#eVж@ÕxH#-]#cRbkkRYdn0//. ZI!Mc+Ts}[>Պv=˚hImb޷αƐvvidZjjQe KmOD%u$5Gjg^Y -&5s+6ˋ 5#n]'dK%fv5nfZtZ-21EruUrMйF5źLC.. _. ~vIxߡo^*Oyםgd>5FζZɤ+E56ulx!F͌4ES+uЮ=mm:/EQXXf+ d`ki?׏-=#¥PL8*j(`&ŞPs_MGb  {ѶUn?Dq` ۙ.րt|-0I6qC.s(<'2kcY)mUgRiՋc1ܝY+gAylO>%h2?凘7?> stream xXIoFW BGڨ%"ylw4(N.q(,m9>hcy% ({8pH#-֛H'HpIEQhGƫ겺˜,47e}g?_iDŦB$#WTG"peѹDhIJKmQR*9_v($8sXw-DwhH"8Rxo*+wyp$WÌ. l|omgʐ K"5bFˑ86ߛI$}4VJ 'j ̽4.Q `Q"v =`F2fG ݃A lkkf.+pN=JrI9?%3zԬq -O~L/qzQCDOiKgTrsAɞ U$~ pD|inCf4 u TgqU1E8s]!tg*d´3bpZ__dVQ&-mFJ3d6ܴ!"nyQcK$ o' wܚ [ˮ5`:l=o15N3;|Wh^}?Xk[_$YbOHY~a2k؎&tƾO"7CϾ@vA t>u^==kknF>`\YQYFpB&llOR &q} yt +ؑ1=PNRJˢ{ WWV&umlM rxSC 5pß4 ~> stream xڭώU7 )$4bѢUBE[WU%T0Hsf.q`_/ K%LhcU;Kmj{&$zjuFsAuBJOFœb압6a%m9]I\hɆsiHqi"5CZ[J6WZ zL҈4]4UPkl-X^X@kCv %:9lj5ϪŮ rk^-E~:5 kRj{mMb1nHNYaW:" .ٽ.{ְ1=Wߚo5Vuk]|֊j+qJSQ @ 6n$6a&d?T,5^BBVRPݵ4l6Nw0ħ= lyl -@II{\ wFRwuBםIj>O;_vM6ΐoikhQqE>FY{ dGmt9l_IYra~xӓ'_gmd#F_UF* 4Ƀ :Ghk:BҲPJ4MkҩU3S&yB1LeaJ/JyQ5'^˚AtI=[Tԑ͹`g?uk85bhi3H13irPͲ8^F >jHT20@'A:jQ*ٹ33F?(>Dњ6#  (>cTyٰ{ti\{|EkB'/?pfaxK _f&Uc cNJfC`bOD{{nn֧2ÇnlY];yPD6 g^|O/t~qx>Y^r:'} ߟ/>{}kacz&F) r֌1ZdyN|px91lWov:1A_219ʰjvLgͿ# \_ дtidY@e4wHs(`mti{Nu+IσhJB7h!^;o }:M8ׁ/~bDC+ z4k2xOۑza˾jyC]܉chmp~aK\_ w 1,0Stվ#ʿ\upX+?]D)pIe-+5HNYbm endstream endobj 6468 0 obj << /Length 921 /Filter /FlateDecode >> stream xVKoFWE,hC@QШ=J"BIп.I14hzIy7$DŽ$?޼nI,XT;$p0$0R$}f}c1I6wU͓kx\RquĻԲ jM/P 4c 2PLg`D@ы})%wm`M2n!_GuUI*F/#,s=(gh cͳr^UQ(3+U޻}^Ġ{%{-H-G]0c\ [6R7O]Mu^b1Q.~h3Ea@P3~ŕ&Cġ<^E88j4asF ow|MSԉ: Tvt-2 d@$|>!hƛ%A[ H4",`T)\U'-PybIDtV(nE 6ɤJs]іO֗exE^#@4\A_M[AWa/P`laWxח1VHDCzӪ0D.)Q `ޮ%. b\IcDŽ(0 öU3ajk]ʺwmWP3& 8'C;%y)GĒ. ~?F,/32%aBßp8ķX7+g?"YTyv-_էqud}dGI1s_f:y/o,gm_RW/t"mK69sXAuGS>氌]u-yw6BW]E $?Ewo~9ٕW |$~Hpʌ C_#j endstream endobj 6508 0 obj << /Length 960 /Filter /FlateDecode >> stream xWKo6We|?٢C%A+ɐA3W$73#EDڟ,XT#+A i@JѻͮaۘI9>ee}5YfUivZAJn9!llD)C QH}oۢuvFCU(J!B,A . _@h|l͊c8hxÁܗ43IoX#T}({,Zb&]z^4:9`+ ڌ]I0ƊMҘ>C, 8 *`z:e͓ŴtBt $PQl(>}ykQܭ{J!/l%kvVs[-S€Q@Y6mzƻֳDcNMvR ڇ|?Ie71`Lrw90 ν۪#8(CE۵;6UͿorBW#+Ckĕ KFF`7?'LWKV4۝-Cb[3#szʬmВ4t,mdDකeSw͒L$=Tu[J6nm&܀Am߄&M%(sŘ_ѿ$8(泟Jq6q̱{x1'wYii'~Xw;ۊxd A^{" *Q V4" x@^&Rǽ4}~^74ɏ?o.5#S*N/ 5Ć.̧krfl#fb6^dw3 寛Pq>li| T*ݮ?H^uryi&]Z23fF(x17j_Œ/; endstream endobj 6465 0 obj << /Type /ObjStm /N 100 /First 977 /Length 1397 /Filter /FlateDecode >> stream xڭXn7 S DFm[ ͡C.]}?j=m^IQcRZ1Q-bkeKwb"BCb0fM"@p V h#] \G,cx0"F+UZHeZ[ JC,m`׻CAy(>t4` ce[NpH,Vu&!͖4 pg`E?eC.L;-mPk=\OMF셧 GPLk !Zk j3=,`PC:+2"!M[#iWhOk r-iA2Z`&r[ fvnAUP{MDF" (Bl 'W:iHIPV8*! FsiyK7ricI % a m%=(*Z䁒B%r,m!)"02S@de"i$ hmpmC(lR@6-O2%! .. @B]-ǟ~L:O^=FJl^g=4IxuP.ϣpORUGT:Q9JcR[4 ڐcϣDE0NdX'i={ys}_..RP'\.25CG.HJ77<ݗr|ߝܗ^|t8~MNw><oOw7o?-ep|)W!R'uR,ΣO*jGih"ir&Zۜ5sk6j 9:+HeVd\ y?'؞k)0T'p /&Y ^~NFXj&ɲ!u$ƵhnJԙ\l٪ŐUW-$Mu:nPfmTZcFaM).!Q$4(CnuG2++ފ%?q)„h:=.=:=o]?GGmQ㊔3I04Cg@;`2I$fY4R3V-j\shi $uɹ$d}&~$kfjS(?^ECeZdQNxI*5N%uB\<8nɮ 8[sd Ƿws5 cͽ8 f>'ЎlrJu(lѲh1:Λ_Q'i/ endstream endobj 6560 0 obj << /Length 1041 /Filter /FlateDecode >> stream xWKo6WE. "=znP$: S$'Ϳ/_Xns e\0)P).d2,_3cՙO՚p_v \J_+ErL 1.P$p!*>5.PYdkoGd6T$5mOJxM(]:> <`#1_pk}L{ [c@1vZ^# xƛΰ6e;|kP0i1wqC6u&tkO*)A ])Ev-Ώ!Ln'eacGGn%] I(G]-OaaJc,0'kgP]9ԡ}9)ώ* @W ֮E]]7Oe(뛮7MO槢x~W$kq^HxH)\ 24)EIJϯP[Sb#'&Χ))oS:B3ldB ݫƮ:ua A5 (!@:auu m xwAZJvԿG9G#{`/{iHK4&L4UOݲy/a8]כ W(z  \wgy*FhH!+GSy?r7!.넟[$bgqOq[J&ﰗ%^Ҁc9$$MeށάCmCb.z>įjE/HݦzZPT'c;Ưv J%L{ު׵/,*/p>M;\d2*5¦IMp`[N*3~n." R_,l߹TIfMDܨa<,)t Kzpl.A3kE޹ZZ.NHIX? 9C%lsQ0tUxHOr΅+`g8Hn1BL~^ = endstream endobj 6601 0 obj << /Length 1001 /Filter /FlateDecode >> stream xW˒4W65QKGA`P`A0,܎V)[Îxzfa=}8yNp5ÉBSlv*g$`fVmch޷GozT7~~MiA!dn~P &u&$YQhz[ViEȴ(Nۓ5:q"))M{xzÌ|iڭHpք*vpX@ eU7s8eucp`7{*dXrLaop9G [qiC7Ui!==m(a;5Y(U/G~5O>@vgE%*:SpLbU{bK^mŋDg ,Ks1C,xܴc<\''HJn~ejFl&7D"| ݙ Hcl/ P( =tա.;E('ǎf,F'K7TѫsCA3`s>ʩIEgv)COoNC ɪ`=:st|yE T&j#E3xl..h!zMU_= 2"TvȀSי1ʕa"=?j0/س4J cBy^Izmx+3$ -+CXWn>I @q~J~q/E{~ׇJMJN:XQK߰ f:֦K=s&3Ɣ`#[W Afá|;[FK^sÍ-I[8Urj9#0}ĉ{<=m2o)\0e~Q)Ͽ;O.1]}HA^Ex{.*L endstream endobj 6557 0 obj << /Type /ObjStm /N 100 /First 974 /Length 1391 /Filter /FlateDecode >> stream xڭXMo7 /ЊDȡ |+95r0EQ GNnHH|97$ŏ7%%iMVSDbqCBčVOBCS`IK۱ %BOaCSK oO4$aj%\ԚzK\,93HFICAgÙ}<\V%2,wHHY㡃_h.pb%,B;N`uC/# Fid9$`C)Q9 qWj9cՈvsD V1XUHqAnT{EfN>&5tYyoIDIa54E#Eּ%c ^I"!+DG%Z:!ita|4搠kB֤[=|$Tc$+f( Hix%:4&*$FBHWȟJs1U˰ oHћcv1(Ȑƈ`L6:D..v 0oH^0zWS#ΙPoOX< Rm0ʑ:&ͭӚiQ. QKIUd_ Z.>-\j &hkgfzb3x+j@JKXT+XEHְ^<!w @ۛtq]28H++)+4sKOHs\_*߼Lwwsψppi{tp$?~NW+sS}w<~|<)`A9Iv~*Sӵ0 f:j63քV xn[C6i<{Yr/%9bFD-P l NMoXf\WpizV̅5_]ri!1khi%+^*kheφev 6n]]` UrX%xei-Yi,ۂ}rFP 8\(ײ>-H%Ƣ;$j,mhy`ivYeL 6YfbgfdM!UD, XeMKVKՉtZgץ]+De=fO߉tc79⣵K2mѫ$xc؟,{E2 >%&lEE"z mUft|ܱt ٛACVz[Úb:ޡkEME?-ж}+l( iְȲ(/FFPiOkH<2-] =Y ` endstream endobj 6642 0 obj << /Length 846 /Filter /FlateDecode >> stream xWK0WD⒢fC rȦiMVM;vdB3lӃ[#Ɂbi\ <_b"eHm~~\A@h nn(6GϺ.+&\'"ntDDc@N8s?P\5.YVr, U</[gMu(گIsfS7򴦕۩&Emuܙܚ4^Tat)ڶT鞋|Z.@$-Wx|[m&ݽ8iB\tn_CL}Q褼ODn9P6}Wك$H%$|3fH{r{r endstream endobj 6687 0 obj << /Length 918 /Filter /FlateDecode >> stream xVK6ϯ@~(QݞMra咍"vw#1ofHV-'LrWe͇vqTD>DRQe6 ;bv7p`|ʣ>sBz}Քygjtr}tb3Znh6rozcFFLOvwU 1צh.oR:ф<<%" ^ W2o98Sry_*IJAD)Ap <1x +$95LC^89@N-D;!j#~";yJxMoPsՙj[ԝAkEJ1 i8M"^@\LÉ/~e+ eH219%R#F),4t"k:Z:u&bk<]Nr)0 Xj`H@e"F 1t^nRb~7b^N ژM9~2̊W^5+5`:MG 8#ʘSpz;fepM(NrVgG*f `pg?8(O$Ң #īݜ~nWzZ9#v}c ƞ> stream xڭXˊ\7W ԪT.`//ӄ{ 町oq&ž0uϭKͣJE-[E|Q0/,<iEhiA80IPx1]-3`§cQz26gqT̨I hVaNq SúN 2 [a \j57H;n8 !kPfSC~sMpne('H#4p%3aGBqPoY5#Xgh5Za ng_ J[8v=N퀷qEsI7Pw &YD,i2)hNExIC"B l ma" BR4H[Ѐ#2 .T Ҽ@dE÷ӂ393ƒ$YieDIBqZ(z:|CRSAhqBhqBJ 3h骕(,]2mCd4䮬`ȺFNEU,_~ 5jӄ>i5JLhցρ=əWk{/jxXu8#F$ћf5\5u\MchO%ͪ%]&H*rEKJQU)haz* v0DI/#}ۻo!k Q4)Ʌ-JDL4|/r|ur_Nx#49}mpq;_>}Ky.@I~>ҵOKgK΄ތdEI~w3cHA&(TܩYEjϡ/䅈ga "^\XYe7=X6| :hm1d7A2V*Ü!3 [?5JmWk eWl5zSklO!-ngm * TZ'WEK,:nsMFy[8RnF֋ ]5θ`dĒbK k<%x6λU>4\5W/8nz1Mɱ=6Or, ybnm7QQqΡz$BojKC6;Vw~Ƈ FF.qYUcED9ֱLoXW^PwmT ޸ç$?ڢh} kodݣ, 9 ΰڡF wvĤOK9Վ$jD+{%gpY5tGɇ5pJ:|$C¹^9> stream xVMo@WXf!і !D\(coĎlv\8y֞vͬIpl$`Szph@Js̳*γBl$ ܝW~}6Q,vݧe!zy_0i ,sp9S =*Ŝub*PG}mb* &iYU>k>E*V ۊc`VTQ557lN vwMZUSdm9g>eZ 2?69c3TT8 ˉT6[7Db8hWT[aA3kjj|(0Z mzv7D> stream xVQo0~߯KvlPI6$%ɘ9Nt&xᩮsw_Bu@w'g9'- @ b Y9E5!l= eTiVQ"5/ާf!Fe6P tex9I[vDLUS]rkhDpey (~X0.6փJ*:NO׌%.tcnY'*+0-oSZ# bEP} )(E|fNU'TT+w|}zXfXv_O G43 -+YYnDĆ HWuFAA68N+d!yPp U0k`ca KB1<4!t}97,:`"߿N|ٺ۽]4MUfe*ݘfz޷i=*M,{, k-"{V۹lʋ?'P)cnGRYEjȌp|媽D!m=t6o6*.nyoQ6ʢ3o`lQU@xd3J/Y<&j'phO{o|A]%&;c>oq;B &(qf۶fYXI Ix Z?p('[kZnaM0Q}AP!*pX/)0&G&~QۏC@|@Qe Hf\,N~Q endstream endobj 6722 0 obj << /Type /ObjStm /N 100 /First 976 /Length 1367 /Filter /FlateDecode >> stream xڭXn7W 8,[! H2}^5̈~]˫Eqk5T[5~{ꔸyI$AX8JGbP$ MZ Kjc&+Z4r)J[%Xr4hRN'5"by -R ~0pJa6,艭UpTnA1XE" F\\By؃NC zRZ\dK=$\&Ę1u-Vc5"0p*[d @4"vL^m^: z{ ɨ -%g:nY-ZjhC(KU r7@ bjhC] mppaK!{5'*Hۦ :`bP8QA6I6 o|qit"09yE0Kᬠe40h51W\"]M25^߾}h"SJ tl{-SEս~4WgH[VERɊBԳb!gۛtqh"8ghn"h7S4d)DٞYVPl2bӏt^ׇqpp}ro}:ospn0:J>9h1 %UC OH QkO0 L bt~NVE2˲C,p,g3;p3 f Zgq !8 A99%dƚdQ4YNbHE5H7qzr2#"tx }4(꭫bȫ[c~̮>rGgղ' `qʐ8;X}n8 >7X,픉_,8kh)*Z$˪h޹Ulf9Y]gg,EcV1 :4Ckq]B?oj=<i;Zb>Kīιd>*N1i:E;cG}!""8t6- ,Z1TDk8pWkW10Sur- 3D{GO endstream endobj 6806 0 obj << /Length 870 /Filter /FlateDecode >> stream xWKo@WX@twO $@8ƒcG*~;^u $vO$xsr6;99 d0[@s(@I\uZׄi\ح˵T]͔-Rܟ}6A,JNޝ6Ә2 cbJA$jW*i@c;u|i~;^&FF/T Evsz/r1eHvFP'Ҩ 087W~=YndeGB ƈ9@`Fc|xgދK t*o~r͖LBU8=_&R lpC+C (~atkEY 0O1Xij'z7HKHhQQ5/ש.G\> stream xVj@+Ku=-]4 tn.=vd$%f,JW]I=ǑDɖPei1$%,6)Вc9(%bM~geѬRd\r:<&̎}ُc"p` F;8P%m. XH5}U33aj)ɘgMt2:DkE,Fk١3TbR\&pj5mDƨ \M-/L,NX.w.Q~"asUsz Sie`"2o|l*%9X<.}׽cQ``- ob{\GRgaA2{!e>`Vpo[xH3.}H@Θq 87 QPڅ(# (=8hnQQEqb\A;=nIP\ 9a-* X/v_JXg=5e>?ɘ 2ce w\HE۳rErʍV/з ِ#2_'܊Hd /z|G8l}Uwy m^*Rfa;> stream xڭXjG}߯/wCb0<g c[swDZȊI[sjj1ZicPQO.Z;'V8,/(^y25(H=8󄊧>+0i7+,(z5gl{V4A $p1yC g1q\  $ ­W4by,EGj !IC-8$"aCP8E"Ce;D`-k lZ!vI^\ I 4bjflH #`m6PI9Ǧ iƦy6gPNhZ<)2kE'iE<}6)g0E D5Z@>7 h z=k $ w8P}gk )MYOB^:Dy *Gϼރ9i}!hpfv]3"tf@5&@F/1e9/`VAOBzógT˼,Q:kRVDE*ۨ9FQK9"{k[tFmZKJ=R9oDk[fyB0W I>ڢ6)5dkM|{ܔ@y-'Y1i$I۾E DͶ;z6x/r|u|_Xן'\xp̉yӇ)5~8Ǜ>&l![CW|Zr MNJ)L$Ju/ē}L s|jj*y,c歁 jO1fA%4VAU s} t j[EDXC_2q5тD"zs["߾M>?>46im۷IM>_F kp2/_CWI RKOGk~x O &Kw X\0 1r,zw+vCa%{꾈T#޼Χnd*tdks85nk5$r_,jg-a^dKVP endstream endobj 6891 0 obj << /Length 830 /Filter /FlateDecode >> stream xVKo@W 2jCRU84= W"`&Їړo, n|::9=I@, V2 $V[x^6B"b ^U, u7uX*@WOOr`)] $RH|6_Lk/&<8C$d0  ".A*Ev.WIOKT)o[mQvv=Ɣ!6V70:#cYխiK̥s R:W̋XBLWhWظoHv1eO3#*pƐP :g۬~s hQHRį'HDHQkW)" [Tȹi2 Ӱ?TLѷMf@Q%~얺Sq0tÌz.55}4\iP%Xd?x(%<ʲ* -gKktztl~3%y_#s7 |-A:^?]tp8nܴ!&XCjc!Ý5FF~EewEfug<:zuɎx OKNحFH WqkاE@%˫-A&̻ͮt3C]}01n]&@V8O yv5@ O_9A* +o{? [O kp7)lʯFu/};{!׍ us_yU|;xA2SswO7&W'? endstream endobj 6929 0 obj << /Length 937 /Filter /FlateDecode >> stream xWMoFW*~E n\HCVyiTK)ˆړ{3oV$MHٛy.Hb**6 ||LE?ng$}뾸MUxívFM|~YbĺJ>;#-<^EH8k٤ٖ͋U}a#@΀>ԠO5^4c):uU]?ԍ **&E鿸m3I;,luxuEtU;:>ysxxi) $;Dv.2d&m}o6U+qLil +I|] zkkhE S}SƜDE|޸EUOhFj:P}ȠMoaG]!, 8ꫛm̐l|JrV~qzbD j;c?F⃈T71ƣ5׿'(:Cue4\s)DO:g $xs ΉsXPFO$(`5wn Wۗ:_iHڈaG- S.qu.U'ʋ7e0#AɃKHpZk7W^;ۡyŐ)z>_ʅ*,o|mƌ l endstream endobj 6888 0 obj << /Type /ObjStm /N 100 /First 977 /Length 1390 /Filter /FlateDecode >> stream xڭX]T7 }__?H+Zo-b+X${ًv(IJ+<{{!FVfa z\Zq@Ė#+c R:>ƥ/ʰ\xjjz $ S!54yz!ZxAf%  Q!kk!=<a x#$B=B7c #fv.x5@؀o[ lX˷I _M./6feC fi(lg6}CHΔϾqHa}1,o`X0<v ̹{i"cu2SUa `=8jkMO#g둧b+V0qx 䩌pk"#dx-B l4Z]Y7AuP3|2hdGjdvXY٭q2_|Cբ"#UtX}5X9,5d77$˯:jG`~xÓ'4{mP +#_GoՎȁsȷj{VPoU<WG2*EҸvaY^;iǐ6k'ܬFlx!@~ b 4lTd\EC\oޗr2t-jM÷h۞^ Ph.grP{龼,gOo}⟿Oxp޿c1O>{}zskcy6UEe |Z;+y% ]>t.iL<`JfJ(:uhS{nQq5T۬2z*'#팲tO{ɫp!ViN6A{<43sh;I&h>Z^i5y{Dwd Qqs:pTWW F#ZbG1)gH$sb7ȩ7jHx$Fw1$滙*RH4$z3uF ufӉWLpkdOqEwsOS'%d!ܲ`/̇+k\ՙl +}OVHo{%dhRFNIms9=.'o&Ϧ; bzozp/ *XV_WuW19j0U $?ÒD"Ȁ$s% KsmB0<`7 ޡý?x6ዟ0R`ƫWNbkfH cC6:g wM[6=l %J:[(nݱO!,6lQ m7tIM? endstream endobj 6985 0 obj << /Length 1482 /Filter /FlateDecode >> stream xXKoFWE.hу@E#@S+D7>/y|3]_/W+ Xo \JS$/֛Ūmm>aL.T;{8?.^ئo_.nA!\GV",@&_ӲXRDC9>Պ}Vm{j:PI[Es߂z~݆MSW&T!~TG!RH͐y!;ӄ8K4_:{E>e B&qhPǮg]ح߰.@#4x ##t`83BAS~06 D "+Ʃ Of+}ͦn« 7 mx&òvc7iV,%G\EMe"0L.v;{I'VvWHr;ܝ"J;y LhhH>|cq4S+ː}v[n9mܬW:\%$0qp$>KfUt["ח/ڛȇ/TN2; FcL&v1>Q`a !~̪Q׏_<neiMuSNh#J'}9K!"{m(jX cBR_2D 2@Q> wiƜ%EI^Uo!5Bo38X?< >E8 1lr\ "MROuF0ꭈ^m=c3yUL8BB4gKdsy+)ޑn)8"XUeBUYuRP]Ul}=l9HU`Pve6 b,MDpFe Qˠ#~2WgPp%twa+sg'g$? NDٟ<9?Y}gc\PqaOǴu\ٶƀk0y-pm0xߥ8o&"ry[rj.eUg""P ::.@AY34CI*jRF?$gKh}8FMrmhs$r}-@~vHI*![V}H^Wx PMAh(3MGD{0`}"_kW^G#{rnr{ôquT YLF0!J̌. iWr8+%T hˈ/D 0#0zpq\r.2.G#F|M#W30F{,Ĺ@!0G|G|x;icsI& ^-fI^'# <ҧ !=рӀ;; B3w.6^Lٻq>53٤~4~Ml9`닯> endstream endobj 6982 0 obj << /Type /ObjStm /N 100 /First 973 /Length 1374 /Filter /FlateDecode >> stream xڭXˊ\7W Ԫ]8^$1^g ~91vb-7=꣪ҩ4l|hjMI[;5Kͽ"SM(r;MGd0C^k0`t+(ȕ,)p +&m`664t_&/NLዣ(Sdz# HO{MS3%[KjM34$G dE%S3 i2H7kҶҶc1ʐfc-AA{ 8q?E*e%5 gKB]Z`u Fk N؀zcd$Xˬ C(vlk yKjb%šC5+ @z2Yr6[\<#<$(s3 e^E{ ֖5Efte< Iq|(%QBT<E$,PXӕ'Gk2'p.~:H~οر#tg/N}'I: \}Y#%͈Fw:r&F@hkGwd(䣃4$bU$]z;)3kVt;D_( Ev54S1*hH4! NY31>]h}th.^FupD7]E4fH ETFHBBo߼oWW|E~v747IC;CFΑ8?y{y;?y|n>o?Gxrl퇷n]^?_p=Owl1/`[hi>m;)G|ְk9XasT+? ư@#YEJWL`̙hʅYCkPLQ`vߘ_I 8obA:^n^'UUTF:0=sr07#UhU4&S>wjh/h3L& fEfL5 1Sf2hjnG)"H =퉋`!@ P_E+2[AQ7w ڬ'H+9,(qQQ5#'QkZ('̶Z#~O2NJ~ ݲq&nA$j`HYcQGFKT W)jV4RG:Q,$AZFEf"?5`Ky+^mHF㦄J;(ExQD;fn7lzg` QY7.5Ō^Tk?ܰ endstream endobj 7049 0 obj << /Length 562 /Filter /FlateDecode >> stream xVMo@WXbKx!і ā.nn+=k8[o7fF&@U2/ 4hADA0HEs$wpa: !bQxcMY_ڔV)2?i:Dn ƀɧD6Q Z.q>ѻ@'8S IP1UtWx,#a JZ*GP.("Zd[ǵ-ar2zc2.SLkAW4(WXsj*/])`XNpIbf~8v >sJ;hdh -8 ӹ.+"vU+aX)6hLL 1gSee{}N6-KӬ5Sw5 94Ʃq: ЧJsgf7% G7JG ilI:~^lɇŒӒ㹼X2K:2 ,/K[<>Otm>Tb)~|Hf6[ endstream endobj 7086 0 obj << /Length 829 /Filter /FlateDecode >> stream xVMo0WD@5S $h)!t(4uHdIVLb'] zg޼7MG/G' GiAE.H1IE,Z_GyS_bLoV 8>3wj0튨Թ9v{W`Q6۠DV_o9s "0J*w/fەp<Ց 6(I R8GeWq-,B(0> ٠pnn MLtysBF)HufZcaݺyCy \α/1{^< itF:CR8 "X:3mα\4pEZ׷oM]ӸP;ZoAzqq"P0+$ҌNևޱڗwYejWcWZؕ,FҤ е(X ۞6CL"ERҞrﳍ!a%'t@Tx_R*]*2ٶox{GIJ!QprKBٵ;~ +Hr(+4:h9^t HA, ծBk{^fh,/xc6M"n'oB7HwX+qV_;nؾ}ȑͻհ⫾6ݧqFu; v6 <` P)ҁ'r&gr0N*U׹'fՏAvUvUyN0r[ehMX&I.:UWXΚ}H1":Pn&C *m5_Ђ|e-.mI*6l H47QBƑ endstream endobj 7128 0 obj << /Length 1240 /Filter /FlateDecode >> stream xWK6ЃbKdݴHS ]^;дdMRD=o(<4J@ @DI$)'q,&5\U{J21 _'S{ӴkY44UnR8B'muoV\Z I9 "H_6o}gJ$#oi1Et eYYg+i3y^2BI0A)i1Pk E팭3\ʓiz@r⎲ 4]7dʒYA2^@D):M=\d. nUc+Ȑ`H6߂pE):$\Q"SE_8|^9JWK$ծWx^g &NOͨ9$= cr N#׻=dY^&̶/9P Ȕ m FҔ!EƩr)S"Yz] a3lm<(f\D73#h"8& x5iR "#xHU:$.slE0Ic ZNH)fn ؇HʱIlZCir xNJ *E|fYawHB2.{ɖj;y8|7@XB@- ШC23baAti ".r(`;S",*g)+{JFqZsus`-ۏِ?@E׸*z ,0cűƗAX`EWp9*7Ek{ىX@l5#*1p[YW<(a|II<)p'c0?u K`|vH?V֫(%8 5ދ1OՓďBHf21Jp̚U&,`V|[ 2ۼoDahͣ0dJ}Sc I)~{ :C. Uk0lXw|+e<f|kI}b=JMHO5 %t|"s 6~ endstream endobj 7083 0 obj << /Type /ObjStm /N 100 /First 977 /Length 1360 /Filter /FlateDecode >> stream xڭXn7 ߯Q`d,YEQ ҿ84^pΐG|h꥕z+ԬH3+)$ThXpae/(/I/j󀅕NQzbmIfF <2 ˄I62YҜ˴Ph C-^bEm}8҅s&],[슄C6c )-`e ̀ݎmAd8dk< MCՌ4puGIn˚a .b_Xe]T ͽ$!1x`G d`% j &-}(HJ|%ıK- Q#Vf"2!WdA 58"}U \2XU$-2a煃]AM d<-Q[$qz.56J !sP6_e_2)*L#cE+]@C5$5BYBGEd㫿:㋷NWwHp|ypt{N%oX^7u9@ sHgϖ8w˯!+!gܤNloQmq-ٗj#Lj46sGFFt59jDROflI".I}v<Q_G3Hm$zm::};D6:͊>h_Z0ܭVQh jiubzQU~Zr4$RG^a.ՒA֓Flvkk+ϕK}_.9=m=Y.ܭjU:wC N(rCdv;Au4f-Mʁ!m +f4O?!_..D:v$ eO1q{1smH՘ e#cH> stream xWkH_!D]z\Qиg˶$w%K6`(F|XaN0Fbi*(JA)̖MY4Ӕ+ξdrUuxj$+e8o46<cW7%L( *z_5v]Uv=3,9hR%`]> ipB4ۤ9̓xe>A>}|,RsEa>+h*hP~Od䐄-zHokl::+RKyFrL|pA)g2VĉɛwD3, endstream endobj 7212 0 obj << /Length 893 /Filter /FlateDecode >> stream xK6)bZ$.A8d{dPݠ߾ClI XcIz8/gff^^I94z9Ed(%&Xա+pC)-s⥿7Kf>9}Z:x c-^Cw*icti,˹& c'ǶjpT4#2|Vph)RZ" o _0}6bjw=.>qAЧ'<8"8#&6oib_46gR WrFv/GT;Ǣ(h*?t u_OķP oPO-sM, Kv6V4vDA9ƺVj aT+E 2JF mT.=X֘&{6!_E8eѡaWo'eCxqULc1Aa'* KyAA̩Jw%(rVۏo \?08u#¢Es'Sqhҭ}Lz_ |a\Nb*@6mUwOupfUnq ܫ7~=n(>A aqMDau_Yoz4o87C/"^Cֳ5xBy Mc hHZD$5Of .:b,#^(ކ,Ci7mW7i6xz<ɴ}<GejT,~S"E<8 #o'3DWA0}#qO3설aSUnŰ-8TTL뮮6 DuF~4"gT b%_-P-hđ;)T_srv_r6C endstream endobj 7165 0 obj << /Type /ObjStm /N 100 /First 973 /Length 1387 /Filter /FlateDecode >> stream xڭj\G=]U}Eb Nj$ !``}1gZթuz\IIaĪ%HWjsN ̉;у!kN5NE7MBw#Sr*SG )G*z>aR4u)\k .Q&5&"D,zugjGjIU޿ 77az6!ǯnuxӓS-"#-xa'& Xo><6_>=϶/qĮ_ۿ<<p\ &Ss0 GG֗(|)|ӕ/Vu6TFe/. jvFVdGoYj%)X]F$yDVE aU~[CAfZVnYklĭ>o1OV*Ύ(XĽ"&P]W7Sel4hl{&G ߷7k >Sϵ ;&V.Xs3h F[]}E%f.lemt jsp?evB4VSU>dfcL\yml54ZCgp^C]MO0V+$o!K_VX0nHUM)0_[Ŧw^}Sl>NgG-|n/ŎSslk_K_ :x endstream endobj 7260 0 obj << /Length 897 /Filter /FlateDecode >> stream xV;6WH#,).Hθ&B+і-eHr÷:tip̐ISD_Dtp8᠄2@Jxڡh#!K$4t~oQ-zJ8zG=e@$ M pF KA/<8{ 0q>UU 2?///]~FA7n/G_y$pʋi!_NLgܢk|>?o]mO+aM@KACU& Uӛ˻Ro>vOdDCPw66ɇ+P: ٖ^|3Lc FG2_FYC]wnn0'!v@ \!9ͥ XY  2ltOF`8d<܈LweQ Swj<7ALv:s$6l:T@2*?J endstream endobj 7293 0 obj << /Length 141 /Filter /FlateDecode >> stream xU 0D=&`M$UG ^S-$R=xa`Dq`5|kgsIUƒ#<+JN= ;`br*֨5}Dk.i(>9* endstream endobj 7257 0 obj << /Type /ObjStm /N 100 /First 973 /Length 1748 /Filter /FlateDecode >> stream xYn7 ߯",AE[Ë 5A\$}^{E7`8ER|mYZHe # ; HryYCnF= ZSI:`WiLbӁYDP4B!%1gi]8KK5js(NST$y@sI9 N654:rKQU4%Z P!gIlThqiťaRKq9` v\hT!@^qMU0@:]ԩ= E{ PeS*+8T>A.N,XUɹbFmt6۪BZkV[]*PuGǀ8/i0I2e@nq#41+ް8qVpۊl^WE jƧV&2kKыAwuFk`:#8KJSS dJ,5By sJ"gY";@S Ep$&Paógppp_?-2Ew.ϟ&NRkKјs#蚢&4G=JH5,vgiĆ%E3$vV"DUZX#SbYj%Q2E$q9*Bkj(aǸEH/U}1(WFIJ/9PR&HsJ5}x+k%,mm4ia_,ŎR:G,r>Gmez3Hn Q& n,đH-QvÐH9MGc.k36&m?xB-kUc6kf"Km2ke`A2]pIڿIb~nUIb=N`4sԵa'ԛ2/ux,d+eVzR~q]O)Jɖ//\ /y8|q/?_o~<&?#uIˏW>e|w9 16=6 |\Bc7 wքٍґ#{kiBPn(EeV==ֿ2m([]@ɢzzR UГM&Oyx+ 6]8fҋlxF#n4mMnq=y;爑ѐS7m,x};M'X?6=}}փ&{y%Sa,dKJ~J-Yp Dpn~F2ihq=O Ϋ9vTggS\n3stooC pr=';;{пC^>^~(/5q8WߞuBat, oOy{{+ Cs im.oq'o֧wܻ28JΣޛ%9 ̎u\eMט_imߜ\wf(w{^ ; Z}*qV {-o\5%oz`U97{voMOgfۼ47[}m0> stream xڍwT6҄RE:QCH* $$ IU*H* H)*J/_PϽ_VJޙyfϳΛwv05$Iuu5 $, 89XW~) #RPF XOuW XK@@!Ho -Tx큺@-$p*#Qhߏ@n(,))~W:P C!.sïP8 2NX,JJPS@x=X'! C{# n? 8Np AÀx+ C`)04:HS!~u~l,W?_(醂 GWza! C< pWuPMOg>  Ga1Ōe۬WFX ?8ﻷuA =>[pP& $ą%D0w $x7 +pgA!Q@0? @<`@,?`0`pnoh 0{$_G,htO)ߟTRBz}B $"?]Op@/]ߨ{C? O]L/R42;R{+!npW??ښ#]D[ORؤwY8)}EW&Ң^YC"i!ɮxEtOnAKіzeZ T }3]QZVsbUXTD.W<3c3NVaӾ8;J\SQhB͌oF-ZhzU2mq߷kJ YWkqq4R Ȟl-28A9VRW[)a=A^ދ@=aGI`&t0@H߽.m:(PnT-7E੡pD/]O+SeIaݤe}J'?~iW'F(.6FU1R"H& s殰#3N5vVssJ,=.obH\zя N*ܲn{Y6!l:;^򵖯U`A%HvMYZ!N1vy:<mA-@I߫ ĽiNF !OHѠG7& @7t}g ajS%'$yg*=ƺݱKh"P (.mВ̜ F.Q~1G!TN^Dz;|Ш9`2Vp0;X^fQͺJ,gPջ7MfoHۋ<7.tAw;3!͇~<wx`l޳[c'iyMlq 5'Bgt+o-_p|n^N>vj8cgآ -ִ&h^ce`>x/8/ :e4x;6xدfu$2Tp<LV9Yߺe1JIvsȂx`^i3e7 h jg'zH֞*E`׺6 p{# mud+pai@&EV [[eU`W盟^7Q&C,lQR }2G|PSMJ"1nl}@@sP!+(/s.{ɚCC{rO:&|;u]~ %nTR_[#{&fcZI?2`X@hE)!gœ'{1=^4h92oeùakz;4veP,1̜;+f:<&.,=XipՄ=XeVAS@Υfx3(H~!M5f<2>;¥ܒGكr ѽ+oFK$׹gzAЃAgz9q:qOzMR+3a,}3.IOOL"LV$2D}׊Xaʌk +JfJRoV $Ѽ1K(j 0(MHA}!PWHCCx.%*o׻zo^F҈,x7sLi31@B,q3iU44yg-e uix8[~<+Jt^^Mff4#[ΦV'@mWj ИNOPnHԅ ÁS3qzџᷙ?yjbCsW>r{Srר{W|۬3[eCb-c{w;fZ|`dNCA&G}sJ> nkZ TDwR^|a>R|btD+DF38=hIR0e;іIͷ/k/FyO$U R&:)+5Q l,qG؂UMI|; dSQQo3m_\Rwߩzg%SrܤT˪Euk{aS3drEyg{صʲj!\a#1,εk]j$An3& Oq5#B藷ʋ QݢT^:*o"v3$D}rZRNy4ȫȚ<y9X=GVIĶj񌟨޵@ܫXt9 (Gs BȸRJ{\9Cb +m a779^$w{R)?K˦ݓlnQ s6~h-}}u@] &8Xơ@|(&AhoKjt3-l1NWcj >Z@]*Շdaav[Qww:BOi753{ӈѯ,_?zsHXlF@/rx*t|DžiPb;2jJr*8UeYvKqс8GЯsHT+Nh Eȫp[g.Q-MN\k׃B ̶K Q7Ӑ :T+C,J\[_L&ҡ#L+!ȗvfD+~Jj{E]p ,s=pPjBEsP*UC6uwpf\c'~nfY?tp[_\Ni'Q&"HLE뷨9'Ku[K6>ka 񽭥e[/=ڢϨ brgYVEJ0RVB!]jt4gw vo7{dBgN]NW|IGCyo{JsRGZl4K>Fl2| J4r3Y|춄Okw0Ĭߟm~]JlAj$VDbRt)?Ww|ܔvYHIVcML>'4 rvXQn{3j9Ax0 ^iJ`cŋ2 gKVY3!wog9 }DQ美-{5N@겹eա*T^h`']mk,cag䕩 M&. Dq7oB}[百^͍lxzܩ"PIdJƺgforדm3^9ZtHQ?<ơ{52qK$I_a+|SzR*tseWʑibcz[=Hhh%ʏ*dgq#)tYeBVmz0l$P Q8uL5ԶwegUV33jv"іB&P­<)u"%C(R%Hv#xQ+,GWU ]]|;҆ш! z?kMn`ZIFJzgЫBi(s;K;e5#zmI21ښKX#"r*M֬; #w4k^Y m ,r's֞=Sw.yqj]cAti{ŖbFKo~ɲk)+n|NT'mY?*z!b Ƣc_- ] KbfR:;I&*2<)[Vߒ_~O(4#!ØcMSw; C^DPշvS !I<*퐄K?QrVn%R.C8LbqTFhWh5G[%(n@ta'iv)`u$F@clEUoW_?=$% !lOA bG((wy4m dv K5.ES1)]P+ކ2l^Y?Շ*5}Aw+y?L'Ku2R]:C VQqՌT~?/6dmɿ\DnwXGy];p RE*j!9;a2O+ͣD.`1aE/%T8x֘:ο0Y)T|L~@Rt|dۆl#/` aqFz\_K_g~uPԑ9n^|:6lU־Ș6{GǪ1mtNQ?!E g^ؗQ>L<{N_Ed&svXHI'jgҟѐ:G'2E0}1t;h#o ~峊ƻ5_+w: <* k?_.P60FPfkq+:v8&R;#X R*+ ]'Qו e\ouF<.lrN[D/6 XKaQ_]Ȓpq@@uUk#$Մ`XcKptzy錔 AIBζt36 |E[ϝ>v圱5GD-?\Tu Z$"qr,8jLŅK;J2prݷ\s~ a~Ѳ$:cNLJ juxL> ͋y->jŁync>yRXPHid{G %źQxz qKʽwǟ;V>|Fz`Ga\xmI6.rv kz7ٌ(I(^ endstream endobj 7307 0 obj << /Length1 1408 /Length2 6052 /Length3 0 /Length 7021 /Filter /FlateDecode >> stream xڍt4ڮ%A!a-轗(QQf-G wA.$Ѣh|#9{׺wZ{?d aH($ 0?$Di8F0DW 0EDݜ`A10$Dw @D H/_K7 (!!; C@ 9vBH(G nI{ , qF#Qv<|8a6ˁg؟9p\i`h\6it\`? /r/ !P(#p'@GY@6'4q ָߝCrzn㡡( ͏;](pYwJ3 A_Gcsa G^a"` `v0 @$.&,.`P{^.NK7 ` Ƚwrzo?-rAA XT0?6QpO=A^6H߯#U?'/x$@!Q@$& -|YF?j[$.OsWW<Fh p Q/X )99vsn3on8 ;j`6p7a 8%!pl Dp2f @pnx5'8D/\_>#S5^0ه}xgq y6@R}H5]bc9` e?vPv~ʿߚ\= ke~"?)]$#a ֕Ng]lK2RpC Ogwx`x  :LJ[Z ԔĮo k@B>]ge$`>F2&]pT?VjiV6(QǠ9G#a?ex 6i?|F:&c 5!aRKV$p 6z[pՙE"Wț5/5Yw#jcІ%6Ǽ.K3MmD/a!o$"bu2wF˾6Re5L9ګ mZV֌p=8UkB\N b!7vzŭ5q%QIBbG<+}7޵YFn0E5D[b9w5$-S+NMd+FV?Dwؠ?|v[ n ?ʑ~FٌCn>͠qp f+(t1 _FЇqCǢ(~rF'k궙#};qnVM~Yl7Y7|'%`FyM/h@r~ U,b`˕XM*$xand˿lra.8]~d5KoEk+ƺN%1 i/suG~!7y8 rVa]E aޙkZ; kcC1 g  ^{g';~j^ $}4]?hQB>>۶&ݖW qU/ Ch7$w\3jeh&-.m9!4cgA1 _Cܵ n0-'͊*c'C4> FұmNrlf+.A&g ;};׌1l!+Mlm[VYƞ>L ;"@}'V>%ѳf\?WP+Zrkᥲ}Pߜ*Կ9 3Rep0'"+f|uƞv-,OύG8zv SdB\ Ib/GE/ Tu1K{Me䓇Ⱦ!$IT%So0rkxǕ䣻H铀H$zE=Y̗`^KގљW  R\V k߅*š,mkH<ۮ&ge"g,ݲ1V::j%fOGyzH6PJ]4D8 YidnPJf9b+~0%|^;XXd S,j PJA v [4$=/O*V⼉rN@"Ĭh06r 0b9"z쌡%jFo6Ӿ_5ʁ.#G5'b6ZE[{tX&'5,[D_6KsʴeJU4⫯BC6ڱ"ZxK{1sA%с%KP(1j/uUM{Y 8J&5sت485E " {/Ɣk(=KdBMo]U!>$504+\m,u]tQ@6@?YQ0$&iHgMW[PƑCվd'Zs֦E6v* ~9Tڶle.V^spJ̦VTU tH\lgcIXx&H2̏tm3fC*^;ivj8Crt &vǯ\6[ ui㹞cd VTKuh%k ,IG\=y}ai ;}sxzᣅA%+gu]^lL0#r1BCPz^6bƹ֔Vp,8U@|sxm2?5X1WL%x:}K|en6jCyOԟǞ|&SM&sQ ТepjQ^(p'AC*0:U͒NL'+_>1PMRAJM%:zg,H9G3ztZbc\a9Â"M'6T̯aŁ۠5ĆM)m6ȼ<{N0c,+|ɃhI#Tݪ~ v+ԟ޷QЌNڷwj9O{e=of)D{÷n|9Wȅ3z;CL"-J9-]fx-Z+ hHFÍB6$> lwنi\Cw"_)?Q8v[@Ī ΅ǛN8^ @t1nBͼdlLmUO䭷?To2) Pmoe|>82+Ȃ36Ƶ}HO,ؒ qW[L$#b.R)a}ǘe*O.[)w;?\e%726<Ӥ>jxP-‹" ';s6Y1;oUm;w ٯ&\.Wkw\QK=8Xq8͖`gW!Z%òU gCF0!2%`;uycEd Y }J{S 'BN;Z:8P FjpGΩIaJGצTwRK&_1=0Į}$=̺{G,|ǢE0A)FCWmWzBoȕqU#хWv)U6)W+4 G_UȞkIj H 9|Em=KkRӹIT|Gy"cdN4$ C5l|WEN^ǏT|'p@?SP3qML͕uӨt_4C tr@tX0X %Ai)Gzi~":㭋M(]76Bbљlj91IAw"NKw?hJC\ Ҷw'vQ(ԪPIz㋦˳q-7G !۩s#%=rdΗG_ԅ 4kfvʑ!o8O2:/QgRLYuiJ?Y6J).̚~tB]E Z{*FlD7ih%13Э@~6~`$T 'z)w9@ʓg(p+7r&9}fck(ׇ5d'S-Lŗk7MNR_VU Roi^}h2B$'Uމ/ %tРp(o`FC6ROXȑ>^V<%F _o3ABBeyEd1|"fw֋9,mHas'^ ]rv%[2hi7qZK<↲ E<4$K-w Uys{O$z]eۭJ]A{2@o8&iED7jTCx=*UG >.4uF`"ӓ\dK-A ƪKɹ~ɳPy|i2pфJu 3_%K@,q;_9{BI9H"sаBLn҃ /`1O|o:Ya.$Ld[t, OI/s=>& hN7+b!2SLk΅^4vL%nllsw)hS*#g@O g -mNEO|XDO& r$GͲKP޻;4l rcj%tV1K<"swl]\@ړ(ǠA>O$͍l>_*Jn/y8RA*DhϓB_ F:+A*UOڊ#ԧc;-kj[xv&AT+EF.҇At; PI7}7't}3:{; u< ];ݛxos}.ef=0{MIGG>dK |As*ΕlJT)Y(FPe2T^<,J'j1|ؐ]%8 !֊o7’P}-PE>^h8|'Lx@W˧d3n.PNN2NT_<f֞V;XZ9Jzd?v-V`ۇ5S)|2հ}D̼0;s~fj1pzOm/LVsF]C4ia*$٫H$?Y~)/#oY46*#Uhh< p7#=籃p&fUr}$:]H(] O1VRI2g]úM) & @M&)xwVhӼYsܷJc~(\c4BL>aR+g|/:s.k#a%1s鏘4 endstream endobj 7309 0 obj << /Length1 1612 /Length2 17281 /Length3 0 /Length 18119 /Filter /FlateDecode >> stream xڬcx_&vvǶmm;;f'۶mc6;g\?/3þgUպ뮺k* Pޕ`eg"`/Gp5Ñ:]Ō]<M@ h `a0sssÑD,,]T*Դti'`;],܁v@{׿U@%`ne **iK+H$@{-@ ge wR^Lͬ)ͅ/ 4 i tEp:Y}X,]`eojfvsrtvaL7ĿyZ`7ퟒ jlepz0rq5/տhX[':3/?:[Ǝ^hk7Vp v37 f/ c3{[/QoJ }"7H"oWCz+{81pc;+[Æ 7iW+ӿV.V@3%+WSKNˮnotU_331?g ho__%eťi(ڻy9%?Kw0_0DD<>O = +'oB.ffC0Zd&??/0f̊_ܦnU׉[5@'ne7:Wk vЄn_3PcqZA^`Cw@Z6w{uCgǾ H-ew 27u Ѡ1L3jAn BI`gBYŠp:=/4.&"r`txhww,,91$W/#zOWwN^ pW+AFᡈ`μ&kYX,KS} L7ëXrvzg -HLf ~%l{=KQ!DB7m$R`YgzGTQsYW `!DG ӧp|D9ܵGtWSo0aK.I|^M)) &4Y4&Εv ^nzr/brdln+f0$)< Ч~HJ)=Podl>>8o9DHByw'f5PљOVk$~KFt$-8i m_+Ge=ߣ ui.:~VQ$v]% *w1NZ܂*g_{dmHIpߵGTƢbȼm2.6K-o)U 2ȼPg~BhW)Cix1@f` #'Dp4< i.M)9Zʖ}c%7Rh!݅\m pgGmi#jݼ ϝc`\@,(SPyM`h86 ?=n[pP[{,nd+?W񛘄9@mEJ QmR1wvu$$(Jj3hvi"jHAl+ 982V\$rc*ӠO Z;PF5kXUց!F35\^w0*d3}Jc'l3x*+'*LRXYj^ގAܣÉfHV~u㬘NTџQckYLyH5Meϛ k(_[ aS|׃{aϲII#o>߻$rHAמR|ߺZQ·G&c %‹TEH/VSZhCl hq"l/S=gwMߤи?μc(!&a>jiĔ9vN [0 }*F$1HA *:gQLի~MRoC4k&ʂaH޵ڭ HLHXբ^<*1tV=mLٶ'T@fzeܹ27mwgkցevCBHT۶^k}y%vcM]%paS旨xZ^x%hyciF|,75PԞG}6)%˽8G GM o`e޾qF>iV(I; <"D.M\yw]R%PJj6ItBv|5p)f9$tMGm p"uo_,_ _BZ.c4~1Tx\<3.;;^k6ĢiV(#iiM,]Q{Nu36Ԏ56 ވ J_`u)5V6ݶ?nʓ-FjT2қMRzFX3ubk;qԶqpvȑTBc@(DJD3OAX1&ދ 3GJy& B&n/?Hz8\eHE[Vև hօr yKfsg]I?Ws5|k5H:F1i3XdS>JĎПY yM{3ǽ̆aMqN1yQM\}62'9 Q!+ooZۚ ^|g᭞j8OD)E,)D K}\xsb8A/ΤlF]8ҌnCV%L dXֽwe0XSG$pd=j=D1Fw13YhFdP7Fh y #Ķ0j$:"}X-Bߴ c..To k0],%i0-xïY{yj ? R¤[z0ņmM;7袯 iǾTn?o-ۖ/L?!ڽ[t?nz|N˴Pf¼#Q*9]-E6`MgfXWاa&|4vuAeBY@)v^<^yہσseutNꖿZưEog P mERKOI,6> ¿[PThCQ.e^l?| ) F3;)ʣ xT ) ig;aRY%f€QrsX]?]W=vGF$s1_ɶj^.\pES{s3k2qqboiP-_eWFpAv{$Y:^\g\\_t-4ԥ\:*|c_qtXdOQFw; 4@C$o8epiu+u;by ŭ`d eĸ⃹h1ti?+b$Hb hY^48̦@|W-}|#}jEXQ[=s9X.6=I9OC:R냝!i!w4IGXlf OKЀH䣒&.p }j@W;Ln(1rT@>CV@уAmN^=a CD{VL/wg[mpc9aW? %p(U1Oh16' ȂE_҆r w߶ |w|w(y@Fн X@@H7 2f)4Y{k gܷV1ig)s FNSſG^,-.6KLhA?(L)F#M+-[pn)SaP[Ѹba"Ej-PB}G(=`e[ꠛ}.3㭒%EWqUZsb@GZtTPw"4T2FmBZ5UG ӀB<$*K_Zv*;wLH!㚃]b6>9k(W64ـn!-{ͶuUDՋ5GXe9<"nskWdh=&w<סID tK&&U*^&xb*hmd e:nO12# cApsn5<6K4q{Ku3Ǚ&sS/>",*^(rXԱ)I6b=L1> "Hah sr]X &KoD*_Obה `Y.0J|L!R81FBiO%3k>|Vp4D2Yj7ݜIˡ]G4i^ŠV _suQb Xl㕄L#5ÝBWl׏G]',[2CnLO\i@QŰ1$ۜ[V+P.H-˟ B è! )aetnΪ+ȴFFû9CdvT1~Cu&M#hiKsyP0Uߜ IWд(Uw&|H5aLNZz<NAk&.mR]aB Т?a,BSI2hJIXo0eӜDZ+"Q"%8BcIVx]_d VYzO{&Wg&Q 'S"Ļg_-ڳt9JH]zĴ}vw0>/9"_JzY F5=Rb0&륏,"Z)uX03ThN. й;<2gWme,,x60C^V!\-|uC;hMPcDyjka9SU3?&φHi2:CK'JO/E}u6ᔅfnaՔ4C?1g }C,Fze!t/4;bT ή2ȩ(c0ugأff{L;,IMK~H'bԆj> "4;.: 쨡™NUmwz p=ʍh?<4IYʲJXA͹blV$y*NvX_8̒⵫>Nuy>])'0jIB/_[>,;C_rzH M?5eJ-ˣ&)Wygd|x[ŭ(A‚êYJ)\đh?aÑyGjvNp6d\Q?' N '=״'EunR2<,ֲ[. T ͵o y:9z5,;kiwDQ/(|4d(.ϕ "KXv^_2*ɞE{?$*NkR$5FYRf]};'3Z}H28,zF77igpK=`QeϊWpc}ޗ{뵦_e͹,Je~y#<6E66=$r5 O~BBQ֋. bP3@hx=GhW㒵 "+~R~rVVMu[gUkqڽgDWw^6l5Pk͝wyЦbz.?s 9#ZnS Fj+^YFhyj)L Ӑx w7Y"عWRzq&~oRfjd)kA/=)o\j&MvדWw(̽m 3X>1(Con)cs}~^ t`= +_`?l.ض(5t[<1&Cуv77df϶jFq,&u"~WɅsQ\VԑgPP!A\"X| qhLk沶N{ MuDXsG¬Q+^S@3Zis$'k8cP\17b7ξ+p(#է1gW: YF8{KbrpCʚQ{L=P+y+2-P'Y>wh}Rvmگ:\C.[AE2 d{gQ_C+oDznkڡx&*&9gW!`U>mvjK\^PdmѢXWnĜ%~Hae`ω.HThv̿OP<s?<`# /==?~#zS CUóؙ]p@)ae/5~4y05ONX䬘SbB:EB v%Yչsg@_>U~g9;Rey ]QX2wo@\7d:T<'d d ";M{t$k()>- y!.ؠ9(\:_OπE)*`~c<b.5"Uas0* ہahC&VU;0n0d:iM~/~UҤK!չ"hs0RCX@]BiRƳꭲ,R 42!(첎RQi!~ (u f­˘u l'e@"#=,Y^𥨁 wc#,g1S& qP?vG>RiƣN%O# `030c?_|-ϽAϴbX?slAUt ĖΠh͂KD=LB< :}8A2_zJ)珉q8dҎ;S`ٯ `4ɾRa nCw_jrc<$s $Cؤ 6ts 1iI^%B#|Us j;[0'h3tT@2jޟv*@ZE`I1Ka-᪭Ŏͱ1;D@w WZ eor|ٵIO ~ҫNS׼z]z5^LcdZD\]םnz)bafײh&7&϶upn7?cțR6ne.kT &C׾jSiKV<~X2o[׾<Ñ [n^6 |v?|W+fA,:h8qtIqSI({GsToO&l}ANr&7J{yiKWO^ZB/Ѯ)g"׽1‚kxpԃ$mS J*B}F8y2Cg (S@zN{h2ނjUȾQtz(K-Wzٯ-?!,֤lj0p0V(8imIy`]쁱QLմk&(h hڌ8g-`t͇ ʜO3s`$v^<㦂{Lq*iP<4ȇ_;C6RqV2nV,;V־eա{_q)S^Lyx- hOA1lЊL׮[Xg<gov-D]K@~y92xUol=흏Dw?$-J=GH3]`nsʗպ2]GzlGt-D:ɘ^C[ʆ31C5)삆^C IS7-mgke誒lK{*À/ ,[r^ټ8!so~p$h, ~P/ gRDQٮpjzd?RҊ` : yɸB8d rr[%SeJvT< 1"fKUCGx2,fhjsN YWldsiK'\ N#fUNi=pS7\rIԦDWy%`

YXW{+7*yyOC~y}?;K"Tk" rOM XsE7RZjIL ";ަH`GLPu+j<5wWSP\(lϫ51 ΀PKyyx'ư,Tר|t3>% K(xv{(HT) [uU! IW}EiRX_\(qm7E/[lم %X5ڣwY0ZL8I# G @w0BFPvL +iq{P ȣK'xz+Al'g]X$`q:xƔ[ >.3vKpra"Y&UdbhJiӲߦ-b6+AFn$-0jZ~y=kDNUjQi12XS7{ex9\"P/I("Z.iYLbk7auMڥbyiG)RgP;E5iyF-݌mzYê>YCR(X -B3)[!.-P.S}]+~oB38p&q" ]/}c>A?ɂ۶XW p襩9-$ю^m|0g?V;꧚5h潍%?9+`,x9[r67eݍ;d|vsGjeL:\Su2,!ۜ(ybv%k#]!Ӗ|oRW#^T~*3>j_XKu"^tRxD$u-ap5pLh;HERm0LE@Ci򁼚AMϼuډށA aXRɧpr`MVhޘq_JX[}<.#/$sѺp0(JCk73n4hj?2^z˖н*Dh(]rɥL?1@wԧ|4Z @iyg)Z8$LvE?O.XFjVY#yr+H}*4&3[",.b^e7Xã90c2tO9מM:QQQ'2:*8Q ȩAX7:&ŲKƫuPP!zL]?%ZDus!$ bW^\ (s:8w)z$=\d6)ʺut߁-߃k-3nB<aՆU \   wkJ1M11JK3lv,¨}ԻPn޺f)oWdIJ0YGҩ2]t%i +p|Rv+α@3vKDUT,(X>GgQCAwC2[(?Ed[M֪-ZPOY^81Y1t# ]lќH<k4.o{g.&Y8k~;@LL{8BZ'NQwe5,M3rg{[S?# {QBmr6/DVkcMAL| ?0Uzת;^Ӡu0($bqд1s@}O As[- Lq,bPys1om0hLHu2e53>b(q7t9l4cRSߋ`m҈_p6hЅB oڼ,T#`mT+:alQCjjq}&t5RDǷ8@4PdډIf^UnUі b4+҃>1cݝ0{NoB=e">G6j<6"j2f0`iGUk|ڒ9o״a*#w,SAB^|kѣrG7o2Dc{ޱ Tu4iЖ?n&pLW)V'`q>WuqVt|)iOB< sd wp]H0T٨Bh 8噿|uq{b hEqWԳ6y sX3>]1{P8} /a! Lu*`]٩~..}9Rze Ղy̗C[X:yŒпcౙ ب>rִG߮soC9Gw6"ۓ $D/Ϯ3%A/l-'z >eUJ9%Nҁt/V _ْL^:َ7DS-v L7Z_FL#3P:P#ݺΈ ~NV=y~Yn  x܇v, zU0kYHU0_?D{yMq& PbTM/:O M^G9pmRrWޗHk`Z gVa2sdVY'BJw]a e9 c4 Tw;EbpA'x+߫{VT6nիkP %#N+,n1~{Eꇯq8jY,B*W0T^WLI?hT5a(,DL7|H~X#M<LeOVkڢM`6rcW/eRBoݳύ5LiTltm%Rgm'{E2 A7_!vrbS a*>~QRYYx;0Vdݙ-#=DroRTiY|+MNkmP\h'V|_~of*] 5_l4> Ko 孍|ͧpaFr.(a<ԧxְ`VGEgG9wy{O:mx :ZM@VN/JJq?3K#F7Eڢc7Pjݍ1oQ (+`LUZsHȄDۏ2|[#szM! Gp?5NU2f4v5uk`y׫IL18?+2{|WfdɘY(Lc7qdIq1ӤdEyר?_iZ{ 6@"8[ͯ_4g28[R?@'S% e"}Ȕp|U|zcsB s4E nW,կ:=7#OC(ߋHqɅL%n{Bnu(vlB Xa]F^x8YW%Uqv7ˍ) ;-F UHMnPiu!G=ط* :U"O^ z>̦KuQ)B_PӪ.lu1h2%$';i!e;"AP\cFAB*Mycy$居;ӟP8d*{"3&E;bcx-~hKĄJD G'E̛8d6ũ!y€:%}zOwkQ fGw*F:$ү-B>A0+4ȱTl2ޭ,c Vxu[_g\(H^_j*CL y15F8^#! .dŀCglײ>EEW] ^P|(5޶G`ҡ*O3%ktb.cMT,t; 3eVTvo[Hp8>6Gg˧]͉y 9qV'*-s-2 Yu4ؚp+%{wkG.L_1 MÂ"Ίp( $VU^i?g-SO,Z?W͵NXy؂w|^"?~ .;^7Z[ۘJqzB#Lm?Kq2xOwy)\ ~[?2l)Lx05t8ī}@.*> s V$4 .!/kP:bļވLXՋ5Se¨>4h3t FNJ% Ib@=R0O ta‚ĴgRaz[A,MLK MnRд10Xv< ߜ3gq0e!s`x8}۳,VFF뇷"ڇA+0J,}+p"j&/.U18yz. ~0766n.܀|GɏjHki0[(bSv!fIW8,8Po{r_c3u6 X ֈud+ a_"qa; $i JHY9p]bA=o)˥A/VŲcXRc[KE00-@P$a+.Kƺ4&mbq8$8 ؼF/ nGytR"~'V@L9cpϨh?h59 ᭳hyROf7maaoj$ _r\-YP>5Y?޹־`nmAc:bQc}g+TG[0(Ch礙n_j鮺4U,=a+l["`I :P҈RyA_Sutw>v&Zmx1Y+OքC-_a Z}l@l#zc4V@(~ԟ endstream endobj 7311 0 obj << /Length1 1630 /Length2 11641 /Length3 0 /Length 12477 /Filter /FlateDecode >> stream xڭvUT].\eᰐ; !A/{>}zO0}U__cRj0Ý '03; @M ȬvW1wH@3-I -@  rvu%K`O @t9;cC l U=9e@t5sbP:V W? _sn@ w3/ tuus{غ]͜5N.+]{'S,\mwlc˷; YkZ,Jo:@/_́K[7g3wdήfd@k3WK;;_W֠3[ݧݷ_"dCnOw ,ANK2@?2]Z=/{ZA}d[Pg\wgfh߿r`9Y7b[7i[/-`e^ZN@W['{o.ۿa6N5oJH*)1woMIkz;FG dxA^_fv3'/ x_g%3ѿH9Y, /y{@/"B]zV/op\Ҡz0Թ^0;+0=77PIV#yn\ڮTY?%}O!M;/nqjƱN>渚q3d;+=}Ga6՝3ZEZ]͎Z=2:ͦ4gnb3upF ԣ[7(|1`60%f3dxlKZ-d5zKő~AO`*7$˹$sIڽw3ѡw62J%C6`8$*'[$^Y:?Ma,<OxPzW Q'I2f QKWERw-1 )F#e2"Z)"8z6Q55zP C> šjSx(@,[F GIvj/2zJ}_yo#]0CyB#ellO{Rdj!<6/ ΈKwQCk$3H0Ug_$x 6BSƾ~q&P"E6kwIѝU:5V'uⒾϵ/ŎhD$xTid? a_u.ּe:4:ZcX)8Jg&` jDFw1(/Bq&hb>ahF⸗[̣I sS6MbUVγW MEҘu%_ŴM =R*N5;]A& ?q37ޝO;|DXsqGFX(/S'JwCVi j;yTR/Oʛlv s 1&]&fۀ/ulr[Ur)" gZ4|Z!rl!Xe瓥Yo?-ͧLnHpеآ(c)} S+?\YqfD^y*Ƭ): H\ոkB-^%Q]@E(JRPMD 0;g ?+tmGb^ 2ś04>?ȭa%U+,\LO~t 8̢.u_u;-á(3v}wJaX ?*=$S["΃EutAWzٵ(?!*HOe SQ(_a<&"V92W=R3U_5UD{M;"')Q~R#x<@OU;Ԡ;`}D.o\7-|!jW:6 zl_cf7S2me̸15j؂8ڵ{ES7 [vGC๐gf މIwq#+VгF=VU`+NJJOeȈuaSMSEJNvc`8,:p6s0"`QlhOTL}=3oNcNEQ rEgErTՍaAKBءY[j!HHCL#Ӑq6.X6ъ03KWDyTI^T@I-u\jX19z֠+] uA!-[џ:ՑJU(ЗX64uk6<){" _!9kM(~R2gIi>\lX$(75/{mQUǸ䀮^$2{o"C@WiA "$ }$rМt>[Mpa27 o%c_*wD\1.mSOo|Q/~H4ifI@$:+W`˵%*jwh Sx*5ۄ kMToh`Bu^Y8޳koN>ul#M_ קau~{)1]A)Lm8A ;"&U(72k@.쾎"($g@H[bxS}m85@߳O M@)KSNe-t˄bsMߏ9ly侮& 0k}dP&:z:TY ;;kQ3E7Px6//Pgc;~nBJ+nirA'ZU 6~h2*;1z/2}a@jNw^kC5 YŽ5;i9ȯ D[9jaŅ?%5MDnI{-><+.VkC |02Y–M S#|yDxv(F"lq:gT3̉:o)S˂%0ʲazͭ*wL#GU Ĕ e@rNsx4)YiQh=$u1(ZI =]!O_?j8o^ב?|Sd~x`pN0 d( HQ ӳht9ک;DLIt{L YOpւkN/L  kWPi#Z9z=әxads316e=kk^ǜ\: W&a1P?u&D E~S9Sl\;&pcox3e(RuasCB!έaO?Pj$I}FY&dM |yNh[S^D%(vpS)Gt:4+9DU9.4 VR1 ebx6/]bz6+ӌo36PX_}}L~:2w4=5cx[  {qU.aLߋFw4y!ө)ZvU%",#W憤}p=N񛌗m`ij\pYR¯w}aFf_p\O[4,tIIvj}YAG1qLr2/NOM3B,1AiOfADWRn?HvahÅ;,ĺGN\M3J@fv&vx-)骊s\EaWڷl`lQzv#X ԭ5]j+ )%wќ['?*j  Bv j6ke >P*'ɴu,hI,ps6+xxNw_ f=?d`q ZJi UF5k-W]0YZ+Z68"24 =-qND~b,YdhEw=-K1H&88 %ptZ #ue/DLfW~"17S{+&IL︤8^3uϐXi5+[gM2Ab'D#XK.iֆ/ ]61+|P/Z~IPƣ0Ɛ"rZ {qͮ yT=-JFti,7l6dern9d|fYU |8?k]kSA͋yJU?F>cseHkkR~~{ѯSOuq齕IY[\QSh=/%u\ S]7u6~Pbo'BJҏLE=U,%X u*'2s9- Nt~*RFX{ ^tع-nQ9R\LPT?0ӠPIO;t{GH1F#bdKaD8򊯷/;g;=j!\_J&pCy`_٩g2UiBu2 ჴԴIDMwtgBK#mZn$zm䑧3ᅭQx>t=.a31PeR[>U^\)z?fN%%(τlY-5&$f*mT+](=kZ'@|Cͨ6><(%8DC]GmLPvwf(xQA;4| b+ZL&*4kV/pC u2,l]kGPral'vߓ1ah"T&no`^Vu^]GU{^5U:%3 [U HB>kpZ%<~)T:EȭgI3HǛΉ~r-ړ'"@]r3_C0}92O/]%hNUp!*Qi/ 2W5L~?@&Z:H]go$"q͋4Haj{|[#)}͖U+JS:r4vϨlqUvӥWw9N! gvUɔ0ُeů<>X=55 h1I5~O Et%KTkpp/)9맅R\[sǸcԑi2!eA֕>I4='Ƒh4fSbmRQRB_By=ORWկ9ew-Q>oϲh!G| mPnJ?to[xV֪h^j-3IC/dpj5{FwKtb]=Z@5{62Aszm$gFIefhT4Ax#ǖy鶰$J%_~vChI}Ȭ1/ /I!uJ K|TS0W{>z=Jx@V{Vރo#H.:\ k=d|DzQL?}ǧ*2l}LbSzkRCFIމX1d\ÂWjtt6 tdcDS4ۣrcg(Ve8&Je• 㬔QX&nXCȱ1E>ѪIP8@k8tɾ$# u*̃HKBN 7T<$6 .Ѷ/,հ ȧ9.Լ1F((w&/ |xMQܛ(pYJ@Gn i(m f>tRC>m ceTfr>ZO"9&^?S@#㇡ۙC.`ƒOM K^dJh}xrB fB\03Ą~- wͿ2qՇB| Zq[&;QuFL7L@2@ӆ)Di$=9BEt_Őp\S:fmk!m/!nyQ.j%EfkIuC|Q!"+ed\X:rn) e=wR6ppŘHRizЮ!l9qXv]Ѕf_)E9JkD"WP.@tVS{O8쮛0qF7?( Wiji3i'{V#򏙲.~ s*fy};5Zp;Jh-X'gN0YCYoNby#CC&2ʪˊgNxǸY3 v'OT4\'Uei C$/C& )MKԢfON Y6:M5B07t^P|4;yQ3}fEt1U5v?e\JPNq7^8b"`ؽj fw@&aV|]7j;ʰyb mmϡWɔ="wmWet|)kp{op,%\u#: v=FQCŅxrڮёAzyFA Ѣ&o$;Q5%{D1r#_3f % ׾" - R<7Q.D #\LG zwx8m-F_9fji>Oe*Oѡ?WsRu[ì TB]0N^즳yq HTE0R8qsZV9ٖ|BIUP jhQݔB|Kl$qa^[GHostNDVϙ)>dHELYH WoJJzY<C)` \'RO{0S|B 9Cg5]kkM=C\iz-<r=5a_!N :+,Jk5 "s Yrvޤ?.g>$zIm\_,5?M:D+` b^UXv_s/x+o H{u O;2eǫ7P`‰}ˏԈ dE᝝kr?7pzRo!Y4 rU3u>e*2"6QfLV*IM>J)>]p?xdwCF>IyuIX Pz|k*K,Q5-p-JCȎQHB%]5"rUaἐc'WGg nrWLZXp5tVCJcJW3ҍK0XɔJYQAXrCC4ZƯNf?i(9 [ 8YvȔKp ͊ . ԥ^p.6"hTf҈.4bڶuiMK$yТ7O6YJ:anu pgULG [#2'7&Y7˺_Whͽ'6RV:ܖXD!pj- UDA-\deAW-b렅T*tA*1S DƌH`wtԐXK-8:-85l#5ꆺf\t@Γ2 9IHRӣ?<{b"6i㨌7-ׇ9e/ys]g\<[H\ (a&BۆuQ)?D#su&OI9'VOcMXlQvW?<F[Q%6}fm񢗔\Fvx8x~I4ۣ@̧L<Ӹ݋6k~-hr[_8,Nn|ZP qE$^\Z8ŚA+p5}Ѓ9787 .{o9A%tS`UԬESFKSéCI+d!e7\PLWrh8\žcAZ3aݥ-={+N }R|2!" ιz l}_|L*"UCca >^⟿yphBp~!1Q6mhUKO8Q $P}*ߪSBME.ݲF61?d86S+m.k8.%t lp8er8R:Nu&Y<6&K Gmz.G,O5sJH7L< 5{{{,a04 D3ou 'w=oLN7MD_dX6NijB==ʼnX>dj;꒡ww ~mZs4x4ٷ2$f` Wwei.^ b<ѥEětB@0GWaR]VFCM >7%w0n|LB(+ =~ҥg(.ǥr|o02"XP4diU=<#1JU>Ng0ò5BHK~f| \[VzCj?6k@t$Hx+pYvıGCjG y];S&yvc䒜 >A3m!r(hYNeHoGC!]"q.k8Z4a(eJjך\jl䌆Ʉ] ڋמz[( XZwcaĉǒB >W{fmMU Eٙ1KVL÷fL|%,7Q/h!zeRp xWG{Q3bwC $bQI{]6(3n uR^~F9=[QzQ|У)&m T EE;s e#2"|xըB~bb:3W%Z6zJ")?Zfkn$=ú r\w9n\[FFw=RBsZѸJ쓿'UN*c_%} #ؽ'F;hrQFK¡xlBY kD E%uW#UM3PBbcVHzc͊ ZPg$U2XH*XDBz [[k@Z(qP ڂQ\b8SusFJፈ!L8fL-d6AjN iuE6/cZV)Ju}%[ڦҡAKRrAH<, a?k@2z61̭1ԡB_DYEeCQ]-! Q=٫Rvb&{8""[(30sU+ 1pNfgn;gШFRvQ8~!wtekk QZLq{O`j33mv|wL9va" RIJ [8jnK8.nP=T`({nR=9>e[ EL%,َg t)iUT[K0RD 6{-L'ƞdda^nyxŒ|?'%~}1XPOZT>)ovl~[o=Gdk?8/r{Ccy-*;,/&iq`uZk=6#|K8jh8M > stream xڭweTݒ54%8t Mk@pw ]}Y_3G:vծSk5)H!Pۘ:;j@Y%l!@NdJ8 @ dp $mNOڌ,0uOMGA^!5@ %`*ʲYOY`:BfEb: 8l@_9b}p@fk 73_. ;,LN=pfg_^s}y::99YUd܎W75hkWI^a^N&`# W.Sv~sM '9:¼b՝ o՛Amwq;9 lh\9͜^s[h <;?}. 00B! ]5%2ۿO-W#q@Ml^ avkb  D Rpqv`'3K G?A  z6X9yyŧi 6t>] (_7ovYm5)=ݦGnJ?P/ [7+{n+7  ϳ Z4ߥ' '(uUѿ_ky{A 7¬PUJ)N@lrvu㧊@1F_v L;Di' cgww؍ 0S#pʬka[qrSd0E=1*CXAAAIX.c){{ԻZ ZH=‘w@qxhx~$xYpp?Z|)E'yj0:mP{B [*kZFdT)jY y\;ՓvjH!1%bWJvq"ڐΜ={": }5?:P*WN /8w|ͷ lw٘ Aꒋ N޵7AMR-spAgCfAyFK8/4au=mK e A2bs~ ۝ >MFbv^ܐA"!p>2]6׾?칙Va6GM|Ⱥb%Mo$eH%~"qZ,d<$ܗtP]s! :ۙz8 HlF܊qYM*X3G(=hv*JM 3y龁L qt۴$$e3.ӏb**9x+JpmgdB"G"heݭP0xaJZKԦ@:b *S>ډXr}<Ċ*q䁃Ns.)@1uؓ*ny ߬=c痳 OCa +2Ja 8 l$Z[a$7 B~msٛsVlV>47D1+NHH-I᠑w[6D)>uKd[ >|KdK¡hsC/N5YX5m8_\M>((!pJ2A*cOE |Q=,2+CLa qFꯞ''J s-`t_@FEY:rGPybu{0"W 4ٮ{Ԟ)qs^ΑB;ϼ% )@Q:q$,9\,Sߎ{/;7bh4e`F;#KD- ߠ /Aw*TRtvM@њIAܔ"7ވ?TSy2|4" !ԡL*.*ZGM 4;09G-B\{jV@dt->3 0oɞ*{2 actŨESv #ij 0/cD_M4Eov<<  1G!DRK-奌^  4^IXϣz>h Nb#ρWMPG7@, %J#ꞄMoH;4|qwfcʸ"z(rkt}M>ނ>^)@ =9`Vjy/x\OٟN`%C{,'Β~g@`ռzΞX1?V*O`|vA1Jturz&':"2ۦ@x}YHoRaC1zU7KȌ&xwApeڳ$,^YұMkHݘ}kq%Tnv4r?Kʉn}M ƹ8<@Q*,/&Jd(;6mTKt=c+cUbHAϗE݂{ޜHw־n\ȟ8DTJO$v%;)|=qEb65I J>,wj/$&  Bۯ4mYZ~Xě6DHCLW{{Vy2[l&G^ĀYd3hBizIj)Zo8ug!`IRńD!8^3_7orՋ`;)^(*~|HJҫmwFf_0bb|_~r}COONʟB;7;H o>8 IYr.N>fh~N/d*F!;xl j𕱓6DN#`HS$ߐUĔn xC>% ϣu#uW)jS^e@Qہ4]@h,pK'pה ZPʵMTAN{Ư*r5)%dԑ;)_Pco\&vݺTꖃφ {hja>L5H%|9߯(Fq;vEH*8@Dl{v;){|CA>„dp9~NOW 'g݋1U KQfdGQ$qY~+靣A @AO,\&0Glg$~<;$l!^O$`;mUD2gZG[cH-Q ^ebjY3Bc%`31]ɾ !9HOzY{:&JJ }x c)ʧu!}Ums9W( 0bA6eڝjZD"zt{/mV>Y)Y ;xh{s>L6w6BugD'5"MP䛞0Go=]$A=sjATsڧy2j5"gQ?-O;=#uNoz.||T!'rS#M,5Ϣ熝NAJtBY"5)z$O.ڶ#{5sq*3]~n5Mb?6R{<+VڼyrnjXf&2q~N7>j7f٤L-:8iZxm[ޮ ЀB-,Z׭ ybː>qkB;Iuo5ah#"0N?+3b.Q^f{B^D~1ǯf(Ӫ1 Aiϳ]HOU2[NwhsJ ml楝nkaf DX-uu+Y7G &=3zۻ^2] ,bb=[jJ#V$UsZg+|kt^ХbUl[Ns DkH4>eK"g[՞0[.>1FRIb;|ДhO6ktƍ=:X]*܏[Xw(rR(AUq3 ع_O~9_=WB:gʨg4rx4z4"7aB&vk.)h Ocy|>+=y",gZ6} .ئBIi-qO}W#5s~" (%KQ8ӳ^ci9=kS]w>8|" 7;0>9LIꦰvoE%NW-Kf%}([]S]\ܨWÙ7 |SfgFd´X`V͢0L|Ⱦ )PEjR}㤆~+umX,cMbJ!h+"h+|QLfK LeGHށ0F`d+d,wP>x8E"LH{7t[Z>vQQFKZ:RBoWz@t!y8jyu[zmgDv}j.cqݜV'/xeJVpqRETR 7&-O=j-KisfRf𡹷>7#Ǽ}Ph?JBрHWC[j}˭FZh9|tXmq, B1:0 7NpcYNP'Q.tِh? xg-̢Pg}t+u/:S)2; Joi8JwAhtt>ihXE)Q+/躵OXȫP`ӑU:ʘf6'oQ`ax\+˘I/S5|tۖtɇb&Ún纨R ;)JS0+4].uw+z2H"讣{;.,5 9k?~[%Di=35h]8y8[BLGޗQ_9XcdכDxfhh}oF9^Z!oo&ⶁ>& WibxOn֌a7+:iA71ToN\FmYzR-oc;6q|Ag`E^1% &f/7G%HIxײJoZ118H2k a>$_wد(1؊d,3l?& هZ)MWweT~; 4$ɕ:CV:t7`1{uNG38ܗqA6=G&[Wh[{TJ߹s; 4ˆ]A֧D (%,҉0x\}BR`K}Wo7uqI"1G[vcl*T3 ӰQqlj}8Dg.S\䡡CǦacEr`Y?uCG♞[4}5ٖ~2"L)@+ =]WWG_-%^_6y>,pvF[wlM6i87TSwwH(N<1DU!oJ|szAGupZ+m=/mC&-'4TP,hIMił#l9KÊVf+,4B,%4iJw&^}X~d,k5BLu-1C =LPSʾ=\nbIc-6OCҋmΠe N77/vg7ȫ5D8িKđt J,GpȻ,Ӡ`Jץ[gUfo; q[r_3*VVK4h8 I~ E2,nʳ{[{Ӯ>!KLg7Y=6ޝ~X4,;'1zX"a/ WT=׻* З=Jy|H㽞:ZK4Vץ*MQ0H'uoO* `u_M¸ȪY&kSOP[u1aΓ3czä,DOpJ 4<9!7\l{aU?u!4F}R~OqX2mN/%,5cy{ w:z422-f˹oi$ekHQCDV֗0B1tYbNɻ9Yv3Jd+.8"i0*Jˮqj:D'Wnk8ԭ0w[}Rzx/LU!đ#ij@'=XC&XH;fjP:qtl/Ff[oH{>* ı!$`øӔc*Oxz=P4vWxn;~2[n$^k*؝Π;XIަ kQУNv&>l˅`ҚsŹ8 EM'%U3(c:) d9s, =$RLP"VoM^繱 wm@9oyœ {_#qC[t@'{kt1R[vF\2A1mE(BYiأ5D!\q6HyVz96wo~+v]g~:r;ثJ 瀐T 7n?f=Ȩ-XXa!ǃ4jOЫqe0"/ngyipSVS:yi.u凌Nq;vVh]`y_|-_~mW['`(+yUX4xlE'֒9êaNg􃾫ѲXpמ\m:6)-M=&*0U{2iBF8X*ȵ3P/;Zru7yY3`#_ "BxAz4`m-N7 ISc+R[R78}<aVC,+Ҫ8;oН8xw)R.yhB]ZsKe}q%78n#A*w8{=bB~U"SCVRݲ_ĔܸgY RN޹aCweFfKqy :`2r?2Fd;gq}WMg`8؁oP4&fѹIA:3 vThzWPƝyCPфb2|;E:,Ӄio>fj߻edEdP~1uI]⿦z/&&͝S6aXN죐Bo-9%aDH" _˟duw%U;Q0e LjtR'i݋2F4<uPӧ})ҭEM!LS ;ј?C$[/o_ܻ"5G'F1L5G<7 -G]l<1Ӏ=ffQj>7XWu4>k(O54Xz$lwb׬FsYr=-8u9KjOAuJ?:(n-,>GAsOx,iNw]9r 2G}wͳltibU+'Cs>4-x:XY_h\-VUY)bpq=QY~K=x|IN}|}݊yoZMAۅ=m,<6T!r)(Do>nV^*}%,PluI e ~@fË!wCG#Z h~W*3"_˱f?etAA_r-II yqg] Dn2*gCJ+EnmJ:UnHzTu6fCgbxX1IZu:ߋuR/+$G =?"5ǎ$ֶ_J2} Anݴ}<d̍3HV}-/˧ )(s"pQQ饗#7tHح2ekl*suVi%K]/Є Q`C^H6Uo!#_ʬ-\ E}*{BKчx Yy>zٷ^sY[ѷxYq&m]8 u۠Վ[jV`(EY*`@8>NhNrV|RZmOX!bU_~L}r5! @dzֿ=PwZE'Zdr_mc2T5J%@ zs3K $\}ԚNo@}w1/~{-|$9`:as4o{RJYȬGbL8mۼ6AKFs٬oA2sKhq7~?ӊJ+M@ց.xU9fb]a.U}Ik,+*b# h&eD ~Y6W zhn'fJ]b5j]x}WsNx5wJx !;CN{U4ø\\2Ԅ^"@+EMO6ĵC N0BxMjBJ |ctuxeN]X Z 9hH,$!K|N [kO{9gGW~L(uzZڴ)[X ^¦S;8#hbBguk(LK5|'ª齖"D[嘮%Ap7㼍+1jMF=I-lV8xkm Bw|䷟>p0++&={W1QF!aU5ժ<ȞA@Q@{9 8s[g|AC[!@_v0s<#+ro,Y#:c$4oj -Ӯ+xM$Ϙ%d=c1bhU9=O8yۢM2w{Z[ dAmNw.YmNJ.s\ޙ`ٽ\Ug5iRgrj8m52!s="n?oޭWY?8<"LF&smBdvFxo=fFam=27ug(0w!n ‘W{V43OEb~RG R)\=؍K-DhS}Ӏ$7}>3RMͷ#FA&kEsɹ&sw6W0Rj3/ 'gSe:05@4QT$u;GE5_DQr 䟙~hh s/^I}z2ԎL{;fv56ZIVD` 'NlKgVijN1{ޟI&ܭ5O lb,\m$IgN_aĕh4̗a1>G0+~HG endstream endobj 7315 0 obj << /Length1 1614 /Length2 13271 /Length3 0 /Length 14080 /Filter /FlateDecode >> stream xڭzUT]ۖ--X6\;ظl4݂w !C9nj^}G9XJ"f&@I{;0#+ @]ES d/(jocx7s"RR9 {;qc0 4MllV^^^DJ yǠg?= ;+h~_'%`e4R )bb2ȁLv@Z ֜ޱDg)= n tp:ق g}`{/vs 98ٿGؾΦN 0ཪ?x-vf. 69@w_L3{w0'4\AvbpZ;aޱοl<ζ;?9@s&DV ;D濶=v3\N=CN`4GdVTf@O5/<;-$?Kۂl<"6~Ż,L,0%A@3%`nl>vf@']Ϳ `dea7%s3wMY\SUQ]ߨ)+Vpxۛ/QQ{wWFVN6#; {?T_kyc{_HؙڛWTvf? M]UĿ7t".ٛZGu{X |+;}RB7xˍT1Տx9|µLyvaRq3kF~=-Ţ9bPx ֗546:*@_%l!}V4%1wiɕ3Aȝg~ME1p7\:@8KiA)aOg76.3`^8U8̶S蝴p=P-X1-_ po!,޲LQ>&)n~*a%[ؤ62/LĖa*ٺ/N=h7k{R&`1nu0bP2ԇr Zwyؖk)u?3Shz+g%ׅxc!ƚguGGJkT\>Tΰ*yUĬ#7bUO=8YP#_HȪji"M̘E޺dyP jy$[:H-"<1}Yj29<l&CJ$nŎ/B>3e#0]CXVhk 9oI^ zY9!Ѻ.jlIh.~=rGt愤]]4|В O.t|m+HqmҚfWrtOKSxXF[ \bG9yXDլ*s +Z}JDtwR6Qs]ca#>fmۦ(gɿP܎bKUYѡqD Ņ+!#/ȢvgH!|۶(% XU [x4s%{ bdf'\'B6#NRc׶_a=ؒ)I5m+!"c:jg㈔$>CSY<:hg_Qxj^KDQSKF)!D޺>$ ,^u^*Z3δJfeiJ׌N<'h|w7.F5RN&=,'Q bˏ *J3UϷ5^Ak`lL/XKRANGKA8Z@lگHp͏DU܃5ʏsZ)>I4Q-jػĶOtM US?K#Rr09gp?A yeYuzuj{Ħ\im*v qdqxbn fxm+$JarQFSGcaS P]uwa 6P^3=_M>_:9ࣥAO˦QZxcwN/ h3A$[q/݈sw0Sٴ=D%'u S#u]+u] TFI󷟽{"vT,TxBQ4QeЧP=tDHF(M3^*k 8\u0\H#- { C..aRpq}IFvV/>̷Wb@CyڀCbf Ҵ$ l!jvf\NT 8yVg? \&uu(C$ĪܘԘgm^*ê yӹfڜ r CuNcKM)O,Ƒ? 0KPq2plص#7]K 5yWb&i-˸GSi{l`Ijۉ(j-y|3 L>WSpnU*/B}*TD}=}>ͥj[? @z56wQXCid>_ңZ*Kr:'JOs&?@UbƯ {Zy۳K?ꚻr;ÆǬA jֽȚ{) a0#~WO)yFpu}yIg m'MuH=tDsW?y Dlq Lo gK єN)C72)L/V֪'v_2&"@h&R j9r?T J.g$ _I^ ݗD :[tx; z'K`1|zIڽzs*q_&]S+l{p7w5i!IL&n'"$:v3ED #Ԓ p\-O=vTǎ}`>Iެxԁrar| HOЮﱶĉ 'x)b!mY6N>2QڠPmm\q<-z3k;6pX}=B s+٣MI]t~^~ek4 X.5u#7xpg\ [鋻°8\nrRX<@ pavBŐ~^mDcϟ鴎anp7<;G{[r{449$ZtxfvBND4*v N#VdX9qڈ)%E;5O\ogGJsJ|8;uf1}"|-m`J;(AC䜰x=KnWniAᓋl0J"yDuέ_jhKbtkMmcl 5/~JFHea/#d>kw_o5oT2IwNj<I(Y 2́r0@0-w!Χbܫ)M+g}zkw G>닫u}`}q B;{^҇bAj2mB1 C"lǦXsxKEXNZoJWq;/\ 7񓦤 .d=''bX$Y*݀$1nOCAŸZ=bE}2Wd@ʙ[n_gt`ʤcdaW>սߕPLʬ&?Ax,(F1spXzud nG33j0z^NeBi"#TdziW *4$^3ȴ,ea8^DUĉZ7 A!YCY:n¼)IBP#_Uj۸ߑiQ" bI#.Qw"4tHd`}.`arwwb}ovO^$B?3JȁY3g6j"Ұ&~ K ͫ+~>TcE Nmz҉ PY8"5Z{ {C⨁(Qpe*9AqYbz`>bp&EԖ+q<'!17T?1E@چK"a=n0Y'_kq\ͨ7E0~ȉbbICqo:'תǩ3o>$=!-ŧ-H:|N'*F}c/&+W*,+MF^|˵(尾h?ܮQɂv@=~ aozmd[h qaOZ3 *mÉAڗ Ұ͈<~t x Vo qs'FT'CݘbA-&J`pk(Ew5nG58Ev>-T{ c3UßE1Mg@yZu~t@E/weesVBܷJ5T"c 2@3yZ\,գϯ !* {Lݍg(SAstL^>TnUk߄ LT?_K*2mQn|o[>뗱xV"LOXp/,Oqwy DVdḔp\] _v,j,\DW=ڱT"+SNi$ x M 7_h~!ҐZ%kV ֩pT tRs`)ߧ!&H/9`_kbtӴcf]pq06^՞%ly#g-BseD}q`7TETiYyPwfw]\̬S]g7J!>rq AfVTa'CKW2ڂib3a,„O?˅qg\#~@|Z=4%KZ<vzIz*7m34" 2}}- |Q¡UytτVKG 1^uƈM,F[gՍtv#?rHP登)Aq!*)Lw%&d`B KX.Va̍<$M`քIGbԊa+HCÖ>ybpQT. 3Ofpӌ)8:Z@ټǗFV3œ'T,^c·?+;&ue\U5=3*m\@=(3b@&ݿ븢j% ~`<dOmbS$D@)-{0;Lr?b}ZIЋg𓸶1R"v9t)5( -C1T肰3rLNG#ՏsOeeԽi k|MPL ?^m!Zn !<z@0&$ʱ.ム'j/ ;4vO#p.2|<7^Yጜ&qwݔۑ^HMY*goK+P|@e51Qj~frZY$=57R̜aXn ,ء3j9TmhD:/6Y'8º'TˏANchfVKϹRoѝwK\nsl ڠ17-.WT3"Fr}fy-sqNq!VP{HoͶ[ !XPyCq# ٮ eh Do+ҫ9Z\SB"( :Ԅ2un?8B-n7Bȋi ²ADX1Ko=4+jDǎ(I/e]Ex0O ݯכRBXcvacF(z "i*)k&da ̘ g2Gx|uTU kRoͽ)ߕ<jE b.)OK JnsW:5> Ҧ;_?ũr H~muG?[2`has ͓ɢ!wAqi2%,(ݤz`*`txf5˷@H2-CeF7.Yq 7G-F{57vq\H(* xđUStlqg狆 -6۽"6+qCp/Qޤ?<~ǻN>W}۩)*Rq<x_v%i+hT݋?[S;S!r#w&/'}iȤ@mj[ a<#~jfRO- aUePa "  "w`0t$FZxg:Hd4a5Kj\+ۮ%&7E<SGk5r,6`ü\/Ά5Hٳ|x.AT2ɯ[KXHNSo0lCqd`D>~yE`䟑>aްj\r;,j&Pu } 9V| P_<6ix%x?0qZBP|-4 Fn^fάRJeC_B*eҞ!I[?~^ϲ(;u)U/.8K*NA/Ls4NxG( + ,9D*ӌBu#S4"E#0W& ukz-?ZЧjc6ٟz;9MR?~J_4> 8ssLc-p@#H ).ߒVDXemg䱣j_&07g=>8O Y}/ɇW?Xq="9̈́knjDW淧"6/(\з/mHV5?Q掲=̠dzύ`~).;bRF'B] *e᭒.Jlh ,-?P%d9}_#A?Ϻ69 ˬ+ e[@٢7ZK{&ˠC%p|)Lkj |g2׻eJICdT{(>f#J*%dv8% ,֛Z!˺Nl[XQ@0ue˙LJOЋ#7l5YVKHl:2$ :4UT+uOyHҲkQb~a?p NPg:SKԎ bZ*w+e6dt\*)Tf]f[6\^vCO0e2[=} ЭO’bhD'ėu_00?? l5۝rDD7}:7@]Օ֫}^Ջx50pK\a kvz_XN2?tL+L~j΄9PdH`j $X5D?KdD`8=Ύoй' 3_X1θǰP h5 pT%k#:)޼]|>|w#O2@2Mqu_|n^:Y!5.YTNGFz 骴$Y °[r6ursE C7y:,f͠Gxg-ΡH|GD5*_6zHA*XI8¨JRj0gi ̹H+O͍wf$tbTosȪv^uP?X*c+))@d<[+^tGgwF9y֘ll~18P`=~ -w v}>Y6x-!Yha/Tfϗ}T~u_\6cWjOk@֒V-<C4&I/0v_§S G΢ܗBķZ'*!Nl9^r^eoSA$ghfmFf Gw ݽ %YїBZxL Q˖ 8JTuWhxDx%3(yx'{cp9kÁ$*޺ }y4h g m utRL .Cب]1u*H _!Cpfr4h`hLщ{MzGF8[c6yoʕɼgyFCry|ts6 M@xt#rl׳}EA|{S|6|qjZJ5 WN!JDܕV%$ΐd;lOv$|]Ń-hXêY`EnFgg 6:9bf D< P49U H!΍#܌FV|@C~9:bqc?"3VnhnP$|7="0S|]_deΘé8@c>j*yaӸVȭ#Cd*L e%sU:M ?/0a+@C帜<) ?#ll˚H]+^+RBK[X;Zg;WUAș y5Gt ${m!0,y¬x4 XUw`/V:$`5$R֙,H{VSzYn˩-|9V>@]}B]'q=e=- Kb&~xwBXb9wpLC.լ%Y*wM Gq!U*Юq;m/ 1gjժ,YD &D~>h:GmI|\q"oK ŵ9)Ƌ1"e;dhn9,RuD 䴾50Pܑn /t$q#-_ yXbCOOF -LI ^ѵ(TS5ɢ+WaȖo ;cXe$ T~E<@c Q4bm^-hjR9qaJuv*dv!v.FMC2P0 ŧ!_G eXT( .-$0&MG/,c% En"Wt&$ߊZdoJBRQGdqe'R_|៪җdC[ -M@@KڒSJsv ;ރ[7'N ?\Z1L[eMYŐTe#g;3`VÄL#sy!`ƾzWqgtW_ihuQQ$P9~PaOCS=+zcp/1;ŮѲdTU5T^-_+ʯkqܾMM/1V\I2Z¯?:v8?]>@k߾8#o^EARx/NJmڙî+M>g'x0]gBM>иstdN1#9oP߾~]ex?'mݫA9S~E&($"P"f֢* Vʅ56RXx^&0=D+%[c>`:_,z!DhojJXx8ƒ(zFDRǔ?QV~#yA;C?m JaIJH$/^nhrU\aUՃ9vi_o*[,ED 1oZs3 iUBy).Wa&4hY7n黌bOmh$H R]B;GJsNGjNM 0͐j>[u>iֱKgeP}cJXS2u`Xm26J^#n\|0-/~@d9Leߣb9x)D^mݕԺmӍ)򍩦>)ru->aO"vYY6 +[Niw:V Kwq /?}$K'pCS@0p5T9]$$g"PnsϹ(C6Qmidxh< /Փmv74uzJ}7,^[FMG U|zh*>_vYiƹ\5ё ^v|f; yB܊>{Kg˧%-Ҽ|Bf%)"/G ;[Hgz]p d,mGroKadf41 * ўqq?&ۙ: V ! T9.# rQUY5M$i,!Sc!z߂*~pS [gc5k^B/^=Beyw.8TO`m56|$/̇<$5wkjG([qf)uo }CfCfjmm\O$\alU)@ +xNSۗsV/Az,0%S$vYk?V)ځ)oF*p^`Q9܏vm&B2&w#"ܸP-޿ |ͣV#?RsxVlJZX~:C~Cjeu;ZJ7 NJ;tFkOHtzSpQ[F+\ĝ cM.*VOa|~\|5֣ ͦpi%f5fn!p)#}M5-UMҳRxDˮ5}|fEc endstream endobj 7317 0 obj << /Length1 1616 /Length2 24454 /Length3 0 /Length 25288 /Filter /FlateDecode >> stream xڬSek%Y靶m۶m۶JҨm9o~c/"3bF6)23-#@UI]^V CJ*hjlio'blP750a{GKs g_ Jjj0OߛNv6v!/*-Lf6ayMI9q*@bdci 46s2;l034'XNCkƦhNNNsGC;=pX۸C_B#l);9;;Z:8fUv؛47v}az -Φ22X:9z_.Nvŀhjnhbc/?:K6޶7rtv21adonsK;FEv: f/ C{; ߔ;߉@'?]es35?1?/-#MFo+@FK'1KwSKgc >kW31u3翭2207?gWӋK) Rj(EAwx2h8#_ ::;Zo_'#jgloϴ(;ڙimWwoywMMMaV썹ҳ21F&EAGBʚT k{w8 >B蚧:<>aؐ^S"ob> +8W^bcP;ܝTT+uLOZFkޅ R_tvNtD>46:2{ CMmrFadb@ߥ^ёyHlm3\/Ŭė%gO?O1gM=)BXsvN5gn/*7 E >;G o kNI=`qʂsB ӺdT |t*ZHn݅z P?I 2ǕgAzp4\2hf*IKSѭU2 _k6 G~jXQ ݹ6Py"x^J DC8Y٩\"n<7]hIڠBѮNN!XGؼ Fby-r8VV( gӐ1m /jiETYoZ=y'M RJN &;Rhl%;2fkՑcTlT0^}-;l(")"v0r'E^;9BW>1*}^π/k{*o v<C،n\˔{D HR&Bpf9K-~]Y{ 2ڸH)@[N쐯WZ䍱g6ՒtErEw#ӒR:~Y_om}sfG ؾ 81tKy'(䵽 =Y w-ҀO:l+םTCn*V=Wm|h_ٯ=FϺ< <2p/VԨeb|QugROW .]lւ ,na>P.4BuϤ L}Q;M8[}h(KO"?F]nA폎u@ *#FLP(Lӽ_7i8(I^wbEԛJ7*xoP,kޓ`*sHFXeijDWd4$]Z'Qh#[wjvHe2 Cf F;x:U#{1K66>d>UvI! hx3Ê_CYydH" !˳L ͹Pby82eM;hzx56 _>"stLs#،Xb˧Ə~#ǁlr"#k<tʓFіoJA/6\# ?K&&,-g+Z\e39>{?L Iss'B$IAqqg[Ef2.h)PoT]]y6^H9Aɿ*7E K2گ\8uŕZe$ҦCR2r==̑lOioTY;0O8ސ]acM[nXݮq7y 4$! A~ L1QMJ.Q;?>#fOH7jskVOG_*J)NKTE^2 iKtU#kS_Ɖ"?F+iT3eG]eD QAAf,Vl SB2Ūz;b2X^"Q,Jh)8.#1_sW虔ڴN8%M&76Wl^SK!n22*WC2h1 rh.OVRΈ C / ذݐj[;Rn)( f[](4 4{ hS\q@6$vd ¼>_K+^16$MTΣ~Pm_:ԝECYԜmenudq :0`ͬ tWtax#U,qbXKA@FAAðr:a[ F:KӘ nFfB- 5D2j wpOJغ\\/A)eA}JY?$pSseM[LU!=J_!<|jW9bd1"~a$7Iu(z/22z-1FVtvx7FGRlE-YInᦻz^9<#ƁX9җ'ꥐuKru8eapfICB|U6ݛ[v ]s)8ü:8:B|uU!fA~h> |MLwЯM^ S@w)}et ~,PD'3ܨ4V 8R'cZsJ8aѭu&d`ɶL= N Ofs50z_rlnb-H.8R*6_OQ Zașt5\J:%=?˺(ꃗX9% ebGuӉ«;]qOO/LTlfF@\l۔DwDD9ۡW9/:WX v 5=o]%e@"6&_XY GNXi Ur{SlWB~-e .PA% 8m‚n;sq"1pܹ+c9Q9N`{j#:՟zf|ś7tgmpϕ=@%}ebM  K+挌ڤ$BpH.yDs(* N]9e6ʗX>G/`-Y}=iiWx̤ZL3 ݉Rey7ݝ9UL8M-xPCSY)[N+YT yE7hVGXMJw!B G?}vytWAgMXzŴ>C Ϙyc}be^?:{qou(!O}+uhWBvo$6hj2\`2I;ef:J]Cs_ fcʘP[*" aFg([OW/n/ZH R)C0hAֆf rL9b nl:"P'!xh!T12 ipR!.r|cP+jLղ3 tQ,Qe[+ALPDTʸ?jz fv#d# M|XfbJZbS]XpY;Gπ-/dv,ct)7|0xgt괈ͭKBdsdB,{%YSڪ};,wWQgD.1՟{{2Ox&ɨo9) ~ٟ"ąȟ4736a۟@Ǜ#Bz8t_#”iSrs\Bס 1AzDӽlZr"SH^QPB\^lZEg}+RsUFq[^!&JV,U1W]\Lt.wڕuD]p˶]d.0a.|i3t?Og$SE_)X Yرi_XsG,%sC%7z5Vpru&bw2Gw : ;dPaI/YK9Z-Robmw(<柳>YPJO> %]+J墄s|Pdjj^͌;|isT5|Jʠ,ݾ_(M\ٹKv5S4TuUD"IkV=yW૜qIUb|槢EhֽY~aV7 WLۡ]e#{kȁqZ[DD,ȅ863"JP3 ~D}pךF @dCzȚߩ08h!=oY]'NT q?9+i{`A?)4xdA* BFtW1~5Eb0-+7?; VeT _I.#OLӫ1sͳH$)-HWhDn snJ>Ȗi~Nk/7&JȆq'ٝo~W˸KS]˩Q@~iDtlaTh5*R=O>u7pB1ȝZoP[:hGMxiq&#o3@R{bɊKNJ.tȞb5iOqpb}!m61ʘsaew̐DjSOfti,]3 %ǰ@MѲW5h95Cx.h?D',Kcroc 9 "X#$Ѯ$V%t |hAuv;fSr0W4zq5"§QPlAyOrHNn&U$=E($}QTj~AS 9d''mbG`a#J7:')fx3IbfY{*B՗Gd xXt6N :a9nۨ5>z 6ϳ@b s>b>$NR`hxGzOKPXfsPK~#|6GyRԌ;>ċYlQwԳz}OWWʴGW\7572+nM5dSs(VNE"TU+Npz&*>M_fN}?*4"uMn/y 2+hz;iֆ56&,¼! $T#&פNȇ]T6sS)h x7yĉ#Va퐇ʸMD8cOd\>C(a*iG[0Pw_5i*KĖm!EX@›=_`agX*=}4NCtHL31 05K5ex `~SQ[}m ]"orfEV3G`&5:Xa|HۣRJ0 OJ&t`rX?d<|7%'w M#4PP]eIg.p¤@"xL–G۾_EHBjo xwI8dScc$pd O;jNKx|>]oA8C_0QX%Αt?;Q@)C{Tfת3s$d@ ']jb:HF]kȎbTN+e rKأ'QV|Ad%??;)Nv{ ֢0Jr??~4H"Arj\rvS s.iiQز}dϰ#x" 8ϦC{]¡lGY̊ l'+&bސe}D94*`#8D׋;( D ~9j~:+0+.[W58?H(iڪEt <&IZeq>U,l1ѕVSP}ܤz(=U |NT@?>&2B̹@q{-=ġ:x, N$5D l!50qUbLgt&!kK*ot~VHNswOe7y^~j@rfDD%\t&)ipzNO&EiWKMvs͛UJ@^xpJ C4-}<+oOh&oU\@8'XMzqNId# /1#` 64̚n.Pwg%CdEm2&u[B Jh65!iF=Ҙs&Ar"*y.JMc)5$rjޑS%39vL9ce1UYI)$weC&o|+Q.y־d% ?UKV +;(7UG #F_3O5RtUutqm(A~ \{fppz_Rj42W*B(Nk{1jy0zbk`AOXbkrLS><޴0vy $ә5k2_+[keˢ,)XyZ_JUI7&/Wp 8E.ȲSӵ ,W>}>J灮O7DmkhbqOyCvAYsU;ɐנa3 F~@g0 k:&2J!)a{+N{F!])ٴPfOO5Cn(b$X=2'qW#3WXgh +>Cx>@|'<'XTC\L~Cg3xG;ʙƈ-|=&ȝT}_ozÒkډO8$+ȍ'@7X,:vK| Q]g!3E':> Es1nMO,0 ]M~B&]-{CNTl^Z0ys|Dʳ?fhAcѵ"Ig?;GǨ0G9כhoNzY',(/D`2LRȾ[mn i>%jU730qô?0緟v2 =G4 G1X7"vzVS}kmw0z^enkbWސ}Ũ,kE<0Pfii4la\y/g1`Ma+. \.D^jü`Q*=5>S[CtXxt^(C; th2)7+s92.l>.{׈-dl{u}bƖcϻRyޡT ?(j@^ |\,Wo,AŁۥJ ɾ4C*:tk"On_zԪ[$~\6 ~q`Z"Y!!?7N{x-sJ4"R):Es.Keϝ5ĤHu*t9\ā 5M*/R`^ m?NtŤ -<(fYg0ZEN^⧋P?FlK#ys 6A x!՗' |0 Bdu9z5l`}sOXE4JX ŕbZu $o v= m߻l kp]HcjhSHݧ Ԃ;Qu_!C`КI;~3apjV$/阋2 Y|?.⊳'hE 't}ϵb,lh|K܁Kj.-k %kS6T RBˍeXD{IsLmJAד=\_Yڰjj 6M!%l;quATm&TeMDh`N()%'|Nz S ėSZ#]RRp ҥYZh+i[=yA.H#?|xjOٚ;D5--"?_G^25؆ ^Bzs0@#y)DUy&T0G q a ^ tckt\=aqcR;~BJWLpF!X*Yhv:/[hRHZHJrgQP~-Fz}K+&ѧsKeZ cvwӟ"._ ouDAXω# *&/LPRJIpvW=#x^1K̰v(xJb!-+ﵳ@1J㩔uق5IbFՑk{5$" ( &H0/=h>uTڣ!(;JtD.i£7]Dw^}"Ė@N,ͬSʓlP/~&z@>sm'S7=myGSAP u :3In{ nK^tg#5>κ-{ ?_4kVoEыU {Հe zXX/@4v&GљRqGߵSaXLV'_<2V!@Z^J[:KL] 8mMG n7d>`Vu7*j6goˍam<PSVj˺x^payi&XyO瑮Mk.L|tJ8yv(5BͯiO3ӡYm򓉅Y06(8uy]<ض;)]{B>rp[sP*6zYbktDe8Ek2Rf=# 2}2B1EñEZ2Ã9 {YF,w3Pn`J*wZyZl "*{Px 9+/?34ß)zH篷L?0ɳogvA&>`g05wyf5sa-f&̄J̋82r)clz׺MLrO}G2%&giΐEbl1ňR% S#VC)=65O[ׂ4 MMڕw'EH G"Gqe[Ƴ/8i$cJ`8^4(p 2}5D4KE0|!;VQ`!Fo? !;#$A:k!n@`8..SK"T=H6u1JTEA{ǿl[?3c/ol@FYXªڣK)ELmUq~u1";d +q,]<˝BuyeYQ :u2 !vGx鏄aZ=a=Q[!dHVD Ih10ȅDKf?Fd@& S4w$GJ叙9'ܶHvcHPVh^Q5e'3M!b,̖XQvo|H,PnA 9]?WP/$TϾv'}!a߲2lJ B3YKE6֟uxCM$$B dGܱ5G`j8ֻ{c]y/FNQa5pՎ`0 h?Ve=d, aVWt##B ;A\铝?=ǂޣ^׋4P^J{zo-1E^c͘z&\A!>K>qC#옶'ې~o8t[ "Ӵ`٦1Y.SOm~k0?fWşGq,ds9܂p9'\{$ٿ)jV59 5SPՆ" R1QM.'X3) N;IXxLh#GτصTyTB<*YsԴLP H/HDjUG)g>򥛣#μ&LU [HgabRb}OxǸ7^=\扵wi'z o|_.B黨PDcD-6^*!Ybp PBm :#DWr*y3ʤY+W}yZ*.F*Emh d |Q;{e|TRA}][_}Ņ,_L#:1r|I `$˻Ft8smc\p+w7#}y&TIir>l \<#;wrzn4x\FZт<3nw™DZ hfq">L1ff2P'6h侱;9TcN$Qw?"Kپ-YjYbZީnQ}rPtEA-ph32XR泄lCEX w~AmD>|v};axogݑtJs98(j CwAmW/[\L4wv⩍WV~))KvVb3"hD|4Q-X 3'58MSm -=҂9R x%t_.I-zwaqjMe,DڏG$~t[",3i/Ķd,v&-QޗJf DhB\gJ /.-xk1A3r@f 9<IjV-LWb2op?b Yy9+H/ ?g뢳DG[o^& a7 RB{}4´-97(5R8Qԧ)xUNTv<B]~VSrwF2|*"qkak+ |WH=aM89[6flʼn 7{MtSas!*2&{kQV8hųA7ǡįK"( <E>!p!u!./%Z=F0$ ZNGskGpd*:a3aqpuQ0k Uz4D$bB}2\[8Q 3O2Cnk(1ycfFެ4*FQjxqpO9:!̂^-n_rv}Zs Lp_Tf?Iȏ4r۩ŗK0MAH$jɅ!,u Ezyqp8xWɈk'H@^i24K"@V."9y+$\Gh9iUE8r>¹i b!z;$Pfgk,v5ʶ!˨t> Uo-ޘtIr {Ǖ { >֩mlߗkpԬHM)e>KV`Gd"&K̟*ɀE 1Bgt-<]3LoS$"gA&0gAe)SdgIݠdr9uM{]!gGQ ON5?vZȱߡ3,_?[1MEڗa~W "ȳ)Ÿ+NuPi*LD1o2wBAպ5K;g¯%9 ty<>ZؗrQ(@Gg}P*D`AY\PѤx+< 2uEoǛ}3xВT]=xg|<> x@zk ْftlDG&+Sydk;x=}Tc/_\oI a6Jw#`f 8`<KUqx3QOel: V$zo}Δew[Kg>oVGL2qgaB<2?˺*R#gw7 qH9ujzP^4Z{W*a䞖$34팜ݍTHu5<ٮtˢx_+ =,į!ծe7[Pfd/?6Ut| O{AE/GXf`mx6x5cF"Fů䱏w:.O_e2ΌD.#8{Xsj͡@]^NE?o3=C|W< 墡7%˧1reTSM!/n (q+6+tmFH?HuRV [%%]a27ۅ5Pi&E%cFξR:sDtCg-lʔS(V ke  3wkD=H bOG7pBcȥ-vgw!iURjJTv>NB.2!rsamύMms8q謯Z95Pi 4O\ 427A|.VnՋtg:oK+fBsG=䶆1f1u:S2n!S[ r@ o9FMA"uUԼ^^k¢8rB m*p"FhO,6NKm휖w]'RvJku'b\]hw'1/U~곮/vpE@ؿBWn['@R}l>Ǒv29(i=51Pson3ƮT@'WwevTW""9wnt]r'DLyKZ[+@]Ax*&C9I3%ʘcn}sgrn [Um' }deG, eSBWDD$ $P6*>SJno?)R8! h8_"SsPP)tkAS%x f(d&*!hK=Gu$R#}I>T΄. (H0KxĞ,#k1p!J.9~AH^Bi?8MP({SCifȟq,u=}ګ/tVB7ZK:e0lrCؘ쭩Kr%woMW_-w؇as?'VQn:9#k[Zh:-\a9-iXfR>'k ׿m ڨQT19|*˜_y>߰42uAٸBĴ (vG K|44NnT7vb]Nm؎${`]Cry4ˢ;ZKߋpU9 δ&M nL/ Sţm4#GC Gl'jP)'RzÕu4A?M Tg߱fu'D8B5Bط΋t}8 n =9"˷BRn%|>q *ulO16V2!gDKsF~vH9#֪bIt@AvYF}Նɢ)zbR'=7C=QÀv`6Gg [Uɱ")Mhj`P4ALr_j ͉ ^uӝ!"r‡9z(͍tH$ر"vV86dN"Tk6쳲8疅a.XG,gIQBTMG.d6M$yCp| Gs16P z E{ȯFlʓGsTR,+kUSCWG1KJI$Ǥ^jJ*D&:p=΄ed=˞c&|O11=2'dF,K$Cy X "NR8 pq b$4vIq Q7W2W亄d1@t0"_N_ +N˦y~lqθ7zqZzWRҰ|4-H=K/40c)1 nk&k9zʛTP p:e1^Ġ* j\^1M9 Qy5W%bfZ)Ʊ߁hx64Ř`b.u_ ୸cUW* 1)j詣ռA"S]#`DH!c'7"nviP#][ NVuI7֏^:s ?}1²]dX)vK6(PV_58ي2Sc: 463ScEKģ}80Ԣ LI d,|28jߏ];Aδ7iQït?'X`0pꪃّ֋UХrcrN1\~ŕ %Q`fY(^„atwl|7䀞 mKkFxxTZW g G5 M#O YݍoxB V;]qɌeBHr3鴽pan}wqN* л9J@-6 k3Jz۸; hܗ(NTԹ@mО:â*FpZ@5dxkazH` csrf qaz:ue)Gš78J'Z/H/:2?,Zj﫸-IκX0g|Ȕ[.H ̚8iNz,֊!4z|D5wo糺?$Gr?i*kh]ɨ:T'C ^boNDf x Zf׋[Cޠ~ԧ&祛)qgrQIz +A&'2<+Jsz_5N:+G1d6gvf/h7 f%Cȭ\i{ł8@Z`9dB@Iv. qaY 8MT9ڦֲ˼@$"D扤;7GCܹn;vv\)-klkC&52 hߤjlr`uBlR*u8ZKJԳ4/K}"2͞I Mة1o^p1/n%Աy_72@XVAR3{'wT23+ѝqNkk/wͼDLUAA6Q\.Fث)U!cQ~=m†yΣPـbU3pE̜L+#ßD.?D|wȦilyAZ]qɀ@ŏ'aB-j"@z^P%spvEMX~7Ǝqfu,҈ed7 |Mrwӿ9Ip/+ 5&8hPq߉av)TH/2P5:U^B2T}[M{>]# F1QLZKTh+3fxޝ -URaqvvLt57yZ>}6ww[³N?\}ngGNac5 >d:D4>>m+?J/ 2&Li]7`u bC^F7|br_t\ഢւZgkߵe>Zr  n';-%]@?-5"ք9O,~6z~m( Vް)_ߏ\6_fT_}-Kß @̹=7H#欱+.8q2Z  h_0aDS8E*~PE#w_)aL^=В2g 2 s1ElE܆'eef{e#*?b*$~Dq۪"B/fhU&X IMS +PgYUIUdb fy +[yDFE'쮇UN^J*XH=WF2DtM~g.NE⯸'04J#iN9Rx~qWjݺ3 cir :|ً6M'X`:3jSYx7IJRiВ~יx1t>[]Uq 64%Sk_^JsI%䞊,Y݂0P1Yw׆j6Y%߀c.J=d?M ⮨ιTExf#{NF( 9x[42(LEy0kX>A'̻u?23`aW&FN忢p|$7YԱ[ 2qLh~[),X{dGAlvKf ֭ W }_2R~Pb{veg2I`f4Un5\sIq.d`GM F:`B }UQ  Vq]Yt܋7`QW+^S3nxR`g-Ԁ9꧙^Fr sد{ƞ)ˤ;&.G"cpta9Zq^euVLV:ao8Ł;OcoU"?ZyXvdtZbx|"Ţ|ѵ*ثSxJsE m.|l kh5gObJE6gZ ~.p ѹꉧrQtKYhY0o㺜ٛdt}͡9~g|qʟ,ؒ7TT~إgM"9g UBf_@'j~Yz1ޫģ-syh(2Ϻx^9+m>oDa_TnNwvjpin` 6љJ695Q* W(;l'0{v˰RrRkq)4 cuZh}IsoK]߯%R^*„W~U$~JYW /P^\W3"!&X +Qr8r-j.92qYrěN(h]"z_:*at)dy7Bo)jemt6Z)1y5ÈD:yͧRЗNQ p'_ ~Odsb KY[EL. wv9܁g H+ SAkhwM.}%+ d`KjCa2*3QUbRC7)h"ď7Mm^lqZBZGoVaDƖTƺ./jsEc} }Z_ۖX>Z/گ298_sq?o^ Eoj`_Yv84^l˹`wCџ~ḣ&jew `Gkr\T:uv nsaovkXΈܗR Vp&QG>׸Q&F%}*u;9?*OI}EN`xT=rmLWd>SU@RNcazƖNVi{j/t1 [8|+ŸcNz%9z׹C f`irԒV1v endstream endobj 7319 0 obj << /Length1 1620 /Length2 13733 /Length3 0 /Length 14571 /Filter /FlateDecode >> stream xڭwUT]ۖ-6n=6wwKp\Cp/wVU_UV[s1>lmQ*2ٛ%YXx_4ml@26?fNDJJ1'3N ā66+"%@ da AKO/_."" ;՟W-8P8[  @LIY[FQ @#4bb2ȃLv` - ` Wk`?\"`14 @'[,3q1?vs rpaClv:*KNgKcrA`O3{SZCu6ف@wrf ǟ@Yt'?uo`w^Q 1gBdeOn "_[E?1Wk)`4GdVw@?SNO?'k<;- ?c'z#f] UG{`sb(q|I=nL`\,_u=qT7Z%H\JtE$hj(jӭʡ2wA|ΩUC43@{y\,Z}-g]-= :qR]J" 4ӭ`w4o* 12&Tnq˺ݽjkvGӝ>!;U/6{˫O*IF,~:GmgupFnC ӴTPokߟoR )bQ i@5+@4t0ay0|>O>!DS2f<&uΥI-tOz)' ّrz YNc(.oԅn/rR݃K?hHfѯh`.,T=7wEvW]#7m:Wz{WngI=mGL =bm4eIME,3ku @l*-g8KB)'Z-RD4~ap#Xc?.OeSBwaa;;ufW[C-O%{GR9yf)*Aڒ/+K-&'۸:}k2p_15V?ݸWT:-ڻI,4Hl9g- nۤ3"M\F'j$svb6Ҙy^=>Nm=.d \(aFsxC iχAuL&9ԶBWm"5+ Ɔyh=RSUsߥR={xlm[ix3ɶ^(t%HI*(IzOpZ1McĄNdvI:Q6h(u`~xdt!+&[yqGΆŠqͼFmm,8d=s Z0!Cx@3pEiE_D hG.w.iRl?‹ _GJE>AIGY^SɴO ݮ^ t|etLC`(4g [񘓙OIU!յADas_ sE8,*3RH˃{0a"`wSa~ SZҘ<7C]E+O!0`y놓؍ yi:4 6x W)U8Xقq(1 DbjDX]uq7()qϪO vΝH,ܷIS<(E8l4z ?N^Gaƕf͠8i *wzT*pv`p9rG^q4ՀøeX,P=8QōŎS0ZD]PʱI&QA3~CcFVF2lXK/lQs_dž6Ȋ$bBnpϰZ>:پ:-\AЂSrXuݴԞH|W`A,k=g5wcFHD-GEW4n79;JmGSHl] )Do"üiUnA%0Z'bW$ChK5 уǵeu &`"]G%UB ]o3x{5ybvIMlȬXs㮜4ZB]dS7UxuYkdnQݨQ?37gI3.{WN䞔$IH.|y2}tNtK p|lCV]Ge7@]2WY3GwBgL7f'ЇL,6g&O9&CC%\dO5h|fn1;7"3 c+`)d0?B^/SK%W@B/ryњ~]^#Sxn{L\WO;r  ^n+#KWAN+.D K**45,\M~6\ ‡;vdHǠQH3 l~C*U>֍qz.LQ ӸzB(q+U *w@!mD#~By aFӡn<s|Qޜ$mn"awE%CKBH\ la[}$-Ime}B 姎dq%ٚZ]!ϦAQx&-.#['Ⱦ2[zOs3msBRu \zj3vmRXQpBȤa8WPVۥi 0_p'&p坜=s߷#"T}?Ej#B( <O멎>B=@U(Esr-^qڲV 163nW, @/i =lh5(3F%#Չ[m ]WW#_Tf+5֙] O7.eCxZщbtK/վ6}Sxg{yCxPʹ!mttA.욐 ?EDz}'>?Y˝3/f0J q6:s{]`w ۬Rdӹ݅!NHo"Dl 'LgN0zP!⒅(q+=;_p#(nNeQbczS`!H7*l(!i!nm[pl^CjKG.WWgoU`>KQ ?saDO~SjocѶ `pnJ>G}hW$9_XNJ8AT+w1p•#q5ɫy 㙜8Ȗ[C*n+r躈!($1~օA Wy8JkǴ%m \ ˭+ؔM, G##P5"6Yj k7őae1h,JY.IAV2ٝ?99Y[X농Gd_֤Mes>xM6,ٛ_`Ĝ1Q_Y?rRWޙC Y7ʚ0]'|'lm]>+HQB$N:6mtZ6}naV5duMS>}g9ЬwѭoPCb$a1(7Ʃz}$ߚYA ~&M-iJs5z6}H ~".l~шrI.e<.l6·lr]")H (77dxnۓ-4}pRVh&?Δ:*rh͎ :F83zpF}z_H&ZuaҿzR7/-I%kT!ѠSL%I"%%sɇb 'e`t.|\ @W/j(aSHQ.z星:Dtwq=ϞtXyiS5Pl&z@oF-qs:iu lxM(jr(Cü7;Y9DB"; 0)=`hvnppHX]PW;RjZ4G#Op!~.;Kn_8ًnHozfډE C-oA(7ԁΩОU}%L'+8FD9EM[-3 M:mnߗC(Su/PZzs{742gP`GcέF^p."3rwҺ%vVǝs('|(iK&gY[C^(X ƲV[<(]97סDŭGVGxG@p$"]N՞ޠzWON8(s1W/%ЍWʥ$s B |48 *b*A@P*kI¯HGF4 +8" b<m=֭2qEx |i5>x .h%+o&-ch$\ sȞlS8d"@PQ۪-%Clfts={qs/rdr\ƙ(ny'{oPࠜ'\|O2G2}YxXgM=ӛm[ߋ#fBU,ofeL6ˤ;Qذ| u\g/Zwxp?kαe<|rrn8jQ͠v/F 캱R*׷xcLf#. ss|mN+@TYZjzL_YE2y "jW O/ay5[cd û{U J䍆i(NۦIBM&TΕ!cd}X3ڏnT2#@__L R`6Wwk湀RpiJvhzI!uO:?N[\c^L^%Q@73!{M');Çn`'G"yI%y(taD:\TúB"j#5QJt؞[lK+'DN8M[A'Ŋэh1vl'ܡA`D@WU=xmC7kʍ&a`AщqքpmpeI${nbֲs%qh4@vhi_A 8cIcQ/=O7 f2blDPN Oi}W^3t5e" !&^l(,|W"Y.)ANR9鈷#1ʖH ؖJ5R 2nbF!KkӏGjlB0b!}!ި>B9X=+5@ kx=!iW2xL7A u9YMh>~׮v b^} ~Kw,fW6OVK_2M%uLKeL#[$EC-$yFA떝Wk&P39~ir`ojTYgS':3&/aHb7̈Mu,+Q.(?AAO%;}.ɽyNΠad8'b/%bU6"aL֋cvy¯NH)߼1Zjk~_n8ZT0~u)dC U.ՃST?VN0f+lu2gsE4#斉sml%az@hL^ {Ph֜SGR5HYʭHoW{]>'yj[)&n&[^oʀ&Y.g{h | Otr7 6 twVl+bA?5VX(#Djϵڋp_>k`&XYSK|,6c#_F iLhpU7 q*t:o" 8LZF@8MĻ1&P5_>i]aŢMŹ"f+Zfjf'_sE(·u!!xVT5M[֝5SaϪIeHuvw]\EsiUö0mY~5К q<905ÎnV7+!g5LV`Ejţި+ܙaӖO #8?8qazxItq4'2_6b- wE (qrn7Zt2.aqe|Ly//Fv{9MRb.G>V~2ץBAM~z1* OFmȲut`T*]*Xv" ;(碲=x#1:RD_G]mC֒uwNyQjKvU0oJ쀀SFPmӳL8R%)Ѹ1 "돵+ŷTxt"XAc o+:^6DƒWg M*1󒴸HU @gnhPFT|{ǙD8л{L;5vw7X;728:6V}xYB e|20“U8Mk5MHj'[ ]QnXj}CY~e'6Qa]q Tp&?,1.1'|u7r|ddi~ je)EkHCRLپ}Ш_ "Xsqn7C:ѷl՛QgZow<@bc2?!lWZǿT([S^Vx1)uK/nOTWN7*yc@Q|c6nC+rl{ U#rih0,VF0Ui1Qyq c6Oo[F"2byDVs&p9>IN ra B3>(Q4n_{dwٴtEU@)B~=>]RsE3_!sPmV{;KE|pncCRdo|M=hVinZVAk[묏IbU#g\'1{K*@$](I)s[|ɉ. N9lKLbIZyz*Y*}m*X%cp^u֖KAUCYfĶvoszٯycuk9ew>0(;6}H>yAeկWqVU(G9OkCbPnCX:Oa _>ə^sQbbhN2˺ri"VS.6ɾۤ':`& :'NixWv[C(ׁH9%ψ:u,~:C" -b`>cBojw-6>S@j3L n>>ǩЊ4Y38po~/ߕb' F9.~ecj C&׸HD0.+ޑ"S"F΋xRAE!eu*ySMYY VGp}۰[sg [H, +ho[V(e߃#LDx?w<{X&"67t8RNN0PDݶKLP]]f{tf0VUEխAkߴ9,ϡDy݇ff΀oN"QI:vtHCuUtL<#?\?"PoBQ/ Nb/wK\Y?xZc6)2 E;): O YTR3˜K|ЛwnWxPkHY2nJk:1~b'bAq1׫hPTI{ky!<:R.! c6?)V@j|b9*2 ʎ-4#mע$. IeygyDHj +~+r̼e" œ%ΛMWwGuz 5 xj JLJ[hRsY&IJ4)U!BSe˳1SطHoF %H}4܈K|vA,]=I9>e"u^k$*& Ek!@QgCHOc #ZX^{_&mYF.@gIHTk&8%x?ZXT`P1Wi0 !t~uIs#wsTdEے ܳ:D#c!%K9yGb0v$C))"apx"*h#(T>)@1\: P/X,5j#HH$~L-6VB6ǩuwG2)ys4AܨOGM hcYL+vGQ`G-S ͜%ՠiJGi@qrpTJ¤k!V@cЗ}5RtAbaʠ8|qIL><@ v_W4K 9*=DBhwzֹ5rƭc#P|G5M6_ dg " LݑET~$| "X $`# վ`e*;-j3` ;}톳̧):򷀳tiݏ"iEОUe> ~^&

?'_1l&gQއwTZv[IX/I ߲B]9uz :fg&X`B*$4uK*c2흾/xOVx>8[3 G8=ە.R![)϶O( v="QQ[L] /%mÎ%*Ý,~pR~|Fm'rl?x3}g.L 2ă)_QΦa̮;Or,kOI*5ڌ}qD% AAb/{Wo\P$W(fXZ2%\[Lq=P܌KPRb:ЩDӷ%d/ zcvXnif@*x֔$wu= [u-9I$S(ʿǚʂ)MF ".-}y “Y yN6KJLL<mؤC?2~XA'R iC,5ticOeH}cDcj[N褷5z0)gXK_e!uoo#u *}jOm%8KEV[Kv\n> "?0!ٟ1Ynl?, ɨw\m䖦Pփ#Ubhh=" ͶQ~BZV)gq{n?0Q%f7Bm=Sd1M |QgBHi*x&9<)i~0KQeM5a#ȓKF%"MV=>4'գ}s772/IEi|"zFpE|ȁNxԝ]=1~>uCX"QoZ}!KC/ 3ӗ> stream xڵY[sܶ~9ɐ3$v4:Mam:M@2ɕ䬓:ЅIVrJn 1VqH (aIR 8I2@ 5By .24R)'Rd7 ,^J4JJs\7JyA1ʡ$Q(ym4׍Ih)-GC6i˴6虲ZԢvV2a-^:b=C${|3 DAFIOxx?\B*Hx@pLCIKX#SWZmWXAZ -T+M{v[u{5ۏhi=֋mrնlݲ34z\#}b?vO^b>ܰV}Mn`!'c?d 87Y['Hb}</&0@?N[Qw(x1Jog'H@H]1 }/cC xA:ݪ>/ JhHJ{+.D}w|9I5NHu9N:؂jGy5XᠯޞRb'.??WϻGKjWjA?]q~R2t&yN#ԸI]dpm{OfbNt35bvs?k;fC!&zOUلo;Ɣ_zL2ʆS>z[?ڑG1e+̮#̣Y,fh71^.l8mటҭ]25Ҧisa0R y1LMHB<%W:)Q鎸@LJ|xK%Mb)q,.xp<+ctld:=&aM}a3 FE3Z0MTc *6: {H# @Su(.]z +R"YsFǗN)TJFES%YGL”٥ltLz ]|)cFkzqF9n eM >(h\ tFw@S)DZ(11QkLXTD>IߨH0MyTw(2*țdJ#L$t]cUұfoLBac~ۡx)wth3 3e MY:S6mt"]6s+cʔ,lǧ7s^w/7_T&Z*h4|^ǖPLO1nXwFU}Yc:MCcG;Я}ώ#c cIҠ3  q8z~t؇BF& 4B*|Xz|Grˎ iҝL j2G*\bPa #FF #2 OUxLɥQ(:VpUZփ,OkP͐BGI $EC .E7rrʺhY.hHuQ`-Yp$Q5 CY42~ 7rr)AEvTC-=rDa0)! +<2\ 5ez{xo*2p2 0u^}O yQ4 Ao2 rK[I\p#BWh e=d< *TBQ5@ʢa£K.܎wKV՛JQtf0~Zv,8F(L!,&T_rF.#Q.MB]T2-Au -Pv,8ʏ(L!,JOp)K<)P7rr$]WY4GCہd)GF Ðd 1{cK.e{Q.EBQC .hn'w; j!eDe/$\fTÝ`ۅlzPv0eԃAhp?{x ==0{x6>j|38:&^OWvv< x=Tޏ@&&z7p;.Q.WÝhyl$ ԃA0lfJ\ڢ$\f7uAi(-M47C^ÐIe==ȥ=< Jߵ; endstream endobj 7326 0 obj << /Type /ObjStm /N 100 /First 984 /Length 1889 /Filter /FlateDecode >> stream xڅYd7 Wk[,ò9B~`sX nB>?s__:yR۪@A8UۏCz4")XA:S &z{/x39SL:hsz0ⓣO㾷}w{ mW#zս>94 xsFjszsrdsRs1_r~Cޜݘӣ9X}tnSsИ<rJh܀k>AKtڢXZkutt0n@FhZZcNRjƍZåѦƵXXL׹WFOqo54P2nതteeZ0bNZ.@!'D+mG&PLq@!x-j,vZ$ђLNȯuJ0`@1< ێ`@&P a % *d7>,[-M0 oaJ.`@1< ێ`@&P ޜ A3 d]B0  I0  (k-L&P ޜ4 ANG0 endstream endobj 7327 0 obj << /Type /ObjStm /N 100 /First 986 /Length 1917 /Filter /FlateDecode >> stream xڅY˪l7?bK B z4M?B7|~S.I%ЦKKZ*+]P]9 ʽpT%("H/*ܮUF 6YjT>8HWtA$+K&I*Q2+#DÖ+ txE+ rJ6EJ Z" _?~<|>r?~I˽~-&3̌,@ !`B\!%>Rxe"Frѝt%axsXzVjdz;`:nci<S.B82LŊNqfKzI2 ;dzyӝtw҂#R-һR3B"i\!htEEw˪$S5,*5*AH{! B)FC/YB^.EIX RaԠvbk#@%p"l()5z O\tg/'m/QIQ% B)RN[K0gٿPN N⍁>@ICq'ٳn{Cqjy'h.E)c@CJ!7ɒ=7t=9L53c ^iGJo <57RƀNƀh_XcVRƀ1 ;)¤yc` )c@cJYc@o)c@NaRƀ1xA0Bc@7 %8>52ٱN&e `ƀ1 o |1%e d R(cYc@o)c@ܩfp 2 B6Cc@yAil'BL)uPGc@TZwuZGHy񄣽A0Pr *@>bJ8j`? coo|+VN53N ![Pp!Rn(coo^.^6%au/ԝjfaUQ4[85o'†RC/Ѣ5{wӝlˢ$,Bۉ^4dN;oFHJ*o81CRPN !%gXqȊ3VD%zqk-QV % B)Rq\tg/7:( ?XijR;r81@o |1%e d %57`:SX2>@t171o T3s8A#Xc1e bC'@ Dh8jC=S,4nq9  }jfa7}(mBHI|(v4B^FW>O;! xc`F1o |OJW0 endstream endobj 7328 0 obj << /Type /ObjStm /N 100 /First 986 /Length 1910 /Filter /FlateDecode >> stream xڅXˊe7 W#!B Bb!$#u+u|7/}]*UVqK󀣔ĩ <,8 .QkuE?:]'蠡ۡ.LE;f]d5*8BEWڪdGE!dGM*tACb+J\Ɏ "WVHZʯ@EE/]|rFYQBMQ2HIۅTcA/AWpTS!%QKy$siu%;dkJ\:Y:t^(PRA*'}tސY:oUUPd5[ejm*tjLbE]A?CibS)']ə)BCVx bٔ#Л/YɎ&_ ;?ENUm}.5JLP.;&h&;&)rkaWd9 TV{"`PI beו}&ct&"KSI4#K43J(@郥Xt.GWt>HθdhCWQSI[c"K!դsF#+<zg9b|Ax[?oW/ע}׿s;׏G/?ݣlue +"B{23@oBJ4-x\tO-OZc!@|:+c:7̑wp!xrò:itަ,Ԫ> 4И3 pCɸAѲygQKE{% )\YɸAGeݘ 7'g؍9<^ԫnj|қӌmwsG[Gi9]nweW-zU5ms*=AԜj̩ 7熡1 BH)Ɯ3eN洲ŘS9%L[GcoNIAcN J @ }tI@D@ڕ3b0LM'>L=fϢ{%>~iA]I_byRJhϧVeAey2{XBƍwI "9A>d0 1M|e8&9R9AI̛a=7-[-M|e8&wcИAq6{gEԒM|i& pL׎){ vS2Ifp |Z~Ⅺnrp:v$I{ИAA/^ endstream endobj 7329 0 obj << /Type /ObjStm /N 100 /First 985 /Length 1907 /Filter /FlateDecode >> stream xڅY˪%7 ߯Cm*@H`2 Hs>iwNWTnɽ+]z<(rA)*DREn`^7~RER۠cQQ~ +ÜQ*;q R 6 @@f功Lmï d'F6!?t&pJAa+pUO`O67n&lu QT3ԤZ*] A9;PO`B JҪքo8;# w^!speĝw 7ʹ2aa `6D3MzAa#/\ 12 ELK##4Q'2?M pDk׼ aC,K +^ܟ sܽ19FP }>&JTHMFdsOtn&s^B.VѲz[5V+wΫ1qO{Λ;o$/pMh?чprǫѓ{^WϲeR޾ӗ?>ʻGrǛ}]>no?x܎HԷ￷h}R-GHO^ ^kn'B,_!,X=rɝrŒNx9l=+7r:#nL\ g)'q&Y.sSv)ߴmt+̃m4/ўRX`>6Ӎ0-wrͲuT _TŰhLCؔ9 6 !Ԕ-fNO\r\r$e!ꦚN */N=T`.P*7gfYNY s:(7^ Nh́Iʍ,NY.sSvUYX U,s [ʍv52p!r{FYs,Yea/T'G[ʍ /nW.+s|0ǒThppzٓٳngCsI\ [WI|p4nݎT0  |$RI!w&{r,!Ň'd]RI|x`v;=T`HRI!{FYvs,Y@.><sغJ;Q+!2Frgٓ6j͒ٳng)LK* OnGv`К+T|0 `@`@h_`_性U|0 {Sx 䃁G`@*X t 58fi`pSM& w(0 p"ĒRWOl0(ZZ#@0{@KI=-w2?C0@@p9w|.dgy}rBrpS-u w&'@@hu8bI:6@mjYsj焛j2Sغ G9œ*'֜XJ'p2Z=[4q焛j2Cغ P9J*1 endstream endobj 7330 0 obj << /Type /ObjStm /N 100 /First 985 /Length 1908 /Filter /FlateDecode >> stream xڅYˊlEWQOAW""Dz?ә9UջȈ:'L/01^]T/lY|Q)?3.2ʽ邮R҅,j7YVދ.  ^l+Lt%߫+"#*')eGeGMdG+ dG'"E$‡PX~BT"fe#H eG."=Si,MSRkj̺w] PHc JE8t&$j $s¢BȎCEs.* qKeդsn]դM \QWҟ IIhJvNB7 wSTf&FYLR&+UUk[2t=Pr209+!Z̐tWcXdGmG@J㢆䚳Ȳ"Z(MqXV|mŐ0(/ze%;v!s\9fyGUQC˛CIwecSYjV^^@HNFK@cN @P2nv2{irZ[-.5*eŸQ^ 0sryY3ƜLdcN:jdobdIJeɘޜ49\^zs ٘ô49t219蕠ed!8#71 @oΚ!s61P|8za s]j(MN"uo!(&@!x>AMwh 8"9.5*e&'PK/\ " @5%($e |r}h9n49bNKM@ qTW!LbkJ&P9DjJOZ'ݭ&'P wQ9/[7b0v drKJfS:Dj"V|-9R s]jT^Na2b0v d`Лah̡Ks':G49ÌLNȏuZNa2b0Y2b0o(7pW|OIw{СN.5N{?"E; D%B2xвz>!tpVYjTn[1-w]sjN%jܨe|QSI夻ղ k$K֫qq,ƜTLOZNCAwe6@Rr^ VƜT7aI)7>)>;tLBpȂ878@po; ИøJ : |}MwhHBAɸmG˷s0o'’70{>>;!>> stream xڅME wD.)!`A$Rs~f:]}Rrk)L̵X*Sku-Z`g[,zS"'R^s$)&NY\\`"&!OCF}LU5SbLu58PԄroL0w7>/}ZQJ@ 92A-ٮH(} 2"ey:l1h}EDE8Dvo-duupb}Z0V".Z]!D%8BvC%Jhy tZ ТGV2(G_?$"(2u)ڍnD&(|?PKSf}VE*G"^Z]IR;vt;kqX(JhqvцZ (V|MCCВYdk=5M y0̈́Sf%),Y%49BhkxMkrJ_ 4d_&"oN/) c)")G_QAI MЮXԭ5 wSB#4RERB#6Ф&GhnD MjuB!4=Mqͧ?<Ӝ endstream endobj 7332 0 obj << /Type /ObjStm /N 100 /First 884 /Length 1862 /Filter /FlateDecode >> stream x}X݊55?O1/ &ݝ?DJDb/QLz:vv̜G_K:rl1C9V|ґR8R3e|ʑk}j>jf|Ѹ#>P1  Bs>"%CT%`NdKTG09 &XĘ\crmØPQHx*`tpQRӿ؇PG yChp _\;P)JAk')C1TXAPÄrZc(0Ndy!t>Ի+0/&>Dܐkhy2VoW 5΀` !̩ޫ#g`! sC [E XGBeBdC XKKf*0P~}_~vϯ6_[ǿxdӧ{4vˌN&Zηw-V>?~;A|E F *rl0cyNwN5F$mG1] p'ȝpA;E@y|s֮\Z~3ѴWCp.8 j^EFɚhz2-D)Ex C/t]$ɔ@ƤfCN.;iYdԓi5~JQ^.m ].{s 89LCh6N"g<ɴxS;ԡiq腮D=da‰cR> endstream endobj 7333 0 obj << /Type /ObjStm /N 100 /First 912 /Length 3041 /Filter /FlateDecode >> stream x}Zˮ$ ߯^aU`AvqL|~"D ~tER_uuPցsg;U,GqՏx]pouct:cRrGe QkC~`q 7 So!"$E(<Yx%SeYD+oT";qKPV oe$[>xkz=xtă!Eş51b{`Šm!8xW,ěB$mǯ{? %:ZD^͖'\2'UuI]cϦ׆G{TÕh8|^%},bK΄\og#,}(ն.u6 # w< pc{jDO]#fnv艮{fgL6{׆3܃H2\ߞjO XDlf6{ Nh%ץS&N0`I5|e8ڞy,b6K8fRr^n' lvٱ6\憞-)-cG=!/2B?5gz箤.ԑnA6pg{YۇT=MNj%Ҟ<6Ыj.YڇC}߇f'e,6GMR];\kgLm:jҟ^.ь'kss.WA/lGo:ho>A<.vS?:Z] a(쀺4Ǐ#mF!h莣kC曑s%RAܘQ9aB xМ(愕P7 RAQk8!қZ" v%Rizݫ&{E`!^ч4-/>A<.vl%.aNa}s(؜Ca+8Ҵf{Mww1ڽ0Fu/;yȂxI4eТ [#rĢ [n/ YLo>A> stream xu[% ):&׭SOrԵ_WLU#>4 g9m}ڨP[WѡC˿RLS:|?-~[DnO-Svyj2߮O.r=u6Oݺ즧{xZu|Z'5bMg{ K)iP3%Ys٭W:EhF(.%0(L W'iYY%GkR\;,y=}' ˳w½HyOV0qNe3y<]ɼj鼂 ƺFW.#:PW l~KAr{! ;+5CvyvMeoЉؾiTj$wQ6#q{*z';8.y6t^kvpީvZɆojw2S:Ǽ&Nm*4^KۺZ]C" gtv5u"<_22"v|BR,;Kx|A^Zo)!ן5"0:.=hSƶMs4Yɹj E׀$ٞ fTyL)jfhoA.߀LbEM+Vg32fFU2c:WoDQ3/j$ fTY[yŪF1RQs_/tT$ ge f*>c~gt]-ME-|WHEcә$O<_*"IfmBN Af uXt*b},4x >x(jˮI(#o&F7fnL}C= ހ4kN||w32fͤ(t>|Cჽ.i?~4.t$ g]7ai?ޅ[CܰcYC`(Q1UhT:^7*j:q#sω5g9(Q13'Sr0ϥi?!v0j‡AxFU fT9Y`xKVQӹeeWF=?~h0[gi}$oyeGgoѵOS-M\BHXeq[H{u~/-OyNL+A QN6{+9jj3ܰy~s] :=am`q^o6fmm?;ᣋvzޢcؿ@‚tú>=/KM*/ 8?X endstream endobj 7479 0 obj << /Type /ObjStm /N 100 /First 1015 /Length 3984 /Filter /FlateDecode >> stream xm} HU*=ʁR(߿ mzyWh=㚾LpF/+ok)5ֹskxk8Wy5rGGz{9k~͙"XyM31jwȰfN9G;e~%Y%b.9_W%8}@97K~c\*7aR9>Gzia8G~ 9k WeSceG߼/3:e'ƜEܞ5N'V\a8\Ɖ1rU\[c=}㜓s=h_6&=G;Y8ghN+|=gm'_ݝB FW畊kuFh/+J?\ Zcʚn;k:SXi{,36k-^75yCQ=Wg}Yznγm1n;0^cwHmXaG~6egzCƜg[hSl9f`bG܋eȍY;??׿sҹoi'B;|5onӯ@Ꮟ_~ \Q'UL ð1O{/6KƉTl6e%-̄l:42 ʎ&SfmVeHաl&Uf2I[LcȨIYξ3ړm5aaMFX3~0)[^,x %[lc-8e6d|@Ι@vlsf; ۝mv10ɞo'Rud [gxM0DEp&ը&x"RH69xY$OY+!%#,%J`R"8tIr]T b-#"ubQ"䶘VnݎTigY<#7Шf`LBliQ49>~G1thTir3wd9Cdp$MAGŴӡd$˻"=f  UF@աQ }Ye2@Ƀ۵,&4fh8ɡgcǭ~+]g.d"͌Hա\呁\呁GrXcp?:425t c!~ 1&`RU,<%[&bB1]w%؆j 슽ߞTQ`-z =cx u~oD|欠L}VPh  c8 ;` f 6h3U0#)H£y:4*s[Tjm`LNHա* c_N;fm.5*~F &Gܐ+ Ƕh3wC4J1QIc0:42 tFG1otFG1ooY^SRbvSLL)&H7:7 hfV;k3TL;tphjhV;P}{F4PokM D)=%'X$k$Egtx0H lA)%s 6Ee ~"Rud ;n6,lF\E@Ш@%EQ2yT~]}8e>mܮDNF (7d &Lnf6*&fiR]AgQ_P)/(+"UNrKl|QgTFIblԟ:FE mW'$QgQX@w]T(48䀔GQ) XFl'+(S \2W`J; `jf{#Sz)C*.퀠RA)ټ.ѡ\$*W LM! R\͓ ð CʻgF xfgv?FEL3㎁gό[<3ک)p\o\i1t3Z E)e -vX D e WZ 7,i@ШTl@q؀4: TKkCP4(h4  JɃvFá5o D $˧BQt w fhoF5C#C*f =wEehW*T asЌhfҨMGm J&Ed哱zWɚ]hC#3ŒA0c@ (ctɚTQqZ H񯠏 Y7d>Uq@2OOX٫ld$:42JDXk ٫W 7MH-g?ڊIOX[тX]%Ȋ>`żK8:o~Uedmed@$^`@8o`4VuOHN`rP NN !}x.:4*@ G0TF}y9|>a0tĮ>1TZl59kZ9v@7ՀUet:4*@ gon5*H]H\/  ĉQHZ%ˇ7TFHqf#gyaϟ@5N[C##*,s \' 8oۈ#Rud ;Zק'YBnO J#0#PuhTfNJgQ 9Io?KE3%ŲӡQJ_7IzC)$;4"ǣ9j!?pBG-pi4xdg97ru˹_^`p5ڨ{^<⎀Zh7v 5*i7UC#ŎsGQ8wFE0F-pxi_^_r PD]m|I lWUr:42Pq(vż Q@Xw)T`V뿃Qb`1O{{]OB4ջ׷#o9|m G,UM8hx};J}RAQ1['X;4D}@4JgᤀAYa);~C#OJ9 `![Mބ6tt:4*x^RķHHwBrh:e(H1FRA]m$kK{B0Fj@%+@+QkA6 c=T!k +?@VĨ,3P5U'`=DXA؆ ,t,lD#(T0u)L]JSGm4FAG)j4D!PlF[Q<9Yz#ZE"Q<[O$Yb=#~[D,ZJ+q P%7K~JI3ngNkEI^QWT^ @-T:˘ %kש%%A~9Ֆh&&D$K:#yV<$w:4*̤ 3i(L2"C}9߮C#|^.LX,2SPM`_6[Db+FeFpJzK݃D,|b0[er ˤH/<K:=|O 1Yܘ+ %FuI`]6Y϶> stream xm,9r4w0'd֐!c%#Ot.ʈ,L#jO1yMޱwwz xq,gc|+?r?~OO|xVƁ;F؝w+dž}eH9ݰμan2[ٓ ȞV칾2NPp7ncLaedgQ)'2Fan [kalʸX'RN(dl0|p.)Ti~Ƽg1_2畈}*xz*,"3*ƂWB ^ /х;&+D _0kU9+-('|U셄9/üva^0cÊH9!0G3Fv? 3BŸ ܑy%woTgTHUdtP(D!9  Ό+:3̸1\Ļjު 5 נwנw22H9A zJN] Pp4 Ʌb2IY<&SWLtHz"7Y@Y s0'M!?p*TUH\`@@L9h&$?:=~z)_w1}kaa _hnׂ`amfY.ޅ…I3 k8MPAXDcI4UhEH9ƥ蹄[&tj" \M ظ΄Bz.aU0VLXUh2&X(`# `lP0KY6(oz0e=PHg)'2,e`@2内La!(VGrB!=_W`~]у)uפiѾ#PN(TZ:A-ePGY(Z2e=]|7/D ej P~?@ky[PuZC j)+m ȅ1K TLAA-ePHY(x^<&GFUsmQA1uzŔ4)+40dcVAQɴ1Y PN(T`*@0ea 0I4JYФ"Bܻ ͑0F͂4:TA*{V!,̐R Lyha3eu`ɳBdPɀ' %ggT1Ϩt%D an'x ,i1Yot*N{"#'0xNfX?8`߽ r MRl+75J _{Q2a@Y ēT_B _ 9kÜgVF\*xx@ @ 47EEi΢"4}oHȏ iH Yc1g}nw~XEqzXQ@" Ѐ9@*NMP:-/  Yd,2R ,*]V5F$Wc'EE΢"IgQAf5G(e,4KȜUF+gМUFCʈТ8vV:gUF*#Ygд'+*uWzG{ o9te*@Cņe_` ,9یD/:--С_c,Kd;Ks$tYDow$;3P>&;Hh溟C H~#E &HHX",@=vаxRJjmv0xv0'vuرk]|07upC endstream endobj 7681 0 obj << /Type /ObjStm /N 100 /First 1015 /Length 3948 /Filter /FlateDecode >> stream xm *s*OI6"E ^#4wĽ@Js״5^sѮ_q'OeOυ_^k_}Z[3sծ2K;W*۹Wv^.~Z:U j/Z뾯:Ǝr#p_իZs_ojռZ\`_f3gμm-r_4Vո'ُ}n][G4j;F-hܯk[]csگ΢ŸQU5:1n~|kUv-c.m{~ڵsg;aY;ٖ6GK;^|7V]V>ŸlķEU6N0zG铕 ف۹˘{wޓ}Y^rƧg%ۗs{gQf9s֙}7>{WJ&玶?<)+ZlG+<>{'Kx;^RovZY-rcK}}yr/wjv1aGkaxJm*bFL8")IUGĒsGĒsGĒs'sKΝݸdJV>Nzx:;^l<1-Sz&U*nCTWBTE)΋ƨ1*- )v-ΗƸp8\[Fi_k=\y|mev*3n:q:H--4y Byk=ygy-VLd,~&d L~seL~sg"#vgOH|YȂ+**\+S^pe3#gBLz׈$i) /2?oM8>1*t⒱O=Ʌ2]V.ٜ3ŞFY`4Ee :MƓ N ]fVL ̮P.V,9a,e~Xe*vȅbcxV,'|’S}9$Kd?jf9a-n 8Mqn'hXpޏbB"XiW0A)ђ>T؛L^ 8ot$S8oA+jW癐Ȩ1 HT?X$;@b 3BȠ',$* ,@M2UX58bB"7K>?a'cK6ȱaq7I#*#j/@U-HaK6:UbB"v,` v,6]7fȔ21LYQ+gLT  (l τD 27رԹXv,Vҹ(&$*`R`Y F'Z¿ 5@1!Q:mc FV%T8(pP2 ΣJ,,o]di,%*h%{JlљZpV:Iu8A+FC6PP.p%S4JiLgL;+^[icy_XDuLC!SPʻXJ^apL' O2NdTgB"Z}bs:p?ZXow4D{h/bKhjOT4}Ǥ=&u;zN#'"}j=&MOQ cyOܔ08bB&]auyvYwhf]6Ș_SY[Nk Ɇ36$F}8bB"ʆ_ِ;'Z$pfC g6-x? wr l-<)̦Fʦl3-1!)ŖnKdK١q'Rvh}&bB":[̖̔e"3e)&$2 o-3 i/@g͂ElJ_,@OxJqxu9mhgZ<$gBzwXUaWy"R>BG/lU2\UDyй BC-Yb2X >U7%U֛кh'8bB{`VeD2Z2h]A(!RLHdc2ÝZWYQ(ևlѽ>WQQ\EE!B^G !`ؓH1!AUTTwz v\ }'5bBxj}<)ۧCaZA(?RDy`JH@QW R)-yJ8dBSOWR©RΩ")4@a䍱BEv?%*\ vS*AJPW%H ̪)tZH1!tVR*9J`spK]= Mg[C hnM-@sޟS=Ɠqx1~02Ϻn?{,K{,`{,%d{"BLHdݼUJ0k%;ܯU"ńDF%UI$UѾ6d!"ńDFÍ#j 7rBvzv~zv~ߒ♐dCeCUP;{y0:Q=PP=PHw :d9bB"# O̩ls:V+}]DDb/EPY H]WE棂T@bB&uQb0% ?b&OIhgB0+~W s2O&'y){,֛% ':(~eIxqEN8i  Z&!vshqڊ-HjA@ P|磂vKD Nh iABrѢ= `Jyl+񨪤N -0䉊8r<A+A"7Tr=/%)&RLHd#-]0(cn+Hj>}"+y=}+*:aHʉ61?ZYmBEH "ńDFQQa[iϘ|:Eo@ k YW SQi S@LEo  5?FaUg 3D d+*5F"r*w5#kLT\tRH1O~w endstream endobj 7782 0 obj << /Type /ObjStm /N 100 /First 1015 /Length 3997 /Filter /FlateDecode >> stream xm )Tf+$xi3.Rp*y yȎ\K  @{c]cAiq>%8ҥ_W&M׸|s?o)瞹o.~nr B"]#<'=5524?yԎݺf ;v׺w@]k=ZK|ky-ï[r9ƸV>?߭KI.qD񶝋ѷ1⒘"/I=wكඏ=Du$ɥ^\䙕{23-1q%f^/uqطwmk\v=Oesk\~":GڃML+wn28sùbOVq-jWY!~ׯ{U"13{sCǕs' Wds+ Wґ{+s;߫V|ȓ-qss;W5؋z<^wԀs_kxyk{iG1V@4m'y sٞ1|{ۼx)s粝1=),ަavou8OZ씎5=~?[r^A;ulh;lv¶=3x~~/q&ΛLA{NUc#!x }«S,T15b"uA*ǣ N󱐺|,ވX $cI.#O.*q<ՀFm2:AJ \8NRz8j@#C.c ؜+7mu=en&x ~:m¦[a3[#2VoVGtIuD78̖CdOʎ^2hhFdtQnٙgEى3Vhv")]5X.NY"A,NY"ըڹ}N-ƞ'}ӵFNbHHF}xkPbmAmFE P@&Q hTSo+USj X}T! UP (0)^Q%b"*MD tL]I+0v]HwڴJPBhd D3rhlW#;Ш83Vc:cRX*jTpj@ BfV6*T*{]h. $Go-jHk-GNV3%=K:G FD](EnPf] j@'qc1cWFuZ&,*oS*lBA5n@vT3Q- -`@fq&MY0vWA ҆GY9y~oD M@@qTw"*++bYNng@`o co Y Yn4*☷AL\`RMY`xphi+ CKXYȴXYXYXYj@#(Z,% L6m䊥1170eY#CioSDc DC5KOubFv3Q-gAgco`" YY޽4* EJ C̛#Xbފ9ļ9yTmY"k sC׵xP` ک.ݶ <("k +@6Vdc)bElΨm+ Ȋv-V,VcaE:~ۤ}'͹<Հ .mV S hd`B9&d`B;&O\ߜx 7<7p q&<7p Lxn@Lf l <ՀN(a `pEs_%aFF63f UO8&}p4JҜS hdɁ`OX7Tt D9<ՀNc连 R9R(T4+ToZ*,&`gAVc?w}o^^P;8c?ahDx)ʐ`28}-]KDK{Ш2OnrD*F}z#RY@E#D3v+ќ1OuF "%'tJY|9}69/JcX oW OyJ 3 NY`̈Y"%D-e4p#?m^MD7;<M2"@71Ed$/ϯ wq7-!q<Ȼ$%mHbGv#;m^MS d ,RxSbC>x#I4wڼzo{,ޔg )H?Nzzmv4**k,HsR`~7z#~/42EJYPECT YcE?VYwٙ%}qDQd11Ug]p֙hԞwF͚gپ8KsaxQ{ΙSJ3݌FnYoβ͌Ff# ݌FfydZ]j΀FW%ZOMD%$hx ^OٝS&Tu%=%IDܳ hdPG0 冓tirKYkjϲǁ{`(1y ;nQ26(YMVi@X9Y|e!79F&BPxۈA/ [0?Gr%h^(G5Q-T31X>?o Qu+T@+Ì>v"sNc>*D*ap }SɜJET&V/ v 3TM (Ѣ}ՀF+ Ǝq؂7 SQ$I,d3RD;eeQdI*$UY%g}e3#ZSD;lh,9CV2hf8ZSfJjFW[U8g~3voWjQ_h|08Cc$|pA `h|[@c1`A7 ;|jNNG7"@L擩|R|RXߝ7*Nx~ oN?궑 oz(O5e)dVwHէ6R:Gk,G5QX912 8fam$w̺{]S hdqatt\9gΟL$jՀFp+g1+g1g1V<~5Qj@#/9MMM΁@$HL2Pj@qoUjEhd2ZIQ~PvѬ428q> rxP6^ yP6fm10QLb0II*ؐ`C ?&<ՀFNe($}~`~ټUVp7.~ܜxl& =M,{J endstream endobj 7883 0 obj << /Type /ObjStm /N 100 /First 1015 /Length 4043 /Filter /FlateDecode >> stream xm:n ύfY55Or5LdwdE nbI1F}>Oџ8z ku|gwgS>>Q}J_먭[}nޣ#{lS"SFs<|j+\qjSgT:j m_ȳ\(|jhgy^E^bk0>u,;@s#hm?nyr+\nZ=(uuYGDsXwأ:;1Vgw?W30#FsgX`dUYsao 2semM3nY=v4gq?3W3wXc\2n?1htMjb=5?:\s|b5KtXJtXJa*%)RF+ښ~hXjcmJNf.׵bR7)]_?DZYji5O6+mWv?'L_|AT;v{OQ 1kUno ;Pv(Z@QE$ Q-2W&m؉uQDQo *Vo |6\WH6$Zؑ ܚW5qop,iJEES*\@ႢÀlŷ .]e7(uH:)I餸lO /sfa>AH s?ؑr';rɕk9rp`e~; IN!Avqω:\P9 rAbQ@bA=DC'jz\r1rٚ׉1!7 !uj0 950/&bwxchM6`6 %LApͤ}^|8].ڍv`r6?I5jfTqUНO彂(;\P OVmE>mr'Н)Н u( uE[rŽZfǿP?.0PP*YEU*̔hl~AZ' qؐʘ _@\U~\Fu]#M~8&6e6e6;$ Z7FdXq . k;ȝ v;V\Թ C!nҺMM6e팜8eS6e46?6?b&m3ov|Ք&(Dv& BC8ɥF2.:atlaٌ64&=bѳ)ѳoSU:CIvSmp4^=t} ژO   l]SJ)MtT#L4EW[يj ծo;\`l=_ְ\"bŵvڢ5mߋ F"{Kbہ-ށ]pa';N;=UO m3.( Ud Kt(H]iu2.НJѝJ=j*8tfT*2wM Xg) e |FgH߰ 藇5)n{@V΢s@VFh >@a!ɍpA1@!2=A!'(L&(d$v('MơOR.')WO 9c#yђT[-mjl Qy $S;0s sR61l9 +a$[ Yf Y$Rv rV*GarV)GaZ8-.p婖`diZJwS Z87EJ!dPXj„ oiAjuFa)%{a)懛6J29N e =e}-{V["a(_|a$Rv\’#CqP|Wd> +bw@jTRU=,GHoY'PvR!]EE Ċ!UEР"aA'5rv^TȱTdlMNS ɑ7$9rպ e*6F`& Sl:CrJ"ˍ _6Yؓi@]GtJb27w7@U?PuTeҒNQKxg@u*_SQ (AVÑ"NIpASWR #^E"5YLaqz~zW]8Y.)RvgV );\` V%a+ewĪH9"wd\JlJޓR̾H}[;"Tlw@%̞(v{>j i JӊBO.)^G5;٧){N +M۴PAUvST;G@ U Gܪ/>2`ezF΋Ogbr؍ +v6h+{lĪѳzyH=F8zV%UIgURY;zV/?x_ѳ*qwHVUe!7UUaܯ]FJl/%צ6}&@+m%YsB䨪#p^a8"w>ƻN N:S endstream endobj 7984 0 obj << /Type /ObjStm /N 100 /First 1023 /Length 4901 /Filter /FlateDecode >> stream x}[ێ#}G׼*uv~,]c#3R zD'N0Cf2?)SuI~E/? Le&w:aRDn'k}Ŀ<2H?s[&m_y)Z&34†bqA~@Mec?:KVf3zWaM޲X3y|b >zyO3 =4y6My 6ZH<486ƙ) V._~ 2c0U1qc"Fh/LXz;Eb$X,I|⋏4XI¡_<ҍє]xkN7pљ<%/FO9+8$4Jvr6GI,:əe Gʚ sPBN.k% ^69d89-(1~b4Ēh].IYHHwSb4aͧZh>@Q 8mpHƱ'-3Z%2 YBj22,`3Egэ8]3Nx#g >p"q#ђ6ٔ?ϟt_?|3ۚ6q1hXPtZ$\ \Lj.YO?k0_E}>£PZ(69i' xK6^RѠl#|MA5×GJ/Pg_Y*׬' u!<]V ld1%+dzK`<dSed%+m}yQףܣgeQ͠Wml3VGڌ甭nf0`8)?;Ӂrթn|%y1G콢{xs?@^==BCх S4 SA)ty {xh.9`҃tSPzPe PI-BJRa.\.JຩȐY:YBRY7R Y%Ed*."JNJIB$I7"IOz"rV4 C(Y'0蹢+=f j FmuhQ0 9jI#EzYBH7GGnj+̑8񹪐x&Ea#ĉLq! }4تz -"2*ХjI/0w xJ*{L F9Eb􀀹G}hB0Et'3IzjbEQ/#-xq*YOUU7tTHB0*ŁU"_Uǣ\ek+5nbJ@w Y"廬=z@x g@83 ^"Hx5RU4kKAGEĊ"TKDTK£Bۛ*H]BdK*pI*pI5|% 8\2ԟs?i!hJh)KAT!KL=:N4eԗhzh)RJ$ {xBjB :ZN|UQ,_sL#<r!UNѼ ɀɀH=<  ت[]2`/At/lU ʦ2KluP:MKB2KUz=z:YBG/liEu0::K::K::KrgUg gM|B**ayϪВ݃ -yQ%Th RjUhWWu K@zX&H2,T9i:zX&H WjJZdp{ȫpS=n2L]2LO՛ 0`!V Vѳ3Ah2Ah2A4mxDW&5֪S)یFSXq( V۪۪Ta=9WFV[}CO|lMQPegk*[=[T٦Nk|t@s H7U) MAm굦 I鶺s ᚠV7U)x_7|jԹxx\tx>OtP8]N?}7/b~<E'}=JIz;Suwz8J"Ψ0juͻK@,|;}9?cq;x<_?;jF6ţb?^>޾^/x2Jj|{-b[Gw}Fľnܔ@~q֧8Ym41;Ceft;|PBn1ynX9w|ΰ%MHn{U,]Yo{eҾ4}v/(ʫtY[ siw{Bh t̰*Y7##=n8'F?~9z|[6NL>kPgq [_O2豬f9_>ί/ִ,hժyCuӈ/-7b4;§M0c)[p`QD kPOlaxSҪ>`wDI0F:>Y-jGYR✆c~/_UDU}mdz=ӎ9"Wi79Y;!h3o<ΏL3O)n K10>^{e*üN\DܷuR4v*yS[y5Az\l.mw;_d6R ;yP ~Qvd<,kD|$Oe]=7|9a?uh߲,Fi};<%]Tz9y3z!CK 6:dnlN;Ӳͱ4ȺɾNܢffŽ3dޕܯ72,{_6vr~v:=~y?ܞ9?3T+s5e'3 z?ϗo,wq ׃!.YMK 7Ayn"n}!5J\-~N2҆il*̺]$y -,)Tfm-IBDlmfn 8m^&O;ZVCg[\t;jlӔ/ui`];>7-{?I LVVK7/dsJl/qހGC)};^ o1z%cԋ~{7W^<`[w=(yxUQb<K6k6^;eeM}\nߺ7շ7^O7}]l3O;. ٲ4}^:3nY6jʂS&qh-ڶc͸Rjm:-2Ob[uliwoqkAbMy_>_nOb2+i;}CTϯjq{ݙ\\_XClKO~4o=cvzڢ<~_eHvf6޹}"ҺlNǃLl7+i+I\\PM˫l8lÉzEkuJ7Ŕz| {KspmIx*xˡg+F1u_?[{ bvՋO)ӮWcZy4TΕcEYf@5 /ofkh0rX'#ZҶnn$+GyͲ:}qx|-˜8zZnΝrLuZMB\6*ͥm|V8-zâo#MYc!D6?? WWt\k OY<CUY?YUF*{JE$CQ"dwS%7]Sk/vk=لcu{cW*\ F4ػyi6TU4eO\q[_䃱ᶨnA=q`A!l woaܿ i0.nrb=AfcpE'uNNY$RiD*MD^JTn͞GLnm7}ߢ*UxOo]< tk6Nn vVE9`uXPlW"jUu) gu%O[{UYćunlZpn\"w}bض DC$P1ljS%Jn;Sp |YW?Oؼ{ɝ7#׍bΛ*VIhs翜ßdj'%|YJ#v_VbڸGr]rsMK.H%dzB[wG1ٵ+r*RU6U n߿$6U odz"71Vc6 >lRޘ^7Ykrs:51+LV \Jy3 a\l4Es۵JڹWgbV $JT^9=n*agkbFL.eZD+pVg+-59sƁ endstream endobj 8085 0 obj << /Type /ObjStm /N 100 /First 987 /Length 2684 /Filter /FlateDecode >> stream xmh ESHK+4H?BqfEήw$e#w=cqV=Uy~fjgϜ_xR9?ˬ23mg5gGk2{˂Q;HkGViى1gsz~/|]m 2y9HhDٗwxǺ#д%N4! ')mkNV%* JEڎ+_[G;iI$Ah4B}{J[֦ H6Y_"vFiK{wdIe1XL'gk,E]Pm:it%}C:ӏ7dIwA4 Y2-}iG7-Ei):ɒ4Ym92m"KtgCnmڇ>IFiJC{IQ=ڙѭMPچ2(@iL2uMMhJPf( @EjbSomڄ&E}m&Vi%AU+fVh q(@N+|f8Yvk]@8]!6HNG;*WNL# ٵB a C!BvmƎo7W  k3hK[k+Bv[Kc0nݚb+o d =C( qi` s|+&Io  =+7v9Nәs6iCX`pcAZijIuv)z\9Io \{ k77ܿuv (]߀ XOcҰ`a Xh]4K6IX7nOUo߰ mS5䈻7Luv+em 7oz6)Zߦڠ@a Pԧhw ;ށuM}֛8wxztSnO0aߞ>E&m߱mSr!C~;LwO:݌9;ށu-};wXz;ށu-}ѼxKPݡߖ>E:wXz)zf K`ߖ>E,g;w{-}~k?`ӧh]XM?`ӧh/<}q{_6kQnon7xky96G ?0mnP?Xӧ9I]?X˨Rwd >zܮ>EK{6L}q%mMXO*jCS6)*}; 7ߘ 7T߷Oͺ6ڰ`}}n 7߸ 7X߷OQ-yo࿁o]}VaS6Y7PAg 7~C mSk?"ޖ endstream endobj 8238 0 obj << /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.14)/Keywords() /CreationDate (D:20140324150441+09'00') /ModDate (D:20140324150441+09'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.6-1.40.14 (TeX Live 2014/dev) kpathsea version 6.2.0dev) >> endobj 8186 0 obj << /Type /ObjStm /N 52 /First 505 /Length 1939 /Filter /FlateDecode >> stream xڍOo] ZN6%)p=v`csbE1pfo_R|Fh7GΕ;Vҩ[{^C¦.VDR\ZBJ Q񣝸2Qpxm+޶BSQ!iSq,jZHmjWZC3+ pEsŅp%bU0pbNL=hmzQ,*59RrEjݐ4 \c[bL`-ҧ"icn=lF]Bp¥t R2VbXT#=y{.ڨo B *D'g7?*.ޟyߵ Ch7ZkMhe o6YNmlpp蒂ֶێkGGGEt?VnEjkeCCCC t[ֱ*A*;; vJUS| te:um8Hz߶ʶΰ:~_&b B- S0C m/z^yL0H0H0H :- ثDA;#;`8d8d8dAeG7]+    #˲{嫋/woo.w0++[Ѭ +uYN/ݜ_\gb/nhL*fR1>V}f/w04L+psp۷`Z$&068m{0%ŔS24`v6o/\o~:0 , 0`ƖMu`x^v-lC;vZ|,!Nꩿi6l4k=Ь,m!J}Gm;Y{IʧLH&B260B'ßL#EpA9E#[Hd]lBHBRD|^ۋƻNbS"FABAE*BPK!uiیU"D !YV/FQ"!D'h겔^4&km!)DMBP[ҋ˩xr y"sY9'45f-(`:g;l_o;@`6/E6#F00%Lm7pF*0R T`\K#|g#Hń^x6 #%wċ-Ex0n0X`{ \*9_ǧ{*gw>5O(ǝ~4h;'|}~xO_>󯛋w?ѫ7oh*vS+S5Wm*uS+S W#+oQHP(I(JFQ)HJ&Jrp9\>oN0\N.rp9\N.Jp%\IWMW+Jp%\IW+EMn nMn nMn nMn nMn nMn nKn nKn nKn nKn n;ۂےۂےۂےۂےjp5\MWjpFNWjp5\KגkZp-\Kגk4Zp-\KnnOnnOnnOnnOnnOnnOnnOnn?>MnnOHHHHHH{?=}9_ 8 endstream endobj 8239 0 obj << /Type /XRef /Index [0 8240] /Size 8240 /W [1 3 1] /Root 8237 0 R /Info 8238 0 R /ID [ ] /Length 19386 /Filter /FlateDecode >> stream x%yP]wIHBB;AȾl$v?֪hG:`it.{BLaZZwՎL;)U,>ߐ9y{. )(؜Or  ]Vz7.)@mʵNz({w^JSnMzo*7zgUi6(wJYTV@ea]z'UCoqe56S]z*wzG{avp@o!A8O/#z(;yB>e)Szqp]ۣ{N^BHwMo2^һ^^JyՋCwnPބ[z<m{W;zB]Ao>} )#zTz[O^e^-ʗJ\/kxWI~(QI^3| 1VMU/\S~z2F(&.~9-zd!?'i߲ f}UݮGO%kd y?(a cb}b'՞5{Ța8Aiʲ}Y5+MwְO׳=k'.5( {ְOpaaz_ְg o?_) {ְOapRBiس}Ⳟu5Y>UҰg /zf&kسaߔڤDiس陷a91|4;zUzf5kس JÞ;gγz'?D=el3[z#c_Q{ gln7zj!AA/v5$3 ?o)c|3 ?0ʗZn(ca~3q,zq)c U녞}++z ŀ]Vo\EzΘ?/*: P?ryyN6yyVþce)lի;ez;N)an syBY;bH+!CrLvŐU=z1$G{a+သ+ᐞ+Q7es[eczqҊ<y2v^b3ыesz{bB]zIϳX W\=L)5zq ʛpK/'m{W;zOB]Bo> @/}!<ҋcK1<ыcUj7Oҋe^mۢ| 2|} o&[hl3;xPlz1 1^bg gU|ss|׋'~k2g^z1k`^R=j.Ra>y0X ,z1ħ۠L/)e9lL7xRYzO(`qe5bS]zq*w8G{agp@7)!;zQ7sy>x@?Ȱ;CFq}<}lF>np2aw=RyVܥ \Jb'ڔ*\Ӌ:sy>CynI&mыL腣Pvv}Ӌr讇zqB.S>Gzb<'z*39 [/ᕞ+X^MʷР'X^(Q6=W1!?.[_ _ni0ƪ 깴\\Ho | |^H1}~׫"=W[<:=W jX/|^} &=s$w% [x?` asx4MVbQy>Oaۢgx<?D=el3=;BIf2+8αqQ='Ր^ϓ-e,zO02f~n8W8Vה1boþ}O/@3e*Xor ł\ b`/(C^ y(L7pN6: [b`(Ka˲mPC|JY\ TV@^,*ءþm(1Nإ}T"< `Vz1؇^ vGbP::yBe>e)=W#qpy6G^,؅rA/.e'X W$H)5=/]z~5Cyn m Z0+qC]0+^ lWþ>t׃a_@!WTa_uU J {,`Wi`%8} }26)߂a_m,w`W(Q6a_o F#8+?a_uc}ŕ:70+#_kx~ث~˰E@^5^*Xrz`2P`-kaBz(֋3k<(ыJr#lsB [<WV=ߔ۠L 97)+RϳZesEIv=CGnأgP}zzr?s+B~Wˆҳ0sߠ< <'7ʓpJϱ< g< <\"\s Wd)5='pCK'ʛpK 5z^?R=PyPr^x\y?D%v=el3=?2v';8`#Ybs` G5ՠ9RLX\2=OqcQs鿦ʣ?䷾Q~w_W0!regK5`ؗn쿨\ }9z0q`+7@~˛r#lsIVyMFY [&?ez%O)a3uIeT9SPV=gjHA< ? {\Q}zq9sHy12sA8CFЋO;xJϟc3=8b.r-MRKzXcc1\ыcR^kz^ ǡ7bQPބ[z߆XZB]޶+C^PBw=<Ћ^|bRy OboU>gzdc=zDE^y)K5ы&[hЋu G%Fb4>'pT a/_JU| ^?ma{\r%Pg5UZkB-ka^<*C_oþF0 .9b6a_p]Y }/M)a_ 﫲 )}M 0 }QVa_ ﳲ |'N0 .>*wa_Akw{V_r?s^y{< GkPcz* =CFyNpFϐRsz<\ЋcBy.y\y腏gʫpM/|v5$wK 䃞'8L>űE/}X_껦o_1La?g w$O }:?<Yӆ}zg J>]ۺ6%z) &='>krڰOosiwFiا깴ﳞ t?Rza´a󋼾J>C/96)=) .=g>38mا^ҰONzq84ӇbqE|D/2~1=/b#Oۧ< )6#=ۣ{Nω/v!\Ћaߥ U/v?=K)kz~J o** ыuU4=w827}Oϳ_v t~+Liاy KŰO?Ngz^23/oҰO2/a~þIiاbcyzDiا?蹊0ӟ\+ =W#}1V}<}딆}?Hк_~dBT^zq]\^[/y߲yW\z!%~wb1@6ؾͰEϐ~WV=Rz)A)_]&eT깁 v9~VVCJkOʝKkޏ`=K~Pþۨ} z+a_Ny ס ʣ`z*a_$E>z_+Oa_,E(}<a"\,\ys\3Ugz* =} 69>R=wឞ|}sW蹊S腣8L>酣X[>ǢҾ2⻞'Г'?'AWY^z1L`^\Ez!r- QXϥ}y(s6=< Un-zz(KagmP5q)e9l׋;J*ءRzNxǔ;a^ Qnأ(>=!?U~{HyEOoGBecz!/*6^}Sz^Vf9~298. z^RKz~^*\Ӌc:seԻCyny6y[;z.{C][Umd+C_RzxLʼn'cxjw)<9ܻE^yv%q&[hs׋'e#|ЋLGIX1jz{)w=WP1a/3Q 0{Uw,5UZ/je|H/f|ZX PDJ@6y-۷Y=ߕUωr9=_]k&eTY=_UCoz{>+!r' Qy A94*av^y {՞w`ػ]4(aVy R=o'!Zy ;R=g Ry |ʋ`?\y ?z)aODZ }>cm0(y𩞇ʻ`?P/䩞zexN`!<,~aT=elaTOC2+=ϰ=q9(CT_ĮzH{n)c|sU)'=W=70虙8ıꅷkzzBO~6_p)sE/B=B=`KK5P.*:===XeOy(ssN6酔ͰE%Ne)lssZ 甲þ˂ s29znz+!t1Nإr7ڹr/r? ^o>q@?^xzM{)cO1͈sF/b29؅rAUK.eY'v?8)UƘ8t!;f=aPބ[z^Oa 5zq+pG/){B]ٹg>y @/!<K1<ݳUye l8ڢ| }3vO,`g=clR>j=߁a{e#Y}cO3٘&01 KI>˿S { d^ 4쓫Bje|H%{O|G\J[5YhDߞ1I/ Zc-zNߕ,Lnsho NY_OnlLZ9%U=@~QZu;ZI+v2癳jܥ痊|L=zN lrgV.'M=l}4ݓF:4G(Z}E54i'O]AayMϕL47iҰOsj& d>RfT#:i'酣J>YgM=':e<#='gß9QSƆ?sn;B 2+=W2qy Z Q zcWC{=W-@>9aIϟ[o(ca~snCKkþ>a J蒤ro{I|Kc,ʵ`>`_P獸rl~N\4:Un zFY ^M5o~zRY*0qB9/]ƷSOqKnQn/nm= v+ni= Bxcbs%l Ůt;L[:x/|O nzZP멨5"n-Zw>5,IASx +^%~#5x>gh~P xUIٻ`MRMvk-Ի67Q] 9zW9T@I?Z pvCyPpBDI8 a0~;K]~1p" nC-;-bn!c]O9oB>}RoؠF[3xG&>]߀Nxk*Xx;?Gx;?||7` ?X ?v'tM2؛QzR~R~xR~R~x[f~x3x >~| )?H!3?q!r=?틌U`3?";! =ˏCf~#b"׀|L|L1!` R&3LlH ߌa'6&oFI=L3Y@DDp4A^xR; `\&" o\&H{Dx>=x>3x7>37[Wגb9h &8h &8h" f&`f f&^=L3A=L z&08L z&ؔJ;SSkSk{SshkYR_ſ%IAGka3lR ePP ;Rvn{ap8 py\p{c#o$8&܆>p"Ҡ"!D|cЂQ! ^k"n >g#jo~[K$[ o-PBY7xw =-R U5G˶g{<2[-llZ[Z(kZ(ke?[ o-[1 ` -g[hl[hl1y-\KkEE --ZlᲥm!EdE -j -j -j -&Zm-$LD`D$DLHvVg"ہڙHtv&r6@7; $ϐςTANj:~[ە[q4uT&xR|E@ }=2%>> :Kx x>ghhl6hlƶI}a}R?܍.em4`6*6ģqem6lc1!-Kkxk\" -^ZRSyo_-F"`6"G$Cj"$, "?j#68j㨍@TQmDFTQmDR[:eeO%I%eSlM5֔0 GSM)QSDM)ؚ#DeSMQ6EeSM)ަx2SM70MH -q Nq9S\Nq9Sq)B"t)B%3eMN q)38Sfp)BSNݓ;]ͥv)8SNƩu!y*\bzHN=EStO=ES)ΧSO}~}@DTY"A=<[()g$1E D}0󋇊dz#g;5H׉8zkkcDL6pf#‰z#fgX?7vfwh i \sYOczaSȫ? 3X`= 3XO^=yzS`M`^N= 3X`= ^>H?X`Hzgzy筞z)z#*"تgkbk!6d5GC q4D=C[Of<=ښ$7$j!8hqg(&P2q4iL=CJ E3CDP'3qId"B#6DP2ؖ.K?Q{DԐUo\JAXrʅ (AP.x\@r K(5?Qߏdzo'(A ( P. \@{{{'{~7{~{~7{7~w{~Yxo}XIX!5lBoZ/ ʻp+~ GaUρ_#_#-DGާ^kMkLMu^kGEP= BBqQPDBq?a/JdCl-NdB6ih!™гLh!-pp8ZG -pG g8Z08 -…b߮'Y[Q D-@Ԃ9ZтZgzYgzYgzYgzY`f30)_a[*ڧ&>__t۹ߊr-i=5@FOPP wjԔ #a{8jS#5G=C_Ea8 ku"$Di8 Uu^Ql$MaT!:DTL݆ #Q -!<P5RjKTD<ռN5@5AjSghL5Ҙj~I W}ؙ$Iߍ2"oi HYꠧCRGupQGuKcpQ=tAO=;:8VQGupQGtAO=:8ֈP]$PE DuATQDuQGupq #b0/:")I]uD>eluD WnATGkZluD7-c5g?՜[ +J âlH+L\Y5VEr*"9"9os6wx!7ۜٚm9xmlYsNsl9(lNos79 ys͑7GysKmynNJ9ț#o9x3js͑7gcpN^s418s 18.!U AQZXR6좆 a3)j(D ۠5T衆`?-(5Hj {!R"& D8aHA`u"4DWz]u":D4M@1\[u_So}Rdžjج9Y /A:Vk$a5jh AUC|H*z"HZCET_OEQ2*6%g_ؙ-Iߊ-_r*UHEV!BY h*UHSV!B0[ n*UH5W!B`]$ w*UH˫W!_B"_ ~*VŻmТew')gUD*Vsت|Z^qkU>_U@*V55)8a^yQm(JՇU*V3Ҫ|2ZOFyhU>j>Q>ʇU*qV#Ϊ|YO2eUƑO(4#/tj>"(&V5!g̰2h>̬-ae9_vFPY$EG>٫'{U<*U|lWa]U>GtU*U哸|Wު[;ЯHZk!¼CDxm!}"IE%NT; Eج;AX֝ "auG֝p^ݑpu,AVw.;Ah՝ u 9T3Ñ ARwc u)ȍ"%D kx "->gmL褧UQN:9䨓Nz:unN Ugѯ"Ji۠"%F3Ѫ!rЈ$3BEQuFxYqeDuF2i<2:#,bꌰ1:#b,2ň$pduJ뤧S.X'Gbbfi|ſKY'euV'QDuJ$N:l:ruV'[lu5r4,GhYf5GD5Kl^_[0ߎY#4K,G3K,= h6=iYs4QhYzf陥gYzf陥gYzf5GF[z+mg6ڬوh#e6٘864!lFldHXhR4s4l5AĢ3kf}~*5fe6@DEFfdRou?ckU+JVo6Y{"2R"ѱoaJVO?r|wkSy>QirI*>&)nrI&)vw̤|&CM&3wirI*>&)csrI*>̍')7xrIʍ')7xOAsI')w}Bs J-(4܇@wwr$gHr$gHr$'!1gRrdƜIəITq;̙IRŜəə9s4h̙9ʉXaaazɯ Ɯ9ʙa9s#>G|9s#>G|9s#>G|9s#>G|9s#>G|9sy;/$ks/BXa ZX6@ lM@)lmP*`TC v. {`/p!8 G(pN)8 g,p.% W*\pn- 5P w.܃P#x O)<^+x o-4;x>' _ 7gwg!>C| 3g!>C| 3g!>C| 3g!>C| 3g!>C| 3g!>C| 3g!>C| 3g!>C| 3g!>C| 3g!>C| 3g!>C| 3g!>C| 3gɋߕ_w% *X k:XŰJ`#lͰJa+l2(PP;Rvn{apa8GpNi8g p.eW\pnmZw܇:cxO<^kxo{h>gMw >m4iħO&>M|4iħO&>M|4iħO&>M|4iħO&>M|4iħO&>M|4iħO&>M|4iħO&>M|4iħO&>M|4iħO&>M|4iħO&>M|4iħO&>M|4iħO&>M|4igug%>K|,Yg%>K|,Yg%>K|,Yg%>K|,Yg%>K|,Yg%>K|,Yg%>K|,Yg%>K|,Yg%>K|,Yg%>K|,Yg%>K|,Yg%>K|,Yg>ovIVjXEz( Pal-P [aA9l *Ր v `?p8 8p N8 <\p . :܀p nC  >A=<x 9 ^x C#| >h ]y?&.⻈".⻈".⻈".⻈".⻈".⻈".⻈".⻈".⻈".⻈".⻈".⻈".⻈".⻈".⻈".⻈".⻈".⻈".⻈".⻈".⻈".⻈".⻈".⻈".⻈_ʋB[v/DK/DK/DK/DK/DK/DK/DK/DK/DK/DK/DK/DK/DdOfrد endstream endobj startxref 361162 %%EOF fontconfig-2.11.1/doc/FcPatternRemove.30000664000076400007640000000103712313745357014573 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcPatternRemove" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcPatternRemove \- Remove one object of the specified type from the pattern .SH SYNOPSIS .nf \fB#include .sp FcBool FcPatternRemove (FcPattern *\fIp\fB, const char *\fIobject\fB, int \fIid\fB); .fi\fR .SH "DESCRIPTION" .PP Removes the value associated with the property `object' at position `id', returning whether the property existed and had a value at that position or not. fontconfig-2.11.1/doc/FcCharSetAddChar.30000664000076400007640000000077212313745357014545 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcCharSetAddChar" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcCharSetAddChar \- Add a character to a charset .SH SYNOPSIS .nf \fB#include .sp FcBool FcCharSetAddChar (FcCharSet *\fIfcs\fB, FcChar32 \fIucs4\fB); .fi\fR .SH "DESCRIPTION" .PP \fBFcCharSetAddChar\fR adds a single Unicode char to the set, returning FcFalse on failure, either as a result of a constant set or from running out of memory. fontconfig-2.11.1/doc/FcLangSetSubtract.30000664000076400007640000000073612313745357015052 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcLangSetSubtract" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcLangSetSubtract \- Subtract langsets .SH SYNOPSIS .nf \fB#include .sp FcLangSet * FcLangSetSubtract (const FcLangSet *\fIls_a\fB, const FcLangSet *\fIls_b\fB); .fi\fR .SH "DESCRIPTION" .PP Returns a set including only those languages found in \fIls_a\fR but not in \fIls_b\fR\&. .SH "SINCE" .PP version 2.9.0 fontconfig-2.11.1/doc/FcCharSetUnion.30000664000076400007640000000064112313745357014342 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcCharSetUnion" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcCharSetUnion \- Add charsets .SH SYNOPSIS .nf \fB#include .sp FcCharSet * FcCharSetUnion (const FcCharSet *\fIa\fB, const FcCharSet *\fIb\fB); .fi\fR .SH "DESCRIPTION" .PP Returns a set including only those chars found in either \fIa\fR or \fIb\fR\&. fontconfig-2.11.1/doc/FcConfigSubstituteWithPat.30000664000076400007640000000154412313745357016605 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigSubstituteWithPat" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigSubstituteWithPat \- Execute substitutions .SH SYNOPSIS .nf \fB#include .sp FcBool FcConfigSubstituteWithPat (FcConfig *\fIconfig\fB, FcPattern *\fIp\fB, FcPattern *\fIp_pat\fB, FcMatchKind \fIkind\fB); .fi\fR .SH "DESCRIPTION" .PP Performs the sequence of pattern modification operations, if \fIkind\fR is FcMatchPattern, then those tagged as pattern operations are applied, else if \fIkind\fR is FcMatchFont, those tagged as font operations are applied and p_pat is used for elements with target=pattern. Returns FcFalse if the substitution cannot be performed (due to allocation failure). Otherwise returns FcTrue. If \fIconfig\fR is NULL, the current configuration is used. fontconfig-2.11.1/doc/FcBlanksDestroy.30000664000076400007640000000056112313745357014565 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcBlanksDestroy" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcBlanksDestroy \- Destroy and FcBlanks .SH SYNOPSIS .nf \fB#include .sp void FcBlanksDestroy (FcBlanks *\fIb\fB); .fi\fR .SH "DESCRIPTION" .PP Destroys an FcBlanks object, freeing any associated memory. fontconfig-2.11.1/doc/FcPatternDestroy.30000664000076400007640000000067512313745357014776 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcPatternDestroy" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcPatternDestroy \- Destroy a pattern .SH SYNOPSIS .nf \fB#include .sp void FcPatternDestroy (FcPattern *\fIp\fB); .fi\fR .SH "DESCRIPTION" .PP Decrement the pattern reference count. If all references are gone, destroys the pattern, in the process destroying all related values. fontconfig-2.11.1/doc/FcGetDefaultLangs.30000664000076400007640000000116412313745357015012 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcGetDefaultLangs" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcGetDefaultLangs \- Get the default languages list .SH SYNOPSIS .nf \fB#include .sp FcStrSet * FcGetDefaultLangs (void\fI\fB); .fi\fR .SH "DESCRIPTION" .PP Returns a string set of the default languages according to the environment variables on the system. This function looks for them in order of FC_LANG, LC_ALL, LC_CTYPE and LANG then. If there are no valid values in those environment variables, "en" will be set as fallback. .SH "SINCE" .PP version 2.9.91 fontconfig-2.11.1/doc/FcPatternReference.30000664000076400007640000000065712313745357015243 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcPatternReference" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcPatternReference \- Increment pattern reference count .SH SYNOPSIS .nf \fB#include .sp void FcPatternReference (FcPattern *\fIp\fB); .fi\fR .SH "DESCRIPTION" .PP Add another reference to \fIp\fR\&. Patterns are freed only when the reference count reaches zero. fontconfig-2.11.1/doc/FcConfigDestroy.30000664000076400007640000000112312313745357014553 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigDestroy" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigDestroy \- Destroy a configuration .SH SYNOPSIS .nf \fB#include .sp void FcConfigDestroy (FcConfig *\fIconfig\fB); .fi\fR .SH "DESCRIPTION" .PP Decrements the config reference count. If all references are gone, destroys the configuration and any data associated with it. Note that calling this function with the return from FcConfigGetCurrent will cause a new configuration to be created for use as current configuration. fontconfig-2.11.1/doc/FcFontList.30000664000076400007640000000110412313745357013535 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcFontList" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcFontList \- List fonts .SH SYNOPSIS .nf \fB#include .sp FcFontSet * FcFontList (FcConfig *\fIconfig\fB, FcPattern *\fIp\fB, FcObjectSet *\fIos\fB); .fi\fR .SH "DESCRIPTION" .PP Selects fonts matching \fIp\fR, creates patterns from those fonts containing only the objects in \fIos\fR and returns the set of unique such patterns. If \fIconfig\fR is NULL, the default configuration is checked to be up to date, and used. fontconfig-2.11.1/doc/FcConfigGetSysRoot.30000664000076400007640000000067512313745357015217 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigGetSysRoot" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigGetSysRoot \- Obtain the system root directory .SH SYNOPSIS .nf \fB#include .sp const FcChar8 * FcConfigGetSysRoot (const FcConfig *\fIconfig\fB); .fi\fR .SH "DESCRIPTION" .PP Obtrains the system root directory in 'config' if available. .SH "SINCE" .PP version 2.10.92 fontconfig-2.11.1/doc/fcfile.sgml0000664000076400007640000002352712306317520013554 00000000000000 FcFileScan 3 Fontconfig &version; FcFileScan scan a font file #include <fontconfig/fontconfig.h> FcBool FcFileScan FcFontSet *set FcStrSet *dirs FcFileCache *cache FcBlanks *blanks const FcChar8 *file FcBool force Description Scans a single file and adds all fonts found to set. If force is FcTrue, then the file is scanned even if associated information is found in cache. If file is a directory, it is added to dirs. Whether fonts are found depends on fontconfig policy as well as the current configuration. Internally, fontconfig will ignore BDF and PCF fonts which are not in Unicode (or the effectively equivalent ISO Latin-1) encoding as those are not usable by Unicode-based applications. The configuration can ignore fonts based on filename or contents of the font file itself. Returns FcFalse if any of the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue. FcFileIsDir 3 Fontconfig &version; FcFileIsDir check whether a file is a directory #include <fontconfig/fontconfig.h> FcBool FcFileIsDir const FcChar8 *file Description Returns FcTrue if file is a directory, otherwise returns FcFalse. FcDirScan 3 Fontconfig &version; FcDirScan scan a font directory without caching it #include <fontconfig/fontconfig.h> FcBool FcDirScan FcFontSet *set FcStrSet *dirs FcFileCache *cache FcBlanks *blanks const FcChar8 *dir FcBool force Description If cache is not zero or if force is FcFalse, this function currently returns FcFalse. Otherwise, it scans an entire directory and adds all fonts found to set. Any subdirectories found are added to dirs. Calling this function does not create any cache files. Use FcDirCacheRead() if caching is desired. FcDirSave 3 Fontconfig &version; FcDirSave DEPRECATED: formerly used to save a directory cache #include <fontconfig/fontconfig.h> FcBool FcDirSave FcFontSet *set FcStrSet *dirs const FcChar8 *dir Description This function now does nothing aside from returning FcFalse. It used to creates the per-directory cache file for dir and populates it with the fonts in set and subdirectories in dirs. All of this functionality is now automatically managed by FcDirCacheLoad and FcDirCacheRead. fontconfig-2.11.1/doc/FcCharSetIntersect.30000664000076400007640000000066212313745357015215 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcCharSetIntersect" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcCharSetIntersect \- Intersect charsets .SH SYNOPSIS .nf \fB#include .sp FcCharSet * FcCharSetIntersect (const FcCharSet *\fIa\fB, const FcCharSet *\fIb\fB); .fi\fR .SH "DESCRIPTION" .PP Returns a set including only those chars found in both \fIa\fR and \fIb\fR\&. fontconfig-2.11.1/doc/FcGetLangs.30000664000076400007640000000052312313745357013503 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcGetLangs" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcGetLangs \- Get list of languages .SH SYNOPSIS .nf \fB#include .sp FcStrSet * FcGetLangs (void\fI\fB); .fi\fR .SH "DESCRIPTION" .PP Returns a string set of all known languages. fontconfig-2.11.1/doc/FcDirScan.30000664000076400007640000000137412313745357013327 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcDirScan" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcDirScan \- scan a font directory without caching it .SH SYNOPSIS .nf \fB#include .sp FcBool FcDirScan (FcFontSet *\fIset\fB, FcStrSet *\fIdirs\fB, FcFileCache *\fIcache\fB, FcBlanks *\fIblanks\fB, const FcChar8 *\fIdir\fB, FcBool \fIforce\fB); .fi\fR .SH "DESCRIPTION" .PP If \fIcache\fR is not zero or if \fIforce\fR is FcFalse, this function currently returns FcFalse. Otherwise, it scans an entire directory and adds all fonts found to \fIset\fR\&. Any subdirectories found are added to \fIdirs\fR\&. Calling this function does not create any cache files. Use FcDirCacheRead() if caching is desired. fontconfig-2.11.1/doc/FcConfigEnableHome.30000664000076400007640000000121612313745357015124 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigEnableHome" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigEnableHome \- controls use of the home directory. .SH SYNOPSIS .nf \fB#include .sp FcBool FcConfigEnableHome (FcBool \fIenable\fB); .fi\fR .SH "DESCRIPTION" .PP If \fIenable\fR is FcTrue, then Fontconfig will use various files which are specified relative to the user's home directory (using the ~ notation in the configuration). When \fIenable\fR is FcFalse, then all use of the home directory in these contexts will be disabled. The previous setting of the value is returned. fontconfig-2.11.1/doc/fcvalue.fncs0000664000076400007640000000443212267155333013742 00000000000000/* * fontconfig/doc/fcvalue.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@ void @FUNC@ FcValueDestroy @TYPE1@ FcValue% @ARG1@ v @PURPOSE@ Free a value @DESC@ Frees any memory referenced by v. Values of type FcTypeString, FcTypeMatrix and FcTypeCharSet reference memory, the other types do not. @@ @RET@ FcValue @FUNC@ FcValueSave @TYPE1@ FcValue% @ARG1@ v @PURPOSE@ Copy a value @DESC@ Returns a copy of v duplicating any object referenced by it so that v may be safely destroyed without harming the new value. @@ @RET@ void @FUNC@ FcValuePrint @TYPE1@ FcValue% @ARG1@ v @PURPOSE@ Print a value to stdout @DESC@ Prints a human-readable representation of v to stdout. The format should not be considered part of the library specification as it may change in the future. @@ @RET@ FcBool @FUNC@ FcValueEqual @TYPE1@ FcValue% @ARG1@ v_a @TYPE2@ FcValue% @ARG2@ v_b @PURPOSE@ Test two values for equality @DESC@ Compares two values. Integers and Doubles are compared as numbers; otherwise the two values have to be the same type to be considered equal. Strings are compared ignoring case. @@ fontconfig-2.11.1/doc/FcStrDowncase.30000664000076400007640000000070012313745357014230 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcStrDowncase" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcStrDowncase \- create a lower case translation of a string .SH SYNOPSIS .nf \fB#include .sp FcChar8 * FcStrDowncase (const FcChar8 *\fIs\fB); .fi\fR .SH "DESCRIPTION" .PP Allocates memory, copies \fIs\fR, converting upper case letters to lower case and returns the allocated buffer. fontconfig-2.11.1/doc/FcConfigFilename.30000664000076400007640000000172612313745357014653 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcConfigFilename" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcConfigFilename \- Find a config file .SH SYNOPSIS .nf \fB#include .sp FcChar8 * FcConfigFilename (const FcChar8 *\fIname\fB); .fi\fR .SH "DESCRIPTION" .PP Given the specified external entity name, return the associated filename. This provides applications a way to convert various configuration file references into filename form. .PP A null or empty \fIname\fR indicates that the default configuration file should be used; which file this references can be overridden with the FONTCONFIG_FILE environment variable. Next, if the name starts with \fI~\fR, it refers to a file in the current users home directory. Otherwise if the name doesn't start with '/', it refers to a file in the default configuration directory; the built-in default directory can be overridden with the FONTCONFIG_PATH environment variable. fontconfig-2.11.1/doc/FcNameUnregisterObjectTypes.30000664000076400007640000000065012313745357017104 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcNameUnregisterObjectTypes" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcNameUnregisterObjectTypes \- Unregister object types .SH SYNOPSIS .nf \fB#include .sp FcBool FcNameUnregisterObjectTypes (const FcObjectType *\fItypes\fB, int \fIntype\fB); .fi\fR .SH "DESCRIPTION" .PP Deprecated. Does nothing. Returns FcFalse. fontconfig-2.11.1/doc/FcUtf16ToUcs4.30000664000076400007640000000113612313745357013747 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcUtf16ToUcs4" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcUtf16ToUcs4 \- convert UTF-16 to UCS4 .SH SYNOPSIS .nf \fB#include .sp int FcUtf16ToUcs4 (FcChar8 *\fIsrc\fB, FcEndian \fIendian\fB, FcChar32 *\fIdst\fB, int \fIlen\fB); .fi\fR .SH "DESCRIPTION" .PP Converts the next Unicode char from \fIsrc\fR into \fIdst\fR and returns the number of bytes containing the char. \fIsrc\fR must be at least \fIlen\fR bytes long. Bytes of \fIsrc\fR are combined into 16-bit units according to \fIendian\fR\&. fontconfig-2.11.1/doc/FcGetVersion.30000664000076400007640000000052112313745357014062 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcGetVersion" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcGetVersion \- library version number .SH SYNOPSIS .nf \fB#include .sp int FcGetVersion (void\fI\fB); .fi\fR .SH "DESCRIPTION" .PP Returns the version number of the library. fontconfig-2.11.1/doc/FcNameParse.30000664000076400007640000000061412313745357013653 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcNameParse" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcNameParse \- Parse a pattern string .SH SYNOPSIS .nf \fB#include .sp FcPattern * FcNameParse (const FcChar8 *\fIname\fB); .fi\fR .SH "DESCRIPTION" .PP Converts \fIname\fR from the standard text format described above into a pattern. fontconfig-2.11.1/doc/fcconfig.sgml0000664000076400007640000021333612306317520014101 00000000000000 FcConfigCreate 3 Fontconfig &version; FcConfigCreate Create a configuration #include <fontconfig/fontconfig.h> FcConfig * FcConfigCreate void Description Creates an empty configuration. FcConfigReference 3 Fontconfig &version; FcConfigReference Increment config reference count #include <fontconfig/fontconfig.h> FcConfig * FcConfigReference FcConfig *config Description Add another reference to config. Configs are freed only when the reference count reaches zero. If config is NULL, the current configuration is used. In that case this function will be similar to FcConfigGetCurrent() except that it increments the reference count before returning and the user is responsible for destroying the configuration when not needed anymore. FcConfigDestroy 3 Fontconfig &version; FcConfigDestroy Destroy a configuration #include <fontconfig/fontconfig.h> void FcConfigDestroy FcConfig *config Description Decrements the config reference count. If all references are gone, destroys the configuration and any data associated with it. Note that calling this function with the return from FcConfigGetCurrent will cause a new configuration to be created for use as current configuration. FcConfigSetCurrent 3 Fontconfig &version; FcConfigSetCurrent Set configuration as default #include <fontconfig/fontconfig.h> FcBool FcConfigSetCurrent FcConfig *config Description Sets the current default configuration to config. Implicitly calls FcConfigBuildFonts if necessary, returning FcFalse if that call fails. FcConfigGetCurrent 3 Fontconfig &version; FcConfigGetCurrent Return current configuration #include <fontconfig/fontconfig.h> FcConfig * FcConfigGetCurrent void Description Returns the current default configuration. FcConfigUptoDate 3 Fontconfig &version; FcConfigUptoDate Check timestamps on config files #include <fontconfig/fontconfig.h> FcBool FcConfigUptoDate FcConfig *config Description Checks all of the files related to config and returns whether any of them has been modified since the configuration was created. If config is NULL, the current configuration is used. FcConfigHome 3 Fontconfig &version; FcConfigHome return the current home directory. #include <fontconfig/fontconfig.h> FcChar8 * FcConfigHome void Description Return the current user's home directory, if it is available, and if using it is enabled, and NULL otherwise. See also FcConfigEnableHome). FcConfigEnableHome 3 Fontconfig &version; FcConfigEnableHome controls use of the home directory. #include <fontconfig/fontconfig.h> FcBool FcConfigEnableHome FcBool enable Description If enable is FcTrue, then Fontconfig will use various files which are specified relative to the user's home directory (using the ~ notation in the configuration). When enable is FcFalse, then all use of the home directory in these contexts will be disabled. The previous setting of the value is returned. FcConfigBuildFonts 3 Fontconfig &version; FcConfigBuildFonts Build font database #include <fontconfig/fontconfig.h> FcBool FcConfigBuildFonts FcConfig *config Description Builds the set of available fonts for the given configuration. Note that any changes to the configuration after this call have indeterminate effects. Returns FcFalse if this operation runs out of memory. If config is NULL, the current configuration is used. FcConfigGetConfigDirs 3 Fontconfig &version; FcConfigGetConfigDirs Get config directories #include <fontconfig/fontconfig.h> FcStrList * FcConfigGetConfigDirs FcConfig *config Description Returns the list of font directories specified in the configuration files for config. Does not include any subdirectories. If config is NULL, the current configuration is used. FcConfigGetFontDirs 3 Fontconfig &version; FcConfigGetFontDirs Get font directories #include <fontconfig/fontconfig.h> FcStrList * FcConfigGetFontDirs FcConfig *config Description Returns the list of font directories in config. This includes the configured font directories along with any directories below those in the filesystem. If config is NULL, the current configuration is used. FcConfigGetConfigFiles 3 Fontconfig &version; FcConfigGetConfigFiles Get config files #include <fontconfig/fontconfig.h> FcStrList * FcConfigGetConfigFiles FcConfig *config Description Returns the list of known configuration files used to generate config. If config is NULL, the current configuration is used. FcConfigGetCache 3 Fontconfig &version; FcConfigGetCache DEPRECATED used to return per-user cache filename #include <fontconfig/fontconfig.h> FcChar8 * FcConfigGetCache FcConfig *config Description With fontconfig no longer using per-user cache files, this function now simply returns NULL to indicate that no per-user file exists. FcConfigGetCacheDirs 3 Fontconfig &version; FcConfigGetCacheDirs return the list of directories searched for cache files #include <fontconfig/fontconfig.h> FcStrList * FcConfigGetCacheDirs const FcConfig *config Description FcConfigGetCacheDirs returns a string list containing all of the directories that fontconfig will search when attempting to load a cache file for a font directory. If config is NULL, the current configuration is used. FcConfigGetFonts 3 Fontconfig &version; FcConfigGetFonts Get config font set #include <fontconfig/fontconfig.h> FcFontSet * FcConfigGetFonts FcConfig *config FcSetName set Description Returns one of the two sets of fonts from the configuration as specified by set. This font set is owned by the library and must not be modified or freed. If config is NULL, the current configuration is used. FcConfigGetBlanks 3 Fontconfig &version; FcConfigGetBlanks Get config blanks #include <fontconfig/fontconfig.h> FcBlanks * FcConfigGetBlanks FcConfig *config Description Returns the FcBlanks object associated with the given configuration, if no blanks were present in the configuration, this function will return 0. The returned FcBlanks object if not NULL, is valid as long as the owning FcConfig is alive. If config is NULL, the current configuration is used. FcConfigGetRescanInterval 3 Fontconfig &version; FcConfigGetRescanInterval Get config rescan interval #include <fontconfig/fontconfig.h> int FcConfigGetRescanInterval FcConfig *config Description Returns the interval between automatic checks of the configuration (in seconds) specified in config. The configuration is checked during a call to FcFontList when this interval has passed since the last check. An interval setting of zero disables automatic checks. If config is NULL, the current configuration is used. FcConfigSetRescanInterval 3 Fontconfig &version; FcConfigSetRescanInterval Set config rescan interval #include <fontconfig/fontconfig.h> FcBool FcConfigSetRescanInterval FcConfig *config int rescanInterval Description Sets the rescan interval. Returns FcFalse if the interval cannot be set (due to allocation failure). Otherwise returns FcTrue. An interval setting of zero disables automatic checks. If config is NULL, the current configuration is used. FcConfigAppFontAddFile 3 Fontconfig &version; FcConfigAppFontAddFile Add font file to font database #include <fontconfig/fontconfig.h> FcBool FcConfigAppFontAddFile FcConfig *config const FcChar8 *file Description Adds an application-specific font to the configuration. Returns FcFalse if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue. If config is NULL, the current configuration is used. FcConfigAppFontAddDir 3 Fontconfig &version; FcConfigAppFontAddDir Add fonts from directory to font database #include <fontconfig/fontconfig.h> FcBool FcConfigAppFontAddDir FcConfig *config const FcChar8 *dir Description Scans the specified directory for fonts, adding each one found to the application-specific set of fonts. Returns FcFalse if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue. If config is NULL, the current configuration is used. FcConfigAppFontClear 3 Fontconfig &version; FcConfigAppFontClear Remove all app fonts from font database #include <fontconfig/fontconfig.h> void FcConfigAppFontClear FcConfig *config Description Clears the set of application-specific fonts. If config is NULL, the current configuration is used. FcConfigSubstituteWithPat 3 Fontconfig &version; FcConfigSubstituteWithPat Execute substitutions #include <fontconfig/fontconfig.h> FcBool FcConfigSubstituteWithPat FcConfig *config FcPattern *p FcPattern *p_pat FcMatchKind kind Description Performs the sequence of pattern modification operations, if kind is FcMatchPattern, then those tagged as pattern operations are applied, else if kind is FcMatchFont, those tagged as font operations are applied and p_pat is used for <test> elements with target=pattern. Returns FcFalse if the substitution cannot be performed (due to allocation failure). Otherwise returns FcTrue. If config is NULL, the current configuration is used. FcConfigSubstitute 3 Fontconfig &version; FcConfigSubstitute Execute substitutions #include <fontconfig/fontconfig.h> FcBool FcConfigSubstitute FcConfig *config FcPattern *p FcMatchKind kind Description Calls FcConfigSubstituteWithPat setting p_pat to NULL. Returns FcFalse if the substitution cannot be performed (due to allocation failure). Otherwise returns FcTrue. If config is NULL, the current configuration is used. FcFontMatch 3 Fontconfig &version; FcFontMatch Return best font #include <fontconfig/fontconfig.h> FcPattern * FcFontMatch FcConfig *config FcPattern *p FcResult *result Description Finds the font in sets most closely matching pattern and returns the result of FcFontRenderPrepare for that font and the provided pattern. This function should be called only after FcConfigSubstitute and FcDefaultSubstitute have been called for p; otherwise the results will not be correct. If config is NULL, the current configuration is used. FcFontSort 3 Fontconfig &version; FcFontSort Return list of matching fonts #include <fontconfig/fontconfig.h> FcFontSet * FcFontSort FcConfig *config FcPattern *p FcBool trim FcCharSet **csp FcResult *result Description Returns the list of fonts sorted by closeness to p. If trim is FcTrue, elements in the list which don't include Unicode coverage not provided by earlier elements in the list are elided. The union of Unicode coverage of all of the fonts is returned in csp, if csp is not NULL. This function should be called only after FcConfigSubstitute and FcDefaultSubstitute have been called for p; otherwise the results will not be correct. The returned FcFontSet references FcPattern structures which may be shared by the return value from multiple FcFontSort calls, applications must not modify these patterns. Instead, they should be passed, along with p to FcFontRenderPrepare which combines them into a complete pattern. The FcFontSet returned by FcFontSort is destroyed by calling FcFontSetDestroy. If config is NULL, the current configuration is used. FcFontRenderPrepare 3 Fontconfig &version; FcFontRenderPrepare Prepare pattern for loading font file #include <fontconfig/fontconfig.h> FcPattern * FcFontRenderPrepare FcConfig *config FcPattern *pat FcPattern *font Description Creates a new pattern consisting of elements of font not appearing in pat, elements of pat not appearing in font and the best matching value from pat for elements appearing in both. The result is passed to FcConfigSubstituteWithPat with kind FcMatchFont and then returned. FcFontList 3 Fontconfig &version; FcFontList List fonts #include <fontconfig/fontconfig.h> FcFontSet * FcFontList FcConfig *config FcPattern *p FcObjectSet *os Description Selects fonts matching p, creates patterns from those fonts containing only the objects in os and returns the set of unique such patterns. If config is NULL, the default configuration is checked to be up to date, and used. FcConfigFilename 3 Fontconfig &version; FcConfigFilename Find a config file #include <fontconfig/fontconfig.h> FcChar8 * FcConfigFilename const FcChar8 *name Description Given the specified external entity name, return the associated filename. This provides applications a way to convert various configuration file references into filename form. A null or empty name indicates that the default configuration file should be used; which file this references can be overridden with the FONTCONFIG_FILE environment variable. Next, if the name starts with ~, it refers to a file in the current users home directory. Otherwise if the name doesn't start with '/', it refers to a file in the default configuration directory; the built-in default directory can be overridden with the FONTCONFIG_PATH environment variable. FcConfigParseAndLoad 3 Fontconfig &version; FcConfigParseAndLoad load a configuration file #include <fontconfig/fontconfig.h> FcBool FcConfigParseAndLoad FcConfig *config const FcChar8 *file FcBool complain Description Walks the configuration in 'file' and constructs the internal representation in 'config'. Any include files referenced from within 'file' will be loaded and parsed. If 'complain' is FcFalse, no warning will be displayed if 'file' does not exist. Error and warning messages will be output to stderr. Returns FcFalse if some error occurred while loading the file, either a parse error, semantic error or allocation failure. Otherwise returns FcTrue. FcConfigGetSysRoot 3 Fontconfig &version; FcConfigGetSysRoot Obtain the system root directory #include <fontconfig/fontconfig.h> const FcChar8 * FcConfigGetSysRoot const FcConfig *config Description Obtrains the system root directory in 'config' if available. Since version 2.10.92 FcConfigSetSysRoot 3 Fontconfig &version; FcConfigSetSysRoot Set the system root directory #include <fontconfig/fontconfig.h> void FcConfigSetSysRoot FcConfig *config const FcChar8 *sysroot Description 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 version 2.10.92 fontconfig-2.11.1/doc/FcDirCacheUnload.30000664000076400007640000000067712313745357014616 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcDirCacheUnload" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcDirCacheUnload \- unload a cache file .SH SYNOPSIS .nf \fB#include .sp void FcDirCacheUnload (FcCache *\fIcache\fB); .fi\fR .SH "DESCRIPTION" .PP This function dereferences \fIcache\fR\&. When no other references to it remain, all memory associated with the cache will be freed. fontconfig-2.11.1/doc/fcatomic.fncs0000664000076400007640000000671612267155333014111 00000000000000/* * fontconfig/doc/fcatomic.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@ FcAtomic * @FUNC@ FcAtomicCreate @TYPE1@ const FcChar8 * @ARG1@ file @PURPOSE@ create an FcAtomic object @DESC@ Creates a data structure containing data needed to control access to file. Writing is done to a separate file. Once that file is complete, the original configuration file is atomically replaced so that reading process always see a consistent and complete file without the need to lock for reading. @@ @RET@ FcBool @FUNC@ FcAtomicLock @TYPE1@ FcAtomic * @ARG1@ atomic @PURPOSE@ lock a file @DESC@ Attempts to lock the file referenced by atomic. Returns FcFalse if the file is already locked, else returns FcTrue and leaves the file locked. @@ @RET@ FcChar8 * @FUNC@ FcAtomicNewFile @TYPE1@ FcAtomic * @ARG1@ atomic @PURPOSE@ return new temporary file name @DESC@ Returns the filename for writing a new version of the file referenced by atomic. @@ @RET@ FcChar8 * @FUNC@ FcAtomicOrigFile @TYPE1@ FcAtomic * @ARG1@ atomic @PURPOSE@ return original file name @DESC@ Returns the file referenced by atomic. @@ @RET@ FcBool @FUNC@ FcAtomicReplaceOrig @TYPE1@ FcAtomic * @ARG1@ atomic @PURPOSE@ replace original with new @DESC@ Replaces the original file referenced by atomic with the new file. Returns FcFalse if the file cannot be replaced due to permission issues in the filesystem. Otherwise returns FcTrue. @@ @RET@ void @FUNC@ FcAtomicDeleteNew @TYPE1@ FcAtomic * @ARG1@ atomic @PURPOSE@ delete new file @DESC@ Deletes the new file. Used in error recovery to back out changes. @@ @RET@ void @FUNC@ FcAtomicUnlock @TYPE1@ FcAtomic * @ARG1@ atomic @PURPOSE@ unlock a file @DESC@ Unlocks the file. @@ @RET@ void @FUNC@ FcAtomicDestroy @TYPE1@ FcAtomic * @ARG1@ atomic @PURPOSE@ destroy an FcAtomic object @DESC@ Destroys atomic. @@ fontconfig-2.11.1/doc/fontconfig-devel.txt0000664000076400007640000040347312313745362015443 00000000000000 Fontconfig Developers Reference, Version 2.11.1 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. ------------------------------------------------------- Table of Contents [1]DESCRIPTION [2]FUNCTIONAL OVERVIEW [3]Datatypes [4]FUNCTIONS DESCRIPTION Fontconfig is a library designed to provide system-wide font configuration, customization and application access. -------------------------------------------------------------------------- FUNCTIONAL OVERVIEW Fontconfig contains two essential modules, the configuration module which builds an internal configuration from XML files and the matching module which accepts font patterns and returns the nearest matching font. -------------------------------------------------------------------------- FONT CONFIGURATION The configuration module consists of the FcConfig datatype, libexpat and FcConfigParse which walks over an XML tree and amends a configuration with data found within. From an external perspective, configuration of the library consists of generating a valid XML tree and feeding that to FcConfigParse. The only other mechanism provided to applications for changing the running configuration is to add fonts and directories to the list of application-provided font files. The intent is to make font configurations relatively static, and shared by as many applications as possible. It is hoped that this will lead to more stable font selection when passing names from one application to another. XML was chosen as a configuration file format because it provides a format which is easy for external agents to edit while retaining the correct structure and syntax. Font configuration is separate from font matching; applications needing to do their own matching can access the available fonts from the library and perform private matching. The intent is to permit applications to pick and choose appropriate functionality from the library instead of forcing them to choose between this library and a private configuration mechanism. The hope is that this will ensure that configuration of fonts for all applications can be centralized in one place. Centralizing font configuration will simplify and regularize font installation and customization. -------------------------------------------------------------------------- FONT PROPERTIES While font patterns may contain essentially any properties, there are some well known properties with associated types. Fontconfig uses some of these properties for font matching and font completion. Others are provided as a convenience for the application's rendering mechanism. Property Definitions Property C Preprocessor Symbol Type Description ---------------------------------------------------- family FC_FAMILY String Font family names familylang FC_FAMILYLANG String Language corresponding to each family name style FC_STYLE String Font style. Overrides weight and slant stylelang FC_STYLELANG String Language corresponding to each style name fullname FC_FULLNAME String Font face full name where different from family and family + style fullnamelang FC_FULLNAMELANG String Language corresponding to each fullname slant FC_SLANT Int Italic, oblique or roman weight FC_WEIGHT Int Light, medium, demibold, bold or black size FC_SIZE Double Point size width FC_WIDTH Int Condensed, normal or expanded aspect FC_ASPECT Double Stretches glyphs horizontally before hinting pixelsize FC_PIXEL_SIZE Double Pixel size spacing FC_SPACING Int Proportional, dual-width, monospace or charcell foundry FC_FOUNDRY String Font foundry name antialias FC_ANTIALIAS Bool Whether glyphs can be antialiased hinting FC_HINTING Bool Whether the rasterizer should use hinting hintstyle FC_HINT_STYLE Int Automatic hinting style verticallayout FC_VERTICAL_LAYOUT Bool Use vertical layout autohint FC_AUTOHINT Bool Use autohinter instead of normal hinter globaladvance FC_GLOBAL_ADVANCE Bool Use font global advance data (deprecated) file FC_FILE String The filename holding the font index FC_INDEX Int The index of the font within the file ftface FC_FT_FACE FT_Face Use the specified FreeType face object rasterizer FC_RASTERIZER String Which rasterizer is in use (deprecated) outline FC_OUTLINE Bool Whether the glyphs are outlines scalable FC_SCALABLE Bool Whether glyphs can be scaled scale FC_SCALE Double Scale factor for point->pixel conversions dpi FC_DPI Double Target dots per inch rgba FC_RGBA Int unknown, rgb, bgr, vrgb, vbgr, none - subpixel geometry lcdfilter FC_LCD_FILTER Int Type of LCD filter minspace FC_MINSPACE Bool Eliminate leading from line spacing charset FC_CHARSET CharSet Unicode chars encoded by the font lang FC_LANG LangSet Set of RFC-3066-style languages this font supports fontversion FC_FONTVERSION Int Version number of the font capability FC_CAPABILITY String List of layout capabilities in the font embolden FC_EMBOLDEN Bool Rasterizer should synthetically embolden the font fontfeatures FC_FONT_FEATURES String List of extra feature tags in OpenType to be enabled namelang FC_NAMELANG String Language name to be used for the default value of familylang, stylelang and fullnamelang prgname FC_PRGNAME String Name of the running program hash FC_HASH String SHA256 hash value of the font data with "sha256:" prefix. postscriptname FC_POSTSCRIPT_NAME String Font name in PostScript -------------------------------------------------------------------------- Datatypes Fontconfig uses abstract data types to hide internal implementation details for most data structures. A few structures are exposed where appropriate. -------------------------------------------------------------------------- FcChar8, FcChar16, FcChar32, FcBool These are primitive data types; the FcChar* types hold precisely the number of bits stated (if supported by the C implementation). FcBool holds one of two C preprocessor symbols: FcFalse or FcTrue. -------------------------------------------------------------------------- FcMatrix An FcMatrix holds an affine transformation, usually used to reshape glyphs. A small set of matrix operations are provided to manipulate these. typedef struct _FcMatrix { double xx, xy, yx, yy; } FcMatrix; -------------------------------------------------------------------------- FcCharSet An FcCharSet is an abstract type that holds the set of encoded Unicode chars in a font. Operations to build and compare these sets are provided. -------------------------------------------------------------------------- FcLangSet An FcLangSet is an abstract type that holds the set of languages supported by a font. Operations to build and compare these sets are provided. These are computed for a font based on orthographic information built into the fontconfig library. Fontconfig has orthographies for all of the ISO 639-1 languages except for MS, NA, PA, PS, QU, RN, RW, SD, SG, SN, SU and ZA. If you have orthographic information for any of these languages, please submit them. -------------------------------------------------------------------------- FcLangResult An FcLangResult is an enumeration used to return the results of comparing two language strings or FcLangSet objects. FcLangEqual means the objects match language and territory. FcLangDifferentTerritory means the objects match in language but differ in territory. FcLangDifferentLang means the objects differ in language. -------------------------------------------------------------------------- FcType Tags the kind of data stored in an FcValue. -------------------------------------------------------------------------- FcValue An FcValue object holds a single value with one of a number of different types. The 'type' tag indicates which member is valid. typedef struct _FcValue { FcType type; union { const FcChar8 *s; int i; FcBool b; double d; const FcMatrix *m; const FcCharSet *c; void *f; const FcLangSet *l; } u; } FcValue; FcValue Members Type Union member Datatype -------------------------------- FcTypeVoid (none) (none) FcTypeInteger i int FcTypeDouble d double FcTypeString s FcChar8 * FcTypeBool b b FcTypeMatrix m FcMatrix * FcTypeCharSet c FcCharSet * FcTypeFTFace f void * (FT_Face) FcTypeLangSet l FcLangSet * -------------------------------------------------------------------------- FcPattern holds a set of names with associated value lists; each name refers to a property of a font. FcPatterns are used as inputs to the matching code as well as holding information about specific fonts. Each property can hold one or more values; conventionally all of the same type, although the interface doesn't demand that. -------------------------------------------------------------------------- FcFontSet typedef struct _FcFontSet { int nfont; int sfont; FcPattern **fonts; } FcFontSet; An FcFontSet contains a list of FcPatterns. Internally fontconfig uses this data structure to hold sets of fonts. Externally, fontconfig returns the results of listing fonts in this format. 'nfont' holds the number of patterns in the 'fonts' array; 'sfont' is used to indicate the size of that array. -------------------------------------------------------------------------- FcStrSet, FcStrList FcStrSet holds a list of strings that can be appended to and enumerated. Its unique characteristic is that the enumeration works even while strings are appended during enumeration. FcStrList is used during enumeration to safely and correctly walk the list of strings even while that list is edited in the middle of enumeration. -------------------------------------------------------------------------- FcObjectSet typedef struct _FcObjectSet { int nobject; int sobject; const char **objects; } FcObjectSet; holds a set of names and is used to specify which fields from fonts are placed in the the list of returned patterns when listing fonts. -------------------------------------------------------------------------- FcObjectType typedef struct _FcObjectType { const char *object; FcType type; } FcObjectType; marks the type of a pattern element generated when parsing font names. Applications can add new object types so that font names may contain the new elements. -------------------------------------------------------------------------- FcConstant typedef struct _FcConstant { const FcChar8 *name; const char *object; int value; } FcConstant; Provides for symbolic constants for new pattern elements. When 'name' is seen in a font name, an 'object' element is created with value 'value'. -------------------------------------------------------------------------- FcBlanks holds a list of Unicode chars which are expected to be blank; unexpectedly blank chars are assumed to be invalid and are elided from the charset associated with the font. -------------------------------------------------------------------------- FcFileCache holds the per-user cache information for use while loading the font database. This is built automatically for the current configuration when that is loaded. Applications must always pass '0' when one is requested. -------------------------------------------------------------------------- FcConfig holds a complete configuration of the library; there is one default configuration, other can be constructed from XML data structures. All public entry points that need global data can take an optional FcConfig* argument; passing 0 uses the default configuration. FcConfig objects hold two sets of fonts, the first contains those specified by the configuration, the second set holds those added by the application at run-time. Interfaces that need to reference a particular set use one of the FcSetName enumerated values. -------------------------------------------------------------------------- FcSetName Specifies one of the two sets of fonts available in a configuration; FcSetSystem for those fonts specified in the configuration and FcSetApplication which holds fonts provided by the application. -------------------------------------------------------------------------- FcResult Used as a return type for functions manipulating FcPattern objects. FcResult Values Result Code Meaning ----------------------------------------------------------- FcResultMatch Object exists with the specified ID FcResultNoMatch Object doesn't exist at all FcResultTypeMismatch Object exists, but the type doesn't match FcResultNoId Object exists, but has fewer values than specified FcResultOutOfMemory malloc failed -------------------------------------------------------------------------- FcAtomic Used for locking access to configuration files. Provides a safe way to update configuration files. -------------------------------------------------------------------------- FcCache Holds information about the fonts contained in a single directory. Normal applications need not worry about this as caches for font access are automatically managed by the library. Applications dealing with cache management may want to use some of these objects in their work, however the included 'fc-cache' program generally suffices for all of that. -------------------------------------------------------------------------- FUNCTIONS These are grouped by functionality, often using the main data type being manipulated. -------------------------------------------------------------------------- Initialization Table of Contents [5]FcInitLoadConfig -- load configuration [6]FcInitLoadConfigAndFonts -- load configuration and font data [7]FcInit -- initialize fontconfig library [8]FcFini -- finalize fontconfig library [9]FcGetVersion -- library version number [10]FcInitReinitialize -- re-initialize library [11]FcInitBringUptoDate -- reload configuration files if needed These functions provide some control over how the library is initialized. FcInitLoadConfig Name FcInitLoadConfig -- load configuration Synopsis #include FcConfig * FcInitLoadConfig(void); Description Loads the default configuration file and returns the resulting configuration. Does not load any font information. FcInitLoadConfigAndFonts Name FcInitLoadConfigAndFonts -- load configuration and font data Synopsis #include FcConfig * FcInitLoadConfigAndFonts(void); Description Loads the default configuration file and builds information about the available fonts. Returns the resulting configuration. FcInit Name FcInit -- initialize fontconfig library Synopsis #include FcBool FcInit(void); Description Loads the default configuration file and the fonts referenced therein and sets the default configuration to that result. Returns whether this process succeeded or not. If the default configuration has already been loaded, this routine does nothing and returns FcTrue. FcFini Name FcFini -- finalize fontconfig library Synopsis #include void FcFini(void); Description Frees all data structures allocated by previous calls to fontconfig functions. Fontconfig returns to an uninitialized state, requiring a new call to one of the FcInit functions before any other fontconfig function may be called. FcGetVersion Name FcGetVersion -- library version number Synopsis #include int FcGetVersion(void); Description Returns the version number of the library. FcInitReinitialize Name FcInitReinitialize -- re-initialize library Synopsis #include FcBool FcInitReinitialize(void); Description Forces the default configuration file to be reloaded and resets the default configuration. Returns FcFalse if the configuration cannot be reloaded (due to configuration file errors, allocation failures or other issues) and leaves the existing configuration unchanged. Otherwise returns FcTrue. FcInitBringUptoDate Name FcInitBringUptoDate -- reload configuration files if needed Synopsis #include FcBool FcInitBringUptoDate(void); Description Checks the rescan interval in the default configuration, checking the configuration if the interval has passed and reloading the configuration if when any changes are detected. Returns FcFalse if the configuration cannot be reloaded (see FcInitReinitialize). Otherwise returns FcTrue. -------------------------------------------------------------------------- FcPattern Table of Contents [12]FcPatternCreate -- Create a pattern [13]FcPatternDuplicate -- Copy a pattern [14]FcPatternReference -- Increment pattern reference count [15]FcPatternDestroy -- Destroy a pattern [16]FcPatternEqual -- Compare patterns [17]FcPatternEqualSubset -- Compare portions of patterns [18]FcPatternFilter -- Filter the objects of pattern [19]FcPatternHash -- Compute a pattern hash value [20]FcPatternAdd -- Add a value to a pattern [21]FcPatternAddWeak -- Add a value to a pattern with weak binding [22]FcPatternAdd-Type -- Add a typed value to a pattern [23]FcPatternGet -- Return a value from a pattern [24]FcPatternGet-Type -- Return a typed value from a pattern [25]FcPatternBuild -- Create patterns from arguments [26]FcPatternDel -- Delete a property from a pattern [27]FcPatternRemove -- Remove one object of the specified type from the pattern [28]FcPatternPrint -- Print a pattern for debugging [29]FcDefaultSubstitute -- Perform default substitutions in a pattern [30]FcNameParse -- Parse a pattern string [31]FcNameUnparse -- Convert a pattern back into a string that can be parsed [32]FcPatternFormat -- Format a pattern into a string according to a format specifier An FcPattern is an opaque type that holds both patterns to match against the available fonts, as well as the information about each font. FcPatternCreate Name FcPatternCreate -- Create a pattern Synopsis #include FcPattern * FcPatternCreate(void); Description Creates a pattern with no properties; used to build patterns from scratch. FcPatternDuplicate Name FcPatternDuplicate -- Copy a pattern Synopsis #include FcPattern * FcPatternDuplicate(const FcPattern *p); Description Copy a pattern, returning a new pattern that matches p. Each pattern may be modified without affecting the other. FcPatternReference Name FcPatternReference -- Increment pattern reference count Synopsis #include void FcPatternReference(FcPattern *p); Description Add another reference to p. Patterns are freed only when the reference count reaches zero. FcPatternDestroy Name FcPatternDestroy -- Destroy a pattern Synopsis #include void FcPatternDestroy(FcPattern *p); Description Decrement the pattern reference count. If all references are gone, destroys the pattern, in the process destroying all related values. FcPatternEqual Name FcPatternEqual -- Compare patterns Synopsis #include FcBool FcPatternEqual(const FcPattern *pa, const FcPattern *pb); Description Returns whether pa and pb are exactly alike. FcPatternEqualSubset Name FcPatternEqualSubset -- Compare portions of patterns Synopsis #include FcBool FcPatternEqualSubset(const FcPattern *pa, const FcPattern *pb, const FcObjectSet *os); Description Returns whether pa and pb have exactly the same values for all of the objects in os. FcPatternFilter Name FcPatternFilter -- Filter the objects of pattern Synopsis #include FcPattern * FcPatternFilter(FcPattern *p, const FcObjectSet *); Description Returns a new pattern that only has those objects from p that are in os. If os is NULL, a duplicate of p is returned. FcPatternHash Name FcPatternHash -- Compute a pattern hash value Synopsis #include FcChar32 FcPatternHash(const FcPattern *p); Description Returns a 32-bit number which is the same for any two patterns which are equal. FcPatternAdd Name FcPatternAdd -- Add a value to a pattern Synopsis #include FcBool FcPatternAdd(FcPattern *p, const char *object, FcValue value, FcBool append); Description Adds a single value to the list of values associated with the property named `object. If `append is FcTrue, the value is added at the end of any existing list, otherwise it is inserted at the beginning. `value' is saved (with FcValueSave) when inserted into the pattern so that the library retains no reference to any application-supplied data structure. FcPatternAddWeak Name FcPatternAddWeak -- Add a value to a pattern with weak binding Synopsis #include FcBool FcPatternAddWeak(FcPattern *p, const char *object, FcValue value, FcBool append); Description FcPatternAddWeak is essentially the same as FcPatternAdd except that any values added to the list have binding weak instead of strong. FcPatternAdd-Type Name FcPatternAddInteger, FcPatternAddDouble, FcPatternAddString, FcPatternAddMatrix, FcPatternAddCharSet, FcPatternAddBool, FcPatternAddFTFace, FcPatternAddLangSet -- Add a typed value to a pattern Synopsis #include FcBool FcPatternAddInteger(FcPattern *p, const char *object, int i); FcBool FcPatternAddDouble(FcPattern *p, const char *object, double d); FcBool FcPatternAddString(FcPattern *p, const char *object, const FcChar8 *s); FcBool FcPatternAddMatrix(FcPattern *p, const char *object, const FcMatrix *m); FcBool FcPatternAddCharSet(FcPattern *p, const char *object, const FcCharSet *c); FcBool FcPatternAddBool(FcPattern *p, const char *object, FcBool b); FcBool FcPatternAddFTFace(FcPattern *p, const char *object, const FT_Facef); FcBool FcPatternAddLangSet(FcPattern *p, const char *object, const FcLangSet *l); Description These are all convenience functions that insert objects of the specified type into the pattern. Use these in preference to FcPatternAdd as they will provide compile-time typechecking. These all append values to any existing list of values. FcPatternGet Name FcPatternGet -- Return a value from a pattern Synopsis #include FcResult FcPatternGet(FcPattern *p, const char *object, int id, FcValue *v); Description Returns in v the id'th value associated with the property object. The value returned is not a copy, but rather refers to the data stored within the pattern directly. Applications must not free this value. FcPatternGet-Type Name FcPatternGetInteger, FcPatternGetDouble, FcPatternGetString, FcPatternGetMatrix, FcPatternGetCharSet, FcPatternGetBool, FcPatternGetFTFace, FcPatternGetLangSet -- Return a typed value from a pattern Synopsis #include FcResult FcPatternGetInteger(FcPattern *p, const char *object, int n, int *i); FcResult FcPatternGetDouble(FcPattern *p, const char *object, int n, double *d); FcResult FcPatternGetString(FcPattern *p, const char *object, int n, FcChar8 **s); FcResult FcPatternGetMatrix(FcPattern *p, const char *object, int n, FcMatrix **s); FcResult FcPatternGetCharSet(FcPattern *p, const char *object, int n, FcCharSet **c); FcResult FcPatternGetBool(FcPattern *p, const char *object, int n, FcBool *b); FcResult FcPatternGetFTFace(FcPattern *p, const char *object, int n); FcResult FcPatternGetLangSet(FcPattern *p, const char *object, FT_Face *f); Description These are convenience functions that call FcPatternGet and verify that the returned data is of the expected type. They return FcResultTypeMismatch if this is not the case. Note that these (like FcPatternGet) do not make a copy of any data structure referenced by the return value. Use these in preference to FcPatternGet to provide compile-time typechecking. FcPatternBuild Name FcPatternBuild, FcPatternVaBuild, FcPatternVapBuild -- Create patterns from arguments Synopsis #include FcPattern * FcPatternBuild(FcPattern *pattern, ...); FcPattern * FcPatternVaBuild(FcPattern *pattern, va_list va); void FcPatternVapBuild(FcPattern *result, FcPattern *pattern, va_list va); Description Builds a pattern using a list of objects, types and values. Each value to be entered in the pattern is specified with three arguments:  1. Object name, a string describing the property to be added.  2. Object type, one of the FcType enumerated values  3. Value, not an FcValue, but the raw type as passed to any of the FcPatternAdd functions. Must match the type of the second argument. The argument list is terminated by a null object name, no object type nor value need be passed for this. The values are added to `pattern', if `pattern' is null, a new pattern is created. In either case, the pattern is returned. Example pattern = FcPatternBuild (0, FC_FAMILY, FcTypeString, "Times", (char *) 0); FcPatternVaBuild is used when the arguments are already in the form of a varargs value. FcPatternVapBuild is a macro version of FcPatternVaBuild which returns its result directly in the result variable. FcPatternDel Name FcPatternDel -- Delete a property from a pattern Synopsis #include FcBool FcPatternDel(FcPattern *p, const char *object); Description Deletes all values associated with the property `object', returning whether the property existed or not. FcPatternRemove Name FcPatternRemove -- Remove one object of the specified type from the pattern Synopsis #include FcBool FcPatternRemove(FcPattern *p, const char *object, int id); Description Removes the value associated with the property `object' at position `id', returning whether the property existed and had a value at that position or not. FcPatternPrint Name FcPatternPrint -- Print a pattern for debugging Synopsis #include void FcPatternPrint(const FcPattern *p); Description Prints an easily readable version of the pattern to stdout. There is no provision for reparsing data in this format, it's just for diagnostics and debugging. FcDefaultSubstitute Name FcDefaultSubstitute -- Perform default substitutions in a pattern Synopsis #include void FcDefaultSubstitute(FcPattern *pattern); Description Supplies default values for underspecified font patterns: * Patterns without a specified style or weight are set to Medium * Patterns without a specified style or slant are set to Roman * Patterns without a specified pixel size are given one computed from any specified point size (default 12), dpi (default 75) and scale (default 1). FcNameParse Name FcNameParse -- Parse a pattern string Synopsis #include FcPattern * FcNameParse(const FcChar8 *name); Description Converts name from the standard text format described above into a pattern. FcNameUnparse Name FcNameUnparse -- Convert a pattern back into a string that can be parsed Synopsis #include FcChar8 * FcNameUnparse(FcPattern *pat); Description Converts the given pattern into the standard text format described above. The return value is not static, but instead refers to newly allocated memory which should be freed by the caller using free(). FcPatternFormat Name FcPatternFormat -- Format a pattern into a string according to a format specifier Synopsis #include FcChar8 * FcPatternFormat(FcPattern *pat, const FcChar8 *format); Description Converts given pattern pat into text described by the format specifier format. The return value refers to newly allocated memory which should be freed by the caller using free(), or NULL if format is invalid. The format is loosely modeled after printf-style format string. The format string is composed of zero or more directives: ordinary characters (not "%"), which are copied unchanged to the output stream; and tags which are interpreted to construct text from the pattern in a variety of ways (explained below). Special characters can be escaped using backslash. C-string style special characters like \n and \r are also supported (this is useful when the format string is not a C string literal). It is advisable to always escape curly braces that are meant to be copied to the output as ordinary characters. Each tag is introduced by the character "%", followed by an optional minimum field width, followed by tag contents in curly braces ({}). If the minimum field width value is provided the tag will be expanded and the result padded to achieve the minimum width. If the minimum field width is positive, the padding will right-align the text. Negative field width will left-align. The rest of this section describes various supported tag contents and their expansion. A simple tag is one where the content is an identifier. When simple tags are expanded, the named identifier will be looked up in pattern and the resulting list of values returned, joined together using comma. For example, to print the family name and style of the pattern, use the format "%{family} %{style}\n". To extend the family column to forty characters use "%-40{family}%{style}\n". Simple tags expand to list of all values for an element. To only choose one of the values, one can index using the syntax "%{elt[idx]}". For example, to get the first family name only, use "%{family[0]}". If a simple tag ends with "=" and the element is found in the pattern, the name of the element followed by "=" will be output before the list of values. For example, "%{weight=}" may expand to the string "weight=80". Or to the empty string if pattern does not have weight set. If a simple tag starts with ":" and the element is found in the pattern, ":" will be printed first. For example, combining this with the =, the format "%{:weight=}" may expand to ":weight=80" or to the empty string if pattern does not have weight set. If a simple tag contains the string ":-", the rest of the the tag contents will be used as a default string. The default string is output if the element is not found in the pattern. For example, the format "%{:weight=:-123}" may expand to ":weight=80" or to the string ":weight=123" if pattern does not have weight set. A count tag is one that starts with the character "#" followed by an element name, and expands to the number of values for the element in the pattern. For example, "%{#family}" expands to the number of family names pattern has set, which may be zero. A sub-expression tag is one that expands a sub-expression. The tag contents are the sub-expression to expand placed inside another set of curly braces. Sub-expression tags are useful for aligning an entire sub-expression, or to apply converters (explained later) to the entire sub-expression output. For example, the format "%40{{%{family} %{style}}}" expands the sub-expression to construct the family name followed by the style, then takes the entire string and pads it on the left to be at least forty characters. A filter-out tag is one starting with the character "-" followed by a comma-separated list of element names, followed by a sub-expression enclosed in curly braces. The sub-expression will be expanded but with a pattern that has the listed elements removed from it. For example, the format "%{-size,pixelsize{sub-expr}}" will expand "sub-expr" with pattern sans the size and pixelsize elements. A filter-in tag is one starting with the character "+" followed by a comma-separated list of element names, followed by a sub-expression enclosed in curly braces. The sub-expression will be expanded but with a pattern that only has the listed elements from the surrounding pattern. For example, the format "%{+family,familylang{sub-expr}}" will expand "sub-expr" with a sub-pattern consisting only the family and family lang elements of pattern. A conditional tag is one starting with the character "?" followed by a comma-separated list of element conditions, followed by two sub-expression enclosed in curly braces. An element condition can be an element name, in which case it tests whether the element is defined in pattern, or the character "!" followed by an element name, in which case the test is negated. The conditional passes if all the element conditions pass. The tag expands the first sub-expression if the conditional passes, and expands the second sub-expression otherwise. For example, the format "%{?size,dpi,!pixelsize{pass}{fail}}" will expand to "pass" if pattern has size and dpi elements but no pixelsize element, and to "fail" otherwise. An enumerate tag is one starting with the string "[]" followed by a comma-separated list of element names, followed by a sub-expression enclosed in curly braces. The list of values for the named elements are walked in parallel and the sub-expression expanded each time with a pattern just having a single value for those elements, starting from the first value and continuing as long as any of those elements has a value. For example, the format "%{[]family,familylang{%{family} (%{familylang})\n}}" will expand the pattern "%{family} (%{familylang})\n" with a pattern having only the first value of the family and familylang elements, then expands it with the second values, then the third, etc. As a special case, if an enumerate tag has only one element, and that element has only one value in the pattern, and that value is of type FcLangSet, the individual languages in the language set are enumerated. A builtin tag is one starting with the character "=" followed by a builtin name. The following builtins are defined: unparse Expands to the result of calling FcNameUnparse() on the pattern. fcmatch Expands to the output of the default output format of the fc-match command on the pattern, without the final newline. fclist Expands to the output of the default output format of the fc-list command on the pattern, without the final newline. fccat Expands to the output of the default output format of the fc-cat command on the pattern, without the final newline. pkgkit Expands to the list of PackageKit font() tags for the pattern. Currently this includes tags for each family name, and each language from the pattern, enumerated and sanitized into a set of tags terminated by newline. Package management systems can use these tags to tag their packages accordingly. For example, the format "%{+family,style{%{=unparse}}}\n" will expand to an unparsed name containing only the family and style element values from pattern. The contents of any tag can be followed by a set of zero or more converters. A converter is specified by the character "|" followed by the converter name and arguments. The following converters are defined: basename Replaces text with the results of calling FcStrBasename() on it. dirname Replaces text with the results of calling FcStrDirname() on it. downcase Replaces text with the results of calling FcStrDowncase() on it. shescape Escapes text for one level of shell expansion. (Escapes single-quotes, also encloses text in single-quotes.) cescape Escapes text such that it can be used as part of a C string literal. (Escapes backslash and double-quotes.) xmlescape Escapes text such that it can be used in XML and HTML. (Escapes less-than, greater-than, and ampersand.) delete(chars) Deletes all occurrences of each of the characters in chars from the text. FIXME: This converter is not UTF-8 aware yet. escape(chars) Escapes all occurrences of each of the characters in chars by prepending it by the first character in chars. FIXME: This converter is not UTF-8 aware yet. translate(from,to) Translates all occurrences of each of the characters in from by replacing them with their corresponding character in to. If to has fewer characters than from, it will be extended by repeating its last character. FIXME: This converter is not UTF-8 aware yet. For example, the format "%{family|downcase|delete( )}\n" will expand to the values of the family element in pattern, lower-cased and with spaces removed. Since version 2.9.0 -------------------------------------------------------------------------- FcFontSet Table of Contents [33]FcFontSetCreate -- Create a font set [34]FcFontSetDestroy -- Destroy a font set [35]FcFontSetAdd -- Add to a font set [36]FcFontSetList -- List fonts from a set of font sets [37]FcFontSetMatch -- Return the best font from a set of font sets [38]FcFontSetPrint -- Print a set of patterns to stdout [39]FcFontSetSort -- Add to a font set [40]FcFontSetSortDestroy -- DEPRECATED destroy a font set An FcFontSet simply holds a list of patterns; these are used to return the results of listing available fonts. FcFontSetCreate Name FcFontSetCreate -- Create a font set Synopsis #include FcFontSet * FcFontSetCreate(void); Description Creates an empty font set. FcFontSetDestroy Name FcFontSetDestroy -- Destroy a font set Synopsis #include void FcFontSetDestroy(FcFontSet *s); Description Destroys a font set. Note that this destroys any referenced patterns as well. FcFontSetAdd Name FcFontSetAdd -- Add to a font set Synopsis #include FcBool FcFontSetAdd(FcFontSet *s, FcPattern *font); Description Adds a pattern to a font set. Note that the pattern is not copied before being inserted into the set. Returns FcFalse if the pattern cannot be inserted into the set (due to allocation failure). Otherwise returns FcTrue. FcFontSetList Name FcFontSetList -- List fonts from a set of font sets Synopsis #include FcFontSet * FcFontSetList(FcConfig *config, FcFontSet **sets, intnsets, FcPattern *pattern, FcObjectSet *object_set); Description Selects fonts matching pattern from sets, creates patterns from those fonts containing only the objects in object_set and returns the set of unique such patterns. If config is NULL, the default configuration is checked to be up to date, and used. FcFontSetMatch Name FcFontSetMatch -- Return the best font from a set of font sets Synopsis #include FcPattern * FcFontSetMatch(FcConfig *config, FcFontSet **sets, intnsets, FcPattern *pattern, FcResult *result); Description Finds the font in sets most closely matching pattern and returns the result of FcFontRenderPrepare for that font and the provided pattern. This function should be called only after FcConfigSubstitute and FcDefaultSubstitute have been called for pattern; otherwise the results will not be correct. If config is NULL, the current configuration is used. Returns NULL if an error occurs during this process. FcFontSetPrint Name FcFontSetPrint -- Print a set of patterns to stdout Synopsis #include void FcFontSetPrint(FcFontSet *set); Description This function is useful for diagnosing font related issues, printing the complete contents of every pattern in set. The format of the output is designed to be of help to users and developers, and may change at any time. FcFontSetSort Name FcFontSetSort -- Add to a font set Synopsis #include FcFontSetSort(FcConfig *config, FcFontSet **sets, intnsets, FcPattern *pattern, FcBool trim, FcCharSet **csp, FcResult *result); Description Returns the list of fonts from sets sorted by closeness to pattern. If trim is FcTrue, elements in the list which don't include Unicode coverage not provided by earlier elements in the list are elided. The union of Unicode coverage of all of the fonts is returned in csp, if csp is not NULL. This function should be called only after FcConfigSubstitute and FcDefaultSubstitute have been called for p; otherwise the results will not be correct. The returned FcFontSet references FcPattern structures which may be shared by the return value from multiple FcFontSort calls, applications cannot modify these patterns. Instead, they should be passed, along with pattern to FcFontRenderPrepare which combines them into a complete pattern. The FcFontSet returned by FcFontSetSort is destroyed by calling FcFontSetDestroy. FcFontSetSortDestroy Name FcFontSetSortDestroy -- DEPRECATED destroy a font set Synopsis #include FcFontSetSortDestroy(FcFontSet *set); Description This function is DEPRECATED. FcFontSetSortDestroy destroys set by calling FcFontSetDestroy. Applications should use FcFontSetDestroy directly instead. -------------------------------------------------------------------------- FcObjectSet Table of Contents [41]FcObjectSetCreate -- Create an object set [42]FcObjectSetAdd -- Add to an object set [43]FcObjectSetDestroy -- Destroy an object set [44]FcObjectSetBuild -- Build object set from args An FcObjectSet holds a list of pattern property names; it is used to indicate which properties are to be returned in the patterns from FcFontList. FcObjectSetCreate Name FcObjectSetCreate -- Create an object set Synopsis #include FcObjectSet * FcObjectSetCreate(void); Description Creates an empty set. FcObjectSetAdd Name FcObjectSetAdd -- Add to an object set Synopsis #include FcBool FcObjectSetAdd(FcObjectSet *os, const char *object); Description Adds a property name to the set. Returns FcFalse if the property name cannot be inserted into the set (due to allocation failure). Otherwise returns FcTrue. FcObjectSetDestroy Name FcObjectSetDestroy -- Destroy an object set Synopsis #include void FcObjectSetDestroy(FcObjectSet *os); Description Destroys an object set. FcObjectSetBuild Name FcObjectSetBuild, FcObjectSetVaBuild, FcObjectSetVapBuild -- Build object set from args Synopsis #include FcObjectSet * FcObjectSetBuild(const char *first, ...); FcObjectSet * FcObjectSetVaBuild(const char *first, va_list va); void FcObjectSetVapBuild(FcObjectSet *result, const char *first, va_list va); Description These build an object set from a null-terminated list of property names. FcObjectSetVapBuild is a macro version of FcObjectSetVaBuild which returns the result in the result variable directly. -------------------------------------------------------------------------- FreeType specific functions Table of Contents [45]FcFreeTypeCharIndex -- map Unicode to glyph id [46]FcFreeTypeCharSet -- compute Unicode coverage [47]FcFreeTypeCharSetAndSpacing -- compute Unicode coverage and spacing type [48]FcFreeTypeQuery -- compute pattern from font file (and index) [49]FcFreeTypeQueryFace -- compute pattern from FT_Face While the fontconfig library doesn't insist that FreeType be used as the rasterization mechanism for fonts, it does provide some convenience functions. FcFreeTypeCharIndex Name FcFreeTypeCharIndex -- map Unicode to glyph id Synopsis #include #include FT_UInt FcFreeTypeCharIndex(FT_Face face, FcChar32 ucs4); Description Maps a Unicode char to a glyph index. This function uses information from several possible underlying encoding tables to work around broken fonts. As a result, this function isn't designed to be used in performance sensitive areas; results from this function are intended to be cached by higher level functions. FcFreeTypeCharSet Name FcFreeTypeCharSet -- compute Unicode coverage Synopsis #include #include FcCharSet * FcFreeTypeCharSet(FT_Face face, FcBlanks *blanks); Description Scans a FreeType face and returns the set of encoded Unicode chars. This scans several encoding tables to build as complete a list as possible. If 'blanks' is not 0, the glyphs in the font are examined and any blank glyphs not in 'blanks' are not placed in the returned FcCharSet. FcFreeTypeCharSetAndSpacing Name FcFreeTypeCharSetAndSpacing -- compute Unicode coverage and spacing type Synopsis #include #include FcCharSet * FcFreeTypeCharSetAndSpacing(FT_Face face, FcBlanks *blanks, int *spacing); Description Scans a FreeType face and returns the set of encoded Unicode chars. This scans several encoding tables to build as complete a list as possible. If 'blanks' is not 0, the glyphs in the font are examined and any blank glyphs not in 'blanks' are not placed in the returned FcCharSet. spacing receives the computed spacing type of the font, one of FC_MONO for a font where all glyphs have the same width, FC_DUAL, where the font has glyphs in precisely two widths, one twice as wide as the other, or FC_PROPORTIONAL where the font has glyphs of many widths. FcFreeTypeQuery Name FcFreeTypeQuery -- compute pattern from font file (and index) Synopsis #include #include FcPattern * FcFreeTypeQuery(const FcChar8 *file, int id, FcBlanks *blanks, int *count); Description Constructs a pattern representing the 'id'th font in 'file'. The number of fonts in 'file' is returned in 'count'. FcFreeTypeQueryFace Name FcFreeTypeQueryFace -- compute pattern from FT_Face Synopsis #include #include FcPattern * FcFreeTypeQueryFace(const FT_Face face, const FcChar8 *file, int id, FcBlanks *blanks); Description Constructs a pattern representing 'face'. 'file' and 'id' are used solely as data for pattern elements (FC_FILE, FC_INDEX and sometimes FC_FAMILY). -------------------------------------------------------------------------- FcValue Table of Contents [50]FcValueDestroy -- Free a value [51]FcValueSave -- Copy a value [52]FcValuePrint -- Print a value to stdout [53]FcValueEqual -- Test two values for equality FcValue is a structure containing a type tag and a union of all possible datatypes. The tag is an enum of type FcType and is intended to provide a measure of run-time typechecking, although that depends on careful programming. FcValueDestroy Name FcValueDestroy -- Free a value Synopsis #include void FcValueDestroy(FcValue v); Description Frees any memory referenced by v. Values of type FcTypeString, FcTypeMatrix and FcTypeCharSet reference memory, the other types do not. FcValueSave Name FcValueSave -- Copy a value Synopsis #include FcValue FcValueSave(FcValue v); Description Returns a copy of v duplicating any object referenced by it so that v may be safely destroyed without harming the new value. FcValuePrint Name FcValuePrint -- Print a value to stdout Synopsis #include void FcValuePrint(FcValue v); Description Prints a human-readable representation of v to stdout. The format should not be considered part of the library specification as it may change in the future. FcValueEqual Name FcValueEqual -- Test two values for equality Synopsis #include FcBool FcValueEqual(FcValue v_a, FcValue v_b); Description Compares two values. Integers and Doubles are compared as numbers; otherwise the two values have to be the same type to be considered equal. Strings are compared ignoring case. -------------------------------------------------------------------------- FcCharSet Table of Contents [54]FcCharSetCreate -- Create an empty character set [55]FcCharSetDestroy -- Destroy a character set [56]FcCharSetAddChar -- Add a character to a charset [57]FcCharSetDelChar -- Add a character to a charset [58]FcCharSetCopy -- Copy a charset [59]FcCharSetEqual -- Compare two charsets [60]FcCharSetIntersect -- Intersect charsets [61]FcCharSetUnion -- Add charsets [62]FcCharSetSubtract -- Subtract charsets [63]FcCharSetMerge -- Merge charsets [64]FcCharSetHasChar -- Check a charset for a char [65]FcCharSetCount -- Count entries in a charset [66]FcCharSetIntersectCount -- Intersect and count charsets [67]FcCharSetSubtractCount -- Subtract and count charsets [68]FcCharSetIsSubset -- Test for charset inclusion [69]FcCharSetFirstPage -- Start enumerating charset contents [70]FcCharSetNextPage -- Continue enumerating charset contents [71]FcCharSetCoverage -- DEPRECATED return coverage for a Unicode page [72]FcCharSetNew -- DEPRECATED alias for FcCharSetCreate An FcCharSet is a boolean array indicating a set of Unicode chars. Those associated with a font are marked constant and cannot be edited. FcCharSets may be reference counted internally to reduce memory consumption; this may be visible to applications as the result of FcCharSetCopy may return it's argument, and that CharSet may remain unmodifiable. FcCharSetCreate Name FcCharSetCreate -- Create an empty character set Synopsis #include FcCharSet * FcCharSetCreate(void); Description FcCharSetCreate allocates and initializes a new empty character set object. FcCharSetDestroy Name FcCharSetDestroy -- Destroy a character set Synopsis #include void FcCharSetDestroy(FcCharSet *fcs); Description FcCharSetDestroy decrements the reference count fcs. If the reference count becomes zero, all memory referenced is freed. FcCharSetAddChar Name FcCharSetAddChar -- Add a character to a charset Synopsis #include FcBool FcCharSetAddChar(FcCharSet *fcs, FcChar32 ucs4); Description FcCharSetAddChar adds a single Unicode char to the set, returning FcFalse on failure, either as a result of a constant set or from running out of memory. FcCharSetDelChar Name FcCharSetDelChar -- Add a character to a charset Synopsis #include FcBool FcCharSetDelChar(FcCharSet *fcs, FcChar32 ucs4); Description FcCharSetDelChar deletes a single Unicode char from the set, returning FcFalse on failure, either as a result of a constant set or from running out of memory. Since version 2.9.0 FcCharSetCopy Name FcCharSetCopy -- Copy a charset Synopsis #include FcCharSet * FcCharSetCopy(FcCharSet *src); Description Makes a copy of src; note that this may not actually do anything more than increment the reference count on src. FcCharSetEqual Name FcCharSetEqual -- Compare two charsets Synopsis #include FcBool FcCharSetEqual(const FcCharSet *a, const FcCharSet *b); Description Returns whether a and b contain the same set of Unicode chars. FcCharSetIntersect Name FcCharSetIntersect -- Intersect charsets Synopsis #include FcCharSet * FcCharSetIntersect(const FcCharSet *a, const FcCharSet *b); Description Returns a set including only those chars found in both a and b. FcCharSetUnion Name FcCharSetUnion -- Add charsets Synopsis #include FcCharSet * FcCharSetUnion(const FcCharSet *a, const FcCharSet *b); Description Returns a set including only those chars found in either a or b. FcCharSetSubtract Name FcCharSetSubtract -- Subtract charsets Synopsis #include FcCharSet * FcCharSetSubtract(const FcCharSet *a, const FcCharSet *b); Description Returns a set including only those chars found in a but not b. FcCharSetMerge Name FcCharSetMerge -- Merge charsets Synopsis #include FcBool FcCharSetMerge(FcCharSet *a, const FcCharSet *b, FcBool *changed); Description Adds all chars in b to a. In other words, this is an in-place version of FcCharSetUnion. If changed is not NULL, then it returns whether any new chars from b were added to a. Returns FcFalse on failure, either when a is a constant set or from running out of memory. FcCharSetHasChar Name FcCharSetHasChar -- Check a charset for a char Synopsis #include FcBool FcCharSetHasChar(const FcCharSet *fcs, FcChar32 ucs4); Description Returns whether fcs contains the char ucs4. FcCharSetCount Name FcCharSetCount -- Count entries in a charset Synopsis #include FcChar32 FcCharSetCount(const FcCharSet *a); Description Returns the total number of Unicode chars in a. FcCharSetIntersectCount Name FcCharSetIntersectCount -- Intersect and count charsets Synopsis #include FcChar32 FcCharSetIntersectCount(const FcCharSet *a, const FcCharSet *b); Description Returns the number of chars that are in both a and b. FcCharSetSubtractCount Name FcCharSetSubtractCount -- Subtract and count charsets Synopsis #include FcChar32 FcCharSetSubtractCount(const FcCharSet *a, const FcCharSet *b); Description Returns the number of chars that are in a but not in b. FcCharSetIsSubset Name FcCharSetIsSubset -- Test for charset inclusion Synopsis #include FcBool FcCharSetIsSubset(const FcCharSet *a, const FcCharSet *b); Description Returns whether a is a subset of b. FcCharSetFirstPage Name FcCharSetFirstPage -- Start enumerating charset contents Synopsis #include FcChar32 FcCharSetFirstPage(const FcCharSet *a, FcChar32[FC_CHARSET_MAP_SIZE] map, FcChar32 *next); Description Builds an array of bits in map marking the first page of Unicode coverage of a. *next is set to contains the base code point for the next page in a. Returns the base code point for the page, or FC_CHARSET_DONE if a contains no pages. As an example, if FcCharSetFirstPage returns 0x300 and fills map with 0xffffffff 0xffffffff 0x01000008 0x44300002 0xffffd7f0 0xfffffffb 0xffff7fff 0xffff0003 Then the page contains code points 0x300 through 0x33f (the first 64 code points on the page) because map[0] and map[1] both have all their bits set. It also contains code points 0x343 (0x300 + 32*2 + (4-1)) and 0x35e (0x300 + 32*2 + (31-1)) because map[2] has the 4th and 31st bits set. The code points represented by map[3] and later are left as an excercise for the reader ;). FcCharSetNextPage Name FcCharSetNextPage -- Continue enumerating charset contents Synopsis #include FcChar32 FcCharSetNextPage(const FcCharSet *a, FcChar32[FC_CHARSET_MAP_SIZE] map, FcChar32 *next); Description Builds an array of bits in map marking the Unicode coverage of a for page containing *next (see the FcCharSetFirstPage description for details). *next is set to contains the base code point for the next page in a. Returns the base of code point for the page, or FC_CHARSET_DONE if a does not contain *next. FcCharSetCoverage Name FcCharSetCoverage -- DEPRECATED return coverage for a Unicode page Synopsis #include FcChar32 FcCharSetCoverage(const FcCharSet *a, FcChar32page, FcChar32[8]result); Description DEPRECATED This function returns a bitmask in result which indicates which code points in page are included in a. FcCharSetCoverage returns the next page in the charset which has any coverage. FcCharSetNew Name FcCharSetNew -- DEPRECATED alias for FcCharSetCreate Synopsis #include FcCharSet * FcCharSetNew(void); Description FcCharSetNew is a DEPRECATED alias for FcCharSetCreate. -------------------------------------------------------------------------- FcLangSet Table of Contents [73]FcLangSetCreate -- create a langset object [74]FcLangSetDestroy -- destroy a langset object [75]FcLangSetCopy -- copy a langset object [76]FcLangSetAdd -- add a language to a langset [77]FcLangSetDel -- delete a language from a langset [78]FcLangSetUnion -- Add langsets [79]FcLangSetSubtract -- Subtract langsets [80]FcLangSetCompare -- compare language sets [81]FcLangSetContains -- check langset subset relation [82]FcLangSetEqual -- test for matching langsets [83]FcLangSetHash -- return a hash value for a langset [84]FcLangSetHasLang -- test langset for language support [85]FcGetDefaultLangs -- Get the default languages list [86]FcLangSetGetLangs -- get the list of languages in the langset [87]FcGetLangs -- Get list of languages [88]FcLangNormalize -- Normalize the language string [89]FcLangGetCharSet -- Get character map for a language An FcLangSet is a set of language names (each of which include language and an optional territory). They are used when selecting fonts to indicate which languages the fonts need to support. Each font is marked, using language orthography information built into fontconfig, with the set of supported languages. FcLangSetCreate Name FcLangSetCreate -- create a langset object Synopsis #include FcLangSet * FcLangSetCreate(void); Description FcLangSetCreate creates a new FcLangSet object. FcLangSetDestroy Name FcLangSetDestroy -- destroy a langset object Synopsis #include void FcLangSetDestroy(FcLangSet *ls); Description FcLangSetDestroy destroys a FcLangSet object, freeing all memory associated with it. FcLangSetCopy Name FcLangSetCopy -- copy a langset object Synopsis #include FcLangSet * FcLangSetCopy(const FcLangSet *ls); Description FcLangSetCopy creates a new FcLangSet object and populates it with the contents of ls. FcLangSetAdd Name FcLangSetAdd -- add a language to a langset Synopsis #include FcBool FcLangSetAdd(FcLangSet *ls, const FcChar8 *lang); Description lang is added to ls. lang should be of the form Ll-Tt where Ll is a two or three letter language from ISO 639 and Tt is a territory from ISO 3166. FcLangSetDel Name FcLangSetDel -- delete a language from a langset Synopsis #include FcBool FcLangSetDel(FcLangSet *ls, const FcChar8 *lang); Description lang is removed from ls. lang should be of the form Ll-Tt where Ll is a two or three letter language from ISO 639 and Tt is a territory from ISO 3166. Since version 2.9.0 FcLangSetUnion Name FcLangSetUnion -- Add langsets Synopsis #include FcLangSet * FcLangSetUnion(const FcLangSet *ls_a, const FcLangSet *ls_b); Description Returns a set including only those languages found in either ls_a or ls_b. Since version 2.9.0 FcLangSetSubtract Name FcLangSetSubtract -- Subtract langsets Synopsis #include FcLangSet * FcLangSetSubtract(const FcLangSet *ls_a, const FcLangSet *ls_b); Description Returns a set including only those languages found in ls_a but not in ls_b. Since version 2.9.0 FcLangSetCompare Name FcLangSetCompare -- compare language sets Synopsis #include FcLangResult FcLangSetCompare(const FcLangSet *ls_a, const FcLangSet *ls_b); Description FcLangSetCompare compares language coverage for ls_a and ls_b. If they share any language and territory pair, this function returns FcLangEqual. If they share a language but differ in which territory that language is for, this function returns FcLangDifferentTerritory. If they share no languages in common, this function returns FcLangDifferentLang. FcLangSetContains Name FcLangSetContains -- check langset subset relation Synopsis #include FcBool FcLangSetContains(const FcLangSet *ls_a, const FcLangSet *ls_b); Description FcLangSetContains returns FcTrue if ls_a contains every language in ls_b. ls_a will 'contain' a language from ls_b if ls_a has exactly the language, or either the language or ls_a has no territory. FcLangSetEqual Name FcLangSetEqual -- test for matching langsets Synopsis #include FcBool FcLangSetEqual(const FcLangSet *ls_a, const FcLangSet *ls_b); Description Returns FcTrue if and only if ls_a supports precisely the same language and territory combinations as ls_b. FcLangSetHash Name FcLangSetHash -- return a hash value for a langset Synopsis #include FcChar32 FcLangSetHash(const FcLangSet *ls); Description This function returns a value which depends solely on the languages supported by ls. Any language which equals ls will have the same result from FcLangSetHash. However, two langsets with the same hash value may not be equal. FcLangSetHasLang Name FcLangSetHasLang -- test langset for language support Synopsis #include FcLangResult FcLangSetHasLang(const FcLangSet *ls, const FcChar8 *lang); Description FcLangSetHasLang checks whether ls supports lang. If ls has a matching language and territory pair, this function returns FcLangEqual. If ls has a matching language but differs in which territory that language is for, this function returns FcLangDifferentTerritory. If ls has no matching language, this function returns FcLangDifferentLang. FcGetDefaultLangs Name FcGetDefaultLangs -- Get the default languages list Synopsis #include FcStrSet * FcGetDefaultLangs(void); Description Returns a string set of the default languages according to the environment variables on the system. This function looks for them in order of FC_LANG, LC_ALL, LC_CTYPE and LANG then. If there are no valid values in those environment variables, "en" will be set as fallback. Since version 2.9.91 FcLangSetGetLangs Name FcLangSetGetLangs -- get the list of languages in the langset Synopsis #include FcStrSet * FcLangSetGetLangs(const FcLangSet *ls); Description Returns a string set of all languages in langset. FcGetLangs Name FcGetLangs -- Get list of languages Synopsis #include FcStrSet * FcGetLangs(void); Description Returns a string set of all known languages. FcLangNormalize Name FcLangNormalize -- Normalize the language string Synopsis #include FcChar8 * FcLangNormalize(const FcChar8 *lang); Description Returns a string to make lang suitable on fontconfig. Since version 2.10.91 FcLangGetCharSet Name FcLangGetCharSet -- Get character map for a language Synopsis #include const FcCharSet * FcLangGetCharSet(const FcChar8 *lang); Description Returns the FcCharMap for a language. -------------------------------------------------------------------------- FcMatrix Table of Contents [90]FcMatrixInit -- initialize an FcMatrix structure [91]FcMatrixCopy -- Copy a matrix [92]FcMatrixEqual -- Compare two matrices [93]FcMatrixMultiply -- Multiply matrices [94]FcMatrixRotate -- Rotate a matrix [95]FcMatrixScale -- Scale a matrix [96]FcMatrixShear -- Shear a matrix FcMatrix structures hold an affine transformation in matrix form. FcMatrixInit Name FcMatrixInit -- initialize an FcMatrix structure Synopsis #include void FcMatrixInit(FcMatrix *matrix); Description FcMatrixInit initializes matrix to the identity matrix. FcMatrixCopy Name FcMatrixCopy -- Copy a matrix Synopsis #include void FcMatrixCopy(const FcMatrix *matrix); Description FcMatrixCopy allocates a new FcMatrix and copies mat into it. FcMatrixEqual Name FcMatrixEqual -- Compare two matrices Synopsis #include void FcMatrixEqual(const FcMatrix *matrix1, const FcMatrix *matrix2); Description FcMatrixEqual compares matrix1 and matrix2 returning FcTrue when they are equal and FcFalse when they are not. FcMatrixMultiply Name FcMatrixMultiply -- Multiply matrices Synopsis #include void FcMatrixMultiply(FcMatrix *result, const FcMatrix *matrix1, const FcMatrix *matrix2); Description FcMatrixMultiply multiplies matrix1 and matrix2 storing the result in result. FcMatrixRotate Name FcMatrixRotate -- Rotate a matrix Synopsis #include void FcMatrixRotate(FcMatrix *matrix, double cos, double sin); Description FcMatrixRotate rotates matrix by the angle who's sine is sin and cosine is cos. This is done by multiplying by the matrix: cos -sin sin cos FcMatrixScale Name FcMatrixScale -- Scale a matrix Synopsis #include void FcMatrixScale(FcMatrix *matrix, double sx, double dy); Description FcMatrixScale multiplies matrix x values by sx and y values by dy. This is done by multiplying by the matrix: sx 0 0 dy FcMatrixShear Name FcMatrixShear -- Shear a matrix Synopsis #include void FcMatrixShear(FcMatrix *matrix, double sh, double sv); Description FcMatrixShare shears matrix horizontally by sh and vertically by sv. This is done by multiplying by the matrix: 1 sh sv 1 -------------------------------------------------------------------------- FcConfig Table of Contents [97]FcConfigCreate -- Create a configuration [98]FcConfigReference -- Increment config reference count [99]FcConfigDestroy -- Destroy a configuration [100]FcConfigSetCurrent -- Set configuration as default [101]FcConfigGetCurrent -- Return current configuration [102]FcConfigUptoDate -- Check timestamps on config files [103]FcConfigHome -- return the current home directory. [104]FcConfigEnableHome -- controls use of the home directory. [105]FcConfigBuildFonts -- Build font database [106]FcConfigGetConfigDirs -- Get config directories [107]FcConfigGetFontDirs -- Get font directories [108]FcConfigGetConfigFiles -- Get config files [109]FcConfigGetCache -- DEPRECATED used to return per-user cache filename [110]FcConfigGetCacheDirs -- return the list of directories searched for cache files [111]FcConfigGetFonts -- Get config font set [112]FcConfigGetBlanks -- Get config blanks [113]FcConfigGetRescanInterval -- Get config rescan interval [114]FcConfigSetRescanInterval -- Set config rescan interval [115]FcConfigAppFontAddFile -- Add font file to font database [116]FcConfigAppFontAddDir -- Add fonts from directory to font database [117]FcConfigAppFontClear -- Remove all app fonts from font database [118]FcConfigSubstituteWithPat -- Execute substitutions [119]FcConfigSubstitute -- Execute substitutions [120]FcFontMatch -- Return best font [121]FcFontSort -- Return list of matching fonts [122]FcFontRenderPrepare -- Prepare pattern for loading font file [123]FcFontList -- List fonts [124]FcConfigFilename -- Find a config file [125]FcConfigParseAndLoad -- load a configuration file [126]FcConfigGetSysRoot -- Obtain the system root directory [127]FcConfigSetSysRoot -- Set the system root directory An FcConfig object holds the internal representation of a configuration. There is a default configuration which applications may use by passing 0 to any function using the data within an FcConfig. FcConfigCreate Name FcConfigCreate -- Create a configuration Synopsis #include FcConfig * FcConfigCreate(void); Description Creates an empty configuration. FcConfigReference Name FcConfigReference -- Increment config reference count Synopsis #include FcConfig * FcConfigReference(FcConfig *config); Description Add another reference to config. Configs are freed only when the reference count reaches zero. If config is NULL, the current configuration is used. In that case this function will be similar to FcConfigGetCurrent() except that it increments the reference count before returning and the user is responsible for destroying the configuration when not needed anymore. FcConfigDestroy Name FcConfigDestroy -- Destroy a configuration Synopsis #include void FcConfigDestroy(FcConfig *config); Description Decrements the config reference count. If all references are gone, destroys the configuration and any data associated with it. Note that calling this function with the return from FcConfigGetCurrent will cause a new configuration to be created for use as current configuration. FcConfigSetCurrent Name FcConfigSetCurrent -- Set configuration as default Synopsis #include FcBool FcConfigSetCurrent(FcConfig *config); Description Sets the current default configuration to config. Implicitly calls FcConfigBuildFonts if necessary, returning FcFalse if that call fails. FcConfigGetCurrent Name FcConfigGetCurrent -- Return current configuration Synopsis #include FcConfig * FcConfigGetCurrent(void); Description Returns the current default configuration. FcConfigUptoDate Name FcConfigUptoDate -- Check timestamps on config files Synopsis #include FcBool FcConfigUptoDate(FcConfig *config); Description Checks all of the files related to config and returns whether any of them has been modified since the configuration was created. If config is NULL, the current configuration is used. FcConfigHome Name FcConfigHome -- return the current home directory. Synopsis #include FcChar8 * FcConfigHome(void); Description Return the current user's home directory, if it is available, and if using it is enabled, and NULL otherwise. See also FcConfigEnableHome). FcConfigEnableHome Name FcConfigEnableHome -- controls use of the home directory. Synopsis #include FcBool FcConfigEnableHome(FcBool enable); Description If enable is FcTrue, then Fontconfig will use various files which are specified relative to the user's home directory (using the ~ notation in the configuration). When enable is FcFalse, then all use of the home directory in these contexts will be disabled. The previous setting of the value is returned. FcConfigBuildFonts Name FcConfigBuildFonts -- Build font database Synopsis #include FcBool FcConfigBuildFonts(FcConfig *config); Description Builds the set of available fonts for the given configuration. Note that any changes to the configuration after this call have indeterminate effects. Returns FcFalse if this operation runs out of memory. If config is NULL, the current configuration is used. FcConfigGetConfigDirs Name FcConfigGetConfigDirs -- Get config directories Synopsis #include FcStrList * FcConfigGetConfigDirs(FcConfig *config); Description Returns the list of font directories specified in the configuration files for config. Does not include any subdirectories. If config is NULL, the current configuration is used. FcConfigGetFontDirs Name FcConfigGetFontDirs -- Get font directories Synopsis #include FcStrList * FcConfigGetFontDirs(FcConfig *config); Description Returns the list of font directories in config. This includes the configured font directories along with any directories below those in the filesystem. If config is NULL, the current configuration is used. FcConfigGetConfigFiles Name FcConfigGetConfigFiles -- Get config files Synopsis #include FcStrList * FcConfigGetConfigFiles(FcConfig *config); Description Returns the list of known configuration files used to generate config. If config is NULL, the current configuration is used. FcConfigGetCache Name FcConfigGetCache -- DEPRECATED used to return per-user cache filename Synopsis #include FcChar8 * FcConfigGetCache(FcConfig *config); Description With fontconfig no longer using per-user cache files, this function now simply returns NULL to indicate that no per-user file exists. FcConfigGetCacheDirs Name FcConfigGetCacheDirs -- return the list of directories searched for cache files Synopsis #include FcStrList * FcConfigGetCacheDirs(const FcConfig *config); Description FcConfigGetCacheDirs returns a string list containing all of the directories that fontconfig will search when attempting to load a cache file for a font directory. If config is NULL, the current configuration is used. FcConfigGetFonts Name FcConfigGetFonts -- Get config font set Synopsis #include FcFontSet * FcConfigGetFonts(FcConfig *config, FcSetName set); Description Returns one of the two sets of fonts from the configuration as specified by set. This font set is owned by the library and must not be modified or freed. If config is NULL, the current configuration is used. FcConfigGetBlanks Name FcConfigGetBlanks -- Get config blanks Synopsis #include FcBlanks * FcConfigGetBlanks(FcConfig *config); Description Returns the FcBlanks object associated with the given configuration, if no blanks were present in the configuration, this function will return 0. The returned FcBlanks object if not NULL, is valid as long as the owning FcConfig is alive. If config is NULL, the current configuration is used. FcConfigGetRescanInterval Name FcConfigGetRescanInterval -- Get config rescan interval Synopsis #include int FcConfigGetRescanInterval(FcConfig *config); Description Returns the interval between automatic checks of the configuration (in seconds) specified in config. The configuration is checked during a call to FcFontList when this interval has passed since the last check. An interval setting of zero disables automatic checks. If config is NULL, the current configuration is used. FcConfigSetRescanInterval Name FcConfigSetRescanInterval -- Set config rescan interval Synopsis #include FcBool FcConfigSetRescanInterval(FcConfig *config, int rescanInterval); Description Sets the rescan interval. Returns FcFalse if the interval cannot be set (due to allocation failure). Otherwise returns FcTrue. An interval setting of zero disables automatic checks. If config is NULL, the current configuration is used. FcConfigAppFontAddFile Name FcConfigAppFontAddFile -- Add font file to font database Synopsis #include FcBool FcConfigAppFontAddFile(FcConfig *config, const FcChar8 *file); Description Adds an application-specific font to the configuration. Returns FcFalse if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue. If config is NULL, the current configuration is used. FcConfigAppFontAddDir Name FcConfigAppFontAddDir -- Add fonts from directory to font database Synopsis #include FcBool FcConfigAppFontAddDir(FcConfig *config, const FcChar8 *dir); Description Scans the specified directory for fonts, adding each one found to the application-specific set of fonts. Returns FcFalse if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue. If config is NULL, the current configuration is used. FcConfigAppFontClear Name FcConfigAppFontClear -- Remove all app fonts from font database Synopsis #include void FcConfigAppFontClear(FcConfig *config); Description Clears the set of application-specific fonts. If config is NULL, the current configuration is used. FcConfigSubstituteWithPat Name FcConfigSubstituteWithPat -- Execute substitutions Synopsis #include FcBool FcConfigSubstituteWithPat(FcConfig *config, FcPattern *p, FcPattern *p_pat, FcMatchKind kind); Description Performs the sequence of pattern modification operations, if kind is FcMatchPattern, then those tagged as pattern operations are applied, else if kind is FcMatchFont, those tagged as font operations are applied and p_pat is used for elements with target=pattern. Returns FcFalse if the substitution cannot be performed (due to allocation failure). Otherwise returns FcTrue. If config is NULL, the current configuration is used. FcConfigSubstitute Name FcConfigSubstitute -- Execute substitutions Synopsis #include FcBool FcConfigSubstitute(FcConfig *config, FcPattern *p, FcMatchKind kind); Description Calls FcConfigSubstituteWithPat setting p_pat to NULL. Returns FcFalse if the substitution cannot be performed (due to allocation failure). Otherwise returns FcTrue. If config is NULL, the current configuration is used. FcFontMatch Name FcFontMatch -- Return best font Synopsis #include FcPattern * FcFontMatch(FcConfig *config, FcPattern *p, FcResult *result); Description Finds the font in sets most closely matching pattern and returns the result of FcFontRenderPrepare for that font and the provided pattern. This function should be called only after FcConfigSubstitute and FcDefaultSubstitute have been called for p; otherwise the results will not be correct. If config is NULL, the current configuration is used. FcFontSort Name FcFontSort -- Return list of matching fonts Synopsis #include FcFontSet * FcFontSort(FcConfig *config, FcPattern *p, FcBool trim, FcCharSet **csp, FcResult *result); Description Returns the list of fonts sorted by closeness to p. If trim is FcTrue, elements in the list which don't include Unicode coverage not provided by earlier elements in the list are elided. The union of Unicode coverage of all of the fonts is returned in csp, if csp is not NULL. This function should be called only after FcConfigSubstitute and FcDefaultSubstitute have been called for p; otherwise the results will not be correct. The returned FcFontSet references FcPattern structures which may be shared by the return value from multiple FcFontSort calls, applications must not modify these patterns. Instead, they should be passed, along with p to FcFontRenderPrepare which combines them into a complete pattern. The FcFontSet returned by FcFontSort is destroyed by calling FcFontSetDestroy. If config is NULL, the current configuration is used. FcFontRenderPrepare Name FcFontRenderPrepare -- Prepare pattern for loading font file Synopsis #include FcPattern * FcFontRenderPrepare(FcConfig *config, FcPattern *pat, FcPattern *font); Description Creates a new pattern consisting of elements of font not appearing in pat, elements of pat not appearing in font and the best matching value from pat for elements appearing in both. The result is passed to FcConfigSubstituteWithPat with kind FcMatchFont and then returned. FcFontList Name FcFontList -- List fonts Synopsis #include FcFontSet * FcFontList(FcConfig *config, FcPattern *p, FcObjectSet *os); Description Selects fonts matching p, creates patterns from those fonts containing only the objects in os and returns the set of unique such patterns. If config is NULL, the default configuration is checked to be up to date, and used. FcConfigFilename Name FcConfigFilename -- Find a config file Synopsis #include FcChar8 * FcConfigFilename(const FcChar8 *name); Description Given the specified external entity name, return the associated filename. This provides applications a way to convert various configuration file references into filename form. A null or empty name indicates that the default configuration file should be used; which file this references can be overridden with the FONTCONFIG_FILE environment variable. Next, if the name starts with ~, it refers to a file in the current users home directory. Otherwise if the name doesn't start with '/', it refers to a file in the default configuration directory; the built-in default directory can be overridden with the FONTCONFIG_PATH environment variable. FcConfigParseAndLoad Name FcConfigParseAndLoad -- load a configuration file Synopsis #include FcBool FcConfigParseAndLoad(FcConfig *config, const FcChar8 *file, FcBool complain); Description Walks the configuration in 'file' and constructs the internal representation in 'config'. Any include files referenced from within 'file' will be loaded and parsed. If 'complain' is FcFalse, no warning will be displayed if 'file' does not exist. Error and warning messages will be output to stderr. Returns FcFalse if some error occurred while loading the file, either a parse error, semantic error or allocation failure. Otherwise returns FcTrue. FcConfigGetSysRoot Name FcConfigGetSysRoot -- Obtain the system root directory Synopsis #include const FcChar8 * FcConfigGetSysRoot(const FcConfig *config); Description Obtrains the system root directory in 'config' if available. Since version 2.10.92 FcConfigSetSysRoot Name FcConfigSetSysRoot -- Set the system root directory Synopsis #include void FcConfigSetSysRoot(FcConfig *config, const FcChar8 *sysroot); Description 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 version 2.10.92 -------------------------------------------------------------------------- FcObjectType Table of Contents [128]FcNameRegisterObjectTypes -- Register object types [129]FcNameUnregisterObjectTypes -- Unregister object types [130]FcNameGetObjectType -- Lookup an object type Provides for application-specified font name object types so that new pattern elements can be generated from font names. FcNameRegisterObjectTypes Name FcNameRegisterObjectTypes -- Register object types Synopsis #include FcBool FcNameRegisterObjectTypes(const FcObjectType *types, int ntype); Description Deprecated. Does nothing. Returns FcFalse. FcNameUnregisterObjectTypes Name FcNameUnregisterObjectTypes -- Unregister object types Synopsis #include FcBool FcNameUnregisterObjectTypes(const FcObjectType *types, int ntype); Description Deprecated. Does nothing. Returns FcFalse. FcNameGetObjectType Name FcNameGetObjectType -- Lookup an object type Synopsis #include const FcObjectType * FcNameGetObjectType(const char *object); Description Return the object type for the pattern element named object. -------------------------------------------------------------------------- FcConstant Table of Contents [131]FcNameRegisterConstants -- Register symbolic constants [132]FcNameUnregisterConstants -- Unregister symbolic constants [133]FcNameGetConstant -- Lookup symbolic constant [134]FcNameConstant -- Get the value for a symbolic constant Provides for application-specified symbolic constants for font names. FcNameRegisterConstants Name FcNameRegisterConstants -- Register symbolic constants Synopsis #include FcBool FcNameRegisterConstants(const FcConstant *consts, int nconsts); Description Deprecated. Does nothing. Returns FcFalse. FcNameUnregisterConstants Name FcNameUnregisterConstants -- Unregister symbolic constants Synopsis #include FcBool FcNameUnregisterConstants(const FcConstant *consts, int nconsts); Description Deprecated. Does nothing. Returns FcFalse. FcNameGetConstant Name FcNameGetConstant -- Lookup symbolic constant Synopsis #include const FcConstant * FcNameGetConstant(FcChar8 *string); Description Return the FcConstant structure related to symbolic constant string. FcNameConstant Name FcNameConstant -- Get the value for a symbolic constant Synopsis #include FcBool FcNameConstant(FcChar8 *string, int *result); Description Returns whether a symbolic constant with name string is registered, placing the value of the constant in result if present. -------------------------------------------------------------------------- FcBlanks Table of Contents [135]FcBlanksCreate -- Create an FcBlanks [136]FcBlanksDestroy -- Destroy and FcBlanks [137]FcBlanksAdd -- Add a character to an FcBlanks [138]FcBlanksIsMember -- Query membership in an FcBlanks An FcBlanks object holds a list of Unicode chars which are expected to be blank when drawn. When scanning new fonts, any glyphs which are empty and not in this list will be assumed to be broken and not placed in the FcCharSet associated with the font. This provides a significantly more accurate CharSet for applications. FcBlanksCreate Name FcBlanksCreate -- Create an FcBlanks Synopsis #include FcBlanks * FcBlanksCreate(void); Description Creates an empty FcBlanks object. FcBlanksDestroy Name FcBlanksDestroy -- Destroy and FcBlanks Synopsis #include void FcBlanksDestroy(FcBlanks *b); Description Destroys an FcBlanks object, freeing any associated memory. FcBlanksAdd Name FcBlanksAdd -- Add a character to an FcBlanks Synopsis #include FcBool FcBlanksAdd(FcBlanks *b, FcChar32 ucs4); Description Adds a single character to an FcBlanks object, returning FcFalse if this process ran out of memory. FcBlanksIsMember Name FcBlanksIsMember -- Query membership in an FcBlanks Synopsis #include FcBool FcBlanksIsMember(FcBlanks *b, FcChar32 ucs4); Description Returns whether the specified FcBlanks object contains the indicated Unicode value. -------------------------------------------------------------------------- FcAtomic Table of Contents [139]FcAtomicCreate -- create an FcAtomic object [140]FcAtomicLock -- lock a file [141]FcAtomicNewFile -- return new temporary file name [142]FcAtomicOrigFile -- return original file name [143]FcAtomicReplaceOrig -- replace original with new [144]FcAtomicDeleteNew -- delete new file [145]FcAtomicUnlock -- unlock a file [146]FcAtomicDestroy -- destroy an FcAtomic object These functions provide a safe way to update configuration files, allowing ongoing reading of the old configuration file while locked for writing and ensuring that a consistent and complete version of the configuration file is always available. FcAtomicCreate Name FcAtomicCreate -- create an FcAtomic object Synopsis #include FcAtomic * FcAtomicCreate(const FcChar8 *file); Description Creates a data structure containing data needed to control access to file. Writing is done to a separate file. Once that file is complete, the original configuration file is atomically replaced so that reading process always see a consistent and complete file without the need to lock for reading. FcAtomicLock Name FcAtomicLock -- lock a file Synopsis #include FcBool FcAtomicLock(FcAtomic *atomic); Description Attempts to lock the file referenced by atomic. Returns FcFalse if the file is already locked, else returns FcTrue and leaves the file locked. FcAtomicNewFile Name FcAtomicNewFile -- return new temporary file name Synopsis #include FcChar8 * FcAtomicNewFile(FcAtomic *atomic); Description Returns the filename for writing a new version of the file referenced by atomic. FcAtomicOrigFile Name FcAtomicOrigFile -- return original file name Synopsis #include FcChar8 * FcAtomicOrigFile(FcAtomic *atomic); Description Returns the file referenced by atomic. FcAtomicReplaceOrig Name FcAtomicReplaceOrig -- replace original with new Synopsis #include FcBool FcAtomicReplaceOrig(FcAtomic *atomic); Description Replaces the original file referenced by atomic with the new file. Returns FcFalse if the file cannot be replaced due to permission issues in the filesystem. Otherwise returns FcTrue. FcAtomicDeleteNew Name FcAtomicDeleteNew -- delete new file Synopsis #include void FcAtomicDeleteNew(FcAtomic *atomic); Description Deletes the new file. Used in error recovery to back out changes. FcAtomicUnlock Name FcAtomicUnlock -- unlock a file Synopsis #include void FcAtomicUnlock(FcAtomic *atomic); Description Unlocks the file. FcAtomicDestroy Name FcAtomicDestroy -- destroy an FcAtomic object Synopsis #include void FcAtomicDestroy(FcAtomic *atomic); Description Destroys atomic. -------------------------------------------------------------------------- File and Directory routines Table of Contents [147]FcFileScan -- scan a font file [148]FcFileIsDir -- check whether a file is a directory [149]FcDirScan -- scan a font directory without caching it [150]FcDirSave -- DEPRECATED: formerly used to save a directory cache [151]FcDirCacheUnlink -- Remove all caches related to dir [152]FcDirCacheValid -- check directory cache [153]FcDirCacheLoad -- load a directory cache [154]FcDirCacheRescan -- Re-scan a directory cache [155]FcDirCacheRead -- read or construct a directory cache [156]FcDirCacheLoadFile -- load a cache file [157]FcDirCacheUnload -- unload a cache file These routines work with font files and directories, including font directory cache files. FcFileScan Name FcFileScan -- scan a font file Synopsis #include FcBool FcFileScan(FcFontSet *set, FcStrSet *dirs, FcFileCache *cache, FcBlanks *blanks, const FcChar8 *file, FcBool force); Description Scans a single file and adds all fonts found to set. If force is FcTrue, then the file is scanned even if associated information is found in cache. If file is a directory, it is added to dirs. Whether fonts are found depends on fontconfig policy as well as the current configuration. Internally, fontconfig will ignore BDF and PCF fonts which are not in Unicode (or the effectively equivalent ISO Latin-1) encoding as those are not usable by Unicode-based applications. The configuration can ignore fonts based on filename or contents of the font file itself. Returns FcFalse if any of the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue. FcFileIsDir Name FcFileIsDir -- check whether a file is a directory Synopsis #include FcBool FcFileIsDir(const FcChar8 *file); Description Returns FcTrue if file is a directory, otherwise returns FcFalse. FcDirScan Name FcDirScan -- scan a font directory without caching it Synopsis #include FcBool FcDirScan(FcFontSet *set, FcStrSet *dirs, FcFileCache *cache, FcBlanks *blanks, const FcChar8 *dir, FcBool force); Description If cache is not zero or if force is FcFalse, this function currently returns FcFalse. Otherwise, it scans an entire directory and adds all fonts found to set. Any subdirectories found are added to dirs. Calling this function does not create any cache files. Use FcDirCacheRead() if caching is desired. FcDirSave Name FcDirSave -- DEPRECATED: formerly used to save a directory cache Synopsis #include FcBool FcDirSave(FcFontSet *set, FcStrSet *dirs, const FcChar8 *dir); Description This function now does nothing aside from returning FcFalse. It used to creates the per-directory cache file for dir and populates it with the fonts in set and subdirectories in dirs. All of this functionality is now automatically managed by FcDirCacheLoad and FcDirCacheRead. FcDirCacheUnlink Name FcDirCacheUnlink -- Remove all caches related to dir Synopsis #include FcBool FcDirCacheUnlink(const FcChar8 *dir, FcConfig *config); Description Scans the cache directories in config, removing any instances of the cache file for dir. Returns FcFalse when some internal error occurs (out of memory, etc). Errors actually unlinking any files are ignored. FcDirCacheValid Name FcDirCacheValid -- check directory cache Synopsis #include FcBool FcDirCacheValid(const FcChar8 *dir); Description Returns FcTrue if dir has an associated valid cache file, else returns FcFalse FcDirCacheLoad Name FcDirCacheLoad -- load a directory cache Synopsis #include FcCache * FcDirCacheLoad(const FcChar8 *dir, FcConfig *config, FcChar8 **cache_file); Description Loads the cache related to dir. If no cache file exists, returns NULL. The name of the cache file is returned in cache_file, unless that is NULL. See also FcDirCacheRead. FcDirCacheRescan Name FcDirCacheRescan -- Re-scan a directory cache Synopsis #include FcCache * FcDirCacheRescan(const FcChar8 *dir, FcConfig *config); Description Re-scan directories only at dir and update the cache. returns NULL if failed. Since version 2.11.1 FcDirCacheRead Name FcDirCacheRead -- read or construct a directory cache Synopsis #include FcCache * FcDirCacheRead(const FcChar8 *dir, FcBool force, FcConfig *config); Description This returns a cache for dir. If force is FcFalse, then an existing, valid cache file will be used. Otherwise, a new cache will be created by scanning the directory and that returned. FcDirCacheLoadFile Name FcDirCacheLoadFile -- load a cache file Synopsis #include FcCache * FcDirCacheLoadFile(const FcChar8 *cache_file, struct stat *file_stat); Description This function loads a directory cache from cache_file. If file_stat is non-NULL, it will be filled with the results of stat(2) on the cache file. FcDirCacheUnload Name FcDirCacheUnload -- unload a cache file Synopsis #include void FcDirCacheUnload(FcCache *cache); Description This function dereferences cache. When no other references to it remain, all memory associated with the cache will be freed. -------------------------------------------------------------------------- FcCache routines Table of Contents [158]FcCacheDir -- Return directory of cache [159]FcCacheCopySet -- Returns a copy of the fontset from cache [160]FcCacheSubdir -- Return the i'th subdirectory. [161]FcCacheNumSubdir -- Return the number of subdirectories in cache. [162]FcCacheNumFont -- Returns the number of fonts in cache. [163]FcDirCacheClean -- This tries to clean up the cache directory of cache_dir. This returns FcTrue if the operation is successfully complete. otherwise FcFalse. [164]FcCacheCreateTagFile -- Create CACHEDIR.TAG at cache directory. These routines work with font directory caches, accessing their contents in limited ways. It is not expected that normal applications will need to use these functions. FcCacheDir Name FcCacheDir -- Return directory of cache Synopsis #include const FcChar8 * FcCacheDir(const FcCache *cache); Description This function returns the directory from which the cache was constructed. FcCacheCopySet Name FcCacheCopySet -- Returns a copy of the fontset from cache Synopsis #include FcFontSet * FcCacheCopySet(const FcCache *cache); Description The returned fontset contains each of the font patterns from cache. This fontset may be modified, but the patterns from the cache are read-only. FcCacheSubdir Name FcCacheSubdir -- Return the i'th subdirectory. Synopsis #include const FcChar8 * FcCacheSubdir(const FcCache *cache, inti); Description The set of subdirectories stored in a cache file are indexed by this function, i should range from 0 to n-1, where n is the return value from FcCacheNumSubdir. FcCacheNumSubdir Name FcCacheNumSubdir -- Return the number of subdirectories in cache. Synopsis #include int FcCacheNumSubdir(const FcCache *cache); Description This returns the total number of subdirectories in the cache. FcCacheNumFont Name FcCacheNumFont -- Returns the number of fonts in cache. Synopsis #include int FcCacheNumFont(const FcCache *cache); Description This returns the number of fonts which would be included in the return from FcCacheCopySet. FcDirCacheClean Name FcDirCacheClean -- This tries to clean up the cache directory of cache_dir. This returns FcTrue if the operation is successfully complete. otherwise FcFalse. Synopsis #include FcBool FcDirCacheClean(const FcChar8 *cache_dir, FcBoolverbose); Description Since version 2.9.91 FcCacheCreateTagFile Name FcCacheCreateTagFile -- Create CACHEDIR.TAG at cache directory. Synopsis #include void FcCacheCreateTagFile(const FcConfig *config); Description This tries to create CACHEDIR.TAG file at the cache directory registered to config. Since version 2.9.91 -------------------------------------------------------------------------- FcStrSet and FcStrList Table of Contents [165]FcStrSetCreate -- create a string set [166]FcStrSetMember -- check set for membership [167]FcStrSetEqual -- check sets for equality [168]FcStrSetAdd -- add to a string set [169]FcStrSetAddFilename -- add a filename to a string set [170]FcStrSetDel -- delete from a string set [171]FcStrSetDestroy -- destroy a string set [172]FcStrListCreate -- create a string iterator [173]FcStrListFirst -- get first string in iteration [174]FcStrListNext -- get next string in iteration [175]FcStrListDone -- destroy a string iterator A data structure for enumerating strings, used to list directories while scanning the configuration as directories are added while scanning. FcStrSetCreate Name FcStrSetCreate -- create a string set Synopsis #include FcStrSet * FcStrSetCreate(void); Description Create an empty set. FcStrSetMember Name FcStrSetMember -- check set for membership Synopsis #include FcBool FcStrSetMember(FcStrSet *set, const FcChar8 *s); Description Returns whether s is a member of set. FcStrSetEqual Name FcStrSetEqual -- check sets for equality Synopsis #include FcBool FcStrSetEqual(FcStrSet *set_a, FcStrSet *set_b); Description Returns whether set_a contains precisely the same strings as set_b. Ordering of strings within the two sets is not considered. FcStrSetAdd Name FcStrSetAdd -- add to a string set Synopsis #include FcBool FcStrSetAdd(FcStrSet *set, const FcChar8 *s); Description Adds a copy of s to set. FcStrSetAddFilename Name FcStrSetAddFilename -- add a filename to a string set Synopsis #include FcBool FcStrSetAddFilename(FcStrSet *set, const FcChar8 *s); Description Adds a copy s to set, The copy is created with FcStrCopyFilename so that leading '~' values are replaced with the value of the HOME environment variable. FcStrSetDel Name FcStrSetDel -- delete from a string set Synopsis #include FcBool FcStrSetDel(FcStrSet *set, const FcChar8 *s); Description Removes s from set, returning FcTrue if s was a member else FcFalse. FcStrSetDestroy Name FcStrSetDestroy -- destroy a string set Synopsis #include void FcStrSetDestroy(FcStrSet *set); Description Destroys set. FcStrListCreate Name FcStrListCreate -- create a string iterator Synopsis #include FcStrList * FcStrListCreate(FcStrSet *set); Description Creates an iterator to list the strings in set. FcStrListFirst Name FcStrListFirst -- get first string in iteration Synopsis #include void FcStrListFirst(FcStrList *list); Description Returns the first string in list. Since version 2.11.0 FcStrListNext Name FcStrListNext -- get next string in iteration Synopsis #include FcChar8 * FcStrListNext(FcStrList *list); Description Returns the next string in list. FcStrListDone Name FcStrListDone -- destroy a string iterator Synopsis #include void FcStrListDone(FcStrList *list); Description Destroys the enumerator list. -------------------------------------------------------------------------- String utilities Table of Contents [176]FcUtf8ToUcs4 -- convert UTF-8 to UCS4 [177]FcUcs4ToUtf8 -- convert UCS4 to UTF-8 [178]FcUtf8Len -- count UTF-8 encoded chars [179]FcUtf16ToUcs4 -- convert UTF-16 to UCS4 [180]FcUtf16Len -- count UTF-16 encoded chars [181]FcIsLower -- check for lower case ASCII character [182]FcIsUpper -- check for upper case ASCII character [183]FcToLower -- convert upper case ASCII to lower case [184]FcStrCopy -- duplicate a string [185]FcStrDowncase -- create a lower case translation of a string [186]FcStrCopyFilename -- create a complete path from a filename [187]FcStrCmp -- compare UTF-8 strings [188]FcStrCmpIgnoreCase -- compare UTF-8 strings ignoring case [189]FcStrStr -- locate UTF-8 substring [190]FcStrStrIgnoreCase -- locate UTF-8 substring ignoring ASCII case [191]FcStrPlus -- concatenate two strings [192]FcStrFree -- free a string [193]FcStrDirname -- directory part of filename [194]FcStrBasename -- last component of filename Fontconfig manipulates many UTF-8 strings represented with the FcChar8 type. These functions are exposed to help applications deal with these UTF-8 strings in a locale-insensitive manner. FcUtf8ToUcs4 Name FcUtf8ToUcs4 -- convert UTF-8 to UCS4 Synopsis #include int FcUtf8ToUcs4(FcChar8 *src, FcChar32 *dst, int len); Description Converts the next Unicode char from src into dst and returns the number of bytes containing the char. src must be at least len bytes long. FcUcs4ToUtf8 Name FcUcs4ToUtf8 -- convert UCS4 to UTF-8 Synopsis #include int FcUcs4ToUtf8(FcChar32 src, FcChar8 dst[FC_UTF8_MAX_LEN]); Description Converts the Unicode char from src into dst and returns the number of bytes needed to encode the char. FcUtf8Len Name FcUtf8Len -- count UTF-8 encoded chars Synopsis #include FcBool FcUtf8Len(FcChar8 *src, int len, int *nchar, int *wchar); Description Counts the number of Unicode chars in len bytes of src. Places that count in nchar. wchar contains 1, 2 or 4 depending on the number of bytes needed to hold the largest Unicode char counted. The return value indicates whether src is a well-formed UTF8 string. FcUtf16ToUcs4 Name FcUtf16ToUcs4 -- convert UTF-16 to UCS4 Synopsis #include int FcUtf16ToUcs4(FcChar8 *src, FcEndian endian, FcChar32 *dst, int len); Description Converts the next Unicode char from src into dst and returns the number of bytes containing the char. src must be at least len bytes long. Bytes of src are combined into 16-bit units according to endian. FcUtf16Len Name FcUtf16Len -- count UTF-16 encoded chars Synopsis #include FcBool FcUtf16Len(FcChar8 *src, FcEndian endian, int len, int *nchar, int *wchar); Description Counts the number of Unicode chars in len bytes of src. Bytes of src are combined into 16-bit units according to endian. Places that count in nchar. wchar contains 1, 2 or 4 depending on the number of bytes needed to hold the largest Unicode char counted. The return value indicates whether string is a well-formed UTF16 string. FcIsLower Name FcIsLower -- check for lower case ASCII character Synopsis #include FcBool FcIsLower(FcChar8c); Description This macro checks whether c is an lower case ASCII letter. FcIsUpper Name FcIsUpper -- check for upper case ASCII character Synopsis #include FcBool FcIsUpper(FcChar8c); Description This macro checks whether c is a upper case ASCII letter. FcToLower Name FcToLower -- convert upper case ASCII to lower case Synopsis #include FcChar8 FcToLower(FcChar8c); Description This macro converts upper case ASCII c to the equivalent lower case letter. FcStrCopy Name FcStrCopy -- duplicate a string Synopsis #include FcChar8 * FcStrCopy(const FcChar8 *s); Description Allocates memory, copies s and returns the resulting buffer. Yes, this is strdup, but that function isn't available on every platform. FcStrDowncase Name FcStrDowncase -- create a lower case translation of a string Synopsis #include FcChar8 * FcStrDowncase(const FcChar8 *s); Description Allocates memory, copies s, converting upper case letters to lower case and returns the allocated buffer. FcStrCopyFilename Name FcStrCopyFilename -- create a complete path from a filename Synopsis #include FcChar8 * FcStrCopyFilename(const FcChar8 *s); Description FcStrCopyFilename constructs an absolute pathname from s. It converts any leading '~' characters in to the value of the HOME environment variable, and any relative paths are converted to absolute paths using the current working directory. Sequences of '/' characters are converted to a single '/', and names containing the current directory '.' or parent directory '..' are correctly reconstructed. Returns NULL if '~' is the leading character and HOME is unset or disabled (see FcConfigEnableHome). FcStrCmp Name FcStrCmp -- compare UTF-8 strings Synopsis #include int FcStrCmp(const FcChar8 *s1, const FcChar8 *s2); Description Returns the usual <0, 0, >0 result of comparing s1 and s2. FcStrCmpIgnoreCase Name FcStrCmpIgnoreCase -- compare UTF-8 strings ignoring case Synopsis #include int FcStrCmpIgnoreCase(const FcChar8 *s1, const FcChar8 *s2); Description Returns the usual <0, 0, >0 result of comparing s1 and s2. This test is case-insensitive for all proper UTF-8 encoded strings. FcStrStr Name FcStrStr -- locate UTF-8 substring Synopsis #include FcChar8 * FcStrStr(const FcChar8 *s1, const FcChar8 *s2); Description Returns the location of s2 in s1. Returns NULL if s2 is not present in s1. This test will operate properly with UTF8 encoded strings. FcStrStrIgnoreCase Name FcStrStrIgnoreCase -- locate UTF-8 substring ignoring ASCII case Synopsis #include FcChar8 * FcStrStrIgnoreCase(const FcChar8 *s1, const FcChar8 *s2); Description Returns the location of s2 in s1, ignoring case. Returns NULL if s2 is not present in s1. This test is case-insensitive for all proper UTF-8 encoded strings. FcStrPlus Name FcStrPlus -- concatenate two strings Synopsis #include FcChar8 * FcStrPlus(const FcChar8 *s1, const FcChar8 *s2); Description This function allocates new storage and places the concatenation of s1 and s2 there, returning the new string. FcStrFree Name FcStrFree -- free a string Synopsis #include void FcStrFree(FcChar8 *s); Description This is just a wrapper around free(3) which helps track memory usage of strings within the fontconfig library. FcStrDirname Name FcStrDirname -- directory part of filename Synopsis #include FcChar8 * FcStrDirname(const FcChar8 *file); Description Returns the directory containing file. This is returned in newly allocated storage which should be freed when no longer needed. FcStrBasename Name FcStrBasename -- last component of filename Synopsis #include FcChar8 * FcStrBasename(const FcChar8 *file); Description Returns the filename of file stripped of any leading directory names. This is returned in newly allocated storage which should be freed when no longer needed. References Visible links 1. file:///tmp/html-rhkMLA#AEN16 2. file:///tmp/html-rhkMLA#AEN19 3. file:///tmp/html-rhkMLA#AEN31 4. file:///tmp/html-rhkMLA#AEN102 5. file:///tmp/html-rhkMLA#FCINITLOADCONFIG 6. file:///tmp/html-rhkMLA#FCINITLOADCONFIGANDFONTS 7. file:///tmp/html-rhkMLA#FCINIT 8. file:///tmp/html-rhkMLA#FCFINI 9. file:///tmp/html-rhkMLA#FCGETVERSION 10. file:///tmp/html-rhkMLA#FCINITREINITIALIZE 11. file:///tmp/html-rhkMLA#FCINITBRINGUPTODATE 12. file:///tmp/html-rhkMLA#FCPATTERNCREATE 13. file:///tmp/html-rhkMLA#FCPATTERNDUPLICATE 14. file:///tmp/html-rhkMLA#FCPATTERNREFERENCE 15. file:///tmp/html-rhkMLA#FCPATTERNDESTROY 16. file:///tmp/html-rhkMLA#FCPATTERNEQUAL 17. file:///tmp/html-rhkMLA#FCPATTERNEQUALSUBSET 18. file:///tmp/html-rhkMLA#FCPATTERNFILTER 19. file:///tmp/html-rhkMLA#FCPATTERNHASH 20. file:///tmp/html-rhkMLA#FCPATTERNADD 21. file:///tmp/html-rhkMLA#FCPATTERNADDWEAK 22. file:///tmp/html-rhkMLA#FCPATTERNADD-TYPE 23. file:///tmp/html-rhkMLA#FCPATTERNGET 24. file:///tmp/html-rhkMLA#FCPATTERNGET-TYPE 25. file:///tmp/html-rhkMLA#FCPATTERNBUILD 26. file:///tmp/html-rhkMLA#FCPATTERNDEL 27. file:///tmp/html-rhkMLA#FCPATTERNREMOVE 28. file:///tmp/html-rhkMLA#FCPATTERNPRINT 29. file:///tmp/html-rhkMLA#FCDEFAULTSUBSTITUTE 30. file:///tmp/html-rhkMLA#FCNAMEPARSE 31. file:///tmp/html-rhkMLA#FCNAMEUNPARSE 32. file:///tmp/html-rhkMLA#FCPATTERNFORMAT 33. file:///tmp/html-rhkMLA#FCFONTSETCREATE 34. file:///tmp/html-rhkMLA#FCFONTSETDESTROY 35. file:///tmp/html-rhkMLA#FCFONTSETADD 36. file:///tmp/html-rhkMLA#FCFONTSETLIST 37. file:///tmp/html-rhkMLA#FCFONTSETMATCH 38. file:///tmp/html-rhkMLA#FCFONTSETPRINT 39. file:///tmp/html-rhkMLA#FCFONTSETSORT 40. file:///tmp/html-rhkMLA#FCFONTSETSORTDESTROY 41. file:///tmp/html-rhkMLA#FCOBJECTSETCREATE 42. file:///tmp/html-rhkMLA#FCOBJECTSETADD 43. file:///tmp/html-rhkMLA#FCOBJECTSETDESTROY 44. file:///tmp/html-rhkMLA#FCOBJECTSETBUILD 45. file:///tmp/html-rhkMLA#FCFREETYPECHARINDEX 46. file:///tmp/html-rhkMLA#FCFREETYPECHARSET 47. file:///tmp/html-rhkMLA#FCFREETYPECHARSETANDSPACING 48. file:///tmp/html-rhkMLA#FCFREETYPEQUERY 49. file:///tmp/html-rhkMLA#FCFREETYPEQUERYFACE 50. file:///tmp/html-rhkMLA#FCVALUEDESTROY 51. file:///tmp/html-rhkMLA#FCVALUESAVE 52. file:///tmp/html-rhkMLA#FCVALUEPRINT 53. file:///tmp/html-rhkMLA#FCVALUEEQUAL 54. file:///tmp/html-rhkMLA#FCCHARSETCREATE 55. file:///tmp/html-rhkMLA#FCCHARSETDESTROY 56. file:///tmp/html-rhkMLA#FCCHARSETADDCHAR 57. file:///tmp/html-rhkMLA#FCCHARSETDELCHAR 58. file:///tmp/html-rhkMLA#FCCHARSETCOPY 59. file:///tmp/html-rhkMLA#FCCHARSETEQUAL 60. file:///tmp/html-rhkMLA#FCCHARSETINTERSECT 61. file:///tmp/html-rhkMLA#FCCHARSETUNION 62. file:///tmp/html-rhkMLA#FCCHARSETSUBTRACT 63. file:///tmp/html-rhkMLA#FCCHARSETMERGE 64. file:///tmp/html-rhkMLA#FCCHARSETHASCHAR 65. file:///tmp/html-rhkMLA#FCCHARSETCOUNT 66. file:///tmp/html-rhkMLA#FCCHARSETINTERSECTCOUNT 67. file:///tmp/html-rhkMLA#FCCHARSETSUBTRACTCOUNT 68. file:///tmp/html-rhkMLA#FCCHARSETISSUBSET 69. file:///tmp/html-rhkMLA#FCCHARSETFIRSTPAGE 70. file:///tmp/html-rhkMLA#FCCHARSETNEXTPAGE 71. file:///tmp/html-rhkMLA#FCCHARSETCOVERAGE 72. file:///tmp/html-rhkMLA#FCCHARSETNEW 73. file:///tmp/html-rhkMLA#FCLANGSETCREATE 74. file:///tmp/html-rhkMLA#FCLANGSETDESTROY 75. file:///tmp/html-rhkMLA#FCLANGSETCOPY 76. file:///tmp/html-rhkMLA#FCLANGSETADD 77. file:///tmp/html-rhkMLA#FCLANGSETDEL 78. file:///tmp/html-rhkMLA#FCLANGSETUNION 79. file:///tmp/html-rhkMLA#FCLANGSETSUBTRACT 80. file:///tmp/html-rhkMLA#FCLANGSETCOMPARE 81. file:///tmp/html-rhkMLA#FCLANGSETCONTAINS 82. file:///tmp/html-rhkMLA#FCLANGSETEQUAL 83. file:///tmp/html-rhkMLA#FCLANGSETHASH 84. file:///tmp/html-rhkMLA#FCLANGSETHASLANG 85. file:///tmp/html-rhkMLA#FCGETDEFAULTLANGS 86. file:///tmp/html-rhkMLA#FCLANGSETGETLANGS 87. file:///tmp/html-rhkMLA#FCGETLANGS 88. file:///tmp/html-rhkMLA#FCLANGNORMALIZE 89. file:///tmp/html-rhkMLA#FCLANGGETCHARSET 90. file:///tmp/html-rhkMLA#FCMATRIXINIT 91. file:///tmp/html-rhkMLA#FCMATRIXCOPY 92. file:///tmp/html-rhkMLA#FCMATRIXEQUAL 93. file:///tmp/html-rhkMLA#FCMATRIXMULTIPLY 94. file:///tmp/html-rhkMLA#FCMATRIXROTATE 95. file:///tmp/html-rhkMLA#FCMATRIXSCALE 96. file:///tmp/html-rhkMLA#FCMATRIXSHEAR 97. file:///tmp/html-rhkMLA#FCCONFIGCREATE 98. file:///tmp/html-rhkMLA#FCCONFIGREFERENCE 99. file:///tmp/html-rhkMLA#FCCONFIGDESTROY 100. file:///tmp/html-rhkMLA#FCCONFIGSETCURRENT 101. file:///tmp/html-rhkMLA#FCCONFIGGETCURRENT 102. file:///tmp/html-rhkMLA#FCCONFIGUPTODATE 103. file:///tmp/html-rhkMLA#FCCONFIGHOME 104. file:///tmp/html-rhkMLA#FCCONFIGENABLEHOME 105. file:///tmp/html-rhkMLA#FCCONFIGBUILDFONTS 106. file:///tmp/html-rhkMLA#FCCONFIGGETCONFIGDIRS 107. file:///tmp/html-rhkMLA#FCCONFIGGETFONTDIRS 108. file:///tmp/html-rhkMLA#FCCONFIGGETCONFIGFILES 109. file:///tmp/html-rhkMLA#FCCONFIGGETCACHE 110. file:///tmp/html-rhkMLA#FCCONFIGGETCACHEDIRS 111. file:///tmp/html-rhkMLA#FCCONFIGGETFONTS 112. file:///tmp/html-rhkMLA#FCCONFIGGETBLANKS 113. file:///tmp/html-rhkMLA#FCCONFIGGETRESCANINTERVAL 114. file:///tmp/html-rhkMLA#FCCONFIGSETRESCANINTERVAL 115. file:///tmp/html-rhkMLA#FCCONFIGAPPFONTADDFILE 116. file:///tmp/html-rhkMLA#FCCONFIGAPPFONTADDDIR 117. file:///tmp/html-rhkMLA#FCCONFIGAPPFONTCLEAR 118. file:///tmp/html-rhkMLA#FCCONFIGSUBSTITUTEWITHPAT 119. file:///tmp/html-rhkMLA#FCCONFIGSUBSTITUTE 120. file:///tmp/html-rhkMLA#FCFONTMATCH 121. file:///tmp/html-rhkMLA#FCFONTSORT 122. file:///tmp/html-rhkMLA#FCFONTRENDERPREPARE 123. file:///tmp/html-rhkMLA#FCFONTLIST 124. file:///tmp/html-rhkMLA#FCCONFIGFILENAME 125. file:///tmp/html-rhkMLA#FCCONFIGPARSEANDLOAD 126. file:///tmp/html-rhkMLA#FCCONFIGGETSYSROOT 127. file:///tmp/html-rhkMLA#FCCONFIGSETSYSROOT 128. file:///tmp/html-rhkMLA#FCNAMEREGISTEROBJECTTYPES 129. file:///tmp/html-rhkMLA#FCNAMEUNREGISTEROBJECTTYPES 130. file:///tmp/html-rhkMLA#FCNAMEGETOBJECTTYPE 131. file:///tmp/html-rhkMLA#FCNAMEREGISTERCONSTANTS 132. file:///tmp/html-rhkMLA#FCNAMEUNREGISTERCONSTANTS 133. file:///tmp/html-rhkMLA#FCNAMEGETCONSTANT 134. file:///tmp/html-rhkMLA#FCNAMECONSTANT 135. file:///tmp/html-rhkMLA#FCBLANKSCREATE 136. file:///tmp/html-rhkMLA#FCBLANKSDESTROY 137. file:///tmp/html-rhkMLA#FCBLANKSADD 138. file:///tmp/html-rhkMLA#FCBLANKSISMEMBER 139. file:///tmp/html-rhkMLA#FCATOMICCREATE 140. file:///tmp/html-rhkMLA#FCATOMICLOCK 141. file:///tmp/html-rhkMLA#FCATOMICNEWFILE 142. file:///tmp/html-rhkMLA#FCATOMICORIGFILE 143. file:///tmp/html-rhkMLA#FCATOMICREPLACEORIG 144. file:///tmp/html-rhkMLA#FCATOMICDELETENEW 145. file:///tmp/html-rhkMLA#FCATOMICUNLOCK 146. file:///tmp/html-rhkMLA#FCATOMICDESTROY 147. file:///tmp/html-rhkMLA#FCFILESCAN 148. file:///tmp/html-rhkMLA#FCFILEISDIR 149. file:///tmp/html-rhkMLA#FCDIRSCAN 150. file:///tmp/html-rhkMLA#FCDIRSAVE 151. file:///tmp/html-rhkMLA#FCDIRCACHEUNLINK 152. file:///tmp/html-rhkMLA#FCDIRCACHEVALID 153. file:///tmp/html-rhkMLA#FCDIRCACHELOAD 154. file:///tmp/html-rhkMLA#FCDIRCACHERESCAN 155. file:///tmp/html-rhkMLA#FCDIRCACHEREAD 156. file:///tmp/html-rhkMLA#FCDIRCACHELOADFILE 157. file:///tmp/html-rhkMLA#FCDIRCACHEUNLOAD 158. file:///tmp/html-rhkMLA#FCCACHEDIR 159. file:///tmp/html-rhkMLA#FCCACHECOPYSET 160. file:///tmp/html-rhkMLA#FCCACHESUBDIR 161. file:///tmp/html-rhkMLA#FCCACHENUMSUBDIR 162. file:///tmp/html-rhkMLA#FCCACHENUMFONT 163. file:///tmp/html-rhkMLA#FCDIRCACHECLEAN 164. file:///tmp/html-rhkMLA#FCCACHECREATETAGFILE 165. file:///tmp/html-rhkMLA#FCSTRSETCREATE 166. file:///tmp/html-rhkMLA#FCSTRSETMEMBER 167. file:///tmp/html-rhkMLA#FCSTRSETEQUAL 168. file:///tmp/html-rhkMLA#FCSTRSETADD 169. file:///tmp/html-rhkMLA#FCSTRSETADDFILENAME 170. file:///tmp/html-rhkMLA#FCSTRSETDEL 171. file:///tmp/html-rhkMLA#FCSTRSETDESTROY 172. file:///tmp/html-rhkMLA#FCSTRLISTCREATE 173. file:///tmp/html-rhkMLA#FCSTRLISTFIRST 174. file:///tmp/html-rhkMLA#FCSTRLISTNEXT 175. file:///tmp/html-rhkMLA#FCSTRLISTDONE 176. file:///tmp/html-rhkMLA#FCUTF8TOUCS4 177. file:///tmp/html-rhkMLA#FCUCS4TOUTF8 178. file:///tmp/html-rhkMLA#FCUTF8LEN 179. file:///tmp/html-rhkMLA#FCUTF16TOUCS4 180. file:///tmp/html-rhkMLA#FCUTF16LEN 181. file:///tmp/html-rhkMLA#FCISLOWER 182. file:///tmp/html-rhkMLA#FCISUPPER 183. file:///tmp/html-rhkMLA#FCTOLOWER 184. file:///tmp/html-rhkMLA#FCSTRCOPY 185. file:///tmp/html-rhkMLA#FCSTRDOWNCASE 186. file:///tmp/html-rhkMLA#FCSTRCOPYFILENAME 187. file:///tmp/html-rhkMLA#FCSTRCMP 188. file:///tmp/html-rhkMLA#FCSTRCMPIGNORECASE 189. file:///tmp/html-rhkMLA#FCSTRSTR 190. file:///tmp/html-rhkMLA#FCSTRSTRIGNORECASE 191. file:///tmp/html-rhkMLA#FCSTRPLUS 192. file:///tmp/html-rhkMLA#FCSTRFREE 193. file:///tmp/html-rhkMLA#FCSTRDIRNAME 194. file:///tmp/html-rhkMLA#FCSTRBASENAME fontconfig-2.11.1/doc/FcValueEqual.30000664000076400007640000000077212313745357014051 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcValueEqual" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcValueEqual \- Test two values for equality .SH SYNOPSIS .nf \fB#include .sp FcBool FcValueEqual (FcValue \fIv_a\fB, FcValue \fIv_b\fB); .fi\fR .SH "DESCRIPTION" .PP Compares two values. Integers and Doubles are compared as numbers; otherwise the two values have to be the same type to be considered equal. Strings are compared ignoring case. fontconfig-2.11.1/doc/fcconstant.fncs0000664000076400007640000000422112267155333014453 00000000000000/* * fontconfig/doc/fcconstant.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@ FcBool @FUNC@ FcNameRegisterConstants @TYPE1@ const FcConstant * @ARG1@ consts @TYPE2@ int% @ARG2@ nconsts @PURPOSE@ Register symbolic constants @DESC@ Deprecated. Does nothing. Returns FcFalse. @@ @RET@ FcBool @FUNC@ FcNameUnregisterConstants @TYPE1@ const FcConstant * @ARG1@ consts @TYPE2@ int% @ARG2@ nconsts @PURPOSE@ Unregister symbolic constants @DESC@ Deprecated. Does nothing. Returns FcFalse. @@ @RET@ const FcConstant * @FUNC@ FcNameGetConstant @TYPE1@ FcChar8 * @ARG1@ string @PURPOSE@ Lookup symbolic constant @DESC@ Return the FcConstant structure related to symbolic constant string. @@ @RET@ FcBool @FUNC@ FcNameConstant @TYPE1@ FcChar8 * @ARG1@ string @TYPE2@ int * @ARG2@ result @PURPOSE@ Get the value for a symbolic constant @DESC@ Returns whether a symbolic constant with name string is registered, placing the value of the constant in result if present. @@ fontconfig-2.11.1/doc/FcLangSetHash.30000664000076400007640000000107712313745357014145 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcLangSetHash" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcLangSetHash \- return a hash value for a langset .SH SYNOPSIS .nf \fB#include .sp FcChar32 FcLangSetHash (const FcLangSet *\fIls\fB); .fi\fR .SH "DESCRIPTION" .PP This function returns a value which depends solely on the languages supported by \fIls\fR\&. Any language which equals \fIls\fR will have the same result from \fBFcLangSetHash\fR\&. However, two langsets with the same hash value may not be equal. fontconfig-2.11.1/doc/FcLangSetHasLang.30000664000076400007640000000135512313745357014576 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcLangSetHasLang" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcLangSetHasLang \- test langset for language support .SH SYNOPSIS .nf \fB#include .sp FcLangResult FcLangSetHasLang (const FcLangSet *\fIls\fB, const FcChar8 *\fIlang\fB); .fi\fR .SH "DESCRIPTION" .PP \fBFcLangSetHasLang\fR checks whether \fIls\fR supports \fIlang\fR\&. If \fIls\fR has a matching language and territory pair, this function returns FcLangEqual. If \fIls\fR has a matching language but differs in which territory that language is for, this function returns FcLangDifferentTerritory. If \fIls\fR has no matching language, this function returns FcLangDifferentLang. fontconfig-2.11.1/doc/FcFreeTypeQuery.30000664000076400007640000000102212313745357014543 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcFreeTypeQuery" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcFreeTypeQuery \- compute pattern from font file (and index) .SH SYNOPSIS .nf \fB#include #include .sp FcPattern * FcFreeTypeQuery (const FcChar8 *\fIfile\fB, int \fIid\fB, FcBlanks *\fIblanks\fB, int *\fIcount\fB); .fi\fR .SH "DESCRIPTION" .PP Constructs a pattern representing the 'id'th font in 'file'. The number of fonts in 'file' is returned in 'count'. fontconfig-2.11.1/doc/FcFontMatch.30000664000076400007640000000134012313745357013660 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcFontMatch" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcFontMatch \- Return best font .SH SYNOPSIS .nf \fB#include .sp FcPattern * FcFontMatch (FcConfig *\fIconfig\fB, FcPattern *\fIp\fB, FcResult *\fIresult\fB); .fi\fR .SH "DESCRIPTION" .PP Finds the font in \fIsets\fR most closely matching \fIpattern\fR and returns the result of \fBFcFontRenderPrepare\fR for that font and the provided pattern. This function should be called only after \fBFcConfigSubstitute\fR and \fBFcDefaultSubstitute\fR have been called for \fIp\fR; otherwise the results will not be correct. If \fIconfig\fR is NULL, the current configuration is used. fontconfig-2.11.1/doc/FcNameGetConstant.30000664000076400007640000000063612313745357015036 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcNameGetConstant" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcNameGetConstant \- Lookup symbolic constant .SH SYNOPSIS .nf \fB#include .sp const FcConstant * FcNameGetConstant (FcChar8 *\fIstring\fB); .fi\fR .SH "DESCRIPTION" .PP Return the FcConstant structure related to symbolic constant \fIstring\fR\&. fontconfig-2.11.1/doc/FcFontSetDestroy.30000664000076400007640000000060512313745357014734 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FcFontSetDestroy" "3" "24 3月 2014" "Fontconfig 2.11.1" "" .SH NAME FcFontSetDestroy \- Destroy a font set .SH SYNOPSIS .nf \fB#include .sp void FcFontSetDestroy (FcFontSet *\fIs\fB); .fi\fR .SH "DESCRIPTION" .PP Destroys a font set. Note that this destroys any referenced patterns as well. fontconfig-2.11.1/config.h.in0000664000076400007640000002350212313745345012717 00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* Define if building universal (internal helper macro) */ #undef AC_APPLE_UNIVERSAL_BUILD /* The normal alignment of `double', in bytes. */ #undef ALIGNOF_DOUBLE /* Use libxml2 instead of Expat */ #undef ENABLE_LIBXML2 /* Additional font directories */ #undef FC_ADD_FONTS /* Architecture prefix to use for cache file names */ #undef FC_ARCHITECTURE /* System font directory */ #undef FC_DEFAULT_FONTS /* Define to nothing if C supports flexible array members, and to 1 if it does not. That way, with a declaration like `struct s { int n; double d[FLEXIBLE_ARRAY_MEMBER]; };', the struct hack can be used with pre-C99 compilers. When computing the size of such an object, don't use 'sizeof (struct s)' as it overestimates the size. Use 'offsetof (struct s, d)' instead. Don't use 'offsetof (struct s, d[0])', as this doesn't work with MSVC and with C++ compilers. */ #undef FLEXIBLE_ARRAY_MEMBER /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_DIRENT_H /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ #undef HAVE_DOPRNT /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H /* Define to 1 if you have the `fstatfs' function. */ #undef HAVE_FSTATFS /* Define to 1 if you have the `fstatvfs' function. */ #undef HAVE_FSTATVFS /* FT_Bitmap_Size structure includes y_ppem field */ #undef HAVE_FT_BITMAP_SIZE_Y_PPEM /* Define to 1 if you have the `FT_Get_BDF_Property' function. */ #undef HAVE_FT_GET_BDF_PROPERTY /* Define to 1 if you have the `FT_Get_Next_Char' function. */ #undef HAVE_FT_GET_NEXT_CHAR /* Define to 1 if you have the `FT_Get_PS_Font_Info' function. */ #undef HAVE_FT_GET_PS_FONT_INFO /* Define to 1 if you have the `FT_Get_X11_Font_Format' function. */ #undef HAVE_FT_GET_X11_FONT_FORMAT /* Define to 1 if you have the `FT_Has_PS_Glyph_Names' function. */ #undef HAVE_FT_HAS_PS_GLYPH_NAMES /* Define to 1 if you have the `FT_Select_Size' function. */ #undef HAVE_FT_SELECT_SIZE /* Define to 1 if you have the `getexecname' function. */ #undef HAVE_GETEXECNAME /* Define to 1 if you have the `getopt' function. */ #undef HAVE_GETOPT /* Define to 1 if you have the `getopt_long' function. */ #undef HAVE_GETOPT_LONG /* Define to 1 if you have the `getpagesize' function. */ #undef HAVE_GETPAGESIZE /* Define to 1 if you have the `getprogname' function. */ #undef HAVE_GETPROGNAME /* Have Intel __sync_* atomic primitives */ #undef HAVE_INTEL_ATOMIC_PRIMITIVES /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `link' function. */ #undef HAVE_LINK /* Define to 1 if you have the `lrand48' function. */ #undef HAVE_LRAND48 /* Define to 1 if you have the `lstat' function. */ #undef HAVE_LSTAT /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `mkdtemp' function. */ #undef HAVE_MKDTEMP /* Define to 1 if you have the `mkostemp' function. */ #undef HAVE_MKOSTEMP /* Define to 1 if you have the `mkstemp' function. */ #undef HAVE_MKSTEMP /* Define to 1 if you have a working `mmap' system call. */ #undef HAVE_MMAP /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_NDIR_H /* Define to 1 if you have the 'posix_fadivse' function. */ #undef HAVE_POSIX_FADVISE /* Have POSIX threads */ #undef HAVE_PTHREAD /* Have PTHREAD_PRIO_INHERIT. */ #undef HAVE_PTHREAD_PRIO_INHERIT /* Define to 1 if you have the `rand' function. */ #undef HAVE_RAND /* Define to 1 if you have the `random' function. */ #undef HAVE_RANDOM /* Define to 1 if you have the `random_r' function. */ #undef HAVE_RANDOM_R /* Define to 1 if you have the `rand_r' function. */ #undef HAVE_RAND_R /* Define to 1 if you have the `readlink' function. */ #undef HAVE_READLINK /* Define to 1 if you have the `regcomp' function. */ #undef HAVE_REGCOMP /* Define to 1 if you have the `regerror' function. */ #undef HAVE_REGERROR /* Define to 1 if you have the `regexec' function. */ #undef HAVE_REGEXEC /* Define to 1 if you have the header file. */ #undef HAVE_REGEX_H /* Define to 1 if you have the `regfree' function. */ #undef HAVE_REGFREE /* Define to 1 if you have the 'scandir' function. */ #undef HAVE_SCANDIR /* Define to 1 if you have the 'scandir' function with int (* compar)(const void *, const void *) */ #undef HAVE_SCANDIR_VOID_P /* Define to 1 if you have the header file. */ #undef HAVE_SCHED_H /* Have sched_yield */ #undef HAVE_SCHED_YIELD /* Have Solaris __machine_*_barrier and atomic_* operations */ #undef HAVE_SOLARIS_ATOMIC_OPS /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if `d_type' is a member of `struct dirent'. */ #undef HAVE_STRUCT_DIRENT_D_TYPE /* Define to 1 if `f_flags' is a member of `struct statfs'. */ #undef HAVE_STRUCT_STATFS_F_FLAGS /* Define to 1 if `f_fstypename' is a member of `struct statfs'. */ #undef HAVE_STRUCT_STATFS_F_FSTYPENAME /* Define to 1 if `f_basetype' is a member of `struct statvfs'. */ #undef HAVE_STRUCT_STATVFS_F_BASETYPE /* Define to 1 if `f_fstypename' is a member of `struct statvfs'. */ #undef HAVE_STRUCT_STATVFS_F_FSTYPENAME /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_SYS_DIR_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_MOUNT_H /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_SYS_NDIR_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PARAM_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STATFS_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STATVFS_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_VFS_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the `vprintf' function. */ #undef HAVE_VPRINTF /* Can use #warning in C files */ #undef HAVE_WARNING_CPP_DIRECTIVE /* Use xmlparse.h instead of expat.h */ #undef HAVE_XMLPARSE_H /* Define to 1 if you have the `XML_SetDoctypeDeclHandler' function. */ #undef HAVE_XML_SETDOCTYPEDECLHANDLER /* Define to 1 if you have the `_mktemp_s' function. */ #undef HAVE__MKTEMP_S /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to necessary symbol if this constant uses a non-standard name on your system. */ #undef PTHREAD_CREATE_JOINABLE /* The size of `char', as computed by sizeof. */ #undef SIZEOF_CHAR /* The size of `int', as computed by sizeof. */ #undef SIZEOF_INT /* The size of `long', as computed by sizeof. */ #undef SIZEOF_LONG /* The size of `short', as computed by sizeof. */ #undef SIZEOF_SHORT /* The size of `void*', as computed by sizeof. */ #undef SIZEOF_VOIDP /* The size of `void *', as computed by sizeof. */ #undef SIZEOF_VOID_P /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Use iconv. */ #undef USE_ICONV /* Use regex */ #undef USE_REGEX /* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif /* Enable threading extensions on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif /* Version number of package */ #undef VERSION /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel). */ #if defined AC_APPLE_UNIVERSAL_BUILD # if defined __BIG_ENDIAN__ # define WORDS_BIGENDIAN 1 # endif #else # ifndef WORDS_BIGENDIAN # undef WORDS_BIGENDIAN # endif #endif /* Enable large inode numbers on Mac OS X 10.5. */ #ifndef _DARWIN_USE_64_BIT_INODE # define _DARWIN_USE_64_BIT_INODE 1 #endif /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS /* Define for large files, on AIX-style hosts. */ #undef _LARGE_FILES /* Define to 1 if on MINIX. */ #undef _MINIX /* Define to 2 if the system does not provide POSIX.1 features except with this defined. */ #undef _POSIX_1_SOURCE /* Define to 1 if you need to in order for `stat' and other things to work. */ #undef _POSIX_SOURCE /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif /* Define to `int' if does not define. */ #undef pid_t #include "config-fixups.h" fontconfig-2.11.1/fc-list/0000775000076400007640000000000012313745412012306 500000000000000fontconfig-2.11.1/fc-list/Makefile.am0000664000076400007640000000330212267155334014266 00000000000000# # fontconfig/fc-list/Makefile.am # # 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. DOC2MAN = docbook2man FC_LIST_SRC=${top_srcdir}/fc-list SGML = ${FC_LIST_SRC}/fc-list.sgml bin_PROGRAMS=fc-list AM_CPPFLAGS=-I${top_srcdir} $(WARN_CFLAGS) BUILT_MANS=fc-list.1 if ENABLE_DOCS man_MANS=${BUILT_MANS} endif EXTRA_DIST=fc-list.sgml $(BUILT_MANS) CLEANFILES = fc_list_LDADD = ${top_builddir}/src/libfontconfig.la if USEDOCBOOK ${man_MANS}: ${SGML} $(AM_V_GEN) $(RM) $@; \ $(DOC2MAN) ${SGML}; \ $(RM) manpage.* all-local: $(man_MANS) CLEANFILES += ${man_MANS} else all-local: endif -include $(top_srcdir)/git.mk fontconfig-2.11.1/fc-list/fc-list.sgml0000664000076400007640000001543012267155334014464 00000000000000 manpage.1'. You may view the manual page with: `docbook-to-man manpage.sgml | nroff -man | less'. A typical entry in a Makefile or Makefile.am is: manpage.1: manpage.sgml docbook-to-man $< > $@ The docbook-to-man binary is found in the docbook-to-man package. Please remember that if you create the nroff version in one of the debian/rules file targets (such as build), you will need to include docbook-to-man in your Build-Depends control field. --> Josselin"> Mouette"> Aug 13, 2008"> 1"> joss@debian.org"> fc-list"> Debian"> GNU"> GPL"> ]>

&dhemail;
&dhfirstname; &dhsurname; 2003 &dhusername; &dhdate; &dhucpackage; &dhsection; &dhpackage; list available fonts &dhpackage; DESCRIPTION &dhpackage; lists fonts and styles available on the system for applications using fontconfig. If any elements are specified, only those are printed. Otherwise family and style are printed, unless verbose output is requested. OPTIONS This program follows the usual &gnu; command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. Print verbose output of the whole font pattern for each match, or elements if any is provided. Format output according to the format specifier format. Suppress all normal output. returns 1 as the error code if no fonts matched. Show version of the program and exit. Show summary of options. If this argument is set, only fonts matching pattern are displayed. If set, the element property is displayed for matching fonts. EXAMPLES fc-list Lists all font faces. fc-list :lang=hi Lists font faces that cover Hindi. fc-list : family style file spacing Lists the filename and spacing value for each font face. : is an empty pattern that matches all fonts. SEE ALSO fc-match(1) FcFontList(3) FcPatternFormat(3) fc-cat(1) fc-cache(1) fc-pattern(1) fc-query(1) fc-scan(1) The fontconfig user's guide, in HTML format: /usr/share/doc/fontconfig/fontconfig-user.html. AUTHOR This manual page was written by Keith Packard keithp@keithp.com and &dhusername; &dhemail;. fontconfig-2.11.1/fc-list/fc-list.10000664000076400007640000000377712306310017013656 00000000000000.\" auto-generated by docbook2man-spec from docbook-utils package .TH "FC-LIST" "1" "Aug 13, 2008" "" "" .SH NAME fc-list \- list available fonts .SH SYNOPSIS .sp \fBfc-list\fR [ \fB-vVh\fR ] [ \fB--verbose\fR ] [ \fB [ -f \fIformat\fB ] [ --format \fIformat\fB ] \fR ] [ \fB [ -q ] [ --quiet ] \fR ] [ \fB--version\fR ] [ \fB--help\fR ] [ \fB\fIpattern\fB [ \fIelement\fB\fI...\fB ] \fR ] .SH "DESCRIPTION" .PP \fBfc-list\fR lists fonts and styles available on the system for applications using fontconfig. If any elements are specified, only those are printed. Otherwise family and style are printed, unless verbose output is requested. .SH "OPTIONS" .PP This program follows the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. .TP \fB-v\fR Print verbose output of the whole font pattern for each match, or \fIelement\fRs if any is provided. .TP \fB-f\fR Format output according to the format specifier \fIformat\fR\&. .TP \fB-q\fR Suppress all normal output. returns 1 as the error code if no fonts matched. .TP \fB-V\fR Show version of the program and exit. .TP \fB-h\fR Show summary of options. .TP \fB\fIpattern\fB\fR If this argument is set, only fonts matching \fIpattern\fR are displayed. .TP \fB\fIelement\fB\fR If set, the \fIelement\fR property is displayed for matching fonts. .SH "EXAMPLES" .TP \fBfc-list\fR Lists all font faces. .TP \fBfc-list :lang=hi\fR Lists font faces that cover Hindi. .TP \fBfc-list : family style file spacing\fR Lists the filename and spacing value for each font face. ``:'' is an empty pattern that matches all fonts. .SH "SEE ALSO" .PP \fBfc-match\fR(1) \fBFcFontList\fR(3) \fBFcPatternFormat\fR(3) \fBfc-cat\fR(1) \fBfc-cache\fR(1) \fBfc-pattern\fR(1) \fBfc-query\fR(1) \fBfc-scan\fR(1) .PP The fontconfig user's guide, in HTML format: \fI/usr/share/doc/fontconfig/fontconfig-user.html\fR\&. .SH "AUTHOR" .PP This manual page was written by Keith Packard and Josselin Mouette \&. fontconfig-2.11.1/fc-list/Makefile.in0000664000076400007640000006125612313745337014313 00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # fontconfig/fc-list/Makefile.am # # Copyright © 2003 Keith Packard # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The authors make no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = fc-list$(EXEEXT) @USEDOCBOOK_TRUE@am__append_1 = ${man_MANS} subdir = fc-list DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" PROGRAMS = $(bin_PROGRAMS) fc_list_SOURCES = fc-list.c fc_list_OBJECTS = fc-list.$(OBJEXT) fc_list_DEPENDENCIES = ${top_builddir}/src/libfontconfig.la AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = fc-list.c DIST_SOURCES = fc-list.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 NROFF = nroff MANS = $(man_MANS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASECONFIGDIR = @BASECONFIGDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CONFIGDIR = @CONFIGDIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DOCMAN3 = @DOCMAN3@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@ EXPAT_CFLAGS = @EXPAT_CFLAGS@ EXPAT_LIBS = @EXPAT_LIBS@ FC_ADD_FONTS = @FC_ADD_FONTS@ FC_CACHEDIR = @FC_CACHEDIR@ FC_DEFAULT_FONTS = @FC_DEFAULT_FONTS@ FC_FONTDATE = @FC_FONTDATE@ FC_FONTPATH = @FC_FONTPATH@ FGREP = @FGREP@ FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ FREETYPE_LIBS = @FREETYPE_LIBS@ GIT = @GIT@ GPERF = @GPERF@ GREP = @GREP@ HASDOCBOOK = @HASDOCBOOK@ HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@ ICONV_CFLAGS = @ICONV_CFLAGS@ ICONV_LIBS = @ICONV_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBT_CURRENT = @LIBT_CURRENT@ LIBT_CURRENT_MINUS_AGE = @LIBT_CURRENT_MINUS_AGE@ LIBT_REVISION = @LIBT_REVISION@ LIBT_VERSION_INFO = @LIBT_VERSION_INFO@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ RM = @RM@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TEMPLATEDIR = @TEMPLATEDIR@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XMLDIR = @XMLDIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ ax_pthread_config = @ax_pthread_config@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fc_cachedir = @fc_cachedir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ ms_librarian = @ms_librarian@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfigdir = @pkgconfigdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ DOC2MAN = docbook2man FC_LIST_SRC = ${top_srcdir}/fc-list SGML = ${FC_LIST_SRC}/fc-list.sgml AM_CPPFLAGS = -I${top_srcdir} $(WARN_CFLAGS) BUILT_MANS = fc-list.1 @ENABLE_DOCS_TRUE@man_MANS = ${BUILT_MANS} EXTRA_DIST = fc-list.sgml $(BUILT_MANS) CLEANFILES = $(am__append_1) fc_list_LDADD = ${top_builddir}/src/libfontconfig.la all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fc-list/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fc-list/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ || test -f $$p1 \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list fc-list$(EXEEXT): $(fc_list_OBJECTS) $(fc_list_DEPENDENCIES) $(EXTRA_fc_list_DEPENDENCIES) @rm -f fc-list$(EXEEXT) $(AM_V_CCLD)$(LINK) $(fc_list_OBJECTS) $(fc_list_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fc-list.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man1: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) $(MANS) all-local installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-man uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-man1 \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-man uninstall-man1 @USEDOCBOOK_TRUE@${man_MANS}: ${SGML} @USEDOCBOOK_TRUE@ $(AM_V_GEN) $(RM) $@; \ @USEDOCBOOK_TRUE@ $(DOC2MAN) ${SGML}; \ @USEDOCBOOK_TRUE@ $(RM) manpage.* @USEDOCBOOK_TRUE@all-local: $(man_MANS) @USEDOCBOOK_FALSE@all-local: -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fontconfig-2.11.1/fc-list/fc-list.c0000664000076400007640000001204612267155334013744 00000000000000/* * fontconfig/fc-list/fc-list.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 #include #include #include #include #ifdef HAVE_CONFIG_H #include #else #ifdef linux #define HAVE_GETOPT_LONG 1 #endif #define HAVE_GETOPT 1 #endif #ifndef HAVE_GETOPT #define HAVE_GETOPT 0 #endif #ifndef HAVE_GETOPT_LONG #define HAVE_GETOPT_LONG 0 #endif #if HAVE_GETOPT_LONG #undef _GNU_SOURCE #define _GNU_SOURCE #include const struct option longopts[] = { {"verbose", 0, 0, 'v'}, {"format", 1, 0, 'f'}, {"quiet", 0, 0, 'q'}, {"version", 0, 0, 'V'}, {"help", 0, 0, 'h'}, {NULL,0,0,0}, }; #else #if HAVE_GETOPT extern char *optarg; extern int optind, opterr, optopt; #endif #endif static void usage (char *program, int error) { FILE *file = error ? stderr : stdout; #if HAVE_GETOPT_LONG fprintf (file, "usage: %s [-vqVh] [-f FORMAT] [--verbose] [--format=FORMAT] [--quiet] [--version] [--help] [pattern] {element ...} \n", program); #else fprintf (file, "usage: %s [-vqVh] [-f FORMAT] [pattern] {element ...} \n", program); #endif fprintf (file, "List fonts matching [pattern]\n"); fprintf (file, "\n"); #if HAVE_GETOPT_LONG fprintf (file, " -v, --verbose display entire font pattern verbosely\n"); fprintf (file, " -f, --format=FORMAT use the given output format\n"); fprintf (file, " -q, --quiet suppress all normal output, exit 1 if no fonts matched\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, " -v (verbose) display entire font pattern verbosely\n"); fprintf (file, " -f FORMAT (format) use the given output format\n"); fprintf (file, " -q, (quiet) suppress all normal output, exit 1 if no fonts matched\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); } int main (int argc, char **argv) { int verbose = 0; int quiet = 0; const FcChar8 *format = NULL; int nfont = 0; int i; FcObjectSet *os = 0; FcFontSet *fs; FcPattern *pat; #if HAVE_GETOPT_LONG || HAVE_GETOPT int c; #if HAVE_GETOPT_LONG while ((c = getopt_long (argc, argv, "vf:qVh", longopts, NULL)) != -1) #else while ((c = getopt (argc, argv, "vf:qVh")) != -1) #endif { switch (c) { case 'v': verbose = 1; break; case 'f': format = (FcChar8 *) strdup (optarg); break; case 'q': quiet = 1; break; case 'V': fprintf (stderr, "fontconfig version %d.%d.%d\n", FC_MAJOR, FC_MINOR, FC_REVISION); exit (0); case 'h': usage (argv[0], 0); default: usage (argv[0], 1); } } i = optind; #else i = 1; #endif if (argv[i]) { pat = FcNameParse ((FcChar8 *) argv[i]); if (!pat) { fputs ("Unable to parse the pattern\n", stderr); return 1; } while (argv[++i]) { if (!os) os = FcObjectSetCreate (); FcObjectSetAdd (os, argv[i]); } } else pat = FcPatternCreate (); if (quiet && !os) os = FcObjectSetCreate (); if (!verbose && !format && !os) os = FcObjectSetBuild (FC_FAMILY, FC_STYLE, FC_FILE, (char *) 0); if (!format) format = (const FcChar8 *) "%{=fclist}\n"; fs = FcFontList (0, pat, os); if (os) FcObjectSetDestroy (os); if (pat) FcPatternDestroy (pat); if (!quiet && fs) { int j; for (j = 0; j < fs->nfont; j++) { if (verbose) { FcPatternPrint (fs->fonts[j]); } else { FcChar8 *s; s = FcPatternFormat (fs->fonts[j], format); if (s) { printf ("%s", s); FcStrFree (s); } } } } if (fs) { nfont = fs->nfont; FcFontSetDestroy (fs); } FcFini (); return quiet ? (nfont == 0 ? 1 : 0) : 0; } fontconfig-2.11.1/Makefile.in0000664000076400007640000010502312313745337012741 00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # fontconfig/Makefile.am # # Copyright © 2003 Keith Packard # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The authors make no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @ENABLE_DOCS_TRUE@am__append_1 = doc subdir = . DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \ $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/configure $(am__configure_deps) \ $(srcdir)/config.h.in $(srcdir)/fontconfig.spec.in \ $(srcdir)/fontconfig.pc.in $(srcdir)/fontconfig-zip.in COPYING \ compile config.guess config.sub depcomp install-sh missing \ ltmain.sh ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = fontconfig.spec fontconfig.pc fontconfig-zip CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(xmldir)" DATA = $(pkgconfig_DATA) $(xml_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ cscope distdir dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ $(LISP)config.h.in # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags CSCOPE = cscope DIST_SUBDIRS = fontconfig fc-case fc-lang fc-glyphname src fc-cache \ fc-cat fc-list fc-match fc-pattern fc-query fc-scan \ fc-validate conf.d test doc DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 GZIP_ENV = --best DIST_TARGETS = dist-bzip2 dist-gzip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASECONFIGDIR = @BASECONFIGDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CONFIGDIR = @CONFIGDIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DOCMAN3 = @DOCMAN3@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@ EXPAT_CFLAGS = @EXPAT_CFLAGS@ EXPAT_LIBS = @EXPAT_LIBS@ FC_ADD_FONTS = @FC_ADD_FONTS@ FC_CACHEDIR = @FC_CACHEDIR@ FC_DEFAULT_FONTS = @FC_DEFAULT_FONTS@ FC_FONTDATE = @FC_FONTDATE@ FC_FONTPATH = @FC_FONTPATH@ FGREP = @FGREP@ FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ FREETYPE_LIBS = @FREETYPE_LIBS@ GIT = @GIT@ GPERF = @GPERF@ GREP = @GREP@ HASDOCBOOK = @HASDOCBOOK@ HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@ ICONV_CFLAGS = @ICONV_CFLAGS@ ICONV_LIBS = @ICONV_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBT_CURRENT = @LIBT_CURRENT@ LIBT_CURRENT_MINUS_AGE = @LIBT_CURRENT_MINUS_AGE@ LIBT_REVISION = @LIBT_REVISION@ LIBT_VERSION_INFO = @LIBT_VERSION_INFO@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ RM = @RM@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TEMPLATEDIR = @TEMPLATEDIR@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XMLDIR = @XMLDIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ ax_pthread_config = @ax_pthread_config@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fc_cachedir = @fc_cachedir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ ms_librarian = @ms_librarian@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfigdir = @pkgconfigdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = fontconfig fc-case fc-lang fc-glyphname src fc-cache fc-cat \ fc-list fc-match fc-pattern fc-query fc-scan fc-validate \ conf.d test $(am__append_1) ACLOCAL_AMFLAGS = -I m4 EXTRA_DIST = fontconfig.pc.in fonts.conf.in fonts.dtd \ fontconfig.spec.in fontconfig.spec fontconfig-zip.in \ config-fixups.h ChangeLog CLEANFILES = fonts.conf DISTCLEANFILES = config.cache doltcompile # Creating ChangeLog from git log: MAINTAINERCLEANFILES = $(srcdir)/aclocal.m4 $(srcdir)/autoscan.log \ $(srcdir)/compile $(srcdir)/config.guess $(srcdir)/config.h.in \ $(srcdir)/config.sub $(srcdir)/configure.scan \ $(srcdir)/depcomp $(srcdir)/install-sh $(srcdir)/ltmain.sh \ $(srcdir)/missing $(srcdir)/mkinstalldirs \ $(srcdir)/test-driver `find "$(srcdir)" -type f -name \ Makefile.in -print` $(srcdir)/ChangeLog pkgconfig_DATA = fontconfig.pc baseconfigdir = $(BASECONFIGDIR) configdir = $(CONFIGDIR) xmldir = $(XMLDIR) xml_DATA = fonts.dtd @CROSS_COMPILING_FALSE@RUN_FC_CACHE_TEST = test -z "$(DESTDIR)" @CROSS_COMPILING_TRUE@RUN_FC_CACHE_TEST = false FC_CONFIGDIR = $(subst $(BASECONFIGDIR)/,,$(CONFIGDIR)) DISTCHECK_CONFIGURE_FLAGS = all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @if test ! -f $@; then rm -f stamp-h1; else :; fi @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 fontconfig.spec: $(top_builddir)/config.status $(srcdir)/fontconfig.spec.in cd $(top_builddir) && $(SHELL) ./config.status $@ fontconfig.pc: $(top_builddir)/config.status $(srcdir)/fontconfig.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ fontconfig-zip: $(top_builddir)/config.status $(srcdir)/fontconfig-zip.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ done uninstall-pkgconfigDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) install-xmlDATA: $(xml_DATA) @$(NORMAL_INSTALL) @list='$(xml_DATA)'; test -n "$(xmldir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(xmldir)'"; \ $(MKDIR_P) "$(DESTDIR)$(xmldir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(xmldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(xmldir)" || exit $$?; \ done uninstall-xmlDATA: @$(NORMAL_UNINSTALL) @list='$(xml_DATA)'; test -n "$(xmldir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(xmldir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) mkdir $(distdir)/_build $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(xmldir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-data-local install-pkgconfigDATA \ install-xmlDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-local uninstall-pkgconfigDATA \ uninstall-xmlDATA .MAKE: $(am__recursive_targets) all install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am clean clean-cscope clean-generic \ clean-libtool cscope cscopelist-am ctags ctags-am dist \ dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ dist-xz dist-zip distcheck distclean distclean-generic \ distclean-hdr distclean-libtool distclean-tags distcleancheck \ distdir distuninstallcheck dvi dvi-am html html-am info \ info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-pkgconfigDATA install-ps install-ps-am install-strip \ install-xmlDATA installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am uninstall-local \ uninstall-pkgconfigDATA uninstall-xmlDATA ChangeLog: $(srcdir)/ChangeLog $(srcdir)/ChangeLog: if test -d "$(srcdir)/.git"; then \ (GIT_DIR=$(top_srcdir)/.git $(GIT) log --stat) | fmt --split-only > $@.tmp \ && mv -f $@.tmp $@ \ || ($(RM) $@.tmp; \ echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \ (test -f $@ || echo git-log is required to generate this file >> $@)); \ else \ test -f $@ || \ (echo A git checkout and git-log is required to generate ChangeLog >&2 && \ echo A git checkout and git-log is required to generate this file >> $@); \ fi .PHONY: ChangeLog fonts.conf: fonts.conf.in Makefile sed \ -e 's,@FC_CACHEDIR\@,$(FC_CACHEDIR),g' \ -e 's,@FC_DEFAULT_FONTS\@,$(FC_DEFAULT_FONTS),g' \ -e 's,@FC_FONTPATH\@,$(FC_FONTPATH),g' \ -e 's,@CONFIGDIR\@,$(FC_CONFIGDIR),g' \ -e 's,@PACKAGE\@,$(PACKAGE),g' \ -e 's,@VERSION\@,$(VERSION),g' \ $(srcdir)/$@.in > $@.tmp && \ mv $@.tmp $@ install-data-local: fonts.conf $(mkinstalldirs) $(DESTDIR)$(baseconfigdir) $(DESTDIR)$(fc_cachedir) if [ -f $(DESTDIR)$(baseconfigdir)/fonts.conf ]; then \ echo "backing up existing $(DESTDIR)$(baseconfigdir)/fonts.conf"; \ mv $(DESTDIR)$(baseconfigdir)/fonts.conf $(DESTDIR)$(baseconfigdir)/fonts.conf.bak; \ fi if [ -f $(srcdir)/fonts.conf ]; then \ echo " $(INSTALL_DATA) $(srcdir)/fonts.conf $(DESTDIR)$(baseconfigdir)/fonts.conf"; \ $(INSTALL_DATA) $(srcdir)/fonts.conf $(DESTDIR)$(baseconfigdir)/fonts.conf; \ else if [ -f fonts.conf ]; then \ echo " $(INSTALL_DATA) fonts.conf $(DESTDIR)$(baseconfigdir)/fonts.conf"; \ $(INSTALL_DATA) fonts.conf $(DESTDIR)$(baseconfigdir)/fonts.conf; \ fi; fi @(if $(RUN_FC_CACHE_TEST); then \ echo "fc-cache$(EXEEXT) -s -f -v"; \ fc-cache/fc-cache$(EXEEXT) -s -f -v; \ else \ echo "***"; \ echo "*** Warning: fonts.cache not built"; \ echo "***"; \ echo "*** Generate this file manually on host system using fc-cache"; \ echo "***"; \ fi) uninstall-local: if [ -f $(srcdir)/fonts.conf ]; then \ if cmp -s $(srcdir)/fonts.conf $(DESTDIR)$(baseconfigdir)/fonts.conf; then \ echo " uninstall standard $(DESTDIR)$(baseconfigdir)/fonts.conf"; \ $(RM) $(DESTDIR)$(baseconfigdir)/fonts.conf; \ fi; \ else if [ -f fonts.conf ]; then \ if cmp -s fonts.conf $(DESTDIR)$(baseconfigdir)/fonts.conf; then \ echo " uninstall standard $(DESTDIR)$(baseconfigdir)/fonts.conf"; \ $(RM) $(DESTDIR)$(baseconfigdir)/fonts.conf; \ fi; \ fi; fi debuild debuild-signed: debuild-dirs (cd $(distdir)/debian && debuild) debuild-unsigned: debuild-dirs (cd $(distdir)/debian && debuild -us -uc) debuild-dirs: distdir $(RM) $(PACKAGE)_$(VERSION).orig.tar.gz $(RM) -r $(distdir).orig cp -a $(distdir) $(distdir).orig $(RM) -r $(distdir).orig/debian -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fontconfig-2.11.1/fc-case/0000775000076400007640000000000012313745411012245 500000000000000fontconfig-2.11.1/fc-case/CaseFolding.txt0000664000076400007640000020013212267155333015110 00000000000000# CaseFolding-6.3.0.txt # Date: 2012-12-20, 22:14:35 GMT [MD] # # Unicode Character Database # 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 # # This file is a supplement to the UnicodeData file. # It provides a case folding mapping generated from the Unicode Character Database. # If all characters are mapped according to the full mapping below, then # case differences (according to UnicodeData.txt and SpecialCasing.txt) # are eliminated. # # The data supports both implementations that require simple case foldings # (where string lengths don't change), and implementations that allow full case folding # (where string lengths may grow). Note that where they can be supported, the # full case foldings are superior: for example, they allow "MASSE" and "Maße" to match. # # All code points not listed in this file map to themselves. # # NOTE: case folding does not preserve normalization formats! # # For information on case folding, including how to have case folding # preserve normalization formats, see Section 3.13 Default Case Algorithms in # The Unicode Standard, Version 5.0. # # ================================================================================ # Format # ================================================================================ # The entries in this file are in the following machine-readable format: # # ; ; ; # # # The status field is: # C: common case folding, common mappings shared by both simple and full mappings. # F: full case folding, mappings that cause strings to grow in length. Multiple characters are separated by spaces. # S: simple case folding, mappings to single characters where different from F. # T: special case for uppercase I and dotted uppercase I # - For non-Turkic languages, this mapping is normally not used. # - For Turkic languages (tr, az), this mapping can be used instead of the normal mapping for these characters. # Note that the Turkic mappings do not maintain canonical equivalence without additional processing. # See the discussions of case mapping in the Unicode Standard for more information. # # Usage: # A. To do a simple case folding, use the mappings with status C + S. # B. To do a full case folding, use the mappings with status C + F. # # The mappings with status T can be used or omitted depending on the desired case-folding # behavior. (The default option is to exclude them.) # # ================================================================= # Property: Case_Folding # 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; # ================================================================= 0041; C; 0061; # LATIN CAPITAL LETTER A 0042; C; 0062; # LATIN CAPITAL LETTER B 0043; C; 0063; # LATIN CAPITAL LETTER C 0044; C; 0064; # LATIN CAPITAL LETTER D 0045; C; 0065; # LATIN CAPITAL LETTER E 0046; C; 0066; # LATIN CAPITAL LETTER F 0047; C; 0067; # LATIN CAPITAL LETTER G 0048; C; 0068; # LATIN CAPITAL LETTER H 0049; C; 0069; # LATIN CAPITAL LETTER I 0049; T; 0131; # LATIN CAPITAL LETTER I 004A; C; 006A; # LATIN CAPITAL LETTER J 004B; C; 006B; # LATIN CAPITAL LETTER K 004C; C; 006C; # LATIN CAPITAL LETTER L 004D; C; 006D; # LATIN CAPITAL LETTER M 004E; C; 006E; # LATIN CAPITAL LETTER N 004F; C; 006F; # LATIN CAPITAL LETTER O 0050; C; 0070; # LATIN CAPITAL LETTER P 0051; C; 0071; # LATIN CAPITAL LETTER Q 0052; C; 0072; # LATIN CAPITAL LETTER R 0053; C; 0073; # LATIN CAPITAL LETTER S 0054; C; 0074; # LATIN CAPITAL LETTER T 0055; C; 0075; # LATIN CAPITAL LETTER U 0056; C; 0076; # LATIN CAPITAL LETTER V 0057; C; 0077; # LATIN CAPITAL LETTER W 0058; C; 0078; # LATIN CAPITAL LETTER X 0059; C; 0079; # LATIN CAPITAL LETTER Y 005A; C; 007A; # LATIN CAPITAL LETTER Z 00B5; C; 03BC; # MICRO SIGN 00C0; C; 00E0; # LATIN CAPITAL LETTER A WITH GRAVE 00C1; C; 00E1; # LATIN CAPITAL LETTER A WITH ACUTE 00C2; C; 00E2; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX 00C3; C; 00E3; # LATIN CAPITAL LETTER A WITH TILDE 00C4; C; 00E4; # LATIN CAPITAL LETTER A WITH DIAERESIS 00C5; C; 00E5; # LATIN CAPITAL LETTER A WITH RING ABOVE 00C6; C; 00E6; # LATIN CAPITAL LETTER AE 00C7; C; 00E7; # LATIN CAPITAL LETTER C WITH CEDILLA 00C8; C; 00E8; # LATIN CAPITAL LETTER E WITH GRAVE 00C9; C; 00E9; # LATIN CAPITAL LETTER E WITH ACUTE 00CA; C; 00EA; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX 00CB; C; 00EB; # LATIN CAPITAL LETTER E WITH DIAERESIS 00CC; C; 00EC; # LATIN CAPITAL LETTER I WITH GRAVE 00CD; C; 00ED; # LATIN CAPITAL LETTER I WITH ACUTE 00CE; C; 00EE; # LATIN CAPITAL LETTER I WITH CIRCUMFLEX 00CF; C; 00EF; # LATIN CAPITAL LETTER I WITH DIAERESIS 00D0; C; 00F0; # LATIN CAPITAL LETTER ETH 00D1; C; 00F1; # LATIN CAPITAL LETTER N WITH TILDE 00D2; C; 00F2; # LATIN CAPITAL LETTER O WITH GRAVE 00D3; C; 00F3; # LATIN CAPITAL LETTER O WITH ACUTE 00D4; C; 00F4; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX 00D5; C; 00F5; # LATIN CAPITAL LETTER O WITH TILDE 00D6; C; 00F6; # LATIN CAPITAL LETTER O WITH DIAERESIS 00D8; C; 00F8; # LATIN CAPITAL LETTER O WITH STROKE 00D9; C; 00F9; # LATIN CAPITAL LETTER U WITH GRAVE 00DA; C; 00FA; # LATIN CAPITAL LETTER U WITH ACUTE 00DB; C; 00FB; # LATIN CAPITAL LETTER U WITH CIRCUMFLEX 00DC; C; 00FC; # LATIN CAPITAL LETTER U WITH DIAERESIS 00DD; C; 00FD; # LATIN CAPITAL LETTER Y WITH ACUTE 00DE; C; 00FE; # LATIN CAPITAL LETTER THORN 00DF; F; 0073 0073; # LATIN SMALL LETTER SHARP S 0100; C; 0101; # LATIN CAPITAL LETTER A WITH MACRON 0102; C; 0103; # LATIN CAPITAL LETTER A WITH BREVE 0104; C; 0105; # LATIN CAPITAL LETTER A WITH OGONEK 0106; C; 0107; # LATIN CAPITAL LETTER C WITH ACUTE 0108; C; 0109; # LATIN CAPITAL LETTER C WITH CIRCUMFLEX 010A; C; 010B; # LATIN CAPITAL LETTER C WITH DOT ABOVE 010C; C; 010D; # LATIN CAPITAL LETTER C WITH CARON 010E; C; 010F; # LATIN CAPITAL LETTER D WITH CARON 0110; C; 0111; # LATIN CAPITAL LETTER D WITH STROKE 0112; C; 0113; # LATIN CAPITAL LETTER E WITH MACRON 0114; C; 0115; # LATIN CAPITAL LETTER E WITH BREVE 0116; C; 0117; # LATIN CAPITAL LETTER E WITH DOT ABOVE 0118; C; 0119; # LATIN CAPITAL LETTER E WITH OGONEK 011A; C; 011B; # LATIN CAPITAL LETTER E WITH CARON 011C; C; 011D; # LATIN CAPITAL LETTER G WITH CIRCUMFLEX 011E; C; 011F; # LATIN CAPITAL LETTER G WITH BREVE 0120; C; 0121; # LATIN CAPITAL LETTER G WITH DOT ABOVE 0122; C; 0123; # LATIN CAPITAL LETTER G WITH CEDILLA 0124; C; 0125; # LATIN CAPITAL LETTER H WITH CIRCUMFLEX 0126; C; 0127; # LATIN CAPITAL LETTER H WITH STROKE 0128; C; 0129; # LATIN CAPITAL LETTER I WITH TILDE 012A; C; 012B; # LATIN CAPITAL LETTER I WITH MACRON 012C; C; 012D; # LATIN CAPITAL LETTER I WITH BREVE 012E; C; 012F; # LATIN CAPITAL LETTER I WITH OGONEK 0130; F; 0069 0307; # LATIN CAPITAL LETTER I WITH DOT ABOVE 0130; T; 0069; # LATIN CAPITAL LETTER I WITH DOT ABOVE 0132; C; 0133; # LATIN CAPITAL LIGATURE IJ 0134; C; 0135; # LATIN CAPITAL LETTER J WITH CIRCUMFLEX 0136; C; 0137; # LATIN CAPITAL LETTER K WITH CEDILLA 0139; C; 013A; # LATIN CAPITAL LETTER L WITH ACUTE 013B; C; 013C; # LATIN CAPITAL LETTER L WITH CEDILLA 013D; C; 013E; # LATIN CAPITAL LETTER L WITH CARON 013F; C; 0140; # LATIN CAPITAL LETTER L WITH MIDDLE DOT 0141; C; 0142; # LATIN CAPITAL LETTER L WITH STROKE 0143; C; 0144; # LATIN CAPITAL LETTER N WITH ACUTE 0145; C; 0146; # LATIN CAPITAL LETTER N WITH CEDILLA 0147; C; 0148; # LATIN CAPITAL LETTER N WITH CARON 0149; F; 02BC 006E; # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE 014A; C; 014B; # LATIN CAPITAL LETTER ENG 014C; C; 014D; # LATIN CAPITAL LETTER O WITH MACRON 014E; C; 014F; # LATIN CAPITAL LETTER O WITH BREVE 0150; C; 0151; # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE 0152; C; 0153; # LATIN CAPITAL LIGATURE OE 0154; C; 0155; # LATIN CAPITAL LETTER R WITH ACUTE 0156; C; 0157; # LATIN CAPITAL LETTER R WITH CEDILLA 0158; C; 0159; # LATIN CAPITAL LETTER R WITH CARON 015A; C; 015B; # LATIN CAPITAL LETTER S WITH ACUTE 015C; C; 015D; # LATIN CAPITAL LETTER S WITH CIRCUMFLEX 015E; C; 015F; # LATIN CAPITAL LETTER S WITH CEDILLA 0160; C; 0161; # LATIN CAPITAL LETTER S WITH CARON 0162; C; 0163; # LATIN CAPITAL LETTER T WITH CEDILLA 0164; C; 0165; # LATIN CAPITAL LETTER T WITH CARON 0166; C; 0167; # LATIN CAPITAL LETTER T WITH STROKE 0168; C; 0169; # LATIN CAPITAL LETTER U WITH TILDE 016A; C; 016B; # LATIN CAPITAL LETTER U WITH MACRON 016C; C; 016D; # LATIN CAPITAL LETTER U WITH BREVE 016E; C; 016F; # LATIN CAPITAL LETTER U WITH RING ABOVE 0170; C; 0171; # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE 0172; C; 0173; # LATIN CAPITAL LETTER U WITH OGONEK 0174; C; 0175; # LATIN CAPITAL LETTER W WITH CIRCUMFLEX 0176; C; 0177; # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX 0178; C; 00FF; # LATIN CAPITAL LETTER Y WITH DIAERESIS 0179; C; 017A; # LATIN CAPITAL LETTER Z WITH ACUTE 017B; C; 017C; # LATIN CAPITAL LETTER Z WITH DOT ABOVE 017D; C; 017E; # LATIN CAPITAL LETTER Z WITH CARON 017F; C; 0073; # LATIN SMALL LETTER LONG S 0181; C; 0253; # LATIN CAPITAL LETTER B WITH HOOK 0182; C; 0183; # LATIN CAPITAL LETTER B WITH TOPBAR 0184; C; 0185; # LATIN CAPITAL LETTER TONE SIX 0186; C; 0254; # LATIN CAPITAL LETTER OPEN O 0187; C; 0188; # LATIN CAPITAL LETTER C WITH HOOK 0189; C; 0256; # LATIN CAPITAL LETTER AFRICAN D 018A; C; 0257; # LATIN CAPITAL LETTER D WITH HOOK 018B; C; 018C; # LATIN CAPITAL LETTER D WITH TOPBAR 018E; C; 01DD; # LATIN CAPITAL LETTER REVERSED E 018F; C; 0259; # LATIN CAPITAL LETTER SCHWA 0190; C; 025B; # LATIN CAPITAL LETTER OPEN E 0191; C; 0192; # LATIN CAPITAL LETTER F WITH HOOK 0193; C; 0260; # LATIN CAPITAL LETTER G WITH HOOK 0194; C; 0263; # LATIN CAPITAL LETTER GAMMA 0196; C; 0269; # LATIN CAPITAL LETTER IOTA 0197; C; 0268; # LATIN CAPITAL LETTER I WITH STROKE 0198; C; 0199; # LATIN CAPITAL LETTER K WITH HOOK 019C; C; 026F; # LATIN CAPITAL LETTER TURNED M 019D; C; 0272; # LATIN CAPITAL LETTER N WITH LEFT HOOK 019F; C; 0275; # LATIN CAPITAL LETTER O WITH MIDDLE TILDE 01A0; C; 01A1; # LATIN CAPITAL LETTER O WITH HORN 01A2; C; 01A3; # LATIN CAPITAL LETTER OI 01A4; C; 01A5; # LATIN CAPITAL LETTER P WITH HOOK 01A6; C; 0280; # LATIN LETTER YR 01A7; C; 01A8; # LATIN CAPITAL LETTER TONE TWO 01A9; C; 0283; # LATIN CAPITAL LETTER ESH 01AC; C; 01AD; # LATIN CAPITAL LETTER T WITH HOOK 01AE; C; 0288; # LATIN CAPITAL LETTER T WITH RETROFLEX HOOK 01AF; C; 01B0; # LATIN CAPITAL LETTER U WITH HORN 01B1; C; 028A; # LATIN CAPITAL LETTER UPSILON 01B2; C; 028B; # LATIN CAPITAL LETTER V WITH HOOK 01B3; C; 01B4; # LATIN CAPITAL LETTER Y WITH HOOK 01B5; C; 01B6; # LATIN CAPITAL LETTER Z WITH STROKE 01B7; C; 0292; # LATIN CAPITAL LETTER EZH 01B8; C; 01B9; # LATIN CAPITAL LETTER EZH REVERSED 01BC; C; 01BD; # LATIN CAPITAL LETTER TONE FIVE 01C4; C; 01C6; # LATIN CAPITAL LETTER DZ WITH CARON 01C5; C; 01C6; # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON 01C7; C; 01C9; # LATIN CAPITAL LETTER LJ 01C8; C; 01C9; # LATIN CAPITAL LETTER L WITH SMALL LETTER J 01CA; C; 01CC; # LATIN CAPITAL LETTER NJ 01CB; C; 01CC; # LATIN CAPITAL LETTER N WITH SMALL LETTER J 01CD; C; 01CE; # LATIN CAPITAL LETTER A WITH CARON 01CF; C; 01D0; # LATIN CAPITAL LETTER I WITH CARON 01D1; C; 01D2; # LATIN CAPITAL LETTER O WITH CARON 01D3; C; 01D4; # LATIN CAPITAL LETTER U WITH CARON 01D5; C; 01D6; # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON 01D7; C; 01D8; # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE 01D9; C; 01DA; # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON 01DB; C; 01DC; # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE 01DE; C; 01DF; # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON 01E0; C; 01E1; # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON 01E2; C; 01E3; # LATIN CAPITAL LETTER AE WITH MACRON 01E4; C; 01E5; # LATIN CAPITAL LETTER G WITH STROKE 01E6; C; 01E7; # LATIN CAPITAL LETTER G WITH CARON 01E8; C; 01E9; # LATIN CAPITAL LETTER K WITH CARON 01EA; C; 01EB; # LATIN CAPITAL LETTER O WITH OGONEK 01EC; C; 01ED; # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON 01EE; C; 01EF; # LATIN CAPITAL LETTER EZH WITH CARON 01F0; F; 006A 030C; # LATIN SMALL LETTER J WITH CARON 01F1; C; 01F3; # LATIN CAPITAL LETTER DZ 01F2; C; 01F3; # LATIN CAPITAL LETTER D WITH SMALL LETTER Z 01F4; C; 01F5; # LATIN CAPITAL LETTER G WITH ACUTE 01F6; C; 0195; # LATIN CAPITAL LETTER HWAIR 01F7; C; 01BF; # LATIN CAPITAL LETTER WYNN 01F8; C; 01F9; # LATIN CAPITAL LETTER N WITH GRAVE 01FA; C; 01FB; # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE 01FC; C; 01FD; # LATIN CAPITAL LETTER AE WITH ACUTE 01FE; C; 01FF; # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE 0200; C; 0201; # LATIN CAPITAL LETTER A WITH DOUBLE GRAVE 0202; C; 0203; # LATIN CAPITAL LETTER A WITH INVERTED BREVE 0204; C; 0205; # LATIN CAPITAL LETTER E WITH DOUBLE GRAVE 0206; C; 0207; # LATIN CAPITAL LETTER E WITH INVERTED BREVE 0208; C; 0209; # LATIN CAPITAL LETTER I WITH DOUBLE GRAVE 020A; C; 020B; # LATIN CAPITAL LETTER I WITH INVERTED BREVE 020C; C; 020D; # LATIN CAPITAL LETTER O WITH DOUBLE GRAVE 020E; C; 020F; # LATIN CAPITAL LETTER O WITH INVERTED BREVE 0210; C; 0211; # LATIN CAPITAL LETTER R WITH DOUBLE GRAVE 0212; C; 0213; # LATIN CAPITAL LETTER R WITH INVERTED BREVE 0214; C; 0215; # LATIN CAPITAL LETTER U WITH DOUBLE GRAVE 0216; C; 0217; # LATIN CAPITAL LETTER U WITH INVERTED BREVE 0218; C; 0219; # LATIN CAPITAL LETTER S WITH COMMA BELOW 021A; C; 021B; # LATIN CAPITAL LETTER T WITH COMMA BELOW 021C; C; 021D; # LATIN CAPITAL LETTER YOGH 021E; C; 021F; # LATIN CAPITAL LETTER H WITH CARON 0220; C; 019E; # LATIN CAPITAL LETTER N WITH LONG RIGHT LEG 0222; C; 0223; # LATIN CAPITAL LETTER OU 0224; C; 0225; # LATIN CAPITAL LETTER Z WITH HOOK 0226; C; 0227; # LATIN CAPITAL LETTER A WITH DOT ABOVE 0228; C; 0229; # LATIN CAPITAL LETTER E WITH CEDILLA 022A; C; 022B; # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON 022C; C; 022D; # LATIN CAPITAL LETTER O WITH TILDE AND MACRON 022E; C; 022F; # LATIN CAPITAL LETTER O WITH DOT ABOVE 0230; C; 0231; # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON 0232; C; 0233; # LATIN CAPITAL LETTER Y WITH MACRON 023A; C; 2C65; # LATIN CAPITAL LETTER A WITH STROKE 023B; C; 023C; # LATIN CAPITAL LETTER C WITH STROKE 023D; C; 019A; # LATIN CAPITAL LETTER L WITH BAR 023E; C; 2C66; # LATIN CAPITAL LETTER T WITH DIAGONAL STROKE 0241; C; 0242; # LATIN CAPITAL LETTER GLOTTAL STOP 0243; C; 0180; # LATIN CAPITAL LETTER B WITH STROKE 0244; C; 0289; # LATIN CAPITAL LETTER U BAR 0245; C; 028C; # LATIN CAPITAL LETTER TURNED V 0246; C; 0247; # LATIN CAPITAL LETTER E WITH STROKE 0248; C; 0249; # LATIN CAPITAL LETTER J WITH STROKE 024A; C; 024B; # LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL 024C; C; 024D; # LATIN CAPITAL LETTER R WITH STROKE 024E; C; 024F; # LATIN CAPITAL LETTER Y WITH STROKE 0345; C; 03B9; # COMBINING GREEK YPOGEGRAMMENI 0370; C; 0371; # GREEK CAPITAL LETTER HETA 0372; C; 0373; # GREEK CAPITAL LETTER ARCHAIC SAMPI 0376; C; 0377; # GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA 0386; C; 03AC; # GREEK CAPITAL LETTER ALPHA WITH TONOS 0388; C; 03AD; # GREEK CAPITAL LETTER EPSILON WITH TONOS 0389; C; 03AE; # GREEK CAPITAL LETTER ETA WITH TONOS 038A; C; 03AF; # GREEK CAPITAL LETTER IOTA WITH TONOS 038C; C; 03CC; # GREEK CAPITAL LETTER OMICRON WITH TONOS 038E; C; 03CD; # GREEK CAPITAL LETTER UPSILON WITH TONOS 038F; C; 03CE; # GREEK CAPITAL LETTER OMEGA WITH TONOS 0390; F; 03B9 0308 0301; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS 0391; C; 03B1; # GREEK CAPITAL LETTER ALPHA 0392; C; 03B2; # GREEK CAPITAL LETTER BETA 0393; C; 03B3; # GREEK CAPITAL LETTER GAMMA 0394; C; 03B4; # GREEK CAPITAL LETTER DELTA 0395; C; 03B5; # GREEK CAPITAL LETTER EPSILON 0396; C; 03B6; # GREEK CAPITAL LETTER ZETA 0397; C; 03B7; # GREEK CAPITAL LETTER ETA 0398; C; 03B8; # GREEK CAPITAL LETTER THETA 0399; C; 03B9; # GREEK CAPITAL LETTER IOTA 039A; C; 03BA; # GREEK CAPITAL LETTER KAPPA 039B; C; 03BB; # GREEK CAPITAL LETTER LAMDA 039C; C; 03BC; # GREEK CAPITAL LETTER MU 039D; C; 03BD; # GREEK CAPITAL LETTER NU 039E; C; 03BE; # GREEK CAPITAL LETTER XI 039F; C; 03BF; # GREEK CAPITAL LETTER OMICRON 03A0; C; 03C0; # GREEK CAPITAL LETTER PI 03A1; C; 03C1; # GREEK CAPITAL LETTER RHO 03A3; C; 03C3; # GREEK CAPITAL LETTER SIGMA 03A4; C; 03C4; # GREEK CAPITAL LETTER TAU 03A5; C; 03C5; # GREEK CAPITAL LETTER UPSILON 03A6; C; 03C6; # GREEK CAPITAL LETTER PHI 03A7; C; 03C7; # GREEK CAPITAL LETTER CHI 03A8; C; 03C8; # GREEK CAPITAL LETTER PSI 03A9; C; 03C9; # GREEK CAPITAL LETTER OMEGA 03AA; C; 03CA; # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA 03AB; C; 03CB; # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA 03B0; F; 03C5 0308 0301; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS 03C2; C; 03C3; # GREEK SMALL LETTER FINAL SIGMA 03CF; C; 03D7; # GREEK CAPITAL KAI SYMBOL 03D0; C; 03B2; # GREEK BETA SYMBOL 03D1; C; 03B8; # GREEK THETA SYMBOL 03D5; C; 03C6; # GREEK PHI SYMBOL 03D6; C; 03C0; # GREEK PI SYMBOL 03D8; C; 03D9; # GREEK LETTER ARCHAIC KOPPA 03DA; C; 03DB; # GREEK LETTER STIGMA 03DC; C; 03DD; # GREEK LETTER DIGAMMA 03DE; C; 03DF; # GREEK LETTER KOPPA 03E0; C; 03E1; # GREEK LETTER SAMPI 03E2; C; 03E3; # COPTIC CAPITAL LETTER SHEI 03E4; C; 03E5; # COPTIC CAPITAL LETTER FEI 03E6; C; 03E7; # COPTIC CAPITAL LETTER KHEI 03E8; C; 03E9; # COPTIC CAPITAL LETTER HORI 03EA; C; 03EB; # COPTIC CAPITAL LETTER GANGIA 03EC; C; 03ED; # COPTIC CAPITAL LETTER SHIMA 03EE; C; 03EF; # COPTIC CAPITAL LETTER DEI 03F0; C; 03BA; # GREEK KAPPA SYMBOL 03F1; C; 03C1; # GREEK RHO SYMBOL 03F4; C; 03B8; # GREEK CAPITAL THETA SYMBOL 03F5; C; 03B5; # GREEK LUNATE EPSILON SYMBOL 03F7; C; 03F8; # GREEK CAPITAL LETTER SHO 03F9; C; 03F2; # GREEK CAPITAL LUNATE SIGMA SYMBOL 03FA; C; 03FB; # GREEK CAPITAL LETTER SAN 03FD; C; 037B; # GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL 03FE; C; 037C; # GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL 03FF; C; 037D; # GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL 0400; C; 0450; # CYRILLIC CAPITAL LETTER IE WITH GRAVE 0401; C; 0451; # CYRILLIC CAPITAL LETTER IO 0402; C; 0452; # CYRILLIC CAPITAL LETTER DJE 0403; C; 0453; # CYRILLIC CAPITAL LETTER GJE 0404; C; 0454; # CYRILLIC CAPITAL LETTER UKRAINIAN IE 0405; C; 0455; # CYRILLIC CAPITAL LETTER DZE 0406; C; 0456; # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I 0407; C; 0457; # CYRILLIC CAPITAL LETTER YI 0408; C; 0458; # CYRILLIC CAPITAL LETTER JE 0409; C; 0459; # CYRILLIC CAPITAL LETTER LJE 040A; C; 045A; # CYRILLIC CAPITAL LETTER NJE 040B; C; 045B; # CYRILLIC CAPITAL LETTER TSHE 040C; C; 045C; # CYRILLIC CAPITAL LETTER KJE 040D; C; 045D; # CYRILLIC CAPITAL LETTER I WITH GRAVE 040E; C; 045E; # CYRILLIC CAPITAL LETTER SHORT U 040F; C; 045F; # CYRILLIC CAPITAL LETTER DZHE 0410; C; 0430; # CYRILLIC CAPITAL LETTER A 0411; C; 0431; # CYRILLIC CAPITAL LETTER BE 0412; C; 0432; # CYRILLIC CAPITAL LETTER VE 0413; C; 0433; # CYRILLIC CAPITAL LETTER GHE 0414; C; 0434; # CYRILLIC CAPITAL LETTER DE 0415; C; 0435; # CYRILLIC CAPITAL LETTER IE 0416; C; 0436; # CYRILLIC CAPITAL LETTER ZHE 0417; C; 0437; # CYRILLIC CAPITAL LETTER ZE 0418; C; 0438; # CYRILLIC CAPITAL LETTER I 0419; C; 0439; # CYRILLIC CAPITAL LETTER SHORT I 041A; C; 043A; # CYRILLIC CAPITAL LETTER KA 041B; C; 043B; # CYRILLIC CAPITAL LETTER EL 041C; C; 043C; # CYRILLIC CAPITAL LETTER EM 041D; C; 043D; # CYRILLIC CAPITAL LETTER EN 041E; C; 043E; # CYRILLIC CAPITAL LETTER O 041F; C; 043F; # CYRILLIC CAPITAL LETTER PE 0420; C; 0440; # CYRILLIC CAPITAL LETTER ER 0421; C; 0441; # CYRILLIC CAPITAL LETTER ES 0422; C; 0442; # CYRILLIC CAPITAL LETTER TE 0423; C; 0443; # CYRILLIC CAPITAL LETTER U 0424; C; 0444; # CYRILLIC CAPITAL LETTER EF 0425; C; 0445; # CYRILLIC CAPITAL LETTER HA 0426; C; 0446; # CYRILLIC CAPITAL LETTER TSE 0427; C; 0447; # CYRILLIC CAPITAL LETTER CHE 0428; C; 0448; # CYRILLIC CAPITAL LETTER SHA 0429; C; 0449; # CYRILLIC CAPITAL LETTER SHCHA 042A; C; 044A; # CYRILLIC CAPITAL LETTER HARD SIGN 042B; C; 044B; # CYRILLIC CAPITAL LETTER YERU 042C; C; 044C; # CYRILLIC CAPITAL LETTER SOFT SIGN 042D; C; 044D; # CYRILLIC CAPITAL LETTER E 042E; C; 044E; # CYRILLIC CAPITAL LETTER YU 042F; C; 044F; # CYRILLIC CAPITAL LETTER YA 0460; C; 0461; # CYRILLIC CAPITAL LETTER OMEGA 0462; C; 0463; # CYRILLIC CAPITAL LETTER YAT 0464; C; 0465; # CYRILLIC CAPITAL LETTER IOTIFIED E 0466; C; 0467; # CYRILLIC CAPITAL LETTER LITTLE YUS 0468; C; 0469; # CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS 046A; C; 046B; # CYRILLIC CAPITAL LETTER BIG YUS 046C; C; 046D; # CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS 046E; C; 046F; # CYRILLIC CAPITAL LETTER KSI 0470; C; 0471; # CYRILLIC CAPITAL LETTER PSI 0472; C; 0473; # CYRILLIC CAPITAL LETTER FITA 0474; C; 0475; # CYRILLIC CAPITAL LETTER IZHITSA 0476; C; 0477; # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT 0478; C; 0479; # CYRILLIC CAPITAL LETTER UK 047A; C; 047B; # CYRILLIC CAPITAL LETTER ROUND OMEGA 047C; C; 047D; # CYRILLIC CAPITAL LETTER OMEGA WITH TITLO 047E; C; 047F; # CYRILLIC CAPITAL LETTER OT 0480; C; 0481; # CYRILLIC CAPITAL LETTER KOPPA 048A; C; 048B; # CYRILLIC CAPITAL LETTER SHORT I WITH TAIL 048C; C; 048D; # CYRILLIC CAPITAL LETTER SEMISOFT SIGN 048E; C; 048F; # CYRILLIC CAPITAL LETTER ER WITH TICK 0490; C; 0491; # CYRILLIC CAPITAL LETTER GHE WITH UPTURN 0492; C; 0493; # CYRILLIC CAPITAL LETTER GHE WITH STROKE 0494; C; 0495; # CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK 0496; C; 0497; # CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER 0498; C; 0499; # CYRILLIC CAPITAL LETTER ZE WITH DESCENDER 049A; C; 049B; # CYRILLIC CAPITAL LETTER KA WITH DESCENDER 049C; C; 049D; # CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE 049E; C; 049F; # CYRILLIC CAPITAL LETTER KA WITH STROKE 04A0; C; 04A1; # CYRILLIC CAPITAL LETTER BASHKIR KA 04A2; C; 04A3; # CYRILLIC CAPITAL LETTER EN WITH DESCENDER 04A4; C; 04A5; # CYRILLIC CAPITAL LIGATURE EN GHE 04A6; C; 04A7; # CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK 04A8; C; 04A9; # CYRILLIC CAPITAL LETTER ABKHASIAN HA 04AA; C; 04AB; # CYRILLIC CAPITAL LETTER ES WITH DESCENDER 04AC; C; 04AD; # CYRILLIC CAPITAL LETTER TE WITH DESCENDER 04AE; C; 04AF; # CYRILLIC CAPITAL LETTER STRAIGHT U 04B0; C; 04B1; # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE 04B2; C; 04B3; # CYRILLIC CAPITAL LETTER HA WITH DESCENDER 04B4; C; 04B5; # CYRILLIC CAPITAL LIGATURE TE TSE 04B6; C; 04B7; # CYRILLIC CAPITAL LETTER CHE WITH DESCENDER 04B8; C; 04B9; # CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE 04BA; C; 04BB; # CYRILLIC CAPITAL LETTER SHHA 04BC; C; 04BD; # CYRILLIC CAPITAL LETTER ABKHASIAN CHE 04BE; C; 04BF; # CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER 04C0; C; 04CF; # CYRILLIC LETTER PALOCHKA 04C1; C; 04C2; # CYRILLIC CAPITAL LETTER ZHE WITH BREVE 04C3; C; 04C4; # CYRILLIC CAPITAL LETTER KA WITH HOOK 04C5; C; 04C6; # CYRILLIC CAPITAL LETTER EL WITH TAIL 04C7; C; 04C8; # CYRILLIC CAPITAL LETTER EN WITH HOOK 04C9; C; 04CA; # CYRILLIC CAPITAL LETTER EN WITH TAIL 04CB; C; 04CC; # CYRILLIC CAPITAL LETTER KHAKASSIAN CHE 04CD; C; 04CE; # CYRILLIC CAPITAL LETTER EM WITH TAIL 04D0; C; 04D1; # CYRILLIC CAPITAL LETTER A WITH BREVE 04D2; C; 04D3; # CYRILLIC CAPITAL LETTER A WITH DIAERESIS 04D4; C; 04D5; # CYRILLIC CAPITAL LIGATURE A IE 04D6; C; 04D7; # CYRILLIC CAPITAL LETTER IE WITH BREVE 04D8; C; 04D9; # CYRILLIC CAPITAL LETTER SCHWA 04DA; C; 04DB; # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS 04DC; C; 04DD; # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS 04DE; C; 04DF; # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS 04E0; C; 04E1; # CYRILLIC CAPITAL LETTER ABKHASIAN DZE 04E2; C; 04E3; # CYRILLIC CAPITAL LETTER I WITH MACRON 04E4; C; 04E5; # CYRILLIC CAPITAL LETTER I WITH DIAERESIS 04E6; C; 04E7; # CYRILLIC CAPITAL LETTER O WITH DIAERESIS 04E8; C; 04E9; # CYRILLIC CAPITAL LETTER BARRED O 04EA; C; 04EB; # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS 04EC; C; 04ED; # CYRILLIC CAPITAL LETTER E WITH DIAERESIS 04EE; C; 04EF; # CYRILLIC CAPITAL LETTER U WITH MACRON 04F0; C; 04F1; # CYRILLIC CAPITAL LETTER U WITH DIAERESIS 04F2; C; 04F3; # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE 04F4; C; 04F5; # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS 04F6; C; 04F7; # CYRILLIC CAPITAL LETTER GHE WITH DESCENDER 04F8; C; 04F9; # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS 04FA; C; 04FB; # CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK 04FC; C; 04FD; # CYRILLIC CAPITAL LETTER HA WITH HOOK 04FE; C; 04FF; # CYRILLIC CAPITAL LETTER HA WITH STROKE 0500; C; 0501; # CYRILLIC CAPITAL LETTER KOMI DE 0502; C; 0503; # CYRILLIC CAPITAL LETTER KOMI DJE 0504; C; 0505; # CYRILLIC CAPITAL LETTER KOMI ZJE 0506; C; 0507; # CYRILLIC CAPITAL LETTER KOMI DZJE 0508; C; 0509; # CYRILLIC CAPITAL LETTER KOMI LJE 050A; C; 050B; # CYRILLIC CAPITAL LETTER KOMI NJE 050C; C; 050D; # CYRILLIC CAPITAL LETTER KOMI SJE 050E; C; 050F; # CYRILLIC CAPITAL LETTER KOMI TJE 0510; C; 0511; # CYRILLIC CAPITAL LETTER REVERSED ZE 0512; C; 0513; # CYRILLIC CAPITAL LETTER EL WITH HOOK 0514; C; 0515; # CYRILLIC CAPITAL LETTER LHA 0516; C; 0517; # CYRILLIC CAPITAL LETTER RHA 0518; C; 0519; # CYRILLIC CAPITAL LETTER YAE 051A; C; 051B; # CYRILLIC CAPITAL LETTER QA 051C; C; 051D; # CYRILLIC CAPITAL LETTER WE 051E; C; 051F; # CYRILLIC CAPITAL LETTER ALEUT KA 0520; C; 0521; # CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK 0522; C; 0523; # CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK 0524; C; 0525; # CYRILLIC CAPITAL LETTER PE WITH DESCENDER 0526; C; 0527; # CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER 0531; C; 0561; # ARMENIAN CAPITAL LETTER AYB 0532; C; 0562; # ARMENIAN CAPITAL LETTER BEN 0533; C; 0563; # ARMENIAN CAPITAL LETTER GIM 0534; C; 0564; # ARMENIAN CAPITAL LETTER DA 0535; C; 0565; # ARMENIAN CAPITAL LETTER ECH 0536; C; 0566; # ARMENIAN CAPITAL LETTER ZA 0537; C; 0567; # ARMENIAN CAPITAL LETTER EH 0538; C; 0568; # ARMENIAN CAPITAL LETTER ET 0539; C; 0569; # ARMENIAN CAPITAL LETTER TO 053A; C; 056A; # ARMENIAN CAPITAL LETTER ZHE 053B; C; 056B; # ARMENIAN CAPITAL LETTER INI 053C; C; 056C; # ARMENIAN CAPITAL LETTER LIWN 053D; C; 056D; # ARMENIAN CAPITAL LETTER XEH 053E; C; 056E; # ARMENIAN CAPITAL LETTER CA 053F; C; 056F; # ARMENIAN CAPITAL LETTER KEN 0540; C; 0570; # ARMENIAN CAPITAL LETTER HO 0541; C; 0571; # ARMENIAN CAPITAL LETTER JA 0542; C; 0572; # ARMENIAN CAPITAL LETTER GHAD 0543; C; 0573; # ARMENIAN CAPITAL LETTER CHEH 0544; C; 0574; # ARMENIAN CAPITAL LETTER MEN 0545; C; 0575; # ARMENIAN CAPITAL LETTER YI 0546; C; 0576; # ARMENIAN CAPITAL LETTER NOW 0547; C; 0577; # ARMENIAN CAPITAL LETTER SHA 0548; C; 0578; # ARMENIAN CAPITAL LETTER VO 0549; C; 0579; # ARMENIAN CAPITAL LETTER CHA 054A; C; 057A; # ARMENIAN CAPITAL LETTER PEH 054B; C; 057B; # ARMENIAN CAPITAL LETTER JHEH 054C; C; 057C; # ARMENIAN CAPITAL LETTER RA 054D; C; 057D; # ARMENIAN CAPITAL LETTER SEH 054E; C; 057E; # ARMENIAN CAPITAL LETTER VEW 054F; C; 057F; # ARMENIAN CAPITAL LETTER TIWN 0550; C; 0580; # ARMENIAN CAPITAL LETTER REH 0551; C; 0581; # ARMENIAN CAPITAL LETTER CO 0552; C; 0582; # ARMENIAN CAPITAL LETTER YIWN 0553; C; 0583; # ARMENIAN CAPITAL LETTER PIWR 0554; C; 0584; # ARMENIAN CAPITAL LETTER KEH 0555; C; 0585; # ARMENIAN CAPITAL LETTER OH 0556; C; 0586; # ARMENIAN CAPITAL LETTER FEH 0587; F; 0565 0582; # ARMENIAN SMALL LIGATURE ECH YIWN 10A0; C; 2D00; # GEORGIAN CAPITAL LETTER AN 10A1; C; 2D01; # GEORGIAN CAPITAL LETTER BAN 10A2; C; 2D02; # GEORGIAN CAPITAL LETTER GAN 10A3; C; 2D03; # GEORGIAN CAPITAL LETTER DON 10A4; C; 2D04; # GEORGIAN CAPITAL LETTER EN 10A5; C; 2D05; # GEORGIAN CAPITAL LETTER VIN 10A6; C; 2D06; # GEORGIAN CAPITAL LETTER ZEN 10A7; C; 2D07; # GEORGIAN CAPITAL LETTER TAN 10A8; C; 2D08; # GEORGIAN CAPITAL LETTER IN 10A9; C; 2D09; # GEORGIAN CAPITAL LETTER KAN 10AA; C; 2D0A; # GEORGIAN CAPITAL LETTER LAS 10AB; C; 2D0B; # GEORGIAN CAPITAL LETTER MAN 10AC; C; 2D0C; # GEORGIAN CAPITAL LETTER NAR 10AD; C; 2D0D; # GEORGIAN CAPITAL LETTER ON 10AE; C; 2D0E; # GEORGIAN CAPITAL LETTER PAR 10AF; C; 2D0F; # GEORGIAN CAPITAL LETTER ZHAR 10B0; C; 2D10; # GEORGIAN CAPITAL LETTER RAE 10B1; C; 2D11; # GEORGIAN CAPITAL LETTER SAN 10B2; C; 2D12; # GEORGIAN CAPITAL LETTER TAR 10B3; C; 2D13; # GEORGIAN CAPITAL LETTER UN 10B4; C; 2D14; # GEORGIAN CAPITAL LETTER PHAR 10B5; C; 2D15; # GEORGIAN CAPITAL LETTER KHAR 10B6; C; 2D16; # GEORGIAN CAPITAL LETTER GHAN 10B7; C; 2D17; # GEORGIAN CAPITAL LETTER QAR 10B8; C; 2D18; # GEORGIAN CAPITAL LETTER SHIN 10B9; C; 2D19; # GEORGIAN CAPITAL LETTER CHIN 10BA; C; 2D1A; # GEORGIAN CAPITAL LETTER CAN 10BB; C; 2D1B; # GEORGIAN CAPITAL LETTER JIL 10BC; C; 2D1C; # GEORGIAN CAPITAL LETTER CIL 10BD; C; 2D1D; # GEORGIAN CAPITAL LETTER CHAR 10BE; C; 2D1E; # GEORGIAN CAPITAL LETTER XAN 10BF; C; 2D1F; # GEORGIAN CAPITAL LETTER JHAN 10C0; C; 2D20; # GEORGIAN CAPITAL LETTER HAE 10C1; C; 2D21; # GEORGIAN CAPITAL LETTER HE 10C2; C; 2D22; # GEORGIAN CAPITAL LETTER HIE 10C3; C; 2D23; # GEORGIAN CAPITAL LETTER WE 10C4; C; 2D24; # GEORGIAN CAPITAL LETTER HAR 10C5; C; 2D25; # GEORGIAN CAPITAL LETTER HOE 10C7; C; 2D27; # GEORGIAN CAPITAL LETTER YN 10CD; C; 2D2D; # GEORGIAN CAPITAL LETTER AEN 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 1E06; C; 1E07; # LATIN CAPITAL LETTER B WITH LINE BELOW 1E08; C; 1E09; # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE 1E0A; C; 1E0B; # LATIN CAPITAL LETTER D WITH DOT ABOVE 1E0C; C; 1E0D; # LATIN CAPITAL LETTER D WITH DOT BELOW 1E0E; C; 1E0F; # LATIN CAPITAL LETTER D WITH LINE BELOW 1E10; C; 1E11; # LATIN CAPITAL LETTER D WITH CEDILLA 1E12; C; 1E13; # LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW 1E14; C; 1E15; # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE 1E16; C; 1E17; # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE 1E18; C; 1E19; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW 1E1A; C; 1E1B; # LATIN CAPITAL LETTER E WITH TILDE BELOW 1E1C; C; 1E1D; # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE 1E1E; C; 1E1F; # LATIN CAPITAL LETTER F WITH DOT ABOVE 1E20; C; 1E21; # LATIN CAPITAL LETTER G WITH MACRON 1E22; C; 1E23; # LATIN CAPITAL LETTER H WITH DOT ABOVE 1E24; C; 1E25; # LATIN CAPITAL LETTER H WITH DOT BELOW 1E26; C; 1E27; # LATIN CAPITAL LETTER H WITH DIAERESIS 1E28; C; 1E29; # LATIN CAPITAL LETTER H WITH CEDILLA 1E2A; C; 1E2B; # LATIN CAPITAL LETTER H WITH BREVE BELOW 1E2C; C; 1E2D; # LATIN CAPITAL LETTER I WITH TILDE BELOW 1E2E; C; 1E2F; # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE 1E30; C; 1E31; # LATIN CAPITAL LETTER K WITH ACUTE 1E32; C; 1E33; # LATIN CAPITAL LETTER K WITH DOT BELOW 1E34; C; 1E35; # LATIN CAPITAL LETTER K WITH LINE BELOW 1E36; C; 1E37; # LATIN CAPITAL LETTER L WITH DOT BELOW 1E38; C; 1E39; # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON 1E3A; C; 1E3B; # LATIN CAPITAL LETTER L WITH LINE BELOW 1E3C; C; 1E3D; # LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW 1E3E; C; 1E3F; # LATIN CAPITAL LETTER M WITH ACUTE 1E40; C; 1E41; # LATIN CAPITAL LETTER M WITH DOT ABOVE 1E42; C; 1E43; # LATIN CAPITAL LETTER M WITH DOT BELOW 1E44; C; 1E45; # LATIN CAPITAL LETTER N WITH DOT ABOVE 1E46; C; 1E47; # LATIN CAPITAL LETTER N WITH DOT BELOW 1E48; C; 1E49; # LATIN CAPITAL LETTER N WITH LINE BELOW 1E4A; C; 1E4B; # LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW 1E4C; C; 1E4D; # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE 1E4E; C; 1E4F; # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS 1E50; C; 1E51; # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE 1E52; C; 1E53; # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE 1E54; C; 1E55; # LATIN CAPITAL LETTER P WITH ACUTE 1E56; C; 1E57; # LATIN CAPITAL LETTER P WITH DOT ABOVE 1E58; C; 1E59; # LATIN CAPITAL LETTER R WITH DOT ABOVE 1E5A; C; 1E5B; # LATIN CAPITAL LETTER R WITH DOT BELOW 1E5C; C; 1E5D; # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON 1E5E; C; 1E5F; # LATIN CAPITAL LETTER R WITH LINE BELOW 1E60; C; 1E61; # LATIN CAPITAL LETTER S WITH DOT ABOVE 1E62; C; 1E63; # LATIN CAPITAL LETTER S WITH DOT BELOW 1E64; C; 1E65; # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE 1E66; C; 1E67; # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE 1E68; C; 1E69; # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE 1E6A; C; 1E6B; # LATIN CAPITAL LETTER T WITH DOT ABOVE 1E6C; C; 1E6D; # LATIN CAPITAL LETTER T WITH DOT BELOW 1E6E; C; 1E6F; # LATIN CAPITAL LETTER T WITH LINE BELOW 1E70; C; 1E71; # LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW 1E72; C; 1E73; # LATIN CAPITAL LETTER U WITH DIAERESIS BELOW 1E74; C; 1E75; # LATIN CAPITAL LETTER U WITH TILDE BELOW 1E76; C; 1E77; # LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW 1E78; C; 1E79; # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE 1E7A; C; 1E7B; # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS 1E7C; C; 1E7D; # LATIN CAPITAL LETTER V WITH TILDE 1E7E; C; 1E7F; # LATIN CAPITAL LETTER V WITH DOT BELOW 1E80; C; 1E81; # LATIN CAPITAL LETTER W WITH GRAVE 1E82; C; 1E83; # LATIN CAPITAL LETTER W WITH ACUTE 1E84; C; 1E85; # LATIN CAPITAL LETTER W WITH DIAERESIS 1E86; C; 1E87; # LATIN CAPITAL LETTER W WITH DOT ABOVE 1E88; C; 1E89; # LATIN CAPITAL LETTER W WITH DOT BELOW 1E8A; C; 1E8B; # LATIN CAPITAL LETTER X WITH DOT ABOVE 1E8C; C; 1E8D; # LATIN CAPITAL LETTER X WITH DIAERESIS 1E8E; C; 1E8F; # LATIN CAPITAL LETTER Y WITH DOT ABOVE 1E90; C; 1E91; # LATIN CAPITAL LETTER Z WITH CIRCUMFLEX 1E92; C; 1E93; # LATIN CAPITAL LETTER Z WITH DOT BELOW 1E94; C; 1E95; # LATIN CAPITAL LETTER Z WITH LINE BELOW 1E96; F; 0068 0331; # LATIN SMALL LETTER H WITH LINE BELOW 1E97; F; 0074 0308; # LATIN SMALL LETTER T WITH DIAERESIS 1E98; F; 0077 030A; # LATIN SMALL LETTER W WITH RING ABOVE 1E99; F; 0079 030A; # LATIN SMALL LETTER Y WITH RING ABOVE 1E9A; F; 0061 02BE; # LATIN SMALL LETTER A WITH RIGHT HALF RING 1E9B; C; 1E61; # LATIN SMALL LETTER LONG S WITH DOT ABOVE 1E9E; F; 0073 0073; # LATIN CAPITAL LETTER SHARP S 1E9E; S; 00DF; # LATIN CAPITAL LETTER SHARP S 1EA0; C; 1EA1; # LATIN CAPITAL LETTER A WITH DOT BELOW 1EA2; C; 1EA3; # LATIN CAPITAL LETTER A WITH HOOK ABOVE 1EA4; C; 1EA5; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE 1EA6; C; 1EA7; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE 1EA8; C; 1EA9; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE 1EAA; C; 1EAB; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE 1EAC; C; 1EAD; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW 1EAE; C; 1EAF; # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE 1EB0; C; 1EB1; # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE 1EB2; C; 1EB3; # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE 1EB4; C; 1EB5; # LATIN CAPITAL LETTER A WITH BREVE AND TILDE 1EB6; C; 1EB7; # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW 1EB8; C; 1EB9; # LATIN CAPITAL LETTER E WITH DOT BELOW 1EBA; C; 1EBB; # LATIN CAPITAL LETTER E WITH HOOK ABOVE 1EBC; C; 1EBD; # LATIN CAPITAL LETTER E WITH TILDE 1EBE; C; 1EBF; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE 1EC0; C; 1EC1; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE 1EC2; C; 1EC3; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE 1EC4; C; 1EC5; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE 1EC6; C; 1EC7; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW 1EC8; C; 1EC9; # LATIN CAPITAL LETTER I WITH HOOK ABOVE 1ECA; C; 1ECB; # LATIN CAPITAL LETTER I WITH DOT BELOW 1ECC; C; 1ECD; # LATIN CAPITAL LETTER O WITH DOT BELOW 1ECE; C; 1ECF; # LATIN CAPITAL LETTER O WITH HOOK ABOVE 1ED0; C; 1ED1; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE 1ED2; C; 1ED3; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE 1ED4; C; 1ED5; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE 1ED6; C; 1ED7; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE 1ED8; C; 1ED9; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW 1EDA; C; 1EDB; # LATIN CAPITAL LETTER O WITH HORN AND ACUTE 1EDC; C; 1EDD; # LATIN CAPITAL LETTER O WITH HORN AND GRAVE 1EDE; C; 1EDF; # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE 1EE0; C; 1EE1; # LATIN CAPITAL LETTER O WITH HORN AND TILDE 1EE2; C; 1EE3; # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW 1EE4; C; 1EE5; # LATIN CAPITAL LETTER U WITH DOT BELOW 1EE6; C; 1EE7; # LATIN CAPITAL LETTER U WITH HOOK ABOVE 1EE8; C; 1EE9; # LATIN CAPITAL LETTER U WITH HORN AND ACUTE 1EEA; C; 1EEB; # LATIN CAPITAL LETTER U WITH HORN AND GRAVE 1EEC; C; 1EED; # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE 1EEE; C; 1EEF; # LATIN CAPITAL LETTER U WITH HORN AND TILDE 1EF0; C; 1EF1; # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW 1EF2; C; 1EF3; # LATIN CAPITAL LETTER Y WITH GRAVE 1EF4; C; 1EF5; # LATIN CAPITAL LETTER Y WITH DOT BELOW 1EF6; C; 1EF7; # LATIN CAPITAL LETTER Y WITH HOOK ABOVE 1EF8; C; 1EF9; # LATIN CAPITAL LETTER Y WITH TILDE 1EFA; C; 1EFB; # LATIN CAPITAL LETTER MIDDLE-WELSH LL 1EFC; C; 1EFD; # LATIN CAPITAL LETTER MIDDLE-WELSH V 1EFE; C; 1EFF; # LATIN CAPITAL LETTER Y WITH LOOP 1F08; C; 1F00; # GREEK CAPITAL LETTER ALPHA WITH PSILI 1F09; C; 1F01; # GREEK CAPITAL LETTER ALPHA WITH DASIA 1F0A; C; 1F02; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA 1F0B; C; 1F03; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA 1F0C; C; 1F04; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA 1F0D; C; 1F05; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA 1F0E; C; 1F06; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI 1F0F; C; 1F07; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI 1F18; C; 1F10; # GREEK CAPITAL LETTER EPSILON WITH PSILI 1F19; C; 1F11; # GREEK CAPITAL LETTER EPSILON WITH DASIA 1F1A; C; 1F12; # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA 1F1B; C; 1F13; # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA 1F1C; C; 1F14; # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA 1F1D; C; 1F15; # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA 1F28; C; 1F20; # GREEK CAPITAL LETTER ETA WITH PSILI 1F29; C; 1F21; # GREEK CAPITAL LETTER ETA WITH DASIA 1F2A; C; 1F22; # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA 1F2B; C; 1F23; # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA 1F2C; C; 1F24; # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA 1F2D; C; 1F25; # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA 1F2E; C; 1F26; # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI 1F2F; C; 1F27; # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI 1F38; C; 1F30; # GREEK CAPITAL LETTER IOTA WITH PSILI 1F39; C; 1F31; # GREEK CAPITAL LETTER IOTA WITH DASIA 1F3A; C; 1F32; # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA 1F3B; C; 1F33; # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA 1F3C; C; 1F34; # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA 1F3D; C; 1F35; # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA 1F3E; C; 1F36; # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI 1F3F; C; 1F37; # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI 1F48; C; 1F40; # GREEK CAPITAL LETTER OMICRON WITH PSILI 1F49; C; 1F41; # GREEK CAPITAL LETTER OMICRON WITH DASIA 1F4A; C; 1F42; # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA 1F4B; C; 1F43; # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA 1F4C; C; 1F44; # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA 1F4D; C; 1F45; # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA 1F50; F; 03C5 0313; # GREEK SMALL LETTER UPSILON WITH PSILI 1F52; F; 03C5 0313 0300; # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA 1F54; F; 03C5 0313 0301; # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA 1F56; F; 03C5 0313 0342; # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI 1F59; C; 1F51; # GREEK CAPITAL LETTER UPSILON WITH DASIA 1F5B; C; 1F53; # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA 1F5D; C; 1F55; # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA 1F5F; C; 1F57; # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI 1F68; C; 1F60; # GREEK CAPITAL LETTER OMEGA WITH PSILI 1F69; C; 1F61; # GREEK CAPITAL LETTER OMEGA WITH DASIA 1F6A; C; 1F62; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA 1F6B; C; 1F63; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA 1F6C; C; 1F64; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA 1F6D; C; 1F65; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA 1F6E; C; 1F66; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI 1F6F; C; 1F67; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI 1F80; F; 1F00 03B9; # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI 1F81; F; 1F01 03B9; # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI 1F82; F; 1F02 03B9; # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI 1F83; F; 1F03 03B9; # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI 1F84; F; 1F04 03B9; # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI 1F85; F; 1F05 03B9; # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI 1F86; F; 1F06 03B9; # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 1F87; F; 1F07 03B9; # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 1F88; F; 1F00 03B9; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI 1F88; S; 1F80; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI 1F89; F; 1F01 03B9; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI 1F89; S; 1F81; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI 1F8A; F; 1F02 03B9; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1F8A; S; 1F82; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1F8B; F; 1F03 03B9; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1F8B; S; 1F83; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1F8C; F; 1F04 03B9; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1F8C; S; 1F84; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1F8D; F; 1F05 03B9; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1F8D; S; 1F85; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1F8E; F; 1F06 03B9; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1F8E; S; 1F86; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1F8F; F; 1F07 03B9; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1F8F; S; 1F87; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1F90; F; 1F20 03B9; # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI 1F91; F; 1F21 03B9; # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI 1F92; F; 1F22 03B9; # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI 1F93; F; 1F23 03B9; # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI 1F94; F; 1F24 03B9; # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI 1F95; F; 1F25 03B9; # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI 1F96; F; 1F26 03B9; # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 1F97; F; 1F27 03B9; # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 1F98; F; 1F20 03B9; # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI 1F98; S; 1F90; # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI 1F99; F; 1F21 03B9; # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI 1F99; S; 1F91; # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI 1F9A; F; 1F22 03B9; # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1F9A; S; 1F92; # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1F9B; F; 1F23 03B9; # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1F9B; S; 1F93; # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1F9C; F; 1F24 03B9; # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1F9C; S; 1F94; # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1F9D; F; 1F25 03B9; # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1F9D; S; 1F95; # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1F9E; F; 1F26 03B9; # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1F9E; S; 1F96; # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1F9F; F; 1F27 03B9; # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1F9F; S; 1F97; # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1FA0; F; 1F60 03B9; # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI 1FA1; F; 1F61 03B9; # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI 1FA2; F; 1F62 03B9; # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI 1FA3; F; 1F63 03B9; # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI 1FA4; F; 1F64 03B9; # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI 1FA5; F; 1F65 03B9; # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI 1FA6; F; 1F66 03B9; # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 1FA7; F; 1F67 03B9; # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 1FA8; F; 1F60 03B9; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI 1FA8; S; 1FA0; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI 1FA9; F; 1F61 03B9; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI 1FA9; S; 1FA1; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI 1FAA; F; 1F62 03B9; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1FAA; S; 1FA2; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1FAB; F; 1F63 03B9; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1FAB; S; 1FA3; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1FAC; F; 1F64 03B9; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1FAC; S; 1FA4; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1FAD; F; 1F65 03B9; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1FAD; S; 1FA5; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1FAE; F; 1F66 03B9; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1FAE; S; 1FA6; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1FAF; F; 1F67 03B9; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1FAF; S; 1FA7; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1FB2; F; 1F70 03B9; # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI 1FB3; F; 03B1 03B9; # GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI 1FB4; F; 03AC 03B9; # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI 1FB6; F; 03B1 0342; # GREEK SMALL LETTER ALPHA WITH PERISPOMENI 1FB7; F; 03B1 0342 03B9; # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI 1FB8; C; 1FB0; # GREEK CAPITAL LETTER ALPHA WITH VRACHY 1FB9; C; 1FB1; # GREEK CAPITAL LETTER ALPHA WITH MACRON 1FBA; C; 1F70; # GREEK CAPITAL LETTER ALPHA WITH VARIA 1FBB; C; 1F71; # GREEK CAPITAL LETTER ALPHA WITH OXIA 1FBC; F; 03B1 03B9; # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI 1FBC; S; 1FB3; # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI 1FBE; C; 03B9; # GREEK PROSGEGRAMMENI 1FC2; F; 1F74 03B9; # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI 1FC3; F; 03B7 03B9; # GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI 1FC4; F; 03AE 03B9; # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI 1FC6; F; 03B7 0342; # GREEK SMALL LETTER ETA WITH PERISPOMENI 1FC7; F; 03B7 0342 03B9; # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI 1FC8; C; 1F72; # GREEK CAPITAL LETTER EPSILON WITH VARIA 1FC9; C; 1F73; # GREEK CAPITAL LETTER EPSILON WITH OXIA 1FCA; C; 1F74; # GREEK CAPITAL LETTER ETA WITH VARIA 1FCB; C; 1F75; # GREEK CAPITAL LETTER ETA WITH OXIA 1FCC; F; 03B7 03B9; # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI 1FCC; S; 1FC3; # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI 1FD2; F; 03B9 0308 0300; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA 1FD3; F; 03B9 0308 0301; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA 1FD6; F; 03B9 0342; # GREEK SMALL LETTER IOTA WITH PERISPOMENI 1FD7; F; 03B9 0308 0342; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI 1FD8; C; 1FD0; # GREEK CAPITAL LETTER IOTA WITH VRACHY 1FD9; C; 1FD1; # GREEK CAPITAL LETTER IOTA WITH MACRON 1FDA; C; 1F76; # GREEK CAPITAL LETTER IOTA WITH VARIA 1FDB; C; 1F77; # GREEK CAPITAL LETTER IOTA WITH OXIA 1FE2; F; 03C5 0308 0300; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA 1FE3; F; 03C5 0308 0301; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA 1FE4; F; 03C1 0313; # GREEK SMALL LETTER RHO WITH PSILI 1FE6; F; 03C5 0342; # GREEK SMALL LETTER UPSILON WITH PERISPOMENI 1FE7; F; 03C5 0308 0342; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI 1FE8; C; 1FE0; # GREEK CAPITAL LETTER UPSILON WITH VRACHY 1FE9; C; 1FE1; # GREEK CAPITAL LETTER UPSILON WITH MACRON 1FEA; C; 1F7A; # GREEK CAPITAL LETTER UPSILON WITH VARIA 1FEB; C; 1F7B; # GREEK CAPITAL LETTER UPSILON WITH OXIA 1FEC; C; 1FE5; # GREEK CAPITAL LETTER RHO WITH DASIA 1FF2; F; 1F7C 03B9; # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI 1FF3; F; 03C9 03B9; # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI 1FF4; F; 03CE 03B9; # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI 1FF6; F; 03C9 0342; # GREEK SMALL LETTER OMEGA WITH PERISPOMENI 1FF7; F; 03C9 0342 03B9; # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI 1FF8; C; 1F78; # GREEK CAPITAL LETTER OMICRON WITH VARIA 1FF9; C; 1F79; # GREEK CAPITAL LETTER OMICRON WITH OXIA 1FFA; C; 1F7C; # GREEK CAPITAL LETTER OMEGA WITH VARIA 1FFB; C; 1F7D; # GREEK CAPITAL LETTER OMEGA WITH OXIA 1FFC; F; 03C9 03B9; # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI 1FFC; S; 1FF3; # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI 2126; C; 03C9; # OHM SIGN 212A; C; 006B; # KELVIN SIGN 212B; C; 00E5; # ANGSTROM SIGN 2132; C; 214E; # TURNED CAPITAL F 2160; C; 2170; # ROMAN NUMERAL ONE 2161; C; 2171; # ROMAN NUMERAL TWO 2162; C; 2172; # ROMAN NUMERAL THREE 2163; C; 2173; # ROMAN NUMERAL FOUR 2164; C; 2174; # ROMAN NUMERAL FIVE 2165; C; 2175; # ROMAN NUMERAL SIX 2166; C; 2176; # ROMAN NUMERAL SEVEN 2167; C; 2177; # ROMAN NUMERAL EIGHT 2168; C; 2178; # ROMAN NUMERAL NINE 2169; C; 2179; # ROMAN NUMERAL TEN 216A; C; 217A; # ROMAN NUMERAL ELEVEN 216B; C; 217B; # ROMAN NUMERAL TWELVE 216C; C; 217C; # ROMAN NUMERAL FIFTY 216D; C; 217D; # ROMAN NUMERAL ONE HUNDRED 216E; C; 217E; # ROMAN NUMERAL FIVE HUNDRED 216F; C; 217F; # ROMAN NUMERAL ONE THOUSAND 2183; C; 2184; # ROMAN NUMERAL REVERSED ONE HUNDRED 24B6; C; 24D0; # CIRCLED LATIN CAPITAL LETTER A 24B7; C; 24D1; # CIRCLED LATIN CAPITAL LETTER B 24B8; C; 24D2; # CIRCLED LATIN CAPITAL LETTER C 24B9; C; 24D3; # CIRCLED LATIN CAPITAL LETTER D 24BA; C; 24D4; # CIRCLED LATIN CAPITAL LETTER E 24BB; C; 24D5; # CIRCLED LATIN CAPITAL LETTER F 24BC; C; 24D6; # CIRCLED LATIN CAPITAL LETTER G 24BD; C; 24D7; # CIRCLED LATIN CAPITAL LETTER H 24BE; C; 24D8; # CIRCLED LATIN CAPITAL LETTER I 24BF; C; 24D9; # CIRCLED LATIN CAPITAL LETTER J 24C0; C; 24DA; # CIRCLED LATIN CAPITAL LETTER K 24C1; C; 24DB; # CIRCLED LATIN CAPITAL LETTER L 24C2; C; 24DC; # CIRCLED LATIN CAPITAL LETTER M 24C3; C; 24DD; # CIRCLED LATIN CAPITAL LETTER N 24C4; C; 24DE; # CIRCLED LATIN CAPITAL LETTER O 24C5; C; 24DF; # CIRCLED LATIN CAPITAL LETTER P 24C6; C; 24E0; # CIRCLED LATIN CAPITAL LETTER Q 24C7; C; 24E1; # CIRCLED LATIN CAPITAL LETTER R 24C8; C; 24E2; # CIRCLED LATIN CAPITAL LETTER S 24C9; C; 24E3; # CIRCLED LATIN CAPITAL LETTER T 24CA; C; 24E4; # CIRCLED LATIN CAPITAL LETTER U 24CB; C; 24E5; # CIRCLED LATIN CAPITAL LETTER V 24CC; C; 24E6; # CIRCLED LATIN CAPITAL LETTER W 24CD; C; 24E7; # CIRCLED LATIN CAPITAL LETTER X 24CE; C; 24E8; # CIRCLED LATIN CAPITAL LETTER Y 24CF; C; 24E9; # CIRCLED LATIN CAPITAL LETTER Z 2C00; C; 2C30; # GLAGOLITIC CAPITAL LETTER AZU 2C01; C; 2C31; # GLAGOLITIC CAPITAL LETTER BUKY 2C02; C; 2C32; # GLAGOLITIC CAPITAL LETTER VEDE 2C03; C; 2C33; # GLAGOLITIC CAPITAL LETTER GLAGOLI 2C04; C; 2C34; # GLAGOLITIC CAPITAL LETTER DOBRO 2C05; C; 2C35; # GLAGOLITIC CAPITAL LETTER YESTU 2C06; C; 2C36; # GLAGOLITIC CAPITAL LETTER ZHIVETE 2C07; C; 2C37; # GLAGOLITIC CAPITAL LETTER DZELO 2C08; C; 2C38; # GLAGOLITIC CAPITAL LETTER ZEMLJA 2C09; C; 2C39; # GLAGOLITIC CAPITAL LETTER IZHE 2C0A; C; 2C3A; # GLAGOLITIC CAPITAL LETTER INITIAL IZHE 2C0B; C; 2C3B; # GLAGOLITIC CAPITAL LETTER I 2C0C; C; 2C3C; # GLAGOLITIC CAPITAL LETTER DJERVI 2C0D; C; 2C3D; # GLAGOLITIC CAPITAL LETTER KAKO 2C0E; C; 2C3E; # GLAGOLITIC CAPITAL LETTER LJUDIJE 2C0F; C; 2C3F; # GLAGOLITIC CAPITAL LETTER MYSLITE 2C10; C; 2C40; # GLAGOLITIC CAPITAL LETTER NASHI 2C11; C; 2C41; # GLAGOLITIC CAPITAL LETTER ONU 2C12; C; 2C42; # GLAGOLITIC CAPITAL LETTER POKOJI 2C13; C; 2C43; # GLAGOLITIC CAPITAL LETTER RITSI 2C14; C; 2C44; # GLAGOLITIC CAPITAL LETTER SLOVO 2C15; C; 2C45; # GLAGOLITIC CAPITAL LETTER TVRIDO 2C16; C; 2C46; # GLAGOLITIC CAPITAL LETTER UKU 2C17; C; 2C47; # GLAGOLITIC CAPITAL LETTER FRITU 2C18; C; 2C48; # GLAGOLITIC CAPITAL LETTER HERU 2C19; C; 2C49; # GLAGOLITIC CAPITAL LETTER OTU 2C1A; C; 2C4A; # GLAGOLITIC CAPITAL LETTER PE 2C1B; C; 2C4B; # GLAGOLITIC CAPITAL LETTER SHTA 2C1C; C; 2C4C; # GLAGOLITIC CAPITAL LETTER TSI 2C1D; C; 2C4D; # GLAGOLITIC CAPITAL LETTER CHRIVI 2C1E; C; 2C4E; # GLAGOLITIC CAPITAL LETTER SHA 2C1F; C; 2C4F; # GLAGOLITIC CAPITAL LETTER YERU 2C20; C; 2C50; # GLAGOLITIC CAPITAL LETTER YERI 2C21; C; 2C51; # GLAGOLITIC CAPITAL LETTER YATI 2C22; C; 2C52; # GLAGOLITIC CAPITAL LETTER SPIDERY HA 2C23; C; 2C53; # GLAGOLITIC CAPITAL LETTER YU 2C24; C; 2C54; # GLAGOLITIC CAPITAL LETTER SMALL YUS 2C25; C; 2C55; # GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL 2C26; C; 2C56; # GLAGOLITIC CAPITAL LETTER YO 2C27; C; 2C57; # GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS 2C28; C; 2C58; # GLAGOLITIC CAPITAL LETTER BIG YUS 2C29; C; 2C59; # GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS 2C2A; C; 2C5A; # GLAGOLITIC CAPITAL LETTER FITA 2C2B; C; 2C5B; # GLAGOLITIC CAPITAL LETTER IZHITSA 2C2C; C; 2C5C; # GLAGOLITIC CAPITAL LETTER SHTAPIC 2C2D; C; 2C5D; # GLAGOLITIC CAPITAL LETTER TROKUTASTI A 2C2E; C; 2C5E; # GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE 2C60; C; 2C61; # LATIN CAPITAL LETTER L WITH DOUBLE BAR 2C62; C; 026B; # LATIN CAPITAL LETTER L WITH MIDDLE TILDE 2C63; C; 1D7D; # LATIN CAPITAL LETTER P WITH STROKE 2C64; C; 027D; # LATIN CAPITAL LETTER R WITH TAIL 2C67; C; 2C68; # LATIN CAPITAL LETTER H WITH DESCENDER 2C69; C; 2C6A; # LATIN CAPITAL LETTER K WITH DESCENDER 2C6B; C; 2C6C; # LATIN CAPITAL LETTER Z WITH DESCENDER 2C6D; C; 0251; # LATIN CAPITAL LETTER ALPHA 2C6E; C; 0271; # LATIN CAPITAL LETTER M WITH HOOK 2C6F; C; 0250; # LATIN CAPITAL LETTER TURNED A 2C70; C; 0252; # LATIN CAPITAL LETTER TURNED ALPHA 2C72; C; 2C73; # LATIN CAPITAL LETTER W WITH HOOK 2C75; C; 2C76; # LATIN CAPITAL LETTER HALF H 2C7E; C; 023F; # LATIN CAPITAL LETTER S WITH SWASH TAIL 2C7F; C; 0240; # LATIN CAPITAL LETTER Z WITH SWASH TAIL 2C80; C; 2C81; # COPTIC CAPITAL LETTER ALFA 2C82; C; 2C83; # COPTIC CAPITAL LETTER VIDA 2C84; C; 2C85; # COPTIC CAPITAL LETTER GAMMA 2C86; C; 2C87; # COPTIC CAPITAL LETTER DALDA 2C88; C; 2C89; # COPTIC CAPITAL LETTER EIE 2C8A; C; 2C8B; # COPTIC CAPITAL LETTER SOU 2C8C; C; 2C8D; # COPTIC CAPITAL LETTER ZATA 2C8E; C; 2C8F; # COPTIC CAPITAL LETTER HATE 2C90; C; 2C91; # COPTIC CAPITAL LETTER THETHE 2C92; C; 2C93; # COPTIC CAPITAL LETTER IAUDA 2C94; C; 2C95; # COPTIC CAPITAL LETTER KAPA 2C96; C; 2C97; # COPTIC CAPITAL LETTER LAULA 2C98; C; 2C99; # COPTIC CAPITAL LETTER MI 2C9A; C; 2C9B; # COPTIC CAPITAL LETTER NI 2C9C; C; 2C9D; # COPTIC CAPITAL LETTER KSI 2C9E; C; 2C9F; # COPTIC CAPITAL LETTER O 2CA0; C; 2CA1; # COPTIC CAPITAL LETTER PI 2CA2; C; 2CA3; # COPTIC CAPITAL LETTER RO 2CA4; C; 2CA5; # COPTIC CAPITAL LETTER SIMA 2CA6; C; 2CA7; # COPTIC CAPITAL LETTER TAU 2CA8; C; 2CA9; # COPTIC CAPITAL LETTER UA 2CAA; C; 2CAB; # COPTIC CAPITAL LETTER FI 2CAC; C; 2CAD; # COPTIC CAPITAL LETTER KHI 2CAE; C; 2CAF; # COPTIC CAPITAL LETTER PSI 2CB0; C; 2CB1; # COPTIC CAPITAL LETTER OOU 2CB2; C; 2CB3; # COPTIC CAPITAL LETTER DIALECT-P ALEF 2CB4; C; 2CB5; # COPTIC CAPITAL LETTER OLD COPTIC AIN 2CB6; C; 2CB7; # COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE 2CB8; C; 2CB9; # COPTIC CAPITAL LETTER DIALECT-P KAPA 2CBA; C; 2CBB; # COPTIC CAPITAL LETTER DIALECT-P NI 2CBC; C; 2CBD; # COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI 2CBE; C; 2CBF; # COPTIC CAPITAL LETTER OLD COPTIC OOU 2CC0; C; 2CC1; # COPTIC CAPITAL LETTER SAMPI 2CC2; C; 2CC3; # COPTIC CAPITAL LETTER CROSSED SHEI 2CC4; C; 2CC5; # COPTIC CAPITAL LETTER OLD COPTIC SHEI 2CC6; C; 2CC7; # COPTIC CAPITAL LETTER OLD COPTIC ESH 2CC8; C; 2CC9; # COPTIC CAPITAL LETTER AKHMIMIC KHEI 2CCA; C; 2CCB; # COPTIC CAPITAL LETTER DIALECT-P HORI 2CCC; C; 2CCD; # COPTIC CAPITAL LETTER OLD COPTIC HORI 2CCE; C; 2CCF; # COPTIC CAPITAL LETTER OLD COPTIC HA 2CD0; C; 2CD1; # COPTIC CAPITAL LETTER L-SHAPED HA 2CD2; C; 2CD3; # COPTIC CAPITAL LETTER OLD COPTIC HEI 2CD4; C; 2CD5; # COPTIC CAPITAL LETTER OLD COPTIC HAT 2CD6; C; 2CD7; # COPTIC CAPITAL LETTER OLD COPTIC GANGIA 2CD8; C; 2CD9; # COPTIC CAPITAL LETTER OLD COPTIC DJA 2CDA; C; 2CDB; # COPTIC CAPITAL LETTER OLD COPTIC SHIMA 2CDC; C; 2CDD; # COPTIC CAPITAL LETTER OLD NUBIAN SHIMA 2CDE; C; 2CDF; # COPTIC CAPITAL LETTER OLD NUBIAN NGI 2CE0; C; 2CE1; # COPTIC CAPITAL LETTER OLD NUBIAN NYI 2CE2; C; 2CE3; # COPTIC CAPITAL LETTER OLD NUBIAN WAU 2CEB; C; 2CEC; # COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI 2CED; C; 2CEE; # COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA 2CF2; C; 2CF3; # COPTIC CAPITAL LETTER BOHAIRIC KHEI A640; C; A641; # CYRILLIC CAPITAL LETTER ZEMLYA A642; C; A643; # CYRILLIC CAPITAL LETTER DZELO A644; C; A645; # CYRILLIC CAPITAL LETTER REVERSED DZE A646; C; A647; # CYRILLIC CAPITAL LETTER IOTA A648; C; A649; # CYRILLIC CAPITAL LETTER DJERV A64A; C; A64B; # CYRILLIC CAPITAL LETTER MONOGRAPH UK A64C; C; A64D; # CYRILLIC CAPITAL LETTER BROAD OMEGA A64E; C; A64F; # CYRILLIC CAPITAL LETTER NEUTRAL YER A650; C; A651; # CYRILLIC CAPITAL LETTER YERU WITH BACK YER A652; C; A653; # CYRILLIC CAPITAL LETTER IOTIFIED YAT A654; C; A655; # CYRILLIC CAPITAL LETTER REVERSED YU A656; C; A657; # CYRILLIC CAPITAL LETTER IOTIFIED A A658; C; A659; # CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS A65A; C; A65B; # CYRILLIC CAPITAL LETTER BLENDED YUS A65C; C; A65D; # CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS A65E; C; A65F; # CYRILLIC CAPITAL LETTER YN A660; C; A661; # CYRILLIC CAPITAL LETTER REVERSED TSE A662; C; A663; # CYRILLIC CAPITAL LETTER SOFT DE A664; C; A665; # CYRILLIC CAPITAL LETTER SOFT EL A666; C; A667; # CYRILLIC CAPITAL LETTER SOFT EM A668; C; A669; # CYRILLIC CAPITAL LETTER MONOCULAR O A66A; C; A66B; # CYRILLIC CAPITAL LETTER BINOCULAR O A66C; C; A66D; # CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O A680; C; A681; # CYRILLIC CAPITAL LETTER DWE A682; C; A683; # CYRILLIC CAPITAL LETTER DZWE A684; C; A685; # CYRILLIC CAPITAL LETTER ZHWE A686; C; A687; # CYRILLIC CAPITAL LETTER CCHE A688; C; A689; # CYRILLIC CAPITAL LETTER DZZE A68A; C; A68B; # CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK A68C; C; A68D; # CYRILLIC CAPITAL LETTER TWE A68E; C; A68F; # CYRILLIC CAPITAL LETTER TSWE A690; C; A691; # CYRILLIC CAPITAL LETTER TSSE A692; C; A693; # CYRILLIC CAPITAL LETTER TCHE A694; C; A695; # CYRILLIC CAPITAL LETTER HWE A696; C; A697; # CYRILLIC CAPITAL LETTER SHWE A722; C; A723; # LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF A724; C; A725; # LATIN CAPITAL LETTER EGYPTOLOGICAL AIN A726; C; A727; # LATIN CAPITAL LETTER HENG A728; C; A729; # LATIN CAPITAL LETTER TZ A72A; C; A72B; # LATIN CAPITAL LETTER TRESILLO A72C; C; A72D; # LATIN CAPITAL LETTER CUATRILLO A72E; C; A72F; # LATIN CAPITAL LETTER CUATRILLO WITH COMMA A732; C; A733; # LATIN CAPITAL LETTER AA A734; C; A735; # LATIN CAPITAL LETTER AO A736; C; A737; # LATIN CAPITAL LETTER AU A738; C; A739; # LATIN CAPITAL LETTER AV A73A; C; A73B; # LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR A73C; C; A73D; # LATIN CAPITAL LETTER AY A73E; C; A73F; # LATIN CAPITAL LETTER REVERSED C WITH DOT A740; C; A741; # LATIN CAPITAL LETTER K WITH STROKE A742; C; A743; # LATIN CAPITAL LETTER K WITH DIAGONAL STROKE A744; C; A745; # LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE A746; C; A747; # LATIN CAPITAL LETTER BROKEN L A748; C; A749; # LATIN CAPITAL LETTER L WITH HIGH STROKE A74A; C; A74B; # LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY A74C; C; A74D; # LATIN CAPITAL LETTER O WITH LOOP A74E; C; A74F; # LATIN CAPITAL LETTER OO A750; C; A751; # LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER A752; C; A753; # LATIN CAPITAL LETTER P WITH FLOURISH A754; C; A755; # LATIN CAPITAL LETTER P WITH SQUIRREL TAIL A756; C; A757; # LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER A758; C; A759; # LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE A75A; C; A75B; # LATIN CAPITAL LETTER R ROTUNDA A75C; C; A75D; # LATIN CAPITAL LETTER RUM ROTUNDA A75E; C; A75F; # LATIN CAPITAL LETTER V WITH DIAGONAL STROKE A760; C; A761; # LATIN CAPITAL LETTER VY A762; C; A763; # LATIN CAPITAL LETTER VISIGOTHIC Z A764; C; A765; # LATIN CAPITAL LETTER THORN WITH STROKE A766; C; A767; # LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER A768; C; A769; # LATIN CAPITAL LETTER VEND A76A; C; A76B; # LATIN CAPITAL LETTER ET A76C; C; A76D; # LATIN CAPITAL LETTER IS A76E; C; A76F; # LATIN CAPITAL LETTER CON A779; C; A77A; # LATIN CAPITAL LETTER INSULAR D A77B; C; A77C; # LATIN CAPITAL LETTER INSULAR F A77D; C; 1D79; # LATIN CAPITAL LETTER INSULAR G A77E; C; A77F; # LATIN CAPITAL LETTER TURNED INSULAR G A780; C; A781; # LATIN CAPITAL LETTER TURNED L A782; C; A783; # LATIN CAPITAL LETTER INSULAR R A784; C; A785; # LATIN CAPITAL LETTER INSULAR S A786; C; A787; # LATIN CAPITAL LETTER INSULAR T A78B; C; A78C; # LATIN CAPITAL LETTER SALTILLO 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 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 FB00; F; 0066 0066; # LATIN SMALL LIGATURE FF FB01; F; 0066 0069; # LATIN SMALL LIGATURE FI FB02; F; 0066 006C; # LATIN SMALL LIGATURE FL FB03; F; 0066 0066 0069; # LATIN SMALL LIGATURE FFI FB04; F; 0066 0066 006C; # LATIN SMALL LIGATURE FFL FB05; F; 0073 0074; # LATIN SMALL LIGATURE LONG S T FB06; F; 0073 0074; # LATIN SMALL LIGATURE ST FB13; F; 0574 0576; # ARMENIAN SMALL LIGATURE MEN NOW FB14; F; 0574 0565; # ARMENIAN SMALL LIGATURE MEN ECH FB15; F; 0574 056B; # ARMENIAN SMALL LIGATURE MEN INI FB16; F; 057E 0576; # ARMENIAN SMALL LIGATURE VEW NOW FB17; F; 0574 056D; # ARMENIAN SMALL LIGATURE MEN XEH FF21; C; FF41; # FULLWIDTH LATIN CAPITAL LETTER A FF22; C; FF42; # FULLWIDTH LATIN CAPITAL LETTER B FF23; C; FF43; # FULLWIDTH LATIN CAPITAL LETTER C FF24; C; FF44; # FULLWIDTH LATIN CAPITAL LETTER D FF25; C; FF45; # FULLWIDTH LATIN CAPITAL LETTER E FF26; C; FF46; # FULLWIDTH LATIN CAPITAL LETTER F FF27; C; FF47; # FULLWIDTH LATIN CAPITAL LETTER G FF28; C; FF48; # FULLWIDTH LATIN CAPITAL LETTER H FF29; C; FF49; # FULLWIDTH LATIN CAPITAL LETTER I FF2A; C; FF4A; # FULLWIDTH LATIN CAPITAL LETTER J FF2B; C; FF4B; # FULLWIDTH LATIN CAPITAL LETTER K FF2C; C; FF4C; # FULLWIDTH LATIN CAPITAL LETTER L FF2D; C; FF4D; # FULLWIDTH LATIN CAPITAL LETTER M FF2E; C; FF4E; # FULLWIDTH LATIN CAPITAL LETTER N FF2F; C; FF4F; # FULLWIDTH LATIN CAPITAL LETTER O FF30; C; FF50; # FULLWIDTH LATIN CAPITAL LETTER P FF31; C; FF51; # FULLWIDTH LATIN CAPITAL LETTER Q FF32; C; FF52; # FULLWIDTH LATIN CAPITAL LETTER R FF33; C; FF53; # FULLWIDTH LATIN CAPITAL LETTER S FF34; C; FF54; # FULLWIDTH LATIN CAPITAL LETTER T FF35; C; FF55; # FULLWIDTH LATIN CAPITAL LETTER U FF36; C; FF56; # FULLWIDTH LATIN CAPITAL LETTER V FF37; C; FF57; # FULLWIDTH LATIN CAPITAL LETTER W FF38; C; FF58; # FULLWIDTH LATIN CAPITAL LETTER X FF39; C; FF59; # FULLWIDTH LATIN CAPITAL LETTER Y FF3A; C; FF5A; # FULLWIDTH LATIN CAPITAL LETTER Z 10400; C; 10428; # DESERET CAPITAL LETTER LONG I 10401; C; 10429; # DESERET CAPITAL LETTER LONG E 10402; C; 1042A; # DESERET CAPITAL LETTER LONG A 10403; C; 1042B; # DESERET CAPITAL LETTER LONG AH 10404; C; 1042C; # DESERET CAPITAL LETTER LONG O 10405; C; 1042D; # DESERET CAPITAL LETTER LONG OO 10406; C; 1042E; # DESERET CAPITAL LETTER SHORT I 10407; C; 1042F; # DESERET CAPITAL LETTER SHORT E 10408; C; 10430; # DESERET CAPITAL LETTER SHORT A 10409; C; 10431; # DESERET CAPITAL LETTER SHORT AH 1040A; C; 10432; # DESERET CAPITAL LETTER SHORT O 1040B; C; 10433; # DESERET CAPITAL LETTER SHORT OO 1040C; C; 10434; # DESERET CAPITAL LETTER AY 1040D; C; 10435; # DESERET CAPITAL LETTER OW 1040E; C; 10436; # DESERET CAPITAL LETTER WU 1040F; C; 10437; # DESERET CAPITAL LETTER YEE 10410; C; 10438; # DESERET CAPITAL LETTER H 10411; C; 10439; # DESERET CAPITAL LETTER PEE 10412; C; 1043A; # DESERET CAPITAL LETTER BEE 10413; C; 1043B; # DESERET CAPITAL LETTER TEE 10414; C; 1043C; # DESERET CAPITAL LETTER DEE 10415; C; 1043D; # DESERET CAPITAL LETTER CHEE 10416; C; 1043E; # DESERET CAPITAL LETTER JEE 10417; C; 1043F; # DESERET CAPITAL LETTER KAY 10418; C; 10440; # DESERET CAPITAL LETTER GAY 10419; C; 10441; # DESERET CAPITAL LETTER EF 1041A; C; 10442; # DESERET CAPITAL LETTER VEE 1041B; C; 10443; # DESERET CAPITAL LETTER ETH 1041C; C; 10444; # DESERET CAPITAL LETTER THEE 1041D; C; 10445; # DESERET CAPITAL LETTER ES 1041E; C; 10446; # DESERET CAPITAL LETTER ZEE 1041F; C; 10447; # DESERET CAPITAL LETTER ESH 10420; C; 10448; # DESERET CAPITAL LETTER ZHEE 10421; C; 10449; # DESERET CAPITAL LETTER ER 10422; C; 1044A; # DESERET CAPITAL LETTER EL 10423; C; 1044B; # DESERET CAPITAL LETTER EM 10424; C; 1044C; # DESERET CAPITAL LETTER EN 10425; C; 1044D; # DESERET CAPITAL LETTER ENG 10426; C; 1044E; # DESERET CAPITAL LETTER OI 10427; C; 1044F; # DESERET CAPITAL LETTER EW # # EOF fontconfig-2.11.1/fc-case/Makefile.am0000664000076400007640000000257412267155333014237 00000000000000# -*- encoding: utf-8 -*- # # Copyright © 2003 Keith Packard # Copyright © 2013 Google, Inc. # # 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. # # Google Author(s): Behdad Esfahbod TAG=case DEPS = $(srcdir)/CaseFolding.txt ARGS = $(srcdir)/CaseFolding.txt DIST = $(srcdir)/CaseFolding.txt include $(top_srcdir)/Tools.mk -include $(top_srcdir)/git.mk fontconfig-2.11.1/fc-case/fc-case.c0000664000076400007640000002103512267155333013641 00000000000000/* * fontconfig/fc-case/fc-case.c * * Copyright © 2004 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" #include #define MAX_OUT 32 #define MAX_LINE 8192 typedef enum _caseFoldClass { CaseFoldCommon, CaseFoldFull, CaseFoldSimple, CaseFoldTurkic } CaseFoldClass; typedef struct _caseFoldClassMap { const char *name; CaseFoldClass class; } CaseFoldClassMap; static const CaseFoldClassMap caseFoldClassMap[] = { { "C", CaseFoldCommon }, { "F", CaseFoldFull }, { "S", CaseFoldSimple }, { "T", CaseFoldTurkic }, { 0, 0 } }; typedef struct _caseFoldRaw { FcChar32 upper; CaseFoldClass class; int nout; FcChar32 lower[MAX_OUT]; } CaseFoldRaw; static void panic (const char *reason) { fprintf (stderr, "fc-case: panic %s\n", reason); exit (1); } int maxExpand; static FcCaseFold *folds; int nfolds; static FcCaseFold * addFold (void) { if (folds) folds = realloc (folds, (nfolds + 1) * sizeof (FcCaseFold)); else folds = malloc (sizeof (FcCaseFold)); if (!folds) panic ("out of memory"); return &folds[nfolds++]; } static int ucs4_to_utf8 (FcChar32 ucs4, FcChar8 dest[FC_UTF8_MAX_LEN]) { int bits; FcChar8 *d = dest; if (ucs4 < 0x80) { *d++= ucs4; bits= -6; } else if (ucs4 < 0x800) { *d++= ((ucs4 >> 6) & 0x1F) | 0xC0; bits= 0; } else if (ucs4 < 0x10000) { *d++= ((ucs4 >> 12) & 0x0F) | 0xE0; bits= 6; } else if (ucs4 < 0x200000) { *d++= ((ucs4 >> 18) & 0x07) | 0xF0; bits= 12; } else if (ucs4 < 0x4000000) { *d++= ((ucs4 >> 24) & 0x03) | 0xF8; bits= 18; } else if (ucs4 < 0x80000000) { *d++= ((ucs4 >> 30) & 0x01) | 0xFC; bits= 24; } else return 0; for ( ; bits >= 0; bits-= 6) { *d++= ((ucs4 >> bits) & 0x3F) | 0x80; } return d - dest; } static int utf8_size (FcChar32 ucs4) { FcChar8 utf8[FC_UTF8_MAX_LEN]; return ucs4_to_utf8 (ucs4, utf8 ); } static FcChar8 *foldChars; static int nfoldChars; static int maxFoldChars; static FcChar32 minFoldChar; static FcChar32 maxFoldChar; static void addChar (FcChar32 c) { FcChar8 utf8[FC_UTF8_MAX_LEN]; int len; int i; len = ucs4_to_utf8 (c, utf8); if (foldChars) foldChars = realloc (foldChars, (nfoldChars + len) * sizeof (FcChar8)); else foldChars = malloc (sizeof (FcChar8) * len); if (!foldChars) panic ("out of memory"); for (i = 0; i < len; i++) foldChars[nfoldChars + i] = utf8[i]; nfoldChars += len; } static int foldExtends (FcCaseFold *fold, CaseFoldRaw *raw) { switch (fold->method) { case FC_CASE_FOLD_RANGE: if ((short) (raw->lower[0] - raw->upper) != fold->offset) return 0; if (raw->upper != fold->upper + fold->count) return 0; return 1; case FC_CASE_FOLD_EVEN_ODD: if ((short) (raw->lower[0] - raw->upper) != 1) return 0; if (raw->upper != fold->upper + fold->count + 1) return 0; return 1; case FC_CASE_FOLD_FULL: break; } return 0; } static const char * case_fold_method_name (FcChar16 method) { switch (method) { case FC_CASE_FOLD_RANGE: return "FC_CASE_FOLD_RANGE,"; case FC_CASE_FOLD_EVEN_ODD: return "FC_CASE_FOLD_EVEN_ODD,"; case FC_CASE_FOLD_FULL: return "FC_CASE_FOLD_FULL,"; default: return "unknown"; } } static void dump (void) { int i; printf ( "#define FC_NUM_CASE_FOLD %d\n", nfolds); printf ( "#define FC_NUM_CASE_FOLD_CHARS %d\n", nfoldChars); printf ( "#define FC_MAX_CASE_FOLD_CHARS %d\n", maxFoldChars); printf ( "#define FC_MAX_CASE_FOLD_EXPAND %d\n", maxExpand); printf ( "#define FC_MIN_FOLD_CHAR 0x%08x\n", minFoldChar); printf ( "#define FC_MAX_FOLD_CHAR 0x%08x\n", maxFoldChar); printf ( "\n"); /* * Dump out ranges */ printf ("static const FcCaseFold fcCaseFold[FC_NUM_CASE_FOLD] = {\n"); for (i = 0; i < nfolds; i++) { printf (" { 0x%08x, %-22s 0x%04x, %6d },\n", folds[i].upper, case_fold_method_name (folds[i].method), folds[i].count, folds[i].offset); } printf ("};\n\n"); /* * Dump out "other" values */ printf ("static const FcChar8 fcCaseFoldChars[FC_NUM_CASE_FOLD_CHARS] = {\n"); for (i = 0; i < nfoldChars; i++) { printf ("0x%02x", foldChars[i]); if (i != nfoldChars - 1) { if ((i & 0xf) == 0xf) printf (",\n"); else printf (","); } } printf ("\n};\n"); } /* * Read the standard Unicode CaseFolding.txt file */ #define SEP "; \t\n" static int parseRaw (char *line, CaseFoldRaw *raw) { char *tok, *end; int i; if (!isxdigit (line[0])) return 0; /* * Get upper case value */ tok = strtok (line, SEP); if (!tok || tok[0] == '#') return 0; raw->upper = strtol (tok, &end, 16); if (end == tok) return 0; /* * Get class */ tok = strtok (NULL, SEP); if (!tok || tok[0] == '#') return 0; for (i = 0; caseFoldClassMap[i].name; i++) if (!strcmp (tok, caseFoldClassMap[i].name)) { raw->class = caseFoldClassMap[i].class; break; } if (!caseFoldClassMap[i].name) return 0; /* * Get list of result characters */ for (i = 0; i < MAX_OUT; i++) { tok = strtok (NULL, SEP); if (!tok || tok[0] == '#') break; raw->lower[i] = strtol (tok, &end, 16); if (end == tok) break; } if (i == 0) return 0; raw->nout = i; return 1; } static int caseFoldReadRaw (FILE *in, CaseFoldRaw *raw) { char line[MAX_LINE]; for (;;) { if (!fgets (line, sizeof (line) - 1, in)) return 0; if (parseRaw (line, raw)) return 1; } } int main (int argc, char **argv) { FcCaseFold *fold = 0; CaseFoldRaw raw; int i; FILE *caseFile; char line[MAX_LINE]; int expand; if (argc != 2) panic ("usage: fc-case CaseFolding.txt"); caseFile = fopen (argv[1], "r"); if (!caseFile) panic ("can't open case folding file"); while (caseFoldReadRaw (caseFile, &raw)) { if (!minFoldChar) minFoldChar = raw.upper; maxFoldChar = raw.upper; switch (raw.class) { case CaseFoldCommon: case CaseFoldFull: if (raw.nout == 1) { if (fold && foldExtends (fold, &raw)) fold->count = raw.upper - fold->upper + 1; else { fold = addFold (); fold->upper = raw.upper; fold->offset = raw.lower[0] - raw.upper; if (fold->offset == 1) fold->method = FC_CASE_FOLD_EVEN_ODD; else fold->method = FC_CASE_FOLD_RANGE; fold->count = 1; } expand = utf8_size (raw.lower[0]) - utf8_size(raw.upper); } else { fold = addFold (); fold->upper = raw.upper; fold->method = FC_CASE_FOLD_FULL; fold->offset = nfoldChars; for (i = 0; i < raw.nout; i++) addChar (raw.lower[i]); fold->count = nfoldChars - fold->offset; if (fold->count > maxFoldChars) maxFoldChars = fold->count; expand = fold->count - utf8_size (raw.upper); } if (expand > maxExpand) maxExpand = expand; break; case CaseFoldSimple: break; case CaseFoldTurkic: break; } } /* * Scan the input until the marker is found */ while (fgets (line, sizeof (line), stdin)) { if (!strncmp (line, "@@@", 3)) break; fputs (line, stdout); } /* * Dump these tables */ dump (); /* * And flush out the rest of the input file */ while (fgets (line, sizeof (line), stdin)) fputs (line, stdout); fflush (stdout); exit (ferror (stdout)); } fontconfig-2.11.1/fc-case/fccase.h0000664000076400007640000004604512267711644013604 00000000000000/* * fontconfig/fc-case/fccase.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. */ #define FC_NUM_CASE_FOLD 264 #define FC_NUM_CASE_FOLD_CHARS 471 #define FC_MAX_CASE_FOLD_CHARS 6 #define FC_MAX_CASE_FOLD_EXPAND 4 #define FC_MIN_FOLD_CHAR 0x00000041 #define FC_MAX_FOLD_CHAR 0x00010427 static const FcCaseFold fcCaseFold[FC_NUM_CASE_FOLD] = { { 0x00000041, FC_CASE_FOLD_RANGE, 0x001a, 32 }, { 0x000000b5, FC_CASE_FOLD_RANGE, 0x0001, 775 }, { 0x000000c0, FC_CASE_FOLD_RANGE, 0x0017, 32 }, { 0x000000d8, FC_CASE_FOLD_RANGE, 0x0007, 32 }, { 0x000000df, FC_CASE_FOLD_FULL, 0x0002, 0 }, { 0x00000100, FC_CASE_FOLD_EVEN_ODD, 0x002f, 1 }, { 0x00000130, FC_CASE_FOLD_FULL, 0x0003, 2 }, { 0x00000132, FC_CASE_FOLD_EVEN_ODD, 0x0005, 1 }, { 0x00000139, FC_CASE_FOLD_EVEN_ODD, 0x000f, 1 }, { 0x00000149, FC_CASE_FOLD_FULL, 0x0003, 5 }, { 0x0000014a, FC_CASE_FOLD_EVEN_ODD, 0x002d, 1 }, { 0x00000178, FC_CASE_FOLD_RANGE, 0x0001, -121 }, { 0x00000179, FC_CASE_FOLD_EVEN_ODD, 0x0005, 1 }, { 0x0000017f, FC_CASE_FOLD_RANGE, 0x0001, -268 }, { 0x00000181, FC_CASE_FOLD_RANGE, 0x0001, 210 }, { 0x00000182, FC_CASE_FOLD_EVEN_ODD, 0x0003, 1 }, { 0x00000186, FC_CASE_FOLD_RANGE, 0x0001, 206 }, { 0x00000187, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 }, { 0x00000189, FC_CASE_FOLD_RANGE, 0x0002, 205 }, { 0x0000018b, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 }, { 0x0000018e, FC_CASE_FOLD_RANGE, 0x0001, 79 }, { 0x0000018f, FC_CASE_FOLD_RANGE, 0x0001, 202 }, { 0x00000190, FC_CASE_FOLD_RANGE, 0x0001, 203 }, { 0x00000191, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 }, { 0x00000193, FC_CASE_FOLD_RANGE, 0x0001, 205 }, { 0x00000194, FC_CASE_FOLD_RANGE, 0x0001, 207 }, { 0x00000196, FC_CASE_FOLD_RANGE, 0x0001, 211 }, { 0x00000197, FC_CASE_FOLD_RANGE, 0x0001, 209 }, { 0x00000198, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 }, { 0x0000019c, FC_CASE_FOLD_RANGE, 0x0001, 211 }, { 0x0000019d, FC_CASE_FOLD_RANGE, 0x0001, 213 }, { 0x0000019f, FC_CASE_FOLD_RANGE, 0x0001, 214 }, { 0x000001a0, FC_CASE_FOLD_EVEN_ODD, 0x0005, 1 }, { 0x000001a6, FC_CASE_FOLD_RANGE, 0x0001, 218 }, { 0x000001a7, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 }, { 0x000001a9, FC_CASE_FOLD_RANGE, 0x0001, 218 }, { 0x000001ac, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 }, { 0x000001ae, FC_CASE_FOLD_RANGE, 0x0001, 218 }, { 0x000001af, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 }, { 0x000001b1, FC_CASE_FOLD_RANGE, 0x0002, 217 }, { 0x000001b3, FC_CASE_FOLD_EVEN_ODD, 0x0003, 1 }, { 0x000001b7, FC_CASE_FOLD_RANGE, 0x0001, 219 }, { 0x000001b8, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 }, { 0x000001bc, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 }, { 0x000001c4, FC_CASE_FOLD_RANGE, 0x0001, 2 }, { 0x000001c5, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 }, { 0x000001c7, FC_CASE_FOLD_RANGE, 0x0001, 2 }, { 0x000001c8, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 }, { 0x000001ca, FC_CASE_FOLD_RANGE, 0x0001, 2 }, { 0x000001cb, FC_CASE_FOLD_EVEN_ODD, 0x0011, 1 }, { 0x000001de, FC_CASE_FOLD_EVEN_ODD, 0x0011, 1 }, { 0x000001f0, FC_CASE_FOLD_FULL, 0x0003, 8 }, { 0x000001f1, FC_CASE_FOLD_RANGE, 0x0001, 2 }, { 0x000001f2, FC_CASE_FOLD_EVEN_ODD, 0x0003, 1 }, { 0x000001f6, FC_CASE_FOLD_RANGE, 0x0001, -97 }, { 0x000001f7, FC_CASE_FOLD_RANGE, 0x0001, -56 }, { 0x000001f8, FC_CASE_FOLD_EVEN_ODD, 0x0027, 1 }, { 0x00000220, FC_CASE_FOLD_RANGE, 0x0001, -130 }, { 0x00000222, FC_CASE_FOLD_EVEN_ODD, 0x0011, 1 }, { 0x0000023a, FC_CASE_FOLD_RANGE, 0x0001, 10795 }, { 0x0000023b, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 }, { 0x0000023d, FC_CASE_FOLD_RANGE, 0x0001, -163 }, { 0x0000023e, FC_CASE_FOLD_RANGE, 0x0001, 10792 }, { 0x00000241, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 }, { 0x00000243, FC_CASE_FOLD_RANGE, 0x0001, -195 }, { 0x00000244, FC_CASE_FOLD_RANGE, 0x0001, 69 }, { 0x00000245, FC_CASE_FOLD_RANGE, 0x0001, 71 }, { 0x00000246, FC_CASE_FOLD_EVEN_ODD, 0x0009, 1 }, { 0x00000345, FC_CASE_FOLD_RANGE, 0x0001, 116 }, { 0x00000370, FC_CASE_FOLD_EVEN_ODD, 0x0003, 1 }, { 0x00000376, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 }, { 0x00000386, FC_CASE_FOLD_RANGE, 0x0001, 38 }, { 0x00000388, FC_CASE_FOLD_RANGE, 0x0003, 37 }, { 0x0000038c, FC_CASE_FOLD_RANGE, 0x0001, 64 }, { 0x0000038e, FC_CASE_FOLD_RANGE, 0x0002, 63 }, { 0x00000390, FC_CASE_FOLD_FULL, 0x0006, 11 }, { 0x00000391, FC_CASE_FOLD_RANGE, 0x0011, 32 }, { 0x000003a3, FC_CASE_FOLD_RANGE, 0x0009, 32 }, { 0x000003b0, FC_CASE_FOLD_FULL, 0x0006, 17 }, { 0x000003c2, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 }, { 0x000003cf, FC_CASE_FOLD_RANGE, 0x0001, 8 }, { 0x000003d0, FC_CASE_FOLD_RANGE, 0x0001, -30 }, { 0x000003d1, FC_CASE_FOLD_RANGE, 0x0001, -25 }, { 0x000003d5, FC_CASE_FOLD_RANGE, 0x0001, -15 }, { 0x000003d6, FC_CASE_FOLD_RANGE, 0x0001, -22 }, { 0x000003d8, FC_CASE_FOLD_EVEN_ODD, 0x0017, 1 }, { 0x000003f0, FC_CASE_FOLD_RANGE, 0x0001, -54 }, { 0x000003f1, FC_CASE_FOLD_RANGE, 0x0001, -48 }, { 0x000003f4, FC_CASE_FOLD_RANGE, 0x0001, -60 }, { 0x000003f5, FC_CASE_FOLD_RANGE, 0x0001, -64 }, { 0x000003f7, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 }, { 0x000003f9, FC_CASE_FOLD_RANGE, 0x0001, -7 }, { 0x000003fa, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 }, { 0x000003fd, FC_CASE_FOLD_RANGE, 0x0003, -130 }, { 0x00000400, FC_CASE_FOLD_RANGE, 0x0010, 80 }, { 0x00000410, FC_CASE_FOLD_RANGE, 0x0020, 32 }, { 0x00000460, FC_CASE_FOLD_EVEN_ODD, 0x0021, 1 }, { 0x0000048a, FC_CASE_FOLD_EVEN_ODD, 0x0035, 1 }, { 0x000004c0, FC_CASE_FOLD_RANGE, 0x0001, 15 }, { 0x000004c1, FC_CASE_FOLD_EVEN_ODD, 0x000d, 1 }, { 0x000004d0, FC_CASE_FOLD_EVEN_ODD, 0x0057, 1 }, { 0x00000531, FC_CASE_FOLD_RANGE, 0x0026, 48 }, { 0x00000587, FC_CASE_FOLD_FULL, 0x0004, 23 }, { 0x000010a0, FC_CASE_FOLD_RANGE, 0x0026, 7264 }, { 0x000010c7, FC_CASE_FOLD_RANGE, 0x0001, 7264 }, { 0x000010cd, FC_CASE_FOLD_RANGE, 0x0001, 7264 }, { 0x00001e00, FC_CASE_FOLD_EVEN_ODD, 0x0095, 1 }, { 0x00001e96, FC_CASE_FOLD_FULL, 0x0003, 27 }, { 0x00001e97, FC_CASE_FOLD_FULL, 0x0003, 30 }, { 0x00001e98, FC_CASE_FOLD_FULL, 0x0003, 33 }, { 0x00001e99, FC_CASE_FOLD_FULL, 0x0003, 36 }, { 0x00001e9a, FC_CASE_FOLD_FULL, 0x0003, 39 }, { 0x00001e9b, FC_CASE_FOLD_RANGE, 0x0001, -58 }, { 0x00001e9e, FC_CASE_FOLD_FULL, 0x0002, 42 }, { 0x00001ea0, FC_CASE_FOLD_EVEN_ODD, 0x005f, 1 }, { 0x00001f08, FC_CASE_FOLD_RANGE, 0x0008, -8 }, { 0x00001f18, FC_CASE_FOLD_RANGE, 0x0006, -8 }, { 0x00001f28, FC_CASE_FOLD_RANGE, 0x0008, -8 }, { 0x00001f38, FC_CASE_FOLD_RANGE, 0x0008, -8 }, { 0x00001f48, FC_CASE_FOLD_RANGE, 0x0006, -8 }, { 0x00001f50, FC_CASE_FOLD_FULL, 0x0004, 44 }, { 0x00001f52, FC_CASE_FOLD_FULL, 0x0006, 48 }, { 0x00001f54, FC_CASE_FOLD_FULL, 0x0006, 54 }, { 0x00001f56, FC_CASE_FOLD_FULL, 0x0006, 60 }, { 0x00001f59, FC_CASE_FOLD_RANGE, 0x0001, -8 }, { 0x00001f5b, FC_CASE_FOLD_RANGE, 0x0001, -8 }, { 0x00001f5d, FC_CASE_FOLD_RANGE, 0x0001, -8 }, { 0x00001f5f, FC_CASE_FOLD_RANGE, 0x0001, -8 }, { 0x00001f68, FC_CASE_FOLD_RANGE, 0x0008, -8 }, { 0x00001f80, FC_CASE_FOLD_FULL, 0x0005, 66 }, { 0x00001f81, FC_CASE_FOLD_FULL, 0x0005, 71 }, { 0x00001f82, FC_CASE_FOLD_FULL, 0x0005, 76 }, { 0x00001f83, FC_CASE_FOLD_FULL, 0x0005, 81 }, { 0x00001f84, FC_CASE_FOLD_FULL, 0x0005, 86 }, { 0x00001f85, FC_CASE_FOLD_FULL, 0x0005, 91 }, { 0x00001f86, FC_CASE_FOLD_FULL, 0x0005, 96 }, { 0x00001f87, FC_CASE_FOLD_FULL, 0x0005, 101 }, { 0x00001f88, FC_CASE_FOLD_FULL, 0x0005, 106 }, { 0x00001f89, FC_CASE_FOLD_FULL, 0x0005, 111 }, { 0x00001f8a, FC_CASE_FOLD_FULL, 0x0005, 116 }, { 0x00001f8b, FC_CASE_FOLD_FULL, 0x0005, 121 }, { 0x00001f8c, FC_CASE_FOLD_FULL, 0x0005, 126 }, { 0x00001f8d, FC_CASE_FOLD_FULL, 0x0005, 131 }, { 0x00001f8e, FC_CASE_FOLD_FULL, 0x0005, 136 }, { 0x00001f8f, FC_CASE_FOLD_FULL, 0x0005, 141 }, { 0x00001f90, FC_CASE_FOLD_FULL, 0x0005, 146 }, { 0x00001f91, FC_CASE_FOLD_FULL, 0x0005, 151 }, { 0x00001f92, FC_CASE_FOLD_FULL, 0x0005, 156 }, { 0x00001f93, FC_CASE_FOLD_FULL, 0x0005, 161 }, { 0x00001f94, FC_CASE_FOLD_FULL, 0x0005, 166 }, { 0x00001f95, FC_CASE_FOLD_FULL, 0x0005, 171 }, { 0x00001f96, FC_CASE_FOLD_FULL, 0x0005, 176 }, { 0x00001f97, FC_CASE_FOLD_FULL, 0x0005, 181 }, { 0x00001f98, FC_CASE_FOLD_FULL, 0x0005, 186 }, { 0x00001f99, FC_CASE_FOLD_FULL, 0x0005, 191 }, { 0x00001f9a, FC_CASE_FOLD_FULL, 0x0005, 196 }, { 0x00001f9b, FC_CASE_FOLD_FULL, 0x0005, 201 }, { 0x00001f9c, FC_CASE_FOLD_FULL, 0x0005, 206 }, { 0x00001f9d, FC_CASE_FOLD_FULL, 0x0005, 211 }, { 0x00001f9e, FC_CASE_FOLD_FULL, 0x0005, 216 }, { 0x00001f9f, FC_CASE_FOLD_FULL, 0x0005, 221 }, { 0x00001fa0, FC_CASE_FOLD_FULL, 0x0005, 226 }, { 0x00001fa1, FC_CASE_FOLD_FULL, 0x0005, 231 }, { 0x00001fa2, FC_CASE_FOLD_FULL, 0x0005, 236 }, { 0x00001fa3, FC_CASE_FOLD_FULL, 0x0005, 241 }, { 0x00001fa4, FC_CASE_FOLD_FULL, 0x0005, 246 }, { 0x00001fa5, FC_CASE_FOLD_FULL, 0x0005, 251 }, { 0x00001fa6, FC_CASE_FOLD_FULL, 0x0005, 256 }, { 0x00001fa7, FC_CASE_FOLD_FULL, 0x0005, 261 }, { 0x00001fa8, FC_CASE_FOLD_FULL, 0x0005, 266 }, { 0x00001fa9, FC_CASE_FOLD_FULL, 0x0005, 271 }, { 0x00001faa, FC_CASE_FOLD_FULL, 0x0005, 276 }, { 0x00001fab, FC_CASE_FOLD_FULL, 0x0005, 281 }, { 0x00001fac, FC_CASE_FOLD_FULL, 0x0005, 286 }, { 0x00001fad, FC_CASE_FOLD_FULL, 0x0005, 291 }, { 0x00001fae, FC_CASE_FOLD_FULL, 0x0005, 296 }, { 0x00001faf, FC_CASE_FOLD_FULL, 0x0005, 301 }, { 0x00001fb2, FC_CASE_FOLD_FULL, 0x0005, 306 }, { 0x00001fb3, FC_CASE_FOLD_FULL, 0x0004, 311 }, { 0x00001fb4, FC_CASE_FOLD_FULL, 0x0004, 315 }, { 0x00001fb6, FC_CASE_FOLD_FULL, 0x0004, 319 }, { 0x00001fb7, FC_CASE_FOLD_FULL, 0x0006, 323 }, { 0x00001fb8, FC_CASE_FOLD_RANGE, 0x0002, -8 }, { 0x00001fba, FC_CASE_FOLD_RANGE, 0x0002, -74 }, { 0x00001fbc, FC_CASE_FOLD_FULL, 0x0004, 329 }, { 0x00001fbe, FC_CASE_FOLD_RANGE, 0x0001, -7173 }, { 0x00001fc2, FC_CASE_FOLD_FULL, 0x0005, 333 }, { 0x00001fc3, FC_CASE_FOLD_FULL, 0x0004, 338 }, { 0x00001fc4, FC_CASE_FOLD_FULL, 0x0004, 342 }, { 0x00001fc6, FC_CASE_FOLD_FULL, 0x0004, 346 }, { 0x00001fc7, FC_CASE_FOLD_FULL, 0x0006, 350 }, { 0x00001fc8, FC_CASE_FOLD_RANGE, 0x0004, -86 }, { 0x00001fcc, FC_CASE_FOLD_FULL, 0x0004, 356 }, { 0x00001fd2, FC_CASE_FOLD_FULL, 0x0006, 360 }, { 0x00001fd3, FC_CASE_FOLD_FULL, 0x0006, 366 }, { 0x00001fd6, FC_CASE_FOLD_FULL, 0x0004, 372 }, { 0x00001fd7, FC_CASE_FOLD_FULL, 0x0006, 376 }, { 0x00001fd8, FC_CASE_FOLD_RANGE, 0x0002, -8 }, { 0x00001fda, FC_CASE_FOLD_RANGE, 0x0002, -100 }, { 0x00001fe2, FC_CASE_FOLD_FULL, 0x0006, 382 }, { 0x00001fe3, FC_CASE_FOLD_FULL, 0x0006, 388 }, { 0x00001fe4, FC_CASE_FOLD_FULL, 0x0004, 394 }, { 0x00001fe6, FC_CASE_FOLD_FULL, 0x0004, 398 }, { 0x00001fe7, FC_CASE_FOLD_FULL, 0x0006, 402 }, { 0x00001fe8, FC_CASE_FOLD_RANGE, 0x0002, -8 }, { 0x00001fea, FC_CASE_FOLD_RANGE, 0x0002, -112 }, { 0x00001fec, FC_CASE_FOLD_RANGE, 0x0001, -7 }, { 0x00001ff2, FC_CASE_FOLD_FULL, 0x0005, 408 }, { 0x00001ff3, FC_CASE_FOLD_FULL, 0x0004, 413 }, { 0x00001ff4, FC_CASE_FOLD_FULL, 0x0004, 417 }, { 0x00001ff6, FC_CASE_FOLD_FULL, 0x0004, 421 }, { 0x00001ff7, FC_CASE_FOLD_FULL, 0x0006, 425 }, { 0x00001ff8, FC_CASE_FOLD_RANGE, 0x0002, -128 }, { 0x00001ffa, FC_CASE_FOLD_RANGE, 0x0002, -126 }, { 0x00001ffc, FC_CASE_FOLD_FULL, 0x0004, 431 }, { 0x00002126, FC_CASE_FOLD_RANGE, 0x0001, -7517 }, { 0x0000212a, FC_CASE_FOLD_RANGE, 0x0001, -8383 }, { 0x0000212b, FC_CASE_FOLD_RANGE, 0x0001, -8262 }, { 0x00002132, FC_CASE_FOLD_RANGE, 0x0001, 28 }, { 0x00002160, FC_CASE_FOLD_RANGE, 0x0010, 16 }, { 0x00002183, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 }, { 0x000024b6, FC_CASE_FOLD_RANGE, 0x001a, 26 }, { 0x00002c00, FC_CASE_FOLD_RANGE, 0x002f, 48 }, { 0x00002c60, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 }, { 0x00002c62, FC_CASE_FOLD_RANGE, 0x0001, -10743 }, { 0x00002c63, FC_CASE_FOLD_RANGE, 0x0001, -3814 }, { 0x00002c64, FC_CASE_FOLD_RANGE, 0x0001, -10727 }, { 0x00002c67, FC_CASE_FOLD_EVEN_ODD, 0x0005, 1 }, { 0x00002c6d, FC_CASE_FOLD_RANGE, 0x0001, -10780 }, { 0x00002c6e, FC_CASE_FOLD_RANGE, 0x0001, -10749 }, { 0x00002c6f, FC_CASE_FOLD_RANGE, 0x0001, -10783 }, { 0x00002c70, FC_CASE_FOLD_RANGE, 0x0001, -10782 }, { 0x00002c72, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 }, { 0x00002c75, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 }, { 0x00002c7e, FC_CASE_FOLD_RANGE, 0x0002, -10815 }, { 0x00002c80, FC_CASE_FOLD_EVEN_ODD, 0x0063, 1 }, { 0x00002ceb, FC_CASE_FOLD_EVEN_ODD, 0x0003, 1 }, { 0x00002cf2, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 }, { 0x0000a640, FC_CASE_FOLD_EVEN_ODD, 0x002d, 1 }, { 0x0000a680, FC_CASE_FOLD_EVEN_ODD, 0x0017, 1 }, { 0x0000a722, FC_CASE_FOLD_EVEN_ODD, 0x000d, 1 }, { 0x0000a732, FC_CASE_FOLD_EVEN_ODD, 0x003d, 1 }, { 0x0000a779, FC_CASE_FOLD_EVEN_ODD, 0x0003, 1 }, { 0x0000a77d, FC_CASE_FOLD_RANGE, 0x0001, 30204 }, { 0x0000a77e, FC_CASE_FOLD_EVEN_ODD, 0x0009, 1 }, { 0x0000a78b, FC_CASE_FOLD_EVEN_ODD, 0x0001, 1 }, { 0x0000a78d, FC_CASE_FOLD_RANGE, 0x0001, 23256 }, { 0x0000a790, FC_CASE_FOLD_EVEN_ODD, 0x0003, 1 }, { 0x0000a7a0, FC_CASE_FOLD_EVEN_ODD, 0x0009, 1 }, { 0x0000a7aa, FC_CASE_FOLD_RANGE, 0x0001, 23228 }, { 0x0000fb00, FC_CASE_FOLD_FULL, 0x0002, 435 }, { 0x0000fb01, FC_CASE_FOLD_FULL, 0x0002, 437 }, { 0x0000fb02, FC_CASE_FOLD_FULL, 0x0002, 439 }, { 0x0000fb03, FC_CASE_FOLD_FULL, 0x0003, 441 }, { 0x0000fb04, FC_CASE_FOLD_FULL, 0x0003, 444 }, { 0x0000fb05, FC_CASE_FOLD_FULL, 0x0002, 447 }, { 0x0000fb06, FC_CASE_FOLD_FULL, 0x0002, 449 }, { 0x0000fb13, FC_CASE_FOLD_FULL, 0x0004, 451 }, { 0x0000fb14, FC_CASE_FOLD_FULL, 0x0004, 455 }, { 0x0000fb15, FC_CASE_FOLD_FULL, 0x0004, 459 }, { 0x0000fb16, FC_CASE_FOLD_FULL, 0x0004, 463 }, { 0x0000fb17, FC_CASE_FOLD_FULL, 0x0004, 467 }, { 0x0000ff21, FC_CASE_FOLD_RANGE, 0x001a, 32 }, { 0x00010400, FC_CASE_FOLD_RANGE, 0x0028, 40 }, }; static const FcChar8 fcCaseFoldChars[FC_NUM_CASE_FOLD_CHARS] = { 0x73,0x73,0x69,0xcc,0x87,0xca,0xbc,0x6e,0x6a,0xcc,0x8c,0xce,0xb9,0xcc,0x88,0xcc, 0x81,0xcf,0x85,0xcc,0x88,0xcc,0x81,0xd5,0xa5,0xd6,0x82,0x68,0xcc,0xb1,0x74,0xcc, 0x88,0x77,0xcc,0x8a,0x79,0xcc,0x8a,0x61,0xca,0xbe,0x73,0x73,0xcf,0x85,0xcc,0x93, 0xcf,0x85,0xcc,0x93,0xcc,0x80,0xcf,0x85,0xcc,0x93,0xcc,0x81,0xcf,0x85,0xcc,0x93, 0xcd,0x82,0xe1,0xbc,0x80,0xce,0xb9,0xe1,0xbc,0x81,0xce,0xb9,0xe1,0xbc,0x82,0xce, 0xb9,0xe1,0xbc,0x83,0xce,0xb9,0xe1,0xbc,0x84,0xce,0xb9,0xe1,0xbc,0x85,0xce,0xb9, 0xe1,0xbc,0x86,0xce,0xb9,0xe1,0xbc,0x87,0xce,0xb9,0xe1,0xbc,0x80,0xce,0xb9,0xe1, 0xbc,0x81,0xce,0xb9,0xe1,0xbc,0x82,0xce,0xb9,0xe1,0xbc,0x83,0xce,0xb9,0xe1,0xbc, 0x84,0xce,0xb9,0xe1,0xbc,0x85,0xce,0xb9,0xe1,0xbc,0x86,0xce,0xb9,0xe1,0xbc,0x87, 0xce,0xb9,0xe1,0xbc,0xa0,0xce,0xb9,0xe1,0xbc,0xa1,0xce,0xb9,0xe1,0xbc,0xa2,0xce, 0xb9,0xe1,0xbc,0xa3,0xce,0xb9,0xe1,0xbc,0xa4,0xce,0xb9,0xe1,0xbc,0xa5,0xce,0xb9, 0xe1,0xbc,0xa6,0xce,0xb9,0xe1,0xbc,0xa7,0xce,0xb9,0xe1,0xbc,0xa0,0xce,0xb9,0xe1, 0xbc,0xa1,0xce,0xb9,0xe1,0xbc,0xa2,0xce,0xb9,0xe1,0xbc,0xa3,0xce,0xb9,0xe1,0xbc, 0xa4,0xce,0xb9,0xe1,0xbc,0xa5,0xce,0xb9,0xe1,0xbc,0xa6,0xce,0xb9,0xe1,0xbc,0xa7, 0xce,0xb9,0xe1,0xbd,0xa0,0xce,0xb9,0xe1,0xbd,0xa1,0xce,0xb9,0xe1,0xbd,0xa2,0xce, 0xb9,0xe1,0xbd,0xa3,0xce,0xb9,0xe1,0xbd,0xa4,0xce,0xb9,0xe1,0xbd,0xa5,0xce,0xb9, 0xe1,0xbd,0xa6,0xce,0xb9,0xe1,0xbd,0xa7,0xce,0xb9,0xe1,0xbd,0xa0,0xce,0xb9,0xe1, 0xbd,0xa1,0xce,0xb9,0xe1,0xbd,0xa2,0xce,0xb9,0xe1,0xbd,0xa3,0xce,0xb9,0xe1,0xbd, 0xa4,0xce,0xb9,0xe1,0xbd,0xa5,0xce,0xb9,0xe1,0xbd,0xa6,0xce,0xb9,0xe1,0xbd,0xa7, 0xce,0xb9,0xe1,0xbd,0xb0,0xce,0xb9,0xce,0xb1,0xce,0xb9,0xce,0xac,0xce,0xb9,0xce, 0xb1,0xcd,0x82,0xce,0xb1,0xcd,0x82,0xce,0xb9,0xce,0xb1,0xce,0xb9,0xe1,0xbd,0xb4, 0xce,0xb9,0xce,0xb7,0xce,0xb9,0xce,0xae,0xce,0xb9,0xce,0xb7,0xcd,0x82,0xce,0xb7, 0xcd,0x82,0xce,0xb9,0xce,0xb7,0xce,0xb9,0xce,0xb9,0xcc,0x88,0xcc,0x80,0xce,0xb9, 0xcc,0x88,0xcc,0x81,0xce,0xb9,0xcd,0x82,0xce,0xb9,0xcc,0x88,0xcd,0x82,0xcf,0x85, 0xcc,0x88,0xcc,0x80,0xcf,0x85,0xcc,0x88,0xcc,0x81,0xcf,0x81,0xcc,0x93,0xcf,0x85, 0xcd,0x82,0xcf,0x85,0xcc,0x88,0xcd,0x82,0xe1,0xbd,0xbc,0xce,0xb9,0xcf,0x89,0xce, 0xb9,0xcf,0x8e,0xce,0xb9,0xcf,0x89,0xcd,0x82,0xcf,0x89,0xcd,0x82,0xce,0xb9,0xcf, 0x89,0xce,0xb9,0x66,0x66,0x66,0x69,0x66,0x6c,0x66,0x66,0x69,0x66,0x66,0x6c,0x73, 0x74,0x73,0x74,0xd5,0xb4,0xd5,0xb6,0xd5,0xb4,0xd5,0xa5,0xd5,0xb4,0xd5,0xab,0xd5, 0xbe,0xd5,0xb6,0xd5,0xb4,0xd5,0xad }; fontconfig-2.11.1/fc-case/fccase.tmpl.h0000664000076400007640000000226112267155333014544 00000000000000/* * fontconfig/fc-case/fccase.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. */ @@@ fontconfig-2.11.1/fc-case/Makefile.in0000664000076400007640000004514412313745337014251 00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- encoding: utf-8 -*- # # Copyright © 2003 Keith Packard # Copyright © 2013 Google, Inc. # # 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. # # Google Author(s): Behdad Esfahbod # -*- encoding: utf-8 -*- # # Copyright © 2003 Keith Packard # Copyright © 2013 Google, Inc. # # 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. # # Google Author(s): Behdad Esfahbod VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(top_srcdir)/Tools.mk $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am $(noinst_HEADERS) subdir = fc-case ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASECONFIGDIR = @BASECONFIGDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CONFIGDIR = @CONFIGDIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DOCMAN3 = @DOCMAN3@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@ EXPAT_CFLAGS = @EXPAT_CFLAGS@ EXPAT_LIBS = @EXPAT_LIBS@ FC_ADD_FONTS = @FC_ADD_FONTS@ FC_CACHEDIR = @FC_CACHEDIR@ FC_DEFAULT_FONTS = @FC_DEFAULT_FONTS@ FC_FONTDATE = @FC_FONTDATE@ FC_FONTPATH = @FC_FONTPATH@ FGREP = @FGREP@ FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ FREETYPE_LIBS = @FREETYPE_LIBS@ GIT = @GIT@ GPERF = @GPERF@ GREP = @GREP@ HASDOCBOOK = @HASDOCBOOK@ HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@ ICONV_CFLAGS = @ICONV_CFLAGS@ ICONV_LIBS = @ICONV_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBT_CURRENT = @LIBT_CURRENT@ LIBT_CURRENT_MINUS_AGE = @LIBT_CURRENT_MINUS_AGE@ LIBT_REVISION = @LIBT_REVISION@ LIBT_VERSION_INFO = @LIBT_VERSION_INFO@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ RM = @RM@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TEMPLATEDIR = @TEMPLATEDIR@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XMLDIR = @XMLDIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ ax_pthread_config = @ax_pthread_config@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fc_cachedir = @fc_cachedir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ ms_librarian = @ms_librarian@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfigdir = @pkgconfigdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ TAG = case DEPS = $(srcdir)/CaseFolding.txt ARGS = $(srcdir)/CaseFolding.txt DIST = $(srcdir)/CaseFolding.txt DIR = fc-$(TAG) OUT = fc$(TAG) TMPL = $(OUT).tmpl.h TARG = $(OUT).h TSRC = $(DIR).c TOOL = ./$(DIR)$(EXEEXT_FOR_BUILD) EXTRA_DIST = $(TARG) $(TMPL) $(TSRC) $(DIST) AM_CPPFLAGS = \ -I$(builddir) \ -I$(srcdir) \ -I$(top_builddir)/src \ -I$(top_srcdir)/src \ -I$(top_builddir) \ -I$(top_srcdir) \ -DHAVE_CONFIG_H \ $(WARN_CFLAGS) noinst_HEADERS = $(TARG) ALIAS_FILES = fcalias.h fcaliastail.h BUILT_SOURCES = $(ALIAS_FILES) CLEANFILES = $(ALIAS_FILES) $(TOOL) MAINTAINERCLEANFILES = $(TARG) all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/Tools.mk $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fc-case/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fc-case/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/Tools.mk: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(HEADERS) installdirs: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: all check install install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool cscopelist-am ctags ctags-am distclean \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am $(TOOL): $(TSRC) $(ALIAS_FILES) $(AM_V_GEN) $(CC_FOR_BUILD) -o $(TOOL) $< $(AM_CPPFLAGS) $(TARG): $(TMPL) $(TSRC) $(DEPS) $(AM_V_GEN) $(MAKE) $(TOOL) && \ $(RM) $(TARG) && \ $(TOOL) $(ARGS) < $< > $(TARG).tmp && \ mv $(TARG).tmp $(TARG) || ( $(RM) $(TARG).tmp && false ) $(ALIAS_FILES): $(AM_V_GEN) touch $@ -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fontconfig-2.11.1/configure.ac0000664000076400007640000005004212313745240013153 00000000000000dnl dnl fontconfig/configure.in dnl dnl Copyright © 2003 Keith Packard dnl dnl Permission to use, copy, modify, distribute, and sell this software and its dnl documentation for any purpose is hereby granted without fee, provided that dnl the above copyright notice appear in all copies and that both that dnl copyright notice and this permission notice appear in supporting dnl documentation, and that the name of the author(s) not be used in dnl advertising or publicity pertaining to distribution of the software without dnl specific, written prior permission. The authors make no dnl representations about the suitability of this software for any purpose. It dnl is provided "as is" without express or implied warranty. dnl dnl THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, dnl INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO dnl EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR dnl CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, dnl DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER dnl TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR dnl PERFORMANCE OF THIS SOFTWARE. dnl dnl Process this file with autoconf to create configure. AC_PREREQ(2.61) dnl ========================================================================== dnl Versioning dnl ========================================================================== dnl This is the package version number, not the shared library dnl version. This same version number must appear in fontconfig/fontconfig.h dnl Yes, it is a pain to synchronize version numbers. Unfortunately, it's dnl not possible to extract the version number here from fontconfig.h AC_INIT([fontconfig], [2.11.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig]) AM_INIT_AUTOMAKE([1.11 parallel-tests dist-bzip2]) m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) dnl ========================================================================== AC_CONFIG_HEADERS(config.h) AC_CONFIG_MACRO_DIR([m4]) AC_PROG_CC AC_USE_SYSTEM_EXTENSIONS AC_SYS_LARGEFILE AC_PROG_INSTALL AC_PROG_LN_S 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]) AC_MSG_CHECKING([for RM macro]) _predefined_rm=`make -p -f /dev/null 2>/dev/null|grep '^RM ='|sed -e 's/^RM = //'` if test "x$_predefined_rm" = "x"; then AC_MSG_RESULT([no predefined RM]) AC_CHECK_PROG(RM, rm, [rm -f]) 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=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 ========================================================================== case "$host" in *-*-mingw*) os_win32=yes ;; *) os_win32=no esac AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes") if test "$os_win32" = "yes"; then AC_CHECK_PROG(ms_librarian, lib.exe, yes, no) fi AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes) WARN_CFLAGS="" if test "x$GCC" = "xyes"; then WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \ -Wmissing-prototypes -Wmissing-declarations \ -Wnested-externs -fno-strict-aliasing" AC_DEFINE_UNQUOTED(HAVE_WARNING_CPP_DIRECTIVE,1, [Can use #warning in C files]) fi AC_SUBST(WARN_CFLAGS) dnl ========================================================================== AX_CC_FOR_BUILD() AC_ARG_VAR(CC_FOR_BUILD, [build system C compiler]) AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes) AM_CONDITIONAL(ENABLE_SHARED, test "$enable_shared" = "yes") dnl ========================================================================== AC_ARG_WITH(arch, [AC_HELP_STRING([--with-arch=ARCH], [Force architecture to ARCH])], arch="$withval", arch=auto) if test "x$arch" != xauto; then AC_DEFINE_UNQUOTED([FC_ARCHITECTURE], "$arch", [Architecture prefix to use for cache file names]) fi dnl ========================================================================== # Checks for header files. AC_HEADER_DIRENT AC_HEADER_STDC AC_CHECK_HEADERS([fcntl.h regex.h stdlib.h string.h unistd.h sys/statvfs.h sys/vfs.h sys/statfs.h sys/param.h sys/mount.h]) AX_CREATE_STDINT_H([src/fcstdint.h]) # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_C_INLINE AC_C_FLEXIBLE_ARRAY_MEMBER 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 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_fadivse' function.]) if test "$os_win32" = "no"; then AC_MSG_CHECKING([for scandir]) fc_saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $WARN_CFLAGS -Werror" AC_TRY_COMPILE([ #include int main(void); ], [ int (* comp) (const struct dirent **, const struct dirent **) = 0; 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_TRY_COMPILE([ #include int main(void); ], [ int (* comp) (const void *, const void *) = 0; 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 AC_CHECK_MEMBERS([struct statvfs.f_basetype, struct statvfs.f_fstypename],,, [#include ]) fi if test "x$ac_cv_func_fstatfs" = "xyes"; then AC_CHECK_MEMBERS([struct statfs.f_flags, struct statfs.f_fstypename],,, [ #ifdef HAVE_SYS_VFS_H #include #endif #ifdef HAVE_SYS_STATFS_H #include #endif #ifdef HAVE_SYS_PARAM_H #include #endif #ifdef HAVE_SYS_MOUNT_H #include #endif]) fi AC_CHECK_MEMBERS([struct dirent.d_type],,, [#include ]) # # regex # if test "x$ac_cv_func_regcomp" = "xyes" -a "x$ac_cv_func_regerror" = "xyes" -a "x$ac_cv_func_regexec" = "xyes" -a "x$ac_cv_func_regfree"; then AC_DEFINE(USE_REGEX,,[Use regex]) fi # # Checks for iconv # AC_ARG_ENABLE(iconv, [AC_HELP_STRING([--enable-iconv], [Use iconv to support non-Unicode SFNT name])], ,enable_iconv=no) AC_ARG_WITH(libiconv, [AC_HELP_STRING([--with-libiconv=DIR], [Use libiconv in DIR])], [if test "x$withval" = "xyes"; then libiconv_prefix=$prefix else libiconv_prefix=$withval fi], [libiconv_prefix=auto]) AC_ARG_WITH(libiconv-includes, [AC_HELP_STRING([--with-libiconv-includes=DIR], [Use libiconv includes in DIR])], [libiconv_includes=$withval], [libiconv_includes=auto]) AC_ARG_WITH(libiconv-lib, [AC_HELP_STRING([--with-libiconv-lib=DIR], [Use libiconv library in DIR])], [libiconv_lib=$withval], [libiconv_lib=auto]) # if no libiconv,libiconv-includes,libiconv-lib are specified, # libc's iconv has a priority. if test "$libiconv_includes" != "auto" -a -r ${libiconv_includes}/iconv.h; then libiconv_cflags="-I${libiconv_includes}" elif test "$libiconv_prefix" != "auto" -a -r ${libiconv_prefix}/include/iconv.h; then libiconv_cflags="-I${libiconv_prefix}/include" else libiconv_cflags="" fi libiconv_libs="" if test "x$libiconv_cflags" != "x"; then if test "$libiconv_lib" != "auto" -a -d ${libiconv_lib}; then libiconv_libs="-L${libiconv_lib} -liconv" elif test "$libiconv_prefix" != "auto" -a -d ${libiconv_prefix}/lib; then libiconv_libs="-L${libiconv_prefix}/lib -liconv" else libiconv_libs="-liconv" fi fi use_iconv=0 if test "x$enable_iconv" != "xno"; then AC_MSG_CHECKING([for a usable iconv]) if test "x$libiconv_cflags" != "x" -o "x$libiconv_libs" != "x"; then iconvsaved_CFLAGS="$CFLAGS" iconvsaved_LIBS="$LIBS" CFLAGS="$CFLAGS $libiconv_cflags" LIBS="$LIBS $libiconv_libs" AC_TRY_LINK([#include ], [iconv_open ("from", "to");], [iconv_type="libiconv" use_iconv=1 ICONV_CFLAGS="$libiconv_cflags" ICONV_LIBS="$libiconv_libs" ], [use_iconv=0]) CFLAGS="$iconvsaved_CFLAGS" LIBS="$iconvsaved_LIBS" fi if test "x$use_iconv" = "x0"; then AC_TRY_LINK([#include ], [iconv_open ("from", "to");], [iconv_type="libc" use_iconv=1], [iconv_type="not found" use_iconv=0]) fi AC_MSG_RESULT([$iconv_type]) AC_SUBST(ICONV_CFLAGS) AC_SUBST(ICONV_LIBS) fi AC_DEFINE_UNQUOTED(USE_ICONV,$use_iconv,[Use iconv.]) # # Checks for FreeType # PKG_CHECK_MODULES(FREETYPE, freetype2) PKGCONFIG_REQUIRES="$PKGCONFIG_REQUIRES freetype2" AC_SUBST(FREETYPE_LIBS) AC_SUBST(FREETYPE_CFLAGS) fontconfig_save_libs="$LIBS" fontconfig_save_cflags="$CFLAGS" LIBS="$LIBS $FREETYPE_LIBS" CFLAGS="$CFLAGS $FREETYPE_CFLAGS" AC_CHECK_FUNCS(FT_Get_Next_Char FT_Get_BDF_Property FT_Get_PS_Font_Info FT_Has_PS_Glyph_Names FT_Get_X11_Font_Format FT_Select_Size) AC_CHECK_MEMBER(FT_Bitmap_Size.y_ppem, HAVE_FT_BITMAP_SIZE_Y_PPEM=1, HAVE_FT_BITMAP_SIZE_Y_PPEM=0, [#include #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]) CFLAGS="$fontconfig_save_cflags" LIBS="$fontconfig_save_libs" # # Check expat configuration # AC_ARG_WITH(expat, [AC_HELP_STRING([--with-expat=DIR], [Use Expat in DIR])], [expat_prefix=$withval], [expat_prefix=auto]) AC_ARG_WITH(expat-includes, [AC_HELP_STRING([--with-expat-includes=DIR], [Use Expat includes in DIR])], [expat_includes=$withval], [expat_includes=auto]) AC_ARG_WITH(expat-lib, [AC_HELP_STRING([--with-expat-lib=DIR])], [expat_lib=$withval], [expat_lib=auto]) if test "$enable_libxml2" != "yes"; then use_pkgconfig_for_expat=yes if test "$expat_prefix" = "auto" -a "$expat_includes" = "auto" -a "$expat_lib" = "auto"; then PKG_CHECK_MODULES(EXPAT, expat,,use_pkgconfig_for_expat=no) else use_pkgconfig_for_expat=no fi if test "x$use_pkgconfig_for_expat" = "xno"; then if test "$expat_includes" != "auto" -a -r ${expat_includes}/expat.h; then EXPAT_CFLAGS="-I${expat_includes}" elif test "$expat_prefix" != "auto" -a -r ${expat_prefix}/include/expat.h; then EXPAT_CFLAGS="-I${expat_prefix}/include" else EXPAT_CFLAGS="" fi if test "$expat_lib" != "auto"; then EXPAT_LIBS="-L${expat_lib} -lexpat" elif test "$expat_prefix" != "auto"; then EXPAT_LIBS="-L${expat_prefix}/lib -lexpat" else EXPAT_LIBS="-lexpat" fi else PKGCONFIG_REQUIRES_PRIVATELY="$PKGCONFIG_REQUIRES_PRIVATELY expat" fi expatsaved_CPPFLAGS="$CPPFLAGS" expatsaved_LIBS="$LIBS" CPPFLAGS="$CPPFLAGS $EXPAT_CFLAGS" LIBS="$LIBS $EXPAT_LIBS" AC_CHECK_HEADER(expat.h) if test "$ac_cv_header_expat_h" = "no"; then AC_CHECK_HEADER(xmlparse.h) if test "$ac_cv_header_xmlparse_h" = "yes"; then HAVE_XMLPARSE_H=1 AC_SUBST(HAVE_XMLPARSE_H) AC_DEFINE_UNQUOTED(HAVE_XMLPARSE_H,$HAVE_XMLPARSE_H, [Use xmlparse.h instead of expat.h]) else AC_MSG_ERROR([ *** expat is required. or try to use --enable-libxml2]) fi fi AC_CHECK_FUNCS(XML_SetDoctypeDeclHandler) if test "$ac_cv_func_XML_SetDoctypeDeclHandler" = "no"; then AC_MSG_ERROR([ *** expat is required. or try to use --enable-libxml2]) fi CPPFLAGS="$expatsaved_CPPFLAGS" LIBS="$expatsaved_LIBS" AC_SUBST(EXPAT_CFLAGS) AC_SUBST(EXPAT_LIBS) fi # # Check libxml2 configuration # AC_ARG_ENABLE(libxml2, [AC_HELP_STRING([--enable-libxml2], [Use libxml2 instead of Expat])]) if test "$enable_libxml2" = "yes"; then PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6]) PKGCONFIG_REQUIRES_PRIVATELY="$PKGCONFIG_REQUIRES_PRIVATELY libxml-2.0" AC_DEFINE_UNQUOTED(ENABLE_LIBXML2,1,[Use libxml2 instead of Expat]) AC_SUBST(LIBXML2_CFLAGS) AC_SUBST(LIBXML2_LIBS) fc_saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $LIBXML2_CFLAGS" AC_MSG_CHECKING([SAX1 support in libxml2]) AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ #include #if !defined(LIBXML_SAX1_ENABLED) # include "error: No SAX1 support in libxml2" #endif ]])], [AC_MSG_RESULT([found])], [AC_MSG_ERROR([ *** SAX1 support in libxml2 is required. enable it or use expat instead.])]) CFLAGS="$fc_saved_CFLAGS" fi # # Set default font directory # AC_ARG_WITH(default-fonts, [AC_HELP_STRING([--with-default-fonts=DIR], [Use fonts from DIR when config is busted])], default_fonts="$withval", default_fonts=yes) case "$default_fonts" in yes) if test "$os_win32" = "yes"; then FC_DEFAULT_FONTS="WINDOWSFONTDIR" AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "WINDOWSFONTDIR", [Windows font directory]) else FC_DEFAULT_FONTS="/usr/share/fonts" AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "/usr/share/fonts", [System font directory]) fi ;; *) FC_DEFAULT_FONTS="$default_fonts" AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "$default_fonts", [System font directory]) ;; esac AC_SUBST(FC_DEFAULT_FONTS) # # Add more fonts if available. By default, add only the directories # with outline fonts; those with bitmaps can be added as desired in # local.conf or ~/.fonts.conf # AC_ARG_WITH(add-fonts, [AC_HELP_STRING([--with-add-fonts=DIR1,DIR2,...], [Find additional fonts in DIR1,DIR2,... ])], add_fonts="$withval", add_fonts=yes) case "$add_fonts" in yes) FC_ADD_FONTS="" for dir in /usr/X11R6/lib/X11 /usr/X11/lib/X11 /usr/lib/X11; do case x"$FC_ADD_FONTS" in x) sub="$dir/fonts" if test -d "$sub"; then case x$FC_ADD_FONTS in x) FC_ADD_FONTS="$sub" ;; *) FC_ADD_FONTS="$FC_ADD_FONTS,$sub" ;; esac fi ;; esac done AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories]) ;; no) FC_ADD_FONTS="" ;; *) FC_ADD_FONTS="$add_fonts" AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories]) ;; esac AC_SUBST(FC_ADD_FONTS) FC_FONTPATH="" case "$FC_ADD_FONTS" in "") ;; *) FC_FONTPATH=`echo $FC_ADD_FONTS | sed -e 's/^//' -e 's/$/<\/dir>/' -e 's/,/<\/dir> /g'` ;; esac AC_SUBST(FC_FONTPATH) # # Set default cache directory path # AC_ARG_WITH(cache-dir, [AC_HELP_STRING([--with-cache-dir=DIR], [Use DIR to store cache files [default=LOCALSTATEDIR/cache/fontconfig]])], fc_cachedir="$withval", fc_cachedir=yes) case $fc_cachedir in no|yes) if test "$os_win32" = "yes"; then fc_cachedir="LOCAL_APPDATA_FONTCONFIG_CACHE" else fc_cachedir='${localstatedir}/cache/${PACKAGE}' fi ;; *) ;; esac AC_SUBST(fc_cachedir) FC_CACHEDIR=${fc_cachedir} AC_SUBST(FC_CACHEDIR) FC_FONTDATE=`LC_ALL=C date` AC_SUBST(FC_FONTDATE) # # Set configuration paths # AC_ARG_WITH(templatedir, [AC_HELP_STRING([--with-templatedir=DIR], [Use DIR to store the configuration template files [default=DATADIR/fontconfig/conf.avail]])], [templatedir="$withval"], [templatedir=yes]) AC_ARG_WITH(baseconfigdir, [AC_HELP_STRING([--with-baseconfigdir=DIR], [Use DIR to store the base configuration files [default=SYSCONFDIR/fonts]])], [baseconfigdir="$withval"], [baseconfigdir=yes]) AC_ARG_WITH(configdir, [AC_HELP_STRING([--with-configdir=DIR], [Use DIR to store active configuration files [default=BASECONFIGDIR/conf.d]])], [configdir="$withval"], [configdir=yes]) AC_ARG_WITH(xmldir, [AC_HELP_STRING([--with-xmldir=DIR], [Use DIR to store XML schema files [default=DATADIR/xml/fontconfig]])], [xmldir="$withval"], [xmldir=yes]) case "$templatedir" in no|yes) templatedir='${datadir}'/fontconfig/conf.avail ;; *) ;; esac case "$baseconfigdir" in no|yes) baseconfigdir='${sysconfdir}'/fonts ;; *) ;; esac case "$configdir" in no|yes) configdir='${BASECONFIGDIR}'/conf.d ;; *) ;; esac case "$xmldir" in no|yes) xmldir='${datadir}'/xml/fontconfig ;; *) ;; esac TEMPLATEDIR=${templatedir} BASECONFIGDIR=${baseconfigdir} CONFIGDIR=${configdir} XMLDIR=${xmldir} AC_SUBST(TEMPLATEDIR) AC_SUBST(BASECONFIGDIR) AC_SUBST(CONFIGDIR) AC_SUBST(XMLDIR) dnl =========================================================================== # # Thread-safety primitives # AC_CACHE_CHECK([for Intel atomic primitives], fc_cv_have_intel_atomic_primitives, [ fc_cv_have_intel_atomic_primitives=false AC_TRY_LINK([ void memory_barrier (void) { __sync_synchronize (); } int atomic_add (int *i) { return __sync_fetch_and_add (i, 1); } int mutex_trylock (int *m) { return __sync_lock_test_and_set (m, 1); } void mutex_unlock (int *m) { __sync_lock_release (m); } ], [], fc_cv_have_intel_atomic_primitives=true ) ]) if $fc_cv_have_intel_atomic_primitives; then AC_DEFINE(HAVE_INTEL_ATOMIC_PRIMITIVES, 1, [Have Intel __sync_* atomic primitives]) fi AC_CACHE_CHECK([for Solaris atomic operations], fc_cv_have_solaris_atomic_ops, [ fc_cv_have_solaris_atomic_ops=false AC_TRY_LINK([ #include /* This requires Solaris Studio 12.2 or newer: */ #include void memory_barrier (void) { __machine_rw_barrier (); } int atomic_add (volatile unsigned *i) { return atomic_add_int_nv (i, 1); } void *atomic_ptr_cmpxchg (volatile void **target, void *cmp, void *newval) { return atomic_cas_ptr (target, cmp, newval); } ], [], fc_cv_have_solaris_atomic_ops=true ) ]) if $fc_cv_have_solaris_atomic_ops; then AC_DEFINE(HAVE_SOLARIS_ATOMIC_OPS, 1, [Have Solaris __machine_*_barrier and atomic_* operations]) fi if test "$os_win32" = no && ! $have_pthread; then AC_CHECK_HEADERS(sched.h) AC_SEARCH_LIBS(sched_yield,rt,AC_DEFINE(HAVE_SCHED_YIELD, 1, [Have sched_yield])) fi have_pthread=false if test "$os_win32" = no; then AX_PTHREAD([have_pthread=true]) fi if $have_pthread; then LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" CC="$PTHREAD_CC" AC_DEFINE(HAVE_PTHREAD, 1, [Have POSIX threads]) fi AM_CONDITIONAL(HAVE_PTHREAD, $have_pthread) dnl =========================================================================== # # Let people not build/install docs if they don't have docbook # AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no) AM_CONDITIONAL(USEDOCBOOK, test "x$HASDOCBOOK" = xyes) default_docs="yes" # # Check if docs exist or can be created # if test x$HASDOCBOOK = xno; then if test -f $srcdir/doc/fonts-conf.5; then : else default_docs="no" fi fi AC_ARG_ENABLE(docs, [AC_HELP_STRING([--disable-docs], [Don't build and install documentation])], , enable_docs=$default_docs) AM_CONDITIONAL(ENABLE_DOCS, test "x$enable_docs" = xyes) if test "x$enable_docs" = xyes; then tmp=funcs.$$ cat $srcdir/doc/*.fncs | awk ' /^@TITLE@/ { if (!done) { printf ("%s\n", $2); done = 1; } } /^@FUNC@/ { if (!done) { printf ("%s\n", $2); done = 1; } } /^@@/ { done = 0; }' > $tmp DOCMAN3=`cat $tmp | awk '{ printf ("%s.3 ", $1); }'` echo DOCMAN3 $DOCMAN3 rm -f $tmp else DOCMAN3="" fi AC_SUBST(DOCMAN3) dnl Figure out what cache format suffix to use for this architecture AC_C_BIGENDIAN AC_CHECK_SIZEOF([void *]) AC_CHECK_ALIGNOF([double]) dnl include the header file for workaround of miscalculating size on autoconf dnl particularly for fat binaries AH_BOTTOM([#include "config-fixups.h"]) dnl dnl AC_SUBST(PKGCONFIG_REQUIRES) AC_SUBST(PKGCONFIG_REQUIRES_PRIVATELY) dnl AC_CONFIG_FILES([ Makefile fontconfig/Makefile fc-lang/Makefile fc-glyphname/Makefile fc-case/Makefile src/Makefile conf.d/Makefile fc-cache/Makefile fc-cat/Makefile fc-list/Makefile fc-match/Makefile fc-pattern/Makefile fc-query/Makefile fc-scan/Makefile fc-validate/Makefile doc/Makefile doc/version.sgml test/Makefile fontconfig.spec fontconfig.pc fontconfig-zip ]) AC_OUTPUT fontconfig-2.11.1/compile0000755000076400007640000001624512177675036012265 00000000000000#! /bin/sh # Wrapper for compilers which do not understand '-c -o'. scriptversion=2012-10-14.11; # UTC # Copyright (C) 1999-2013 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' # We need space, tab and new line, in precisely that order. Quoting is # there to prevent tools from complaining about whitespace usage. IFS=" "" $nl" file_conv= # func_file_conv build_file lazy # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion # type is listed in (the comma separated) LAZY, no conversion will # take place. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv/,$2, in *,$file_conv,*) ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_cl_dashL linkdir # Make cl look for libraries in LINKDIR func_cl_dashL () { func_file_conv "$1" if test -z "$lib_path"; then lib_path=$file else lib_path="$lib_path;$file" fi linker_opts="$linker_opts -LIBPATH:$file" } # func_cl_dashl library # Do a library search-path lookup for cl func_cl_dashl () { lib=$1 found=no save_IFS=$IFS IFS=';' for dir in $lib_path $LIB do IFS=$save_IFS if $shared && test -f "$dir/$lib.dll.lib"; then found=yes lib=$dir/$lib.dll.lib break fi if test -f "$dir/$lib.lib"; then found=yes lib=$dir/$lib.lib break fi if test -f "$dir/lib$lib.a"; then found=yes lib=$dir/lib$lib.a break fi done IFS=$save_IFS if test "$found" != yes; then lib=$lib.lib fi } # func_cl_wrapper cl arg... # Adjust compile command to suit cl func_cl_wrapper () { # Assume a capable shell lib_path= shared=: linker_opts= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in *.o | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift ;; *) func_file_conv "$2" set x "$@" -Fe"$file" shift ;; esac ;; -I) eat=1 func_file_conv "$2" mingw set x "$@" -I"$file" shift ;; -I*) func_file_conv "${1#-I}" mingw set x "$@" -I"$file" shift ;; -l) eat=1 func_cl_dashl "$2" set x "$@" "$lib" shift ;; -l*) func_cl_dashl "${1#-l}" set x "$@" "$lib" shift ;; -L) eat=1 func_cl_dashL "$2" ;; -L*) func_cl_dashL "${1#-L}" ;; -static) shared=false ;; -Wl,*) arg=${1#-Wl,} save_ifs="$IFS"; IFS=',' for flag in $arg; do IFS="$save_ifs" linker_opts="$linker_opts $flag" done IFS="$save_ifs" ;; -Xlinker) eat=1 linker_opts="$linker_opts $2" ;; -*) set x "$@" "$1" shift ;; *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) func_file_conv "$1" set x "$@" -Tp"$file" shift ;; *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) func_file_conv "$1" mingw set x "$@" "$file" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -n "$linker_opts"; then linker_opts="-link$linker_opts" fi exec "$@" $linker_opts exit 1 } eat= case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand '-c -o'. Remove '-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file 'INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac ofile= cfile= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. # So we strip '-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no '-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # '.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. # Note: use '[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: fontconfig-2.11.1/test/0000775000076400007640000000000012313745412011724 500000000000000fontconfig-2.11.1/test/fonts.conf.in0000664000076400007640000000012011720341276014243 00000000000000 @FONTDIR@ @CACHEDIR@ fontconfig-2.11.1/test/Makefile.am0000664000076400007640000000150312267155335013706 00000000000000check_SCRIPTS=run-test.sh TEST_EXTENSIONS = \ .sh \ $(NULL) AM_TESTS_ENVIRONMENT= \ src=${srcdir}; export src; \ EXEEXT=${EXEEXT}; export EXEEXT; \ $(NULL) SH_LOG_COMPILER = sh TESTS=run-test.sh TESTDATA=4x6.pcf 8x16.pcf out.expected fonts.conf.in AM_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir) check_PROGRAMS = if HAVE_PTHREAD check_PROGRAMS += test-pthread test_pthread_LDADD = $(top_builddir)/src/libfontconfig.la # We don't enable this test by default because it will require config and fonts # to meaningfully test anything, and we are not installed yet. #TESTS += test-pthread endif noinst_PROGRAMS = $(check_PROGRAMS) if !OS_WIN32 check_PROGRAMS += test-migration test_migration_LDADD = $(top_builddir)/src/libfontconfig.la endif EXTRA_DIST=$(check_SCRIPTS) $(TESTDATA) CLEANFILES= -include $(top_srcdir)/git.mk fontconfig-2.11.1/test/test-migration.c0000664000076400007640000001234112267155335014766 00000000000000/* * fontconfig/test/test-migration.c * * Copyright © 2000 Keith Packard * Copyright © 2013 Akira TAGOH * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * the above copyright notice appear in all copies and that both that * copyright notice and this permission notice appear in supporting * documentation, and that the name of the author(s) not be used in * advertising or publicity pertaining to distribution of the software without * specific, written prior permission. The authors make no * representations about the suitability of this software for any purpose. It * is provided "as is" without express or implied warranty. * * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ #include #include #include #include #include #include #ifndef HAVE_STRUCT_DIRENT_D_TYPE #include #include #include #endif #include #ifdef HAVE_MKDTEMP #define fc_mkdtemp mkdtemp #else char * fc_mkdtemp (char *template) { if (!mktemp (template) || mkdir (template, 0700)) return NULL; return template; } #endif FcBool mkdir_p(const char *dir) { char *parent; FcBool ret; if (strlen (dir) == 0) return FcFalse; parent = (char *) FcStrDirname (dir); if (!parent) return FcFalse; if (access (parent, F_OK) == 0) ret = mkdir (dir, 0755) == 0 && chmod (dir, 0755) == 0; else if (access (parent, F_OK) == -1) ret = mkdir_p (parent) && (mkdir (dir, 0755) == 0) && chmod (dir, 0755) == 0; else ret = FcFalse; free (parent); return ret; } FcBool unlink_dirs(const char *dir) { DIR *d = opendir (dir); struct dirent *e; size_t len = strlen (dir); char *n = NULL; FcBool ret = FcTrue; #ifndef HAVE_STRUCT_DIRENT_D_TYPE struct stat statb; #endif if (!d) return FcFalse; while ((e = readdir(d)) != NULL) { size_t l; if (strcmp (e->d_name, ".") == 0 || strcmp (e->d_name, "..") == 0) continue; l = strlen (e->d_name) + 1; if (n) free (n); n = malloc (l + len + 1); strcpy (n, dir); n[len] = '/'; strcpy (&n[len + 1], e->d_name); #ifdef HAVE_STRUCT_DIRENT_D_TYPE if (e->d_type == DT_DIR) #else if (stat (n, &statb) == -1) { fprintf (stderr, "E: %s\n", n); ret = FcFalse; break; } if (S_ISDIR (statb.st_mode)) #endif { if (!unlink_dirs (n)) { fprintf (stderr, "E: %s\n", n); ret = FcFalse; break; } } else { if (unlink (n) == -1) { fprintf (stderr, "E: %s\n", n); ret = FcFalse; break; } } } if (n) free (n); closedir (d); if (rmdir (dir) == -1) { fprintf (stderr, "E: %s\n", dir); return FcFalse; } return ret; } int main(void) { char template[32] = "fontconfig-XXXXXXXX"; char *tmp = fc_mkdtemp (template); size_t len = strlen (tmp), xlen, dlen; char xdg[256], confd[256], fn[256], nfn[256], ud[256], nud[256]; int ret = -1; FILE *fp; char *content = ""; strcpy (xdg, tmp); strcpy (&xdg[len], "/.config"); setenv ("HOME", tmp, 1); setenv ("XDG_CONFIG_HOME", xdg, 1); xlen = strlen (xdg); strcpy (confd, xdg); strcpy (&confd[xlen], "/fontconfig"); dlen = strlen (confd); /* In case there are no configuration files nor directory */ FcInit (); if (access (confd, F_OK) == 0) { fprintf (stderr, "%s unexpectedly exists\n", confd); goto bail; } FcFini (); if (!unlink_dirs (tmp)) { fprintf (stderr, "Unable to clean up\n"); goto bail; } /* In case there are the user configuration file */ strcpy (fn, tmp); strcpy (&fn[len], "/.fonts.conf"); strcpy (nfn, confd); strcpy (&nfn[dlen], "/fonts.conf"); if (!mkdir_p (confd)) { fprintf (stderr, "Unable to create a config dir: %s\n", confd); goto bail; } if ((fp = fopen (fn, "wb")) == NULL) { fprintf (stderr, "Unable to create a config file: %s\n", fn); goto bail; } fwrite (content, sizeof (char), strlen (content), fp); fclose (fp); FcInit (); if (access (nfn, F_OK) != 0) { fprintf (stderr, "migration failed for %s\n", nfn); goto bail; } FcFini (); if (!unlink_dirs (tmp)) { fprintf (stderr, "Unable to clean up\n"); goto bail; } /* In case there are the user configuration dir */ strcpy (ud, tmp); strcpy (&ud[len], "/.fonts.conf.d"); strcpy (nud, confd); strcpy (&nud[dlen], "/conf.d"); if (!mkdir_p (ud)) { fprintf (stderr, "Unable to create a config dir: %s\n", ud); goto bail; } FcInit (); if (access (nud, F_OK) != 0) { fprintf (stderr, "migration failed for %s\n", nud); goto bail; } FcFini (); ret = 0; bail: unlink_dirs (tmp); return ret; } fontconfig-2.11.1/test/4x6.pcf0000664000076400007640000021245011720341276012764 00000000000000fcp d4d0z N,@d<@,d ,2>EKM[bqr}<KK(#1JU^c gFONTNAME_REGISTRYFOUNDRYMiscFAMILY_NAMEFixedWEIGHT_NAMEMediumSLANTRSETWIDTH_NAMENormalADD_STYLE_NAMEPIXEL_SIZEPOINT_SIZERESOLUTION_XRESOLUTION_YSPACINGCAVERAGE_WIDTHCHARSET_REGISTRYISO10646CHARSET_ENCODING1DESTINATIONCOPYRIGHTPublic domain font. Share and enjoy._XMBDFED_INFOEdited with xmbdfed 4.3.CAP_HEIGHTX_HEIGHTFONT-Misc-Fixed-Medium-R-Normal--6-60-75-75-C-40-ISO10646-1WEIGHTRESOLUTIONQUAD_WIDTH0H`x 8Ph(@Xp0H`x 8Ph(@Xp0H`x 8Ph(@Xp  0 H ` x  8 P h  ( @ X p  0 H ` x  8 P h (@Xp0H`x 8Ph(@Xp0H`x 8Ph(@Xp0H`x 8Ph(@Xp0H`x 8Ph(@Xp0H`x 8Ph(@Xp0H`x 8Ph ( @ X p !!0!H!`!x!!!!!!" "8"P"h"""""""#(#@#X#p######$$0$H$`$x$$$$$$% %8%P%h%%%%%%%&(&@&X&p&&&&&&''0'H'`'x''''''( (8(P(h((((((()()@)X)p))))))**0*H*`*x******+ +8+P+h+++++++,(,@,X,p,,,,,,--0-H-`-x------. .8.P.h......./(/@/X/p//////0000H0`0x0000001 181P1h11111112(2@2X2p2222223303H3`3x3333334 484P4h44444445(5@5X5p5555556606H6`6x6666667 787P7h77777778(8@8X8p8888889909H9`9x999999: :8:P:h:::::::;(;@;X;p;;;;;;<<0<H<`<x<<<<<<= =8=P=h=======>(>@>X>p>>>>>>??0?H?`?x??????@ @8@P@h@@@@@@@A(A@AXApAAAAAABB0BHB`BxBBBBBBC C8CPChCCCCCCCD(D@DXDpDDDDDDEE0EHE`ExEEEEEEF F8FPFhFFFFFFFG(G@GXGpGGGGGGHH0HHH`HxHHHHHHI I8IPIhIIIIIIIJ(J@JXJpJJJJJJKK0KHK`KxKKKKKKL L8LPLhLLLLLLLM(M@MXMpMMMMMMNN0NHN`NxNNNNNNO O8OPOhOOOOOOOP(P@PXPpPPPPPPQQ0QHQ`QxQQQQQQR R8RPRhRRRRRRRS(S@SXSpSSSSSSTT0THT`TxTTTTTTU U8UPUhUUUUUUUV+(VP                                                                                                                                 }}~}}}|~|~}~}}|}|~}}}}}~~~~~~~~~~~~~~~|~|}~|&  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ '.6@LVajou|  *4AMX^`bdfhjlnprtvxz|~!,3>ELVbpvy !$-4;GQX_kuy"(+4;BNX_fr| !)07COZelsz*7COTY`gow~ $).5<CJWdkr~ "+4;BO\cjot{   + 6 = D J R Y f s    % 2 ; E R _ j |   - 6 @ U [ ` f l t y }    $ . 8 B L V ` j t ~   ( 2 < F P Z d n x ",6@JT^hr|&0:DNXblv&0:DNXblv $,4<DLT[bipz (5=DNU]l{ %/7BLV`jr~'4<KS[cpy #+5=EMU]emu} #+3;CKS[cks{'/7?GOW_gow "-5=EMU]emu}!)2:BJS[ckt|&.7?GOW_gox"+4=FOXajs| %-5=EMU]emu} #+3;AIQYcjrx}char0spaceexclamquotedblnumbersigndollarpercentampersandquotesingleparenleftparenrightasteriskpluscommahyphenperiodslashzeroonetwothreefourfivesixseveneightninecolonsemicolonlessequalgreaterquestionatABCDEFGHIJKLMNOPQRSTUVWXYZbracketleftbackslashbracketrightasciicircumunderscoregraveabcdefghijklmnopqrstuvwxyzbraceleftbarbracerightasciitildespaceexclamdowncentsterlingcurrencyyenbrokenbarsectiondieresiscopyrightordfeminineguillemotleftlogicalnothyphenregisteredmacrondegreeplusminustwosuperiorthreesuperioracutemuparagraphperiodcenteredcedillaonesuperiorordmasculineguillemotrightonequarteronehalfthreequartersquestiondownAgraveAacuteAcircumflexAtildeAdieresisAringAECcedillaEgraveEacuteEcircumflexEdieresisIgraveIacuteIcircumflexIdieresisEthNtildeOgraveOacuteOcircumflexOtildeOdieresismultiplyOslashUgraveUacuteUcircumflexUdieresisYacuteThorngermandblsagraveaacuteacircumflexatildeadieresisaringaeccedillaegraveeacuteecircumflexedieresisigraveiacuteicircumflexidieresisethntildeograveoacuteocircumflexotildeodieresisdivideoslashugraveuacuteucircumflexudieresisyacutethornydieresisAmacronamacronAbreveabreveAogonekaogonekCacutecacuteCcircumflexccircumflexCdotaccentcdotaccentCcaronccaronDcarondcaronDcroatdcroatEmacronemacronEbreveebreveEdotaccentedotaccentEogonekeogonekEcaronecaronGcircumflexgcircumflexGbrevegbreveGdotaccentgdotaccentGcommaaccentgcommaaccentHcircumflexhcircumflexHbarhbarItildeitildeImacronimacronIbreveibreveIogonekiogonekIdotaccentdotlessiIJijJcircumflexjcircumflexKcommaaccentkcommaaccentkgreenlandicLacutelacuteLcommaaccentlcommaaccentLcaronlcaronLdotldotLslashlslashNacutenacuteNcommaaccentncommaaccentNcaronncaronnapostropheEngengOmacronomacronObreveobreveOhungarumlautohungarumlautOEoeRacuteracuteRcommaaccentrcommaaccentRcaronrcaronSacutesacuteScircumflexscircumflexScedillascedillaScaronscaronTcommaaccenttcommaaccentTcarontcaronTbartbarUtildeutildeUmacronumacronUbreveubreveUringuringUhungarumlautuhungarumlautUogonekuogonekWcircumflexwcircumflexYcircumflexycircumflexYdieresisZacutezacuteZdotaccentzdotaccentZcaronzcaronlongsuni018FflorinScommaaccentscommaaccentTcommaaccenttcommaaccentuni0259circumflexcaronmacronbrevedotaccentringogonektildehungarumlautuni0374uni0375uni037Auni037EtonosdieresistonosAlphatonosanoteleiaEpsilontonosEtatonosIotatonosOmicrontonosUpsilontonosOmegatonosiotadieresistonosAlphaBetaGammaDeltaEpsilonZetaEtaThetaIotaKappaLambdaMuNuXiOmicronPiRhoSigmaTauUpsilonPhiChiPsiOmegaIotadieresisUpsilondieresisalphatonosepsilontonosetatonosiotatonosupsilondieresistonosalphabetagammadeltaepsilonzetaetathetaiotakappalambdamunuxiomicronpirhosigma1sigmatauupsilonphichipsiomegaiotadieresisupsilondieresisomicrontonosupsilontonosomegatonosafii10023afii10051afii10052afii10053afii10054afii10055afii10056afii10057afii10058afii10059afii10060afii10061afii10062afii10145afii10017afii10018afii10019afii10020afii10021afii10022afii10024afii10025afii10026afii10027afii10028afii10029afii10030afii10031afii10032afii10033afii10034afii10035afii10036afii10037afii10038afii10039afii10040afii10041afii10042afii10043afii10044afii10045afii10046afii10047afii10048afii10049afii10065afii10066afii10067afii10068afii10069afii10070afii10072afii10073afii10074afii10075afii10076afii10077afii10078afii10079afii10080afii10081afii10082afii10083afii10084afii10085afii10086afii10087afii10088afii10089afii10090afii10091afii10092afii10093afii10094afii10095afii10096afii10097afii10071afii10099afii10100afii10101afii10102afii10103afii10104afii10105afii10106afii10107afii10108afii10109afii10110afii10193afii10050afii10098uni0492uni0493afii57664afii57665afii57666afii57667afii57668afii57669afii57670afii57671afii57672afii57673afii57674afii57675afii57676afii57677afii57678afii57679afii57680afii57681afii57682afii57683afii57684afii57685afii57686afii57687afii57688afii57689afii57690uni1E02uni1E03uni1E0Auni1E0Buni1E1Euni1E1Funi1E40uni1E41uni1E56uni1E57uni1E60uni1E61uni1E6Auni1E6BWgravewgraveWacutewacuteWdieresiswdieresisYgraveygraveuni2010uni2011figuredashendashemdashafii00208uni2016underscoredblquoteleftquoterightquotesinglbasequotereversedquotedblleftquotedblrightquotedblbaseuni201Fdaggerdaggerdblbulletuni2023onedotenleadertwodotenleaderellipsisuni2027perthousandguilsinglleftguilsinglrightuni203EnsuperiorpesetaEuroafii61352trademarkOmegauni2127oneeighththreeeighthsfiveeighthsseveneighthsarrowleftarrowuparrowrightarrowdownarrowbotharrowupdnuniversaluni2201partialdiffexistentialuni2204emptysetDeltagradientelementnotelementuni220Asuchthatuni220Cuni220Duni220Eproductuni2210summationminusuni2213uni2214fractionuni2216asteriskmathuni2218periodcenteredradicaluni221Buni221Cproportionalinfinityorthogonalangleuni2221uni2222uni2223uni2224uni2225uni2226logicalandlogicalorintersectionunionintegraluni222Cuni222Duni222Euni222Funi2230uni2231uni2232uni2233thereforeuni2235uni2236uni2237uni2238uni2239uni223Auni223Bsimilaruni223Duni223Euni223Funi2240uni2241uni2242uni2243uni2244congruentuni2246uni2247approxequaluni2249uni224Auni224Buni224Cuni224Duni224Euni224Funi2250uni2251uni2252uni2253uni2254uni2255uni2256uni2257uni2258uni2259uni225Auni225Buni225Cuni225Duni225Euni225Fnotequalequivalenceuni2262uni2263lessequalgreaterequaluni2266uni2267uni2268uni2269uni226Auni226Buni226Cuni226Duni226Euni226Funi2270uni2271uni2272uni2273uni2276uni2277uni2278uni2279uni227Auni227Buni227Cuni227Duni227Euni227Funi2280uni2281propersubsetpropersupersetnotsubsetuni2285reflexsubsetreflexsupersetuni2288uni2289uni228Auni228Brevlogicalnotintegraltpintegralbtuni23BAuni23BBuni23BCuni23BDuni2409uni240Auni240Buni240Cuni240Duni2423uni2424SF100000uni2501SF110000uni2503uni2504uni2505uni2506uni2507uni2508uni2509uni250Auni250BSF010000uni250Duni250Euni250FSF030000uni2511uni2512uni2513SF020000uni2515uni2516uni2517SF040000uni2519uni251Auni251BSF080000uni251Duni251Euni251Funi2520uni2521uni2522uni2523SF090000uni2525uni2526uni2527uni2528uni2529uni252Auni252BSF060000uni252Duni252Euni252Funi2530uni2531uni2532uni2533SF070000uni2535uni2536uni2537uni2538uni2539uni253Auni253BSF050000uni253Duni253Euni253Funi2540uni2541uni2542uni2543uni2544uni2545uni2546uni2547uni2548uni2549uni254Auni254Buni254Cuni254Duni254Euni254FSF430000SF240000SF510000SF520000SF390000SF220000SF210000SF250000SF500000SF490000SF380000SF280000SF270000SF260000SF360000SF370000SF420000SF190000SF200000SF230000SF470000SF480000SF410000SF450000SF460000SF400000SF540000SF530000SF440000uni256Duni256Euni256Funi2570uni2571uni2572uni2573uni2574uni2575uni2576uni2577uni2578uni2579uni257Auni257Buni257Cuni257Duni257Euni257Fupblockuni2581uni2582uni2583dnblockuni2585uni2586uni2587blockuni2589uni258Auni258Blfblockuni258Duni258Euni258Frtblockltshadeshadedkshadeuni2594uni2595filledboxH22073uni25C6spadeclubheartdiamonduni2669musicalnotemusicalnotedbluni266Cuni266Duni266Euni266FuniFFFDfontconfig-2.11.1/test/test-pthread.c0000664000076400007640000000471612267155335014433 00000000000000/* * fontconfig/test/test-pthread.c * * Copyright © 2000 Keith Packard * Copyright © 2013 Raimund Steger * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * the above copyright notice appear in all copies and that both that * copyright notice and this permission notice appear in supporting * documentation, and that the name of the author(s) not be used in * advertising or publicity pertaining to distribution of the software without * specific, written prior permission. The authors make no * representations about the suitability of this software for any purpose. It * is provided "as is" without express or implied warranty. * * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ #include #include #include #include #include #define NTHR 100 #define NTEST 100 struct thr_arg_s { int thr_num; }; static void test_match(int thr_num,int test_num) { FcPattern *pat; FcPattern *match; FcResult result; FcInit(); pat = FcNameParse((const FcChar8 *)"New Century Schoolbook"); FcConfigSubstitute(0,pat,FcMatchPattern); FcDefaultSubstitute(pat); match = FcFontMatch(0,pat,&result); FcPatternDestroy(pat); FcPatternDestroy(match); } static void *run_test_in_thread(void *arg) { struct thr_arg_s *thr_arg=(struct thr_arg_s *)arg; int thread_num = thr_arg->thr_num; int i=0; for(;iEKM[bqr}xddPT [fozFONTNAME_REGISTRYFOUNDRYSonyFAMILY_NAMEFixedWEIGHT_NAMEMediumSLANTRSETWIDTH_NAMENormalADD_STYLE_NAMEPIXEL_SIZEPOINT_SIZERESOLUTION_XRESOLUTION_YSPACINGCAVERAGE_WIDTHCHARSET_REGISTRYISO8859CHARSET_ENCODING1COPYRIGHTCopyright (c) 1987, 1988 Sony Corp.FONT-Sony-Fixed-Medium-R-Normal--16-120-100-100-C-80-ISO8859-1WEIGHTRESOLUTIONX_HEIGHTQUAD_WIDTH@@@@@@@@@ @ @ @ @ @ @@@@@@@@@@@@@@@@@@ @ !@!!!"@"""#@###$@$$$%@%%%&@&&&'@'''(@((()@)))*@***+@+++,@,,,-@---.@.../@///0@0001@1112@2223@3334@4445@5556@6667 @7n>>>>II""II""II""II||<<DD<$D|<"""!#%%))1!| |@0  0@`$$$$"!@ 0H><J66$$HHH$$$$$*Ii (HKI)@F)))4LJJJ1  t**)1N@  @IkkI@@ $$BBBBBBBB$$>$BF@ DB~"AA@  @AA"<?#A@@CA"<Bb#AAAA"AA "AAA""AAA""AAAAb\@@A" @  @"AC@ <BAYeEEEeYB<"""">AAAc"BBB""BBBB?\bBABB<""BBBBBBB""BBBBBBBXdBAAABfXBBBB~BBBBBB@@@@@@@AAA"g"" ""BBBBAcUUUIIIAAAAcCEEEIIIQQQaC"AAAAAAAAA""BBBB"""AAAAAA]""`"BBB""""B,2! AAA#II>BBBBBBBBBBB<cAAAA""""cAAAIIIUUU"""w""""AccA""">!BBAxx @@"A <B@|BAAa"BBBBB"\bAAB<` <"!!!!!"|"AAB<p>"""!AA>:FBBBBBB``|@@@@@@AA"B"&"BB6IIIIIII;FBBBBBB"AAAAA""BBBB"|"!!!!"< x7LD?\bB<@AC=?DD8cBBBBBBbcAA"""IIIIUU"""w""wBD$( ~"DB``I0<JI IJ<0H><JB<$$<BAA""<B<BBB< @B<$$$<BB<8DxDdX|H$ $H``<BB<"""$ <$  $0 DDD""6*A_____^PPPPP0$$$$< $HH$ bLcPH@bl` iLcPH@8D8 """>AAAc""">AAAc"""">AAAc$""">AAAc""""">AAAc"""">AAAcr<BB< BBBBBBBB BBBB""BBBB """""BBBOBBB""$CEEIIIQQaC "AAAAAAA""AAAAAAA"""AAAAAAA"$"AAAAAAA""""AAAAAAA"B$$B@@<"aQQIIEEC" BBBBBBBBB<0BBBBBBBBB<$BBBBBBBBB<$$BBBBBBBBB<0cA"">"BBB""AAA!!AAAA9 <B@|BAAa<B@|BAAa$B<B@|BAAaL2<B@|BAAa$$<B@|BAAa$<B@|BAAa6IH| II6\bAAB< "AAB<"AAB<"A"AAB<"""A" $B$$&$<BAAAAAB<L2;FBBBBBB "AAAAA""AAAAA"""AAAAA"L2"AAAAA""""AAAAA"\"QQIEE" cBBBBBBbcBBBBBBb"cBBBBBBb$$cBBBBBBb0BD$( "BBBB"$$BD$( y{{ux{~{{ww~~z|vwu}v{}{uxzzvzz{~~   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ #(-27<AFKPUZ_dinsx}   "$&(*,.02468:<>@BDFHJLNPRTVXZ\afkpuz $).38=BGLQV[`ejoty~ #(-27C001C002C003C004C005C006C007C010C011C012C013C014C015C016C017C020C021C022C023C024C025C026C027C030C031C032C033C034C035C036C037C040!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~C241C242C243C244C245C246C247C250C251C252C253C254C255C256C257C260C261C262C263C264C265C266C267C270C271C272C273C274C275C276C277C300C301C302C303C304C305C306C307C310C311C312C313C314C315C316C317C320C321C322C323C324C325C326C327C330C331C332C333C334C335C336C337C340C341C342C343C344C345C346C347C350C351C352C353C353C354C355C356C357C360C361C362C363C364C365C366C367C370C371C372C373C374C375C376fontconfig-2.11.1/test/out.expected0000664000076400007640000000016311720341276014177 00000000000000Fixed:pixelsize=16 Fixed:pixelsize=6 = Fixed:pixelsize=16 Fixed:pixelsize=6 = Fixed:pixelsize=16 Fixed:pixelsize=6 fontconfig-2.11.1/test/run-test.sh0000664000076400007640000000540112267155335013770 00000000000000#!/bin/sh # fontconfig/test/run-test.sh # # Copyright © 2000 Keith Packard # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of the author(s) not be used in # advertising or publicity pertaining to distribution of the software without # specific, written prior permission. The authors make no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. # # THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. TESTDIR=${srcdir-`pwd`} FONTDIR=`pwd`/fonts CACHEDIR=`pwd`/cache.dir ECHO=true FCLIST=../fc-list/fc-list$EXEEXT FCCACHE=../fc-cache/fc-cache$EXEEXT FONT1=$TESTDIR/4x6.pcf FONT2=$TESTDIR/8x16.pcf check () { $FCLIST - family pixelsize | sort > out echo "=" >> out $FCLIST - family pixelsize | sort >> out echo "=" >> out $FCLIST - family pixelsize | sort >> out tr -d '\015' out.tmp; mv out.tmp out if cmp out $TESTDIR/out.expected > /dev/null ; then : ; else echo "*** Test failed: $TEST" echo "*** output is in 'out', expected output in 'out.expected'" exit 1 fi rm out } prep() { rm -rf $CACHEDIR rm -rf $FONTDIR mkdir $FONTDIR } dotest () { TEST=$1 test x$VERBOSE = x || echo Running: $TEST } sed "s!@FONTDIR@!$FONTDIR! s!@CACHEDIR@!$CACHEDIR!" < $TESTDIR/fonts.conf.in > fonts.conf FONTCONFIG_FILE=`pwd`/fonts.conf export FONTCONFIG_FILE dotest "Basic check" prep cp $FONT1 $FONT2 $FONTDIR check dotest "With a subdir" prep cp $FONT1 $FONT2 $FONTDIR $FCCACHE $FONTDIR check dotest "Subdir with a cache file" prep mkdir $FONTDIR/a cp $FONT1 $FONT2 $FONTDIR/a $FCCACHE $FONTDIR/a check dotest "Complicated directory structure" prep mkdir $FONTDIR/a mkdir $FONTDIR/a/a mkdir $FONTDIR/b mkdir $FONTDIR/b/a cp $FONT1 $FONTDIR/a cp $FONT2 $FONTDIR/b/a check dotest "Subdir with an out-of-date cache file" prep mkdir $FONTDIR/a $FCCACHE $FONTDIR/a sleep 1 cp $FONT1 $FONT2 $FONTDIR/a check dotest "Dir with an out-of-date cache file" prep cp $FONT1 $FONTDIR $FCCACHE $FONTDIR sleep 1 mkdir $FONTDIR/a cp $FONT2 $FONTDIR/a check rm -rf $FONTDIR $CACHEFILE $CACHEDIR $FONTCONFIG_FILE out fontconfig-2.11.1/test/Makefile.in0000664000076400007640000010203512313745337013720 00000000000000# Makefile.in generated by automake 1.13.4 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ check_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) @HAVE_PTHREAD_TRUE@am__append_1 = test-pthread @OS_WIN32_FALSE@am__append_2 = test-migration subdir = test DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ $(top_srcdir)/m4/ax_pthread.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @HAVE_PTHREAD_TRUE@am__EXEEXT_1 = test-pthread$(EXEEXT) @OS_WIN32_FALSE@am__EXEEXT_2 = test-migration$(EXEEXT) PROGRAMS = $(noinst_PROGRAMS) test_migration_SOURCES = test-migration.c test_migration_OBJECTS = test-migration.$(OBJEXT) @OS_WIN32_FALSE@test_migration_DEPENDENCIES = \ @OS_WIN32_FALSE@ $(top_builddir)/src/libfontconfig.la AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = test_pthread_SOURCES = test-pthread.c test_pthread_OBJECTS = test-pthread.$(OBJEXT) @HAVE_PTHREAD_TRUE@test_pthread_DEPENDENCIES = \ @HAVE_PTHREAD_TRUE@ $(top_builddir)/src/libfontconfig.la AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = test-migration.c test-pthread.c DIST_SOURCES = test-migration.c test-pthread.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no am__tty_colors = { \ $(am__tty_colors_dummy); \ if test "X$(AM_COLOR_TESTS)" = Xno; then \ am__color_tests=no; \ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ am__color_tests=yes; \ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ am__color_tests=yes; \ fi; \ if test $$am__color_tests = yes; then \ red=''; \ grn=''; \ lgn=''; \ blu=''; \ mgn=''; \ brg=''; \ std=''; \ fi; \ } am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__recheck_rx = ^[ ]*:recheck:[ ]* am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* # A command that, given a newline-separated list of test names on the # standard input, print the name of the tests that are to be re-run # upon "make recheck". am__list_recheck_tests = $(AWK) '{ \ recheck = 1; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ { \ if ((getline line2 < ($$0 ".log")) < 0) \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ { \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ { \ break; \ } \ }; \ if (recheck) \ print $$0; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # A command that, given a newline-separated list of test names on the # standard input, create the global log from their .trs and .log files. am__create_global_log = $(AWK) ' \ function fatal(msg) \ { \ print "fatal: making $@: " msg | "cat >&2"; \ exit 1; \ } \ function rst_section(header) \ { \ print header; \ len = length(header); \ for (i = 1; i <= len; i = i + 1) \ printf "="; \ printf "\n\n"; \ } \ { \ copy_in_global_log = 1; \ global_test_result = "RUN"; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".trs"); \ if (line ~ /$(am__global_test_result_rx)/) \ { \ sub("$(am__global_test_result_rx)", "", line); \ sub("[ ]*$$", "", line); \ global_test_result = line; \ } \ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ copy_in_global_log = 0; \ }; \ if (copy_in_global_log) \ { \ rst_section(global_test_result ": " $$0); \ while ((rc = (getline line < ($$0 ".log"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".log"); \ print line; \ }; \ printf "\n"; \ }; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # Restructured Text title. am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } # Solaris 10 'make', and several other traditional 'make' implementations, # pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it # by disabling -e (using the XSI extension "set +e") if it's set. am__sh_e_setup = case $$- in *e*) set +e;; esac # Default flags passed to test drivers. am__common_driver_flags = \ --color-tests "$$am__color_tests" \ --enable-hard-errors "$$am__enable_hard_errors" \ --expect-failure "$$am__expect_failure" # To be inserted before the command running the test. Creates the # directory for the log if needed. Stores in $dir the directory # containing $f, in $tst the test, in $log the log. Executes the # developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and # passes TESTS_ENVIRONMENT. Set up options for the wrapper that # will run the test scripts (or their associated LOG_COMPILER, if # thy have one). am__check_pre = \ $(am__sh_e_setup); \ $(am__vpath_adj_setup) $(am__vpath_adj) \ $(am__tty_colors); \ srcdir=$(srcdir); export srcdir; \ case "$@" in \ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ *) am__odir=.;; \ esac; \ test "x$$am__odir" = x"." || test -d "$$am__odir" \ || $(MKDIR_P) "$$am__odir" || exit $$?; \ if test -f "./$$f"; then dir=./; \ elif test -f "$$f"; then dir=; \ else dir="$(srcdir)/"; fi; \ tst=$$dir$$f; log='$@'; \ if test -n '$(DISABLE_HARD_ERRORS)'; then \ am__enable_hard_errors=no; \ else \ am__enable_hard_errors=yes; \ fi; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ am__expect_failure=yes;; \ *) \ am__expect_failure=no;; \ esac; \ $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) # A shell command to get the names of the tests scripts with any registered # extension removed (i.e., equivalently, the names of the test logs, with # the '.log' extension removed). The result is saved in the shell variable # '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, # we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", # since that might cause problem with VPATH rewrites for suffix-less tests. # See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` RECHECK_LOGS = $(TEST_LOGS) AM_RECURSIVE_TARGETS = check recheck TEST_SUITE_LOG = test-suite.log am__test_logs1 = $(TESTS:=.log) am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) TEST_LOGS = $(am__test_logs2:.sh.log=.log) SH_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver SH_LOG_COMPILE = $(SH_LOG_COMPILER) $(AM_SH_LOG_FLAGS) $(SH_LOG_FLAGS) am__set_b = \ case '$@' in \ */*) \ case '$*' in \ */*) b='$*';; \ *) b=`echo '$@' | sed 's/\.log$$//'`; \ esac;; \ *) \ b='$*';; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASECONFIGDIR = @BASECONFIGDIR@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CC_FOR_BUILD = @CC_FOR_BUILD@ CFLAGS = @CFLAGS@ CONFIGDIR = @CONFIGDIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DOCMAN3 = @DOCMAN3@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@ EXPAT_CFLAGS = @EXPAT_CFLAGS@ EXPAT_LIBS = @EXPAT_LIBS@ FC_ADD_FONTS = @FC_ADD_FONTS@ FC_CACHEDIR = @FC_CACHEDIR@ FC_DEFAULT_FONTS = @FC_DEFAULT_FONTS@ FC_FONTDATE = @FC_FONTDATE@ FC_FONTPATH = @FC_FONTPATH@ FGREP = @FGREP@ FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ FREETYPE_LIBS = @FREETYPE_LIBS@ GIT = @GIT@ GPERF = @GPERF@ GREP = @GREP@ HASDOCBOOK = @HASDOCBOOK@ HAVE_XMLPARSE_H = @HAVE_XMLPARSE_H@ ICONV_CFLAGS = @ICONV_CFLAGS@ ICONV_LIBS = @ICONV_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBT_CURRENT = @LIBT_CURRENT@ LIBT_CURRENT_MINUS_AGE = @LIBT_CURRENT_MINUS_AGE@ LIBT_REVISION = @LIBT_REVISION@ LIBT_VERSION_INFO = @LIBT_VERSION_INFO@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ RM = @RM@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TEMPLATEDIR = @TEMPLATEDIR@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ XMLDIR = @XMLDIR@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ ax_pthread_config = @ax_pthread_config@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fc_cachedir = @fc_cachedir@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ ms_librarian = @ms_librarian@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfigdir = @pkgconfigdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ check_SCRIPTS = run-test.sh TEST_EXTENSIONS = \ .sh \ $(NULL) AM_TESTS_ENVIRONMENT = \ src=${srcdir}; export src; \ EXEEXT=${EXEEXT}; export EXEEXT; \ $(NULL) SH_LOG_COMPILER = sh TESTS = run-test.sh TESTDATA = 4x6.pcf 8x16.pcf out.expected fonts.conf.in AM_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir) @HAVE_PTHREAD_TRUE@test_pthread_LDADD = $(top_builddir)/src/libfontconfig.la # We don't enable this test by default because it will require config and fonts # to meaningfully test anything, and we are not installed yet. #TESTS += test-pthread noinst_PROGRAMS = $(check_PROGRAMS) @OS_WIN32_FALSE@test_migration_LDADD = $(top_builddir)/src/libfontconfig.la EXTRA_DIST = $(check_SCRIPTS) $(TESTDATA) CLEANFILES = all: all-am .SUFFIXES: .SUFFIXES: .c .lo .log .o .obj .sh .sh$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu test/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list test-migration$(EXEEXT): $(test_migration_OBJECTS) $(test_migration_DEPENDENCIES) $(EXTRA_test_migration_DEPENDENCIES) @rm -f test-migration$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_migration_OBJECTS) $(test_migration_LDADD) $(LIBS) test-pthread$(EXEEXT): $(test_pthread_OBJECTS) $(test_pthread_DEPENDENCIES) $(EXTRA_test_pthread_DEPENDENCIES) @rm -f test-pthread$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_pthread_OBJECTS) $(test_pthread_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-migration.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-pthread.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags # Recover from deleted '.trs' file; this should ensure that # "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create # both 'foo.log' and 'foo.trs'. Break the recipe in two subshells # to avoid problems with "make -n". .log.trs: rm -f $< $@ $(MAKE) $(AM_MAKEFLAGS) $< # Leading 'am--fnord' is there to ensure the list of targets does not # expand to empty, as could happen e.g. with make check TESTS=''. am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) am--force-recheck: @: $(TEST_SUITE_LOG): $(TEST_LOGS) @$(am__set_TESTS_bases); \ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ redo_bases=`for i in $$bases; do \ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ done`; \ if test -n "$$redo_bases"; then \ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ if $(am__make_dryrun); then :; else \ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ fi; \ if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ else \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ st=0; \ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ for i in $$redo_bases; do \ test -f $$i.trs && test -r $$i.trs \ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ test -f $$i.log && test -r $$i.log \ || { echo "$$errmsg $$i.log" >&2; st=1; }; \ done; \ test $$st -eq 0 || exit 1; \ fi @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ ws='[ ]'; \ results=`for b in $$bases; do echo $$b.trs; done`; \ test -n "$$results" || results=/dev/null; \ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ if test `expr $$fail + $$xpass + $$error` -eq 0; then \ success=true; \ else \ success=false; \ fi; \ br='==================='; br=$$br$$br$$br$$br; \ result_count () \ { \ if test x"$$1" = x"--maybe-color"; then \ maybe_colorize=yes; \ elif test x"$$1" = x"--no-color"; then \ maybe_colorize=no; \ else \ echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ shift; \ desc=$$1 count=$$2; \ if test $$maybe_colorize = yes && test $$count -gt 0; then \ color_start=$$3 color_end=$$std; \ else \ color_start= color_end=; \ fi; \ echo "$${color_start}# $$desc $$count$${color_end}"; \ }; \ create_testsuite_report () \ { \ result_count $$1 "TOTAL:" $$all "$$brg"; \ result_count $$1 "PASS: " $$pass "$$grn"; \ result_count $$1 "SKIP: " $$skip "$$blu"; \ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ result_count $$1 "FAIL: " $$fail "$$red"; \ result_count $$1 "XPASS:" $$xpass "$$red"; \ result_count $$1 "ERROR:" $$error "$$mgn"; \ }; \ { \ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ $(am__rst_title); \ create_testsuite_report --no-color; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for b in $$bases; do echo $$b; done \ | $(am__create_global_log); \ } >$(TEST_SUITE_LOG).tmp || exit 1; \ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ if $$success; then \ col="$$grn"; \ else \ col="$$red"; \ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ if $$success; then :; else \ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ if test -n "$(PACKAGE_BUGREPORT)"; then \ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ fi; \ echo "$$col$$br$$std"; \ fi; \ $$success || exit 1 check-TESTS: @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ log_list=`for i in $$bases; do echo $$i.log; done`; \ trs_list=`for i in $$bases; do echo $$i.trs; done`; \ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ exit $$?; recheck: all $(check_PROGRAMS) $(check_SCRIPTS) @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ bases=`for i in $$bases; do echo $$i; done \ | $(am__list_recheck_tests)` || exit 1; \ log_list=`for i in $$bases; do echo $$i.log; done`; \ log_list=`echo $$log_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ am__force_recheck=am--force-recheck \ TEST_LOGS="$$log_list"; \ exit $$? .sh.log: @p='$<'; \ $(am__set_b); \ $(am__check_pre) $(SH_LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_SH_LOG_DRIVER_FLAGS) $(SH_LOG_DRIVER_FLAGS) -- $(SH_LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) @am__EXEEXT_TRUE@.sh$(EXEEXT).log: @am__EXEEXT_TRUE@ @p='$<'; \ @am__EXEEXT_TRUE@ $(am__set_b); \ @am__EXEEXT_TRUE@ $(am__check_pre) $(SH_LOG_DRIVER) --test-name "$$f" \ @am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_SH_LOG_DRIVER_FLAGS) $(SH_LOG_DRIVER_FLAGS) -- $(SH_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(check_SCRIPTS) $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ clean-noinstPROGRAMS mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: check-am install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ clean-checkPROGRAMS clean-generic clean-libtool \ clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am recheck tags tags-am uninstall \ uninstall-am -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: