* configure.in: Check if the stat structure has a st_atim or

st_atimensec field.
	* libmisc/copydir.c: Conditionally use the stat's st_atim and
	st_atimensec fields.
This commit is contained in:
nekral-guest 2008-08-30 18:31:21 +00:00
parent f86b2704d5
commit 68b7aad535
2 changed files with 11 additions and 2 deletions

View File

@ -12,6 +12,10 @@
for the definition of uid_t and gid_t. for the definition of uid_t and gid_t.
* lib/pwmem.c: do not include <pwd.h>, "pwio.h" is sufficient * lib/pwmem.c: do not include <pwd.h>, "pwio.h" is sufficient
here. here.
* configure.in: Check if the stat structure has a st_atim or
st_atimensec field.
* libmisc/copydir.c: Conditionally use the stat's st_atim and
st_atimensec fields.
2008-08-26 Nicolas François <nicolas.francois@centraliens.net> 2008-08-26 Nicolas François <nicolas.francois@centraliens.net>

View File

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