[Tree] add_child and add_sibling now return inserted node. Remove unused H_FILES...
[cgds.git] / src / Tree.h
index 6ac0864..4d20741 100644 (file)
@@ -57,9 +57,7 @@ Tree* _tree_new(
  * Usage: Tree* tree_new(<Type> type)
  */
 #define tree_new(type) \
-{ \
-  _tree_new(sizeof(type)); \
-}
+  _tree_new(sizeof(type))
 
 /**
  * @brief Copy constructor (shallow copy, ok for basic types).
@@ -120,7 +118,7 @@ void _tree_set_root(
  */
 #define tree_set_root(tree, data) \
 { \
-  typeof((data)) tmp = data; \
+  typeof(data) tmp = data; \
   _tree_set_root(tree, &tmp); \
 }
 
@@ -163,14 +161,14 @@ void _tree_set(
  */
 #define tree_set(tree, treeNode, data) \
 { \
-  typeof((data)) tmp = data; \
-  _tree_set(tree,treeNode,&tmp); \
+  typeof(data) tmp = data; \
+  _tree_set(tree, treeNode, &tmp); \
 }
 
 /**
- * @brief Add a child to current node children.
+ * @brief Append a child to current node.
  */
-void _tree_add_child(
+TreeNode* _tree_add_child(
   Tree* tree, ///< "this" pointer.
   TreeNode* treeNode, ///< Pointer to a node in the "this" tree.
   void* data ///< Pointer to data to be added.
@@ -181,19 +179,20 @@ void _tree_add_child(
  * @param tree "this" pointer.
  * @param treeNode Pointer to a node in the "this" tree.
  * @param data Data to be added.
+ * @return The newly added tree node.
  *
- * Usage: void tree_add_child(Tree* tree, TreeNode* treeNode, void data)
+ * Usage: TreeNode* tree_add_child(Tree* tree, TreeNode* treeNode, void data)
  */
 #define tree_add_child(tree,treeNode,data) \
 { \
-  typeof((data)) tmp = data; \
-  _tree_add_child(tree,treeNode,&tmp); \
+  typeof(data) tmp = data; \
+  _tree_add_child(tree, treeNode, &tmp); \
 }
 
 /**
  * @brief Add a sibling to current node (after it on the right).
  */
-void _tree_add_sibling(
+TreeNode* _tree_add_sibling(
   Tree* tree, ///< "this" pointer.
   TreeNode* treeNode, ///< Pointer to a node in the "this" tree.
   void* data ///< Pointer to data to be added.
@@ -204,12 +203,13 @@ void _tree_add_sibling(
  * @param tree "this" pointer.
  * @param treeNode Pointer to a node in the "this" tree.
  * @param data Data to be added.
+ * @return The newly added tree node.
  *
- * Usage: void tree_add_sibling(Tree* tree, TreeNode* treeNode, void data)
+ * Usage: TreeNode* tree_add_sibling(Tree* tree, TreeNode* treeNode, void data)
  */
 #define tree_add_sibling(tree, treeNode, data) \
 { \
-  typeof((data)) tmp = data; \
+  typeof(data) tmp = data; \
   _tree_add_sibling(tree, treeNode, &tmp); \
 }