* libmisc/copydir.c, configure.in: Check for the presence of

st_mtim and st_mtimensec, as for st_atim and st_atimensec.
This commit is contained in:
nekral-guest 2008-09-07 00:05:38 +00:00
parent bab84a13ff
commit 828e9d095e
3 changed files with 19 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2008-09-07 Nicolas François <nicolas.francois@centraliens.net>
* libmisc/copydir.c, configure.in: Check for the presence of
st_mtim and st_mtimensec, as for st_atim and st_atimensec.
2008-09-07 Nicolas François <nicolas.francois@centraliens.net>
* src/gpasswd.c: Document the long options in the usage.

View File

@ -54,6 +54,8 @@ AC_HEADER_STAT
AC_CHECK_MEMBERS([struct stat.st_rdev])
AC_CHECK_MEMBERS([struct stat.st_atim])
AC_CHECK_MEMBERS([struct stat.st_atimensec])
AC_CHECK_MEMBERS([struct stat.st_mtim])
AC_CHECK_MEMBERS([struct stat.st_mtimensec])
AC_HEADER_TIME
AC_STRUCT_TM

View File

@ -288,19 +288,26 @@ static int copy_entry (const char *src, const char *dst,
if (LSTAT (src, &sb) == -1) {
/* If we cannot stat the file, do not care. */
} else {
#ifdef HAVE_STRUCT_STAT_ST_ATIM
#ifdef HAVE_STRUCT_STAT_ST_ATIM
mt[0].tv_sec = sb.st_atim.tv_sec;
mt[0].tv_usec = sb.st_atim.tv_nsec / 1000;
#else
mt[0].tv_sec = sb.st_atime;
#ifdef HAVE_STRUCT_STAT_ST_ATIMENSEC
mt[0].tv_usec = sb.st_atimensec / 1000;
#else
mt[0].tv_usec = 0;
#endif
#endif
#ifdef HAVE_STRUCT_STAT_ST_MTIM
mt[1].tv_sec = sb.st_mtim.tv_sec;
mt[1].tv_usec = sb.st_mtim.tv_nsec / 1000;
#else
mt[0].tv_sec = sb.st_atime;
mt[1].tv_sec = sb.st_mtime;
#ifdef HAVE_STRUCT_STAT_ST_ATIMENSEC
mt[0].tv_usec = sb.st_atimensec / 1000;
#ifdef HAVE_STRUCT_STAT_ST_MTIMENSEC
mt[1].tv_usec = sb.st_mtimensec / 1000;
#else
mt[0].tv_usec = 0;
mt[1].tv_usec = 0;
#endif
#endif