#include <stdlib.h>
#include <stdio.h>
#include <string.h>
+#include <libgen.h>
#include "fcint.h"
#include <ft2build.h>
#include FT_FREETYPE_H
}
typedef struct {
- FT_UShort platform_id;
- FT_UShort encoding_id;
- char *fromcode;
+ const FT_UShort platform_id;
+ const FT_UShort encoding_id;
+ const char fromcode[12];
} FcFtEncoding;
#define TT_ENCODING_DONT_CARE 0xffff
#define NUM_FC_FT_ENCODING (int) (sizeof (fcFtEncoding) / sizeof (fcFtEncoding[0]))
typedef struct {
- FT_UShort platform_id;
- FT_UShort language_id;
+ const FT_UShort platform_id;
+ const FT_UShort language_id;
const char lang[8];
} FcFtLanguage;
typedef struct {
FT_UShort language_id;
- char *fromcode;
+ char fromcode[12];
} FcMacRomanFake;
static const FcMacRomanFake fcMacRomanFake[] = {
static FcChar8 *
FcSfntNameTranscode (FT_SfntName *sname)
{
- int i;
- char *fromcode;
+ int i;
+ const char *fromcode;
#if USE_ICONV
iconv_t cd;
#endif
{
int f;
- fromcode = 0;
+ fromcode = NULL;
for (f = 0; f < NUM_FC_MAC_ROMAN_FAKE; f++)
if (fcMacRomanFake[f].language_id == sname->language_id)
{
return utf8;
}
-static FcChar8 *
+static const FcChar8 *
FcSfntNameLanguage (FT_SfntName *sname)
{
int i;
for (snamei = 0; snamei < snamec; snamei++)
{
FcChar8 *utf8;
- FcChar8 *lang;
+ const FcChar8 *lang;
const char *elt = 0, *eltlang = 0;
int *np = 0, *nlangp = 0;
printf ("Saving unique fullname %s\n", full);
}
- if (!FcPatternAddString (pat, FC_FILE, file))
+ if (!FcPatternAddString (pat, FC_FILE, (FcChar8 *)basename((char *)FcStrCopy(file))))
goto bail1;
+ FcPatternAddFullFname (pat, (const char *)file);
+
if (!FcPatternAddInteger (pat, FC_INDEX, id))
goto bail1;
return FcFalse;
}
-static FcChar8 *
+static const FcChar8 *
FcUcs4ToGlyphName (FcChar32 ucs4)
{
int i = (int) (ucs4 % FC_GLYPHNAME_HASH);
int r = 0;
- FcGlyphName *gn;
+ const FcGlyphName *gn;
while ((gn = ucs_to_name[i]))
{
FcChar32 h = FcHashGlyphName (name);
int i = (int) (h % FC_GLYPHNAME_HASH);
int r = 0;
- FcGlyphName *gn;
+ const FcGlyphName *gn;
while ((gn = name_to_ucs[i]))
{
* any defined order within the font
*/
static FT_UInt
-FcFreeTypeGlyphNameIndex (FT_Face face, FcChar8 *name)
+FcFreeTypeGlyphNameIndex (FT_Face face, const FcChar8 *name)
{
FT_UInt gindex;
FcChar8 name_buf[FC_GLYPHNAME_MAXLEN + 2];
*/
if (FcFreeTypeUseNames (face))
{
- FcChar8 *name = FcUcs4ToGlyphName (ucs4);
+ const FcChar8 *name = FcUcs4ToGlyphName (ucs4);
if (name)
{
glyphindex = FcFreeTypeGlyphNameIndex (face, name);