Fix time related functions

This commit is contained in:
2015-11-20 07:20:20 +01:00
parent 894f0875d4
commit dd17f91001
4 changed files with 31 additions and 6 deletions

View File

@@ -98,7 +98,7 @@ void FileNode_AddChild(FileNode fileNode, FileNode fileNodeChild) {
void FileNode_SetStatusRec(FileNode fileNode, FileStatus status) { void FileNode_SetStatusRec(FileNode fileNode, FileStatus status) {
FileNode fileNodeChild; FileNode fileNodeChild;
if (status == FileStatus_Deleted && fileNode->status != status) { if (status == FileStatus_Deleted && fileNode->status != status) {
fileNode->fileTime = Time_GetTime(); fileNode->fileTime = Time_GetCurrentTime();
fileNode->flags |= FileFlag_HasTime; fileNode->flags |= FileFlag_HasTime;
} }
fileNode->status = status; fileNode->status = status;
@@ -293,7 +293,7 @@ FileNode FileNode_LoadNode(FILE *file) {
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) { if (fileNode->fileTime < 0) {
fileNode->fileTime = Time_GetTime(); fileNode->fileTime = Time_GetCurrentTime();
} }
} }
@@ -499,7 +499,7 @@ FileNode FileNode_Refresh(FileNode fileNode, char *filePath) {
fileNode->status = FileStatus_Modified; fileNode->status = FileStatus_Modified;
fileNode->fileTime = fileTime; fileNode->fileTime = fileTime;
if (fileNode->fileTime < 0) { if (fileNode->fileTime < 0) {
fileNode->fileTime = Time_GetTime(); fileNode->fileTime = Time_GetCurrentTime();
} }
} }
@@ -539,7 +539,7 @@ FileNode FileNode_Refresh(FileNode fileNode, char *filePath) {
fileNode->status = FileStatus_Modified; fileNode->status = FileStatus_Modified;
fileNode->fileTime = fileTime; fileNode->fileTime = fileTime;
if (fileNode->fileTime < 0) { if (fileNode->fileTime < 0) {
fileNode->fileTime = Time_GetTime(); fileNode->fileTime = Time_GetCurrentTime();
} }
} }
if (fileNode->status == FileStatus_Modified) { if (fileNode->status == FileStatus_Modified) {

View File

@@ -6,8 +6,18 @@
typedef long long FileTime; typedef long long FileTime;
/////////////////////////////
// FileTime_Get
//
// Gets the current time in POSIX.
FileTime FileTime_Get(char *filename); FileTime FileTime_Get(char *filename);
/////////////////////////////
// FileTime_Set
//
// Sets the current time in POSIX.
void FileTime_Set(char *filename, FileTime t); void FileTime_Set(char *filename, FileTime t);
void FileTime_Print(FileTime t); void FileTime_Print(FileTime t);
/////////////////////////////////////////////// ///////////////////////////////////////////////

View File

@@ -1,6 +1,7 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <time.h>
#include "util.h" #include "util.h"
@@ -22,7 +23,7 @@ char *String_Copy(char *str) {
///////////////////////////// /////////////////////////////
// Time_GetTime // Time_GetTime
// //
// Gets the current time in usecs. WIN32 version. // Gets the time in usecs. WIN32 version.
long long Time_GetTime() { long long Time_GetTime() {
LARGE_INTEGER freq; LARGE_INTEGER freq;
LARGE_INTEGER tim; LARGE_INTEGER tim;
@@ -58,7 +59,7 @@ void Time_Pause(int pausa) {
///////////////////////////// /////////////////////////////
// Time_GetTime // Time_GetTime
// //
// Gets the current time in usecs. UNIX version. // Gets the time in usecs. UNIX version.
long long Time_GetTime() { long long Time_GetTime() {
struct timeval t; struct timeval t;
long long usecs; long long usecs;
@@ -79,6 +80,14 @@ void Time_Pause(int pausa) {
} }
#endif // if WIN32 #endif // if WIN32
/////////////////////////////
// Time_GetTime
//
// Gets the current time in POSIX.
long long Time_GetCurrentTime() {
time_t t = time(0);
return (long long)t;
}
int printff(char *fmt, ...) { int printff(char *fmt, ...) {
va_list ap; va_list ap;

View File

@@ -19,6 +19,12 @@ long long Time_GetTime();
// Pauses the execution for t usecs. // Pauses the execution for t usecs.
void Time_Pause(int pausa); void Time_Pause(int pausa);
/////////////////////////////
// Time_GetTime
//
// Gets the current time in POSIX.
long long Time_GetCurrentTime();
int printff(char *fmt, ...); int printff(char *fmt, ...);
#endif #endif