X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=src%2Ffcint.h;h=83a7a435be4984b27e3de80cc5599e602cca966f;hb=HEAD;hp=78591c151e9dc3a1ff176f3d15aa9fdc056458fd;hpb=888f9427ae84195104855d2bb2fbb6d44067a998;p=fontconfig.git diff --git a/src/fcint.h b/src/fcint.h index 78591c1..83a7a43 100644 --- a/src/fcint.h +++ b/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,9 +107,9 @@ #define FC_MEM_NUM 30 -#define FC_BANK_DYNAMIC 0 -#define FC_BANK_FIRST 1 -#define FC_BANK_LANGS 0xfcfcfcfc +#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)) @@ -134,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) @@ -185,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 */ @@ -220,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, @@ -239,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; @@ -257,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 { @@ -377,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 @@ -391,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 @@ -421,12 +422,6 @@ typedef struct _FcCaseFold { #define FC_MAX_FILE_LEN 4096 -/* XXX remove these when we're ready */ - -#define fc_value_string(v) FcValueString(v) -#define fc_value_charset(v) FcValueCharSet(v) -#define fc_value_langset(v) FcValueLangSet(v) - #define FC_CACHE_MAGIC_MMAP 0xFC02FC04 #define FC_CACHE_MAGIC_ALLOC 0xFC02FC05 #define FC_CACHE_CONTENT_VERSION 3 /* also check FC_CACHE_VERSION */ @@ -458,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; @@ -507,7 +502,7 @@ struct _FcConfig { FcExprPage *expr_pool; /* pool of FcExpr's */ }; - + extern FcPrivate FcConfig *_fcConfig; typedef struct _FcFileTime { @@ -517,6 +512,13 @@ typedef struct _FcFileTime { typedef struct _FcCharMap FcCharMap; +typedef struct _FcRange FcRange; + +struct _FcRange { + FcChar32 begin; + FcChar32 end; +}; + /* fcblanks.c */ /* fccache.c */ @@ -529,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); @@ -538,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 */ @@ -616,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); @@ -712,7 +710,7 @@ FcSubstPrint (const FcSubst *subst); FcPrivate void FcCharSetPrint (const FcCharSet *c); - + extern FcPrivate int FcDebugVal; #define FcDebug() (FcDebugVal) @@ -773,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); @@ -895,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);