Fix timing issues on FileNode_Build.

This commit is contained in:
2017-07-08 15:32:09 +02:00
parent 1122bbb247
commit 3cd245c54c

View File

@@ -496,20 +496,24 @@ FileNode FileNode_Refresh(FileNode fileNode, char *filePath) {
FileNode fileNodeChild; FileNode fileNodeChild;
// Check directory data // Check directory data
if (fileNode->status == FileStatus_Deleted) {
fileNode->status = FileStatus_Modified;
fileNode->fileTime = Time_GetCurrentTime();
}
if (!(fileNode->flags & FileFlag_Directory)) { if (!(fileNode->flags & FileFlag_Directory)) {
fileNode->status = FileStatus_Modified; fileNode->status = FileStatus_Modified;
fileNode->flags |= FileFlag_Directory; fileNode->flags |= FileFlag_Directory;
fileNode->flags &= ~FileFlag_Normal; fileNode->flags &= ~FileFlag_Normal;
} }
fileTime = FileTime_Get(filePath); fileTime = FileTime_Get(filePath);
if (fileNode->status == FileStatus_Deleted) {
fileNode->status = FileStatus_Modified;
fileNode->fileTime = fileTime;
}
if (fileTime != fileNode->fileTime) { if (fileTime != fileNode->fileTime) {
fileNode->status = FileStatus_Modified; fileNode->status = FileStatus_Modified;
if (fileTime < 0 || fileNode->fileTime > fileTime) {
fileNode->fileTime = Time_GetCurrentTime();
}else{
fileNode->fileTime = fileTime; fileNode->fileTime = fileTime;
} }
}
// Mark childs for review // Mark childs for review
fileNodeChild = fileNode->child; fileNodeChild = fileNode->child;
@@ -532,6 +536,10 @@ FileNode FileNode_Refresh(FileNode fileNode, char *filePath) {
} }
} else { } else {
// Comprar datos de los ficheros // Comprar datos de los ficheros
if (fileNode->status == FileStatus_Deleted) {
fileNode->status = FileStatus_Modified;
fileNode->fileTime = Time_GetCurrentTime();
}
if (!(fileNode->flags & FileFlag_Normal)) { if (!(fileNode->flags & FileFlag_Normal)) {
fileNode->status = FileStatus_Modified; fileNode->status = FileStatus_Modified;
fileNode->flags |= FileFlag_Normal; fileNode->flags |= FileFlag_Normal;
@@ -542,14 +550,14 @@ FileNode FileNode_Refresh(FileNode fileNode, char *filePath) {
fileNode->status = FileStatus_Modified; fileNode->status = FileStatus_Modified;
fileNode->size = size; fileNode->size = size;
} }
if (fileNode->status == FileStatus_Deleted) {
fileNode->status = FileStatus_Modified;
fileNode->fileTime = fileTime;
}
if (fileTime != fileNode->fileTime) { if (fileTime != fileNode->fileTime) {
fileNode->status = FileStatus_Modified; fileNode->status = FileStatus_Modified;
if (fileTime < 0 || fileNode->fileTime > fileTime) {
fileNode->fileTime = Time_GetCurrentTime();
}else{
fileNode->fileTime = fileTime; fileNode->fileTime = fileTime;
} }
}
if (fileNode->status == FileStatus_Modified) { if (fileNode->status == FileStatus_Modified) {
fileNode->flags &= ~FileFlag_HasCRC; fileNode->flags &= ~FileFlag_HasCRC;
} }