/* $Id$ */
-/* Release $Name$ */
-
/* bsearch( const void *, const void *, size_t, size_t, int(*)( const void *, const void * ) )
This file is part of the Public Domain C Library (PDCLib).
{
const void * pivot;
int rc;
- int corr;
+ size_t corr;
while ( nmemb )
{
/* algorithm needs -1 correction if remaining elements are an even number. */
- corr = ( nmemb % 2 ) - 1;
+ corr = nmemb % 2;
nmemb /= 2;
pivot = (const char *)base + (nmemb * size);
rc = compar( key, pivot );
if ( rc > 0 )
{
base = (const char *)pivot + size;
- nmemb += corr;
+ /* applying correction */
+ nmemb -= ( 1 - corr );
}
else if ( rc == 0 )
{