another bugfix
[my-code/api.git] / list / list.c
index d5cf54b..13493e6 100644 (file)
@@ -83,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;
 }
@@ -153,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;
 }