X-Git-Url: https://www.hackdaworld.org/gitweb/?a=blobdiff_plain;f=list%2Flist.c;h=0cfb44166f0f99184c8dfbeb488b5e5a15d03eba;hb=97756a0d0fba8437bc029fbece8b48fb4846b00f;hp=d5cf54b6734d6d90fd09f8468133a87a2a503c29;hpb=6cf9bd920bfff6aac1b7eb63e7bf9b036fbd7486;p=my-code%2Fapi.git diff --git a/list/list.c b/list/list.c index d5cf54b..0cfb441 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; } @@ -153,10 +158,8 @@ int list_count(t_list *list) { list_reset(list); - while(list->current!=NULL) { - list_next(list); - ++count; - } + if(list->current!=NULL) count++; + if(count) while(list_next(list)!=L_NO_NEXT_ELEMENT) count++; return count; }