aboutsummaryrefslogtreecommitdiff
path: root/project/dclib
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--project/dclib/dclib-file.c13
-rw-r--r--project/dclib/dclib-file.h15
2 files changed, 18 insertions, 10 deletions
diff --git a/project/dclib/dclib-file.c b/project/dclib/dclib-file.c
index a4849e3..2cc8fa1 100644
--- a/project/dclib/dclib-file.c
+++ b/project/dclib/dclib-file.c
@@ -198,7 +198,7 @@ FileAttrib_t * ClearFileAttrib
FileAttrib_t * dest // NULL or destination attribute
)
{
- #if USE_NEW_FILEATTRIB
+ #if HAVE_FILEATTRIB_NSEC
if (dest)
{
memset(dest,0,sizeof(*dest));
@@ -222,7 +222,7 @@ FileAttrib_t * TouchFileAttrib
)
{
DASSERT(dest);
- #if USE_NEW_FILEATTRIB
+ #if HAVE_FILEATTRIB_NSEC
struct timeval tv;
if (!gettimeofday(&tv,0))
{
@@ -248,7 +248,7 @@ FileAttrib_t * SetFileAttrib
{
DASSERT(dest);
- #if USE_NEW_FILEATTRIB
+ #if HAVE_FILEATTRIB_NSEC
if (src_fa)
memcpy(dest,src_fa,sizeof(*dest));
@@ -302,7 +302,7 @@ FileAttrib_t * MaxFileAttrib
{
DASSERT(dest);
- #if USE_NEW_FILEATTRIB
+ #if HAVE_FILEATTRIB_NSEC
if (src_fa)
{
@@ -387,7 +387,7 @@ FileAttrib_t * NormalizeFileAttrib
if ( fa->size < 0 )
fa->size = 0;
- #if USE_NEW_FILEATTRIB
+ #if HAVE_FILEATTRIB_NSEC
if (IsTimeSpecNull(&fa->mtime))
{
@@ -850,7 +850,7 @@ enumError CloseFile
TRACE("UNLINK %s\n",f->fname);
unlink(f->fname);
}
- #if USE_NEW_FILEATTRIB
+ #if HAVE_FILEATTRIB_NSEC
else if ( set_time == 1 && !IsTimeSpecNull(&f->fatt.mtime) )
utimensat(AT_FDCWD,f->fname,f->fatt.times,0);
#else
@@ -860,6 +860,7 @@ enumError CloseFile
ubuf.actime = f->fatt.atime
? f->fatt.atime : f->fatt.mtime;
ubuf.modtime = f->fatt.mtime;
+ utime(f->fname,&ubuf);
}
#endif
else if ( set_time > 1 || f->fmode & FM_TOUCH )
diff --git a/project/dclib/dclib-file.h b/project/dclib/dclib-file.h
index d2be55c..1060cd1 100644
--- a/project/dclib/dclib-file.h
+++ b/project/dclib/dclib-file.h
@@ -127,15 +127,22 @@ ccp GetFileOpenMode
/////////////// struct FileAttrib_t ///////////////
///////////////////////////////////////////////////////////////////////////////
-#ifndef USE_NEW_FILEATTRIB
- #define USE_NEW_FILEATTRIB 1
+#ifndef HAVE_FILEATTRIB_NSEC
+ #ifdef st_mtime
+ #define HAVE_FILEATTRIB_NSEC 1
+ #else
+ #define HAVE_FILEATTRIB_NSEC 0
+ #endif
#endif
#undef FILEATTRIB_SEC
-#if USE_NEW_FILEATTRIB
+#undef FILEATTRIB_NSEC
+#if HAVE_FILEATTRIB_NSEC
#define FILEATTRIB_SEC(t) ((t).tv_sec)
+ #define FILEATTRIB_NSEC(t) ((t).tv_nsec)
#else
#define FILEATTRIB_SEC(t) (t)
+ #define FILEATTRIB_NSEC(t) 0
#endif
///////////////////////////////////////////////////////////////////////////////
@@ -143,7 +150,7 @@ ccp GetFileOpenMode
typedef struct FileAttrib_t
{
- #if USE_NEW_FILEATTRIB
+ #if HAVE_FILEATTRIB_NSEC
union
{