X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=list%2Flist.c;h=64a104a1cd3f7e0eb651e60cfc5782e07b898960;hb=b75390faa6d63ccc1a940bbe5db66141c8e0a1a0;hp=a64997f8688f315af954bc052a04fe7b83e4bfef;hpb=d06f6855b63cd0a86eb6ac3948523dbcee997efa;p=my-code%2Fapi.git diff --git a/list/list.c b/list/list.c index a64997f..64a104a 100644 --- a/list/list.c +++ b/list/list.c @@ -83,12 +83,17 @@ int list_search_data(t_list *list,void *data,int first_bytes) { list_reset(list); - while(list->current!=NULL) { - if(first_bytes<=list->current->data_len) - if(!(memcmp(list->current->data,data,first_bytes))) return L_SUCCESS; - list_next(list); + if(list->start==NULL) { + dprintf(list->outfd,"[list] empty list\n"); + return L_EMPTY_LIST; } + do { + if(list->current!=NULL) + if(first_bytes<=list->current->data_len) + if(!(memcmp(list->current->data,data,first_bytes))) return L_SUCCESS; + } while(list_next(list)!=L_NO_NEXT_ELEMENT); + return L_NO_SUCH_ELEMENT; } @@ -118,6 +123,8 @@ int list_add_element(t_list *list,void *data,int data_len) { memcpy(list->current->next->data,data,data_len); list->current->next->data_len=data_len; + list->current=list->current->next; + dprintf(list->outfd,"[list] element added\n"); return L_SUCCESS; @@ -140,6 +147,8 @@ int list_add_element(t_list *list,void *data,int data_len) { list->start->next=NULL; list->start->prev=NULL; + list->current=list->start; + dprintf(list->outfd,"[list] added initial element\n"); return L_SUCCESS;