From d1470b7d7c65b22f3f93183e68b1f8fed73e82fe Mon Sep 17 00:00:00 2001 From: Andy Cedilnik Date: Thu, 27 May 2004 12:53:15 -0400 Subject: [PATCH] ENH: Detect if there were problems writing file --- Source/cmMakefile.cxx | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index e10b5ad48..2633746dc 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -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)