~ubuntu-branches/ubuntu/raring/avr-libc/raring-proposed

« back to all changes in this revision

Viewing changes to libc/stdlib/qsort.c

  • Committer: Bazaar Package Importer
  • Author(s): Hakan Ardo
  • Date: 2009-10-31 11:52:10 UTC
  • mfrom: (1.1.8 upstream) (4.1.2 squeeze)
  • Revision ID: james.westby@ubuntu.com-20091031115210-x0mlijnegkce86fk
Tags: 1:1.6.7-1
* New upstream relese (closes: #544030)
* Added lintian overrides (closes: #553265)

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
 */
29
29
 
30
30
#include <stdlib.h>
 
31
#include "sectionname.h"
31
32
 
32
 
typedef int              cmp_t(const void *, const void *);
33
 
static char     *med3(char *, char *, char *, cmp_t *);
34
 
static void      swapfunc(char *, char *, int);
 
33
typedef int cmp_t(const void *, const void *);
 
34
static char *med3(char *, char *, char *, cmp_t *);
 
35
static void swapfunc(char *, char *, int);
35
36
 
36
37
#define min(a, b)       ((a) < (b) ? (a) : (b))
37
38
 
49
50
        } while (--i > 0);                              \
50
51
}
51
52
 
 
53
ATTRIBUTE_CLIB_SECTION
52
54
static void
53
 
swapfunc(a, b, n)
54
 
        char *a, *b;
55
 
        int n;
 
55
swapfunc(char *a, char *b, int n)
56
56
{
57
57
        swapcode(char, a, b, n)
58
58
}
61
61
 
62
62
#define vecswap(a, b, n)        if ((n) > 0) swapfunc(a, b, n)
63
63
 
 
64
ATTRIBUTE_CLIB_SECTION
64
65
static char *
65
 
med3(a, b, c, cmp)
66
 
        char *a, *b, *c;
67
 
        cmp_t *cmp;
 
66
med3(char *a, char *b, char *c, cmp_t *cmp)
68
67
{
69
68
        return cmp(a, b) < 0 ?
70
69
               (cmp(b, c) < 0 ? b : (cmp(a, c) < 0 ? c : a ))
71
70
              :(cmp(b, c) > 0 ? b : (cmp(a, c) < 0 ? a : c ));
72
71
}
73
72
 
 
73
ATTRIBUTE_CLIB_SECTION
74
74
void
75
 
qsort(a, n, es, cmp)
76
 
        void *a;
77
 
        size_t n, es;
78
 
        cmp_t *cmp;
 
75
qsort(void *a, size_t n, size_t es, cmp_t *cmp)
79
76
{
80
77
        char *pa, *pb, *pc, *pd, *pl, *pm, *pn;
81
78
        int d, r, swap_cnt;