6890351 Fontconfig version 2.7.3
6895018 Remove the FT_CONFIG_ADD_FULL_HINTING patches
--- a/open-src/lib/fontconfig/6770058.patch Sun Oct 25 21:19:31 2009 -0700
+++ b/open-src/lib/fontconfig/6770058.patch Mon Oct 26 06:50:50 2009 -0700
@@ -1,6 +1,6 @@
---- fontconfig-2.7.1/src/fcmatch.c 2009-08-26 16:50:43.692051000 -0400
-+++ fontconfig-2.7.1/src/fcmatch.c 2009-08-26 17:00:48.404364000 -0400
-@@ -915,6 +915,12 @@
+--- fontconfig-2.7.3/src/fcmatch.c 2009-09-08 11:45:26.000000000 -0400
++++ fontconfig-2.7.3/src/fcmatch.c 2009-10-15 11:39:33.083335000 -0400
+@@ -677,6 +677,12 @@
printf ("Sort ");
FcPatternPrint (p);
}
--- a/open-src/lib/fontconfig/Makefile Sun Oct 25 21:19:31 2009 -0700
+++ b/open-src/lib/fontconfig/Makefile Mon Oct 26 06:50:50 2009 -0700
@@ -30,14 +30,14 @@
# or other dealings in this Software without prior written authorization
# of the copyright holder.
#
-# ident "@(#)Makefile 1.82 09/10/13 SMI"
+# @(#)Makefile 1.84 09/10/26
#
# Package name used in tarballs
MODULE_NAME=fontconfig
# Version number (used in path names)
-MODULE_VERSION=2.7.1
+MODULE_VERSION=2.7.3
# Source tarball
SOURCE_TARBALL_NAME=fontconfig-$(MODULE_VERSION).tar.gz
@@ -49,9 +49,8 @@
SOURCE_URL_SET=yes
# Patches to apply to source after unpacking, in order
-SOURCE_PATCHES=fontconfig-$(MODULE_VERSION).patch,-p1 \
- fontconfig-$(MODULE_VERSION).patch.hide,-p1 \
- fontconfig-$(MODULE_VERSION)-fonts.conf.patch,-p1 \
+SOURCE_PATCHES=fontconfig-$(MODULE_VERSION)-fonts.conf.patch,-p1 \
+ Makefile.am.0.patch,-p1 \
6770058.patch,-p1
# Library name (used for specfiles/mapfiles)
@@ -99,10 +98,13 @@
# README file to be installed in /etc/fonts/conf.avail/README
FONTCONFIG_ETC_README=$(PROTODIR)/etc/fonts/conf.avail/README
+# local.conf file to be installed in /etc/fonts/local.conf
+FONTCONFIG_LOCAL_CONF = $(PROTODIR)/etc/fonts/local.conf
+
# Additional targets to install beyond the default_install
MODULE_ADD_INSTALL_TARGETS = fontconfig-sunman-install \
$(FONTCONFIG_SMF_MANIFEST) $(FONTCONFIG_SMF_METHOD) \
- $(FONTCONFIG_ETC_README)
+ $(FONTCONFIG_ETC_README) $(FONTCONFIG_LOCAL_CONF)
# Include common rulesets
include ../Makefile.inc
@@ -131,6 +133,11 @@
mkdir -p $(PROTODIR)/etc/fonts/conf.avail
cp -fp $(SOURCE_DIR)/conf.d/README $@
+$(FONTCONFIG_LOCAL_CONF): local.conf
+ mkdir -p $(PROTODIR)/etc/fonts
+ cp -fp local.conf $@
+ touch -acm $@
+
FC_MAN_DIR=$(PROTODIR)/usr/share/man
fontconfig-sunman-install: default_install
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/fontconfig/Makefile.am.0.patch Mon Oct 26 06:50:50 2009 -0700
@@ -0,0 +1,19 @@
+--- fontconfig-2.7.3/Makefile.am 2009-06-24 11:43:43.000000000 -0700
++++ fontconfig-2.7.3/Makefile.am 2009-10-26 13:37:54.735090942 -0700
+@@ -104,16 +104,6 @@
+ echo " $(INSTALL_DATA) fonts.conf $(DESTDIR)$(configdir)/fonts.conf"; \
+ $(INSTALL_DATA) fonts.conf $(DESTDIR)$(configdir)/fonts.conf; \
+ fi; fi
+- @(if $(RUN_FC_CACHE_TEST); then \
+- echo " $(bindir)/fc-cache -s -f -v"; \
+- $(bindir)/fc-cache -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 \
--- a/open-src/lib/fontconfig/fontconfig-2.7.1-fonts.conf.patch Sun Oct 25 21:19:31 2009 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,315 +0,0 @@
---- fontconfig-2.7.1/conf.d/30-metric-aliases.conf 2009-06-28 13:48:47.000000000 -0400
-+++ fontconfig-2.7.1/conf.d/30-metric-aliases.conf 2009-08-26 17:14:48.048084000 -0400
-@@ -207,5 +207,13 @@
- </accept>
- </alias>
-
-+ <!-- StarOffice formerly included Arial Narrow - Solaris includes Arial Narrow MT instead. -->
-+ <alias>
-+ <family>Arial Narrow</family>
-+ <accept>
-+ <family>Arial Narrow MT</family>
-+ <family>Nimbus Sans L Condensed</family>
-+ </accept>
-+ </alias>
-
- </fontconfig>
---- fontconfig-2.7.1/conf.d/40-nonlatin.conf 2009-06-28 13:48:47.000000000 -0400
-+++ fontconfig-2.7.1/conf.d/40-nonlatin.conf 2009-08-26 17:18:21.871571000 -0400
-@@ -18,6 +18,17 @@
- <family>Zar</family>
- <family>Titr</family>
- <family>Jadid</family>
-+ <family>HG-PMinchoL-Sun</family>
-+ <family>HG-MinchoL-Sun</family>
-+ <family>IPAPMincho</family>
-+ <family>IPAMincho</family>
-+ <family>Sazanami Mincho</family>
-+ <family>Sazanami Gothic</family>
-+ <family>FZSongTi</family>
-+ <family>FZMingTi</family>
-+ <family>KacstQurn</family>
-+ <family>SunDotum</family>
-+ <family>AR PL ShanHeiSun Uni</family>
- <family>Kochi Mincho</family>
- <family>AR PL SungtiL GB</family>
- <family>AR PL Mingti2L Big5</family>
-@@ -43,6 +54,15 @@
- <family>Roya</family>
- <family>Koodak</family>
- <family>Terafik</family>
-+ <family>HG-PGothicB-Sun</family>
-+ <family>HG-GothicB-Sun</family>
-+ <family>IPAPGothic</family>
-+ <family>IPAGothic</family>
-+ <family>Sazanami Gothic</family>
-+ <family>FZSongTi</family>
-+ <family>FZMingTi</family>
-+ <family>KacstQurn</family>
-+ <family>SunDotum</family>
- <family>Kochi Gothic</family>
- <family>AR PL KaitiM GB</family>
- <family>AR PL KaitiM Big5</family>
-@@ -61,6 +81,7 @@
- Monospace faces
- -->
- <alias>
-+ <family>SunDotumChe</family>
- <family>NSimSun</family>
- <family>ZYSong18030</family>
- <family>FreeMono</family>
---- fontconfig-2.7.1/conf.d/49-sun-preuser.conf 2009-07-10 13:08:51.000000000 -0400
-+++ fontconfig-2.7.1/conf.d/49-sun-preuser.conf 2009-08-26 17:20:31.599437000 -0400
-@@ -0,0 +1,79 @@
-+<?xml version="1.0"?>
-+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
-+<fontconfig>
-+ <!--
-+ Hinting for CJK fonts doesn't yet work as well as for Latin fonts.
-+ Some people may want to turn it off:
-+ -->
-+
-+ <match target="font">
-+ <test name="lang" compare="contains">
-+ <string>zh</string>
-+ <string>ko</string>
-+ <string>ja</string>
-+ </test>
-+ <edit name="hinting" mode="assign">
-+ <bool>false</bool>
-+ </edit>
-+ </match>
-+
-+ <!--
-+ Chinese fonts are too light. We want to darken them up.
-+ darken_value is an int between 1 and 9 where 1 is a little
-+ darker and 9 is very dark. The default is 6.
-+ -->
-+
-+ <match target="font">
-+ <test name="lang" compare="contains">
-+ <string>zh</string>
-+ </test>
-+ <edit name="darken" mode="assign">
-+ <bool>true</bool>
-+ </edit>
-+ <edit name="darken_value" mode="assign">
-+ <int>6</int>
-+ </edit>
-+ </match>
-+
-+ <!--
-+ To avoid using embedded bitmaps in TrueType fonts
-+ put the following rule in your personal ~/.fonts.conf file:
-+
-+ <match target="pattern">
-+ <edit name="prefer_bitmap">
-+ <bool>false</bool>
-+ </edit>
-+ </match>
-+ -->
-+ <match target="pattern">
-+ <edit name="prefer_bitmap">
-+ <bool>true</bool>
-+ </edit>
-+ </match>
-+ <match target="font">
-+ <!-- check to see if the font is roman -->
-+ <test name="slant">
-+ <const>roman</const>
-+ </test>
-+ <!-- check to see if the pattern requested non-roman -->
-+ <test target="pattern" name="slant" compare="not_eq">
-+ <const>roman</const>
-+ </test>
-+ <edit name="prefer_bitmap">
-+ <bool>false</bool>
-+ </edit>
-+ </match>
-+ <!-- Latin fonts should not be used for ASCII characters when using
-+ Japanese monospace families -->
-+ <match target="pattern">
-+ <test name="family">
-+ <string>monospace</string>
-+ </test>
-+ <test name="lang" compare="eq">
-+ <string>ja-jp</string>
-+ </test>
-+ <edit name="disable_pango_script">
-+ <bool>true</bool>
-+ </edit>
-+ </match>
-+</fontconfig>
---- fontconfig-2.7.1/conf.d/45-latin.conf 2009-07-10 13:08:51.000000000 -0400
-+++ fontconfig-2.7.1/conf.d/45-latin.conf 2009-08-26 17:20:58.512527000 -0400
-@@ -10,6 +10,7 @@
- Serif faces
- -->
- <alias>
-+ <family>Lucida Bright</family>
- <family>Bitstream Vera Serif</family>
- <family>DejaVu Serif</family>
- <family>Liberation Serif</family>
-@@ -25,6 +26,7 @@
- Sans-serif faces
- -->
- <alias>
-+ <family>Lucida Sans Typewriter</family>
- <family>Bitstream Vera Sans</family>
- <family>DejaVu Sans</family>
- <family>Liberation Sans</family>
-@@ -41,6 +43,7 @@
- Monospace faces
- -->
- <alias>
-+ <family>Lucida Sans Typewriter</family>
- <family>Bitstream Vera Sans Mono</family>
- <family>DejaVu Sans Mono</family>
- <family>Liberation Mono</family>
---- fontconfig-2.7.1/conf.d/65-nonlatin.conf Thu Sep 24 17:00:34 2009 +0200
-+++ fontconfig-2.7.1/conf.d/65-nonlatin.conf Thu Sep 24 18:10:05 2009 +0200
-@@ -4,6 +4,7 @@
- <alias>
- <family>serif</family>
- <prefer>
-+ <family>EUDC</family>
- <family>Artsounk</family> <!-- armenian -->
- <family>BPG UTF8 M</family> <!-- georgian -->
- <family>Kinnari</family> <!-- thai -->
-@@ -27,17 +28,23 @@
- <family>UmePlus P Gothic</family> <!-- han (ja) -->
- <family>SimSun</family> <!-- han (zh-cn,zh-tw) -->
- <family>PMingLiu</family> <!-- han (zh-tw) -->
-- <family>WenQuanYi Zen Hei</family> <!-- han (zh-cn,zh-tw) -->
-- <family>WenQuanYi Bitmap Song</family> <!-- han (zh-cn,zh-tw) -->
-- <family>AR PL ShanHeiSun Uni</family> <!-- han (ja,zh-cn,zh-tw) -->
- <family>AR PL New Sung</family> <!-- han (zh-cn,zh-tw) -->
- <family>ZYSong18030</family> <!-- han (zh-cn,zh-tw) -->
- <family>HanyiSong</family> <!-- han (zh-cn,zh-tw) -->
- <family>MgOpen Canonica</family>
-- <family>Sazanami Mincho</family>
-+ <family>HG-PMinchoL-Sun</family>
-+ <family>HG-MinchoL-Sun</family>
- <family>IPAMonaMincho</family>
-+ <family>IPAPMincho</family>
- <family>IPAMincho</family>
-- <family>Kochi Mincho</family>
-+ <family>Sazanami Mincho</family>
-+ <family>Sazanami Gothic</family>
-+ <family>WenQuanYi Zen Hei</family> <!-- han (zh-cn,zh-tw) -->
-+ <family>WenQuanYi Bitmap Song</family> <!-- han (zh-cn,zh-tw) -->
-+ <family>AR PL ShanHeiSun Uni</family> <!-- han (ja,zh-cn,zh-tw) -->
-+ <family>FZSongTi</family>
-+ <family>FZMingTi</family>
-+ <family>KacstQurn</family>
- <family>AR PL SungtiL GB</family>
- <family>AR PL Mingti2L Big5</family>
- <family>AR PL Zenkai Uni</family>
-@@ -64,11 +71,13 @@
- <family>Lohit Telugu</family>
- <family>Lohit Oriya</family>
- <family>LKLUG</family>
-+ <family>SunDotum</family>
- </prefer>
- </alias>
- <alias>
- <family>sans-serif</family>
- <prefer>
-+ <family>EUDC</family>
- <family>Nachlieli</family> <!-- hebrew -->
- <family>Lucida Sans Unicode</family>
- <family>Yudit Unicode</family>
-@@ -99,19 +108,23 @@
- <!-- chinese fonts are actually serifed -->
- <family>SimSun</family> <!-- han (zh-cn,zh-tw) -->
- <family>PMingLiu</family> <!-- han (zh-tw) -->
-+ <family>AR PL New Sung</family> <!-- han (zh-cn,zh-tw) -->
-+ <family>MgOpen Modata</family>
-+ <family>VL Gothic</family>
-+ <family>HG-PGothicB-Sun</family>
-+ <family>HG-GothicB-Sun</family>
-+ <family>IPAMonaGothic</family>
-+ <family>IPAPGothic</family>
-+ <family>IPAGothic</family>
-+ <family>Sazanami Gothic</family>
- <family>WenQuanYi Zen Hei</family> <!-- han (zh-cn,zh-tw) -->
- <family>WenQuanYi Bitmap Song</family> <!-- han (zh-cn,zh-tw) -->
- <family>AR PL ShanHeiSun Uni</family> <!--han (ja,zh-cn,zh-tw) -->
-- <family>AR PL New Sung</family> <!-- han (zh-cn,zh-tw) -->
-- <family>MgOpen Modata</family>
-- <family>VL Gothic</family>
-- <family>IPAMonaGothic</family>
-- <family>IPAGothic</family>
-- <family>Sazanami Gothic</family>
-- <family>Kochi Gothic</family>
-+ <family>FZSongTi</family>
-+ <family>FZMingTi</family>
-+ <family>KacstQurn</family>
- <family>AR PL KaitiM GB</family>
- <family>AR PL KaitiM Big5</family>
-- <family>AR PL ShanHeiSun Uni</family>
- <family>AR PL SungtiL GB</family>
- <family>AR PL Mingti2L Big5</family>
- <family>MS ゴシック</family>
-@@ -138,17 +151,23 @@
- <family>Lohit Telugu</family>
- <family>Lohit Oriya</family>
- <family>LKLUG</family>
-+ <family>SunDotum</family>
- </prefer>
- </alias>
- <alias>
- <family>monospace</family>
- <prefer>
-+ <family>EUDC</family>
- <family>Miriam Mono</family> <!-- hebrew -->
- <family>VL Gothic</family>
-+ <family>HG-GothicB-Sun</family>
-+ <family>HG-MinchoL-Sun</family>
- <family>IPAMonaGothic</family>
- <family>IPAGothic</family>
- <family>Sazanami Gothic</family>
-- <family>Kochi Gothic</family>
-+ <family>FZSongTi</family>
-+ <family>FZMingTi</family>
-+ <family>KacstQurn</family>
- <family>AR PL KaitiM GB</family>
- <family>MS Gothic</family> <!-- han (ja) -->
- <family>UmePlus Gothic</family> <!-- han (ja) -->
-@@ -160,8 +179,6 @@
- <family>AR PL SungtiL GB</family>
- <family>AR PL Mingti2L Big5</family>
- <family>ZYSong18030</family> <!-- han (zh-cn,zh-tw) -->
-- <family>UnBatang</family>
-- <family>UnDotum</family>
- <family>Baekmuk Batang</family> <!-- hangul -->
- <family>Baekmuk Dotum</family>
- <family>Baekmuk Gulim</family>
-@@ -190,6 +207,9 @@
- <family>Lohit Telugu</family>
- <family>Lohit Oriya</family>
- <family>LKLUG</family>
-+ <family>SunDotumChe</family>
-+ <family>UnBatang</family>
-+ <family>UnDotum</family>
- </prefer>
- </alias>
- </fontconfig>
---- fontconfig-2.7.1/conf.d/Makefile.am 2009-03-18 17:02:20.000000000 -0400
-+++ fontconfig-2.7.1/conf.d/Makefile.am 2009-08-26 17:30:11.984089000 -0400
-@@ -40,6 +40,7 @@
- 40-nonlatin.conf \
- 45-latin.conf \
- 49-sansserif.conf \
-+ 49-sun-preuser.conf \
- 50-user.conf \
- 51-local.conf \
- 60-latin.conf \
-@@ -60,6 +61,7 @@
- 40-nonlatin.conf \
- 45-latin.conf \
- 49-sansserif.conf \
-+ 49-sun-preuser.conf \
- 50-user.conf \
- 51-local.conf \
- 60-latin.conf \
--- a/open-src/lib/fontconfig/fontconfig-2.7.1.patch Sun Oct 25 21:19:31 2009 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,214 +0,0 @@
---- fontconfig-2.7.1/src/fccfg.c 2009-06-24 13:52:13.000000000 -0400
-+++ fontconfig-2.7.1/src/fccfg.c 2009-08-26 13:20:46.489868000 -0400
-@@ -785,12 +785,12 @@
- switch (op) {
- case FcOpContains:
- case FcOpListing:
-- /* left contains right if right is a subset of left */
-- ret = FcCharSetIsSubset (right.u.c, left.u.c);
-+ /* right contains left if left is a subset of right */
-+ ret = FcCharSetIsSubset (left.u.c, right.u.c);
- break;
- case FcOpNotContains:
-- /* left contains right if right is a subset of left */
-- ret = !FcCharSetIsSubset (right.u.c, left.u.c);
-+ /* right contains left if left is a subset of right */
-+ ret = !FcCharSetIsSubset (left.u.c, right.u.c);
- break;
- case FcOpEqual:
- ret = FcCharSetEqual (left.u.c, right.u.c);
---- fontconfig-2.7.1/src/fcmatch.c 2009-07-22 19:00:51.000000000 -0400
-+++ fontconfig-2.7.1/src/fcmatch.c 2009-08-26 14:25:44.707291000 -0400
-@@ -168,6 +168,15 @@
- if (v2 == 0)
- return 0;
- v = v2 - v1;
-+
-+ /*
-+ * Hack to allow bitmap fonts to equal requested font if it is close
-+ */
-+ if ( v > -.5 && v <= .5 )
-+ {
-+ v = 0;
-+ }
-+
- if (v < 0)
- v = -v;
- return v;
-@@ -430,6 +439,47 @@
- return new;
- }
-
-+static void
-+FcChangeFormat ( FcPattern *p )
-+{
-+ int i;
-+ FcPatternElt *pe = FcPatternElts(p);
-+
-+ /*
-+ * Hack. If user want monochrome mode, then try to pick bitmaps over
-+ * outlines.
-+ */
-+ for ( i = 0; i < p->num; i++ )
-+ {
-+ if ( !strcmp(&pe[i].object, "antialias" ))
-+ {
-+ int aa = (int) &pe[i].values->value.u.b;
-+ int j;
-+ int done = 0;
-+ FcValue v;
-+
-+ v.type = FcTypeBool;
-+ v.u.b = aa;
-+
-+ for ( j = 0; j < p->num; j++ )
-+ {
-+ if ( !strcmp(&pe[j].object, "outline" ))
-+ {
-+ done = 1;
-+ break;
-+ }
-+ }
-+ if ( !done )
-+ {
-+ FcPatternObjectAddWithBinding (p, "outline", v,
-+ FcValueBindingStrong, 1);
-+ }
-+ break;
-+ }
-+ }
-+}
-+
-+
- static FcPattern *
- FcFontSetMatchInternal (FcConfig *config,
- FcFontSet **sets,
-@@ -444,6 +494,8 @@
- int i;
- int set;
-
-+ FcChangeFormat ( p );
-+
- for (i = 0; i < NUM_MATCH_VALUES; i++)
- bestscore[i] = 0;
- best = 0;
-@@ -669,9 +721,11 @@
- int f;
- int i;
- int nPatternLang;
-- FcBool *patternLangSat;
-+ int *patternLangSat;
- FcValue patternLang;
-
-+ FcChangeFormat ( p );
-+
- if (FcDebug () & FC_DBG_MATCH)
- {
- printf ("Sort ");
-@@ -700,7 +754,7 @@
- if (!nodes)
- goto bail0;
- nodeps = (FcSortNode **) (nodes + nnodes);
-- patternLangSat = (FcBool *) (nodeps + nnodes);
-+ patternLangSat = (int *) (nodeps + nnodes);
-
- new = nodes;
- nodep = nodeps;
-@@ -740,7 +794,13 @@
- FcSortCompare);
-
- for (i = 0; i < nPatternLang; i++)
-- patternLangSat[i] = FcFalse;
-+ patternLangSat[i] = 0;
-+
-+ /*
-+ * For Solaris, because of ja_JP, en_US, and such locales, exact matches
-+ * with font language support is sporatic. To resolve this, allow close
-+ * matches to succeed, but be able to accept exact matches above them.
-+ */
-
- for (f = 0; f < nnodes; f++)
- {
-@@ -749,18 +809,19 @@
- * If this node matches any language, go check
- * which ones and satisfy those entries
- */
-- if (nodeps[f]->score[MATCH_LANG_INDEX] < 200)
-+ if (nodeps[f]->score[MATCH_LANG_INDEX] < 100)
- {
- for (i = 0; i < nPatternLang; i++)
- {
- FcValue nodeLang;
-
-- if (!patternLangSat[i] &&
-+ if (patternLangSat[i] != 1 &&
- 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 (compare >= 0 && compare < 2 &&
-+ (patternLangSat[i] == 0 || compare + 1 < patternLangSat[i]))
- {
- if (FcDebug () & FC_DBG_MATCHV)
- {
-@@ -771,7 +832,7 @@
- FcPatternGetString (nodeps[f]->pattern, FC_STYLE, 0, &style) == FcResultMatch)
- printf ("Font %s:%s matches language %d\n", family, style, i);
- }
-- patternLangSat[i] = FcTrue;
-+ patternLangSat[i] = (int) compare + 1;
- satisfies = FcTrue;
- break;
- }
---- fontconfig-2.7.1/src/fcxml.c 2009-07-21 15:41:43.000000000 -0400
-+++ fontconfig-2.7.1/src/fcxml.c 2009-08-26 14:14:15.692622000 -0400
-@@ -2477,6 +2477,10 @@
- void *buf;
- #endif
-
-+ char *cur_locale = setlocale (LC_NUMERIC, NULL);
-+
-+ setlocale (LC_NUMERIC, "C");
-+
- filename = FcConfigFilename (name);
- if (!filename)
- goto bail0;
-@@ -2576,6 +2580,7 @@
- close (fd);
- fd = -1;
- bail0:
-+ setlocale (LC_NUMERIC, cur_locale);
- if (error && complain)
- {
- if (name)
---- fontconfig-2.7.1/src/fcfreetype.c 2009-07-25 16:38:20.000000000 -0400
-+++ fontconfig-2.7.1/src/fcfreetype.c 2009-08-26 14:16:17.358575000 -0400
-@@ -124,7 +124,7 @@
- { 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, "UCS-2BE" },
-+ { 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, "UCS-2BE" },
- { TT_PLATFORM_ISO, TT_ISO_ID_8859_1, "ISO-8859-1" },
---- fontconfig-2.7.1/Makefile.am 2009-06-24 14:43:43.000000000 -0400
-+++ fontconfig-2.7.1/Makefile.am 2009-08-26 14:29:39.076444000 -0400
-@@ -104,16 +104,6 @@
- echo " $(INSTALL_DATA) fonts.conf $(DESTDIR)$(configdir)/fonts.conf"; \
- $(INSTALL_DATA) fonts.conf $(DESTDIR)$(configdir)/fonts.conf; \
- fi; fi
-- @(if $(RUN_FC_CACHE_TEST); then \
-- echo " $(bindir)/fc-cache -s -f -v"; \
-- $(bindir)/fc-cache -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 \
--- a/open-src/lib/fontconfig/fontconfig-2.7.1.patch.hide Sun Oct 25 21:19:31 2009 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,931 +0,0 @@
---- fontconfig-2.7.1-0/src/fcint.h 2009-06-28 13:46:36.000000000 -0400
-+++ fontconfig-2.7.1-1/src/fcint.h 2009-08-26 16:50:43.691995000 -0400
-@@ -435,6 +435,21 @@
- FcChar32 *blanks;
- };
-
-+typedef struct _FcFontLang {
-+ FcChar8 *family; /* Name of font family */
-+ FcStrSet *hides; /* list of hidden languages */
-+ FcStrSet *only; /* list of only allowed languages */
-+ FcStrSet *poor; /* list of only allowed languages */
-+ struct _FcFontLang *next; /* Next font family */
-+} FcFontLang;
-+
-+typedef struct _FcHide {
-+ FcChar8 *alias; /* Name of alias Sans/Serif */
-+ FcFontLang *family; /* Hidden languages struct */
-+ FcFontLang *az[27]; /* Quick pointers */
-+ struct _FcHide *next; /* Next alias */
-+} FcHide;
-+
- struct _FcConfig {
- /*
- * File names loaded from the configuration -- saved here as the
-@@ -493,6 +508,14 @@
- */
- time_t rescanTime; /* last time information was scanned */
- int rescanInterval; /* interval between scans */
-+ /*
-+ * Languages can be selectively turned off for some fonts to allow
-+ * fonts to be used for specific languages only even if the font
-+ * supports the language. This allows best fonts to be used per
-+ * language where two fonts that both support the same language
-+ * cannot be placed in the preference list appropriately.
-+ */
-+ FcHide *hideFont;
-
- int ref; /* reference count */
-
-@@ -754,6 +777,9 @@
- FcPrivate void
- FcEditDestroy (FcEdit *e);
-
-+void
-+FcHideDestroy (FcHide *r );
-+
- /* fcinit.c */
-
- FcPrivate void
-@@ -785,6 +811,12 @@
- FcPrivate FcChar8 *
- FcNameUnparseEscaped (FcPattern *pat, FcBool escape);
-
-+FcBool
-+FcLangSetRemove (FcLangSet *ls, const FcChar8 *lang);
-+
-+FcBool
-+FcLangSetRemoveLangs (FcLangSet *ls, FcStrSet *langs);
-+
- /* fclist.c */
-
- FcPrivate FcBool
---- fontconfig-2.7.1-0/src/fccfg.c 2009-08-26 16:55:10.185878000 -0400
-+++ fontconfig-2.7.1-1/src/fccfg.c 2009-08-26 16:50:43.692022000 -0400
-@@ -92,6 +92,7 @@
-
- config->rescanTime = time(0);
- config->rescanInterval = 30;
-+ config->hideFont = NULL;
-
- config->expr_pool = NULL;
-
-@@ -261,6 +262,8 @@
- if (config->fonts[set])
- FcFontSetDestroy (config->fonts[set]);
-
-+ FcHideDestroy (config->hideFont);
-+
- page = config->expr_pool;
- while (page)
- {
---- fontconfig-2.7.1-0/src/fclang.c 2009-07-22 19:25:00.000000000 -0400
-+++ fontconfig-2.7.1-1/src/fclang.c 2009-08-26 16:50:43.692036000 -0400
-@@ -44,6 +44,7 @@
-
- #define FcLangSetBitSet(ls, id) ((ls)->map[(fcLangCharSetIndices[id])>>5] |= ((FcChar32) 1 << ((fcLangCharSetIndices[id]) & 0x1f)))
- #define FcLangSetBitGet(ls, id) (((ls)->map[(fcLangCharSetIndices[id])>>5] >> ((fcLangCharSetIndices[id]) & 0x1f)) & 1)
-+#define FcLangSetBitUnset(ls, id) ((ls)->map[(id)>>5] &= ~((FcChar32) 1 << ((id) & 0x1f)))
-
- FcLangSet *
- FcFreeTypeLangSet (const FcCharSet *charset,
-@@ -371,6 +372,34 @@
- return FcStrSetAdd (ls->extra, lang);
- }
-
-+FcBool
-+FcLangSetRemove (FcLangSet *ls, const FcChar8 *lang)
-+{
-+ int id;
-+
-+ id = FcLangSetIndex (lang);
-+ if (id >= 0)
-+ {
-+ FcLangSetBitUnset (ls, id);
-+ return FcTrue;
-+ }
-+ if (ls->extra)
-+ return FcStrSetDel (ls->extra, lang);
-+ return FcFalse;
-+}
-+
-+FcBool
-+FcLangSetRemoveLangs (FcLangSet *ls, FcStrSet *langs)
-+{
-+ int i;
-+
-+ for ( i = 0; i < langs->num; i++ )
-+ {
-+ FcLangSetRemove ( ls, langs->strs[i] );
-+ }
-+ return FcTrue;
-+}
-+
- FcLangResult
- FcLangSetHasLang (const FcLangSet *ls, const FcChar8 *lang)
- {
---- fontconfig-2.7.1-0/src/fcmatch.c 2009-08-26 16:55:10.203988000 -0400
-+++ fontconfig-2.7.1-1/src/fcmatch.c 2009-08-26 16:50:43.692051000 -0400
-@@ -393,6 +393,159 @@
- return FcTrue;
- }
-
-+static FcHide *
-+FcHideGetList (FcConfig *config, FcPattern *p)
-+{
-+ FcHide *r = NULL;
-+
-+ if (config->hideFont)
-+ {
-+ FcPatternElt *pe = FcPatternObjectFindElt (p, "family");
-+
-+ r = config->hideFont;
-+
-+ /*
-+ * Find the base family (alias) and see if it is in the
-+ * hidden list
-+ */
-+ if (pe)
-+ {
-+ FcValueList *vlist = pe->values;
-+
-+ while (vlist->next)
-+ vlist = vlist->next;
-+
-+ while (r)
-+ {
-+ if (!strcasecmp ((char *)r->alias, (char *)vlist->value.u.s))
-+ break;
-+ else
-+ r = r->next;
-+ }
-+ }
-+
-+ /*
-+ * At this point, we have the list of hidden/only/poor fonts
-+ * for the alias. We now need to check and see if the
-+ * font we are comparing is on the list.
-+ */
-+ }
-+
-+ return r;
-+}
-+
-+static FcPattern *
-+FcHideFont (FcHide *r,
-+ FcPatternElt *pe,
-+ FcPattern *fnt,
-+ FcLangSet **pls )
-+{
-+ FcPattern *new = fnt;
-+ FcFontLang *fl;
-+
-+ if (r && pe)
-+ {
-+ int pos = (int)(FcToLower(pe->values->value.u.s[0])) - 'a';
-+
-+ if (pos < 0 || pos > 26)
-+ pos = 26;
-+
-+ fl = r->az[pos];
-+
-+ /*
-+ * Check to see if the family is in the hide list for this alias
-+ */
-+ while (fl)
-+ {
-+ FcValueList *vlist = pe->values;
-+ int cmp = strcasecmp ((char *)fl->family,
-+ (char *)vlist->value.u.s);
-+
-+ if (!cmp)
-+ break;
-+ else if (cmp > 0)
-+ fl = NULL;
-+ else
-+ fl = fl->next;
-+ }
-+
-+ /*
-+ * If the family is to be language hidden, then copy the pattern
-+ * and modify the language support list
-+ */
-+
-+ if (fl)
-+ {
-+ FcPatternElt *ppe;
-+
-+ new = FcPatternDuplicate (fnt);
-+ if (new)
-+ {
-+ ppe = FcPatternObjectFindElt (new, "lang");
-+ if (ppe)
-+ {
-+ if (ppe->values->value.type == FcTypeLangSet)
-+ {
-+ int i;
-+ if (fl->hides)
-+ {
-+ FcLangSetRemoveLangs (
-+ (FcLangSet *)ppe->values->value.u.l,
-+ fl->hides );
-+ }
-+ if (fl->only)
-+ {
-+ FcLangSetDestroy ((FcLangSet *)ppe->values->value.u.l);
-+ ppe->values->value.u.l = FcLangSetCreate ();
-+ for (i = 0; i < fl->only->num; i++)
-+ FcLangSetAdd (
-+ (FcLangSet *)ppe->values->value.u.l,
-+ fl->only->strs[i] );
-+ }
-+ if (fl->poor)
-+ {
-+ *pls = FcLangSetCreate ();
-+ for (i = 0; i < fl->poor->num; i++)
-+ FcLangSetAdd ((FcLangSet *)*pls,
-+ fl->poor->strs[i] );
-+ }
-+ }
-+ else
-+ {
-+ /*
-+ * Don't know what to do with this yet
-+ */
-+ }
-+ }
-+ else
-+ {
-+ FcPatternDestroy (new);
-+ new = fnt;
-+ }
-+ }
-+ }
-+ }
-+
-+ return new;
-+}
-+
-+static double
-+FcHidePoorLangs ( FcValue *value, FcLangSet *ls )
-+{
-+ double v = 0;
-+ switch (value->type) {
-+ case FcTypeLangSet:
-+ v = FcLangSetCompare (ls, value->u.l);
-+ break;
-+ case FcTypeString:
-+ v = FcLangSetHasLang (ls, value->u.s);
-+ break;
-+ }
-+ return (( v == 2.0 ) ? 200.0: v * 1.5 * 100);
-+}
-+
-+
-+
- FcPattern *
- FcFontRenderPrepare (FcConfig *config,
- FcPattern *pat,
-@@ -493,6 +646,7 @@
- FcPattern *best;
- int i;
- int set;
-+ FcHide *r = NULL;
-
- FcChangeFormat ( p );
-
-@@ -504,6 +658,9 @@
- printf ("Match ");
- FcPatternPrint (p);
- }
-+
-+ r = FcHideGetList ( config, p );
-+
- for (set = 0; set < nsets; set++)
- {
- s = sets[set];
-@@ -511,13 +668,39 @@
- continue;
- for (f = 0; f < s->nfont; f++)
- {
-+ FcPatternElt *pe = FcPatternObjectFindElt (s->fonts[f], "family");
-+ FcLangSet *ls = NULL;
-+ FcPattern *hideFont = FcHideFont ( r, pe, s->fonts[f], &ls );
-+ int res = 1;
-+
- if (FcDebug () & FC_DBG_MATCHV)
- {
- printf ("Font %d ", f);
-- FcPatternPrint (s->fonts[f]);
-+ FcPatternPrint (hideFont);
-+ }
-+ if (!FcCompare (p, hideFont, score, result))
-+ res = 0;
-+
-+ if ((hideFont != NULL) && (hideFont != s->fonts[f]))
-+ {
-+ FcPatternDestroy ( hideFont );
-+ }
-+ if (ls)
-+ {
-+ FcValue patLang;
-+
-+ for (i = 0;
-+ FcPatternGet (p, FC_LANG, i, &patLang) == FcResultMatch;
-+ i++);
-+ if (FcPatternGet (p, FC_LANG, i-1, &patLang) == FcResultMatch)
-+ score[MATCH_LANG] = FcHidePoorLangs ( &patLang, ls );
-+ FcLangSetDestroy ( ls );
- }
-- if (!FcCompare (p, s->fonts[f], score, result))
-+
-+
-+ if (!res)
- return 0;
-+
- if (FcDebug () & FC_DBG_MATCHV)
- {
- printf ("Score");
-@@ -723,6 +906,7 @@
- int nPatternLang;
- int *patternLangSat;
- FcValue patternLang;
-+ FcHide *r = NULL;
-
- FcChangeFormat ( p );
-
-@@ -758,6 +942,9 @@
-
- new = nodes;
- nodep = nodeps;
-+
-+ r = FcHideGetList ( config, p );
-+
- for (set = 0; set < nsets; set++)
- {
- s = sets[set];
-@@ -765,13 +952,33 @@
- continue;
- for (f = 0; f < s->nfont; f++)
- {
-+ FcLangSet *ls = NULL;
-+ FcPatternElt *pe = FcPatternObjectFindElt (s->fonts[f], "family");
-+ FcPattern *hideFont = FcHideFont ( r, pe, s->fonts[f], &ls);
-+ int res = 1;
-+
- if (FcDebug () & FC_DBG_MATCHV)
- {
- printf ("Font %d ", f);
-- FcPatternPrint (s->fonts[f]);
-+ FcPatternPrint (hideFont);
- }
- new->pattern = s->fonts[f];
- if (!FcCompare (p, new->pattern, new->score, result))
-+ res = 0;
-+
-+ if ((hideFont != NULL) && (hideFont != s->fonts[f]))
-+ {
-+ FcPatternDestroy (hideFont);
-+ }
-+
-+ if ( ls )
-+ {
-+ if (FcPatternGet (p, FC_LANG, i, &patternLang) == FcResultMatch )
-+ new->score[MATCH_LANG] = FcHidePoorLangs (&patternLang, ls);
-+ FcLangSetDestroy (ls);
-+ }
-+
-+ if (!res)
- goto bail1;
- if (FcDebug () & FC_DBG_MATCHV)
- {
---- fontconfig-2.7.1-0/src/fcxml.c 2009-08-26 16:55:10.221766000 -0400
-+++ fontconfig-2.7.1-1/src/fcxml.c 2009-08-26 16:50:43.692064000 -0400
-@@ -274,6 +274,11 @@
- FcElementDefault,
- FcElementFamily,
-
-+ FcElementPoor,
-+ FcElementOnly,
-+ FcElementHide,
-+ FcElementLang,
-+
- FcElementSelectfont,
- FcElementAcceptfont,
- FcElementRejectfont,
-@@ -335,6 +340,11 @@
- { "default", FcElementDefault },
- { "family", FcElementFamily },
-
-+ { "poor", FcElementPoor },
-+ { "only", FcElementOnly },
-+ { "hide", FcElementHide },
-+ { "lang", FcElementLang },
-+
- { "selectfont", FcElementSelectfont },
- { "acceptfont", FcElementAcceptfont },
- { "rejectfont", FcElementRejectfont },
-@@ -408,6 +418,11 @@
- FcVStackAccept,
- FcVStackDefault,
-
-+ FcVStackPoor,
-+ FcVStackOnly,
-+ FcVStackHide,
-+ FcVStackLang,
-+
- FcVStackInteger,
- FcVStackDouble,
- FcVStackMatrix,
-@@ -842,6 +857,7 @@
- case FcVStackField:
- case FcVStackConstant:
- case FcVStackGlob:
-+ case FcVStackLang:
- FcStrFree (vstack->u.string);
- break;
- case FcVStackPattern:
-@@ -849,6 +865,9 @@
- break;
- case FcVStackInteger:
- case FcVStackDouble:
-+ case FcVStackPoor:
-+ case FcVStackOnly:
-+ case FcVStackHide:
- break;
- case FcVStackMatrix:
- FcMatrixFree (vstack->u.matrix);
-@@ -1369,6 +1388,408 @@
- }
-
- static void
-+FcParseLang (FcConfigParse *parse)
-+{
-+ FcChar8 *s;
-+ FcExpr *expr;
-+
-+ if (!parse->pstack)
-+ return;
-+ s = FcStrBufDone (&parse->pstack->str);
-+ if (!s)
-+ {
-+ FcConfigMessage (parse, FcSevereError, "out of memory");
-+ return;
-+ }
-+ expr = FcExprCreateString (parse->config, s);
-+ FcStrFree (s);
-+ if (expr)
-+ FcVStackPushExpr (parse, FcVStackLang, expr);
-+}
-+
-+static void
-+FcParseOnly (FcConfigParse *parse, FcVStackTag tag)
-+{
-+ FcExpr *family = 0;
-+ FcStrSet *lang = 0;
-+ FcVStack *vstack;
-+ FcFontLang *fl = NULL;
-+ FcExpr *expr;
-+
-+ while ((vstack = FcVStackPeek (parse)))
-+ {
-+ switch (vstack->tag) {
-+ case FcVStackFamily:
-+ if (family)
-+ FcExprDestroy (family);
-+ family = vstack->u.expr;
-+ vstack->tag = FcVStackNone;
-+ break;
-+ case FcVStackLang:
-+ if (!lang)
-+ lang = FcStrSetCreate ();
-+ FcStrSetAdd (lang, vstack->u.expr->u.sval);
-+ break;
-+ default:
-+ FcConfigMessage (parse, FcSevereWarning, "bad alias");
-+ break;
-+ }
-+ FcVStackPopAndDestroy (parse);
-+ }
-+ if (!family)
-+ {
-+ FcConfigMessage (parse, FcSevereError, "missing family in only");
-+ }
-+ if (lang)
-+ {
-+ fl = (FcFontLang *)malloc (sizeof (FcFontLang));
-+
-+ if (fl)
-+ {
-+ int len = strlen ((char *)family->u.sval);
-+ fl->family = (FcChar8 *)malloc (sizeof (char) * (len + 1));
-+ strncpy ( (char *)fl->family, (char *)family->u.sval, len );
-+ fl->family[len] = '\0';
-+ fl->hides = NULL;
-+ fl->only = lang;
-+ fl->poor = NULL;
-+ fl->next = NULL;
-+ }
-+ }
-+ if (fl)
-+ {
-+ expr = FcExprCreateNil (parse->config);
-+ if (expr)
-+ {
-+ expr->u.sval = (FcChar8 *)fl;
-+ FcVStackPushExpr (parse, FcVStackOnly, expr);
-+ }
-+ }
-+}
-+
-+static void
-+FcParsePoor (FcConfigParse *parse, FcVStackTag tag)
-+{
-+ FcExpr *family = 0;
-+ FcStrSet *lang = 0;
-+ FcVStack *vstack;
-+ FcFontLang *fl = NULL;
-+ FcExpr *expr;
-+
-+ while ((vstack = FcVStackPeek (parse)))
-+ {
-+ switch (vstack->tag) {
-+ case FcVStackFamily:
-+ if (family)
-+ FcExprDestroy (family);
-+ family = vstack->u.expr;
-+ vstack->tag = FcVStackNone;
-+ break;
-+ case FcVStackLang:
-+ if (!lang)
-+ lang = FcStrSetCreate ();
-+ FcStrSetAdd (lang, vstack->u.expr->u.sval);
-+ break;
-+ default:
-+ FcConfigMessage (parse, FcSevereWarning, "bad alias");
-+ break;
-+ }
-+ FcVStackPopAndDestroy (parse);
-+ }
-+ if (!family)
-+ {
-+ FcConfigMessage (parse, FcSevereError, "missing family in poor");
-+ }
-+ if (lang)
-+ {
-+ fl = (FcFontLang *)malloc (sizeof (FcFontLang));
-+
-+ if (fl)
-+ {
-+ int len = strlen ((char *)family->u.sval);
-+ fl->family = (FcChar8 *)malloc ( sizeof (char) * (len + 1));
-+ strncpy ((char *)fl->family, (char *)family->u.sval, len);
-+ fl->family[len] = '\0';
-+ fl->hides = NULL;
-+ fl->only = NULL;
-+ fl->poor = lang;
-+ fl->next = NULL;
-+ }
-+ }
-+ if (fl)
-+ {
-+ expr = FcExprCreateNil (parse->config);
-+ if (expr)
-+ {
-+ expr->u.sval = (FcChar8 *)fl;
-+ FcVStackPushExpr (parse, FcVStackPoor, expr);
-+ }
-+ }
-+}
-+
-+static void
-+FcParseHide (FcConfigParse *parse, FcVStackTag tag)
-+{
-+ FcExpr *family = 0;
-+ FcStrSet *lang = 0;
-+ FcVStack *vstack;
-+ FcFontLang *fl = NULL;
-+ FcExpr *expr;
-+
-+ while ((vstack = FcVStackPeek (parse)))
-+ {
-+ switch (vstack->tag) {
-+ case FcVStackFamily:
-+ if (family)
-+ FcExprDestroy (family);
-+ family = vstack->u.expr;
-+ vstack->tag = FcVStackNone;
-+ break;
-+ case FcVStackLang:
-+ if (!lang)
-+ lang = FcStrSetCreate ();
-+ FcStrSetAdd (lang, vstack->u.expr->u.sval);
-+ break;
-+ default:
-+ FcConfigMessage (parse, FcSevereWarning, "bad alias");
-+ break;
-+ }
-+ FcVStackPopAndDestroy (parse);
-+ }
-+ if (!family)
-+ {
-+ FcConfigMessage (parse, FcSevereError, "missing family in hide");
-+ }
-+ if (lang)
-+ {
-+ fl = (FcFontLang *)malloc (sizeof (FcFontLang));
-+
-+ if (fl)
-+ {
-+ int len = strlen ((char *)family->u.sval);
-+ fl->family = (FcChar8 *)malloc (sizeof (char) * (len + 1));
-+ strncpy ( (char *)fl->family, (char *)family->u.sval, len );
-+ fl->family[len] = '\0';
-+ fl->hides = lang;
-+ fl->only = NULL;
-+ fl->poor = NULL;
-+ fl->next = NULL;
-+ }
-+ }
-+ if (fl)
-+ {
-+ expr = FcExprCreateNil (parse->config);
-+ if (expr)
-+ {
-+ expr->u.sval = (FcChar8 *)fl;
-+ FcVStackPushExpr (parse, FcVStackHide, expr);
-+ }
-+ }
-+}
-+
-+static void
-+FcFontLangDestroy(FcFontLang *fl)
-+{
-+ FcFontLang *cur = fl;
-+
-+ while (fl)
-+ {
-+ cur = fl;
-+ fl = fl->next;
-+
-+ free (cur->family);
-+ if (cur->hides)
-+ FcStrSetDestroy (cur->hides);
-+ if (cur->only)
-+ FcStrSetDestroy (cur->only);
-+ if (cur->poor)
-+ FcStrSetDestroy (cur->poor);
-+ free (cur);
-+ }
-+}
-+
-+void
-+FcHideDestroy (FcHide *r)
-+{
-+ if (r)
-+ {
-+ if (r->alias)
-+ free (r->alias);
-+ FcFontLangDestroy (r->family);
-+ FcHideDestroy (r->next);
-+ free (r);
-+ }
-+}
-+
-+static int
-+FcHideCreate(FcConfigParse *parse, FcFontLang *fl, FcExpr *family)
-+{
-+ FcHide *new = parse->config->hideFont;
-+ int i;
-+
-+ /*
-+ * Check to see if user has already hidden something in this alias
-+ */
-+ while ( new != NULL )
-+ {
-+ if (!strcasecmp ( (char *)new->alias, (char *)family->u.sval))
-+ break;
-+ else
-+ new = new->next;
-+ }
-+
-+ /*
-+ * If no alias hides exist, then create an FcHide structure and
-+ * fill in the base values.
-+ */
-+ if (!new)
-+ {
-+ new = (FcHide *)malloc ( sizeof ( FcHide ));
-+
-+ if ( new )
-+ {
-+ int len = strlen ( (char *)family->u.sval );
-+ new->alias = (FcChar8 *)malloc ( sizeof ( char ) * ( len + 1 ));
-+ if ( new->alias )
-+ {
-+ strncpy ((char *)new->alias, (char *)family->u.sval, len);
-+ new->alias[len] = '\0';
-+ }
-+ else
-+ {
-+ free (new);
-+ return 0;
-+ }
-+ new->family = NULL;
-+ new->next = parse->config->hideFont;
-+ parse->config->hideFont = new;
-+ }
-+ else
-+ return 0;
-+ }
-+
-+ /*
-+ * Add FontLang structure in alphabetical order based on family
-+ * to the restrict list
-+ */
-+ while (fl)
-+ {
-+ FcFontLang *next = fl->next;
-+
-+ fl->next = NULL;
-+
-+ /*
-+ * If no hidden families exist, then just add this one
-+ */
-+ if (!new->family)
-+ new->family = fl;
-+ else
-+ {
-+ FcFontLang *ptr = new->family;
-+ FcFontLang *last = NULL;
-+
-+ /*
-+ * Check to see where to enter hidden family, or if it already
-+ * exists
-+ */
-+ while (ptr)
-+ {
-+ int cmp = strcasecmp ( (char *)fl->family, (char *)ptr->family);
-+ /*
-+ * Find out if new family is before current alphabetically
-+ */
-+ if (cmp < 0)
-+ {
-+ fl->next = ptr;
-+ if (!last)
-+ new->family = fl;
-+ else
-+ last->next = fl;
-+ break;
-+ }
-+ /*
-+ * If it already exists, then just add new lang(s)
-+ */
-+ else if (cmp == 0)
-+ {
-+ /*
-+ * Check to see if we have a family with only langs and
-+ * hidden langs. Return error. Otherwise, add langs to list
-+ */
-+ if ((fl->hides && ptr->only) ||
-+ (fl->only && ptr->hides))
-+ return 1;
-+ if (fl->hides)
-+ {
-+ if (!ptr->hides)
-+ ptr->hides = FcStrSetCreate ();
-+ for ( i = 0; i < fl->hides->num; i++ )
-+ {
-+ if (!FcStrSetMember ( ptr->hides, fl->hides->strs[i]))
-+ FcStrSetAdd ( ptr->hides, fl->hides->strs[i] );
-+ }
-+ }
-+ if (fl->only)
-+ {
-+ if (!ptr->only)
-+ ptr->only = FcStrSetCreate ();
-+ for (i = 0; i < fl->only->num; i++)
-+ {
-+ if (!FcStrSetMember (ptr->only, fl->only->strs[i]))
-+ FcStrSetAdd (ptr->only, fl->only->strs[i]);
-+ }
-+ }
-+ if (fl->poor)
-+ {
-+ if (!ptr->only)
-+ ptr->poor = FcStrSetCreate ();
-+ for (i = 0; i < fl->poor->num; i++)
-+ {
-+ if (!FcStrSetMember ( ptr->poor, fl->poor->strs[i]))
-+ FcStrSetAdd ( ptr->poor, fl->poor->strs[i] );
-+ }
-+ }
-+ FcFontLangDestroy (fl);
-+ break;
-+ }
-+ /*
-+ * If it is after, then continue moving down the list
-+ */
-+ else
-+ {
-+ last = ptr;
-+ ptr = ptr->next;
-+
-+ if (!ptr)
-+ {
-+ last->next = fl;
-+ }
-+ }
-+ }
-+ }
-+ fl = next;
-+ }
-+
-+ for (i = 0; i < 27; i++)
-+ new->az[i] = NULL;
-+
-+ fl = new->family;
-+ while (fl)
-+ {
-+ int pos = (int)(fl->family[0]) - (int)'A';
-+ if (pos < 0 || pos > 26)
-+ pos = 26;
-+ if (!new->az[pos])
-+ {
-+ new->az[pos] = fl;
-+ }
-+ fl = fl->next;
-+ }
-+
-+ return 0;
-+}
-+
-+static void
- FcParseAlias (FcConfigParse *parse)
- {
- FcExpr *family = 0, *accept = 0, *prefer = 0, *def = 0, *new = 0;
-@@ -1376,6 +1797,8 @@
- FcVStack *vstack;
- FcTest *test;
- FcValueBinding binding;
-+ FcFontLang *langs = NULL;
-+ FcFontLang *tmp;
-
- if (!FcConfigLexBinding (parse, FcConfigGetAttribute (parse, "binding"), &binding))
- return;
-@@ -1399,6 +1822,15 @@
- vstack->tag = FcVStackNone;
- }
- break;
-+ case FcVStackPoor:
-+ case FcVStackOnly:
-+ case FcVStackHide:
-+ tmp = (FcFontLang *)(vstack->u.expr->u.sval);
-+ FcExprDestroy (vstack->u.expr);
-+ tmp->next = langs;
-+ langs = tmp;
-+ vstack->tag = FcVStackNone;
-+ break;
- case FcVStackPrefer:
- if (prefer)
- FcExprDestroy (prefer);
-@@ -1472,6 +1904,11 @@
- else
- FcExprDestroy (def);
- }
-+ if (langs)
-+ {
-+ if (FcHideCreate(parse, langs, family))
-+ FcConfigMessage ( parse, FcSevereError, "Cannot include hide and only for same family" );
-+ }
- if (edit)
- {
- test = FcTestCreate (parse, FcMatchPattern,
-@@ -1499,6 +1936,7 @@
- break;
- case FcVStackString:
- case FcVStackFamily:
-+ case FcVStackLang:
- expr = FcExprCreateString (parse->config, vstack->u.string);
- break;
- case FcVStackField:
-@@ -2201,6 +2639,19 @@
- FcParseFamily (parse);
- break;
-
-+ case FcElementPoor:
-+ FcParsePoor (parse, FcVStackLang);
-+ break;
-+ case FcElementOnly:
-+ FcParseOnly (parse, FcVStackLang);
-+ break;
-+ case FcElementHide:
-+ FcParseHide (parse, FcVStackLang);
-+ break;
-+ case FcElementLang:
-+ FcParseLang (parse);
-+ break;
-+
- case FcElementTest:
- FcParseTest (parse);
- break;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/fontconfig/fontconfig-2.7.3-fonts.conf.patch Mon Oct 26 06:50:50 2009 -0700
@@ -0,0 +1,263 @@
+--- fontconfig-2.7.3/conf.d/30-metric-aliases.conf 2009-06-28 13:48:47.000000000 -0400
++++ fontconfig-2.7.3/conf.d/30-metric-aliases.conf 2009-08-26 17:14:48.048084000 -0400
+@@ -207,5 +207,13 @@
+ </accept>
+ </alias>
+
++ <!-- StarOffice formerly included Arial Narrow - Solaris includes Arial Narrow MT instead. -->
++ <alias>
++ <family>Arial Narrow</family>
++ <accept>
++ <family>Arial Narrow MT</family>
++ <family>Nimbus Sans L Condensed</family>
++ </accept>
++ </alias>
+
+ </fontconfig>
+--- fontconfig-2.7.3/conf.d/40-nonlatin.conf 2009-06-28 13:48:47.000000000 -0400
++++ fontconfig-2.7.3/conf.d/40-nonlatin.conf 2009-08-26 17:18:21.871571000 -0400
+@@ -18,6 +18,17 @@
+ <family>Zar</family>
+ <family>Titr</family>
+ <family>Jadid</family>
++ <family>HG-PMinchoL-Sun</family>
++ <family>HG-MinchoL-Sun</family>
++ <family>IPAPMincho</family>
++ <family>IPAMincho</family>
++ <family>Sazanami Mincho</family>
++ <family>Sazanami Gothic</family>
++ <family>FZSongTi</family>
++ <family>FZMingTi</family>
++ <family>KacstQurn</family>
++ <family>SunDotum</family>
++ <family>AR PL ShanHeiSun Uni</family>
+ <family>Kochi Mincho</family>
+ <family>AR PL SungtiL GB</family>
+ <family>AR PL Mingti2L Big5</family>
+@@ -43,6 +54,15 @@
+ <family>Roya</family>
+ <family>Koodak</family>
+ <family>Terafik</family>
++ <family>HG-PGothicB-Sun</family>
++ <family>HG-GothicB-Sun</family>
++ <family>IPAPGothic</family>
++ <family>IPAGothic</family>
++ <family>Sazanami Gothic</family>
++ <family>FZSongTi</family>
++ <family>FZMingTi</family>
++ <family>KacstQurn</family>
++ <family>SunDotum</family>
+ <family>Kochi Gothic</family>
+ <family>AR PL KaitiM GB</family>
+ <family>AR PL KaitiM Big5</family>
+@@ -61,6 +81,7 @@
+ Monospace faces
+ -->
+ <alias>
++ <family>SunDotumChe</family>
+ <family>NSimSun</family>
+ <family>ZYSong18030</family>
+ <family>FreeMono</family>
+--- fontconfig-2.7.3/conf.d/49-sun-preuser.conf 2009-07-10 13:08:51.000000000 -0400
++++ fontconfig-2.7.3/conf.d/49-sun-preuser.conf 2009-08-26 17:20:31.599437000 -0400
+@@ -0,0 +1,79 @@
++<?xml version="1.0"?>
++<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
++<fontconfig>
++ <!--
++ Hinting for CJK fonts doesn't yet work as well as for Latin fonts.
++ Some people may want to turn it off:
++ -->
++
++ <match target="font">
++ <test name="lang" compare="contains">
++ <string>zh</string>
++ <string>ko</string>
++ <string>ja</string>
++ </test>
++ <edit name="hinting" mode="assign">
++ <bool>false</bool>
++ </edit>
++ </match>
++
++ <!--
++ Chinese fonts are too light. We want to darken them up.
++ darken_value is an int between 1 and 9 where 1 is a little
++ darker and 9 is very dark. The default is 6.
++ -->
++
++ <match target="font">
++ <test name="lang" compare="contains">
++ <string>zh</string>
++ </test>
++ <edit name="darken" mode="assign">
++ <bool>true</bool>
++ </edit>
++ <edit name="darken_value" mode="assign">
++ <int>6</int>
++ </edit>
++ </match>
++
++ <!--
++ To avoid using embedded bitmaps in TrueType fonts
++ put the following rule in your personal ~/.fonts.conf file:
++
++ <match target="pattern">
++ <edit name="prefer_bitmap">
++ <bool>false</bool>
++ </edit>
++ </match>
++ -->
++ <match target="pattern">
++ <edit name="prefer_bitmap">
++ <bool>true</bool>
++ </edit>
++ </match>
++ <match target="font">
++ <!-- check to see if the font is roman -->
++ <test name="slant">
++ <const>roman</const>
++ </test>
++ <!-- check to see if the pattern requested non-roman -->
++ <test target="pattern" name="slant" compare="not_eq">
++ <const>roman</const>
++ </test>
++ <edit name="prefer_bitmap">
++ <bool>false</bool>
++ </edit>
++ </match>
++ <!-- Latin fonts should not be used for ASCII characters when using
++ Japanese monospace families -->
++ <match target="pattern">
++ <test name="family">
++ <string>monospace</string>
++ </test>
++ <test name="lang" compare="eq">
++ <string>ja-jp</string>
++ </test>
++ <edit name="disable_pango_script">
++ <bool>true</bool>
++ </edit>
++ </match>
++</fontconfig>
+--- fontconfig-2.7.3/conf.d/45-latin.conf 2009-07-10 13:08:51.000000000 -0400
++++ fontconfig-2.7.3/conf.d/45-latin.conf 2009-08-26 17:20:58.512527000 -0400
+@@ -10,6 +10,7 @@
+ Serif faces
+ -->
+ <alias>
++ <family>Lucida Bright</family>
+ <family>Bitstream Vera Serif</family>
+ <family>DejaVu Serif</family>
+ <family>Liberation Serif</family>
+@@ -25,6 +26,7 @@
+ Sans-serif faces
+ -->
+ <alias>
++ <family>Lucida Sans Typewriter</family>
+ <family>Bitstream Vera Sans</family>
+ <family>DejaVu Sans</family>
+ <family>Liberation Sans</family>
+@@ -41,6 +43,7 @@
+ Monospace faces
+ -->
+ <alias>
++ <family>Lucida Sans Typewriter</family>
+ <family>Bitstream Vera Sans Mono</family>
+ <family>DejaVu Sans Mono</family>
+ <family>Liberation Mono</family>
+--- fontconfig-2.7.3/conf.d/65-nonlatin.conf 2009-06-28 13:48:47.000000000 -0400
++++ fontconfig-2.7.3/conf.d/65-nonlatin.conf 2009-08-26 17:29:28.727064000 -0400
+@@ -4,6 +4,7 @@
+ <alias>
+ <family>serif</family>
+ <prefer>
++ <family>EUDC</family>
+ <family>Artsounk</family> <!-- armenian -->
+ <family>BPG UTF8 M</family> <!-- georgian -->
+ <family>Kinnari</family> <!-- thai -->
+@@ -34,10 +35,18 @@
+ <family>ZYSong18030</family> <!-- han (zh-cn,zh-tw) -->
+ <family>HanyiSong</family> <!-- han (zh-cn,zh-tw) -->
+ <family>MgOpen Canonica</family>
+- <family>Sazanami Mincho</family>
++ <family>HG-PMinchoL-Sun</family>
++ <family>HG-MinchoL-Sun</family>
+ <family>IPAMonaMincho</family>
++ <family>IPAPMincho</family>
+ <family>IPAMincho</family>
+- <family>Kochi Mincho</family>
++ <family>Sazanami Mincho</family>
++ <family>Sazanami Gothic</family>
++ <family>FZSongTi</family>
++ <family>FZMingTi</family>
++ <family>KacstQurn</family>
++ <family>SunDotum</family>
++ <family>AR PL ShanHeiSun Uni</family>
+ <family>AR PL SungtiL GB</family>
+ <family>AR PL Mingti2L Big5</family>
+ <family>AR PL Zenkai Uni</family>
+@@ -69,6 +78,7 @@
+ <alias>
+ <family>sans-serif</family>
+ <prefer>
++ <family>EUDC</family>
+ <family>Nachlieli</family> <!-- hebrew -->
+ <family>Lucida Sans Unicode</family>
+ <family>Yudit Unicode</family>
+@@ -105,10 +115,16 @@
+ <family>AR PL New Sung</family> <!-- han (zh-cn,zh-tw) -->
+ <family>MgOpen Modata</family>
+ <family>VL Gothic</family>
++ <family>HG-PGothicB-Sun</family>
++ <family>HG-GothicB-Sun</family>
+ <family>IPAMonaGothic</family>
++ <family>IPAPGothic</family>
+ <family>IPAGothic</family>
+ <family>Sazanami Gothic</family>
+- <family>Kochi Gothic</family>
++ <family>FZSongTi</family>
++ <family>FZMingTi</family>
++ <family>KacstQurn</family>
++ <family>SunDotum</family>
+ <family>AR PL KaitiM GB</family>
+ <family>AR PL KaitiM Big5</family>
+ <family>AR PL ShanHeiSun Uni</family>
+@@ -143,12 +159,18 @@
+ <alias>
+ <family>monospace</family>
+ <prefer>
++ <family>EUDC</family>
+ <family>Miriam Mono</family> <!-- hebrew -->
+ <family>VL Gothic</family>
++ <family>HG-GothicB-Sun</family>
++ <family>HG-MinchoL-Sun</family>
+ <family>IPAMonaGothic</family>
+ <family>IPAGothic</family>
+ <family>Sazanami Gothic</family>
+- <family>Kochi Gothic</family>
++ <family>FZSongTi</family>
++ <family>FZMingTi</family>
++ <family>KacstQurn</family>
++ <family>SunDotumChe</family>
+ <family>AR PL KaitiM GB</family>
+ <family>MS Gothic</family> <!-- han (ja) -->
+ <family>UmePlus Gothic</family> <!-- han (ja) -->
+--- fontconfig-2.7.3/conf.d/Makefile.am 2009-03-18 17:02:20.000000000 -0400
++++ fontconfig-2.7.3/conf.d/Makefile.am 2009-08-26 17:30:11.984089000 -0400
+@@ -40,6 +40,7 @@
+ 40-nonlatin.conf \
+ 45-latin.conf \
+ 49-sansserif.conf \
++ 49-sun-preuser.conf \
+ 50-user.conf \
+ 51-local.conf \
+ 60-latin.conf \
+@@ -60,6 +61,7 @@
+ 40-nonlatin.conf \
+ 45-latin.conf \
+ 49-sansserif.conf \
++ 49-sun-preuser.conf \
+ 50-user.conf \
+ 51-local.conf \
+ 60-latin.conf \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/fontconfig/local.conf Mon Oct 26 06:50:50 2009 -0700
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!--
+ Copyright 2009 Sun Microsystems, Inc. All rights reserved.
+ Use is subject to license terms.
+
+ 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, and/or sell copies of the Software, and to permit persons
+ to whom the Software is furnished to do so, provided that the above
+ copyright notice(s) and this permission notice appear in all copies of
+ the Software and that both the above copyright notice(s) and this
+ permission notice appear in supporting documentation.
+
+ 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
+ OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+ INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+ FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+ Except as contained in this notice, the name of a copyright holder
+ shall not be used in advertising or otherwise to promote the sale, use
+ or other dealings in this Software without prior written authorization
+ of the copyright holder.
+
+ @(#)local.conf 1.1 09/10/26
+-->
+ <match target="font" >
+ <edit mode="assign" name="hinting" >
+ <bool>true</bool>
+ </edit>
+ </match>
+ <match target="font" >
+ <edit mode="assign" name="hintstyle" >
+ <const>hintfull</const>
+ </edit>
+ </match>
+ <match target="font" >
+ <edit mode="assign" name="rgba" >
+ <const>rgb</const>
+ </edit>
+ </match>
+</fontconfig>
--- a/open-src/lib/freetype/Makefile Sun Oct 25 21:19:31 2009 -0700
+++ b/open-src/lib/freetype/Makefile Mon Oct 26 06:50:50 2009 -0700
@@ -30,7 +30,7 @@
# or other dealings in this Software without prior written authorization
# of the copyright holder.
#
-# ident "@(#)Makefile 1.80 09/10/13 SMI"
+# @(#)Makefile 1.81 09/10/26
#
PWD:sh=pwd
@@ -56,7 +56,6 @@
freetype-config.patch,-p1 \
ftoption.h.0.patch,-p1 \
ftconfig.h.1.patch,-p1 \
- freetype.h.2.patch,-p1 \
ttobjs.h.3.patch,-p1 \
ttobjs.c.4.patch,-p1 \
ttinterp.h.5.patch,-p1 \
--- a/open-src/lib/freetype/freetype.h.2.patch Sun Oct 25 21:19:31 2009 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
-# Use subject to license terms.
-#
-# 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, and/or sell copies of the Software, and to permit persons
-# to whom the Software is furnished to do so, provided that the above
-# copyright notice(s) and this permission notice appear in all copies of
-# the Software and that both the above copyright notice(s) and this
-# permission notice appear in supporting documentation.
-#
-# 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
-# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
-# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
-# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-# # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-#
-# Except as contained in this notice, the name of a copyright holder
-# shall not be used in advertising or otherwise to promote the sale, use
-# or other dealings in this Software without prior written authorization
-# of the copyright holder.
-
---- freetype-2.3.9/include/freetype/freetype.h 2009-03-03 16:29:45.000000000 -0500
-+++ freetype-2.3.9/include/freetype/freetype.h 2009-08-27 12:39:18.277820000 -0400
-@@ -2459,6 +2459,9 @@
- #define FT_LOAD_FORCE_AUTOHINT 0x20
- #define FT_LOAD_CROP_BITMAP 0x40
- #define FT_LOAD_PEDANTIC 0x80
-+#ifdef FT_CONFIG_ADD_FULL_HINTING
-+#define FT_LOAD_USE_FULL_HINTING 0x100
-+#endif
- #define FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH 0x200
- #define FT_LOAD_NO_RECURSE 0x400
- #define FT_LOAD_IGNORE_TRANSFORM 0x800
--- a/open-src/lib/freetype/ftoption.h.0.patch Sun Oct 25 21:19:31 2009 -0700
+++ b/open-src/lib/freetype/ftoption.h.0.patch Mon Oct 26 06:50:50 2009 -0700
@@ -27,15 +27,14 @@
# of the copyright holder.
--- freetype-2.3.9/include/freetype/config/ftoption.h 2008-11-05 04:25:14.000000000 -0500
-+++ freetype-2.3.9/include/freetype/config/ftoption.h 2009-08-27 12:31:27.367271000 -0400
-@@ -480,8 +480,8 @@
++++ freetype-2.3.9/include/freetype/config/ftoption.h 2009-10-25 19:39:56.527806000 -0400
+@@ -480,8 +480,7 @@
/* Do not #undef this macro here, since the build system might */
/* define it for certain configurations only. */
/* */
-/* #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
-
+#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-+#define FT_CONFIG_ADD_FULL_HINTING
/*************************************************************************/
/* */
--- a/open-src/lib/freetype/ttgload.c.7.patch Sun Oct 25 21:19:31 2009 -0700
+++ b/open-src/lib/freetype/ttgload.c.7.patch Mon Oct 26 06:50:50 2009 -0700
@@ -1,5 +1,5 @@
# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
-# Use subject to license terms.
+# Use is subject to license terms.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the
@@ -26,8 +26,8 @@
# or other dealings in this Software without prior written authorization
# of the copyright holder.
---- freetype-2.3.9/src/truetype/ttgload.c 2008-12-08 18:56:55.000000000 -0500
-+++ freetype-2.3.9/src/truetype/ttgload.c 2009-08-27 12:29:22.968411000 -0400
+--- freetype-2.3.9/src/truetype/ttgload.c 2008-12-08 15:56:55.000000000 -0800
++++ freetype-2.3.9/src/truetype/ttgload.c 2009-10-25 20:56:57.442263760 -0700
@@ -647,7 +647,7 @@
FT_ARRAY_COPY( zone->org, zone->cur, zone->n_points );
@@ -37,22 +37,15 @@
/* XXX: UNDOCUMENTED! Hinting instructions of a composite glyph */
/* completely refer to the (already) hinted subglyphs. */
-@@ -692,7 +692,14 @@
- debug = FT_BOOL( !( loader->load_flags & FT_LOAD_NO_SCALE ) &&
+@@ -693,6 +693,7 @@
((TT_Size)loader->size)->debug );
-+#ifdef FT_CONFIG_ADD_FULL_HINTING
-+ if ( loader->load_flags & FT_LOAD_USE_FULL_HINTING )
-+#endif
error = TT_Run_Context( loader->exec, debug );
-+#ifdef FT_CONFIG_ADD_FULL_HINTING
-+ else
-+ error = TT_Err_Ok;
-+#endif
++
if ( error && loader->exec->pedantic_hinting )
return error;
}
-@@ -1817,12 +1824,12 @@
+@@ -1817,12 +1818,12 @@
}
/* see whether the cvt program has disabled hinting */
@@ -68,7 +61,7 @@
exec->pedantic_hinting = FT_BOOL( load_flags & FT_LOAD_PEDANTIC );
loader->exec = exec;
-@@ -1974,10 +1981,10 @@
+@@ -1974,10 +1975,10 @@
if ( IS_HINTED( load_flags ) )
{
--- a/open-src/lib/libXft/Makefile Sun Oct 25 21:19:31 2009 -0700
+++ b/open-src/lib/libXft/Makefile Mon Oct 26 06:50:50 2009 -0700
@@ -30,7 +30,7 @@
# or other dealings in this Software without prior written authorization
# of the copyright holder.
#
-# @(#)Makefile 1.16 09/10/02
+# @(#)Makefile 1.17 09/10/26
#
# Package name used in tarballs
@@ -61,8 +61,6 @@
MODULE_MAKEFLAGS = bindir=$(XFT_prefix)/bin$(ARCHLIBSUBDIR)
-MODULE_CPPFLAGS = -DFT_CONFIG_ADD_FULL_HINTING
-
# Mapfile used to control which symbols are exported
XFT_MAPFILE=$(PWD)/mapfile.scope
MODULE_LD_OPTIONS += -M$(XFT_MAPFILE) -lX11
--- a/packages/SUNWfontconfig-root/prototype Sun Oct 25 21:19:31 2009 -0700
+++ b/packages/SUNWfontconfig-root/prototype Mon Oct 26 06:50:50 2009 -0700
@@ -28,7 +28,7 @@
#
###########################################################################
#
-# ident "@(#)prototype 1.11 09/08/30 SMI"
+# ident "@(#)prototype 1.12 09/10/26 SMI"
#
# Fontconfig config files
@@ -44,6 +44,7 @@
d none etc/fonts 0755 root sys
f none etc/fonts/fonts.conf 0444 root bin
f none etc/fonts/fonts.dtd 0444 root bin
+f none etc/fonts/local.conf 0444 root bin
!search ../lib/svc/method
d none lib 0755 root bin
@@ -83,6 +84,13 @@
f none etc/fonts/conf.avail/90-synthetic.conf 0444 root bin
d none etc/fonts/conf.d 0755 root sys
+s none etc/fonts/conf.d/10-autohint.conf=../conf.avail/10-autohint.conf
+s none etc/fonts/conf.d/10-no-sub-pixel.conf=../conf.avail/10-no-sub-pixel.conf
+s none etc/fonts/conf.d/10-sub-pixel-bgr.conf=../conf.avail/10-sub-pixel-bgr.conf
+s none etc/fonts/conf.d/10-sub-pixel-rgb.conf=../conf.avail/10-sub-pixel-rgb.conf
+s none etc/fonts/conf.d/10-sub-pixel-vbgr.conf=../conf.avail/10-sub-pixel-vbgr.conf
+s none etc/fonts/conf.d/10-sub-pixel-vrgb.conf=../conf.avail/10-sub-pixel-vrgb.conf
+s none etc/fonts/conf.d/10-unhinted.conf=../conf.avail/10-unhinted.conf
s none etc/fonts/conf.d/20-fix-globaladvance.conf=../conf.avail/20-fix-globaladvance.conf
s none etc/fonts/conf.d/20-unhint-small-vera.conf=../conf.avail/20-unhint-small-vera.conf
s none etc/fonts/conf.d/30-urw-aliases.conf=../conf.avail/30-urw-aliases.conf