X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=src%2Ffcint.h;h=c24d7885d9843fceec0c21565c973f7ecf27962d;hb=4ee9ca67867ec9517c90d6947bb88d3f25707746;hp=6cdb7cb51903f40b35d893bacf0561b9527a92da;hpb=4984242e3681a50a9c19f352783f145f91ecb868;p=fontconfig.git diff --git a/src/fcint.h b/src/fcint.h index 6cdb7cb..c24d788 100644 --- a/src/fcint.h +++ b/src/fcint.h @@ -113,6 +113,8 @@ /* slim_internal.h */ #if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) && defined(__ELF__) #define FcPrivate __attribute__((__visibility__("hidden"))) +#define HAVE_GNUC_ATTRIBUTE 1 +#include "fcalias.h" #elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) #define FcPrivate __hidden #else /* not gcc >= 3.3 and not Sun Studio >= 8 */ @@ -320,8 +322,11 @@ struct _FcCache { intptr_t dirs; /* offset to subdirs */ int dirs_count; /* number of subdir strings */ intptr_t set; /* offset to font set */ + int mtime; /* low bits of directory mtime */ }; +#undef FcCacheDir +#undef FcCacheSubdir #define FcCacheDir(c) FcOffsetMember(c,dir,FcChar8) #define FcCacheDirs(c) FcOffsetMember(c,dirs,intptr_t) #define FcCacheSet(c) FcOffsetMember(c,set,FcFontSet) @@ -404,7 +409,7 @@ typedef struct _FcCaseFold { #define FC_CACHE_MAGIC_MMAP 0xFC02FC04 #define FC_CACHE_MAGIC_ALLOC 0xFC02FC05 -#define FC_CACHE_CONTENT_VERSION 1 +#define FC_CACHE_CONTENT_VERSION 2 struct _FcAtomic { FcChar8 *file; /* original file name */ @@ -419,11 +424,6 @@ struct _FcBlanks { FcChar32 *blanks; }; -typedef struct _FcCacheList { - struct _FcCacheList *next; - FcCache *cache; -} FcCacheList; - struct _FcConfig { /* * File names loaded from the configuration -- saved here as the @@ -474,11 +474,6 @@ struct _FcConfig { * match preferrentially */ FcFontSet *fonts[FcSetApplication + 1]; - /* - * Font cache information is mapped from cache files - * the configuration is destroyed, the files need to be unmapped - */ - FcCacheList *caches; /* * Fontconfig can periodically rescan the system configuration * and font directories. This rescanning occurs when font @@ -509,11 +504,23 @@ FcPrivate FcCache * FcDirCacheScan (const FcChar8 *dir, FcConfig *config); FcPrivate FcCache * -FcDirCacheBuild (FcFontSet *set, const FcChar8 *dir, FcStrSet *dirs); +FcDirCacheBuild (FcFontSet *set, const FcChar8 *dir, struct stat *dir_stat, FcStrSet *dirs); FcPrivate FcBool FcDirCacheWrite (FcCache *cache, FcConfig *config); +FcPrivate void +FcCacheObjectReference (void *object); + +FcPrivate void +FcCacheObjectDereference (void *object); + +FcPrivate void +FcCacheFini (void); + +FcPrivate void +FcDirCacheReference (FcCache *cache, int nref); + /* fccfg.c */ FcPrivate FcBool @@ -578,7 +585,8 @@ FcPrivate FcFileTime FcConfigModifiedTime (FcConfig *config); FcPrivate FcBool -FcConfigAddCache (FcConfig *config, FcCache *cache); +FcConfigAddCache (FcConfig *config, FcCache *cache, + FcSetName set, FcStrSet *dirSet); /* fcserialize.c */ FcPrivate intptr_t @@ -858,6 +866,7 @@ FcListPatternMatchAny (const FcPattern *p, #define FC_EMBOLDEN_OBJECT 38 #define FC_EMBEDDED_BITMAP_OBJECT 39 #define FC_DECORATIVE_OBJECT 40 +#define FC_MAX_BASE_OBJECT FC_DECORATIVE_OBJECT FcPrivate FcBool FcNameBool (const FcChar8 *v, FcBool *result); @@ -1021,6 +1030,9 @@ FcStrContainsIgnoreBlanksAndCase (const FcChar8 *s1, const FcChar8 *s2); FcPrivate const FcChar8 * FcStrContainsIgnoreCase (const FcChar8 *s1, const FcChar8 *s2); +FcPrivate const FcChar8 * +FcStrContainsWord (const FcChar8 *s1, const FcChar8 *s2); + FcPrivate FcBool FcStrUsesHome (const FcChar8 *s);