]> pd.if.org Git - pdclib/blob - functions/stdlib/bsearch.c
Re-import from Subversion.
[pdclib] / functions / stdlib / bsearch.c
1 /* ----------------------------------------------------------------------------
2  * $Id$
3  * ----------------------------------------------------------------------------
4  * Public Domain C Library - http://pdclib.sourceforge.net
5  * This code is Public Domain. Use, modify, and redistribute at will.
6  * --------------------------------------------------------------------------*/
7
8 void * bsearch( const void * key, const void * base, size_t nelem, size_t size, int (*cmp) ( const void * ck, const void * ce) ) { /* TODO */ };
9
10 /* PDPC code - unreviewed
11 {
12     size_t try;
13     int res;
14     const void *ptr;
15     
16     while (nmemb > 0)
17     {
18         try = nmemb / 2;    
19         ptr = (void *)((char *)base + try * size);
20         res = compar(ptr, key);
21         if (res == 0)
22         {
23             return ((void *)ptr);
24         }
25         else if (res < 0)
26         {
27             nmemb = nmemb - try - 1;
28             base = (const void *)((const char *)ptr + size);
29         }
30         else
31         {
32             nmemb = try;
33         }
34     }
35     return (NULL);
36 }
37 */