diff --git a/src/sbbs3/scfgsave.c b/src/sbbs3/scfgsave.c index 7f48181fb3111898b4dafc82c651361aa7abb6eb..eee8f042a1481bf2a58c22cc5023e90dcef610d0 100644 --- a/src/sbbs3/scfgsave.c +++ b/src/sbbs3/scfgsave.c @@ -162,9 +162,18 @@ BOOL DLLCALL backup(char *fname, int backup_level, BOOL ren) if(ren == TRUE) { if(rename(fname,newname)!=0) return(FALSE); - } else + } else { + struct utimbuf ut; + + /* preserve the original time stamp */ + ut.modtime = fdate(fname); + if(!fcopy(fname,newname)) return(FALSE); + + ut.actime = time(NULL); + utime(newname, &ut); + } continue; } safe_snprintf(oldname,sizeof(oldname),"%.*s.%d%s",len,fname,i-2,ext);