diff options
Diffstat (limited to 'usr/src/lib/libast/common/string/strsearch.c')
-rw-r--r-- | usr/src/lib/libast/common/string/strsearch.c | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/usr/src/lib/libast/common/string/strsearch.c b/usr/src/lib/libast/common/string/strsearch.c deleted file mode 100644 index 59a31d6f1a..0000000000 --- a/usr/src/lib/libast/common/string/strsearch.c +++ /dev/null @@ -1,58 +0,0 @@ -/*********************************************************************** -* * -* This software is part of the ast package * -* Copyright (c) 1985-2010 AT&T Intellectual Property * -* and is licensed under the * -* Common Public License, Version 1.0 * -* by AT&T Intellectual Property * -* * -* A copy of the License is available at * -* http://www.opensource.org/licenses/cpl1.0.txt * -* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * -* * -* Information and Software Systems Research * -* AT&T Research * -* Florham Park NJ * -* * -* Glenn Fowler <gsf@research.att.com> * -* David Korn <dgk@research.att.com> * -* Phong Vo <kpv@research.att.com> * -* * -***********************************************************************/ -#pragma prototyped -/* - * Glenn Fowler - * AT&T Research - */ - -#include <ast.h> - -/* - * return a pointer to the element matching - * name in the (*comparf*)() sorted tab of num elements of - * size siz where the first member of each - * element is a char* - * - * 0 returned if name not found - */ - -void* -strsearch(const void* tab, size_t num, size_t siz, Strcmp_f comparf, const char* name, void* context) -{ - char* lo = (char *)tab; - char* hi = lo + (num - 1) * siz; - char* mid; - int v; - Strcmp_context_f comparf_c = (Strcmp_context_f)(uintptr_t)comparf; - - while (lo <= hi) - { - mid = lo + (((hi - lo) / siz) / 2) * siz; - if (!(v = context ? (*comparf_c)(name, *((char**)mid), context) : (*comparf)(name, *((char**)mid)))) - return (mid); - else if (v > 0) - lo = mid + siz; - else hi = mid - siz; - } - return (NULL); -} |