]> git.wh0rd.org Git - fontconfig.git/blob - src/fcavl.h
Add match routine that returns list of fonts
[fontconfig.git] / src / fcavl.h
1 /*
2  * $XFree86: $
3  *
4  * Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
5  *
6  * Permission to use, copy, modify, distribute, and sell this software and its
7  * documentation for any purpose is hereby granted without fee, provided that
8  * the above copyright notice appear in all copies and that both that
9  * copyright notice and this permission notice appear in supporting
10  * documentation, and that the name of Keith Packard not be used in
11  * advertising or publicity pertaining to distribution of the software without
12  * specific, written prior permission.  Keith Packard makes no
13  * representations about the suitability of this software for any purpose.  It
14  * is provided "as is" without express or implied warranty.
15  *
16  * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
17  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
18  * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
19  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
20  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
21  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
22  * PERFORMANCE OF THIS SOFTWARE.
23  */
24
25 #ifndef _FCAVL_H_
26 #define _FCAVL_H_
27
28 /*
29  * fcavl.h
30  *
31  * balanced binary tree
32  */
33
34 typedef struct _FcAvlNode FcAvlNode;
35
36 struct _FcAvlNode {
37     FcAvlNode       *left, *right;
38     short           balance;
39 };
40
41 typedef FcBool (*FcAvlMore) (FcAvlNode *a, FcAvlNode *b);
42
43 FcBool  FcAvlInsert (FcAvlMore more, FcAvlNode **tree, FcAvlNode *leaf);
44 int     FcAvlDelete (FcAvlMore more, FcAvlNode **tree, FcAvlNode *leaf);
45
46 #endif /* _FCAVL_H_ */