From ac0b1f8db7bab087bb369721e45243cc0c18ceb5 Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Sun, 29 Jul 2007 01:38:35 +0000 Subject: [PATCH] Restoring access and modification times --- src/mv.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/mv.c b/src/mv.c index 827e839..3b7c7b0 100644 --- a/src/mv.c +++ b/src/mv.c @@ -17,6 +17,7 @@ #include +#include #include #include #include @@ -90,8 +91,9 @@ static int _single_regular(char const * src, char const * dst); static int _mv_single(Prefs * prefs, char const * src, char const * dst) { - struct stat st; int ret; + struct stat st; + struct timeval tv[2]; if(*prefs & PREFS_i && _mv_confirm(src, dst) != 1) @@ -130,7 +132,12 @@ static int _mv_single(Prefs * prefs, char const * src, char const * dst) } else if(lchmod(dst, st.st_mode) != 0) _mv_error(dst, 0); - /* FIXME restore original times */ + tv[0].tv_sec = st.st_atime; + tv[0].tv_usec = 0; + tv[1].tv_sec = st.st_mtime; + tv[1].tv_usec = 0; + if(lutimes(dst, tv) != 0) + _mv_error(dst, 0); return 0; }