aboutsummaryrefslogtreecommitdiff
path: root/fontconfig/src/fcint.h
diff options
context:
space:
mode:
Diffstat (limited to 'fontconfig/src/fcint.h')
-rw-r--r--fontconfig/src/fcint.h68
1 files changed, 38 insertions, 30 deletions
diff --git a/fontconfig/src/fcint.h b/fontconfig/src/fcint.h
index 233b4c302..83a7a435b 100644
--- a/fontconfig/src/fcint.h
+++ b/fontconfig/src/fcint.h
@@ -7,9 +7,9 @@
* 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.
*
@@ -107,6 +107,10 @@
#define FC_MEM_NUM 30
+#define _FC_ASSERT_STATIC1(_line, _cond) typedef int _static_assert_on_line_##_line##_failed[(_cond)?1:-1]
+#define _FC_ASSERT_STATIC0(_line, _cond) _FC_ASSERT_STATIC1 (_line, (_cond))
+#define FC_ASSERT_STATIC(_cond) _FC_ASSERT_STATIC0 (__LINE__, (_cond))
+
#define FC_MIN(a,b) ((a) < (b) ? (a) : (b))
#define FC_MAX(a,b) ((a) > (b) ? (a) : (b))
#define FC_ABS(a) ((a) < 0 ? -(a) : (a))
@@ -130,7 +134,7 @@ typedef enum _FcValueBinding {
* Serialized data structures use only offsets instead of pointers
* A low bit of 1 indicates an offset.
*/
-
+
/* Is the provided pointer actually an offset? */
#define FcIsEncodedOffset(p) ((((intptr_t) (p)) & 1) != 0)
@@ -181,13 +185,13 @@ typedef struct _FcValueList {
} FcValueList;
#define FcValueListNext(vl) FcPointerMember(vl,next,FcValueList)
-
+
typedef int FcObject;
typedef struct _FcPatternElt *FcPatternEltPtr;
/*
- * Pattern elts are stuck in a structure connected to the pattern,
+ * Pattern elts are stuck in a structure connected to the pattern,
* so they get moved around when the pattern is resized. Hence, the
* values field must be a pointer/offset instead of just an offset
*/
@@ -216,13 +220,13 @@ struct _FcPattern {
fs->fonts[i])
typedef enum _FcOp {
- FcOpInteger, FcOpDouble, FcOpString, FcOpMatrix, FcOpBool, FcOpCharSet,
+ FcOpInteger, FcOpDouble, FcOpString, FcOpMatrix, FcOpRange, FcOpBool, FcOpCharSet, FcOpLangSet,
FcOpNil,
FcOpField, FcOpConst,
- FcOpAssign, FcOpAssignReplace,
+ FcOpAssign, FcOpAssignReplace,
FcOpPrependFirst, FcOpPrepend, FcOpAppend, FcOpAppendLast,
FcOpQuest,
- FcOpOr, FcOpAnd, FcOpEqual, FcOpNotEqual,
+ FcOpOr, FcOpAnd, FcOpEqual, FcOpNotEqual,
FcOpContains, FcOpListing, FcOpNotContains,
FcOpLess, FcOpLessEqual, FcOpMore, FcOpMoreEqual,
FcOpPlus, FcOpMinus, FcOpTimes, FcOpDivide,
@@ -235,12 +239,13 @@ typedef struct _FcExpr {
union {
int ival;
double dval;
- FcChar8 *sval;
+ const FcChar8 *sval;
FcMatrix *mval;
FcBool bval;
FcCharSet *cval;
+ FcLangSet *lval;
FcObject object;
- FcChar8 *constant;
+ const FcChar8 *constant;
struct {
struct _FcExpr *left, *right;
} tree;
@@ -253,7 +258,7 @@ struct _FcExprPage {
FcExprPage *next_page;
FcExpr *next;
FcExpr exprs[(1024 - 2/* two pointers */ - 2/* malloc overhead */) * sizeof (void *) / sizeof (FcExpr)];
- FcExpr end[0];
+ FcExpr end[];
};
typedef enum _FcQual {
@@ -373,7 +378,7 @@ typedef struct _FcSerialize {
void *linear;
FcSerializeBucket *buckets[FC_SERIALIZE_HASH_SIZE];
} FcSerialize;
-
+
/*
* To map adobe glyph names to unicode values, a precomputed hash
* table is used
@@ -387,14 +392,14 @@ typedef struct _FcGlyphName {
/*
* To perform case-insensitive string comparisons, a table
* is used which holds three different kinds of folding data.
- *
+ *
* The first is a range of upper case values mapping to a range
* of their lower case equivalents. Within each range, the offset
* between upper and lower case is constant.
*
* The second is a range of upper case values which are interleaved
* with their lower case equivalents.
- *
+ *
* The third is a set of raw unicode values mapping to a list
* of unicode values for comparison purposes. This allows conversion
* of ß to "ss" so that SS, ss and ß all match. A separate array
@@ -448,7 +453,7 @@ struct _FcConfig {
FcBlanks *blanks;
/*
* List of directories containing fonts,
- * built by recursively scanning the set
+ * built by recursively scanning the set
* of configured directories
*/
FcStrSet *fontDirs;
@@ -497,7 +502,7 @@ struct _FcConfig {
FcExprPage *expr_pool; /* pool of FcExpr's */
};
-
+
extern FcPrivate FcConfig *_fcConfig;
typedef struct _FcFileTime {
@@ -507,6 +512,13 @@ typedef struct _FcFileTime {
typedef struct _FcCharMap FcCharMap;
+typedef struct _FcRange FcRange;
+
+struct _FcRange {
+ FcChar32 begin;
+ FcChar32 end;
+};
+
/* fcblanks.c */
/* fccache.c */
@@ -519,7 +531,7 @@ FcDirCacheBuild (FcFontSet *set, const FcChar8 *dir, struct stat *dir_stat, FcSt
FcPrivate FcBool
FcDirCacheWrite (FcCache *cache, FcConfig *config);
-
+
FcPrivate void
FcCacheObjectReference (void *object);
@@ -528,16 +540,12 @@ FcCacheObjectDereference (void *object);
FcPrivate void
FcCacheFini (void);
-
+
FcPrivate void
FcDirCacheReference (FcCache *cache, int nref);
-#ifdef _WIN32
FcPrivate int
FcStat (const char *file, struct stat *statb);
-#else
-#define FcStat stat
-#endif
/* fccfg.c */
@@ -606,13 +614,13 @@ 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
FcAlignSize (intptr_t size);
-
+
FcPrivate FcSerialize *
FcSerializeCreate (void);
@@ -702,7 +710,7 @@ FcSubstPrint (const FcSubst *subst);
FcPrivate void
FcCharSetPrint (const FcCharSet *c);
-
+
extern FcPrivate int FcDebugVal;
#define FcDebug() (FcDebugVal)
@@ -763,12 +771,12 @@ FcMemFree (int kind, int size);
/* fclang.c */
FcPrivate FcLangSet *
-FcFreeTypeLangSet (const FcCharSet *charset,
+FcFreeTypeLangSet (const FcCharSet *charset,
const FcChar8 *exclusiveLang);
FcPrivate FcLangResult
FcLangCompare (const FcChar8 *s1, const FcChar8 *s2);
-
+
FcPrivate FcLangSet *
FcLangSetPromote (const FcChar8 *lang);
@@ -885,13 +893,13 @@ FcPatternObjectAddWithBinding (FcPattern *p,
FcPrivate FcBool
FcPatternObjectAdd (FcPattern *p, FcObject object, FcValue value, FcBool append);
-
+
FcPrivate FcBool
FcPatternObjectAddWeak (FcPattern *p, FcObject object, FcValue value, FcBool append);
-
+
FcPrivate FcResult
FcPatternObjectGet (const FcPattern *p, FcObject object, int id, FcValue *v);
-
+
FcPrivate FcBool
FcPatternObjectDel (FcPattern *p, FcObject object);