aboutsummaryrefslogtreecommitdiff
path: root/fontconfig
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2012-02-22 09:28:23 +0100
committermarha <marha@users.sourceforge.net>2012-02-22 09:28:23 +0100
commitecc59cb52ffe4a84fddae997bba64adad35d5e93 (patch)
tree233c2cf0ea65dcf0b671f28e14b1fb083dac87e3 /fontconfig
parentd19dd4c9cf37b7b691552c4f4dd873471e31ca68 (diff)
parent6baac61e6ca9cd314e689dfe7f84771aad08c66e (diff)
downloadvcxsrv-ecc59cb52ffe4a84fddae997bba64adad35d5e93.tar.gz
vcxsrv-ecc59cb52ffe4a84fddae997bba64adad35d5e93.tar.bz2
vcxsrv-ecc59cb52ffe4a84fddae997bba64adad35d5e93.zip
Merge remote-tracking branch 'origin/released'
Diffstat (limited to 'fontconfig')
-rw-r--r--fontconfig/conf.d/30-metric-aliases.conf36
-rw-r--r--fontconfig/conf.d/40-nonlatin.conf143
-rw-r--r--fontconfig/conf.d/45-latin.conf96
-rw-r--r--fontconfig/conf.d/65-nonlatin.conf27
-rw-r--r--fontconfig/fc-cat/fc-cat.c2
-rw-r--r--fontconfig/fc-lang/Makefile.am3
-rw-r--r--fontconfig/fc-lang/ast.orth4
-rw-r--r--fontconfig/fc-lang/ks.orth10
-rw-r--r--fontconfig/fc-lang/nqo.orth31
-rw-r--r--fontconfig/fc-lang/ur.orth7
-rw-r--r--fontconfig/fc-list/fc-list.c20
-rw-r--r--fontconfig/fc-match/fc-match.c27
-rw-r--r--fontconfig/fontconfig/fontconfig.h4
-rw-r--r--fontconfig/src/fcarch.h5
-rw-r--r--fontconfig/src/fccache.c10
-rw-r--r--fontconfig/src/fcdir.c17
-rw-r--r--fontconfig/src/fcformat.c5
-rw-r--r--fontconfig/src/fcfreetype.c263
-rw-r--r--fontconfig/src/fcint.h2
-rw-r--r--fontconfig/src/fcmatch.c29
-rw-r--r--fontconfig/src/fcname.c8
-rw-r--r--fontconfig/src/fcstr.c8
-rw-r--r--fontconfig/src/makealias18
23 files changed, 425 insertions, 350 deletions
diff --git a/fontconfig/conf.d/30-metric-aliases.conf b/fontconfig/conf.d/30-metric-aliases.conf
index 702a495ea..4202ae92e 100644
--- a/fontconfig/conf.d/30-metric-aliases.conf
+++ b/fontconfig/conf.d/30-metric-aliases.conf
@@ -76,7 +76,19 @@
<!-- Microsoft -->
<alias binding="same">
<family>Liberation Sans</family>
+ <default>
+ <family>Arial</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
<family>Albany</family>
+ <default>
+ <family>Arial</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
<family>Albany AMT</family>
<default>
<family>Arial</family>
@@ -85,7 +97,19 @@
<alias binding="same">
<family>Liberation Serif</family>
+ <default>
+ <family>Times New Roman</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
<family>Thorndale</family>
+ <default>
+ <family>Times New Roman</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
<family>Thorndale AMT</family>
<default>
<family>Times New Roman</family>
@@ -94,7 +118,19 @@
<alias binding="same">
<family>Liberation Mono</family>
+ <default>
+ <family>Courier New</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
<family>Cumberland</family>
+ <default>
+ <family>Courier New</family>
+ </default>
+ </alias>
+
+ <alias binding="same">
<family>Cumberland AMT</family>
<default>
<family>Courier New</family>
diff --git a/fontconfig/conf.d/40-nonlatin.conf b/fontconfig/conf.d/40-nonlatin.conf
index a875db08c..1208a6ebf 100644
--- a/fontconfig/conf.d/40-nonlatin.conf
+++ b/fontconfig/conf.d/40-nonlatin.conf
@@ -11,23 +11,81 @@
-->
<alias>
<family>Nazli</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>Lotoos</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>Mitra</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>Ferdosi</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>Badr</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>Zar</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>Titr</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>Jadid</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>Kochi Mincho</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>AR PL SungtiL GB</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>AR PL Mingti2L Big5</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>MS 明朝</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
+ <family>NanumMyeongjo</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>UnBatang</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>Baekmuk Batang</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>MgOpen Canonica</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>Sazanami Mincho</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>AR PL ZenKai Uni</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>ZYSong18030</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>FreeSerif</family>
<default><family>serif</family></default>
</alias>
@@ -36,33 +94,104 @@
-->
<alias>
<family>Arshia</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>Elham</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>Farnaz</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>Nasim</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>Sina</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>Roya</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>Koodak</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>Terafik</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>Kochi Gothic</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>AR PL KaitiM GB</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>AR PL KaitiM Big5</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>MS ゴシック</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
+ <family>NanumGothic</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>UnDotum</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>Baekmuk Dotum</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>SimSun</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>MgOpen Modata</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>Sazanami Gothic</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>AR PL ShanHeiSun Uni</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>ZYSong18030</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>FreeSans</family>
<default><family>sans-serif</family></default>
</alias>
<!--
Monospace faces
-->
- <alias>
+ <alias>
<family>NSimSun</family>
+ <default><family>monospace</family></default>
+ </alias>
+ <alias>
<family>ZYSong18030</family>
+ <default><family>monospace</family></default>
+ </alias>
+ <alias>
+ <family>NanumGothicCoding</family>
+ <default><family>monospace</family></default>
+ </alias>
+ <alias>
<family>FreeMono</family>
<default><family>monospace</family></default>
</alias>
@@ -72,8 +201,17 @@
-->
<alias>
<family>Homa</family>
+ <default><family>fantasy</family></default>
+ </alias>
+ <alias>
<family>Kamran</family>
+ <default><family>fantasy</family></default>
+ </alias>
+ <alias>
<family>Fantezi</family>
+ <default><family>fantasy</family></default>
+ </alias>
+ <alias>
<family>Tabassom</family>
<default><family>fantasy</family></default>
</alias>
@@ -83,6 +221,9 @@
-->
<alias>
<family>IranNastaliq</family>
+ <default><family>cursive</family></default>
+ </alias>
+ <alias>
<family>Nafees Nastaleeq</family>
<default><family>cursive</family></default>
</alias>
diff --git a/fontconfig/conf.d/45-latin.conf b/fontconfig/conf.d/45-latin.conf
index 7e4126468..09fd52652 100644
--- a/fontconfig/conf.d/45-latin.conf
+++ b/fontconfig/conf.d/45-latin.conf
@@ -11,13 +11,37 @@
-->
<alias>
<family>Bitstream Vera Serif</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>DejaVu Serif</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>Liberation Serif</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>Times New Roman</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>Times</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>Nimbus Roman No9 L</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>Luxi Serif</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>Thorndale AMT</family>
+ <default><family>serif</family></default>
+ </alias>
+ <alias>
<family>Thorndale</family>
<default><family>serif</family></default>
</alias>
@@ -26,14 +50,41 @@
-->
<alias>
<family>Bitstream Vera Sans</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>DejaVu Sans</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>Liberation Sans</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>Arial</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>Helvetica</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>Verdana</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>Albany AMT</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>Albany</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>Nimbus Sans L</family>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias>
<family>Luxi Sans</family>
<default><family>sans-serif</family></default>
</alias>
@@ -42,15 +93,45 @@
-->
<alias>
<family>Bitstream Vera Sans Mono</family>
+ <default><family>monospace</family></default>
+ </alias>
+ <alias>
<family>DejaVu Sans Mono</family>
+ <default><family>monospace</family></default>
+ </alias>
+ <alias>
<family>Liberation Mono</family>
+ <default><family>monospace</family></default>
+ </alias>
+ <alias>
<family>Inconsolata</family>
+ <default><family>monospace</family></default>
+ </alias>
+ <alias>
<family>Courier New</family>
+ <default><family>monospace</family></default>
+ </alias>
+ <alias>
<family>Courier</family>
+ <default><family>monospace</family></default>
+ </alias>
+ <alias>
<family>Andale Mono</family>
+ <default><family>monospace</family></default>
+ </alias>
+ <alias>
<family>Luxi Mono</family>
+ <default><family>monospace</family></default>
+ </alias>
+ <alias>
<family>Cumberland AMT</family>
+ <default><family>monospace</family></default>
+ </alias>
+ <alias>
<family>Cumberland</family>
+ <default><family>monospace</family></default>
+ </alias>
+ <alias>
<family>Nimbus Mono L</family>
<default><family>monospace</family></default>
</alias>
@@ -59,8 +140,17 @@
-->
<alias>
<family>Impact</family>
+ <default><family>fantasy</family></default>
+ </alias>
+ <alias>
<family>Copperplate Gothic Std</family>
+ <default><family>fantasy</family></default>
+ </alias>
+ <alias>
<family>Cooper Std</family>
+ <default><family>fantasy</family></default>
+ </alias>
+ <alias>
<family>Bauhaus Std</family>
<default><family>fantasy</family></default>
</alias>
@@ -69,7 +159,13 @@
-->
<alias>
<family>ITC Zapf Chancery Std</family>
+ <default><family>cursive</family></default>
+ </alias>
+ <alias>
<family>Zapfino</family>
+ <default><family>cursive</family></default>
+ </alias>
+ <alias>
<family>Comic Sans MS</family>
<default><family>cursive</family></default>
</alias>
diff --git a/fontconfig/conf.d/65-nonlatin.conf b/fontconfig/conf.d/65-nonlatin.conf
index 53ac064b0..36aa3e518 100644
--- a/fontconfig/conf.d/65-nonlatin.conf
+++ b/fontconfig/conf.d/65-nonlatin.conf
@@ -23,8 +23,7 @@
<family>Sampige</family> <!-- kannada -->
<family>padmaa</family> <!-- gujarati -->
<family>Hapax Berbère</family> <!-- tifinagh -->
- <family>MS Gothic</family> <!-- han (ja) -->
- <family>UmePlus P Gothic</family> <!-- han (ja) -->
+ <family>MS Mincho</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) -->
@@ -43,8 +42,9 @@
<family>AR PL Zenkai Uni</family>
<family>MS 明朝</family>
<family>ZYSong18030</family>
- <family>UnBatang</family>
- <family>Baekmuk Batang</family>
+ <family>NanumMyeongjo</family> <!-- hangul (ko) -->
+ <family>UnBatang</family> <!-- hangul (ko) -->
+ <family>Baekmuk Batang</family> <!-- hangul (ko) -->
<family>KacstQura</family>
<family>Frank Ruehl CLM</family>
<family>Lohit Bengali</family>
@@ -117,9 +117,10 @@
<family>MS ゴシック</family>
<family>ZYSong18030</family> <!-- han (zh-cn,zh-tw) -->
<family>TSCu_Paranar</family> <!-- tamil -->
- <family>UnDotum</family>
- <family>Baekmuk Dotum</family>
- <family>Baekmuk Gulim</family>
+ <family>NanumGothic</family> <!-- hangul (ko) -->
+ <family>UnDotum</family> <!-- hangul (ko) -->
+ <family>Baekmuk Dotum</family> <!-- hangul (ko) -->
+ <family>Baekmuk Gulim</family> <!-- hangul (ko) -->
<family>KacstQura</family>
<family>Lohit Bengali</family>
<family>Lohit Gujarati</family>
@@ -160,11 +161,13 @@
<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>
+ <family>NanumGothicCoding</family> <!-- hangul (ko) -->
+ <family>NanumGothic</family> <!-- hangul (ko) -->
+ <family>UnDotum</family> <!-- hangul (ko) -->
+ <family>UnBatang</family> <!-- hangul (ko) -->
+ <family>Baekmuk Dotum</family> <!-- hangul (ko) -->
+ <family>Baekmuk Gulim</family> <!-- hangul (ko) -->
+ <family>Baekmuk Batang</family> <!-- hangul (ko) -->
<family>TlwgTypo</family> <!-- thai -->
<family>TlwgTypist</family> <!-- thai -->
<family>TlwgTypewriter</family> <!-- thai -->
diff --git a/fontconfig/fc-cat/fc-cat.c b/fontconfig/fc-cat/fc-cat.c
index 5ee947ec2..c3d68296b 100644
--- a/fontconfig/fc-cat/fc-cat.c
+++ b/fontconfig/fc-cat/fc-cat.c
@@ -227,7 +227,7 @@ cache_print_set (FcFontSet *set, FcStrSet *dirs, const FcChar8 *base_name, FcBoo
FcPattern *font = set->fonts[n];
FcChar8 *s;
- s = FcPatternFormat (font, "%{=fccat}\n");
+ s = FcPatternFormat (font, (const FcChar8 *) "%{=fccat}\n");
if (s)
{
printf ("%s", s);
diff --git a/fontconfig/fc-lang/Makefile.am b/fontconfig/fc-lang/Makefile.am
index 29cee5934..628796054 100644
--- a/fontconfig/fc-lang/Makefile.am
+++ b/fontconfig/fc-lang/Makefile.am
@@ -299,5 +299,6 @@ ORTH = \
ty.orth \
wal.orth \
za.orth \
- lah.orth
+ lah.orth \
+ nqo.orth
# ^-------------- Add new orth files here
diff --git a/fontconfig/fc-lang/ast.orth b/fontconfig/fc-lang/ast.orth
index 634f07910..55aaed512 100644
--- a/fontconfig/fc-lang/ast.orth
+++ b/fontconfig/fc-lang/ast.orth
@@ -41,3 +41,7 @@
00f3
00fa
00fc
+1e24
+1e25
+1e36
+1e37
diff --git a/fontconfig/fc-lang/ks.orth b/fontconfig/fc-lang/ks.orth
index e86ba0df0..6697e1521 100644
--- a/fontconfig/fc-lang/ks.orth
+++ b/fontconfig/fc-lang/ks.orth
@@ -23,8 +23,10 @@
#
# Kashmiri (ks)
#
-# Kashmiri is written in Arabic in both India and Pakistan. The problem is,
-# Unicode 5.1 does not contain all the letters required in the orthography,
-# including Wavy Hamza Below and the Alef Maksura With Ring Below. We'll
-# just include Urdu for now.
include ur.orth
+0620
+0657
+065f
+0672
+0673
+06c4
diff --git a/fontconfig/fc-lang/nqo.orth b/fontconfig/fc-lang/nqo.orth
new file mode 100644
index 000000000..285e1d79c
--- /dev/null
+++ b/fontconfig/fc-lang/nqo.orth
@@ -0,0 +1,31 @@
+#
+# 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-07ff
+
diff --git a/fontconfig/fc-lang/ur.orth b/fontconfig/fc-lang/ur.orth
index 57f724d10..5b39a50cb 100644
--- a/fontconfig/fc-lang/ur.orth
+++ b/fontconfig/fc-lang/ur.orth
@@ -34,9 +34,11 @@
#
# General forms:
0621-0624
-0626-063a
+0626-0628
+063a
0641-0642
-0644-0648
+0644-0646
+0648
0679
067e
0686
@@ -47,6 +49,7 @@
06af
06ba
06be
+06c3
06cc
06d2
# Presentations forms:
diff --git a/fontconfig/fc-list/fc-list.c b/fontconfig/fc-list/fc-list.c
index ad383328e..0149b0c53 100644
--- a/fontconfig/fc-list/fc-list.c
+++ b/fontconfig/fc-list/fc-list.c
@@ -94,16 +94,16 @@ usage (char *program, int error)
int
main (int argc, char **argv)
{
- int verbose = 0;
- int quiet = 0;
- FcChar8 *format = NULL;
- int nfont = 0;
- int i;
- FcObjectSet *os = 0;
- FcFontSet *fs;
- FcPattern *pat;
+ 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;
+ int c;
#if HAVE_GETOPT_LONG
while ((c = getopt_long (argc, argv, "vf:qVh", longopts, NULL)) != -1)
@@ -158,7 +158,7 @@ main (int argc, char **argv)
if (!verbose && !format && !os)
os = FcObjectSetBuild (FC_FAMILY, FC_STYLE, FC_FILE, (char *) 0);
if (!format)
- format = "%{=fclist}\n";
+ format = (const FcChar8 *) "%{=fclist}\n";
fs = FcFontList (0, pat, os);
if (os)
FcObjectSetDestroy (os);
diff --git a/fontconfig/fc-match/fc-match.c b/fontconfig/fc-match/fc-match.c
index e64b4bcdd..4642c8dee 100644
--- a/fontconfig/fc-match/fc-match.c
+++ b/fontconfig/fc-match/fc-match.c
@@ -98,16 +98,16 @@ usage (char *program, int error)
int
main (int argc, char **argv)
{
- int verbose = 0;
- int sort = 0, all = 0;
- FcChar8 *format = NULL;
- int i;
- FcObjectSet *os = 0;
- FcFontSet *fs;
- FcPattern *pat;
- FcResult result;
+ 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;
+ int c;
#if HAVE_GETOPT_LONG
while ((c = getopt_long (argc, argv, "asvf:Vh", longopts, NULL)) != -1)
@@ -175,6 +175,11 @@ main (int argc, char **argv)
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;
@@ -198,9 +203,9 @@ main (int argc, char **argv)
if (!format)
{
if (os)
- format = "%{=unparse}\n";
+ format = (const FcChar8 *) "%{=unparse}\n";
else
- format = "%{=fcmatch}\n";
+ format = (const FcChar8 *) "%{=fcmatch}\n";
}
if (fs)
diff --git a/fontconfig/fontconfig/fontconfig.h b/fontconfig/fontconfig/fontconfig.h
index db26b97f8..23ea222ca 100644
--- a/fontconfig/fontconfig/fontconfig.h
+++ b/fontconfig/fontconfig/fontconfig.h
@@ -739,10 +739,10 @@ FcPublic FcBool
FcNameUnregisterConstants (const FcConstant *consts, int nconsts);
FcPublic const FcConstant *
-FcNameGetConstant (FcChar8 *string);
+FcNameGetConstant (const FcChar8 *string);
FcPublic FcBool
-FcNameConstant (FcChar8 *string, int *result);
+FcNameConstant (const FcChar8 *string, int *result);
FcPublic FcPattern *
FcNameParse (const FcChar8 *name);
diff --git a/fontconfig/src/fcarch.h b/fontconfig/src/fcarch.h
index 0c8cd053f..9cabf0450 100644
--- a/fontconfig/src/fcarch.h
+++ b/fontconfig/src/fcarch.h
@@ -62,9 +62,8 @@
# define FC_ARCH_SIZE_ALIGN "64"
#endif
-#ifdef ARCHITECTURE
-# define ARCHITECTURE FC_ARCHITECTURE
-#else
+/* config.h might override this */
+#ifndef FC_ARCHITECTURE
# define FC_ARCHITECTURE FC_ARCH_ENDIAN FC_ARCH_SIZE_ALIGN
#endif
diff --git a/fontconfig/src/fccache.c b/fontconfig/src/fccache.c
index 59c7990d5..054371445 100644
--- a/fontconfig/src/fccache.c
+++ b/fontconfig/src/fccache.c
@@ -84,7 +84,7 @@ typedef __int64 INT64;
*/
int
-FcStat (const char *file, struct stat *statb)
+FcStat (const FcChar8 *file, struct stat *statb)
{
WIN32_FILE_ATTRIBUTE_DATA wfad;
char full_path_name[MAX_PATH];
@@ -133,7 +133,7 @@ FcStat (const char *file, struct stat *statb)
#else
int
-FcStat (const char *file, struct stat *statb)
+FcStat (const FcChar8 *file, struct stat *statb)
{
return stat ((char *) file, statb);
}
@@ -724,8 +724,6 @@ FcDirCacheBuild (FcFontSet *set, const FcChar8 *dir, struct stat *dir_stat, FcSt
FcSerialize *serialize = FcSerializeCreate ();
FcCache *cache;
int i;
- intptr_t cache_offset;
- intptr_t dirs_offset;
FcChar8 *dir_serialize;
intptr_t *dirs_serialize;
FcFontSet *set_serialize;
@@ -735,7 +733,7 @@ FcDirCacheBuild (FcFontSet *set, const FcChar8 *dir, struct stat *dir_stat, FcSt
/*
* Space for cache structure
*/
- cache_offset = FcSerializeReserve (serialize, sizeof (FcCache));
+ FcSerializeReserve (serialize, sizeof (FcCache));
/*
* Directory name
*/
@@ -744,7 +742,7 @@ FcDirCacheBuild (FcFontSet *set, const FcChar8 *dir, struct stat *dir_stat, FcSt
/*
* Subdirs
*/
- dirs_offset = FcSerializeAlloc (serialize, dirs, dirs->num * sizeof (FcChar8 *));
+ FcSerializeAlloc (serialize, dirs, dirs->num * sizeof (FcChar8 *));
for (i = 0; i < dirs->num; i++)
if (!FcStrSerializeAlloc (serialize, dirs->strs[i]))
goto bail1;
diff --git a/fontconfig/src/fcdir.c b/fontconfig/src/fcdir.c
index 8a2b97625..d8b094fbc 100644
--- a/fontconfig/src/fcdir.c
+++ b/fontconfig/src/fcdir.c
@@ -235,7 +235,6 @@ FcCache *
FcDirCacheScan (const FcChar8 *dir, FcConfig *config)
{
FcStrSet *dirs;
- FcBool ret = FcTrue;
FcFontSet *set;
FcCache *cache = NULL;
struct stat dir_stat;
@@ -244,44 +243,28 @@ FcDirCacheScan (const FcChar8 *dir, FcConfig *config)
printf ("cache scan dir %s\n", dir);
if (FcStat (dir, &dir_stat) < 0)
- {
- if (errno != ENOENT)
- ret = FcFalse;
goto bail;
- }
set = FcFontSetCreate();
if (!set)
- {
- ret = FcFalse;
goto bail;
- }
dirs = FcStrSetCreate ();
if (!dirs)
- {
- ret = FcFalse;
goto bail1;
- }
/*
* Scan the dir
*/
if (!FcDirScanConfig (set, dirs, NULL, dir, FcTrue, config))
- {
- ret = FcFalse;
goto bail2;
- }
/*
* Build the cache object
*/
cache = FcDirCacheBuild (set, dir, &dir_stat, dirs);
if (!cache)
- {
- ret = FcFalse;
goto bail2;
- }
/*
* Write out the cache file, ignoring any troubles
diff --git a/fontconfig/src/fcformat.c b/fontconfig/src/fcformat.c
index d8518f458..0e63d5d7c 100644
--- a/fontconfig/src/fcformat.c
+++ b/fontconfig/src/fcformat.c
@@ -353,13 +353,12 @@ skip_subexpr (FcFormatContext *c);
static FcBool
skip_percent (FcFormatContext *c)
{
- int width;
-
if (!expect_char (c, '%'))
return FcFalse;
/* skip an optional width specifier */
- width = strtol ((const char *) c->format, (char **) &c->format, 10);
+ if (strtol ((const char *) c->format, (char **) &c->format, 10))
+ /* don't care */;
if (!expect_char (c, '{'))
return FcFalse;
diff --git a/fontconfig/src/fcfreetype.c b/fontconfig/src/fcfreetype.c
index d37af2d0e..e322e8ca4 100644
--- a/fontconfig/src/fcfreetype.c
+++ b/fontconfig/src/fcfreetype.c
@@ -696,34 +696,6 @@ FcSfntNameTranscode (FT_SfntName *sname)
*u8 = '\0';
goto done;
}
- if (!strcmp (fromcode, FC_ENCODING_MAC_ROMAN))
- {
- FcChar8 *u8;
- const FcCharMap *map = FcFreeTypeGetPrivateMap (ft_encoding_apple_roman);
- FcChar8 *src = (FcChar8 *) sname->string;
- int src_len = sname->string_len;
-
- /*
- * Convert AppleRoman to Utf8
- */
- if (!map)
- return 0;
-
- utf8 = malloc (sname->string_len * 3 + 1);
- if (!utf8)
- return 0;
-
- u8 = utf8;
- while (src_len > 0)
- {
- FcChar32 ucs4 = FcFreeTypePrivateToUcs4 (*src++, map);
- int olen = FcUcs4ToUtf8 (ucs4, u8);
- src_len--;
- u8 += olen;
- }
- *u8 = '\0';
- goto done;
- }
#if USE_ICONV
cd = iconv_open ("UTF-8", fromcode);
if (cd && cd != (iconv_t) (-1))
@@ -1794,237 +1766,6 @@ typedef struct _FcFontDecode {
FcChar32 max;
} FcFontDecode;
-static const FcCharEnt AppleRomanEnt[] = {
- { 0x0020, 0x20 }, /* SPACE */
- { 0x0021, 0x21 }, /* EXCLAMATION MARK */
- { 0x0022, 0x22 }, /* QUOTATION MARK */
- { 0x0023, 0x23 }, /* NUMBER SIGN */
- { 0x0024, 0x24 }, /* DOLLAR SIGN */
- { 0x0025, 0x25 }, /* PERCENT SIGN */
- { 0x0026, 0x26 }, /* AMPERSAND */
- { 0x0027, 0x27 }, /* APOSTROPHE */
- { 0x0028, 0x28 }, /* LEFT PARENTHESIS */
- { 0x0029, 0x29 }, /* RIGHT PARENTHESIS */
- { 0x002A, 0x2A }, /* ASTERISK */
- { 0x002B, 0x2B }, /* PLUS SIGN */
- { 0x002C, 0x2C }, /* COMMA */
- { 0x002D, 0x2D }, /* HYPHEN-MINUS */
- { 0x002E, 0x2E }, /* FULL STOP */
- { 0x002F, 0x2F }, /* SOLIDUS */
- { 0x0030, 0x30 }, /* DIGIT ZERO */
- { 0x0031, 0x31 }, /* DIGIT ONE */
- { 0x0032, 0x32 }, /* DIGIT TWO */
- { 0x0033, 0x33 }, /* DIGIT THREE */
- { 0x0034, 0x34 }, /* DIGIT FOUR */
- { 0x0035, 0x35 }, /* DIGIT FIVE */
- { 0x0036, 0x36 }, /* DIGIT SIX */
- { 0x0037, 0x37 }, /* DIGIT SEVEN */
- { 0x0038, 0x38 }, /* DIGIT EIGHT */
- { 0x0039, 0x39 }, /* DIGIT NINE */
- { 0x003A, 0x3A }, /* COLON */
- { 0x003B, 0x3B }, /* SEMICOLON */
- { 0x003C, 0x3C }, /* LESS-THAN SIGN */
- { 0x003D, 0x3D }, /* EQUALS SIGN */
- { 0x003E, 0x3E }, /* GREATER-THAN SIGN */
- { 0x003F, 0x3F }, /* QUESTION MARK */
- { 0x0040, 0x40 }, /* COMMERCIAL AT */
- { 0x0041, 0x41 }, /* LATIN CAPITAL LETTER A */
- { 0x0042, 0x42 }, /* LATIN CAPITAL LETTER B */
- { 0x0043, 0x43 }, /* LATIN CAPITAL LETTER C */
- { 0x0044, 0x44 }, /* LATIN CAPITAL LETTER D */
- { 0x0045, 0x45 }, /* LATIN CAPITAL LETTER E */
- { 0x0046, 0x46 }, /* LATIN CAPITAL LETTER F */
- { 0x0047, 0x47 }, /* LATIN CAPITAL LETTER G */
- { 0x0048, 0x48 }, /* LATIN CAPITAL LETTER H */
- { 0x0049, 0x49 }, /* LATIN CAPITAL LETTER I */
- { 0x004A, 0x4A }, /* LATIN CAPITAL LETTER J */
- { 0x004B, 0x4B }, /* LATIN CAPITAL LETTER K */
- { 0x004C, 0x4C }, /* LATIN CAPITAL LETTER L */
- { 0x004D, 0x4D }, /* LATIN CAPITAL LETTER M */
- { 0x004E, 0x4E }, /* LATIN CAPITAL LETTER N */
- { 0x004F, 0x4F }, /* LATIN CAPITAL LETTER O */
- { 0x0050, 0x50 }, /* LATIN CAPITAL LETTER P */
- { 0x0051, 0x51 }, /* LATIN CAPITAL LETTER Q */
- { 0x0052, 0x52 }, /* LATIN CAPITAL LETTER R */
- { 0x0053, 0x53 }, /* LATIN CAPITAL LETTER S */
- { 0x0054, 0x54 }, /* LATIN CAPITAL LETTER T */
- { 0x0055, 0x55 }, /* LATIN CAPITAL LETTER U */
- { 0x0056, 0x56 }, /* LATIN CAPITAL LETTER V */
- { 0x0057, 0x57 }, /* LATIN CAPITAL LETTER W */
- { 0x0058, 0x58 }, /* LATIN CAPITAL LETTER X */
- { 0x0059, 0x59 }, /* LATIN CAPITAL LETTER Y */
- { 0x005A, 0x5A }, /* LATIN CAPITAL LETTER Z */
- { 0x005B, 0x5B }, /* LEFT SQUARE BRACKET */
- { 0x005C, 0x5C }, /* REVERSE SOLIDUS */
- { 0x005D, 0x5D }, /* RIGHT SQUARE BRACKET */
- { 0x005E, 0x5E }, /* CIRCUMFLEX ACCENT */
- { 0x005F, 0x5F }, /* LOW LINE */
- { 0x0060, 0x60 }, /* GRAVE ACCENT */
- { 0x0061, 0x61 }, /* LATIN SMALL LETTER A */
- { 0x0062, 0x62 }, /* LATIN SMALL LETTER B */
- { 0x0063, 0x63 }, /* LATIN SMALL LETTER C */
- { 0x0064, 0x64 }, /* LATIN SMALL LETTER D */
- { 0x0065, 0x65 }, /* LATIN SMALL LETTER E */
- { 0x0066, 0x66 }, /* LATIN SMALL LETTER F */
- { 0x0067, 0x67 }, /* LATIN SMALL LETTER G */
- { 0x0068, 0x68 }, /* LATIN SMALL LETTER H */
- { 0x0069, 0x69 }, /* LATIN SMALL LETTER I */
- { 0x006A, 0x6A }, /* LATIN SMALL LETTER J */
- { 0x006B, 0x6B }, /* LATIN SMALL LETTER K */
- { 0x006C, 0x6C }, /* LATIN SMALL LETTER L */
- { 0x006D, 0x6D }, /* LATIN SMALL LETTER M */
- { 0x006E, 0x6E }, /* LATIN SMALL LETTER N */
- { 0x006F, 0x6F }, /* LATIN SMALL LETTER O */
- { 0x0070, 0x70 }, /* LATIN SMALL LETTER P */
- { 0x0071, 0x71 }, /* LATIN SMALL LETTER Q */
- { 0x0072, 0x72 }, /* LATIN SMALL LETTER R */
- { 0x0073, 0x73 }, /* LATIN SMALL LETTER S */
- { 0x0074, 0x74 }, /* LATIN SMALL LETTER T */
- { 0x0075, 0x75 }, /* LATIN SMALL LETTER U */
- { 0x0076, 0x76 }, /* LATIN SMALL LETTER V */
- { 0x0077, 0x77 }, /* LATIN SMALL LETTER W */
- { 0x0078, 0x78 }, /* LATIN SMALL LETTER X */
- { 0x0079, 0x79 }, /* LATIN SMALL LETTER Y */
- { 0x007A, 0x7A }, /* LATIN SMALL LETTER Z */
- { 0x007B, 0x7B }, /* LEFT CURLY BRACKET */
- { 0x007C, 0x7C }, /* VERTICAL LINE */
- { 0x007D, 0x7D }, /* RIGHT CURLY BRACKET */
- { 0x007E, 0x7E }, /* TILDE */
- { 0x00A0, 0xCA }, /* NO-BREAK SPACE */
- { 0x00A1, 0xC1 }, /* INVERTED EXCLAMATION MARK */
- { 0x00A2, 0xA2 }, /* CENT SIGN */
- { 0x00A3, 0xA3 }, /* POUND SIGN */
- { 0x00A5, 0xB4 }, /* YEN SIGN */
- { 0x00A7, 0xA4 }, /* SECTION SIGN */
- { 0x00A8, 0xAC }, /* DIAERESIS */
- { 0x00A9, 0xA9 }, /* COPYRIGHT SIGN */
- { 0x00AA, 0xBB }, /* FEMININE ORDINAL INDICATOR */
- { 0x00AB, 0xC7 }, /* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */
- { 0x00AC, 0xC2 }, /* NOT SIGN */
- { 0x00AE, 0xA8 }, /* REGISTERED SIGN */
- { 0x00AF, 0xF8 }, /* MACRON */
- { 0x00B0, 0xA1 }, /* DEGREE SIGN */
- { 0x00B1, 0xB1 }, /* PLUS-MINUS SIGN */
- { 0x00B4, 0xAB }, /* ACUTE ACCENT */
- { 0x00B5, 0xB5 }, /* MICRO SIGN */
- { 0x00B6, 0xA6 }, /* PILCROW SIGN */
- { 0x00B7, 0xE1 }, /* MIDDLE DOT */
- { 0x00B8, 0xFC }, /* CEDILLA */
- { 0x00BA, 0xBC }, /* MASCULINE ORDINAL INDICATOR */
- { 0x00BB, 0xC8 }, /* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */
- { 0x00BF, 0xC0 }, /* INVERTED QUESTION MARK */
- { 0x00C0, 0xCB }, /* LATIN CAPITAL LETTER A WITH GRAVE */
- { 0x00C1, 0xE7 }, /* LATIN CAPITAL LETTER A WITH ACUTE */
- { 0x00C2, 0xE5 }, /* LATIN CAPITAL LETTER A WITH CIRCUMFLEX */
- { 0x00C3, 0xCC }, /* LATIN CAPITAL LETTER A WITH TILDE */
- { 0x00C4, 0x80 }, /* LATIN CAPITAL LETTER A WITH DIAERESIS */
- { 0x00C5, 0x81 }, /* LATIN CAPITAL LETTER A WITH RING ABOVE */
- { 0x00C6, 0xAE }, /* LATIN CAPITAL LETTER AE */
- { 0x00C7, 0x82 }, /* LATIN CAPITAL LETTER C WITH CEDILLA */
- { 0x00C8, 0xE9 }, /* LATIN CAPITAL LETTER E WITH GRAVE */
- { 0x00C9, 0x83 }, /* LATIN CAPITAL LETTER E WITH ACUTE */
- { 0x00CA, 0xE6 }, /* LATIN CAPITAL LETTER E WITH CIRCUMFLEX */
- { 0x00CB, 0xE8 }, /* LATIN CAPITAL LETTER E WITH DIAERESIS */
- { 0x00CC, 0xED }, /* LATIN CAPITAL LETTER I WITH GRAVE */
- { 0x00CD, 0xEA }, /* LATIN CAPITAL LETTER I WITH ACUTE */
- { 0x00CE, 0xEB }, /* LATIN CAPITAL LETTER I WITH CIRCUMFLEX */
- { 0x00CF, 0xEC }, /* LATIN CAPITAL LETTER I WITH DIAERESIS */
- { 0x00D1, 0x84 }, /* LATIN CAPITAL LETTER N WITH TILDE */
- { 0x00D2, 0xF1 }, /* LATIN CAPITAL LETTER O WITH GRAVE */
- { 0x00D3, 0xEE }, /* LATIN CAPITAL LETTER O WITH ACUTE */
- { 0x00D4, 0xEF }, /* LATIN CAPITAL LETTER O WITH CIRCUMFLEX */
- { 0x00D5, 0xCD }, /* LATIN CAPITAL LETTER O WITH TILDE */
- { 0x00D6, 0x85 }, /* LATIN CAPITAL LETTER O WITH DIAERESIS */
- { 0x00D8, 0xAF }, /* LATIN CAPITAL LETTER O WITH STROKE */
- { 0x00D9, 0xF4 }, /* LATIN CAPITAL LETTER U WITH GRAVE */
- { 0x00DA, 0xF2 }, /* LATIN CAPITAL LETTER U WITH ACUTE */
- { 0x00DB, 0xF3 }, /* LATIN CAPITAL LETTER U WITH CIRCUMFLEX */
- { 0x00DC, 0x86 }, /* LATIN CAPITAL LETTER U WITH DIAERESIS */
- { 0x00DF, 0xA7 }, /* LATIN SMALL LETTER SHARP S */
- { 0x00E0, 0x88 }, /* LATIN SMALL LETTER A WITH GRAVE */
- { 0x00E1, 0x87 }, /* LATIN SMALL LETTER A WITH ACUTE */
- { 0x00E2, 0x89 }, /* LATIN SMALL LETTER A WITH CIRCUMFLEX */
- { 0x00E3, 0x8B }, /* LATIN SMALL LETTER A WITH TILDE */
- { 0x00E4, 0x8A }, /* LATIN SMALL LETTER A WITH DIAERESIS */
- { 0x00E5, 0x8C }, /* LATIN SMALL LETTER A WITH RING ABOVE */
- { 0x00E6, 0xBE }, /* LATIN SMALL LETTER AE */
- { 0x00E7, 0x8D }, /* LATIN SMALL LETTER C WITH CEDILLA */
- { 0x00E8, 0x8F }, /* LATIN SMALL LETTER E WITH GRAVE */
- { 0x00E9, 0x8E }, /* LATIN SMALL LETTER E WITH ACUTE */
- { 0x00EA, 0x90 }, /* LATIN SMALL LETTER E WITH CIRCUMFLEX */
- { 0x00EB, 0x91 }, /* LATIN SMALL LETTER E WITH DIAERESIS */
- { 0x00EC, 0x93 }, /* LATIN SMALL LETTER I WITH GRAVE */
- { 0x00ED, 0x92 }, /* LATIN SMALL LETTER I WITH ACUTE */
- { 0x00EE, 0x94 }, /* LATIN SMALL LETTER I WITH CIRCUMFLEX */
- { 0x00EF, 0x95 }, /* LATIN SMALL LETTER I WITH DIAERESIS */
- { 0x00F1, 0x96 }, /* LATIN SMALL LETTER N WITH TILDE */
- { 0x00F2, 0x98 }, /* LATIN SMALL LETTER O WITH GRAVE */
- { 0x00F3, 0x97 }, /* LATIN SMALL LETTER O WITH ACUTE */
- { 0x00F4, 0x99 }, /* LATIN SMALL LETTER O WITH CIRCUMFLEX */
- { 0x00F5, 0x9B }, /* LATIN SMALL LETTER O WITH TILDE */
- { 0x00F6, 0x9A }, /* LATIN SMALL LETTER O WITH DIAERESIS */
- { 0x00F7, 0xD6 }, /* DIVISION SIGN */
- { 0x00F8, 0xBF }, /* LATIN SMALL LETTER O WITH STROKE */
- { 0x00F9, 0x9D }, /* LATIN SMALL LETTER U WITH GRAVE */
- { 0x00FA, 0x9C }, /* LATIN SMALL LETTER U WITH ACUTE */
- { 0x00FB, 0x9E }, /* LATIN SMALL LETTER U WITH CIRCUMFLEX */
- { 0x00FC, 0x9F }, /* LATIN SMALL LETTER U WITH DIAERESIS */
- { 0x00FF, 0xD8 }, /* LATIN SMALL LETTER Y WITH DIAERESIS */
- { 0x0131, 0xF5 }, /* LATIN SMALL LETTER DOTLESS I */
- { 0x0152, 0xCE }, /* LATIN CAPITAL LIGATURE OE */
- { 0x0153, 0xCF }, /* LATIN SMALL LIGATURE OE */
- { 0x0178, 0xD9 }, /* LATIN CAPITAL LETTER Y WITH DIAERESIS */
- { 0x0192, 0xC4 }, /* LATIN SMALL LETTER F WITH HOOK */
- { 0x02C6, 0xF6 }, /* MODIFIER LETTER CIRCUMFLEX ACCENT */
- { 0x02C7, 0xFF }, /* CARON */
- { 0x02D8, 0xF9 }, /* BREVE */
- { 0x02D9, 0xFA }, /* DOT ABOVE */
- { 0x02DA, 0xFB }, /* RING ABOVE */
- { 0x02DB, 0xFE }, /* OGONEK */
- { 0x02DC, 0xF7 }, /* SMALL TILDE */
- { 0x02DD, 0xFD }, /* DOUBLE ACUTE ACCENT */
- { 0x03A9, 0xBD }, /* GREEK CAPITAL LETTER OMEGA */
- { 0x03C0, 0xB9 }, /* GREEK SMALL LETTER PI */
- { 0x2013, 0xD0 }, /* EN DASH */
- { 0x2014, 0xD1 }, /* EM DASH */
- { 0x2018, 0xD4 }, /* LEFT SINGLE QUOTATION MARK */
- { 0x2019, 0xD5 }, /* RIGHT SINGLE QUOTATION MARK */
- { 0x201A, 0xE2 }, /* SINGLE LOW-9 QUOTATION MARK */
- { 0x201C, 0xD2 }, /* LEFT DOUBLE QUOTATION MARK */
- { 0x201D, 0xD3 }, /* RIGHT DOUBLE QUOTATION MARK */
- { 0x201E, 0xE3 }, /* DOUBLE LOW-9 QUOTATION MARK */
- { 0x2020, 0xA0 }, /* DAGGER */
- { 0x2021, 0xE0 }, /* DOUBLE DAGGER */
- { 0x2022, 0xA5 }, /* BULLET */
- { 0x2026, 0xC9 }, /* HORIZONTAL ELLIPSIS */
- { 0x2030, 0xE4 }, /* PER MILLE SIGN */
- { 0x2039, 0xDC }, /* SINGLE LEFT-POINTING ANGLE QUOTATION MARK */
- { 0x203A, 0xDD }, /* SINGLE RIGHT-POINTING ANGLE QUOTATION MARK */
- { 0x2044, 0xDA }, /* FRACTION SLASH */
- { 0x20AC, 0xDB }, /* EURO SIGN */
- { 0x2122, 0xAA }, /* TRADE MARK SIGN */
- { 0x2202, 0xB6 }, /* PARTIAL DIFFERENTIAL */
- { 0x2206, 0xC6 }, /* INCREMENT */
- { 0x220F, 0xB8 }, /* N-ARY PRODUCT */
- { 0x2211, 0xB7 }, /* N-ARY SUMMATION */
- { 0x221A, 0xC3 }, /* SQUARE ROOT */
- { 0x221E, 0xB0 }, /* INFINITY */
- { 0x222B, 0xBA }, /* INTEGRAL */
- { 0x2248, 0xC5 }, /* ALMOST EQUAL TO */
- { 0x2260, 0xAD }, /* NOT EQUAL TO */
- { 0x2264, 0xB2 }, /* LESS-THAN OR EQUAL TO */
- { 0x2265, 0xB3 }, /* GREATER-THAN OR EQUAL TO */
- { 0x25CA, 0xD7 }, /* LOZENGE */
- { 0xF8FF, 0xF0 }, /* Apple logo */
- { 0xFB01, 0xDE }, /* LATIN SMALL LIGATURE FI */
- { 0xFB02, 0xDF }, /* LATIN SMALL LIGATURE FL */
-};
-
-static const FcCharMap AppleRoman = {
- AppleRomanEnt,
- sizeof (AppleRomanEnt) / sizeof (AppleRomanEnt[0])
-};
-
static const FcCharEnt AdobeSymbolEnt[] = {
{ 0x0020, 0x20 }, /* SPACE # space */
{ 0x0021, 0x21 }, /* EXCLAMATION MARK # exclam */
@@ -2230,7 +1971,6 @@ static const FcCharMap AdobeSymbol = {
static const FcFontDecode fcFontDecoders[] = {
{ ft_encoding_unicode, 0, (1 << 21) - 1 },
{ ft_encoding_symbol, &AdobeSymbol, (1 << 16) - 1 },
- { ft_encoding_apple_roman, &AppleRoman, (1 << 16) - 1 },
};
#define NUM_DECODE (int) (sizeof (fcFontDecoders) / sizeof (fcFontDecoders[0]))
@@ -2869,14 +2609,11 @@ GetScriptTags(FT_Face face, FT_ULong tabletag, FT_ULong **stags)
FT_Stream stream = face->stream;
FT_Error error;
FT_UShort n, p;
- FT_Memory memory;
int script_count;
if (!stream)
return 0;
- memory = stream->memory;
-
if (( error = ftglue_face_goto_table( face, tabletag, stream ) ))
return 0;
diff --git a/fontconfig/src/fcint.h b/fontconfig/src/fcint.h
index 83a7a435b..8179195fc 100644
--- a/fontconfig/src/fcint.h
+++ b/fontconfig/src/fcint.h
@@ -545,7 +545,7 @@ FcPrivate void
FcDirCacheReference (FcCache *cache, int nref);
FcPrivate int
-FcStat (const char *file, struct stat *statb);
+FcStat (const FcChar8 *file, struct stat *statb);
/* fccfg.c */
diff --git a/fontconfig/src/fcmatch.c b/fontconfig/src/fcmatch.c
index 1b9162b46..422bc384d 100644
--- a/fontconfig/src/fcmatch.c
+++ b/fontconfig/src/fcmatch.c
@@ -23,6 +23,7 @@
*/
#include "fcint.h"
+#include <assert.h>
#include <string.h>
#include <ctype.h>
#include <stdio.h>
@@ -395,6 +396,9 @@ FcFontRenderPrepare (FcConfig *config,
FcValue v;
FcResult result;
+ assert (pat != NULL);
+ assert (font != NULL);
+
new = FcPatternCreate ();
if (!new)
return 0;
@@ -514,6 +518,10 @@ FcFontSetMatch (FcConfig *config,
{
FcPattern *best;
+ assert (sets != NULL);
+ assert (p != NULL);
+ assert (result != NULL);
+
if (!config)
{
config = FcConfigGetCurrent ();
@@ -536,6 +544,9 @@ FcFontMatch (FcConfig *config,
int nsets;
FcPattern *best;
+ assert (p != NULL);
+ assert (result != NULL);
+
if (!config)
{
config = FcConfigGetCurrent ();
@@ -672,6 +683,19 @@ FcFontSetSort (FcConfig *config,
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 ");
@@ -686,7 +710,7 @@ FcFontSetSort (FcConfig *config,
nnodes += s->nfont;
}
if (!nnodes)
- goto bail0;
+ return FcFontSetCreate ();
for (nPatternLang = 0;
FcPatternGet (p, FC_LANG, nPatternLang, &patternLang) == FcResultMatch;
@@ -822,6 +846,9 @@ FcFontSort (FcConfig *config,
FcFontSet *sets[2];
int nsets;
+ assert (p != NULL);
+ assert (result != NULL);
+
if (!config)
{
config = FcConfigGetCurrent ();
diff --git a/fontconfig/src/fcname.c b/fontconfig/src/fcname.c
index d77eff6f7..1b32b0ff6 100644
--- a/fontconfig/src/fcname.c
+++ b/fontconfig/src/fcname.c
@@ -296,8 +296,6 @@ FcObjectValidType (FcObject object, FcType type)
if (t) {
switch (t->type) {
- case -1:
- return FcTrue;
case FcTypeDouble:
case FcTypeInteger:
if (type == FcTypeDouble || type == FcTypeInteger)
@@ -308,7 +306,7 @@ FcObjectValidType (FcObject object, FcType type)
return FcTrue;
break;
default:
- if (type == t->type)
+ if (t->type == -1 || type == t->type)
return FcTrue;
break;
}
@@ -511,7 +509,7 @@ FcNameUnregisterConstants (const FcConstant *consts, int nconsts)
}
const FcConstant *
-FcNameGetConstant (FcChar8 *string)
+FcNameGetConstant (const FcChar8 *string)
{
const FcConstantList *l;
int i;
@@ -526,7 +524,7 @@ FcNameGetConstant (FcChar8 *string)
}
FcBool
-FcNameConstant (FcChar8 *string, int *result)
+FcNameConstant (const FcChar8 *string, int *result)
{
const FcConstant *c;
diff --git a/fontconfig/src/fcstr.c b/fontconfig/src/fcstr.c
index 8b94ecba5..b712e5daf 100644
--- a/fontconfig/src/fcstr.c
+++ b/fontconfig/src/fcstr.c
@@ -50,14 +50,16 @@ FcStrCopy (const FcChar8 *s)
FcChar8 *
FcStrPlus (const FcChar8 *s1, const FcChar8 *s2)
{
- int l = strlen ((char *)s1) + strlen ((char *) s2) + 1;
+ int s1l = strlen ((char *) s1);
+ int s2l = strlen ((char *) s2);
+ int l = s1l + s2l + 1;
FcChar8 *s = malloc (l);
if (!s)
return 0;
FcMemAlloc (FC_MEM_STRING, l);
- strcpy ((char *) s, (char *) s1);
- strcat ((char *) s, (char *) s2);
+ memcpy (s, s1, s1l);
+ memcpy (s + s1l, s2, s2l + 1);
return s;
}
diff --git a/fontconfig/src/makealias b/fontconfig/src/makealias
index fd9c3fd1f..fca94d4a2 100644
--- a/fontconfig/src/makealias
+++ b/fontconfig/src/makealias
@@ -17,12 +17,22 @@ while read name; do
hattr='__attribute((visibility("hidden")))'
echo "extern __typeof ($name) $alias $hattr;" >> $HEAD
echo "#define $name $alias" >> $HEAD
- grep -l '^'$name'[ (]' "$SRCDIR"/*.c | sed -n 1p | sed -e 's/^.*\/\([^.]*\)\.c/#ifdef __\1__/' >> $TAIL
- echo "#undef $name" >> $TAIL
+ 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
- echo "#endif" >> $TAIL
;;
esac
done
-echo "#endif" >> $TAIL
+[ $? -ne 0 ] && exit 1
+echo "#endif /* $ifdef */" >> $TAIL
+echo "#endif /* HAVE_GNUC_ATTRIBUTE */" >> $TAIL