Restoring access and modification times

This commit is contained in:
Pierre Pronchery 2007-07-29 01:38:35 +00:00
parent 2651c6e0d5
commit ac0b1f8db7

View File

@ -17,6 +17,7 @@
#include <sys/stat.h> #include <sys/stat.h>
#include <sys/time.h>
#include <unistd.h> #include <unistd.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
@ -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) static int _mv_single(Prefs * prefs, char const * src, char const * dst)
{ {
struct stat st;
int ret; int ret;
struct stat st;
struct timeval tv[2];
if(*prefs & PREFS_i if(*prefs & PREFS_i
&& _mv_confirm(src, dst) != 1) && _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) else if(lchmod(dst, st.st_mode) != 0)
_mv_error(dst, 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; return 0;
} }