]> git.wh0rd.org - fontconfig.git/blobdiff - fontconfig/fontconfig.h
Bump version to 2.1.92
[fontconfig.git] / fontconfig / fontconfig.h
index 6f378cd9ad702814babdb7a0204c05c0e5b4abe0..4fa0d4844ba1e2ac019897daca34e691899fb5fa 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * $XFree86: xc/lib/fontconfig/fontconfig/fontconfig.h,v 1.25 2002/08/11 18:10:41 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
@@ -33,14 +33,29 @@ 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    1
+
+#define FC_MAJOR       2
+#define FC_MINOR       1
+#define FC_REVISION    92
 
 #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    "1"
+
 #define FcTrue         1
 #define FcFalse                0
 
@@ -70,10 +85,11 @@ typedef int         FcBool;
 #define FC_MINSPACE        "minspace"          /* Bool use minimum line spacing */
 #define FC_SOURCE          "source"            /* String (X11, freetype) */
 #define FC_CHARSET         "charset"           /* CharSet */
-#define FC_LANG                    "lang"              /* String OS/2 CodePageRange */
+#define FC_LANG                    "lang"              /* String RFC 3066 langs */
+#define FC_FONTVERSION     "fontversion"       /* Int from 'head' table */
 
-#define FC_DIR_CACHE_FILE          "fonts.cache"
-#define FC_USER_CACHE_FILE         ".fonts.cache"
+#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 */
@@ -95,11 +111,12 @@ typedef int                FcBool;
 #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
