Commit 8245771d authored by Patrick Lam's avatar Patrick Lam
Browse files

Merge with HEAD and finish the GCC 4 cleanups (no more warnings!)

parent 8cb4c56d
2005-07-25 Keith Packard <keithp@keithp.com>
* doc/fontconfig-user.sgml:
* fc-glyphname/fc-glyphname.c: (scan), (main):
* fc-lang/fc-lang.c: (FcConfigHome):
* fc-match/fc-match.c: (main):
* src/fccfg.c: (FcConfigHome):
* src/fcfreetype.c: (FcSfntNameTranscode), (FcSfntNameLanguage),
(FcVendorMatch), (FcFreeTypeQuery), (FcFreeTypeCharSetAndSpacing),
(addtag), (FcFontCapabilities):
* src/fcpat.c: (FcValueListEntCreate):
* src/fcstr.c: (FcStrCaseWalkerInit):
* src/fcxml.c: (FcParsePatelt), (FcConfigParseAndLoadDir):
Various GCC 4 cleanups for signed vs unsigned char
Match only [0-9]*.conf files in <include>{directory}</include>
elements to avoid loading *.rpmsave or .dpkg-old files. (otaylor)
2005-07-15 Carl Worth <cworth@cworth.org>
* src/fcint.h:
......
......@@ -276,8 +276,8 @@ file version number (currently 1).
</para></refsect2>
<refsect2><title><sgmltag>include ignore_missing="no"</></title><para>
This element contains the name of an additional configuration file or
directory. If a directory, every file within that directory starting with a
number will be processed in sorted order. When
directory. If a directory, every file within that directory starting with an
ASCII digit (U+0030 - U+0039) and ending with the string ``.conf'' will be processed in sorted order. When
the XML datatype is traversed by FcConfigParse, the contents of the file(s)
will also be incorporated into the configuration by passing the filename(s) to
FcConfigLoadAndParse. If 'ignore_missing' is set to "yes" instead of the
......
......@@ -105,7 +105,7 @@ scan (FILE *f, char *filename)
gn = FcAllocGlyphName ((FcChar32) ucs, (FcChar8 *) name);
if (!gn)
fatal (filename, lineno, "out of memory");
len = strlen ((FcChar8 *) name);
len = strlen (name);
if (len > max_name_len)
max_name_len = len;
raw[nraw++] = gn;
......@@ -286,7 +286,7 @@ main (int argc, char **argv)
for (i = 0; i < nraw; i++)
printf ("static struct { FcChar32 ucs; FcChar8 name[%d]; }"
" glyph%d = { 0x%lx, \"%s\" };\n",
(int) strlen (raw[i]->name) + 1,
(int) strlen ((char *) raw[i]->name) + 1,
i, (unsigned long) raw[i]->ucs, raw[i]->name);
/*
......
......@@ -56,7 +56,7 @@ FcCacheBankToIndex (int bank)
FcChar8 *
FcConfigHome (void)
{
return getenv ("HOME");
return (FcChar8 *) getenv ("HOME");
}
static void
......
......@@ -167,17 +167,17 @@ main (int argc, char **argv)
FcChar8 *file;
if (FcPatternGetString (fs->fonts[j], FC_FILE, 0, &file) != FcResultMatch)
file = "<unknown filename>";
file = (FcChar8 *) "<unknown filename>";
else
{
FcChar8 *slash = strrchr (file, '/');
FcChar8 *slash = (FcChar8 *) strrchr ((char *) file, '/');
if (slash)
file = slash+1;
}
if (FcPatternGetString (fs->fonts[j], FC_FAMILY, 0, &family) != FcResultMatch)
family = "<unknown family>";
family = (FcChar8 *) "<unknown family>";
if (FcPatternGetString (fs->fonts[j], FC_STYLE, 0, &style) != FcResultMatch)
file = "<unknown style>";
file = (FcChar8 *) "<unknown style>";
printf ("%s: \"%s\" \"%s\"\n", file, family, style);
}
......
......@@ -59,7 +59,7 @@
__v__.u.d = va_arg (va, double); \
break; \
case FcTypeString: \
__v__.u.s = va_arg (va, const char *); \
__v__.u.s = va_arg (va, const FcChar8 *); \
break; \
case FcTypeBool: \
__v__.u.b = va_arg (va, FcBool); \
......
......@@ -60,8 +60,8 @@ FcCacheHaveBank (int bank);
#define FC_DBG_CACHE_REF 1024
static FcChar8 *
FcCacheReadString (int fd, FcChar8 *dest, int len)
static char *
FcCacheReadString (int fd, char *dest, int len)
{
FcChar8 c;
FcBool escape;
......@@ -101,7 +101,7 @@ FcCacheReadString (int fd, FcChar8 *dest, int len)
}
static FcBool
FcCacheWriteString (int fd, const FcChar8 *chars)
FcCacheWriteString (int fd, const char *chars)
{
if (write (fd, chars, strlen(chars)+1) != strlen(chars)+1)
return FcFalse;
......@@ -151,7 +151,7 @@ FcGlobalCacheLoad (FcGlobalCache *cache,
FcStrSet *staleDirs,
const FcChar8 *cache_file)
{
FcChar8 name_buf[8192];
char name_buf[8192];
FcGlobalCacheDir *d, *next;
char * current_arch_machine_name;
char candidate_arch_machine_name[MACHINE_SIGNATURE_SIZE + 9];
......@@ -193,7 +193,7 @@ FcGlobalCacheLoad (FcGlobalCache *cache,
{
FcCache md;
FcStrSetAdd (staleDirs, FcStrCopy (name_buf));
FcStrSetAdd (staleDirs, FcStrCopy ((FcChar8 *)name_buf));
read (cache->fd, &md, sizeof (FcCache));
lseek (cache->fd, FcCacheNextOffset (lseek(cache->fd, 0, SEEK_CUR)) + md.count, SEEK_SET);
continue;
......@@ -206,7 +206,7 @@ FcGlobalCacheLoad (FcGlobalCache *cache,
d->next = cache->dirs;
cache->dirs = d;
d->name = FcStrCopy (name_buf);
d->name = (char *)FcStrCopy ((FcChar8 *)name_buf);
d->ent = 0;
d->offset = lseek (cache->fd, 0, SEEK_CUR);
if (read (cache->fd, &d->metadata, sizeof (FcCache)) != sizeof (FcCache))
......@@ -231,7 +231,7 @@ FcGlobalCacheLoad (FcGlobalCache *cache,
}
FcBool
FcGlobalCacheReadDir (FcFontSet *set, FcStrSet *dirs, FcGlobalCache * cache, const FcChar8 *dir, FcConfig *config)
FcGlobalCacheReadDir (FcFontSet *set, FcStrSet *dirs, FcGlobalCache * cache, const char *dir, FcConfig *config)
{
FcGlobalCacheDir *d;
FcBool ret = FcFalse;
......@@ -256,7 +256,7 @@ FcGlobalCacheReadDir (FcFontSet *set, FcStrSet *dirs, FcGlobalCache * cache, con
FcBool
FcGlobalCacheUpdate (FcGlobalCache *cache,
const FcChar8 *name,
const char *name,
FcFontSet *set)
{
FcGlobalCacheDir * d;
......@@ -281,7 +281,7 @@ FcGlobalCacheUpdate (FcGlobalCache *cache,
cache->updated = FcTrue;
d->name = FcStrCopy (name);
d->name = (char *)FcStrCopy ((FcChar8 *)name);
d->ent = FcDirCacheProduce (set, &d->metadata);
d->offset = 0;
return FcTrue;
......@@ -618,12 +618,12 @@ FcCacheRead (FcConfig *config, FcGlobalCache * cache)
static FcBool
FcDirCacheRead (FcFontSet * set, FcStrSet * dirs, const FcChar8 *dir)
{
FcChar8 *cache_file = FcStrPlus (dir, (FcChar8 *) "/" FC_DIR_CACHE_FILE);
char *cache_file = (char *)FcStrPlus (dir, (FcChar8 *) "/" FC_DIR_CACHE_FILE);
int fd;
char * current_arch_machine_name;
char candidate_arch_machine_name[9+MACHINE_SIGNATURE_SIZE];
off_t current_arch_start = 0;
FcChar8 subdirName[FC_MAX_FILE_LEN + 1 + 12 + 1];
char subdirName[FC_MAX_FILE_LEN + 1 + 12 + 1];
if (!cache_file)
goto bail;
......@@ -643,7 +643,7 @@ FcDirCacheRead (FcFontSet * set, FcStrSet * dirs, const FcChar8 *dir)
goto bail1;
while (strlen(FcCacheReadString (fd, subdirName, sizeof (subdirName))) > 0)
FcStrSetAdd (dirs, subdirName);
FcStrSetAdd (dirs, (FcChar8 *)subdirName);
if (!FcDirCacheConsume (fd, set))
goto bail1;
......@@ -689,7 +689,7 @@ static void *
FcDirCacheProduce (FcFontSet *set, FcCache *metadata)
{
void * current_dir_block, * final_dir_block;
static int rand_state = 0;
static unsigned int rand_state = 0;
int bank;
if (!rand_state)
......@@ -734,6 +734,7 @@ FcDirCacheWrite (FcFontSet *set, FcStrSet *dirs, const FcChar8 *dir)
int fd, i;
FcCache metadata;
off_t current_arch_start = 0, truncate_to;
char * current_arch_machine_name, * header;
void * current_dir_block;
......@@ -744,7 +745,7 @@ FcDirCacheWrite (FcFontSet *set, FcStrSet *dirs, const FcChar8 *dir)
if (!metadata.count)
{
unlink (cache_file);
unlink ((char *)cache_file);
free (cache_file);
return FcTrue;
}
......@@ -755,7 +756,7 @@ FcDirCacheWrite (FcFontSet *set, FcStrSet *dirs, const FcChar8 *dir)
if (FcDebug () & FC_DBG_CACHE)
printf ("FcDirCacheWriteDir cache_file \"%s\"\n", cache_file);
fd = open(cache_file, O_RDWR | O_CREAT, 0666);
fd = open((char *)cache_file, O_RDWR | O_CREAT, 0666);
if (fd == -1)
goto bail0;
......@@ -782,7 +783,7 @@ FcDirCacheWrite (FcFontSet *set, FcStrSet *dirs, const FcChar8 *dir)
goto bail1;
for (i = 0; i < dirs->size; i++)
FcCacheWriteString (fd, dirs->strs[i]);
FcCacheWriteString (fd, (char *)dirs->strs[i]);
FcCacheWriteString (fd, "");
write (fd, &metadata, sizeof(FcCache));
......@@ -802,7 +803,7 @@ FcDirCacheWrite (FcFontSet *set, FcStrSet *dirs, const FcChar8 *dir)
bail0:
free (current_dir_block);
bail:
unlink (cache_file);
unlink ((char *)cache_file);
free (cache_file);
return FcFalse;
}
......
......@@ -1652,7 +1652,7 @@ FcConfigHome (void)
home = getenv ("USERPROFILE");
#endif
return home;
return (FcChar8 *) home;
}
return 0;
}
......
......@@ -136,7 +136,7 @@ FcDirScanConfig (FcFontSet *set,
/*
* Check ~/.fonts.cache-<version> file
*/
if (cache && FcGlobalCacheReadDir (set, dirs, cache, dir, config))
if (cache && FcGlobalCacheReadDir (set, dirs, cache, (char *)dir, config))
return FcTrue;
}
......@@ -184,7 +184,7 @@ FcDirScanConfig (FcFontSet *set,
* add the cache entry
*/
if (ret && cache)
FcGlobalCacheUpdate (cache, dir, tmpSet);
FcGlobalCacheUpdate (cache, (char *)dir, tmpSet);
for (i = 0; i < tmpSet->nfont; i++)
FcFontSetAdd (set, tmpSet->fonts[i]);
......
......@@ -733,7 +733,7 @@ FcSfntNameTranscode (FT_SfntName *sname)
#endif
return 0;
done:
if (FcStrCmpIgnoreBlanksAndCase (utf8, "") == 0)
if (FcStrCmpIgnoreBlanksAndCase (utf8, (FcChar8 *) "") == 0)
{
free (utf8);
return 0;
......@@ -749,7 +749,7 @@ FcSfntNameLanguage (FT_SfntName *sname)
if (fcFtLanguage[i].platform_id == sname->platform_id &&
(fcFtLanguage[i].language_id == TT_LANGUAGE_DONT_CARE ||
fcFtLanguage[i].language_id == sname->language_id))
return fcFtLanguage[i].lang;
return (FcChar8 *) fcFtLanguage[i].lang;
return 0;
}
......@@ -801,7 +801,7 @@ FcVendorMatch(const FT_Char vendor[4], const FT_Char *vendor_string)
/* vendor is not necessarily NUL-terminated. */
int i, len;
len = strlen(vendor_string);
len = strlen((char *) vendor_string);
if (memcmp(vendor, vendor_string, len) != 0)
return FcFalse;
for (i = len; i < 4; i++)
......@@ -895,23 +895,25 @@ FcStringContainsConst (const FcChar8 *string,
return -1;
}
typedef FcChar8 *FC8;
static const FcStringConst weightConsts[] = {
{ "thin", FC_WEIGHT_THIN },
{ "extralight", FC_WEIGHT_EXTRALIGHT },
{ "ultralight", FC_WEIGHT_ULTRALIGHT },
{ "light", FC_WEIGHT_LIGHT },
{ "book", FC_WEIGHT_BOOK },
{ "regular", FC_WEIGHT_REGULAR },
{ "normal", FC_WEIGHT_NORMAL },
{ "medium", FC_WEIGHT_MEDIUM },
{ "demibold", FC_WEIGHT_DEMIBOLD },
{ "demi", FC_WEIGHT_DEMIBOLD },
{ "semibold", FC_WEIGHT_SEMIBOLD },
{ "bold", FC_WEIGHT_BOLD },
{ "extrabold", FC_WEIGHT_EXTRABOLD },
{ "ultrabold", FC_WEIGHT_ULTRABOLD },
{ "black", FC_WEIGHT_BLACK },
{ "heavy", FC_WEIGHT_HEAVY },
{ (FC8) "thin", FC_WEIGHT_THIN },
{ (FC8) "extralight", FC_WEIGHT_EXTRALIGHT },
{ (FC8) "ultralight", FC_WEIGHT_ULTRALIGHT },
{ (FC8) "light", FC_WEIGHT_LIGHT },
{ (FC8) "book", FC_WEIGHT_BOOK },
{ (FC8) "regular", FC_WEIGHT_REGULAR },
{ (FC8) "normal", FC_WEIGHT_NORMAL },
{ (FC8) "medium", FC_WEIGHT_MEDIUM },
{ (FC8) "demibold", FC_WEIGHT_DEMIBOLD },
{ (FC8) "demi", FC_WEIGHT_DEMIBOLD },
{ (FC8) "semibold", FC_WEIGHT_SEMIBOLD },
{ (FC8) "bold", FC_WEIGHT_BOLD },
{ (FC8) "extrabold", FC_WEIGHT_EXTRABOLD },
{ (FC8) "ultrabold", FC_WEIGHT_ULTRABOLD },
{ (FC8) "black", FC_WEIGHT_BLACK },
{ (FC8) "heavy", FC_WEIGHT_HEAVY },
};
#define NUM_WEIGHT_CONSTS (sizeof (weightConsts) / sizeof (weightConsts[0]))
......@@ -920,15 +922,15 @@ static const FcStringConst weightConsts[] = {
#define FcContainsWeight(s) FcStringContainsConst (s,weightConsts,NUM_WEIGHT_CONSTS)
static const FcStringConst widthConsts[] = {
{ "ultracondensed", FC_WIDTH_ULTRACONDENSED },
{ "extracondensed", FC_WIDTH_EXTRACONDENSED },
{ "semicondensed", FC_WIDTH_SEMICONDENSED },
{ "condensed", FC_WIDTH_CONDENSED }, /* must be after *condensed */
{ "normal", FC_WIDTH_NORMAL },
{ "semiexpanded", FC_WIDTH_SEMIEXPANDED },
{ "extraexpanded", FC_WIDTH_EXTRAEXPANDED },
{ "ultraexpanded", FC_WIDTH_ULTRAEXPANDED },
{ "expanded", FC_WIDTH_EXPANDED }, /* must be after *expanded */
{ (FC8) "ultracondensed", FC_WIDTH_ULTRACONDENSED },
{ (FC8) "extracondensed", FC_WIDTH_EXTRACONDENSED },
{ (FC8) "semicondensed", FC_WIDTH_SEMICONDENSED },
{ (FC8) "condensed", FC_WIDTH_CONDENSED }, /* must be after *condensed */
{ (FC8) "normal", FC_WIDTH_NORMAL },
{ (FC8) "semiexpanded", FC_WIDTH_SEMIEXPANDED },
{ (FC8) "extraexpanded", FC_WIDTH_EXTRAEXPANDED },
{ (FC8) "ultraexpanded", FC_WIDTH_ULTRAEXPANDED },
{ (FC8) "expanded", FC_WIDTH_EXPANDED }, /* must be after *expanded */
};
#define NUM_WIDTH_CONSTS (sizeof (widthConsts) / sizeof (widthConsts[0]))
......@@ -937,8 +939,8 @@ static const FcStringConst widthConsts[] = {
#define FcContainsWidth(s) FcStringContainsConst (s,widthConsts,NUM_WIDTH_CONSTS)
static const FcStringConst slantConsts[] = {
{ "italic", FC_SLANT_ITALIC },
{ "oblique", FC_SLANT_OBLIQUE },
{ (FC8) "italic", FC_SLANT_ITALIC },
{ (FC8) "oblique", FC_SLANT_OBLIQUE },
};
#define NUM_SLANT_CONSTS (sizeof (slantConsts) / sizeof (slantConsts[0]))
......@@ -1154,7 +1156,7 @@ FcFreeTypeQuery (const FcChar8 *file,
/* pad lang list with 'xx' to line up with elt */
while (*nlangp < *np)
{
if (!FcPatternAddString (pat, eltlang, "xx"))
if (!FcPatternAddString (pat, eltlang, (FcChar8 *) "xx"))
goto bail1;
++*nlangp;
}
......@@ -1169,21 +1171,21 @@ FcFreeTypeQuery (const FcChar8 *file,
}
if (!nfamily && face->family_name &&
FcStrCmpIgnoreBlanksAndCase (face->family_name, "") != 0)
FcStrCmpIgnoreBlanksAndCase ((FcChar8 *) face->family_name, (FcChar8 *) "") != 0)
{
if (FcDebug () & FC_DBG_SCANV)
printf ("using FreeType family \"%s\"\n", face->family_name);
if (!FcPatternAddString (pat, FC_FAMILY, face->family_name))
if (!FcPatternAddString (pat, FC_FAMILY, (FcChar8 *) face->family_name))
goto bail1;
++nfamily;
}
if (!nstyle && face->style_name &&
FcStrCmpIgnoreBlanksAndCase (face->style_name, "") != 0)
FcStrCmpIgnoreBlanksAndCase ((FcChar8 *) face->style_name, (FcChar8 *) "") != 0)
{
if (FcDebug () & FC_DBG_SCANV)
printf ("using FreeType style \"%s\"\n", face->style_name);
if (!FcPatternAddString (pat, FC_STYLE, face->style_name))
if (!FcPatternAddString (pat, FC_STYLE, (FcChar8 *) face->style_name))
goto bail1;
++nstyle;
}
......@@ -1400,7 +1402,7 @@ FcFreeTypeQuery (const FcChar8 *file,
{
if (weight == -1 && psfontinfo.weight)
{
weight = FcIsWeight (psfontinfo.weight);
weight = FcIsWeight ((FcChar8 *) psfontinfo.weight);
if (FcDebug() & FC_DBG_SCANV)
printf ("\tType1 weight %s maps to %d\n",
psfontinfo.weight, weight);
......@@ -1434,7 +1436,7 @@ FcFreeTypeQuery (const FcChar8 *file,
BDF_PropertyRec prop;
rc = MY_Get_BDF_Property(face, "FOUNDRY", &prop);
if(rc == 0 && prop.type == BDF_PROPERTY_TYPE_ATOM)
foundry = prop.u.atom;
foundry = (FcChar8 *) prop.u.atom;
}
if (width == -1)
......@@ -1465,7 +1467,7 @@ FcFreeTypeQuery (const FcChar8 *file,
MY_Get_BDF_Property (face, "SETWIDTH_NAME", &prop) == 0 &&
prop.type == BDF_PROPERTY_TYPE_ATOM)
{
width = FcIsWidth (prop.u.atom);
width = FcIsWidth ((FcChar8 *) prop.u.atom);
if (FcDebug () & FC_DBG_SCANV)
printf ("\tsetwidth %s maps to %d\n", prop.u.atom, width);
}
......@@ -1518,7 +1520,7 @@ FcFreeTypeQuery (const FcChar8 *file,
width = FC_WIDTH_NORMAL;
if (foundry == 0)
foundry = "unknown";
foundry = (FcChar8 *) "unknown";
if (!FcPatternAddInteger (pat, FC_SLANT, slant))
goto bail1;
......@@ -1629,7 +1631,7 @@ FcFreeTypeQuery (const FcChar8 *file,
{
const char *font_format = FT_Get_X11_Font_Format (face);
if (font_format)
FcPatternAddString (pat, FC_FONTFORMAT, font_format);
FcPatternAddString (pat, FC_FONTFORMAT, (FcChar8 *) font_format);
}
#endif
......@@ -2453,22 +2455,33 @@ FcFreeTypeCharSetAndSpacing (FT_Face face, FcBlanks *blanks, int *spacing)
if (glyph &&
FcFreeTypeCheckGlyph (face, ucs4, glyph, blanks, &advance))
{
if (!has_advance)
/*
* ignore glyphs with zero advance. They’re
* combining characters, and while their behaviour
* isn’t well defined for monospaced applications in
* Unicode, there are many fonts which include
* zero-width combining characters in otherwise
* monospaced fonts.
*/
if (advance)
{
has_advance = FcTrue;
advance_one = advance;
if (!has_advance)
{
has_advance = FcTrue;
advance_one = advance;
}
else if (!APPROXIMATELY_EQUAL (advance, advance_one))
{
if (fixed_advance)
{
dual_advance = FcTrue;
fixed_advance = FcFalse;
advance_two = advance;
}
else if (!APPROXIMATELY_EQUAL (advance, advance_two))
dual_advance = FcFalse;
}
}
else if (!APPROXIMATELY_EQUAL (advance, advance_one))
{
if (fixed_advance)
{
dual_advance = FcTrue;
fixed_advance = FcFalse;
advance_two = advance;
}
else if (!APPROXIMATELY_EQUAL (advance, advance_two))
dual_advance = FcFalse;
}
leaf = FcCharSetFindLeafCreate (fcs, ucs4);
if (!leaf)
......@@ -2511,22 +2524,25 @@ FcFreeTypeCharSetAndSpacing (FT_Face face, FcBlanks *blanks, int *spacing)
if (glyph && FcFreeTypeCheckGlyph (face, ucs4,
glyph, blanks, &advance))
{
if (!has_advance)
if (advance)
{
has_advance = FcTrue;
advance_one = advance;
if (!has_advance)
{
has_advance = FcTrue;
advance_one = advance;
}
else if (!APPROXIMATELY_EQUAL (advance, advance_one))
{
if (fixed_advance)
{
dual_advance = FcTrue;
fixed_advance = FcFalse;
advance_two = advance;
}
else if (!APPROXIMATELY_EQUAL (advance, advance_two))
dual_advance = FcFalse;
}
}
else if (!APPROXIMATELY_EQUAL (advance, advance_one))
{
if (fixed_advance)
{
dual_advance = FcTrue;
fixed_advance = FcFalse;
advance_two = advance;
}
else if (!APPROXIMATELY_EQUAL (advance, advance_two))
dual_advance = FcFalse;
}
if (!leaf)
{
......@@ -2578,22 +2594,25 @@ FcFreeTypeCharSetAndSpacing (FT_Face face, FcBlanks *blanks, int *spacing)
if (ucs4 != 0xffff &&
FcFreeTypeCheckGlyph (face, ucs4, glyph, blanks, &advance))
{
if (!has_advance)
if (advance)
{
has_advance = FcTrue;
advance_one = advance;
if (!has_advance)
{
has_advance = FcTrue;
advance_one = advance;
}
else if (!APPROXIMATELY_EQUAL (advance, advance_one))
{
if (fixed_advance)
{
dual_advance = FcTrue;
fixed_advance = FcFalse;
advance_two = advance;
}
else if (!APPROXIMATELY_EQUAL (advance, advance_two))
dual_advance = FcFalse;
}
}
else if (!APPROXIMATELY_EQUAL (advance, advance_one))
{
if (fixed_advance)
{
dual_advance = FcTrue;
fixed_advance = FcFalse;
advance_two = advance;
}
else if (!APPROXIMATELY_EQUAL (advance, advance_two))
dual_advance = FcFalse;
}
leaf = FcCharSetFindLeafCreate (fcs, ucs4);
if (!leaf)
goto bail1;
......@@ -2689,9 +2708,9 @@ addtag(FcChar8 *complex, FT_ULong tag)
return;
if (*complex != '\0')
strcat (complex, " ");
strcat (complex, "otlayout:");
strcat (complex, tagstring);
strcat ((char *) complex, " ");
strcat ((char *) complex, "otlayout:");
strcat ((char *) complex, (char *) tagstring);
}
static int
......@@ -2820,7 +2839,7 @@ FcFontCapabilities(FT_Face face)
complex[0] = '\0';
if (issilgraphitefont)
strcpy(complex, "ttable:Silf ");
strcpy((char *) complex, "ttable:Silf ");
while ((indx1 < gsub_count) || (indx2 < gpos_count)) {
if (indx1 == gsub_count) {
......
......@@ -323,7 +323,7 @@ typedef struct _FcGlobalCacheDir FcGlobalCacheDir;
struct _FcGlobalCacheDir {
struct _FcGlobalCacheDir *next;
FcChar8 *name;
char *name;
FcCache metadata;
off_t offset;
void *ent;
......@@ -422,7 +422,7 @@ FcBool
FcGlobalCacheReadDir (FcFontSet *set,
FcStrSet *dirs,
FcGlobalCache *cache,
const FcChar8 *dir,
const char *dir,
FcConfig *config);
void
......@@ -432,7 +432,7 @@ FcGlobalCacheLoad (FcGlobalCache *cache,
FcBool
FcGlobalCacheUpdate (FcGlobalCache *cache,
const FcChar8 *file,
const char *file