Annotation of coherent/b/lib/libc/gen/bsearch.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * C general utilities library.
                      3:  * bsearch()
                      4:  * ANSI 4.10.5.1.
                      5:  * Binary search.
                      6:  */
                      7: 
                      8: #include <stdlib.h>
                      9: 
                     10: __VOID__ *
                     11: bsearch(key, base, nmemb, size, compar)
                     12: const __VOID__ *key, *base;
                     13: register size_t nmemb;
                     14: size_t size;
                     15: int (*compar)();
                     16: {
                     17:        register size_t i;
                     18:        register int n;
                     19:        register __VOID__ *p;
                     20: 
                     21:        while (nmemb > 0) {
                     22:                i = nmemb / 2;
                     23:                p = (__VOID__ *)(((char *)base) + i * size);
                     24:                if ((n = (*compar)(key, p)) == 0)
                     25:                        return p;
                     26:                else if (n < 0)
                     27:                        nmemb = i;
                     28:                else {
                     29:                        nmemb -= i + 1;
                     30:                        base = (__VOID__ *)(((char *)p) + size);
                     31:                }
                     32:        }
                     33:        return NULL;
                     34: }
                     35: 
                     36: /* end of bsearch.c */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.