diff options
author | Brad King <brad.king@kitware.com> | 2008-10-18 16:07:15 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2008-10-18 16:07:15 (GMT) |
commit | 9d1f471845b0d90592b077b5d44b926786a3657d (patch) | |
tree | d97d98f352fdeae45344d5890739566fefc702fe /Source/CTest/cmCTestUpdateHandler.cxx | |
parent | 407a2bc7370ed9984ddfec8fc816631c0a4b650f (diff) | |
download | CMake-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.cxx | 9 |
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 ) |