Mercurial > dovecot > core-2.2
annotate src/lib/sort.h @ 23007:36e01285b5b8
lib: buffer - Improve header comment for buffer_insert() and buffer_delete().
author | Stephan Bosch <stephan.bosch@dovecot.fi> |
---|---|
date | Mon, 18 Mar 2019 00:52:37 +0100 |
parents | 1a5a45c80687 |
children |
rev | line source |
---|---|
19172
1a5a45c80687
lib: extract sort-helpers into separate sort.h file
Phil Carmody <phil@dovecot.fi>
parents:
diff
changeset
|
1 #ifndef SORT_H |
1a5a45c80687
lib: extract sort-helpers into separate sort.h file
Phil Carmody <phil@dovecot.fi>
parents:
diff
changeset
|
2 #define SORT_H |
1a5a45c80687
lib: extract sort-helpers into separate sort.h file
Phil Carmody <phil@dovecot.fi>
parents:
diff
changeset
|
3 |
1a5a45c80687
lib: extract sort-helpers into separate sort.h file
Phil Carmody <phil@dovecot.fi>
parents:
diff
changeset
|
4 #define INTEGER_CMP(name, type) \ |
1a5a45c80687
lib: extract sort-helpers into separate sort.h file
Phil Carmody <phil@dovecot.fi>
parents:
diff
changeset
|
5 static inline int name(const type *i1, const type *i2) \ |
1a5a45c80687
lib: extract sort-helpers into separate sort.h file
Phil Carmody <phil@dovecot.fi>
parents:
diff
changeset
|
6 { \ |
1a5a45c80687
lib: extract sort-helpers into separate sort.h file
Phil Carmody <phil@dovecot.fi>
parents:
diff
changeset
|
7 if (*i1 < *i2) \ |
1a5a45c80687
lib: extract sort-helpers into separate sort.h file
Phil Carmody <phil@dovecot.fi>
parents:
diff
changeset
|
8 return -1; \ |
1a5a45c80687
lib: extract sort-helpers into separate sort.h file
Phil Carmody <phil@dovecot.fi>
parents:
diff
changeset
|
9 else if (*i1 > *i2) \ |
1a5a45c80687
lib: extract sort-helpers into separate sort.h file
Phil Carmody <phil@dovecot.fi>
parents:
diff
changeset
|
10 return 1; \ |
1a5a45c80687
lib: extract sort-helpers into separate sort.h file
Phil Carmody <phil@dovecot.fi>
parents:
diff
changeset
|
11 else \ |
1a5a45c80687
lib: extract sort-helpers into separate sort.h file
Phil Carmody <phil@dovecot.fi>
parents:
diff
changeset
|
12 return 0; \ |
1a5a45c80687
lib: extract sort-helpers into separate sort.h file
Phil Carmody <phil@dovecot.fi>
parents:
diff
changeset
|
13 } |
1a5a45c80687
lib: extract sort-helpers into separate sort.h file
Phil Carmody <phil@dovecot.fi>
parents:
diff
changeset
|
14 |
1a5a45c80687
lib: extract sort-helpers into separate sort.h file
Phil Carmody <phil@dovecot.fi>
parents:
diff
changeset
|
15 INTEGER_CMP(uint64_cmp, uint64_t) |
1a5a45c80687
lib: extract sort-helpers into separate sort.h file
Phil Carmody <phil@dovecot.fi>
parents:
diff
changeset
|
16 INTEGER_CMP(uint32_cmp, uint32_t) |
1a5a45c80687
lib: extract sort-helpers into separate sort.h file
Phil Carmody <phil@dovecot.fi>
parents:
diff
changeset
|
17 |
1a5a45c80687
lib: extract sort-helpers into separate sort.h file
Phil Carmody <phil@dovecot.fi>
parents:
diff
changeset
|
18 #define i_qsort(base, nmemb, size, cmp) \ |
1a5a45c80687
lib: extract sort-helpers into separate sort.h file
Phil Carmody <phil@dovecot.fi>
parents:
diff
changeset
|
19 qsort(base, nmemb, size + \ |
1a5a45c80687
lib: extract sort-helpers into separate sort.h file
Phil Carmody <phil@dovecot.fi>
parents:
diff
changeset
|
20 CALLBACK_TYPECHECK(cmp, int (*)(typeof(const typeof(*base) *), \ |
1a5a45c80687
lib: extract sort-helpers into separate sort.h file
Phil Carmody <phil@dovecot.fi>
parents:
diff
changeset
|
21 typeof(const typeof(*base) *))), \ |
1a5a45c80687
lib: extract sort-helpers into separate sort.h file
Phil Carmody <phil@dovecot.fi>
parents:
diff
changeset
|
22 (int (*)(const void *, const void *))cmp) |
1a5a45c80687
lib: extract sort-helpers into separate sort.h file
Phil Carmody <phil@dovecot.fi>
parents:
diff
changeset
|
23 |
1a5a45c80687
lib: extract sort-helpers into separate sort.h file
Phil Carmody <phil@dovecot.fi>
parents:
diff
changeset
|
24 #endif |