From e99b0936c28603763f8033d88910d9dc3e1c5bb3 Mon Sep 17 00:00:00 2001 From: Thomas Leonard Date: Sat, 14 Jun 2008 14:14:16 +0100 Subject: [PATCH] Get times from GIO correctly Displayed all timestamps as the epoch (reported by Ben Morrow). --- ROX-Filer/src/dir.c | 2 +- ROX-Filer/src/diritem.c | 10 +++++----- ROX-Filer/src/diritem.h | 2 ++ 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ROX-Filer/src/dir.c b/ROX-Filer/src/dir.c index 96aeb022..afb246d4 100644 --- a/ROX-Filer/src/dir.c +++ b/ROX-Filer/src/dir.c @@ -893,7 +893,7 @@ static void dir_rescan_internal(Directory *dir, GError **error) dir->stat_info.st_dev = g_file_info_get_attribute_uint32(info, G_FILE_ATTRIBUTE_UNIX_DEVICE); g_object_unref(info); - iter = g_file_enumerate_children(dir->gfile, "standard::*,unix::mode,thumbnail::path", G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL, error); + iter = g_file_enumerate_children(dir->gfile, USEFUL_GIO_ATTRS, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL, error); if (!iter) return diff --git a/ROX-Filer/src/diritem.c b/ROX-Filer/src/diritem.c index fc88b315..fb176d0c 100644 --- a/ROX-Filer/src/diritem.c +++ b/ROX-Filer/src/diritem.c @@ -108,7 +108,7 @@ void diritem_restat_gfile(GFile *path, DirItem *item) item->flags = 0; item->mime_type = NULL; - info = g_file_query_info(path, "standard::*,unix::*", G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL, &error); + info = g_file_query_info(path, USEFUL_GIO_ATTRS, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL, &error); if (!info) { g_warning("Can't stat: %s", error->message); g_error_free(error); @@ -133,9 +133,9 @@ void diritem_restat_gfile(GFile *path, DirItem *item) item->lstat_errno = 0; item->size = g_file_info_get_attribute_uint64(info, G_FILE_ATTRIBUTE_STANDARD_SIZE); item->mode = g_file_info_get_attribute_uint32(info, G_FILE_ATTRIBUTE_UNIX_MODE); - item->atime = g_file_info_get_attribute_uint32(info, G_FILE_ATTRIBUTE_TIME_ACCESS); - item->ctime = g_file_info_get_attribute_uint32(info, G_FILE_ATTRIBUTE_TIME_CHANGED); - item->mtime = g_file_info_get_attribute_uint32(info, G_FILE_ATTRIBUTE_TIME_MODIFIED); + item->atime = g_file_info_get_attribute_uint64(info, G_FILE_ATTRIBUTE_TIME_ACCESS); + item->ctime = g_file_info_get_attribute_uint64(info, G_FILE_ATTRIBUTE_TIME_CHANGED); + item->mtime = g_file_info_get_attribute_uint64(info, G_FILE_ATTRIBUTE_TIME_MODIFIED); item->uid = g_file_info_get_attribute_uint32(info, G_FILE_ATTRIBUTE_UNIX_UID); item->gid = g_file_info_get_attribute_uint32(info, G_FILE_ATTRIBUTE_UNIX_GID); @@ -153,7 +153,7 @@ void diritem_restat_gfile(GFile *path, DirItem *item) { char *link_target; GFileInfo *target_info; - target_info = g_file_query_info(path, "standard::*,unix::*,standard::symlink-target", G_FILE_QUERY_INFO_NONE, NULL, NULL); + target_info = g_file_query_info(path, USEFUL_GIO_ATTRS, G_FILE_QUERY_INFO_NONE, NULL, NULL); if (target_info == NULL) { item->base_type = TYPE_ERROR; diff --git a/ROX-Filer/src/diritem.h b/ROX-Filer/src/diritem.h index c47d08d1..22486017 100644 --- a/ROX-Filer/src/diritem.h +++ b/ROX-Filer/src/diritem.h @@ -10,6 +10,8 @@ #include #include +#define USEFUL_GIO_ATTRS "standard::*,unix::*,time::*,thumbnail::path" + extern time_t diritem_recent_time; typedef enum -- 2.11.4.GIT