]> git.wh0rd.org - fontconfig.git/blobdiff - fontconfig/fontconfig.h
Rework cache files to use offsets for all data structures.
[fontconfig.git] / fontconfig / fontconfig.h
index 7d36e9eb04eb05ebf1624adb87e5fd47b7e4be2f..410da1ec4c842e23a5a9fdc362336b59183820cc 100644 (file)
 
 #include <stdarg.h>
 
+#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;
@@ -40,7 +46,7 @@ typedef int           FcBool;
 
 #define FC_MAJOR       2
 #define FC_MINOR       3
-#define FC_REVISION    2
+#define FC_REVISION    95
 
 #define FC_VERSION     ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION))
 
@@ -54,7 +60,7 @@ typedef int           FcBool;
  * it means multiple copies of the font information.
  */
 
-#define FC_CACHE_VERSION    "1"
+#define FC_CACHE_VERSION    "2"
 
 #define FcTrue         1
 #define FcFalse                0
@@ -96,7 +102,9 @@ typedef int          FcBool;
 #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
 
@@ -196,52 +204,22 @@ typedef enum _FcResult {
     FcResultOutOfMemory
 } FcResult;
 
-typedef enum _FcStorage {
-    FcStorageStatic, FcStorageDynamic
-} FcStorage;
-
 typedef struct _FcPattern   FcPattern;
 
 typedef struct _FcLangSet   FcLangSet;
 
-typedef struct _FcMatrixPtr {
-    FcStorage               storage;
-    union {
-        int                stat;
-        FcMatrix           *dyn;
-    } u;
-} FcMatrixPtr;
-
-typedef struct _FcCharSetPtr {
-    FcStorage               storage;
-    union {
-        int                stat;
-        FcCharSet          *dyn;
-    } u;
-} FcCharSetPtr;
-
-typedef struct _FcLangSetPtr {
-    FcStorage               storage;
-    union {
-        int                stat;
-        FcLangSet          *dyn;
-    } u;
-} FcLangSetPtr;
-
-typedef int FcObjectPtr;
-
 typedef struct _FcValue {
     FcType     type;
     union {
-       FcObjectPtr     si;
+       const FcChar8  *s;
        int             i;
        FcBool          b;
        double          d;
-       FcMatrixPtr     mi;
-       FcCharSetPtr    ci;
+       const FcMatrix  *m;
+       const FcCharSet *c;
        void            *f;
        const FcPattern *p;
-       FcLangSetPtr    li;
+       const FcLangSet *l;
     } u;
 } FcValue;
 
@@ -254,7 +232,7 @@ typedef struct _FcFontSet {
 typedef struct _FcObjectSet {
     int                nobject;
     int                sobject;
-    FcObjectPtr        *objects;
+    const char **objects;
 } FcObjectSet;
     
 typedef enum _FcMatchKind {
@@ -295,7 +273,13 @@ typedef struct _FcStrSet    FcStrSet;
 _FCFUNCPROTOBEGIN
 
 FcBool
-FcDirCacheValid (const FcChar8 *cache_file);
+FcDirCacheValid (const FcChar8 *cache_file, FcConfig *config);
+
+FcBool
+FcDirCacheHasCurrentArch (const FcChar8 *dir, FcConfig *config);
+
+FcBool
+FcDirCacheUnlink (const FcChar8 *dir, FcConfig *config);
 
 /* fcblanks.c */
 FcBlanks *
@@ -341,6 +325,10 @@ FcConfigBuildFonts (FcConfig *config);
 FcStrList *
 FcConfigGetFontDirs (FcConfig   *config);
 
+const FcChar8 *
+FcConfigNormalizeFontDir (FcConfig     *config, 
+                         const FcChar8 *d);
+
 FcStrList *
 FcConfigGetConfigDirs (FcConfig   *config);
 
@@ -552,7 +540,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,
@@ -648,9 +636,6 @@ FcMatrixScale (FcMatrix *m, double sx, double sy);
 void
 FcMatrixShear (FcMatrix *m, double sh, double sv);
 
-FcMatrix *
-FcMatrixPtrU (FcMatrixPtr mi);
-
 /* fcname.c */
 
 FcBool
@@ -680,6 +665,9 @@ FcNameParse (const FcChar8 *name);
 FcChar8 *
 FcNameUnparse (FcPattern *pat);
 
+FcChar8 *
+FcNameUnparseEscaped (FcPattern *pat, FcBool escape);
+
 /* fcpat.c */
 FcPattern *
 FcPatternCreate (void);
@@ -772,7 +760,7 @@ FcPattern *
 FcPatternVaBuild (FcPattern *orig, va_list va);
     
 FcPattern *
-FcPatternBuild (FcPattern *orig, ...);
+FcPatternBuild (FcPattern *orig, ...) FC_ATTRIBUTE_SENTINEL(0);
 
 /* fcstr.c */
 
@@ -874,4 +862,6 @@ FcConfigParseAndLoad (FcConfig *config, const FcChar8 *file, FcBool complain);
 
 _FCFUNCPROTOEND
 
+#undef FC_ATTRIBUTE_SENTINEL
+
 #endif /* _FONTCONFIG_H_ */