X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=list%2Flist.c;h=13493e6dc4461ebc403298c9a54e148ef72ef157;hb=8e2aee37f009e1a796e68ac36e8a1782091422e5;hp=895cf260cd8b8135b960724414a4c0b6fc034bf7;hpb=b8458ffac23aab55ba5316d28dd803dd34297181;p=my-code%2Fapi.git diff --git a/list/list.c b/list/list.c index 895cf26..13493e6 100644 --- a/list/list.c +++ b/list/list.c @@ -28,6 +28,8 @@ int list_shutdown(t_list *list) { int list_next(t_list *list) { + if(list->current->next==NULL) return L_NO_NEXT_ELEMENT; + list->current=list->current->next; return L_SUCCESS; @@ -58,6 +60,11 @@ int list_del_element(t_list *list,t_list_element *element) { return L_SUCCESS; } +int list_del_current(t_list *list) { + + return(list_del_element(list,list->current)); +} + int list_destroy(t_list *list) { if(list->start==NULL) { @@ -76,11 +83,11 @@ 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); - } + 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; } @@ -146,10 +153,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; }