From c2b36af60f1b2823cdeb6c8ae73a4957026d46ce Mon Sep 17 00:00:00 2001 From: ChrisDill Date: Fri, 12 Oct 2018 13:53:36 +0100 Subject: [PATCH] Added GetLastWriteTime to allow for file reloading - Added a function to get the last write time of a file. I used this so I can reload files or resources if the time since they were last loaded changes. --- src/core.c | 13 +++++++++++++ src/raylib.h | 1 + 2 files changed, 14 insertions(+) diff --git a/src/core.c b/src/core.c index e99b24b5..3b54c05c 100644 --- a/src/core.c +++ b/src/core.c @@ -123,6 +123,7 @@ #include // Required for: strrchr(), strcmp() //#include // Macros for reporting and retrieving error conditions through error codes #include // Required for: tolower() [Used in IsFileExtension()] +#include // Required for stat() [Used in GetLastWriteTime()] #if defined(_MSC_VER) #include "external/dirent.h" // Required for: DIR, opendir(), closedir() [Used in GetDirectoryFiles()] @@ -1681,6 +1682,18 @@ void ClearDroppedFiles(void) #endif } +// Get the last write time of a file +long GetLastWriteTime(const char *fileName) +{ + struct stat result = {0}; + if (stat(fileName, &result) == 0) + { + time_t mod = result.st_mtime; + return mod; + } + return 0; +} + // Save integer value to storage file (to defined position) // NOTE: Storage positions is directly related to file memory layout (4 bytes each integer) void StorageSaveValue(int position, int value) diff --git a/src/raylib.h b/src/raylib.h index 9d870255..1765b40b 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -880,6 +880,7 @@ RLAPI bool ChangeDirectory(const char *dir); // Change work RLAPI bool IsFileDropped(void); // Check if a file has been dropped into window RLAPI char **GetDroppedFiles(int *count); // Get dropped files names (memory should be freed) RLAPI void ClearDroppedFiles(void); // Clear dropped files paths buffer (free memory) +RLAPI long GetLastWriteTime(const char *fileName); // Get last write time of a file // Persistent storage management RLAPI void StorageSaveValue(int position, int value); // Save integer value to storage file (to defined position)