diff options
author | marha <marha@users.sourceforge.net> | 2012-02-22 09:28:23 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2012-02-22 09:28:23 +0100 |
commit | ecc59cb52ffe4a84fddae997bba64adad35d5e93 (patch) | |
tree | 233c2cf0ea65dcf0b671f28e14b1fb083dac87e3 /fontconfig/src | |
parent | d19dd4c9cf37b7b691552c4f4dd873471e31ca68 (diff) | |
parent | 6baac61e6ca9cd314e689dfe7f84771aad08c66e (diff) | |
download | vcxsrv-ecc59cb52ffe4a84fddae997bba64adad35d5e93.tar.gz vcxsrv-ecc59cb52ffe4a84fddae997bba64adad35d5e93.tar.bz2 vcxsrv-ecc59cb52ffe4a84fddae997bba64adad35d5e93.zip |
Merge remote-tracking branch 'origin/released'
Diffstat (limited to 'fontconfig/src')
-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 |
10 files changed, 59 insertions, 306 deletions
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 |