diff options
author | Peter S. Mazinger <ps.m@gmx.net> | 2005-12-08 14:44:48 +0000 |
---|---|---|
committer | Peter S. Mazinger <ps.m@gmx.net> | 2005-12-08 14:44:48 +0000 |
commit | 960acb5e3248b2ba657f65ea011703c57539c5a8 (patch) | |
tree | 4a3b0d42a1b25c614074f4b7635aa15e9abefba6 /libc | |
parent | c6023f4908ee819063fdbbd5d51a5a51548ed573 (diff) | |
download | uClibc-alpine-960acb5e3248b2ba657f65ea011703c57539c5a8.tar.bz2 uClibc-alpine-960acb5e3248b2ba657f65ea011703c57539c5a8.tar.xz |
Implement __tfind/__lfind and use them
Diffstat (limited to 'libc')
-rw-r--r-- | libc/misc/search/lsearch.c | 8 | ||||
-rw-r--r-- | libc/misc/search/tsearch.c | 3 |
2 files changed, 8 insertions, 3 deletions
diff --git a/libc/misc/search/lsearch.c b/libc/misc/search/lsearch.c index 4bc45ca36..4071cf1ab 100644 --- a/libc/misc/search/lsearch.c +++ b/libc/misc/search/lsearch.c @@ -14,7 +14,7 @@ #ifdef L_lfind -void *lfind(const void *key, const void *base, size_t *nmemb, +void attribute_hidden *__lfind(const void *key, const void *base, size_t *nmemb, size_t size, int (*compar)(const void *, const void *)) { register int n = *nmemb; @@ -26,17 +26,21 @@ void *lfind(const void *key, const void *base, size_t *nmemb, } return (NULL); } +strong_alias(__lfind,lfind) #endif #ifdef L_lsearch +extern void *__lfind (__const void *__key, __const void *__base, + size_t *__nmemb, size_t __size, __compar_fn_t __compar) attribute_hidden; + void *lsearch(const void *key, void *base, size_t *nmemb, size_t size, int (*compar)(const void *, const void *)) { register char *p; - if ((p = lfind(key, base, nmemb, size, compar)) == NULL) { + if ((p = __lfind(key, base, nmemb, size, compar)) == NULL) { p = __memcpy((base + (size * (*nmemb))), key, size); ++(*nmemb); } diff --git a/libc/misc/search/tsearch.c b/libc/misc/search/tsearch.c index 93a2c678f..58f16ab79 100644 --- a/libc/misc/search/tsearch.c +++ b/libc/misc/search/tsearch.c @@ -81,7 +81,7 @@ strong_alias(__tsearch,tsearch) #endif #ifdef L_tfind -void *tfind(__const void *key, void * __const *vrootp, __compar_fn_t compar) +void attribute_hidden *__tfind(__const void *key, void * __const *vrootp, __compar_fn_t compar) { register node **rootp = (node **) vrootp; @@ -99,6 +99,7 @@ void *tfind(__const void *key, void * __const *vrootp, __compar_fn_t compar) } return NULL; } +strong_alias(__tfind,tfind) #endif #ifdef L_tdelete |