KWSys: Avoid stat in CopyFileAlways (#10790)

On Windows 7 the file size reported by 'stat' on a new file sometimes
reports zero even though the real size is correct.  This causes our
CopyFileAlways method to falsely detect copy failure.  Work around the
problem by trusting the state of ofstream after writing the file.
This commit is contained in:
Brad King 2010-06-03 12:46:11 -04:00
parent 3ac3dea6f0
commit c15ed3294c
1 changed files with 1 additions and 13 deletions

View File

@ -1924,22 +1924,10 @@ bool SystemTools::CopyFileAlways(const char* source, const char* destination,
fin.close();
fout.close();
// More checks.
struct stat statSource, statDestination;
statSource.st_size = 12345;
statDestination.st_size = 12345;
if(stat(source, &statSource) != 0)
if(!fout)
{
return false;
}
else if(stat(destination, &statDestination) != 0)
{
return false;
}
else if(statSource.st_size != statDestination.st_size)
{
return false;
}
if ( copyPermissions && perms )
{
if ( !SystemTools::SetPermissions(destination, perm) )