aboutsummaryrefslogtreecommitdiff
path: root/tools/lzpack/filelist.cpp
blob: 8554ae0ea2e812e3e51cdcb1dd2550aa6440533f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include "filelist.h"

FileListClass::FileListClass() {

	NumFiles = 0;
	AllocFiles = 1;

	FileList = (FileListEntry*)malloc(sizeof(FileListEntry));
	memset(FileList, 0x00, sizeof(FileListEntry));

}

FileListClass::~FileListClass() {

	for(int i=NumFiles-1; i>=0; i--) {

		if (FileList[i].fileName != NULL)
			free(FileList[i].fileName);

		if (FileList[i].aliasName != NULL)
			free(FileList[i].aliasName);

	}

	free(FileList);

}

void FileListClass::AddFileEntry(const char* fileName, const char* aliasName, short windowSize, short hash1Size, short hash2Size) {

	if (NumFiles >= AllocFiles) {

		FileList = (FileListEntry*)realloc(FileList, sizeof(FileListEntry)*(AllocFiles+1));
		memset(&FileList[AllocFiles], 0x00, sizeof(FileListEntry));

		AllocFiles++;

	}

	if (aliasName == NULL)
		FileList[NumFiles].aliasName = NULL;
	else
		FileList[NumFiles].aliasName = strdup(aliasName);

	FileList[NumFiles].fileName		= strdup(fileName);
	FileList[NumFiles].windowSize	= windowSize;
	FileList[NumFiles].hash1Size	= hash1Size;
	FileList[NumFiles].hash2Size	= hash2Size;
	NumFiles++;

}

const FileListEntry* FileListClass::Entry(int index) {

	return(&FileList[index]);

}

int FileListClass::EntryCount() {

	return(NumFiles);

}

void FileListClass::PrintEntries() {

	for(int i=0; i<NumFiles; i++) {

		printf("FL  FILE:%s", FileList[i].fileName);

		if (FileList[i].aliasName != NULL) {
			printf("  ALIAS:%s\n", FileList[i].aliasName);
		} else {
			printf("\n");
		}

	}

}