summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2004-01-22 15:30:01 (GMT)
committerBrad King <brad.king@kitware.com>2004-01-22 15:30:01 (GMT)
commit49bd89fe31f9a5d064c9ae863798349838badc21 (patch)
treedb2c4fc838ed7fa88d1ed2acf4e55436508aa6c0
parentf9a3f74d87a875e172c8128a3e2e5d215a54dd31 (diff)
downloadCMake-49bd89fe31f9a5d064c9ae863798349838badc21.zip
CMake-49bd89fe31f9a5d064c9ae863798349838badc21.tar.gz
CMake-49bd89fe31f9a5d064c9ae863798349838badc21.tar.bz2
BUG: CopyFileIfDifferent should return success if the files did not differ or if the copy succeeded. It should return failure only if the files were different and the copy failed.
-rw-r--r--Source/cmake.cxx19
-rw-r--r--Source/kwsys/SystemTools.cxx7
2 files changed, 18 insertions, 8 deletions
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 8416fe2..50170c6 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -660,15 +660,26 @@ int cmake::CMakeCommand(std::vector<std::string>& args)
// Copy file
if (args[1] == "copy" && args.size() == 4)
{
- cmSystemTools::cmCopyFile(args[2].c_str(), args[3].c_str());
- return cmSystemTools::GetErrorOccuredFlag();
+ if(!cmSystemTools::cmCopyFile(args[2].c_str(), args[3].c_str()))
+ {
+ std::cerr << "Error copying file \"" << args[2].c_str()
+ << "\" to \"" << args[3].c_str() << "\".\n";
+ return 1;
+ }
+ return 0;
}
// Copy file if different.
if (args[1] == "copy_if_different" && args.size() == 4)
{
- cmSystemTools::CopyFileIfDifferent(args[2].c_str(), args[3].c_str());
- return cmSystemTools::GetErrorOccuredFlag();
+ if(!cmSystemTools::CopyFileIfDifferent(args[2].c_str(), args[3].c_str()))
+ {
+ std::cerr << "Error copying file (if different) from \""
+ << args[2].c_str() << "\" to \"" << args[3].c_str()
+ << "\".\n";
+ return 1;
+ }
+ return 0;
}
// Echo string
diff --git a/Source/kwsys/SystemTools.cxx b/Source/kwsys/SystemTools.cxx
index d525be3..825e27e 100644
--- a/Source/kwsys/SystemTools.cxx
+++ b/Source/kwsys/SystemTools.cxx
@@ -816,14 +816,13 @@ kwsys_stl::string SystemTools::ConvertToWindowsOutputPath(const char* path)
}
bool SystemTools::CopyFileIfDifferent(const char* source,
- const char* destination)
+ const char* destination)
{
if(SystemTools::FilesDiffer(source, destination))
{
- SystemTools::CopyFileAlways(source, destination);
- return true;
+ return SystemTools::CopyFileAlways(source, destination);
}
- return false;
+ return true;
}