]> git.wh0rd.org - fontconfig.git/blobdiff - fontconfig/fontconfig.h
fc-cache: add a --root option
[fontconfig.git] / fontconfig / fontconfig.h
index 0df38aab5add8755e10b5f866ea5c5cc55bbf7da..f83cd3823979fed6f6df336e8174521de2749e78 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $RCSId: xc/lib/fontconfig/fontconfig/fontconfig.h,v 1.30 2002/09/26 00:17:27 keithp Exp $
+ * fontconfig/fontconfig/fontconfig.h
  *
  * Copyright © 2001 Keith Packard
  *
@@ -7,15 +7,15 @@
  * documentation for any purpose is hereby granted without fee, provided that
  * the above copyright notice appear in all copies and that both that
  * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Keith Packard not be used in
+ * documentation, and that the name of the author(s) not be used in
  * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Keith Packard makes no
+ * specific, written prior permission.  The authors make no
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
@@ -27,7 +27,6 @@
 
 #include <sys/types.h>
 #include <sys/stat.h>
-#include <unistd.h>
 #include <stdarg.h>
 
 #if defined(__GNUC__) && (__GNUC__ >= 4)
@@ -52,7 +51,7 @@ typedef int           FcBool;
  */
 
 #define FC_MAJOR       2
-#define FC_MINOR       4
+#define FC_MINOR       8
 #define FC_REVISION    0
 
 #define FC_VERSION     ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION))
@@ -67,7 +66,7 @@ typedef int           FcBool;
  * it means multiple copies of the font information.
  */
 
-#define FC_CACHE_VERSION    "2"
+#define FC_CACHE_VERSION    "3"
 
 #define FcTrue         1
 #define FcFalse                0
@@ -111,6 +110,7 @@ typedef int         FcBool;
 #define FC_EMBOLDEN        "embolden"          /* Bool - true if emboldening needed*/
 #define FC_EMBEDDED_BITMAP  "embeddedbitmap"   /* Bool - true to enable embedded bitmaps */
 #define FC_DECORATIVE      "decorative"        /* Bool - true if style is a decorative variant */
+#define FC_LCD_FILTER      "lcdfilter"         /* Int */
 
 #define FC_CACHE_SUFFIX                    ".cache-"FC_CACHE_VERSION
 #define FC_DIR_CACHE_FILE          "fonts.cache-"FC_CACHE_VERSION
@@ -136,6 +136,8 @@ typedef int         FcBool;
 #define FC_WEIGHT_ULTRABOLD        FC_WEIGHT_EXTRABOLD
 #define FC_WEIGHT_BLACK                    210
 #define FC_WEIGHT_HEAVY                    FC_WEIGHT_BLACK
+#define FC_WEIGHT_EXTRABLACK       215
+#define FC_WEIGHT_ULTRABLACK       FC_WEIGHT_EXTRABLACK
 
 #define FC_SLANT_ROMAN             0
 #define FC_SLANT_ITALIC                    100
@@ -169,7 +171,13 @@ typedef int                FcBool;
 #define FC_HINT_SLIGHT      1
 #define FC_HINT_MEDIUM      2
 #define FC_HINT_FULL        3
+
+/* LCD filter */
+#define FC_LCD_NONE        0
+#define FC_LCD_DEFAULT     1
+#define FC_LCD_LIGHT       2
+#define FC_LCD_LEGACY      3
+
 typedef enum _FcType {
     FcTypeVoid, 
     FcTypeInteger, 
@@ -226,7 +234,6 @@ typedef struct _FcValue {
        const FcMatrix  *m;
        const FcCharSet *c;
        void            *f;
-       const FcPattern *p;
        const FcLangSet *l;
     } u;
 } FcValue;
