summaryrefslogtreecommitdiffstats
path: root/Source/CTest/cmCTestUpdateHandler.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2008-10-18 16:07:15 (GMT)
committerBrad King <brad.king@kitware.com>2008-10-18 16:07:15 (GMT)
commit9d1f471845b0d90592b077b5d44b926786a3657d (patch)
treed97d98f352fdeae45344d5890739566fefc702fe /Source/CTest/cmCTestUpdateHandler.cxx
parent407a2bc7370ed9984ddfec8fc816631c0a4b650f (diff)
downloadCMake-9d1f471845b0d90592b077b5d44b926786a3657d.zip
CMake-9d1f471845b0d90592b077b5d44b926786a3657d.tar.gz
CMake-9d1f471845b0d90592b077b5d44b926786a3657d.tar.bz2
BUG: Fix recognition of files deleted from CVS
The output of "cvs update" contains a line such as one of cvs update: `foo.txt' is no longer in the repository cvs update: foo.txt is no longer in the repository cvs update: warning: foo.txt is not (any longer) pertinent when file "foo.txt" has been removed in the version to which the update occurs. Previously only the first case would be recognized. This fixes the regular expression to match all these cases.
Diffstat (limited to 'Source/CTest/cmCTestUpdateHandler.cxx')
-rw-r--r--Source/CTest/cmCTestUpdateHandler.cxx9
1 files changed, 8 insertions, 1 deletions
diff --git a/Source/CTest/cmCTestUpdateHandler.cxx b/Source/CTest/cmCTestUpdateHandler.cxx
index e6a6073..efcea4c 100644
--- a/Source/CTest/cmCTestUpdateHandler.cxx
+++ b/Source/CTest/cmCTestUpdateHandler.cxx
@@ -653,7 +653,9 @@ int cmCTestUpdateHandler::ProcessHandler()
"(Updated to|At) revision ([0-9]+)\\.");
cmsys::RegularExpression file_removed_line(
- "cvs update: `(.*)' is no longer in the repository");
+ "cvs update: `?([^']*)'? is no longer in the repository");
+ cmsys::RegularExpression file_removed_line2(
+ "cvs update: warning: `?([^']*)'? is not \\(any longer\\) pertinent");
cmsys::RegularExpression file_update_line("([A-Z]) *(.*)");
std::string current_path = "<no-path>";
bool first_file = true;
@@ -702,6 +704,11 @@ int cmCTestUpdateHandler::ProcessHandler()
removed_line = "D " + file_removed_line.match(1);
line = removed_line.c_str();
}
+ else if ( file_removed_line2.find(line) )
+ {
+ removed_line = "D " + file_removed_line2.match(1);
+ line = removed_line.c_str();
+ }
if ( file_update_line.find(line) )
{
if ( file_count == 0 )