X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=fontconfig%2Ffontconfig.h;h=feb781ed8157708ffc9d5712a6606db74e534302;hb=f57783d2e9c7362b1e5d5e3a967ba90fa49ade6e;hp=f25f57c6a3b5f593c26f0b7999c0c581ce4e4267;hpb=134f6011f347d1bc1b80a3cd435bb10b38d2932e;p=fontconfig.git diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h index f25f57c..feb781e 100644 --- a/fontconfig/fontconfig.h +++ b/fontconfig/fontconfig.h @@ -1,7 +1,7 @@ /* - * $XFree86: xc/lib/fontconfig/fontconfig/fontconfig.h,v 1.5 2002/03/01 01:00:54 keithp Exp $ + * $RCSId: xc/lib/fontconfig/fontconfig/fontconfig.h,v 1.30 2002/09/26 00:17:27 keithp Exp $ * - * Copyright © 2001 Keith Packard, member of The XFree86 Project, Inc. + * Copyright © 2001 Keith Packard * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -27,20 +27,41 @@ #include +#if defined(__GNUC__) && (__GNUC__ >= 4) +#define FC_ATTRIBUTE_SENTINEL(x) __attribute__((__sentinel__(0))) +#else +#define FC_ATTRIBUTE_SENTINEL(x) +#endif + typedef unsigned char FcChar8; typedef unsigned short FcChar16; typedef unsigned int FcChar32; typedef int FcBool; /* - * Current Fontconfig version number + * Current Fontconfig version number. This same number + * must appear in the fontconfig configure.in file. Yes, + * it'a a pain to synchronize version numbers like this. */ -#define FC_MAJOR 1 -#define FC_MINOR 0 -#define FC_REVISION 0 + +#define FC_MAJOR 2 +#define FC_MINOR 3 +#define FC_REVISION 95 #define FC_VERSION ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION)) +/* + * Current font cache file format version + * This is appended to the cache files so that multiple + * versions of the library will peacefully coexist + * + * Change this value whenever the disk format for the cache file + * changes in any non-compatible way. Try to avoid such changes as + * it means multiple copies of the font information. + */ + +#define FC_CACHE_VERSION "2" + #define FcTrue 1 #define FcFalse 0 @@ -49,16 +70,20 @@ typedef int FcBool; #define FC_SLANT "slant" /* Int */ #define FC_WEIGHT "weight" /* Int */ #define FC_SIZE "size" /* Double */ +#define FC_ASPECT "aspect" /* Double */ #define FC_PIXEL_SIZE "pixelsize" /* Double */ #define FC_SPACING "spacing" /* Int */ #define FC_FOUNDRY "foundry" /* String */ #define FC_ANTIALIAS "antialias" /* Bool (depends) */ #define FC_HINTING "hinting" /* Bool (true) */ +#define FC_HINT_STYLE "hintstyle" /* Int */ #define FC_VERTICAL_LAYOUT "verticallayout" /* Bool (false) */ #define FC_AUTOHINT "autohint" /* Bool (false) */ #define FC_GLOBAL_ADVANCE "globaladvance" /* Bool (true) */ +#define FC_WIDTH "width" /* Int */ #define FC_FILE "file" /* String */ #define FC_INDEX "index" /* Int */ +#define FC_FT_FACE "ftface" /* FT_Face */ #define FC_RASTERIZER "rasterizer" /* String */ #define FC_OUTLINE "outline" /* Bool */ #define FC_SCALABLE "scalable" /* Bool */ @@ -66,78 +91,77 @@ typedef int FcBool; #define FC_DPI "dpi" /* double */ #define FC_RGBA "rgba" /* Int */ #define FC_MINSPACE "minspace" /* Bool use minimum line spacing */ -#define FC_SOURCE "source" /* String (X11, freetype) */ +#define FC_SOURCE "source" /* String (deprecated) */ #define FC_CHARSET "charset" /* CharSet */ -#define FC_LANG "lang" /* String OS/2 CodePageRange */ - -#define FC_DIR_CACHE_FILE "fonts.cache" -#define FC_USER_CACHE_FILE ".fonts.cache" +#define FC_LANG "lang" /* String RFC 3066 langs */ +#define FC_FONTVERSION "fontversion" /* Int from 'head' table */ +#define FC_FULLNAME "fullname" /* String */ +#define FC_FAMILYLANG "familylang" /* String RFC 3066 langs */ +#define FC_STYLELANG "stylelang" /* String RFC 3066 langs */ +#define FC_FULLNAMELANG "fullnamelang" /* String RFC 3066 langs */ +#define FC_CAPABILITY "capability" /* String */ +#define FC_FONTFORMAT "fontformat" /* String */ +#define FC_EMBOLDEN "embolden" /* Bool - true if emboldening needed*/ +#define FC_EMBEDDED_BITMAP "embeddedbitmap" /* Bool - true to enable embedded bitmaps */ + +#define FC_CACHE_SUFFIX ".cache-"FC_CACHE_VERSION +#define FC_DIR_CACHE_FILE "fonts.cache-"FC_CACHE_VERSION +#define FC_USER_CACHE_FILE ".fonts.cache-"FC_CACHE_VERSION /* Adjust outline rasterizer */ #define FC_CHAR_WIDTH "charwidth" /* Int */ #define FC_CHAR_HEIGHT "charheight"/* Int */ #define FC_MATRIX "matrix" /* FcMatrix */ -#define FC_WEIGHT_LIGHT 0 -#define FC_WEIGHT_MEDIUM 100 -#define FC_WEIGHT_DEMIBOLD 180 -#define FC_WEIGHT_BOLD 200 -#define FC_WEIGHT_BLACK 210 - -#define FC_SLANT_ROMAN 0 -#define FC_SLANT_ITALIC 100 -#define FC_SLANT_OBLIQUE 110 - -#define FC_PROPORTIONAL 0 -#define FC_MONO 100 -#define FC_CHARCELL 110 +#define FC_WEIGHT_THIN 0 +#define FC_WEIGHT_EXTRALIGHT 40 +#define FC_WEIGHT_ULTRALIGHT FC_WEIGHT_EXTRALIGHT +#define FC_WEIGHT_LIGHT 50 +#define FC_WEIGHT_BOOK 75 +#define FC_WEIGHT_REGULAR 80 +#define FC_WEIGHT_NORMAL FC_WEIGHT_REGULAR +#define FC_WEIGHT_MEDIUM 100 +#define FC_WEIGHT_DEMIBOLD 180 +#define FC_WEIGHT_SEMIBOLD FC_WEIGHT_DEMIBOLD +#define FC_WEIGHT_BOLD 200 +#define FC_WEIGHT_EXTRABOLD 205 +#define FC_WEIGHT_ULTRABOLD FC_WEIGHT_EXTRABOLD +#define FC_WEIGHT_BLACK 210 +#define FC_WEIGHT_HEAVY FC_WEIGHT_BLACK + +#define FC_SLANT_ROMAN 0 +#define FC_SLANT_ITALIC 100 +#define FC_SLANT_OBLIQUE 110 + +#define FC_WIDTH_ULTRACONDENSED 50 +#define FC_WIDTH_EXTRACONDENSED 63 +#define FC_WIDTH_CONDENSED 75 +#define FC_WIDTH_SEMICONDENSED 87 +#define FC_WIDTH_NORMAL 100 +#define FC_WIDTH_SEMIEXPANDED 113 +#define FC_WIDTH_EXPANDED 125 +#define FC_WIDTH_EXTRAEXPANDED 150 +#define FC_WIDTH_ULTRAEXPANDED 200 + +#define FC_PROPORTIONAL 0 +#define FC_DUAL 90 +#define FC_MONO 100 +#define FC_CHARCELL 110 /* sub-pixel order */ -#define FC_RGBA_NONE 0 +#define FC_RGBA_UNKNOWN 0 #define FC_RGBA_RGB 1 #define FC_RGBA_BGR 2 #define FC_RGBA_VRGB 3 #define FC_RGBA_VBGR 4 - -/* language groups from the OS/2 CodePageRange bits */ -#define FC_LANG_LATIN_1 "latin1" /* 0 */ -#define FC_LANG_LATIN_2_EASTERN_EUROPE "latin2easterneurope" /* 1 */ -#define FC_LANG_CYRILLIC "cyrillic" /* 2 */ -#define FC_LANG_GREEK "greek" /* 3 */ -#define FC_LANG_TURKISH "turkish" /* 4 */ -#define FC_LANG_HEBREW "hebrew" /* 5 */ -#define FC_LANG_ARABIC "arabic" /* 6 */ -#define FC_LANG_WINDOWS_BALTIC "windowsbaltic" /* 7 */ -#define FC_LANG_VIETNAMESE "vietnamese" /* 8 */ -/* 9-15 reserved for Alternate ANSI */ -#define FC_LANG_THAI "thai" /* 16 */ -#define FC_LANG_JAPANESE "japanese" /* 17 */ -#define FC_LANG_SIMPLIFIED_CHINESE "simplifiedchinese" /* 18 */ -#define FC_LANG_KOREAN_WANSUNG "koreanwansung" /* 19 */ -#define FC_LANG_TRADITIONAL_CHINESE "traditionalchinese" /* 20 */ -#define FC_LANG_KOREAN_JOHAB "koreanjohab" /* 21 */ -/* 22-28 reserved for Alternate ANSI & OEM */ -#define FC_LANG_MACINTOSH "macintosh" /* 29 */ -#define FC_LANG_OEM "oem" /* 30 */ -#define FC_LANG_SYMBOL "symbol" /* 31 */ -/* 32-47 reserved for OEM */ -#define FC_LANG_IBM_GREEK "ibmgreek" /* 48 */ -#define FC_LANG_MSDOS_RUSSIAN "msdosrussian" /* 49 */ -#define FC_LANG_MSDOS_NORDIC "msdosnordic" /* 50 */ -#define FC_LANG_ARABIC_864 "arabic864" /* 51 */ -#define FC_LANG_MSDOS_CANADIAN_FRENCH "msdoscanadianfrench" /* 52 */ -#define FC_LANG_HEBREW_862 "hebrew862" /* 53 */ -#define FC_LANG_MSDOS_ICELANDIC "msdosicelandic" /* 54 */ -#define FC_LANG_MSDOS_PORTUGUESE "msdosportuguese" /* 55 */ -#define FC_LANG_IBM_TURKISH "ibmturkish" /* 56 */ -#define FC_LANG_IBM_CYRILLIC "ibmcyrillic" /* 57 */ -#define FC_LANG_LATIN_2 "latin2" /* 58 */ -#define FC_LANG_MSDOS_BALTIC "msdosbaltic" /* 59 */ -#define FC_LANG_GREEK_437_G "greek437g" /* 60 */ -#define FC_LANG_ARABIC_ASMO_708 "arabicasmo708" /* 61 */ -#define FC_LANG_WE_LATIN_1 "welatin1" /* 62 */ -#define FC_LANG_US "us" /* 63 */ - +#define FC_RGBA_NONE 5 + +/* hinting style */ +#define FC_HINT_NONE 0 +#define FC_HINT_SLIGHT 1 +#define FC_HINT_MEDIUM 2 +#define FC_HINT_FULL 3 + typedef enum _FcType { FcTypeVoid, FcTypeInteger, @@ -145,7 +169,9 @@ typedef enum _FcType { FcTypeString, FcTypeBool, FcTypeMatrix, - FcTypeCharSet + FcTypeCharSet, + FcTypeFTFace, + FcTypeLangSet } FcType; typedef struct _FcMatrix { @@ -174,9 +200,14 @@ typedef struct _FcConstant { } FcConstant; typedef enum _FcResult { - FcResultMatch, FcResultNoMatch, FcResultTypeMismatch, FcResultNoId + FcResultMatch, FcResultNoMatch, FcResultTypeMismatch, FcResultNoId, + FcResultOutOfMemory } FcResult; +typedef struct _FcPattern FcPattern; + +typedef struct _FcLangSet FcLangSet; + typedef struct _FcValue { FcType type; union { @@ -186,11 +217,12 @@ typedef struct _FcValue { double d; const FcMatrix *m; const FcCharSet *c; + void *f; + const FcPattern *p; + const FcLangSet *l; } u; } FcValue; -typedef struct _FcPattern FcPattern; - typedef struct _FcFontSet { int nfont; int sfont; @@ -204,9 +236,13 @@ typedef struct _FcObjectSet { } FcObjectSet; typedef enum _FcMatchKind { - FcMatchPattern, FcMatchFont + FcMatchPattern, FcMatchFont } FcMatchKind; +typedef enum _FcLangResult { + FcLangEqual, FcLangDifferentCountry, FcLangDifferentLang +} FcLangResult; + typedef enum _FcSetName { FcSetSystem = 0, FcSetApplication = 1 @@ -222,14 +258,23 @@ typedef struct _FcAtomic FcAtomic; #define _FCFUNCPROTOEND #endif +typedef enum { FcEndianBig, FcEndianLittle } FcEndian; + typedef struct _FcConfig FcConfig; -typedef struct _FcFileCache FcFileCache; +typedef struct _FcGlobalCache FcFileCache; typedef struct _FcBlanks FcBlanks; +typedef struct _FcStrList FcStrList; + +typedef struct _FcStrSet FcStrSet; + _FCFUNCPROTOBEGIN +FcBool +FcDirCacheValid (const FcChar8 *cache_file); + /* fcblanks.c */ FcBlanks * FcBlanksCreate (void); @@ -244,6 +289,12 @@ FcBool FcBlanksIsMember (FcBlanks *b, FcChar32 ucs4); /* fccfg.c */ +FcChar8 * +FcConfigHome (void); + +FcBool +FcConfigEnableHome (FcBool enable); + FcChar8 * FcConfigFilename (const FcChar8 *url); @@ -259,13 +310,19 @@ FcConfigSetCurrent (FcConfig *config); FcConfig * FcConfigGetCurrent (void); +FcBool +FcConfigUptoDate (FcConfig *config); + FcBool FcConfigBuildFonts (FcConfig *config); -FcChar8 ** -FcConfigGetDirs (FcConfig *config); +FcStrList * +FcConfigGetFontDirs (FcConfig *config); + +FcStrList * +FcConfigGetConfigDirs (FcConfig *config); -FcChar8 ** +FcStrList * FcConfigGetConfigFiles (FcConfig *config); FcChar8 * @@ -274,6 +331,12 @@ FcConfigGetCache (FcConfig *config); FcBlanks * FcConfigGetBlanks (FcConfig *config); +int +FcConfigGetRescanInverval (FcConfig *config); + +FcBool +FcConfigSetRescanInverval (FcConfig *config, int rescanInterval); + FcFontSet * FcConfigGetFonts (FcConfig *config, FcSetName set); @@ -289,6 +352,12 @@ FcConfigAppFontAddDir (FcConfig *config, void FcConfigAppFontClear (FcConfig *config); +FcBool +FcConfigSubstituteWithPat (FcConfig *config, + FcPattern *p, + FcPattern *p_pat, + FcMatchKind kind); + FcBool FcConfigSubstitute (FcConfig *config, FcPattern *p, @@ -331,18 +400,32 @@ FcCharSetIntersectCount (const FcCharSet *a, const FcCharSet *b); FcChar32 FcCharSetSubtractCount (const FcCharSet *a, const FcCharSet *b); +FcBool +FcCharSetIsSubset (const FcCharSet *a, const FcCharSet *b); + +#define FC_CHARSET_MAP_SIZE (256/32) +#define FC_CHARSET_DONE ((FcChar32) -1) + +FcChar32 +FcCharSetFirstPage (const FcCharSet *a, + FcChar32 map[FC_CHARSET_MAP_SIZE], + FcChar32 *next); + FcChar32 -FcCharSetCoverage (const FcCharSet *a, FcChar32 page, FcChar32 *result); +FcCharSetNextPage (const FcCharSet *a, + FcChar32 map[FC_CHARSET_MAP_SIZE], + FcChar32 *next); + /* fcdbg.c */ void -FcValuePrint (FcValue v); +FcValuePrint (const FcValue v); void -FcPatternPrint (FcPattern *p); +FcPatternPrint (const FcPattern *p); void -FcFontSetPrint (FcFontSet *s); +FcFontSetPrint (const FcFontSet *s); /* fcdefault.c */ void @@ -351,6 +434,7 @@ FcDefaultSubstitute (FcPattern *pattern); /* fcdir.c */ FcBool FcFileScan (FcFontSet *set, + FcStrSet *dirs, FcFileCache *cache, FcBlanks *blanks, const FcChar8 *file, @@ -358,13 +442,14 @@ FcFileScan (FcFontSet *set, FcBool FcDirScan (FcFontSet *set, + FcStrSet *dirs, FcFileCache *cache, FcBlanks *blanks, const FcChar8 *dir, FcBool force); FcBool -FcDirSave (FcFontSet *set, const FcChar8 *dir); +FcDirSave (FcFontSet *set, FcStrSet *dirs, const FcChar8 *dir); /* fcfreetype.c */ FcPattern * @@ -382,14 +467,54 @@ FcBool FcFontSetAdd (FcFontSet *s, FcPattern *font); /* fcinit.c */ +FcConfig * +FcInitLoadConfig (void); + +FcConfig * +FcInitLoadConfigAndFonts (void); + +FcBool +FcInit (void); + +void +FcFini (void); + +int +FcGetVersion (void); + FcBool -FcInitFonts (void); +FcInitReinitialize (void); FcBool -FcInitConfig (void); +FcInitBringUptoDate (void); + +/* fclang.c */ +FcLangSet * +FcLangSetCreate (void); + +void +FcLangSetDestroy (FcLangSet *ls); + +FcLangSet * +FcLangSetCopy (const FcLangSet *ls); FcBool -FcInit (void); +FcLangSetAdd (FcLangSet *ls, const FcChar8 *lang); + +FcLangResult +FcLangSetHasLang (const FcLangSet *ls, const FcChar8 *lang); + +FcLangResult +FcLangSetCompare (const FcLangSet *lsa, const FcLangSet *lsb); + +FcBool +FcLangSetContains (const FcLangSet *lsa, const FcLangSet *lsb); + +FcBool +FcLangSetEqual (const FcLangSet *lsa, const FcLangSet *lsb); + +FcChar32 +FcLangSetHash (const FcLangSet *ls); /* fclist.c */ FcObjectSet * @@ -405,7 +530,7 @@ FcObjectSet * FcObjectSetVaBuild (const char *first, va_list va); FcObjectSet * -FcObjectSetBuild (const char *first, ...); +FcObjectSetBuild (const char *first, ...) FC_ATTRIBUTE_SENTINEL(0); FcFontSet * FcFontSetList (FcConfig *config, @@ -458,6 +583,30 @@ FcFontMatch (FcConfig *config, FcPattern *p, FcResult *result); +FcPattern * +FcFontRenderPrepare (FcConfig *config, + FcPattern *pat, + FcPattern *font); + +FcFontSet * +FcFontSetSort (FcConfig *config, + FcFontSet **sets, + int nsets, + FcPattern *p, + FcBool trim, + FcCharSet **csp, + FcResult *result); + +FcFontSet * +FcFontSort (FcConfig *config, + FcPattern *p, + FcBool trim, + FcCharSet **csp, + FcResult *result); + +void +FcFontSetSortDestroy (FcFontSet *fs); + /* fcmatrix.c */ FcMatrix * FcMatrixCopy (const FcMatrix *mat); @@ -511,26 +660,47 @@ FcPattern * FcPatternCreate (void); FcPattern * -FcPatternDuplicate (FcPattern *p); +FcPatternDuplicate (const FcPattern *p); + +void +FcPatternReference (FcPattern *p); void FcValueDestroy (FcValue v); +FcBool +FcValueEqual (FcValue va, FcValue vb); + FcValue FcValueSave (FcValue v); void FcPatternDestroy (FcPattern *p); +FcBool +FcPatternEqual (const FcPattern *pa, const FcPattern *pb); + +FcBool +FcPatternEqualSubset (const FcPattern *pa, const FcPattern *pb, const FcObjectSet *os); + +FcChar32 +FcPatternHash (const FcPattern *p); + FcBool FcPatternAdd (FcPattern *p, const char *object, FcValue value, FcBool append); +FcBool +FcPatternAddWeak (FcPattern *p, const char *object, FcValue value, FcBool append); + FcResult -FcPatternGet (FcPattern *p, const char *object, int id, FcValue *v); +FcPatternGet (const FcPattern *p, const char *object, int id, FcValue *v); FcBool FcPatternDel (FcPattern *p, const char *object); +FcBool +FcPatternRemove (FcPattern *p, const char *object, int id); + FcBool FcPatternAddInteger (FcPattern *p, const char *object, int i); @@ -549,50 +719,129 @@ FcPatternAddCharSet (FcPattern *p, const char *object, const FcCharSet *c); FcBool FcPatternAddBool (FcPattern *p, const char *object, FcBool b); +FcBool +FcPatternAddLangSet (FcPattern *p, const char *object, const FcLangSet *ls); + +FcResult +FcPatternGetInteger (const FcPattern *p, const char *object, int n, int *i); + FcResult -FcPatternGetInteger (FcPattern *p, const char *object, int n, int *i); +FcPatternGetDouble (const FcPattern *p, const char *object, int n, double *d); FcResult -FcPatternGetDouble (FcPattern *p, const char *object, int n, double *d); +FcPatternGetString (const FcPattern *p, const char *object, int n, FcChar8 ** s); FcResult -FcPatternGetString (FcPattern *p, const char *object, int n, FcChar8 ** s); +FcPatternGetMatrix (const FcPattern *p, const char *object, int n, FcMatrix **s); FcResult -FcPatternGetMatrix (FcPattern *p, const char *object, int n, FcMatrix **s); +FcPatternGetCharSet (const FcPattern *p, const char *object, int n, FcCharSet **c); FcResult -FcPatternGetCharSet (FcPattern *p, const char *object, int n, FcCharSet **c); +FcPatternGetBool (const FcPattern *p, const char *object, int n, FcBool *b); FcResult -FcPatternGetBool (FcPattern *p, const char *object, int n, FcBool *b); +FcPatternGetLangSet (const FcPattern *p, const char *object, int n, FcLangSet **ls); FcPattern * FcPatternVaBuild (FcPattern *orig, va_list va); FcPattern * -FcPatternBuild (FcPattern *orig, ...); +FcPatternBuild (FcPattern *orig, ...) FC_ATTRIBUTE_SENTINEL(0); /* fcstr.c */ FcChar8 * FcStrCopy (const FcChar8 *s); -#define FcToLower(c) (('A' <= (c) && (c) <= 'Z') ? (c) - 'A' + 'a' : (c)) +FcChar8 * +FcStrCopyFilename (const FcChar8 *s); + +/* These are ASCII only, suitable only for pattern element names */ +#define FcIsUpper(c) ((0101 <= (c) && (c) <= 0132)) +#define FcIsLower(c) ((0141 <= (c) && (c) <= 0172)) +#define FcToLower(c) (FcIsUpper(c) ? (c) - 0101 + 0141 : (c)) + +FcChar8 * +FcStrDowncase (const FcChar8 *s); int FcStrCmpIgnoreCase (const FcChar8 *s1, const FcChar8 *s2); int -FcUtf8ToUcs4 (FcChar8 *src_orig, - FcChar32 *dst, - int len); +FcStrCmp (const FcChar8 *s1, const FcChar8 *s2); + +const FcChar8 * +FcStrStrIgnoreCase (const FcChar8 *s1, const FcChar8 *s2); + +const FcChar8 * +FcStrStr (const FcChar8 *s1, const FcChar8 *s2); + +int +FcUtf8ToUcs4 (const FcChar8 *src_orig, + FcChar32 *dst, + int len); + +FcBool +FcUtf8Len (const FcChar8 *string, + int len, + int *nchar, + int *wchar); + +#define FC_UTF8_MAX_LEN 6 + +int +FcUcs4ToUtf8 (FcChar32 ucs4, + FcChar8 dest[FC_UTF8_MAX_LEN]); + +int +FcUtf16ToUcs4 (const FcChar8 *src_orig, + FcEndian endian, + FcChar32 *dst, + int len); /* in bytes */ + +FcBool +FcUtf16Len (const FcChar8 *string, + FcEndian endian, + int len, /* in bytes */ + int *nchar, + int *wchar); + +FcChar8 * +FcStrDirname (const FcChar8 *file); + +FcChar8 * +FcStrBasename (const FcChar8 *file); + +FcStrSet * +FcStrSetCreate (void); FcBool -FcUtf8Len (FcChar8 *string, - int len, - int *nchar, - int *wchar); +FcStrSetMember (FcStrSet *set, const FcChar8 *s); + +FcBool +FcStrSetEqual (FcStrSet *sa, FcStrSet *sb); + +FcBool +FcStrSetAdd (FcStrSet *set, const FcChar8 *s); + +FcBool +FcStrSetAddFilename (FcStrSet *set, const FcChar8 *s); + +FcBool +FcStrSetDel (FcStrSet *set, const FcChar8 *s); + +void +FcStrSetDestroy (FcStrSet *set); + +FcStrList * +FcStrListCreate (FcStrSet *set); + +FcChar8 * +FcStrListNext (FcStrList *list); + +void +FcStrListDone (FcStrList *list); /* fcxml.c */ FcBool @@ -600,4 +849,6 @@ FcConfigParseAndLoad (FcConfig *config, const FcChar8 *file, FcBool complain); _FCFUNCPROTOEND +#undef FC_ATTRIBUTE_SENTINEL + #endif /* _FONTCONFIG_H_ */