]> git.wh0rd.org - fontconfig.git/blobdiff - src/fcint.h
Add ref counting to font config patterns so that FcFontSort return values
[fontconfig.git] / src / fcint.h
index 4414325e13e1bdcf402c8d033faa0e650d89c499..69187300aa39afc894bc2ac4265c7f71d9d930d6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $XFree86: xc/lib/fontconfig/src/fcint.h,v 1.8 2002/05/21 17:06:22 keithp Exp $
+ * $XFree86: xc/lib/fontconfig/src/fcint.h,v 1.13 2002/06/03 08:31:15 keithp Exp $
  *
  * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc.
  *
@@ -36,6 +36,7 @@
 #include <time.h>
 #include <fontconfig/fontconfig.h>
 #include <fontconfig/fcprivate.h>
+#include <fontconfig/fcfreetype.h>
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
@@ -93,13 +94,14 @@ typedef struct _FcValueList {
 
 typedef struct _FcPatternElt {
     const char     *object;
-    FcValueList    *values;
+    FcValueList            *values;
 } FcPatternElt;
 
 struct _FcPattern {
     int                    num;
     int                    size;
-    FcPatternElt   *elts;
+    int                    ref;
+    FcPatternElt    *elts;
 };
 
 typedef enum _FcOp {
@@ -133,7 +135,7 @@ typedef struct _FcExpr {
 } FcExpr;
 
 typedef enum _FcQual {
-    FcQualAny, FcQualAll
+    FcQualAny, FcQualAll, FcQualFirst, FcQualNotFirst
 } FcQual;
 
 typedef struct _FcTest {
@@ -157,29 +159,16 @@ typedef struct _FcSubst {
     FcEdit             *edit;
 } FcSubst;
 
-typedef struct _FcCharLeaf FcCharLeaf;
-typedef struct _FcCharBranch FcCharBranch;
-typedef union  _FcCharNode FcCharNode;
-
-struct _FcCharLeaf {
+typedef struct _FcCharLeaf {
     FcChar32   map[256/32];
-};
-
-union _FcCharNode {
-    FcCharBranch    *branch;
-    FcCharLeaf     *leaf;
-};
-
-struct _FcCharBranch {
-    FcCharNode     nodes[256];
-    FcChar8        next[256];
-};
+} FcCharLeaf;
 
 struct _FcCharSet {
-    int                    levels;
     int                    ref;        /* reference count */
-    FcBool         constant;   /* shared constant */
-    FcCharNode     node;
+    FcBool         constant;   /* in hash table constant */
+    int                    num;        /* size of leaves and numbers arrays */
+    FcCharLeaf     **leaves;
+    FcChar16       *numbers;
 };
 
 struct _FcStrSet {
@@ -482,7 +471,10 @@ void
 FcValueListDestroy (FcValueList *l);
     
 FcPatternElt *
-FcPatternFind (FcPattern *p, const char *object, FcBool insert);
+FcPatternFindElt (const FcPattern *p, const char *object);
+
+FcPatternElt *
+FcPatternInsertElt (FcPattern *p, const char *object);
 
 /* fcrender.c */