1 |
commit: 21a3d43cf7f43040132e9035c7b095a17b5a8bdd |
2 |
Author: Fabian Groffen <grobian <AT> gentoo <DOT> org> |
3 |
AuthorDate: Thu Sep 26 13:52:33 2019 +0000 |
4 |
Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org> |
5 |
CommitDate: Thu Sep 26 13:52:33 2019 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=21a3d43c |
7 |
|
8 |
libq/xarray: add xarraysort function |
9 |
|
10 |
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org> |
11 |
|
12 |
libq/xarray.c | 5 +++++ |
13 |
libq/xarray.h | 1 + |
14 |
2 files changed, 6 insertions(+) |
15 |
|
16 |
diff --git a/libq/xarray.c b/libq/xarray.c |
17 |
index a5cac49..49b478b 100644 |
18 |
--- a/libq/xarray.c |
19 |
+++ b/libq/xarray.c |
20 |
@@ -44,6 +44,11 @@ void *xarraypush(array_t *arr, const void *ele, size_t ele_len) |
21 |
return xarraypush_ptr(arr, xmemdup(ele, ele_len)); |
22 |
} |
23 |
|
24 |
+void xarraysort(array_t *arr, int (*compar)(const void *, const void *)) |
25 |
+{ |
26 |
+ qsort(arr->eles, arr->num, sizeof(void *), compar); |
27 |
+} |
28 |
+ |
29 |
void xarraydelete_ptr(array_t *arr, size_t elem) |
30 |
{ |
31 |
arr->num--; |
32 |
|
33 |
diff --git a/libq/xarray.h b/libq/xarray.h |
34 |
index 71dfecb..6af0d39 100644 |
35 |
--- a/libq/xarray.h |
36 |
+++ b/libq/xarray.h |
37 |
@@ -40,6 +40,7 @@ typedef struct { |
38 |
void *xarrayget(array_t *arr, size_t idx); |
39 |
void *xarraypush_ptr(array_t *arr, void *ele); |
40 |
void *xarraypush(array_t *arr, const void *ele, size_t ele_len); |
41 |
+void xarraysort(array_t *arr, int (*compar)(const void *, const void *)); |
42 |
void xarraydelete_ptr(array_t *arr, size_t elem); |
43 |
void xarraydelete(array_t *arr, size_t elem); |
44 |
void xarrayfree_int(array_t *arr); |