aboutsummaryrefslogtreecommitdiffstats
path: root/src/itree.h
diff options
context:
space:
mode:
authorPo Lu2022-10-29 08:48:58 +0800
committerPo Lu2022-10-29 08:48:58 +0800
commitfbf2bfba0770b7f575d8ef06ca3a08cf1a38cc2d (patch)
tree129dd47c3f169da978458eb6c398e881a337c6f8 /src/itree.h
parent7ca456da7f72feeeec571ece3c373e2b3a3d327b (diff)
downloademacs-fbf2bfba0770b7f575d8ef06ca3a08cf1a38cc2d.tar.gz
emacs-fbf2bfba0770b7f575d8ef06ca3a08cf1a38cc2d.zip
Fix function declarations in itree headers
* src/itree.h: Make all declarations `extern'.
Diffstat (limited to 'src/itree.h')
-rw-r--r--src/itree.h65
1 files changed, 33 insertions, 32 deletions
diff --git a/src/itree.h b/src/itree.h
index 3df07ac1b7e..c6b68d36672 100644
--- a/src/itree.h
+++ b/src/itree.h
@@ -79,8 +79,7 @@ struct itree_node
79 79
80 NOTE: The interval iterators ensure nodes are clean before 80 NOTE: The interval iterators ensure nodes are clean before
81 yielding them, so BEGIN and END may be safely used as buffer 81 yielding them, so BEGIN and END may be safely used as buffer
82 positions then. 82 positions then. */
83 */
84 83
85 ptrdiff_t begin; /* The beginning of this interval. */ 84 ptrdiff_t begin; /* The beginning of this interval. */
86 ptrdiff_t end; /* The end of the interval. */ 85 ptrdiff_t end; /* The end of the interval. */
@@ -100,39 +99,41 @@ struct itree_tree
100 intmax_t size; /* Number of nodes in the tree. */ 99 intmax_t size; /* Number of nodes in the tree. */
101}; 100};
102 101
103enum itree_order { 102enum itree_order
104 ITREE_ASCENDING, 103 {
105 ITREE_DESCENDING, 104 ITREE_ASCENDING,
106 ITREE_PRE_ORDER, 105 ITREE_DESCENDING,
107}; 106 ITREE_PRE_ORDER,
108 107 };
109void itree_node_init (struct itree_node *, bool, bool, Lisp_Object); 108
110ptrdiff_t itree_node_begin (struct itree_tree *, struct itree_node *); 109extern void itree_node_init (struct itree_node *, bool, bool, Lisp_Object);
111ptrdiff_t itree_node_end (struct itree_tree *, struct itree_node *); 110extern ptrdiff_t itree_node_begin (struct itree_tree *, struct itree_node *);
112void itree_node_set_region (struct itree_tree *, struct itree_node *, 111extern ptrdiff_t itree_node_end (struct itree_tree *, struct itree_node *);
113 ptrdiff_t, ptrdiff_t); 112extern void itree_node_set_region (struct itree_tree *, struct itree_node *,
114struct itree_tree *itree_create (void); 113 ptrdiff_t, ptrdiff_t);
115void itree_destroy (struct itree_tree *); 114extern struct itree_tree *itree_create (void);
116intmax_t itree_size (struct itree_tree *); 115extern void itree_destroy (struct itree_tree *);
117void itree_clear (struct itree_tree *); 116extern intmax_t itree_size (struct itree_tree *);
118void itree_insert (struct itree_tree *tree, struct itree_node *node, 117extern void itree_clear (struct itree_tree *);
119 ptrdiff_t begin, ptrdiff_t end); 118extern void itree_insert (struct itree_tree *, struct itree_node *,
120struct itree_node *itree_remove (struct itree_tree *, 119 ptrdiff_t, ptrdiff_t);
121 struct itree_node *); 120extern struct itree_node *itree_remove (struct itree_tree *,
122void itree_insert_gap (struct itree_tree *, ptrdiff_t, ptrdiff_t); 121 struct itree_node *);
123void itree_delete_gap (struct itree_tree *, ptrdiff_t, ptrdiff_t); 122extern void itree_insert_gap (struct itree_tree *, ptrdiff_t, ptrdiff_t);
123extern void itree_delete_gap (struct itree_tree *, ptrdiff_t, ptrdiff_t);
124 124
125/* Iteration functions. Almost all code should use ITREE_FOREACH 125/* Iteration functions. Almost all code should use ITREE_FOREACH
126 instead. */ 126 instead. */
127bool itree_iterator_busy_p (void); 127extern bool itree_iterator_busy_p (void);
128struct itree_iterator * 128extern struct itree_iterator *itree_iterator_start (struct itree_tree *,
129itree_iterator_start (struct itree_tree *tree, ptrdiff_t begin, 129 ptrdiff_t,
130 ptrdiff_t end, enum itree_order order, 130 ptrdiff_t,
131 const char *file, int line); 131 enum itree_order,
132void itree_iterator_narrow (struct itree_iterator *, ptrdiff_t, 132 const char *, int);
133 ptrdiff_t); 133extern void itree_iterator_narrow (struct itree_iterator *, ptrdiff_t,
134void itree_iterator_finish (struct itree_iterator *); 134 ptrdiff_t);
135struct itree_node *itree_iterator_next (struct itree_iterator *); 135extern void itree_iterator_finish (struct itree_iterator *);
136extern struct itree_node *itree_iterator_next (struct itree_iterator *);
136 137
137/* Iterate over the intervals between BEG and END in the tree T. 138/* Iterate over the intervals between BEG and END in the tree T.
138 N will hold successive nodes. ORDER can be one of : `ASCENDING`, 139 N will hold successive nodes. ORDER can be one of : `ASCENDING`,