File: utilTextAttributeAdmin.h

package info (click to toggle)
ted 2.16-5
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 13,944 kB
  • ctags: 20,273
  • sloc: ansic: 167,980; makefile: 12,518; sh: 263
file content (65 lines) | stat: -rw-r--r-- 1,784 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/************************************************************************/
/*									*/
/*  Manage a lookup to keep track of text attributes.			*/
/*									*/
/************************************************************************/

#   ifndef	UTIL_TEXT_ATTRIBUTE_ADMIN_H
#   define	UTIL_TEXT_ATTRIBUTE_ADMIN_H

#   include	<utilTextAttribute.h>

typedef struct IntegerValueNode
    {
    unsigned int			ivnIsLeaf:1;
    int					ivnChildCount:31;

    union
	{
	struct IntegerValueNode *	u_ivnChildren;
	int				u_ivnReference;
	} ivn_u;
#   define ivnChildren	ivn_u.u_ivnChildren
#   define ivnReference	ivn_u.u_ivnReference

    } IntegerValueNode;

typedef struct TextAttributeList
    {
    int			talCount;
    TextAttribute **	talPages;
    IntegerValueNode	talValueNodes;
    } TextAttributeList;

typedef void (*TextAttributeFunction)(	const TextAttribute *	ta,
					int			n,
					void *			through );

/************************************************************************/
/*									*/
/*  Routine declarations.						*/
/*									*/
/************************************************************************/

extern void utilInitIntegerValueNode(	IntegerValueNode *	tal );

extern void utilCleanIntegerValueNode(	IntegerValueNode *	tal );

extern void utilInitTextAttributeList(	TextAttributeList *	tal );

extern void utilCleanTextAttributeList(	TextAttributeList *	tal );

extern int utilTextAttributeNumber(	TextAttributeList *	tal,
					const TextAttribute *	ta );

extern void utilGetTextAttributeByNumber(
					TextAttribute *			ta,
					const TextAttributeList *	tal,
					int				n );

extern void utilForAllTextAttributes(
				const TextAttributeList *	tal,
				TextAttributeFunction		f,
				void *				through );

#   endif	/*  UTIL_TEXT_ATTRIBUTE_ADMIN_H	*/