From b3ee868f9443d4de4b26d159e49fbd2c512ee1e8 Mon Sep 17 00:00:00 2001 From: Jonathan Blandford Date: Fri, 29 Sep 2000 23:13:02 +0000 Subject: Added function to keep symetry with g_node_insert_before. 2000-09-29 2000-09-29 Jonathan Blandford * gnode.c (g_node_insert_after): Added function to keep symetry with g_node_insert_before. 2000-09-29 Jonathan Blandford * glib/tmpl/trees-nary.sgml: Add g_node_insert_after(). --- gnode.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'gnode.c') diff --git a/gnode.c b/gnode.c index d09c8ef79..5b72300c5 100644 --- a/gnode.c +++ b/gnode.c @@ -280,6 +280,42 @@ g_node_insert_before (GNode *parent, return node; } +GNode* +g_node_insert_after (GNode *parent, + GNode *sibling, + GNode *node) +{ + g_return_val_if_fail (parent != NULL, node); + g_return_val_if_fail (node != NULL, node); + g_return_val_if_fail (G_NODE_IS_ROOT (node), node); + if (sibling) + g_return_val_if_fail (sibling->parent == parent, node); + + node->parent = parent; + + if (sibling) + { + if (sibling->next) + { + sibling->next->prev = node; + } + node->next = sibling->next; + node->prev = sibling; + sibling->next = node; + } + else + { + if (parent->children) + { + node->next = parent->children; + parent->children->prev = node; + } + parent->children = node; + } + + return node; +} + GNode* g_node_prepend (GNode *parent, GNode *node) -- cgit v1.2.1