@@ -248,7 +255,10 @@ typedef enum _FcMatchKind {
 } FcMatchKind;
 
 typedef enum _FcLangResult {
-    FcLangEqual, FcLangDifferentCountry, FcLangDifferentLang
+    FcLangEqual = 0,
+    FcLangDifferentCountry = 1,
+    FcLangDifferentTerritory = 1,
+    FcLangDifferentLang = 2
 } FcLangResult;
 
 typedef enum _FcSetName {
@@ -297,6 +307,9 @@ FcBlanksIsMember (FcBlanks *b, FcChar32 ucs4);
 
 /* fccache.c */
 
+FcPublic int
+FcStat (FcConfig *config, const FcChar8 *file, struct stat *statb);
+
 FcPublic const FcChar8 *
 FcCacheDir(const FcCache *c);
 
@@ -327,10 +340,16 @@ FcConfigEnableHome (FcBool enable);
 
 FcPublic FcChar8 *
 FcConfigFilename (const FcChar8 *url);
+
+FcPublic FcChar8 *
+FcConfigFilename2 (FcConfig *config, const FcChar8 *url);
     
 FcPublic FcConfig *
 FcConfigCreate (void);
 
+FcPublic FcConfig *
+FcConfigReference (FcConfig *config);
+
 FcPublic void
 FcConfigDestroy (FcConfig *config);
 
@@ -365,10 +384,10 @@ FcPublic FcStrList *
 FcConfigGetCacheDirs (FcConfig *config);
 
 FcPublic int
-FcConfigGetRescanInverval (FcConfig *config);
+FcConfigGetRescanInterval (FcConfig *config);
 
 FcPublic FcBool
-FcConfigSetRescanInverval (FcConfig *config, int rescanInterval);
+FcConfigSetRescanInterval (FcConfig *config, int rescanInterval);
 
 FcPublic FcFontSet *
 FcConfigGetFonts (FcConfig     *config,
@@ -396,6 +415,17 @@ FcConfigSubstitute (FcConfig       *config,
                    FcPattern   *p,
                    FcMatchKind kind);
 
+FcPublic void
+FcConfigSetRoot (FcConfig      *config,
+                const FcChar8  *path);
+
+FcPublic const FcChar8 *
+FcConfigGetRoot (FcConfig      *config);
+
+FcPublic FcChar8 *
+FcConfigGetRootPlus (FcConfig          *config,
+                    const FcChar8      *path);
+
 /* fccharset.c */
 FcPublic FcCharSet*
 FcCharSetCreate (void);
@@ -410,6 +440,9 @@ FcCharSetDestroy (FcCharSet *fcs);
 FcPublic FcBool
 FcCharSetAddChar (FcCharSet *fcs, FcChar32 ucs4);
 
+FcPublic FcBool
+FcCharSetDelChar (FcCharSet *fcs, FcChar32 ucs4);
+
 FcPublic FcCharSet*
 FcCharSetCopy (FcCharSet *src);
 
@@ -425,6 +458,9 @@ FcCharSetUnion (const FcCharSet *a, const FcCharSet *b);
 FcPublic FcCharSet*
 FcCharSetSubtract (const FcCharSet *a, const FcCharSet *b);
 
+FcPublic FcBool
+FcCharSetMerge (FcCharSet *a, const FcCharSet *b, FcBool *changed);
+
 FcPublic FcBool
 FcCharSetHasChar (const FcCharSet *fcs, FcChar32 ucs4);
 
@@ -478,6 +514,9 @@ FcDefaultSubstitute (FcPattern *pattern);
 FcPublic FcBool
 FcFileIsDir (const FcChar8 *file);
 
+FcPublic FcBool
+FcFileIsDir2 (FcConfig *config, const FcChar8 *file);
+
 FcPublic FcBool
 FcFileScan (FcFontSet      *set,
            FcStrSet        *dirs,
@@ -506,6 +545,9 @@ FcDirCacheRead (const FcChar8 *dir, FcBool force, FcConfig *config);
 FcPublic FcCache *
 FcDirCacheLoadFile (const FcChar8 *cache_file, struct stat *file_stat);
 
+FcPublic FcCache *
+FcDirCacheLoadFile2 (const FcChar8 *cache_file, FcConfig *config, struct stat *file_stat);
+
 FcPublic void
 FcDirCacheUnload (FcCache *cache);
 
@@ -513,6 +555,9 @@ FcDirCacheUnload (FcCache *cache);
 FcPublic FcPattern *
 FcFreeTypeQuery (const FcChar8 *file, int id, FcBlanks *blanks, int *count);
 
+FcPublic FcPattern *
+FcFreeTypeQuery2 (FcConfig *config, const FcChar8 *file, int id, FcBlanks *blanks, int *count);
+
 /* fcfs.c */
 
 FcPublic FcFontSet *
@@ -547,6 +592,12 @@ FcPublic FcBool
 FcInitBringUptoDate (void);
 
 /* fclang.c */
+FcPublic FcStrSet *
+FcGetLangs (void);
+
+FcPublic const FcCharSet *
+FcLangGetCharSet (const FcChar8 *lang);
+
 FcPublic FcLangSet*
 FcLangSetCreate (void);
 
@@ -559,6 +610,9 @@ FcLangSetCopy (const FcLangSet *ls);
 FcPublic FcBool
 FcLangSetAdd (FcLangSet *ls, const FcChar8 *lang);
 
+FcPublic FcBool
+FcLangSetDel (FcLangSet *ls, const FcChar8 *lang);
+
 FcPublic FcLangResult
 FcLangSetHasLang (const FcLangSet *ls, const FcChar8 *lang);
 
@@ -574,6 +628,15 @@ FcLangSetEqual (const FcLangSet *lsa, const FcLangSet *lsb);
 FcPublic FcChar32
 FcLangSetHash (const FcLangSet *ls);
 
+FcPublic FcStrSet *
+FcLangSetGetLangs (const FcLangSet *ls);
+
+FcPublic FcLangSet *
+FcLangSetUnion (const FcLangSet *a, const FcLangSet *b);
+
+FcPublic FcLangSet *
+FcLangSetSubtract (const FcLangSet *a, const FcLangSet *b);
+
 /* fclist.c */
 FcPublic FcObjectSet *
 FcObjectSetCreate (void);
@@ -610,6 +673,9 @@ FcAtomicCreate (const FcChar8   *file);
 FcPublic FcBool
 FcAtomicLock (FcAtomic *atomic);
 
+FcPublic FcBool
+FcAtomicLock2 (FcConfig *config, FcAtomic *atomic);
+
 FcPublic FcChar8 *
 FcAtomicNewFile (FcAtomic *atomic);
 
@@ -702,10 +768,10 @@ FcPublic FcBool
 FcNameUnregisterConstants (const FcConstant *consts, int nconsts);
     
 FcPublic const FcConstant *
-FcNameGetConstant (FcChar8 *string);
+FcNameGetConstant (const FcChar8 *string);
 
 FcPublic FcBool
-FcNameConstant (FcChar8 *string, int *result);
+FcNameConstant (const FcChar8 *string, int *result);
 
 FcPublic FcPattern *
 FcNameParse (const FcChar8 *name);
@@ -723,6 +789,9 @@ FcPatternDuplicate (const FcPattern *p);
 FcPublic void
 FcPatternReference (FcPattern *p);
 
+FcPublic FcPattern *
+FcPatternFilter (FcPattern *p, const FcObjectSet *os);
+
 FcPublic void
 FcValueDestroy (FcValue v);
 
@@ -802,10 +871,13 @@ FcPublic FcResult
 FcPatternGetLangSet (const FcPattern *p, const char *object, int n, FcLangSet **ls);
 
 FcPublic FcPattern *
-FcPatternVaBuild (FcPattern *orig, va_list va);
+FcPatternVaBuild (FcPattern *p, va_list va);
     
 FcPublic FcPattern *
-FcPatternBuild (FcPattern *orig, ...) FC_ATTRIBUTE_SENTINEL(0);
+FcPatternBuild (FcPattern *p, ...) FC_ATTRIBUTE_SENTINEL(0);
+
+FcPublic FcChar8 *
+FcPatternFormat (FcPattern *pat, const FcChar8 *format);
 
 /* fcstr.c */
 
@@ -817,6 +889,9 @@ FcStrCopyFilename (const FcChar8 *s);
     
 FcPublic FcChar8 *
 FcStrPlus (const FcChar8 *s1, const FcChar8 *s2);
+
+FcPublic FcChar8 *
+FcStrPathPlus (const FcChar8 *s1, ...);
     
 FcPublic void
 FcStrFree (FcChar8 *s);
@@ -881,25 +956,25 @@ FcPublic FcStrSet *
 FcStrSetCreate (void);
 
 FcPublic FcBool
-FcStrSetMember (FcPublic FcStrSet *set, const FcChar8 *s);
+FcStrSetMember (FcStrSet *set, const FcChar8 *s);
 
 FcPublic FcBool
-FcStrSetEqual (FcPublic FcStrSet *sa, FcPublic FcStrSet *sb);
+FcStrSetEqual (FcStrSet *sa, FcStrSet *sb);
 
 FcPublic FcBool
-FcStrSetAdd (FcPublic FcStrSet *set, const FcChar8 *s);
+FcStrSetAdd (FcStrSet *set, const FcChar8 *s);
 
 FcPublic FcBool
-FcStrSetAddFilename (FcPublic FcStrSet *set, const FcChar8 *s);
+FcStrSetAddFilename (FcStrSet *set, const FcChar8 *s);
 
 FcPublic FcBool
-FcStrSetDel (FcPublic FcStrSet *set, const FcChar8 *s);
+FcStrSetDel (FcStrSet *set, const FcChar8 *s);
 
 FcPublic void
-FcStrSetDestroy (FcPublic FcStrSet *set);
+FcStrSetDestroy (FcStrSet *set);
 
 FcPublic FcStrList *
-FcStrListCreate (FcPublic FcStrSet *set);
+FcStrListCreate (FcStrSet *set);
 
 FcPublic FcChar8 *
 FcStrListNext (FcStrList *list);
@@ -915,4 +990,17 @@ _FCFUNCPROTOEND
 
 #undef FC_ATTRIBUTE_SENTINEL
 
+
+#ifndef _FCINT_H_
+
+/*
+ * Deprecated functions are placed here to help users fix their code without
+ * digging through documentation
+ */
+#define FcConfigGetRescanInverval   FcConfigGetRescanInverval_REPLACE_BY_FcConfigGetRescanInterval
+#define FcConfigSetRescanInverval   FcConfigSetRescanInverval_REPLACE_BY_FcConfigSetRescanInterval
+
+#endif
+
 #endif /* _FONTCONFIG_H_ */