ENH: Detect if there were problems writing file

This commit is contained in:
Andy Cedilnik 2004-05-27 12:53:15 -04:00
parent 757cec6caa
commit d1470b7d7c
1 changed files with 11 additions and 4 deletions

View File

@ -2310,6 +2310,7 @@ void cmMakefile::ConfigureString(const std::string& input,
int cmMakefile::ConfigureFile(const char* infile, const char* outfile,
bool copyonly, bool atOnly, bool escapeQuotes)
{
int res = 1;
if ( !cmSystemTools::FileExists(infile) )
{
cmSystemTools::Error("File ", infile, " does not exist.");
@ -2369,12 +2370,18 @@ int cmMakefile::ConfigureFile(const char* infile, const char* outfile,
// close the files before attempting to copy
fin.close();
fout.close();
cmSystemTools::CopyFileIfDifferent(tempOutputFile.c_str(),
soutfile.c_str());
if ( !cmSystemTools::CopyFileIfDifferent(tempOutputFile.c_str(),
soutfile.c_str()) )
{
res = 0;
}
else
{
cmSystemTools::SetPermissions(soutfile.c_str(), perm);
}
cmSystemTools::RemoveFile(tempOutputFile.c_str());
cmSystemTools::SetPermissions(soutfile.c_str(), perm);
}
return 1;
return res;
}
void cmMakefile::AddWrittenFile(const char* file)