+#define FC_RGBA_NONE       5
 
 typedef enum _FcType {
     FcTypeVoid, 
@@ -109,7 +126,8 @@ typedef enum _FcType {
     FcTypeBool,
     FcTypeMatrix,
     FcTypeCharSet,
-    FcTypeFTFace
+    FcTypeFTFace,
+    FcTypeLangSet
 } FcType;
 
 typedef struct _FcMatrix {
@@ -143,6 +161,8 @@ typedef enum _FcResult {
 
 typedef struct _FcPattern   FcPattern;
 
+typedef struct _FcLangSet   FcLangSet;
+
 typedef struct _FcValue {
     FcType     type;
     union {
@@ -154,6 +174,7 @@ typedef struct _FcValue {
        const FcCharSet *c;
        void            *f;
        const FcPattern *p;
+       const FcLangSet *l;
     } u;
 } FcValue;
 
@@ -173,6 +194,10 @@ typedef enum _FcMatchKind {
     FcMatchPattern, FcMatchFont
 } FcMatchKind;
 
+typedef enum _FcLangResult {
+    FcLangEqual, FcLangDifferentCountry, FcLangDifferentLang
+} FcLangResult;
+
 typedef enum _FcSetName {
     FcSetSystem = 0,
     FcSetApplication = 1
@@ -219,6 +244,12 @@ FcBool
 FcBlanksIsMember (FcBlanks *b, FcChar32 ucs4);
 
 /* fccfg.c */
+FcChar8 *
+FcConfigHome (void);
+
+FcBool
+FcConfigEnableHome (FcBool enable);
+
 FcChar8 *
 FcConfigFilename (const FcChar8 *url);
     
@@ -409,6 +440,34 @@ FcInitReinitialize (void);
 FcBool
 FcInitBringUptoDate (void);
 
+/* fclang.c */
+FcLangSet *
+FcLangSetCreate (void);
+
+void
+FcLangSetDestroy (FcLangSet *ls);
+
+FcLangSet *
+FcLangSetCopy (const FcLangSet *ls);
+
+FcBool
+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 *
 FcObjectSetCreate (void);
@@ -553,7 +612,7 @@ FcPattern *
 FcPatternCreate (void);
 
 FcPattern *
-FcPatternDuplicate (FcPattern *p);
+FcPatternDuplicate (const FcPattern *p);
 
 void
 FcPatternReference (FcPattern *p);
@@ -586,7 +645,7 @@ 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);
@@ -609,23 +668,29 @@ 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 (FcPattern *p, const char *object, int n, int *i);
+FcPatternGetInteger (const FcPattern *p, const char *object, int n, int *i);
 
 FcResult
-FcPatternGetDouble (FcPattern *p, const char *object, int n, double *d);
+FcPatternGetDouble (const FcPattern *p, const char *object, int n, double *d);
 
 FcResult
-FcPatternGetString (FcPattern *p, const char *object, int n, FcChar8 ** s);
+FcPatternGetString (const FcPattern *p, const char *object, int n, FcChar8 ** s);
 
 FcResult
-FcPatternGetMatrix (FcPattern *p, const char *object, int n, FcMatrix **s);
+FcPatternGetMatrix (const FcPattern *p, const char *object, int n, FcMatrix **s);
 
 FcResult
-FcPatternGetCharSet (FcPattern *p, const char *object, int n, FcCharSet **c);
+FcPatternGetCharSet (const FcPattern *p, const char *object, int n, FcCharSet **c);
 
 FcResult
-FcPatternGetBool (FcPattern *p, const char *object, int n, FcBool *b);
+FcPatternGetBool (const FcPattern *p, const char *object, int n, FcBool *b);
+
+FcResult
+FcPatternGetLangSet (const FcPattern *p, const char *object, int n, FcLangSet **ls);
 
 FcPattern *
 FcPatternVaBuild (FcPattern *orig, va_list va);
@@ -641,7 +706,9 @@ FcStrCopy (const FcChar8 *s);
 FcChar8 *
 FcStrCopyFilename (const FcChar8 *s);
     
-#define FcToLower(c)   (('A' <= (c) && (c) <= 'Z') ? (c) - 'A' + 'a' : (c))
+#define FcIsUpper(c)   (('A' <= (c) && (c) <= 'Z'))
+#define FcIsLower(c)   (('a' <= (c) && (c) <= 'z'))
+#define FcToLower(c)   (FcIsUpper(c) ? (c) - 'A' + 'a' : (c))
 
 int
 FcStrCmpIgnoreCase (const FcChar8 *s1, const FcChar8 *s2);
@@ -650,15 +717,15 @@ int
 FcStrCmp (const FcChar8 *s1, const FcChar8 *s2);
 
 int
-FcUtf8ToUcs4 (FcChar8   *src_orig,
-             FcChar32  *dst,
-             int       len);
+FcUtf8ToUcs4 (const FcChar8 *src_orig,
+             FcChar32      *dst,
+             int           len);
 
 FcBool
-FcUtf8Len (FcChar8     *string,
-          int          len,
-          int          *nchar,
-          int          *wchar);
+FcUtf8Len (const FcChar8    *string,
+          int              len,
+          int              *nchar,
+          int              *wchar);
 
 #define FC_UTF8_MAX_LEN        6
 
@@ -667,17 +734,17 @@ FcUcs4ToUtf8 (FcChar32    ucs4,
              FcChar8   dest[FC_UTF8_MAX_LEN]);
 
 int
-FcUtf16ToUcs4 (FcChar8 *src_orig,
-              FcEndian endian,
-              FcChar32 *dst,
-              int      len);       /* in bytes */
+FcUtf16ToUcs4 (const FcChar8   *src_orig,
+              FcEndian         endian,
+              FcChar32         *dst,
+              int              len);       /* in bytes */
 
 FcBool
-FcUtf16Len (FcChar8    *string,
-           FcEndian    endian,
-           int         len,        /* in bytes */
-           int         *nchar,
-           int         *wchar);
+FcUtf16Len (const FcChar8   *string,
+           FcEndian        endian,
+           int             len,            /* in bytes */
+           int             *nchar,
+           int             *wchar);
 
 FcChar8 *
 FcStrDirname (const FcChar8 *file);
@@ -691,6 +758,9 @@ FcStrSetCreate (void);
 FcBool
 FcStrSetMember (FcStrSet *set, const FcChar8 *s);
 
+FcBool
+FcStrSetEqual (FcStrSet *sa, FcStrSet *sb);
+
 FcBool
 FcStrSetAdd (FcStrSet *set, const FcChar8 *s);