diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2004-11-29 19:22:16 +0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2004-11-29 19:22:16 +0000 |
commit | 13f77276d11610171bc7774406b65b6cb73d453a (patch) | |
tree | f12f7aa04fae9e52b7359685f5fd6c36428c213f | |
parent | eee6fe478e5a0275b2da382216a5b8ec24e04290 (diff) |
* utime() follows symlinks, so don't change the mtime if the file is a
symlink.
-rw-r--r-- | src/libstore/normalise.cc | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/libstore/normalise.cc b/src/libstore/normalise.cc index fbbaf9e07..9d51a4cd6 100644 --- a/src/libstore/normalise.cc +++ b/src/libstore/normalise.cc @@ -334,14 +334,15 @@ void canonicalisePathMetaData(const Path & path) throw SysError(format("changing owner/group of `%1%' to %2%/%3%") % path % getuid() % getgid()); } - } - if (st.st_mtime != 0) { - struct utimbuf utimbuf; - utimbuf.actime = st.st_atime; - utimbuf.modtime = 0; - if (utime(path.c_str(), &utimbuf) == -1) - throw SysError(format("changing modification time of `%1%'") % path); + if (st.st_mtime != 0) { + struct utimbuf utimbuf; + utimbuf.actime = st.st_atime; + utimbuf.modtime = 0; + if (utime(path.c_str(), &utimbuf) == -1) + throw SysError(format("changing modification time of `%1%'") % path); + } + } if (S_ISDIR(st.st_mode)) { |