#include "xwrap.h" #include <string.h> #include "basic-array.h" Array* array_dup(const Array* arr){ Array* newarr = array_create_setmax( array_itemsize(arr), array_getlen(arr), array_getmax(arr)); if(newarr == NULL){ return NULL; } memcpy(newarr->arr_data, arr->arr_data, array_getlen(arr) * array_itemsize(arr)); return newarr; } int array_combine(Array* arr, const Array* att){ if(array_itemsize(arr) != array_itemsize(att)){ return -2; } if(array_setlen(arr, array_getlen(arr) + array_getlen(att)) < 0){ return -1; } memcpy(array_vp(arr, array_getlen(arr)), att->arr_data, array_getlen(att) * array_itemsize(att)); return 0; } Array* array_filereadline_delim(FILE* infile, int chr){ Array* newarr = array_create(1, 0); if(newarr == NULL){ return NULL; } int c; char towrite; while((c = getc(infile)) != chr && !feof(infile)){ towrite = c; if(array_pushback(newarr, (void*)&towrite) < 0){ array_free(newarr); return NULL; } } towrite = '\0'; if(array_pushback(newarr, (void*)&towrite) < 0){ array_free(newarr); return NULL; } return newarr; }