monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Monotone-devel] [PATCH] unix/inodeprints.cc: Use struct stat's nanoseco


From: Matthew Gregan
Subject: [Monotone-devel] [PATCH] unix/inodeprints.cc: Use struct stat's nanosecond time on more platforms.
Date: Mon, 11 Apr 2005 12:49:08 +1200
User-agent: Mutt/1.5.6+20040907i

Hello,

Here's a small patch to use struct stat's nanosecond time resolution on
more platforms (OpenBSD/NetBSD, and systems with _POSIX_SOURCE defined).

# 
# patch "configure.ac"
#  from [bcd745b40ff8e7a30f7b7d156ba8554a9cd022b7]
#    to [a31b304c4c09edf7cb9f0e410bbb85588fd805e3]
# 
# patch "unix/inodeprint.cc"
#  from [cb13b2674eeacec64565ca12a6380115eae0ffa1]
#    to [f38233ea64297fd37386fd1bc5c57aeeb8ff19f7]
# 
--- configure.ac
+++ configure.ac
@@ -362,8 +362,10 @@
 AC_HAVE_INADDR_NONE
 
 AC_CHECK_MEMBERS([struct stat.st_ctim.tv_nsec, struct stat.st_mtim.tv_nsec])
-        
+AC_CHECK_MEMBERS([struct stat.st_ctimespec.tv_nsec, struct 
stat.st_mtimespec.tv_nsec])
+AC_CHECK_MEMBERS([struct stat.st_ctimensec, struct stat.st_mtimensec])
 
+
 # Checks for library functions.
 AC_PROG_GCC_TRADITIONAL
 AC_FUNC_STAT
--- unix/inodeprint.cc
+++ unix/inodeprint.cc
@@ -38,12 +38,20 @@
   // TODO: there are non-Linux variants which could be used.
 #ifdef HAVE_STRUCT_STAT_ST_CTIM_TV_NSEC
   add_hash(hash, st.st_ctim.tv_nsec);
+#elif defined(HAVE_STRUCT_STAT_ST_CTIMESPEC_TV_NSEC)
+  add_hash(hash, st.st_ctimespec.tv_nsec);
+#elif defined(HAVE_STRUCT_STAT_ST_CTIMENSEC)
+  add_hash(hash, st.st_ctimensec);
 #else
   add_hash(hash, (long)0);
 #endif
   add_hash(hash, st.st_mtime);
 #ifdef HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC
   add_hash(hash, st.st_mtim.tv_nsec);
+#elif defined(HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC)
+  add_hash(hash, st.st_mtimespec.tv_nsec);
+#elif defined(HAVE_STRUCT_STAT_ST_MTIMENSEC)
+  add_hash(hash, st.st_mtimensec);
 #else
   add_hash(hash, (long)0);
 #endif

Cheers,
-mjg
-- 
Matthew Gregan                     |/
                                  /|                address@hidden




reply via email to

[Prev in Thread] Current Thread [Next in Thread]