Warning: Attempt to read property "date" on null in /usr/local/www/websvn.planix.org/blame.php on line 247

Warning: Attempt to read property "msg" on null in /usr/local/www/websvn.planix.org/blame.php on line 247
WebSVN – planix.SVN – Blame – /os/branches/feature_fixcpp/sys/src/ape/lib/ap/gen/bsearch.c – Rev 2

Subversion Repositories planix.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#include <stdlib.h>
2
#include <stdio.h>
3
void*
4
bsearch(const void* key, const void* base, size_t nmemb, size_t size,
5
		int (*compar)(const void*, const void*))
6
{
7
	long i, bot, top, new;
8
	void *p;
9
 
10
	bot = 0;
11
	top = bot + nmemb - 1;
12
	while(bot <= top){
13
		new = (top + bot)/2;
14
		p = (char *)base+new*size;
15
		i = (*compar)(key, p);
16
		if(i == 0)
17
			return p;
18
		if(i > 0)
19
			bot = new + 1;
20
		else
21
			top = new - 1;
22
	}
23
	return 0;
24
}