static gboolean cloud_config_simplify(GNode *node, __unused__ gpointer data) {
	if (node->data) {
		return false;
	}

	GNode *child = g_node_last_child(node);
	while (child) {
		if (child->data) {
			child = g_node_prev_sibling(child);
			continue;
		}
		GNode *remove = child;
		child = g_node_prev_sibling(child);
		g_node_append(node->parent, g_node_copy(remove));
		g_node_unlink(remove);
		g_node_destroy(remove);
	}

	if (g_node_n_children(node) == 0) {
		g_node_unlink(node);
		g_node_destroy(node);
	}

	return false;
}
/**
 * get_previous_sibling_node(GNode * cur_node)
 * @brief Gets previous sibling node, or wraps around if NULL
 * @param cur_node
 * @return GNode of sibling previous, or wrapped around
 */
GNode *get_prev_sibling_node(GNode * cur_node)
{
	GNode *tmp_node = NULL;
	if ((tmp_node = g_node_prev_sibling(cur_node)) == NULL) {
		return g_node_last_sibling(cur_node);
	}
	return tmp_node;
}
Exemple #3
0
plist_t plist_get_prev_sibling(plist_t node)
{
	return (plist_t) g_node_prev_sibling((GNode *) node);
}
Exemple #4
0
GNode*
ada_gnode_prev_sibling (GNode * node)
{
  return g_node_prev_sibling (node);
}