summaryrefslogtreecommitdiff
path: root/src/lib/libc/stdlib/merge.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libc/stdlib/merge.c')
-rw-r--r--src/lib/libc/stdlib/merge.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/lib/libc/stdlib/merge.c b/src/lib/libc/stdlib/merge.c
index 381fdc0830..4ae6488af2 100644
--- a/src/lib/libc/stdlib/merge.c
+++ b/src/lib/libc/stdlib/merge.c
@@ -35,8 +35,7 @@
35 */ 35 */
36 36
37#if defined(LIBC_SCCS) && !defined(lint) 37#if defined(LIBC_SCCS) && !defined(lint)
38/*static char sccsid[] = "from: @(#)merge.c 8.2 (Berkeley) 2/14/94";*/ 38static char *rcsid = "$OpenBSD: merge.c,v 1.5 2002/02/17 19:42:24 millert Exp $";
39static char *rcsid = "$Id: merge.c,v 1.1.1.1 1995/10/18 08:42:18 deraadt Exp $";
40#endif /* LIBC_SCCS and not lint */ 39#endif /* LIBC_SCCS and not lint */
41 40
42/* 41/*
@@ -59,8 +58,8 @@ static char *rcsid = "$Id: merge.c,v 1.1.1.1 1995/10/18 08:42:18 deraadt Exp $";
59#include <stdlib.h> 58#include <stdlib.h>
60#include <string.h> 59#include <string.h>
61 60
62static void setup __P((u_char *, u_char *, size_t, size_t, int (*)())); 61static void setup(u_char *, u_char *, size_t, size_t, int (*)());
63static void insertionsort __P((u_char *, size_t, size_t, int (*)())); 62static void insertionsort(u_char *, size_t, size_t, int (*)());
64 63
65#define ISIZE sizeof(int) 64#define ISIZE sizeof(int)
66#define PSIZE sizeof(u_char *) 65#define PSIZE sizeof(u_char *)
@@ -100,7 +99,7 @@ mergesort(base, nmemb, size, cmp)
100 void *base; 99 void *base;
101 size_t nmemb; 100 size_t nmemb;
102 register size_t size; 101 register size_t size;
103 int (*cmp) __P((const void *, const void *)); 102 int (*cmp)(const void *, const void *);
104{ 103{
105 register int i, sense; 104 register int i, sense;
106 int big, iflag; 105 int big, iflag;
@@ -148,7 +147,7 @@ mergesort(base, nmemb, size, cmp)
148 sense = 0; 147 sense = 0;
149 } 148 }
150 if (!big) { /* here i = 0 */ 149 if (!big) { /* here i = 0 */
151LINEAR: while ((b += size) < t && cmp(q, b) >sense) 150 while ((b += size) < t && cmp(q, b) >sense)
152 if (++i == 6) { 151 if (++i == 6) {
153 big = 1; 152 big = 1;
154 goto EXPONENTIAL; 153 goto EXPONENTIAL;
@@ -169,7 +168,7 @@ EXPONENTIAL: for (i = size; ; i <<= 1)
169 goto FASTCASE; 168 goto FASTCASE;
170 } else 169 } else
171 b = p; 170 b = p;
172SLOWCASE: while (t > b+size) { 171 while (t > b+size) {
173 i = (((t - b) / size) >> 1) * size; 172 i = (((t - b) / size) >> 1) * size;
174 if ((*cmp)(q, p = b + i) <= sense) 173 if ((*cmp)(q, p = b + i) <= sense)
175 t = p; 174 t = p;
@@ -258,7 +257,7 @@ COPY: b = t;
258void 257void
259setup(list1, list2, n, size, cmp) 258setup(list1, list2, n, size, cmp)
260 size_t n, size; 259 size_t n, size;
261 int (*cmp) __P((const void *, const void *)); 260 int (*cmp)(const void *, const void *);
262 u_char *list1, *list2; 261 u_char *list1, *list2;
263{ 262{
264 int i, length, size2, tmp, sense; 263 int i, length, size2, tmp, sense;
@@ -333,7 +332,7 @@ static void
333insertionsort(a, n, size, cmp) 332insertionsort(a, n, size, cmp)
334 u_char *a; 333 u_char *a;
335 size_t n, size; 334 size_t n, size;
336 int (*cmp) __P((const void *, const void *)); 335 int (*cmp)(const void *, const void *);
337{ 336{
338 u_char *ai, *s, *t, *u, tmp; 337 u_char *ai, *s, *t, *u, tmp;
339 int i; 338 int i;