Use utimes instead of utime if utimes is available.

pull/2/head
Tatsuhiro Tsujikawa 2011-08-19 22:35:15 +09:00
parent 3fe4e84443
commit af46293ef9
2 changed files with 13 additions and 2 deletions

View File

@ -400,7 +400,8 @@ AC_CHECK_FUNCS([__argz_count \
tzset \
unsetenv \
usleep \
utime])
utime \
utimes])
if test "x$enable_epoll" = "xyes"; then
AC_CHECK_FUNCS([epoll_create], [have_epoll=yes])

View File

@ -36,7 +36,9 @@
#include <stdlib.h>
#include <sys/types.h>
#include <utime.h>
#ifdef HAVE_UTIME_H
# include <utime.h>
#endif // HAVE_UTIME_H
#include <unistd.h>
#include <vector>
@ -218,10 +220,18 @@ bool File::renameTo(const std::string& dest)
bool File::utime(const Time& actime, const Time& modtime) const
{
#if defined HAVE_UTIMES && !(defined __MINGW32__)
struct timeval times[2] = {
{ actime.getTime(), 0 },
{ modtime.getTime(), 0 }
};
return utimes(name_.c_str(), times) == 0;
#else // !HAVE_UTIMES
a2utimbuf ub;
ub.actime = actime.getTime();
ub.modtime = modtime.getTime();
return a2utime(utf8ToWChar(name_).c_str(), &ub) == 0;
#endif // !HAVE_UTIMES
}
Time File::getModifiedTime()