From 9b334397f55b70689ff1d8f7d6767a34834e85b6 Mon Sep 17 00:00:00 2001 From: Sebastian Holtermann Date: Thu, 22 Aug 2019 16:34:40 +0200 Subject: Source sweep: Use cmStrCat for string concatenation This patch is generated by a python script that uses regular expressions to search for string concatenation patterns of the kind ``` std::string str = ; str += ; str += ; ... ``` and replaces them with a single `cmStrCat` call ``` std::string str = cmStrCat(, , , ...); ``` If any `` is itself a concatenated string of the kind ``` a + b + c + ...; ``` then `` is split into multiple arguments for the `cmStrCat` call. If there's a sequence of literals in the ``, then all literals in the sequence are concatenated and merged into a single literal argument for the `cmStrCat` call. Single character strings are converted to single char arguments for the `cmStrCat` call. `std::to_string(...)` wrappings are removed from `cmStrCat` arguments, because it supports numeric types as well as string types. `arg.substr(x)` arguments to `cmStrCat` are replaced with `cm::string_view(arg).substr(x)` --- Source/cmAddCustomCommandCommand.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Source/cmAddCustomCommandCommand.cxx') diff --git a/Source/cmAddCustomCommandCommand.cxx b/Source/cmAddCustomCommandCommand.cxx index 11d28c28a5..d2330e1675 100644 --- a/Source/cmAddCustomCommandCommand.cxx +++ b/Source/cmAddCustomCommandCommand.cxx @@ -14,6 +14,7 @@ #include "cmMessageType.h" #include "cmPolicies.h" #include "cmSourceFile.h" +#include "cmStringAlgorithms.h" #include "cmSystemTools.h" #include "cmTarget.h" @@ -202,8 +203,7 @@ bool cmAddCustomCommandCommand(std::vector const& args, // and later references "${CMAKE_CURRENT_SOURCE_DIR}/out.txt". // This is fairly obscure so we can wait for someone to // complain. - filename = mf.GetCurrentBinaryDirectory(); - filename += "/"; + filename = cmStrCat(mf.GetCurrentBinaryDirectory(), '/'); } filename += copy; cmSystemTools::ConvertToUnixSlashes(filename); -- cgit v1.2.1