Index: trunk/src_plugins/sketch_route/cdt/list/list.c =================================================================== --- trunk/src_plugins/sketch_route/cdt/list/list.c (revision 18214) +++ trunk/src_plugins/sketch_route/cdt/list/list.c (revision 18215) @@ -89,6 +89,18 @@ return len; } +int LST(get_index)(LST(node_t) *list, LST(node_t) *node) +{ + int i; + if (list == NULL) + return -1; + for (i = 0; list != node && list != NULL; list = list->next) + i++; + if (list == NULL) + return -1; + return i; +} + void LST(free)(LST(node_t) *list) { LST(node_t) *node, *next_node; Index: trunk/src_plugins/sketch_route/cdt/list/list.h =================================================================== --- trunk/src_plugins/sketch_route/cdt/list/list.h (revision 18214) +++ trunk/src_plugins/sketch_route/cdt/list/list.h (revision 18215) @@ -14,5 +14,8 @@ LST(node_t) *LST(remove)(LST(node_t) *list, LST(node_t) *node); LST(node_t) *LST(remove_item)(LST(node_t) *list, LST_ITEM_T *item); LST(node_t) *LST(find)(LST(node_t) *list, LST_ITEM_T *item); + size_t LST(length)(LST(node_t) *list); +int LST(get_index)(LST(node_t) *list, LST(node_t) *node); + void LST(free)(LST(node_t) *list);