aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2017-06-14 14:03:44 +0200
committerMarc André Tanner <mat@brain-dump.org>2017-06-15 15:51:43 +0200
commit4051804901e15ecbf0a1588c845dad740e5f3141 (patch)
tree22256d00bc96bdfd49f467b126db8e8b717555c9
parent4f0c14bd3f4600930a3ebad8a2ee82b6ca2c89d4 (diff)
downloadvis-4051804901e15ecbf0a1588c845dad740e5f3141.tar.gz
vis-4051804901e15ecbf0a1588c845dad740e5f3141.tar.xz
array: add array_sort utility function
-rw-r--r--array.c4
-rw-r--r--array.h4
2 files changed, 8 insertions, 0 deletions
diff --git a/array.c b/array.c
index 25f471b..d0f937d 100644
--- a/array.c
+++ b/array.c
@@ -143,3 +143,7 @@ bool array_resize(Array *arr, size_t len) {
}
return false;
}
+
+void array_sort(Array *arr, int (*compar)(const void*, const void*)) {
+ qsort(arr->items, arr->len, arr->elem_size, compar);
+}
diff --git a/array.h b/array.h
index a01f19a..8417f7d 100644
--- a/array.h
+++ b/array.h
@@ -102,5 +102,9 @@ bool array_truncate(Array*, size_t length);
* @endrst
*/
bool array_resize(Array*, size_t length);
+/**
+ * Sort array, the comparision function works as for `qsort(3)`.
+ */
+void array_sort(Array*, int (*compar)(const void*, const void*));
#endif