From f0f0b2b003e0a58e08f083fbabae4004a32a9436 Mon Sep 17 00:00:00 2001 From: fanasina Date: Fri, 11 Apr 2025 10:31:38 +0200 Subject: [PATCH] list_t add more general search, change previose search name --- list_t/src/list_t/list_t.h | 12 ++++++++---- y_socket_t/src/y_socket_t/y_node_t.c | 4 +++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/list_t/src/list_t/list_t.h b/list_t/src/list_t/list_t.h index 7a96209..fc4db83 100644 --- a/list_t/src/list_t/list_t.h +++ b/list_t/src/list_t/list_t.h @@ -30,7 +30,8 @@ void remove_all_list_in_##type(struct main_list_##type *var_list);\ void increment_list_##type(struct main_list_##type * var_list);\ void decrement_list_##type(struct main_list_##type * var_list);\ - struct list_##type * search_from_begin_in_list_##type(struct main_list_##type *var_list, type value, int funcCmp(type, type)); + struct list_##type * search_first_occ_with_mov_from_curr_in_list_##type(struct main_list_##type *var_list, type value, int (*funcCmp)(type, type), void (*incr_or_decr_mov)(struct main_list_##type *));\ + struct list_##type * search_first_occ_from_begin_in_list_##type(struct main_list_##type *var_list, type value, int (*funcCmp)(type, type));\ GENERATE_LIST_ALL(TYPE_CHAR) @@ -203,14 +204,17 @@ GENERATE_LIST_ALL(TYPE_PTR) var_list->current_list = (var_list->current_list)->preview;\ --(var_list->current_index);\ }\ - struct list_##type * search_from_begin_in_list_##type(struct main_list_##type *var_list, type value, int (*funcCmp)(type, type)){\ - for(move_current_to_begin_list_##type(var_list); var_list->current_list; increment_list_##type(var_list)){\ + struct list_##type * search_first_occ_with_mov_from_curr_in_list_##type(struct main_list_##type *var_list, type value, int (*funcCmp)(type, type), void (*incr_or_decr_mov)(struct main_list_##type *)){\ + for(; var_list->current_list; incr_or_decr_mov(var_list)){\ if(0 == funcCmp(value, var_list->current_list->value))\ return var_list->current_list;\ }\ return NULL;\ }\ - + struct list_##type * search_first_occ_from_begin_in_list_##type(struct main_list_##type *var_list, type value, int (*funcCmp)(type, type)){\ + move_current_to_begin_list_##type(var_list);\ + return search_first_occ_with_mov_from_curr_in_list_##type(var_list, value, funcCmp, increment_list_##type);\ + }\ diff --git a/y_socket_t/src/y_socket_t/y_node_t.c b/y_socket_t/src/y_socket_t/y_node_t.c index 20eaa50..b325cfc 100644 --- a/y_socket_t/src/y_socket_t/y_node_t.c +++ b/y_socket_t/src/y_socket_t/y_node_t.c @@ -35,12 +35,14 @@ int y_NODE_T_cmp(y_NODE_T nodeA, y_NODE_T nodeB){ return ret; } struct list_y_NODE_T * search_node_in_list_y_NODE_T(struct main_list_y_NODE_T *listNodes, y_NODE_T node){ - FOR_LIST_FORM_BEGIN(y_NODE_T, listNodes){ +/* FOR_LIST_FORM_BEGIN(y_NODE_T, listNodes){ if(y_NODE_T_cmp(node, listNodes->current_list->value) == 0){ return listNodes->current_list; } } return NULL; + */ + return search_first_occ_from_begin_in_list_y_NODE_T(listNodes, node, y_NODE_T_cmp); } int set_addr_y_NODE_T(y_NODE_T *node, char * addrStr){