Add functionality to preserve nanosecond timestamps

file copy doesn't preserve nanosecond timestamps

Closes #369
This commit is contained in:
nitinosiris
2021-07-02 18:40:44 +05:30
committed by Philip Withnall
parent 7ad6b05458
commit b33ef610de
9 changed files with 252 additions and 25 deletions

View File

@@ -168,7 +168,7 @@ g_local_file_class_init (GLocalFileClass *klass)
0);
#endif
#ifdef HAVE_UTIMES
#if defined(HAVE_UTIMES) || defined(HAVE_UTIMENSAT)
g_file_attribute_info_list_add (list,
G_FILE_ATTRIBUTE_TIME_MODIFIED,
G_FILE_ATTRIBUTE_TYPE_UINT64,
@@ -190,6 +190,18 @@ g_local_file_class_init (GLocalFileClass *klass)
G_FILE_ATTRIBUTE_TIME_ACCESS_USEC,
G_FILE_ATTRIBUTE_TYPE_UINT32,
G_FILE_ATTRIBUTE_INFO_COPY_WHEN_MOVED);
#endif /* HAVE_UTIMES || HAVE_UTIMENSAT */
#ifdef HAVE_UTIMENSAT
g_file_attribute_info_list_add (list,
G_FILE_ATTRIBUTE_TIME_MODIFIED_NSEC,
G_FILE_ATTRIBUTE_TYPE_UINT32,
G_FILE_ATTRIBUTE_INFO_COPY_WITH_FILE |
G_FILE_ATTRIBUTE_INFO_COPY_WHEN_MOVED);
g_file_attribute_info_list_add (list,
G_FILE_ATTRIBUTE_TIME_ACCESS_NSEC,
G_FILE_ATTRIBUTE_TYPE_UINT32,
G_FILE_ATTRIBUTE_INFO_COPY_WHEN_MOVED);
#endif
local_writable_attributes = list;