projects
/
my-code
/
api.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
point to added list element in case after adding an element
[my-code/api.git]
/
list
/
list.c
diff --git
a/list/list.c
b/list/list.c
index
a64997f
..
64a104a
100644
(file)
--- 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);
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;
}
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;
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;
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->start->next=NULL;
list->start->prev=NULL;
+ list->current=list->start;
+
dprintf(list->outfd,"[list] added initial element\n");
return L_SUCCESS;
dprintf(list->outfd,"[list] added initial element\n");
return L_SUCCESS;