Mercurial > hg > octave-jordi > gnulib-hg
changeset 8568:392970b32717
Support sub-second birthtime on cygwin.
* m4/stat-time.m4 (gl_STAT_BIRTHTIME): Also check for st_birthtim.
* lib/stat-time.h (STAT_TIMESPEC): Adjust comments.
(get_stat_birthtime): Also work with st_birthtim.
author | Eric Blake <ebb9@byu.net> |
---|---|
date | Tue, 27 Mar 2007 20:03:47 +0000 |
parents | f7fc3652bfc5 |
children | 378e85482afa |
files | ChangeLog lib/stat-time.h m4/stat-time.m4 |
diffstat | 3 files changed, 21 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2007-03-27 Eric Blake <ebb9@byu.net> + + Support sub-second birthtime on cygwin. + * m4/stat-time.m4 (gl_STAT_BIRTHTIME): Also check for st_birthtim. + * lib/stat-time.h (STAT_TIMESPEC): Adjust comments. + (get_stat_birthtime): Also work with st_birthtim. + 2007-03-27 Paul Eggert <eggert@cs.ucla.edu> * lib/stat-time.h (USE_BIRTHTIME): Remove.
--- a/lib/stat-time.h +++ b/lib/stat-time.h @@ -27,8 +27,9 @@ /* STAT_TIMESPEC (ST, ST_XTIM) is the ST_XTIM member for *ST of type struct timespec, if available. If not, then STAT_TIMESPEC_NS (ST, ST_XTIM) is the nanosecond component of the ST_XTIM member for *ST, - if available. ST_XTIM can be st_atim, st_ctim, or st_mtim for - access, status change, or data modification time, respectively. + if available. ST_XTIM can be st_atim, st_ctim, st_mtim, or st_birthtim + for access, status change, data modification, or birth (creation) + time respectively. These macros are private to stat-time.h. */ #if defined HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC @@ -146,7 +147,8 @@ { struct timespec t; -#ifdef HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC +#if defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC \ + || defined HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC t = STAT_TIMESPEC (st, st_birthtim); #elif defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC t.tv_sec = st->st_birthtime;
--- a/m4/stat-time.m4 +++ b/m4/stat-time.m4 @@ -9,12 +9,13 @@ dnl From Paul Eggert. -# st_atim.tv_nsec - Linux, Solaris +# st_atim.tv_nsec - Linux, Solaris, Cygwin # st_atimespec.tv_nsec - FreeBSD, NetBSD, if ! defined _POSIX_SOURCE # st_atimensec - FreeBSD, NetBSD, if defined _POSIX_SOURCE # st_atim.st__tim.tv_nsec - UnixWare (at least 2.1.2 through 7.1) # st_birthtimespec - FreeBSD, NetBSD (hidden on OpenBSD 3.9, anyway) +# st_birthtim - Cygwin 1.7.0+ AC_DEFUN([gl_STAT_TIME], [ @@ -43,7 +44,7 @@ [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no])]) if test $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec = yes; then AC_DEFINE([TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC], 1, - [Define to 1 if the type of the st_atim member of a struct stat is + [Define to 1 if the type of the st_atim member of a struct stat is struct timespec.]) fi], [AC_CHECK_MEMBERS([struct stat.st_atimespec.tv_nsec], [], @@ -59,7 +60,8 @@ #include <sys/stat.h>]) ]) -# Check for st_birthtime, a feature from UFS2 (FreeBSD, NetBSD, OpenBSD, etc.). +# Check for st_birthtime, a feature from UFS2 (FreeBSD, NetBSD, OpenBSD, etc.) +# and NTFS (Cygwin). # There was a time when this field was named st_createtime (21 June # 2002 to 16 July 2002) But that window is very small and applied only # to development code, so systems still using that configuration are @@ -72,7 +74,10 @@ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_CHECK_HEADERS_ONCE([sys/time.h]) AC_CHECK_MEMBERS([struct stat.st_birthtimespec.tv_nsec], [], - [AC_CHECK_MEMBERS([struct stat.st_birthtimensec], [], [], + [AC_CHECK_MEMBERS([struct stat.st_birthtimensec], [], + [AC_CHECK_MEMBERS([struct stat.st_birthtim.tv_nsec], [], [], + [#include <sys/types.h> + #include <sys/stat.h>])], [#include <sys/types.h> #include <sys/stat.h>])], [#include <sys/types.h>