]> git.wh0rd.org - fontconfig.git/blobdiff - fontconfig/fontconfig.h
Prevent fc-list from escaping strings when printing them.
[fontconfig.git] / fontconfig / fontconfig.h
index 0b9dccf8d14cab14e85243cff4323141a4ac2708..36982f43c9e8a25c0c3e508c33c8f241ac01b295 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;
@@ -39,8 +45,8 @@ typedef int           FcBool;
  */
 
 #define FC_MAJOR       2
-#define FC_MINOR       2
-#define FC_REVISION    98
+#define FC_MINOR       3
+#define FC_REVISION    91
 
 #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
@@ -85,7 +91,7 @@ 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 RFC 3066 langs */
 #define FC_FONTVERSION     "fontversion"       /* Int from 'head' table */
@@ -200,18 +206,24 @@ typedef struct _FcPattern   FcPattern;
 
 typedef struct _FcLangSet   FcLangSet;
 
+#define FC_BANK_DYNAMIC 0
+#define FC_BANK_FIRST 1
+
 typedef struct _FcValue {
     FcType     type;
     union {
-       const FcChar8   *s;
+       const FcChar8  *s;
+       int             s_off;
        int             i;
        FcBool          b;
        double          d;
-       const FcMatrix  *m;
-       const FcCharSet *c;
+       const FcMatrix  *m;
+       const FcCharSet *c;
+       int             c_off;
        void            *f;
        const FcPattern *p;
-       const FcLangSet *l;
+       const FcLangSet *l;
+       int             l_off; // this is a difference of char *s
     } u;
 } FcValue;
 
@@ -267,6 +279,12 @@ _FCFUNCPROTOBEGIN
 FcBool
 FcDirCacheValid (const FcChar8 *cache_file);
 
+FcBool
+FcDirCacheHasCurrentArch (const FcChar8 *dir);
+
+FcBool
+FcDirCacheUnlink (const FcChar8 *dir);
+
 /* fcblanks.c */
 FcBlanks *
 FcBlanksCreate (void);
@@ -522,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,
@@ -647,6 +665,9 @@ FcNameParse (const FcChar8 *name);
 FcChar8 *
 FcNameUnparse (FcPattern *pat);
 
+FcChar8 *
+FcNameUnparseEscaped (FcPattern *pat, FcBool escape);
+
 /* fcpat.c */
 FcPattern *
 FcPatternCreate (void);
@@ -739,7 +760,7 @@ FcPattern *
 FcPatternVaBuild (FcPattern *orig, va_list va);
     
 FcPattern *
-FcPatternBuild (FcPattern *orig, ...);
+FcPatternBuild (FcPattern *orig, ...) FC_ATTRIBUTE_SENTINEL(0);
 
 /* fcstr.c */
 
@@ -841,4 +862,6 @@ FcConfigParseAndLoad (FcConfig *config, const FcChar8 *file, FcBool complain);
 
 _FCFUNCPROTOEND
 
+#undef FC_ATTRIBUTE_SENTINEL
+
 #endif /* _FONTCONFIG_H_ */