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 = <ARG0>;
str += <ARG1>;
str += <ARG2>;
...
and replaces them with a single cmStrCat
call
std::string str = cmStrCat(<ARG0>, <ARG1>, <ARG2>, ...);
If any <ARGX>
is itself a concatenated string of the kind
a + b + c + ...;
then <ARGX>
is split into multiple arguments for the cmStrCat
call.
If there's a sequence of literals in the <ARGX>
, 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.
arg.substr(x)
arguments to cmStrCat
are replaced with
cm::string_view(arg).substr(x)