Misc fixes

This commit is contained in:
2015-11-12 01:56:40 +01:00
parent 3ff1d00b50
commit 2f94bea184
2 changed files with 13 additions and 4 deletions

View File

@@ -103,7 +103,7 @@ void FileNode_SetStatusRec(FileNode fileNode, FileStatus status) {
fileNode->flags |= FileFlag_HasTime; fileNode->flags |= FileFlag_HasTime;
} }
fileNodeChild = fileNode->child; fileNodeChild = fileNode->child;
while (fileNodeChild != NULL) { while (fileNodeChild) {
FileNode_SetStatusRec(fileNodeChild, status); FileNode_SetStatusRec(fileNodeChild, status);
fileNodeChild = fileNodeChild->next; fileNodeChild = fileNodeChild->next;
} }
@@ -281,7 +281,7 @@ FileNode FileNode_LoadNode(FILE *file) {
// Read flags // Read flags
fread((void *)&fileNode->flags, sizeof(fileNode->flags), 1, file); fread((void *)&fileNode->flags, sizeof(fileNode->flags), 1, file);
// Leer estado // Read status
fileNode->status = fgetc(file); fileNode->status = fgetc(file);
// Read status // Read status
@@ -292,6 +292,9 @@ FileNode FileNode_LoadNode(FILE *file) {
// Read date // Read date
if (fileNode->flags & FileFlag_HasTime) { if (fileNode->flags & FileFlag_HasTime) {
fread((void *)&fileNode->fileTime, sizeof(fileNode->fileTime), 1, file); fread((void *)&fileNode->fileTime, sizeof(fileNode->fileTime), 1, file);
if (fileNode->fileTime < 0) {
fileNode->fileTime = Time_GetTime();
}
} }
// Read CRC // Read CRC
@@ -496,6 +499,9 @@ FileNode FileNode_Refresh(FileNode fileNode, char *filePath) {
if (fileTime != fileNode->fileTime) { if (fileTime != fileNode->fileTime) {
fileNode->status = FileStatus_Modified; fileNode->status = FileStatus_Modified;
fileNode->fileTime = fileTime; fileNode->fileTime = fileTime;
if (fileNode->fileTime < 0) {
fileNode->fileTime = Time_GetTime();
}
} }
// Mark childs for review // Mark childs for review
@@ -533,6 +539,9 @@ FileNode FileNode_Refresh(FileNode fileNode, char *filePath) {
if (fileTime != fileNode->fileTime) { if (fileTime != fileNode->fileTime) {
fileNode->status = FileStatus_Modified; fileNode->status = FileStatus_Modified;
fileNode->fileTime = fileTime; fileNode->fileTime = fileTime;
if (fileNode->fileTime < 0) {
fileNode->fileTime = Time_GetTime();
}
} }
if (fileNode->status == FileStatus_Modified) { if (fileNode->status == FileStatus_Modified) {
fileNode->flags &= ~FileFlag_HasCRC; fileNode->flags &= ~FileFlag_HasCRC;
@@ -550,7 +559,7 @@ int FileNode_Refresh_Iterate(char *path, char *name, void *d) {
return (0); return (0);
} }
// Searcg the file on childs // Search the file on childs
fileNodeChild = fileNode->child; fileNodeChild = fileNode->child;
while (fileNodeChild) { while (fileNodeChild) {
if (!strcmp(fileNodeChild->name, name)) { if (!strcmp(fileNodeChild->name, name)) {

View File

@@ -86,7 +86,7 @@ int main(int argc, char *argv[]) {
FileNode_Save(fileNode, argv[3]); FileNode_Save(fileNode, argv[3]);
} }
} }
else if (!strcmp(argv[1], "read") && argc == 3) { else if (!strcmp(argv[1], "read") && argc >= 3) {
// Read information tree from file // Read information tree from file
FileNode fileNode; FileNode fileNode;
fileNode = FileNode_Load(argv[2]); fileNode = FileNode_Load(argv[2]);