diff --git a/include/acl/file.h b/include/acl/file.h index b9061ae..2e49882 100644 --- a/include/acl/file.h +++ b/include/acl/file.h @@ -1,5 +1,6 @@ #ifndef _acl_file_h #define _acl_file_h #include -char* acl_ReadTextFile(const char *filePath, bool *sucess); +#include +char* acl_ReadTextFile(FILE *file, bool *sucess); #endif diff --git a/src/file.c b/src/file.c index 1b3b1b4..c1fb28b 100644 --- a/src/file.c +++ b/src/file.c @@ -1,25 +1,22 @@ #include #include #include -char* acl_ReadTextFile(const char *filePath, bool *sucess){ - FILE *fp = fopen(filePath, "rb"); +char* acl_ReadTextFile(FILE *file, bool *sucess){ size_t lSize; char *buffer; - if(!fp) { + if(!file) { *sucess = false; return buffer; } - fseek(fp, 0L, SEEK_END); - lSize = ftell(fp); - rewind(fp); + fseek(file, 0L, SEEK_END); + lSize = ftell(file); + rewind(file); buffer = malloc(lSize + 1); if(!buffer) { - fclose(fp); *sucess = false; return buffer; } - size_t readReturn = fread(buffer, lSize, 1, fp); - fclose(fp); + size_t readReturn = fread(buffer, lSize, 1, file); *sucess = readReturn == 1; buffer[lSize] = '\0'; return buffer;