chiark / gitweb /
sortlist; init supplying text of config file; env vars with config
[adns.git] / src / general.c
index 45aec6894d319cd0e3d0d86f632a3b6c2698d418..15025a406c8375a68e60c86c921d24282a087a82 100644 (file)
@@ -254,13 +254,15 @@ const char *adns_strerror(adns_status st) {
 }
 
 void adns__isort(void *array, int nobjs, int sz, void *tempbuf,
-                int (*needswap)(const void *a, const void *b)) {
+                int (*needswap)(void *context, const void *a, const void *b),
+                void *context) {
   byte *data= array;
   int i, place;
 
   for (i=0; i<nobjs; i++) {
-    for (place= i; place>0 && needswap(data + (place-1)*sz, data + i*sz); place--);
-
+    for (place= i;
+        place>0 && needswap(context, data + (place-1)*sz, data + i*sz);
+        place--);
     if (place != i) {
       memcpy(tempbuf, data + i*sz, sz);
       memmove(data + (place+1)*sz, data + place*sz, (i-place)*sz);