Hi, This is the apr_hash on steroids :)
It enables to do 'worker' things like:
static int lwr_worker( const void **key, apr_ssize_t klen, void **val)
{
if (!key)
return -1;
*val = strlwr(*val);
return 0;
}
...
apr_hlist_walk(list, lwr_worker);
or sorting:
static int sort_icase(apr_hlist_entry_t *a, apr_hlist_entry_t *b)
{
const void *n1, *n2;
apr_ssize_t l1, l2;
apr_hlist_entry(a, &n1, &l1, NULL);
apr_hlist_entry(b, &n2, &l2, NULL);
return strnicmp(n1, n2, l1 < l2 ? l1 : l2);
}
...
/* now sort the list */
apr_hlist_sort(list, sort_icase);
Don't now if anyone would find it usefull, but here it is :)
MT.
apr_hlist.h
Description: Binary data
apr_hlist.c
Description: Binary data
