瀏覽代碼

Cleanup warnings and fix prototypes
-Erik

Eric Andersen 22 年之前
父節點
當前提交
b469c34816
共有 1 個文件被更改,包括 11 次插入16 次删除
  1. 11 16
      libc/misc/lsearch/lsearch.c

+ 11 - 16
libc/misc/lsearch/lsearch.c

@@ -10,34 +10,29 @@
 
 #include <string.h>
 #include <stdio.h>
+#include <search.h>
 
-char *lfind(key, base, num, size, cmp)
-register char *key, *base;
-unsigned int *num;
-register unsigned int size;
-register int (*cmp) ();
+void *lfind(const void *key, const void *base, size_t *nmemb,
+	size_t size, int (*compar)(const void *, const void *))
 {
-	register int n = *num;
+	register int n = *nmemb;
 
 	while (n--) {
-		if ((*cmp) (base, key) == 0)
-			return (base);
+		if ((*compar) (base, key) == 0)
+			return ((void*)base);
 		base += size;
 	}
 	return (NULL);
 }
 
-char *lsearch(key, base, num, size, cmp)
-char *key, *base;
-register unsigned int *num;
-register unsigned int size;
-int (*cmp) ();
+void *lsearch(const void *key, void *base, size_t *nmemb, 
+	size_t size, int (*compar)(const void *, const void *))
 {
 	register char *p;
 
-	if ((p = lfind(key, base, num, size, cmp)) == NULL) {
-		p = memcpy((base + (size * (*num))), key, size);
-		++(*num);
+	if ((p = lfind(key, base, nmemb, size, compar)) == NULL) {
+		p = memcpy((base + (size * (*nmemb))), key, size);
+		++(*nmemb);
 	}
 	return (p);
 }