}
nbFiles = ret_nbFiles;
- filesTable = (FileNamesTable*) malloc(sizeof(FileNamesTable));
+ filesTable = UTIL_createFileNamesTable(NULL, NULL, 0);
if(!filesTable) {
free(buf);
UTIL_DISPLAYLEVEL(1, "[ERROR][UTIL_readFileNamesTableFromFile] Can't create table for files.\n");
return filesTable;
}
+FileNamesTable*
+UTIL_createFileNamesTable(const char** filenames, char* buf, size_t tableSize){
+ FileNamesTable* table = (FileNamesTable*) malloc(sizeof(FileNamesTable));
+ if(!table) {
+ return NULL;
+ }
+ table->fileNames = filenames;
+ table->buf = buf;
+ table->tableSize = tableSize;
+ return table;
+}
+
void UTIL_freeFileNamesTable(FileNamesTable* table) {
if(table) {
if(table->fileNames) {
char* buf = NULL;
- newTable = (FileNamesTable*) malloc(sizeof(FileNamesTable));
+ newTable = UTIL_createFileNamesTable(NULL, NULL, 0);
if(!newTable) {
UTIL_DISPLAYLEVEL(1, "[ERROR][UTIL_concatenateTwoTables] Can't create new table for concatenation output.\n");
/*Note: tableSize is denotes the total capacity of table*/
typedef struct
{
- const char** fileNames = NULL;
- char* buf = NULL;
+ const char** fileNames;
+ char* buf;
size_t tableSize;
} FileNamesTable;
*/
FileNamesTable* UTIL_createFileNamesTable_fromFileName(const char* inputFileName);
+
+/*! UTIL_freeFileNamesTable(const char** filenames, char* buf, size_t tableSize) :
+ * This function takes an buffered based filename, buf and tableSize to create its object.
+ * @return : FileNamesTable*
+ */
+
+FileNamesTable*
+UTIL_createFileNamesTable(const char** filenames, char* buf, size_t tableSize);
+
+
/*! UTIL_freeFileNamesTable(FileNamesTable* table) :
* This function takes an buffered based table and frees it.
* @return : void.
filenameTable[filenameIdx] = NULL; // marking end of table
- curTable = (FileNamesTable*) malloc(sizeof(FileNamesTable));
+ curTable = UTIL_createFileNamesTable(filenameTable, tableBuf, filenameTableSize);
if(!curTable) {
UTIL_freeFileNamesTable(extendedTable);
CLEAN_RETURN(badusage(programName));
}
- curTable->fileNames = filenameTable;
- curTable->tableSize = filenameTableSize;
- curTable->buf = tableBuf;
-
concatenatedTables = UTIL_concatenateTwoTables(curTable, extendedTable);
if(!concatenatedTables) {
UTIL_freeFileNamesTable(curTable);