#include <stdlib.h>
#include <ccan/typesafe_cb/typesafe_cb.h>
-/*
+/**
* asearch - search an array of elements
* @key: pointer to item being searched for
* @base: pointer to data to sort
#if HAVE_TYPEOF
#define asearch(key, base, num, cmp) \
((__typeof__(*(base))*)(bsearch((key), (base), (num), sizeof(*(base)), \
- cast_if_type((cmp), \
- int (*)(const __typeof__(*(key)) *, \
- const __typeof__(*(base)) *), \
- int (*)(const void *, const void *)))))
+ cast_if_type(int (*)(const void *, const void *), \
+ (cmp), &*(cmp), \
+ int (*)(const __typeof__(*(key)) *, \
+ const __typeof__(*(base)) *)))))
#else
#define asearch(key, base, num, cmp) \
(bsearch((key), (base), (num), sizeof(*(base)), \