/* Adding items to the list */
EAPI int ecore_list_append(Ecore_List * list, void *_data);
EAPI int ecore_list_prepend(Ecore_List * list, void *_data);
EAPI int ecore_list_insert(Ecore_List * list, void *_data);
/* Removing items from the list */
EAPI int ecore_list_remove_destroy(Ecore_List *list);
EAPI void *ecore_list_remove(Ecore_List * list);
EAPI void *ecore_list_remove_first(Ecore_List * list);
EAPI void *ecore_list_remove_last(Ecore_List * list);
/* Retrieve the current position in the list */
EAPI void *ecore_list_current(Ecore_List * list);
EAPI void *ecore_list_first(Ecore_List * list);
EAPI void *ecore_list_last(Ecore_List * list);
EAPI int ecore_list_index(Ecore_List * list);
EAPI int ecore_list_nodes(Ecore_List * list);
/* Traversing the list */
EAPI int ecore_list_for_each(Ecore_List *list, Ecore_For_Each function,
void *user_data);
EAPI void *ecore_list_goto_first(Ecore_List * list);
EAPI void *ecore_list_goto_last(Ecore_List * list);
EAPI void *ecore_list_goto_index(Ecore_List * list, int index);
EAPI void *ecore_list_goto(Ecore_List * list, void *_data);
/* Traversing the list and returning data */
EAPI void *ecore_list_next(Ecore_List * list);
/* Check to see if there is any data in the list */
EAPI int ecore_list_is_empty(Ecore_List * list);
/* Remove every node in the list without freeing the list itself */
EAPI int ecore_list_clear(Ecore_List * list);
/* Free the list and it's contents */
EAPI void ecore_list_destroy(Ecore_List *list);
/* Creating and initializing list nodes */
EAPI Ecore_List_Node *ecore_list_node_new(void);
EAPI int ecore_list_node_init(Eco /* Destroying nodes */
EAPI int ecore_list_node_destroy(Ecore_List_Node * _e_node, Ecore_Free_Cb free_func);
EAPI int ecore_list_set_free_cb(Ecore_List * list, Ecore_Free_Cb free_func);
/* Creating and initializing new list structures */
EAPI Ecore_DList *ecore_dlist_new(void);
EAPI int ecore_dlist_init(Ecore_DList *list);
EAPI void ecore_dlist_destroy(Ecore_DList *list);
/* Adding items to the list */
EAPI int ecore_dlist_append(Ecore_DList * _e_dlist, void *_data);
EAPI int ecore_dlist_prepend(Ecore_DList * _e_dlist, void *_data);
EAPI int ecore_dlist_insert(Ecore_DList * _e_dlist, void *_data);
/* Info about list's state */
EAPI void *ecore_dlist_current(Ecore_DList *list);
EAPI int ecore_dlist_index(Ecore_DList *list);
# define ecore_dlist_nodes(list) ecore_list_nodes(ECORE_LIST(list))
/* Removing items from the list */
EAPI void *ecore_dlist_remove(Ecore_DList * _e_dlist);
EAPI void *ecore_dlist_remove_first(Ecore_DList * _e_dlist);
EAPI int ecore_dlist_remove_destroy(Ecore_DList *list);
EAPI void *ecore_dlist_remove_last(Ecore_DList * _e_dlist);
/* Traversing the list */
# define ecore_dlist_for_each(list, function, user_data) \
ecore_list_for_each(ECORE_LIST(list), function, user_data)
EAPI void *ecore_dlist_goto_first(Ecore_DList * _e_dlist);
EAPI void *ecore_dlist_goto_last(Ecore_DList * _e_dlist);
EAPI void *ecore_dlist_goto_index(Ecore_DList * _e_dlist, int index);
EAPI void *ecore_dlist_goto(Ecore_DList * _e_dlist, void *_data);
/* Traversing the list and returning data */
EAPI void *ecore_dlist_next(Ecore_DList * list);
EAPI void *ecore_dlist_previous(Ecore_DList * list);
/* Check to see if there is any data in the list */
EAPI int ecore_dlist_is_empty(Ecore_DList * _e_dlist);
/* Remove every node in the list without free'ing it */
EAPI int ecore_dlist_clear(Ecore_DList * _e_dlist);
/* Creating and initializing list nodes */
EAPI int ecore_dlist_node_init(Ecore_DList_Node * node);
EAPI Ecore_DList_Node *ecore_dlist_node_new(void);
/* Destroying nodes */
EAPI int ecore_dlist_node_destroy(Ecore_DList_Node * node, Ecore_Free_Cb free_func);
EAPI int ecore_dlist_set_free_cb(Ecore_DList * dlist, Ecore_Free_Cb free_func);
re_List_Node *newNode);