summaryrefslogtreecommitdiffstats
path: root/contrib/syslinux/syslinux-4.03/com32/lib/qsort.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/syslinux/syslinux-4.03/com32/lib/qsort.c')
-rw-r--r--contrib/syslinux/syslinux-4.03/com32/lib/qsort.c46
1 files changed, 0 insertions, 46 deletions
diff --git a/contrib/syslinux/syslinux-4.03/com32/lib/qsort.c b/contrib/syslinux/syslinux-4.03/com32/lib/qsort.c
deleted file mode 100644
index a9d646c..0000000
--- a/contrib/syslinux/syslinux-4.03/com32/lib/qsort.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * qsort.c
- *
- * This is actually combsort. It's an O(n log n) algorithm with
- * simplicity/small code size being its main virtue.
- */
-
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
-
-static inline size_t newgap(size_t gap)
-{
- gap = (gap * 10) / 13;
- if (gap == 9 || gap == 10)
- gap = 11;
-
- if (gap < 1)
- gap = 1;
- return gap;
-}
-
-void qsort(void *base, size_t nmemb, size_t size,
- int (*compar) (const void *, const void *))
-{
- size_t gap = nmemb;
- size_t i, j;
- char *p1, *p2;
- int swapped;
-
- if (!nmemb)
- return;
-
- do {
- gap = newgap(gap);
- swapped = 0;
-
- for (i = 0, p1 = base; i < nmemb - gap; i++, p1 += size) {
- j = i + gap;
- if (compar(p1, p2 = (char *)base + j * size) > 0) {
- memswap(p1, p2, size);
- swapped = 1;
- }
- }
- } while (gap > 1 || swapped);
-}