X-Git-Url: https://git.distorted.org.uk/~mdw/adns/blobdiff_plain/828d89bd4196ad8ef825cdf2db26afe2eb797b69..c7836bc9e8b0ed6a04e9008545e29de410d9693e:/src/general.c diff --git a/src/general.c b/src/general.c index 8311dd7..211b6d2 100644 --- a/src/general.c +++ b/src/general.c @@ -22,6 +22,7 @@ */ #include +#include #include @@ -238,3 +239,19 @@ const char *adns_strerror(adns_status st) { snprintf(buf,sizeof(buf),"code %d",st); return buf; } + +void adns__isort(void *array, int nobjs, int sz, void *tempbuf, + int (*needswap)(const void *a, const void *b)) { + byte *data= array; + int i, place; + + for (i=0; i0 && needswap(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); + memcpy(data + place*sz, tempbuf, sz); + } + } +}