]> pd.if.org Git - pdclib.old/blobdiff - functions/stdlib/bsearch.c
Merged PDPCLIB and Therx code.
[pdclib.old] / functions / stdlib / bsearch.c
index 056028623c209837ffbdd981e88567496b7fce04..c03cd45716e435b884a01f5b8e4ac20ea12decc4 100644 (file)
@@ -7,3 +7,32 @@
 
 // TODO: C/C++ linkage
 void * bsearch( const void * key, const void * base, size_t nelem, size_t size, int (*cmp) ( const void * ck, const void * ce) ) { /* TODO */ };
+
+/* PDPC code - unreviewed
+{
+    size_t try;
+    int res;
+    const void *ptr;
+    
+    while (nmemb > 0)
+    {
+        try = nmemb / 2;    
+        ptr = (void *)((char *)base + try * size);
+        res = compar(ptr, key);
+        if (res == 0)
+        {
+            return ((void *)ptr);
+        }
+        else if (res < 0)
+        {
+            nmemb = nmemb - try - 1;
+            base = (const void *)((const char *)ptr + size);
+        }
+        else
+        {
+            nmemb = try;
+        }
+    }
+    return (NULL);
+}
+*/