# HG changeset patch # User Mike Becker # Date 1668707215 -3600 # Node ID 7aaec630cf15c767781bb8c0fc36ef4dfd672bc9 # Parent 85c08391a0906c3e979e847209db58fb9103609e #219 array list: implement find diff -r 85c08391a090 -r 7aaec630cf15 src/array_list.c --- a/src/array_list.c Thu Nov 17 18:32:59 2022 +0100 +++ b/src/array_list.c Thu Nov 17 18:46:55 2022 +0100 @@ -232,7 +232,16 @@ struct cx_list_s const *list, void const *elem ) { - return 0; + char *cur = ((cx_array_list const *) list)->data; + + for (size_t i = 0; i < list->size; i++) { + if (0 == list->cmpfunc(elem, cur)) { + return i; + } + cur += list->itemsize; + } + + return list->size; } static void cx_arl_sort(struct cx_list_s *list) { diff -r 85c08391a090 -r 7aaec630cf15 test/test_list.cpp --- a/test/test_list.cpp Thu Nov 17 18:32:59 2022 +0100 +++ b/test/test_list.cpp Thu Nov 17 18:46:55 2022 +0100 @@ -876,7 +876,6 @@ } TEST_F(ArrayList, cxListFind) { - ASSERT_EQ(1,0); // TODO: remove when implemented verifyFind(arrayListFromTestData()); }