diff options
Diffstat (limited to 'fontconfig')
-rw-r--r-- | fontconfig/conf.d/30-metric-aliases.conf | 36 | ||||
-rw-r--r-- | fontconfig/conf.d/40-nonlatin.conf | 143 | ||||
-rw-r--r-- | fontconfig/conf.d/45-latin.conf | 96 | ||||
-rw-r--r-- | fontconfig/conf.d/65-nonlatin.conf | 27 | ||||
-rw-r--r-- | fontconfig/fc-cat/fc-cat.c | 2 | ||||
-rw-r--r-- | fontconfig/fc-lang/Makefile.am | 3 | ||||
-rw-r--r-- | fontconfig/fc-lang/ast.orth | 4 | ||||
-rw-r--r-- | fontconfig/fc-lang/ks.orth | 10 | ||||
-rw-r--r-- | fontconfig/fc-lang/nqo.orth | 31 | ||||
-rw-r--r-- | fontconfig/fc-lang/ur.orth | 7 | ||||
-rw-r--r-- | fontconfig/fc-list/fc-list.c | 20 | ||||
-rw-r--r-- | fontconfig/fc-match/fc-match.c | 27 | ||||
-rw-r--r-- | fontconfig/fontconfig/fontconfig.h | 4 | ||||
-rw-r--r-- | fontconfig/src/fcarch.h | 5 | ||||
-rw-r--r-- | fontconfig/src/fccache.c | 10 | ||||
-rw-r--r-- | fontconfig/src/fcdir.c | 17 | ||||
-rw-r--r-- | fontconfig/src/fcformat.c | 5 | ||||
-rw-r--r-- | fontconfig/src/fcfreetype.c | 263 | ||||
-rw-r--r-- | fontconfig/src/fcint.h | 2 | ||||
-rw-r--r-- | fontconfig/src/fcmatch.c | 29 | ||||
-rw-r--r-- | fontconfig/src/fcname.c | 8 | ||||
-rw-r--r-- | fontconfig/src/fcstr.c | 8 | ||||
-rw-r--r-- | fontconfig/src/makealias | 18 |
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 2d4a4377b..c38a7050e 100644 --- a/fontconfig/src/fccache.c +++ b/fontconfig/src/fccache.c @@ -87,7 +87,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]; @@ -136,7 +136,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); } @@ -727,8 +727,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; @@ -738,7 +736,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 */ @@ -747,7 +745,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 |