jpayne@69: /* jpayne@69: * fontconfig/fontconfig/fontconfig.h jpayne@69: * jpayne@69: * Copyright © 2001 Keith Packard jpayne@69: * jpayne@69: * Permission to use, copy, modify, distribute, and sell this software and its jpayne@69: * documentation for any purpose is hereby granted without fee, provided that jpayne@69: * the above copyright notice appear in all copies and that both that jpayne@69: * copyright notice and this permission notice appear in supporting jpayne@69: * documentation, and that the name of the author(s) not be used in jpayne@69: * advertising or publicity pertaining to distribution of the software without jpayne@69: * specific, written prior permission. The authors make no jpayne@69: * representations about the suitability of this software for any purpose. It jpayne@69: * is provided "as is" without express or implied warranty. jpayne@69: * jpayne@69: * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, jpayne@69: * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO jpayne@69: * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR jpayne@69: * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, jpayne@69: * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER jpayne@69: * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR jpayne@69: * PERFORMANCE OF THIS SOFTWARE. jpayne@69: */ jpayne@69: jpayne@69: #ifndef _FONTCONFIG_H_ jpayne@69: #define _FONTCONFIG_H_ jpayne@69: jpayne@69: #include jpayne@69: #include jpayne@69: #include jpayne@69: #include jpayne@69: jpayne@69: #if defined(__GNUC__) && (__GNUC__ >= 4) jpayne@69: #define FC_ATTRIBUTE_SENTINEL(x) __attribute__((__sentinel__(0))) jpayne@69: #else jpayne@69: #define FC_ATTRIBUTE_SENTINEL(x) jpayne@69: #endif jpayne@69: jpayne@69: #ifndef FcPublic jpayne@69: #define FcPublic jpayne@69: #endif jpayne@69: jpayne@69: typedef unsigned char FcChar8; jpayne@69: typedef unsigned short FcChar16; jpayne@69: typedef unsigned int FcChar32; jpayne@69: typedef int FcBool; jpayne@69: jpayne@69: /* jpayne@69: * Current Fontconfig version number. This same number jpayne@69: * must appear in the fontconfig configure.in file. Yes, jpayne@69: * it'a a pain to synchronize version numbers like this. jpayne@69: */ jpayne@69: jpayne@69: #define FC_MAJOR 2 jpayne@69: #define FC_MINOR 14 jpayne@69: #define FC_REVISION 2 jpayne@69: jpayne@69: #define FC_VERSION ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION)) jpayne@69: jpayne@69: /* jpayne@69: * Current font cache file format version jpayne@69: * This is appended to the cache files so that multiple jpayne@69: * versions of the library will peacefully coexist jpayne@69: * jpayne@69: * Change this value whenever the disk format for the cache file jpayne@69: * changes in any non-compatible way. Try to avoid such changes as jpayne@69: * it means multiple copies of the font information. jpayne@69: */ jpayne@69: jpayne@69: #define FC_CACHE_VERSION_NUMBER 8 jpayne@69: #define _FC_STRINGIFY_(s) #s jpayne@69: #define _FC_STRINGIFY(s) _FC_STRINGIFY_(s) jpayne@69: #define FC_CACHE_VERSION _FC_STRINGIFY(FC_CACHE_VERSION_NUMBER) jpayne@69: jpayne@69: #define FcFalse 0 jpayne@69: #define FcTrue 1 jpayne@69: #define FcDontCare 2 jpayne@69: jpayne@69: #define FC_FAMILY "family" /* String */ jpayne@69: #define FC_STYLE "style" /* String */ jpayne@69: #define FC_SLANT "slant" /* Int */ jpayne@69: #define FC_WEIGHT "weight" /* Int */ jpayne@69: #define FC_SIZE "size" /* Range (double) */ jpayne@69: #define FC_ASPECT "aspect" /* Double */ jpayne@69: #define FC_PIXEL_SIZE "pixelsize" /* Double */ jpayne@69: #define FC_SPACING "spacing" /* Int */ jpayne@69: #define FC_FOUNDRY "foundry" /* String */ jpayne@69: #define FC_ANTIALIAS "antialias" /* Bool (depends) */ jpayne@69: #define FC_HINTING "hinting" /* Bool (true) */ jpayne@69: #define FC_HINT_STYLE "hintstyle" /* Int */ jpayne@69: #define FC_VERTICAL_LAYOUT "verticallayout" /* Bool (false) */ jpayne@69: #define FC_AUTOHINT "autohint" /* Bool (false) */ jpayne@69: /* FC_GLOBAL_ADVANCE is deprecated. this is simply ignored on freetype 2.4.5 or later */ jpayne@69: #define FC_GLOBAL_ADVANCE "globaladvance" /* Bool (true) */ jpayne@69: #define FC_WIDTH "width" /* Int */ jpayne@69: #define FC_FILE "file" /* String */ jpayne@69: #define FC_INDEX "index" /* Int */ jpayne@69: #define FC_FT_FACE "ftface" /* FT_Face */ jpayne@69: #define FC_RASTERIZER "rasterizer" /* String (deprecated) */ jpayne@69: #define FC_OUTLINE "outline" /* Bool */ jpayne@69: #define FC_SCALABLE "scalable" /* Bool */ jpayne@69: #define FC_COLOR "color" /* Bool */ jpayne@69: #define FC_VARIABLE "variable" /* Bool */ jpayne@69: #define FC_SCALE "scale" /* double (deprecated) */ jpayne@69: #define FC_SYMBOL "symbol" /* Bool */ jpayne@69: #define FC_DPI "dpi" /* double */ jpayne@69: #define FC_RGBA "rgba" /* Int */ jpayne@69: #define FC_MINSPACE "minspace" /* Bool use minimum line spacing */ jpayne@69: #define FC_SOURCE "source" /* String (deprecated) */ jpayne@69: #define FC_CHARSET "charset" /* CharSet */ jpayne@69: #define FC_LANG "lang" /* LangSet Set of RFC 3066 langs */ jpayne@69: #define FC_FONTVERSION "fontversion" /* Int from 'head' table */ jpayne@69: #define FC_FULLNAME "fullname" /* String */ jpayne@69: #define FC_FAMILYLANG "familylang" /* String RFC 3066 langs */ jpayne@69: #define FC_STYLELANG "stylelang" /* String RFC 3066 langs */ jpayne@69: #define FC_FULLNAMELANG "fullnamelang" /* String RFC 3066 langs */ jpayne@69: #define FC_CAPABILITY "capability" /* String */ jpayne@69: #define FC_FONTFORMAT "fontformat" /* String */ jpayne@69: #define FC_EMBOLDEN "embolden" /* Bool - true if emboldening needed*/ jpayne@69: #define FC_EMBEDDED_BITMAP "embeddedbitmap" /* Bool - true to enable embedded bitmaps */ jpayne@69: #define FC_DECORATIVE "decorative" /* Bool - true if style is a decorative variant */ jpayne@69: #define FC_LCD_FILTER "lcdfilter" /* Int */ jpayne@69: #define FC_FONT_FEATURES "fontfeatures" /* String */ jpayne@69: #define FC_FONT_VARIATIONS "fontvariations" /* String */ jpayne@69: #define FC_NAMELANG "namelang" /* String RFC 3866 langs */ jpayne@69: #define FC_PRGNAME "prgname" /* String */ jpayne@69: #define FC_HASH "hash" /* String (deprecated) */ jpayne@69: #define FC_POSTSCRIPT_NAME "postscriptname" /* String */ jpayne@69: #define FC_FONT_HAS_HINT "fonthashint" /* Bool - true if font has hinting */ jpayne@69: #define FC_ORDER "order" /* Integer */ jpayne@69: #define FC_DESKTOP_NAME "desktop" /* String */ jpayne@69: jpayne@69: #define FC_CACHE_SUFFIX ".cache-" FC_CACHE_VERSION jpayne@69: #define FC_DIR_CACHE_FILE "fonts.cache-" FC_CACHE_VERSION jpayne@69: #define FC_USER_CACHE_FILE ".fonts.cache-" FC_CACHE_VERSION jpayne@69: jpayne@69: /* Adjust outline rasterizer */ jpayne@69: #define FC_CHARWIDTH "charwidth" /* Int */ jpayne@69: #define FC_CHAR_WIDTH FC_CHARWIDTH jpayne@69: #define FC_CHAR_HEIGHT "charheight"/* Int */ jpayne@69: #define FC_MATRIX "matrix" /* FcMatrix */ jpayne@69: jpayne@69: #define FC_WEIGHT_THIN 0 jpayne@69: #define FC_WEIGHT_EXTRALIGHT 40 jpayne@69: #define FC_WEIGHT_ULTRALIGHT FC_WEIGHT_EXTRALIGHT jpayne@69: #define FC_WEIGHT_LIGHT 50 jpayne@69: #define FC_WEIGHT_DEMILIGHT 55 jpayne@69: #define FC_WEIGHT_SEMILIGHT FC_WEIGHT_DEMILIGHT jpayne@69: #define FC_WEIGHT_BOOK 75 jpayne@69: #define FC_WEIGHT_REGULAR 80 jpayne@69: #define FC_WEIGHT_NORMAL FC_WEIGHT_REGULAR jpayne@69: #define FC_WEIGHT_MEDIUM 100 jpayne@69: #define FC_WEIGHT_DEMIBOLD 180 jpayne@69: #define FC_WEIGHT_SEMIBOLD FC_WEIGHT_DEMIBOLD jpayne@69: #define FC_WEIGHT_BOLD 200 jpayne@69: #define FC_WEIGHT_EXTRABOLD 205 jpayne@69: #define FC_WEIGHT_ULTRABOLD FC_WEIGHT_EXTRABOLD jpayne@69: #define FC_WEIGHT_BLACK 210 jpayne@69: #define FC_WEIGHT_HEAVY FC_WEIGHT_BLACK jpayne@69: #define FC_WEIGHT_EXTRABLACK 215 jpayne@69: #define FC_WEIGHT_ULTRABLACK FC_WEIGHT_EXTRABLACK jpayne@69: jpayne@69: #define FC_SLANT_ROMAN 0 jpayne@69: #define FC_SLANT_ITALIC 100 jpayne@69: #define FC_SLANT_OBLIQUE 110 jpayne@69: jpayne@69: #define FC_WIDTH_ULTRACONDENSED 50 jpayne@69: #define FC_WIDTH_EXTRACONDENSED 63 jpayne@69: #define FC_WIDTH_CONDENSED 75 jpayne@69: #define FC_WIDTH_SEMICONDENSED 87 jpayne@69: #define FC_WIDTH_NORMAL 100 jpayne@69: #define FC_WIDTH_SEMIEXPANDED 113 jpayne@69: #define FC_WIDTH_EXPANDED 125 jpayne@69: #define FC_WIDTH_EXTRAEXPANDED 150 jpayne@69: #define FC_WIDTH_ULTRAEXPANDED 200 jpayne@69: jpayne@69: #define FC_PROPORTIONAL 0 jpayne@69: #define FC_DUAL 90 jpayne@69: #define FC_MONO 100 jpayne@69: #define FC_CHARCELL 110 jpayne@69: jpayne@69: /* sub-pixel order */ jpayne@69: #define FC_RGBA_UNKNOWN 0 jpayne@69: #define FC_RGBA_RGB 1 jpayne@69: #define FC_RGBA_BGR 2 jpayne@69: #define FC_RGBA_VRGB 3 jpayne@69: #define FC_RGBA_VBGR 4 jpayne@69: #define FC_RGBA_NONE 5 jpayne@69: jpayne@69: /* hinting style */ jpayne@69: #define FC_HINT_NONE 0 jpayne@69: #define FC_HINT_SLIGHT 1 jpayne@69: #define FC_HINT_MEDIUM 2 jpayne@69: #define FC_HINT_FULL 3 jpayne@69: jpayne@69: /* LCD filter */ jpayne@69: #define FC_LCD_NONE 0 jpayne@69: #define FC_LCD_DEFAULT 1 jpayne@69: #define FC_LCD_LIGHT 2 jpayne@69: #define FC_LCD_LEGACY 3 jpayne@69: jpayne@69: typedef enum _FcType { jpayne@69: FcTypeUnknown = -1, jpayne@69: FcTypeVoid, jpayne@69: FcTypeInteger, jpayne@69: FcTypeDouble, jpayne@69: FcTypeString, jpayne@69: FcTypeBool, jpayne@69: FcTypeMatrix, jpayne@69: FcTypeCharSet, jpayne@69: FcTypeFTFace, jpayne@69: FcTypeLangSet, jpayne@69: FcTypeRange jpayne@69: } FcType; jpayne@69: jpayne@69: typedef struct _FcMatrix { jpayne@69: double xx, xy, yx, yy; jpayne@69: } FcMatrix; jpayne@69: jpayne@69: #define FcMatrixInit(m) ((m)->xx = (m)->yy = 1, \ jpayne@69: (m)->xy = (m)->yx = 0) jpayne@69: jpayne@69: /* jpayne@69: * A data structure to represent the available glyphs in a font. jpayne@69: * This is represented as a sparse boolean btree. jpayne@69: */ jpayne@69: jpayne@69: typedef struct _FcCharSet FcCharSet; jpayne@69: jpayne@69: typedef struct _FcObjectType { jpayne@69: char *object; jpayne@69: FcType type; jpayne@69: } FcObjectType; jpayne@69: jpayne@69: typedef struct _FcConstant { jpayne@69: const FcChar8 *name; jpayne@69: const char *object; jpayne@69: int value; jpayne@69: } FcConstant; jpayne@69: jpayne@69: typedef enum _FcResult { jpayne@69: FcResultMatch, FcResultNoMatch, FcResultTypeMismatch, FcResultNoId, jpayne@69: FcResultOutOfMemory jpayne@69: } FcResult; jpayne@69: jpayne@69: typedef enum _FcValueBinding { jpayne@69: FcValueBindingWeak, FcValueBindingStrong, FcValueBindingSame, jpayne@69: /* to make sure sizeof (FcValueBinding) == 4 even with -fshort-enums */ jpayne@69: FcValueBindingEnd = INT_MAX jpayne@69: } FcValueBinding; jpayne@69: jpayne@69: typedef struct _FcPattern FcPattern; jpayne@69: jpayne@69: typedef struct _FcPatternIter { jpayne@69: void *dummy1; jpayne@69: void *dummy2; jpayne@69: } FcPatternIter; jpayne@69: jpayne@69: typedef struct _FcLangSet FcLangSet; jpayne@69: jpayne@69: typedef struct _FcRange FcRange; jpayne@69: jpayne@69: typedef struct _FcValue { jpayne@69: FcType type; jpayne@69: union { jpayne@69: const FcChar8 *s; jpayne@69: int i; jpayne@69: FcBool b; jpayne@69: double d; jpayne@69: const FcMatrix *m; jpayne@69: const FcCharSet *c; jpayne@69: void *f; jpayne@69: const FcLangSet *l; jpayne@69: const FcRange *r; jpayne@69: } u; jpayne@69: } FcValue; jpayne@69: jpayne@69: typedef struct _FcFontSet { jpayne@69: int nfont; jpayne@69: int sfont; jpayne@69: FcPattern **fonts; jpayne@69: } FcFontSet; jpayne@69: jpayne@69: typedef struct _FcObjectSet { jpayne@69: int nobject; jpayne@69: int sobject; jpayne@69: const char **objects; jpayne@69: } FcObjectSet; jpayne@69: jpayne@69: typedef enum _FcMatchKind { jpayne@69: FcMatchPattern, FcMatchFont, FcMatchScan, jpayne@69: FcMatchKindEnd, jpayne@69: FcMatchKindBegin = FcMatchPattern jpayne@69: } FcMatchKind; jpayne@69: jpayne@69: typedef enum _FcLangResult { jpayne@69: FcLangEqual = 0, jpayne@69: FcLangDifferentCountry = 1, jpayne@69: FcLangDifferentTerritory = 1, jpayne@69: FcLangDifferentLang = 2 jpayne@69: } FcLangResult; jpayne@69: jpayne@69: typedef enum _FcSetName { jpayne@69: FcSetSystem = 0, jpayne@69: FcSetApplication = 1 jpayne@69: } FcSetName; jpayne@69: jpayne@69: typedef struct _FcConfigFileInfoIter { jpayne@69: void *dummy1; jpayne@69: void *dummy2; jpayne@69: void *dummy3; jpayne@69: } FcConfigFileInfoIter; jpayne@69: jpayne@69: typedef struct _FcAtomic FcAtomic; jpayne@69: jpayne@69: #if defined(__cplusplus) || defined(c_plusplus) /* for C++ V2.0 */ jpayne@69: #define _FCFUNCPROTOBEGIN extern "C" { /* do not leave open across includes */ jpayne@69: #define _FCFUNCPROTOEND } jpayne@69: #else jpayne@69: #define _FCFUNCPROTOBEGIN jpayne@69: #define _FCFUNCPROTOEND jpayne@69: #endif jpayne@69: jpayne@69: typedef enum { FcEndianBig, FcEndianLittle } FcEndian; jpayne@69: jpayne@69: typedef struct _FcConfig FcConfig; jpayne@69: jpayne@69: typedef struct _FcGlobalCache FcFileCache; jpayne@69: jpayne@69: typedef struct _FcBlanks FcBlanks; jpayne@69: jpayne@69: typedef struct _FcStrList FcStrList; jpayne@69: jpayne@69: typedef struct _FcStrSet FcStrSet; jpayne@69: jpayne@69: typedef struct _FcCache FcCache; jpayne@69: jpayne@69: _FCFUNCPROTOBEGIN jpayne@69: jpayne@69: /* fcblanks.c */ jpayne@69: FcPublic FcBlanks * jpayne@69: FcBlanksCreate (void); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcBlanksDestroy (FcBlanks *b); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcBlanksAdd (FcBlanks *b, FcChar32 ucs4); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcBlanksIsMember (FcBlanks *b, FcChar32 ucs4); jpayne@69: jpayne@69: /* fccache.c */ jpayne@69: jpayne@69: FcPublic const FcChar8 * jpayne@69: FcCacheDir(const FcCache *c); jpayne@69: jpayne@69: FcPublic FcFontSet * jpayne@69: FcCacheCopySet(const FcCache *c); jpayne@69: jpayne@69: FcPublic const FcChar8 * jpayne@69: FcCacheSubdir (const FcCache *c, int i); jpayne@69: jpayne@69: FcPublic int jpayne@69: FcCacheNumSubdir (const FcCache *c); jpayne@69: jpayne@69: FcPublic int jpayne@69: FcCacheNumFont (const FcCache *c); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcDirCacheUnlink (const FcChar8 *dir, FcConfig *config); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcDirCacheValid (const FcChar8 *cache_file); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcDirCacheClean (const FcChar8 *cache_dir, FcBool verbose); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcCacheCreateTagFile (FcConfig *config); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcDirCacheCreateUUID (FcChar8 *dir, jpayne@69: FcBool force, jpayne@69: FcConfig *config); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcDirCacheDeleteUUID (const FcChar8 *dir, jpayne@69: FcConfig *config); jpayne@69: jpayne@69: /* fccfg.c */ jpayne@69: FcPublic FcChar8 * jpayne@69: FcConfigHome (void); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcConfigEnableHome (FcBool enable); jpayne@69: jpayne@69: FcPublic FcChar8 * jpayne@69: FcConfigGetFilename (FcConfig *config, jpayne@69: const FcChar8 *url); jpayne@69: jpayne@69: FcPublic FcChar8 * jpayne@69: FcConfigFilename (const FcChar8 *url); jpayne@69: jpayne@69: FcPublic FcConfig * jpayne@69: FcConfigCreate (void); jpayne@69: jpayne@69: FcPublic FcConfig * jpayne@69: FcConfigReference (FcConfig *config); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcConfigDestroy (FcConfig *config); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcConfigSetCurrent (FcConfig *config); jpayne@69: jpayne@69: FcPublic FcConfig * jpayne@69: FcConfigGetCurrent (void); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcConfigUptoDate (FcConfig *config); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcConfigBuildFonts (FcConfig *config); jpayne@69: jpayne@69: FcPublic FcStrList * jpayne@69: FcConfigGetFontDirs (FcConfig *config); jpayne@69: jpayne@69: FcPublic FcStrList * jpayne@69: FcConfigGetConfigDirs (FcConfig *config); jpayne@69: jpayne@69: FcPublic FcStrList * jpayne@69: FcConfigGetConfigFiles (FcConfig *config); jpayne@69: jpayne@69: FcPublic FcChar8 * jpayne@69: FcConfigGetCache (FcConfig *config); jpayne@69: jpayne@69: FcPublic FcBlanks * jpayne@69: FcConfigGetBlanks (FcConfig *config); jpayne@69: jpayne@69: FcPublic FcStrList * jpayne@69: FcConfigGetCacheDirs (FcConfig *config); jpayne@69: jpayne@69: FcPublic int jpayne@69: FcConfigGetRescanInterval (FcConfig *config); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcConfigSetRescanInterval (FcConfig *config, int rescanInterval); jpayne@69: jpayne@69: FcPublic FcFontSet * jpayne@69: FcConfigGetFonts (FcConfig *config, jpayne@69: FcSetName set); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcConfigAppFontAddFile (FcConfig *config, jpayne@69: const FcChar8 *file); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcConfigAppFontAddDir (FcConfig *config, jpayne@69: const FcChar8 *dir); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcConfigAppFontClear (FcConfig *config); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcConfigSubstituteWithPat (FcConfig *config, jpayne@69: FcPattern *p, jpayne@69: FcPattern *p_pat, jpayne@69: FcMatchKind kind); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcConfigSubstitute (FcConfig *config, jpayne@69: FcPattern *p, jpayne@69: FcMatchKind kind); jpayne@69: jpayne@69: FcPublic const FcChar8 * jpayne@69: FcConfigGetSysRoot (const FcConfig *config); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcConfigSetSysRoot (FcConfig *config, jpayne@69: const FcChar8 *sysroot); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcConfigFileInfoIterInit (FcConfig *config, jpayne@69: FcConfigFileInfoIter *iter); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcConfigFileInfoIterNext (FcConfig *config, jpayne@69: FcConfigFileInfoIter *iter); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcConfigFileInfoIterGet (FcConfig *config, jpayne@69: FcConfigFileInfoIter *iter, jpayne@69: FcChar8 **name, jpayne@69: FcChar8 **description, jpayne@69: FcBool *enabled); jpayne@69: jpayne@69: /* fccharset.c */ jpayne@69: FcPublic FcCharSet* jpayne@69: FcCharSetCreate (void); jpayne@69: jpayne@69: /* deprecated alias for FcCharSetCreate */ jpayne@69: FcPublic FcCharSet * jpayne@69: FcCharSetNew (void); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcCharSetDestroy (FcCharSet *fcs); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcCharSetAddChar (FcCharSet *fcs, FcChar32 ucs4); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcCharSetDelChar (FcCharSet *fcs, FcChar32 ucs4); jpayne@69: jpayne@69: FcPublic FcCharSet* jpayne@69: FcCharSetCopy (FcCharSet *src); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcCharSetEqual (const FcCharSet *a, const FcCharSet *b); jpayne@69: jpayne@69: FcPublic FcCharSet* jpayne@69: FcCharSetIntersect (const FcCharSet *a, const FcCharSet *b); jpayne@69: jpayne@69: FcPublic FcCharSet* jpayne@69: FcCharSetUnion (const FcCharSet *a, const FcCharSet *b); jpayne@69: jpayne@69: FcPublic FcCharSet* jpayne@69: FcCharSetSubtract (const FcCharSet *a, const FcCharSet *b); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcCharSetMerge (FcCharSet *a, const FcCharSet *b, FcBool *changed); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcCharSetHasChar (const FcCharSet *fcs, FcChar32 ucs4); jpayne@69: jpayne@69: FcPublic FcChar32 jpayne@69: FcCharSetCount (const FcCharSet *a); jpayne@69: jpayne@69: FcPublic FcChar32 jpayne@69: FcCharSetIntersectCount (const FcCharSet *a, const FcCharSet *b); jpayne@69: jpayne@69: FcPublic FcChar32 jpayne@69: FcCharSetSubtractCount (const FcCharSet *a, const FcCharSet *b); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcCharSetIsSubset (const FcCharSet *a, const FcCharSet *b); jpayne@69: jpayne@69: #define FC_CHARSET_MAP_SIZE (256/32) jpayne@69: #define FC_CHARSET_DONE ((FcChar32) -1) jpayne@69: jpayne@69: FcPublic FcChar32 jpayne@69: FcCharSetFirstPage (const FcCharSet *a, jpayne@69: FcChar32 map[FC_CHARSET_MAP_SIZE], jpayne@69: FcChar32 *next); jpayne@69: jpayne@69: FcPublic FcChar32 jpayne@69: FcCharSetNextPage (const FcCharSet *a, jpayne@69: FcChar32 map[FC_CHARSET_MAP_SIZE], jpayne@69: FcChar32 *next); jpayne@69: jpayne@69: /* jpayne@69: * old coverage API, rather hard to use correctly jpayne@69: */ jpayne@69: jpayne@69: FcPublic FcChar32 jpayne@69: FcCharSetCoverage (const FcCharSet *a, FcChar32 page, FcChar32 *result); jpayne@69: jpayne@69: /* fcdbg.c */ jpayne@69: FcPublic void jpayne@69: FcValuePrint (const FcValue v); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcPatternPrint (const FcPattern *p); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcFontSetPrint (const FcFontSet *s); jpayne@69: jpayne@69: /* fcdefault.c */ jpayne@69: FcPublic FcStrSet * jpayne@69: FcGetDefaultLangs (void); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcDefaultSubstitute (FcPattern *pattern); jpayne@69: jpayne@69: /* fcdir.c */ jpayne@69: FcPublic FcBool jpayne@69: FcFileIsDir (const FcChar8 *file); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcFileScan (FcFontSet *set, jpayne@69: FcStrSet *dirs, jpayne@69: FcFileCache *cache, jpayne@69: FcBlanks *blanks, jpayne@69: const FcChar8 *file, jpayne@69: FcBool force); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcDirScan (FcFontSet *set, jpayne@69: FcStrSet *dirs, jpayne@69: FcFileCache *cache, jpayne@69: FcBlanks *blanks, jpayne@69: const FcChar8 *dir, jpayne@69: FcBool force); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcDirSave (FcFontSet *set, FcStrSet *dirs, const FcChar8 *dir); jpayne@69: jpayne@69: FcPublic FcCache * jpayne@69: FcDirCacheLoad (const FcChar8 *dir, FcConfig *config, FcChar8 **cache_file); jpayne@69: jpayne@69: FcPublic FcCache * jpayne@69: FcDirCacheRescan (const FcChar8 *dir, FcConfig *config); jpayne@69: jpayne@69: FcPublic FcCache * jpayne@69: FcDirCacheRead (const FcChar8 *dir, FcBool force, FcConfig *config); jpayne@69: jpayne@69: FcPublic FcCache * jpayne@69: FcDirCacheLoadFile (const FcChar8 *cache_file, struct stat *file_stat); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcDirCacheUnload (FcCache *cache); jpayne@69: jpayne@69: /* fcfreetype.c */ jpayne@69: FcPublic FcPattern * jpayne@69: FcFreeTypeQuery (const FcChar8 *file, unsigned int id, FcBlanks *blanks, int *count); jpayne@69: jpayne@69: FcPublic unsigned int jpayne@69: FcFreeTypeQueryAll(const FcChar8 *file, unsigned int id, FcBlanks *blanks, int *count, FcFontSet *set); jpayne@69: jpayne@69: /* fcfs.c */ jpayne@69: jpayne@69: FcPublic FcFontSet * jpayne@69: FcFontSetCreate (void); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcFontSetDestroy (FcFontSet *s); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcFontSetAdd (FcFontSet *s, FcPattern *font); jpayne@69: jpayne@69: /* fcinit.c */ jpayne@69: FcPublic FcConfig * jpayne@69: FcInitLoadConfig (void); jpayne@69: jpayne@69: FcPublic FcConfig * jpayne@69: FcInitLoadConfigAndFonts (void); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcInit (void); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcFini (void); jpayne@69: jpayne@69: FcPublic int jpayne@69: FcGetVersion (void); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcInitReinitialize (void); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcInitBringUptoDate (void); jpayne@69: jpayne@69: /* fclang.c */ jpayne@69: FcPublic FcStrSet * jpayne@69: FcGetLangs (void); jpayne@69: jpayne@69: FcPublic FcChar8 * jpayne@69: FcLangNormalize (const FcChar8 *lang); jpayne@69: jpayne@69: FcPublic const FcCharSet * jpayne@69: FcLangGetCharSet (const FcChar8 *lang); jpayne@69: jpayne@69: FcPublic FcLangSet* jpayne@69: FcLangSetCreate (void); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcLangSetDestroy (FcLangSet *ls); jpayne@69: jpayne@69: FcPublic FcLangSet* jpayne@69: FcLangSetCopy (const FcLangSet *ls); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcLangSetAdd (FcLangSet *ls, const FcChar8 *lang); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcLangSetDel (FcLangSet *ls, const FcChar8 *lang); jpayne@69: jpayne@69: FcPublic FcLangResult jpayne@69: FcLangSetHasLang (const FcLangSet *ls, const FcChar8 *lang); jpayne@69: jpayne@69: FcPublic FcLangResult jpayne@69: FcLangSetCompare (const FcLangSet *lsa, const FcLangSet *lsb); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcLangSetContains (const FcLangSet *lsa, const FcLangSet *lsb); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcLangSetEqual (const FcLangSet *lsa, const FcLangSet *lsb); jpayne@69: jpayne@69: FcPublic FcChar32 jpayne@69: FcLangSetHash (const FcLangSet *ls); jpayne@69: jpayne@69: FcPublic FcStrSet * jpayne@69: FcLangSetGetLangs (const FcLangSet *ls); jpayne@69: jpayne@69: FcPublic FcLangSet * jpayne@69: FcLangSetUnion (const FcLangSet *a, const FcLangSet *b); jpayne@69: jpayne@69: FcPublic FcLangSet * jpayne@69: FcLangSetSubtract (const FcLangSet *a, const FcLangSet *b); jpayne@69: jpayne@69: /* fclist.c */ jpayne@69: FcPublic FcObjectSet * jpayne@69: FcObjectSetCreate (void); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcObjectSetAdd (FcObjectSet *os, const char *object); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcObjectSetDestroy (FcObjectSet *os); jpayne@69: jpayne@69: FcPublic FcObjectSet * jpayne@69: FcObjectSetVaBuild (const char *first, va_list va); jpayne@69: jpayne@69: FcPublic FcObjectSet * jpayne@69: FcObjectSetBuild (const char *first, ...) FC_ATTRIBUTE_SENTINEL(0); jpayne@69: jpayne@69: FcPublic FcFontSet * jpayne@69: FcFontSetList (FcConfig *config, jpayne@69: FcFontSet **sets, jpayne@69: int nsets, jpayne@69: FcPattern *p, jpayne@69: FcObjectSet *os); jpayne@69: jpayne@69: FcPublic FcFontSet * jpayne@69: FcFontList (FcConfig *config, jpayne@69: FcPattern *p, jpayne@69: FcObjectSet *os); jpayne@69: jpayne@69: /* fcatomic.c */ jpayne@69: jpayne@69: FcPublic FcAtomic * jpayne@69: FcAtomicCreate (const FcChar8 *file); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcAtomicLock (FcAtomic *atomic); jpayne@69: jpayne@69: FcPublic FcChar8 * jpayne@69: FcAtomicNewFile (FcAtomic *atomic); jpayne@69: jpayne@69: FcPublic FcChar8 * jpayne@69: FcAtomicOrigFile (FcAtomic *atomic); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcAtomicReplaceOrig (FcAtomic *atomic); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcAtomicDeleteNew (FcAtomic *atomic); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcAtomicUnlock (FcAtomic *atomic); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcAtomicDestroy (FcAtomic *atomic); jpayne@69: jpayne@69: /* fcmatch.c */ jpayne@69: FcPublic FcPattern * jpayne@69: FcFontSetMatch (FcConfig *config, jpayne@69: FcFontSet **sets, jpayne@69: int nsets, jpayne@69: FcPattern *p, jpayne@69: FcResult *result); jpayne@69: jpayne@69: FcPublic FcPattern * jpayne@69: FcFontMatch (FcConfig *config, jpayne@69: FcPattern *p, jpayne@69: FcResult *result); jpayne@69: jpayne@69: FcPublic FcPattern * jpayne@69: FcFontRenderPrepare (FcConfig *config, jpayne@69: FcPattern *pat, jpayne@69: FcPattern *font); jpayne@69: jpayne@69: FcPublic FcFontSet * jpayne@69: FcFontSetSort (FcConfig *config, jpayne@69: FcFontSet **sets, jpayne@69: int nsets, jpayne@69: FcPattern *p, jpayne@69: FcBool trim, jpayne@69: FcCharSet **csp, jpayne@69: FcResult *result); jpayne@69: jpayne@69: FcPublic FcFontSet * jpayne@69: FcFontSort (FcConfig *config, jpayne@69: FcPattern *p, jpayne@69: FcBool trim, jpayne@69: FcCharSet **csp, jpayne@69: FcResult *result); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcFontSetSortDestroy (FcFontSet *fs); jpayne@69: jpayne@69: /* fcmatrix.c */ jpayne@69: FcPublic FcMatrix * jpayne@69: FcMatrixCopy (const FcMatrix *mat); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcMatrixEqual (const FcMatrix *mat1, const FcMatrix *mat2); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcMatrixMultiply (FcMatrix *result, const FcMatrix *a, const FcMatrix *b); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcMatrixRotate (FcMatrix *m, double c, double s); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcMatrixScale (FcMatrix *m, double sx, double sy); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcMatrixShear (FcMatrix *m, double sh, double sv); jpayne@69: jpayne@69: /* fcname.c */ jpayne@69: jpayne@69: /* Deprecated. Does nothing. Returns FcFalse. */ jpayne@69: FcPublic FcBool jpayne@69: FcNameRegisterObjectTypes (const FcObjectType *types, int ntype); jpayne@69: jpayne@69: /* Deprecated. Does nothing. Returns FcFalse. */ jpayne@69: FcPublic FcBool jpayne@69: FcNameUnregisterObjectTypes (const FcObjectType *types, int ntype); jpayne@69: jpayne@69: FcPublic const FcObjectType * jpayne@69: FcNameGetObjectType (const char *object); jpayne@69: jpayne@69: /* Deprecated. Does nothing. Returns FcFalse. */ jpayne@69: FcPublic FcBool jpayne@69: FcNameRegisterConstants (const FcConstant *consts, int nconsts); jpayne@69: jpayne@69: /* Deprecated. Does nothing. Returns FcFalse. */ jpayne@69: FcPublic FcBool jpayne@69: FcNameUnregisterConstants (const FcConstant *consts, int nconsts); jpayne@69: jpayne@69: FcPublic const FcConstant * jpayne@69: FcNameGetConstant (const FcChar8 *string); jpayne@69: jpayne@69: FcPublic const FcConstant * jpayne@69: FcNameGetConstantFor (const FcChar8 *string, const char *object); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcNameConstant (const FcChar8 *string, int *result); jpayne@69: jpayne@69: FcPublic FcPattern * jpayne@69: FcNameParse (const FcChar8 *name); jpayne@69: jpayne@69: FcPublic FcChar8 * jpayne@69: FcNameUnparse (FcPattern *pat); jpayne@69: jpayne@69: /* fcpat.c */ jpayne@69: FcPublic FcPattern * jpayne@69: FcPatternCreate (void); jpayne@69: jpayne@69: FcPublic FcPattern * jpayne@69: FcPatternDuplicate (const FcPattern *p); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcPatternReference (FcPattern *p); jpayne@69: jpayne@69: FcPublic FcPattern * jpayne@69: FcPatternFilter (FcPattern *p, const FcObjectSet *os); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcValueDestroy (FcValue v); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcValueEqual (FcValue va, FcValue vb); jpayne@69: jpayne@69: FcPublic FcValue jpayne@69: FcValueSave (FcValue v); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcPatternDestroy (FcPattern *p); jpayne@69: jpayne@69: int jpayne@69: FcPatternObjectCount (const FcPattern *pat); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcPatternEqual (const FcPattern *pa, const FcPattern *pb); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcPatternEqualSubset (const FcPattern *pa, const FcPattern *pb, const FcObjectSet *os); jpayne@69: jpayne@69: FcPublic FcChar32 jpayne@69: FcPatternHash (const FcPattern *p); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcPatternAdd (FcPattern *p, const char *object, FcValue value, FcBool append); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcPatternAddWeak (FcPattern *p, const char *object, FcValue value, FcBool append); jpayne@69: jpayne@69: FcPublic FcResult jpayne@69: FcPatternGet (const FcPattern *p, const char *object, int id, FcValue *v); jpayne@69: jpayne@69: FcPublic FcResult jpayne@69: FcPatternGetWithBinding (const FcPattern *p, const char *object, int id, FcValue *v, FcValueBinding *b); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcPatternDel (FcPattern *p, const char *object); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcPatternRemove (FcPattern *p, const char *object, int id); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcPatternAddInteger (FcPattern *p, const char *object, int i); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcPatternAddDouble (FcPattern *p, const char *object, double d); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcPatternAddString (FcPattern *p, const char *object, const FcChar8 *s); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcPatternAddMatrix (FcPattern *p, const char *object, const FcMatrix *s); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcPatternAddCharSet (FcPattern *p, const char *object, const FcCharSet *c); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcPatternAddBool (FcPattern *p, const char *object, FcBool b); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcPatternAddLangSet (FcPattern *p, const char *object, const FcLangSet *ls); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcPatternAddRange (FcPattern *p, const char *object, const FcRange *r); jpayne@69: jpayne@69: FcPublic FcResult jpayne@69: FcPatternGetInteger (const FcPattern *p, const char *object, int n, int *i); jpayne@69: jpayne@69: FcPublic FcResult jpayne@69: FcPatternGetDouble (const FcPattern *p, const char *object, int n, double *d); jpayne@69: jpayne@69: FcPublic FcResult jpayne@69: FcPatternGetString (const FcPattern *p, const char *object, int n, FcChar8 ** s); jpayne@69: jpayne@69: FcPublic FcResult jpayne@69: FcPatternGetMatrix (const FcPattern *p, const char *object, int n, FcMatrix **s); jpayne@69: jpayne@69: FcPublic FcResult jpayne@69: FcPatternGetCharSet (const FcPattern *p, const char *object, int n, FcCharSet **c); jpayne@69: jpayne@69: FcPublic FcResult jpayne@69: FcPatternGetBool (const FcPattern *p, const char *object, int n, FcBool *b); jpayne@69: jpayne@69: FcPublic FcResult jpayne@69: FcPatternGetLangSet (const FcPattern *p, const char *object, int n, FcLangSet **ls); jpayne@69: jpayne@69: FcPublic FcResult jpayne@69: FcPatternGetRange (const FcPattern *p, const char *object, int id, FcRange **r); jpayne@69: jpayne@69: FcPublic FcPattern * jpayne@69: FcPatternVaBuild (FcPattern *p, va_list va); jpayne@69: jpayne@69: FcPublic FcPattern * jpayne@69: FcPatternBuild (FcPattern *p, ...) FC_ATTRIBUTE_SENTINEL(0); jpayne@69: jpayne@69: FcPublic FcChar8 * jpayne@69: FcPatternFormat (FcPattern *pat, const FcChar8 *format); jpayne@69: jpayne@69: /* fcrange.c */ jpayne@69: FcPublic FcRange * jpayne@69: FcRangeCreateDouble (double begin, double end); jpayne@69: jpayne@69: FcPublic FcRange * jpayne@69: FcRangeCreateInteger (FcChar32 begin, FcChar32 end); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcRangeDestroy (FcRange *range); jpayne@69: jpayne@69: FcPublic FcRange * jpayne@69: FcRangeCopy (const FcRange *r); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcRangeGetDouble(const FcRange *range, double *begin, double *end); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcPatternIterStart (const FcPattern *pat, FcPatternIter *iter); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcPatternIterNext (const FcPattern *pat, FcPatternIter *iter); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcPatternIterEqual (const FcPattern *p1, FcPatternIter *i1, jpayne@69: const FcPattern *p2, FcPatternIter *i2); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcPatternFindIter (const FcPattern *pat, FcPatternIter *iter, const char *object); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcPatternIterIsValid (const FcPattern *pat, FcPatternIter *iter); jpayne@69: jpayne@69: FcPublic const char * jpayne@69: FcPatternIterGetObject (const FcPattern *pat, FcPatternIter *iter); jpayne@69: jpayne@69: FcPublic int jpayne@69: FcPatternIterValueCount (const FcPattern *pat, FcPatternIter *iter); jpayne@69: jpayne@69: FcPublic FcResult jpayne@69: FcPatternIterGetValue (const FcPattern *pat, FcPatternIter *iter, int id, FcValue *v, FcValueBinding *b); jpayne@69: jpayne@69: /* fcweight.c */ jpayne@69: jpayne@69: FcPublic int jpayne@69: FcWeightFromOpenType (int ot_weight); jpayne@69: jpayne@69: FcPublic double jpayne@69: FcWeightFromOpenTypeDouble (double ot_weight); jpayne@69: jpayne@69: FcPublic int jpayne@69: FcWeightToOpenType (int fc_weight); jpayne@69: jpayne@69: FcPublic double jpayne@69: FcWeightToOpenTypeDouble (double fc_weight); jpayne@69: jpayne@69: /* fcstr.c */ jpayne@69: jpayne@69: FcPublic FcChar8 * jpayne@69: FcStrCopy (const FcChar8 *s); jpayne@69: jpayne@69: FcPublic FcChar8 * jpayne@69: FcStrCopyFilename (const FcChar8 *s); jpayne@69: jpayne@69: FcPublic FcChar8 * jpayne@69: FcStrPlus (const FcChar8 *s1, const FcChar8 *s2); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcStrFree (FcChar8 *s); jpayne@69: jpayne@69: /* These are ASCII only, suitable only for pattern element names */ jpayne@69: #define FcIsUpper(c) ((0101 <= (c) && (c) <= 0132)) jpayne@69: #define FcIsLower(c) ((0141 <= (c) && (c) <= 0172)) jpayne@69: #define FcToLower(c) (FcIsUpper(c) ? (c) - 0101 + 0141 : (c)) jpayne@69: jpayne@69: FcPublic FcChar8 * jpayne@69: FcStrDowncase (const FcChar8 *s); jpayne@69: jpayne@69: FcPublic int jpayne@69: FcStrCmpIgnoreCase (const FcChar8 *s1, const FcChar8 *s2); jpayne@69: jpayne@69: FcPublic int jpayne@69: FcStrCmp (const FcChar8 *s1, const FcChar8 *s2); jpayne@69: jpayne@69: FcPublic const FcChar8 * jpayne@69: FcStrStrIgnoreCase (const FcChar8 *s1, const FcChar8 *s2); jpayne@69: jpayne@69: FcPublic const FcChar8 * jpayne@69: FcStrStr (const FcChar8 *s1, const FcChar8 *s2); jpayne@69: jpayne@69: FcPublic int jpayne@69: FcUtf8ToUcs4 (const FcChar8 *src_orig, jpayne@69: FcChar32 *dst, jpayne@69: int len); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcUtf8Len (const FcChar8 *string, jpayne@69: int len, jpayne@69: int *nchar, jpayne@69: int *wchar); jpayne@69: jpayne@69: #define FC_UTF8_MAX_LEN 6 jpayne@69: jpayne@69: FcPublic int jpayne@69: FcUcs4ToUtf8 (FcChar32 ucs4, jpayne@69: FcChar8 dest[FC_UTF8_MAX_LEN]); jpayne@69: jpayne@69: FcPublic int jpayne@69: FcUtf16ToUcs4 (const FcChar8 *src_orig, jpayne@69: FcEndian endian, jpayne@69: FcChar32 *dst, jpayne@69: int len); /* in bytes */ jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcUtf16Len (const FcChar8 *string, jpayne@69: FcEndian endian, jpayne@69: int len, /* in bytes */ jpayne@69: int *nchar, jpayne@69: int *wchar); jpayne@69: jpayne@69: FcPublic FcChar8 * jpayne@69: FcStrBuildFilename (const FcChar8 *path, jpayne@69: ...); jpayne@69: jpayne@69: FcPublic FcChar8 * jpayne@69: FcStrDirname (const FcChar8 *file); jpayne@69: jpayne@69: FcPublic FcChar8 * jpayne@69: FcStrBasename (const FcChar8 *file); jpayne@69: jpayne@69: FcPublic FcStrSet * jpayne@69: FcStrSetCreate (void); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcStrSetMember (FcStrSet *set, const FcChar8 *s); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcStrSetEqual (FcStrSet *sa, FcStrSet *sb); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcStrSetAdd (FcStrSet *set, const FcChar8 *s); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcStrSetAddFilename (FcStrSet *set, const FcChar8 *s); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcStrSetDel (FcStrSet *set, const FcChar8 *s); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcStrSetDestroy (FcStrSet *set); jpayne@69: jpayne@69: FcPublic FcStrList * jpayne@69: FcStrListCreate (FcStrSet *set); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcStrListFirst (FcStrList *list); jpayne@69: jpayne@69: FcPublic FcChar8 * jpayne@69: FcStrListNext (FcStrList *list); jpayne@69: jpayne@69: FcPublic void jpayne@69: FcStrListDone (FcStrList *list); jpayne@69: jpayne@69: /* fcxml.c */ jpayne@69: FcPublic FcBool jpayne@69: FcConfigParseAndLoad (FcConfig *config, const FcChar8 *file, FcBool complain); jpayne@69: jpayne@69: FcPublic FcBool jpayne@69: FcConfigParseAndLoadFromMemory (FcConfig *config, jpayne@69: const FcChar8 *buffer, jpayne@69: FcBool complain); jpayne@69: jpayne@69: _FCFUNCPROTOEND jpayne@69: jpayne@69: #undef FC_ATTRIBUTE_SENTINEL jpayne@69: jpayne@69: jpayne@69: #ifndef _FCINT_H_ jpayne@69: jpayne@69: /* jpayne@69: * Deprecated functions are placed here to help users fix their code without jpayne@69: * digging through documentation jpayne@69: */ jpayne@69: jpayne@69: #define FcConfigGetRescanInverval FcConfigGetRescanInverval_REPLACE_BY_FcConfigGetRescanInterval jpayne@69: #define FcConfigSetRescanInverval FcConfigSetRescanInverval_REPLACE_BY_FcConfigSetRescanInterval jpayne@69: jpayne@69: #endif jpayne@69: jpayne@69: #endif /* _FONTCONFIG_H_ */