mirror of
https://github.com/reactos/CMake.git
synced 2025-02-19 11:00:58 +00:00
Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys: KWSys 2017-12-12 (3ba214b7)
This commit is contained in:
commit
834d187841
@ -4234,11 +4234,16 @@ bool SystemTools::IsSubDirectory(const std::string& cSubdir,
|
||||
std::string dir = cDir;
|
||||
SystemTools::ConvertToUnixSlashes(subdir);
|
||||
SystemTools::ConvertToUnixSlashes(dir);
|
||||
if (subdir.size() > dir.size() && subdir[dir.size()] == '/') {
|
||||
std::string s = subdir.substr(0, dir.size());
|
||||
return SystemTools::ComparePath(s, dir);
|
||||
if (subdir.size() <= dir.size() || dir.empty()) {
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
bool isRootPath = *dir.rbegin() == '/'; // like "/" or "C:/"
|
||||
size_t expectedSlashPosition = isRootPath ? dir.size() - 1u : dir.size();
|
||||
if (subdir[expectedSlashPosition] != '/') {
|
||||
return false;
|
||||
}
|
||||
std::string s = subdir.substr(0, dir.size());
|
||||
return SystemTools::ComparePath(s, dir);
|
||||
}
|
||||
|
||||
void SystemTools::Delay(unsigned int msec)
|
||||
|
@ -813,6 +813,39 @@ static bool CheckFind()
|
||||
return res;
|
||||
}
|
||||
|
||||
static bool CheckIsSubDirectory()
|
||||
{
|
||||
bool res = true;
|
||||
|
||||
if (kwsys::SystemTools::IsSubDirectory("/foo", "/") == false) {
|
||||
std::cerr << "Problem with IsSubDirectory (root - unix): " << std::endl;
|
||||
res = false;
|
||||
}
|
||||
if (kwsys::SystemTools::IsSubDirectory("c:/foo", "c:/") == false) {
|
||||
std::cerr << "Problem with IsSubDirectory (root - dos): " << std::endl;
|
||||
res = false;
|
||||
}
|
||||
if (kwsys::SystemTools::IsSubDirectory("/foo/bar", "/foo") == false) {
|
||||
std::cerr << "Problem with IsSubDirectory (deep): " << std::endl;
|
||||
res = false;
|
||||
}
|
||||
if (kwsys::SystemTools::IsSubDirectory("/foo", "/foo") == true) {
|
||||
std::cerr << "Problem with IsSubDirectory (identity): " << std::endl;
|
||||
res = false;
|
||||
}
|
||||
if (kwsys::SystemTools::IsSubDirectory("/fooo", "/foo") == true) {
|
||||
std::cerr << "Problem with IsSubDirectory (substring): " << std::endl;
|
||||
res = false;
|
||||
}
|
||||
if (kwsys::SystemTools::IsSubDirectory("/foo/", "/foo") == true) {
|
||||
std::cerr << "Problem with IsSubDirectory (prepended slash): "
|
||||
<< std::endl;
|
||||
res = false;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
static bool CheckGetLineFromStream()
|
||||
{
|
||||
const std::string fileWithFiveCharsOnFirstLine(TEST_SYSTEMTOOLS_SOURCE_DIR
|
||||
@ -897,6 +930,8 @@ int testSystemTools(int, char* [])
|
||||
|
||||
res &= CheckFind();
|
||||
|
||||
res &= CheckIsSubDirectory();
|
||||
|
||||
res &= CheckGetLineFromStream();
|
||||
|
||||
res &= CheckGetFilenameName();
|
||||
|
Loading…
x
Reference in New Issue
Block a user