From: nekral-guest Date: Sun, 7 Sep 2008 00:05:38 +0000 (+0000) Subject: * libmisc/copydir.c, configure.in: Check for the presence of X-Git-Tag: 4.1.3~177 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=828e9d095ea94f3329453875fc7b7928cf4026df;p=shadow * libmisc/copydir.c, configure.in: Check for the presence of st_mtim and st_mtimensec, as for st_atim and st_atimensec. --- diff --git a/ChangeLog b/ChangeLog index 7a5099f1..d0fc8277 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-09-07 Nicolas François + + * 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 * src/gpasswd.c: Document the long options in the usage. diff --git a/configure.in b/configure.in index ebbb6d5c..8da687a4 100644 --- a/configure.in +++ b/configure.in @@ -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 diff --git a/libmisc/copydir.c b/libmisc/copydir.c index cdd20370..a9aec98a 100644 --- a/libmisc/copydir.c +++ b/libmisc/copydir.c @@ -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; - 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; - mt[1].tv_usec = sb.st_mtimensec / 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[1].tv_sec = sb.st_mtime; +#ifdef HAVE_STRUCT_STAT_ST_MTIMENSEC + mt[1].tv_usec = sb.st_mtimensec / 1000; +#else mt[1].tv_usec = 0; #endif #endif