Joseph Redmon
2015-11-09 6103ecc4012ae8a93b96e808bc05f26cdef470d9
src/utils.c
@@ -8,6 +8,29 @@
#include "utils.h"
void sorta_shuffle(void *arr, size_t n, size_t size, size_t sections)
{
    size_t i;
    for(i = 0; i < sections; ++i){
        size_t start = n*i/sections;
        size_t end = n*(i+1)/sections;
        size_t num = end-start;
        shuffle(arr+(start*size), num, size);
    }
}
void shuffle(void *arr, size_t n, size_t size)
{
    size_t i;
    void *swp = calloc(1, size);
    for(i = 0; i < n-1; ++i){
        size_t j = i + rand()/(RAND_MAX / (n-i)+1);
        memcpy(swp,          arr+(j*size), size);
        memcpy(arr+(j*size), arr+(i*size), size);
        memcpy(arr+(i*size), swp,          size);
    }
}
void del_arg(int argc, char **argv, int index)
{
    int i;
@@ -208,6 +231,13 @@
    s[len-offset] = '\0';
}
void free_ptrs(void **ptrs, int n)
{
    int i;
    for(i = 0; i < n; ++i) free(ptrs[i]);
    free(ptrs);
}
char *fgetl(FILE *fp)
{
    if(feof(fp)) return 0;