Fixed lsearch related arguments.

This commit is contained in:
Scott Anderson 2017-05-13 13:37:17 +12:00
parent f4c90635ff
commit a4eeedfa34
15 changed files with 58 additions and 33 deletions

View file

@ -152,6 +152,11 @@ void *list_get(list_t *list, size_t index) {
return &array[index];
}
void *list_getp(list_t *list, size_t index) {
void **elem = list_get(list, index);
return elem ? *elem : NULL;
}
void list_qsort(list_t *list, int compare(const void *, const void *)) {
if (!sway_assert(list && compare, "Invalid argument")) {
return;
@ -211,7 +216,7 @@ ssize_t list_lsearch(const list_t *list, int compare(const void *key, const void
uint8_t (*array)[size] = list->items;
for (size_t i = 0; i < list->length; ++i) {
if (compare(&key, &array[i]) == 0) {
if (compare(key, &array[i]) == 0) {
if (ret) {
memcpy(ret, &array[i], size);
}

View file

@ -386,3 +386,7 @@ char *argsep(char **stringp, const char *delim) {
found:
return start;
}
int strcmp_ptr(const void *a, const void *b) {
return strcmp(*(char **)a, *(char **)b);
}