Commit 5cec953e authored by Daniel Pfeifer's avatar Daniel Pfeifer

Use std::replace for replacing chars in strings.

Find uses of `cmSystemTools::ReplaceString` where both `replace` and
`with` are string literals with a size of one.

Automate with:

git grep -l ReplaceString | xargs sed -i "s|cmSystemTools::ReplaceString(\([^,]*\), \"\(.\)\", \"\(.\)\");|std::replace(\1.begin(), \1.end(), '\2', '\3');|g"
git grep -l ReplaceString | xargs sed -i "s|cmSystemTools::ReplaceString(\([^,]*\), \"\(.\)\", \"\\\\\\\\\");|std::replace(\1.begin(), \1.end(), '\2', '\\\\\\\\');|g"
git grep -l ReplaceString | xargs sed -i "s|cmSystemTools::ReplaceString(\([^,]*\), \"\\\\\\\\\", \"\(.\)\");|std::replace(\1.begin(), \1.end(), '\\\\\\\\', '\2');|g"
parent 2a1a2033
......@@ -74,7 +74,7 @@ int cmCPackNSISGenerator::PackageFiles()
// Strip off the component part of the path.
fileN = fileN.substr(fileN.find('/') + 1, std::string::npos);
}
cmSystemTools::ReplaceString(fileN, "/", "\\");
std::replace(fileN.begin(), fileN.end(), '/', '\\');
str << " Delete \"$INSTDIR\\" << fileN << "\"" << std::endl;
}
cmCPackLogger(cmCPackLog::LOG_DEBUG, "Uninstall Files: " << str.str()
......@@ -104,7 +104,7 @@ int cmCPackNSISGenerator::PackageFiles()
fileN = fileN.substr(slash + 1, std::string::npos);
}
}
cmSystemTools::ReplaceString(fileN, "/", "\\");
std::replace(fileN.begin(), fileN.end(), '/', '\\');
dstr << " RMDir \"$INSTDIR\\" << fileN << "\"" << std::endl;
if (!componentName.empty()) {
this->Components[componentName].Directories.push_back(fileN);
......@@ -548,7 +548,7 @@ void cmCPackNSISGenerator::CreateMenuLinks(std::ostringstream& str,
// Convert / to \ in filenames, but not in urls:
//
if (!url) {
cmSystemTools::ReplaceString(sourceName, "/", "\\");
std::replace(sourceName.begin(), sourceName.end(), '/', '\\');
}
++it;
......@@ -790,13 +790,13 @@ std::string cmCPackNSISGenerator::CreateComponentDescription(
for (pathIt = component->Files.begin(); pathIt != component->Files.end();
++pathIt) {
path = *pathIt;
cmSystemTools::ReplaceString(path, "/", "\\");
std::replace(path.begin(), path.end(), '/', '\\');
macrosOut << " Delete \"$INSTDIR\\" << path << "\"\n";
}
for (pathIt = component->Directories.begin();
pathIt != component->Directories.end(); ++pathIt) {
path = *pathIt;
cmSystemTools::ReplaceString(path, "/", "\\");
std::replace(path.begin(), path.end(), '/', '\\');
macrosOut << " RMDir \"$INSTDIR\\" << path << "\"\n";
}
macrosOut << " noremove_" << component->Name << ":\n";
......
......@@ -34,13 +34,13 @@ int cmCPackRPMGenerator::InitializeInternal()
*/
if (this->GetOption("CPACK_PACKAGE_NAME")) {
std::string packageName = this->GetOption("CPACK_PACKAGE_NAME");
cmSystemTools::ReplaceString(packageName, " ", "-");
std::replace(packageName.begin(), packageName.end(), ' ', '-');
this->SetOption("CPACK_PACKAGE_NAME", packageName.c_str());
}
/* same for CPACK_PACKAGE_FILE_NAME */
if (this->GetOption("CPACK_PACKAGE_FILE_NAME")) {
std::string packageName = this->GetOption("CPACK_PACKAGE_FILE_NAME");
cmSystemTools::ReplaceString(packageName, " ", "-");
std::replace(packageName.begin(), packageName.end(), ' ', '-');
this->SetOption("CPACK_PACKAGE_FILE_NAME", packageName.c_str());
}
return this->Superclass::InitializeInternal();
......
......@@ -32,9 +32,9 @@ bool cmBuildNameCommand::InitialPass(std::vector<std::string> const& args,
cmsys::RegularExpression reg("[()/]");
if (reg.find(cacheValue)) {
std::string cv = cacheValue;
cmSystemTools::ReplaceString(cv, "/", "_");
cmSystemTools::ReplaceString(cv, "(", "_");
cmSystemTools::ReplaceString(cv, ")", "_");
std::replace(cv.begin(), cv.end(), '/', '_');
std::replace(cv.begin(), cv.end(), '(', '_');
std::replace(cv.begin(), cv.end(), ')', '_');
this->Makefile->AddCacheDefinition(args[0], cv.c_str(), "Name of build.",
cmState::STRING);
}
......@@ -57,9 +57,9 @@ bool cmBuildNameCommand::InitialPass(std::vector<std::string> const& args,
this->Makefile->ExpandVariablesInString(compiler);
buildname += "-";
buildname += cmSystemTools::GetFilenameName(compiler);
cmSystemTools::ReplaceString(buildname, "/", "_");
cmSystemTools::ReplaceString(buildname, "(", "_");
cmSystemTools::ReplaceString(buildname, ")", "_");
std::replace(buildname.begin(), buildname.end(), '/', '_');
std::replace(buildname.begin(), buildname.end(), '(', '_');
std::replace(buildname.begin(), buildname.end(), ')', '_');
this->Makefile->AddCacheDefinition(args[0], buildname.c_str(),
"Name of build.", cmState::STRING);
......
......@@ -95,9 +95,9 @@ bool cmCreateTestSourceList::InitialPass(std::vector<std::string> const& args,
func_name = cmSystemTools::GetFilenameWithoutLastExtension(*i);
}
cmSystemTools::ConvertToUnixSlashes(func_name);
cmSystemTools::ReplaceString(func_name, " ", "_");
cmSystemTools::ReplaceString(func_name, "/", "_");
cmSystemTools::ReplaceString(func_name, ":", "_");
std::replace(func_name.begin(), func_name.end(), ' ', '_');
std::replace(func_name.begin(), func_name.end(), '/', '_');
std::replace(func_name.begin(), func_name.end(), ':', '_');
tests_func_name.push_back(func_name);
forwardDeclareCode += "int ";
forwardDeclareCode += func_name;
......
......@@ -214,7 +214,7 @@ void cmGlobalGhsMultiGenerator::OpenBuildFileStream()
this->GetCMakeInstance()->MarkCliAsUsed("GHS_OS_DIR");
}
std::string fOSDir(this->trimQuotes(osDir));
cmSystemTools::ReplaceString(fOSDir, "\\", "/");
std::replace(fOSDir.begin(), fOSDir.end(), '\\', '/');
if (!fOSDir.empty() && ('c' == fOSDir[0] || 'C' == fOSDir[0])) {
this->OSDirRelative = false;
} else {
......@@ -230,7 +230,7 @@ void cmGlobalGhsMultiGenerator::OpenBuildFileStream()
this->GetCMakeInstance()->MarkCliAsUsed("GHS_BSP_NAME");
}
std::string fBspName(this->trimQuotes(bspName));
cmSystemTools::ReplaceString(fBspName, "\\", "/");
std::replace(fBspName.begin(), fBspName.end(), '\\', '/');
this->WriteMacros();
this->WriteHighLevelDirectives();
......
......@@ -113,9 +113,9 @@ std::string cmGlobalNinjaGenerator::EncodePath(const std::string& path)
std::string result = path;
#ifdef _WIN32
if (this->IsGCCOnWindows())
cmSystemTools::ReplaceString(result, "\\", "/");
std::replace(result.begin(), result.end(), '\\', '/');
else
cmSystemTools::ReplaceString(result, "/", "\\");
std::replace(result.begin(), result.end(), '/', '\\');
#endif
return EncodeLiteral(result);
}
......@@ -742,7 +742,7 @@ std::string cmGlobalNinjaGenerator::ConvertToNinjaPath(const std::string& path)
std::string convPath = ng->Convert(path, cmOutputConverter::HOME_OUTPUT);
convPath = this->NinjaOutputPath(convPath);
#ifdef _WIN32
cmSystemTools::ReplaceString(convPath, "/", "\\");
std::replace(convPath.begin(), convPath.end(), '/', '\\');
#endif
return convPath;
}
......@@ -755,7 +755,7 @@ std::string cmGlobalNinjaGenerator::ConvertToNinjaFolderRule(
std::string convPath = ng->Convert(path + "/all", cmOutputConverter::HOME);
convPath = this->NinjaOutputPath(convPath);
#ifdef _WIN32
cmSystemTools::ReplaceString(convPath, "/", "\\");
std::replace(convPath.begin(), convPath.end(), '/', '\\');
#endif
return convPath;
}
......
......@@ -457,7 +457,7 @@ void cmGlobalVisualStudio7Generator::WriteFolders(std::ostream& fout)
std::string fullName = iter->first;
std::string guid = this->GetGUID(fullName.c_str());
cmSystemTools::ReplaceString(fullName, "/", "\\");
std::replace(fullName.begin(), fullName.end(), '/', '\\');
if (cmSystemTools::StringStartsWith(fullName.c_str(), prefix)) {
fullName = fullName.substr(skip_prefix);
}
......
......@@ -622,7 +622,7 @@ void WriteVSMacrosFileRegistryEntry(const std::string& nextAvailableSubKeyName,
DWORD dw = 0;
std::string s(macrosFile);
cmSystemTools::ReplaceString(s, "/", "\\");
std::replace(s.begin(), s.end(), '/', '\\');
std::wstring ws = cmsys::Encoding::ToWide(s);
result =
......
......@@ -367,7 +367,7 @@ std::string cmGlobalXCodeGenerator::PostBuildMakeTarget(
std::string const& tName, std::string const& configName)
{
std::string target = tName;
cmSystemTools::ReplaceString(target, " ", "_");
std::replace(target.begin(), target.end(), ' ', '_');
std::string out = "PostBuild." + target;
if (this->XcodeVersion > 20) {
out += "." + configName;
......
......@@ -93,11 +93,11 @@ void cmInstallExportGenerator::ComputeTempDir()
dest[0] = '_';
}
// Avoid windows full paths by removing colons.
cmSystemTools::ReplaceString(dest, ":", "_");
std::replace(dest.begin(), dest.end(), ':', '_');
// Avoid relative paths that go up the tree.
cmSystemTools::ReplaceString(dest, "../", "__/");
// Avoid spaces.
cmSystemTools::ReplaceString(dest, " ", "_");
std::replace(dest.begin(), dest.end(), ' ', '_');
this->TempDir += dest;
}
}
......
......@@ -2309,13 +2309,13 @@ std::string& cmLocalGenerator::CreateSafeUniqueObjectFileName(
ssin.erase(0, ssin.find_first_not_of("/"));
// Avoid full paths by removing colons.
cmSystemTools::ReplaceString(ssin, ":", "_");
std::replace(ssin.begin(), ssin.end(), ':', '_');
// Avoid relative paths that go up the tree.
cmSystemTools::ReplaceString(ssin, "../", "__/");
// Avoid spaces.
cmSystemTools::ReplaceString(ssin, " ", "_");
std::replace(ssin.begin(), ssin.end(), ' ', '_');
// Mangle the name if necessary.
if (this->Makefile->IsOn("CMAKE_MANGLE_OBJECT_FILE_NAMES")) {
......
......@@ -1190,7 +1190,7 @@ std::string cmLocalUnixMakefileGenerator3::CreateMakeVariable(
// if this there is no value for this->MakefileVariableSize then
// the string must have bad characters in it
if (!this->MakefileVariableSize) {
cmSystemTools::ReplaceString(ret, ".", "_");
std::replace(ret.begin(), ret.end(), '.', '_');
cmSystemTools::ReplaceString(ret, "-", "__");
cmSystemTools::ReplaceString(ret, "+", "___");
int ni = 0;
......
......@@ -134,7 +134,7 @@ void cmNinjaTargetGenerator::AddIncludeFlags(std::string& languageFlags,
// needed by cmcldeps
false, this->GetConfigName());
if (this->GetGlobalGenerator()->IsGCCOnWindows())
cmSystemTools::ReplaceString(includeFlags, "\\", "/");
std::replace(includeFlags.begin(), includeFlags.end(), '\\', '/');
this->LocalGenerator->AppendFlags(languageFlags, includeFlags);
}
......
......@@ -1303,7 +1303,7 @@ bool cmQtAutoGenerators::GenerateQrc(const std::string& qrcInputFile,
const std::string& qrcOutputFile)
{
std::string relName = this->SourceRelativePath(qrcInputFile);
cmSystemTools::ReplaceString(relName, "/", "_");
std::replace(relName.begin(), relName.end(), '/', '_');
relName += cmsys::SystemTools::GetFilenameWithoutLastExtension(qrcInputFile);
const ::std::string qrcBuildFile = this->Builddir + qrcOutputFile;
......
......@@ -62,7 +62,7 @@ bool cmSeparateArgumentsCommand::InitialPass(
// Original space-replacement version of command.
if (const char* def = this->Makefile->GetDefinition(var)) {
std::string value = def;
cmSystemTools::ReplaceString(value, " ", ";");
std::replace(value.begin(), value.end(), ' ', ';');
this->Makefile->AddDefinition(var, value.c_str());
}
} else {
......
......@@ -2207,7 +2207,7 @@ bool cmVisualStudio10TargetGenerator::ComputeLinkOptions(
libs = libs.substr(0, pos + 1);
}
// Replace spaces in libs with ;
cmSystemTools::ReplaceString(libs, " ", ";");
std::replace(libs.begin(), libs.end(), ' ', ';');
std::vector<std::string> libVec;
cmSystemTools::ExpandListArgument(libs, libVec);
......
......@@ -141,8 +141,8 @@ std::string cmVisualStudioWCEPlatformParser::FixPaths(
cmSystemTools::ReplaceString(ret, "$(PATH)", "%PATH%");
cmSystemTools::ReplaceString(ret, "$(VCInstallDir)", VcInstallDir.c_str());
cmSystemTools::ReplaceString(ret, "$(VSInstallDir)", VsInstallDir.c_str());
cmSystemTools::ReplaceString(ret, "\\", "/");
std::replace(ret.begin(), ret.end(), '\\', '/');
cmSystemTools::ReplaceString(ret, "//", "/");
cmSystemTools::ReplaceString(ret, "/", "\\");
std::replace(ret.begin(), ret.end(), '/', '\\');
return ret;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment