summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/lib/bsearch.c
diff options
context:
space:
mode:
authorGuillaume Cottenceau <gc@mandriva.com>2001-05-14 14:19:32 +0000
committerGuillaume Cottenceau <gc@mandriva.com>2001-05-14 14:19:32 +0000
commit167217bec15c9c7aa70ba2a3dc9c689b3cd91872 (patch)
tree7c0c62debf8f9f145643102fb52b81afce743594 /mdk-stage1/dietlibc/lib/bsearch.c
parent9097327dc1c667fc51b8e05cc7c0626fac96665d (diff)
downloaddrakx-backup-do-not-use-167217bec15c9c7aa70ba2a3dc9c689b3cd91872.tar
drakx-backup-do-not-use-167217bec15c9c7aa70ba2a3dc9c689b3cd91872.tar.gz
drakx-backup-do-not-use-167217bec15c9c7aa70ba2a3dc9c689b3cd91872.tar.bz2
drakx-backup-do-not-use-167217bec15c9c7aa70ba2a3dc9c689b3cd91872.tar.xz
drakx-backup-do-not-use-167217bec15c9c7aa70ba2a3dc9c689b3cd91872.zip
import new version of dietlibc
Diffstat (limited to 'mdk-stage1/dietlibc/lib/bsearch.c')
-rw-r--r--mdk-stage1/dietlibc/lib/bsearch.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/mdk-stage1/dietlibc/lib/bsearch.c b/mdk-stage1/dietlibc/lib/bsearch.c
new file mode 100644
index 000000000..d2f5c74b2
--- /dev/null
+++ b/mdk-stage1/dietlibc/lib/bsearch.c
@@ -0,0 +1,20 @@
+#include <stdlib.h>
+
+void *bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)) {
+ const char *v, *r;
+ int res;
+ r=base+(nmemb-1)*size;
+ do {
+ register int num=nmemb/2;
+ v=base+num*size;
+ if ((res=compar(key,v))<0) {
+ r=v-size;
+ nmemb=num;
+ } else {
+ if (res==0) return (void*)v;
+ base=v+size;
+ nmemb-=num;
+ }
+ } while ((char*)base<=r);
+ return 0;
+}