• Sebastian Holtermann's avatar
    Source sweep: Use cmStrCat for string concatenation · 9b334397
    Sebastian Holtermann authored
    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 as string types.
    
    `arg.substr(x)` arguments to `cmStrCat` are replaced with
    `cm::string_view(arg).substr(x)`
    9b334397
Name
Last commit
Last update
.github Loading commit data...
Auxiliary Loading commit data...
Help Loading commit data...
Licenses Loading commit data...
Modules Loading commit data...
Packaging Loading commit data...
Source Loading commit data...
Templates Loading commit data...
Tests Loading commit data...
Utilities Loading commit data...
.clang-format Loading commit data...
.clang-tidy Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.hooks-config Loading commit data...
CMakeCPack.cmake Loading commit data...
CMakeCPackOptions.cmake.in Loading commit data...
CMakeGraphVizOptions.cmake Loading commit data...
CMakeLists.txt Loading commit data...
CMakeLogo.gif Loading commit data...
CONTRIBUTING.rst Loading commit data...
CTestConfig.cmake Loading commit data...
CTestCustom.cmake.in Loading commit data...
CompileFlags.cmake Loading commit data...
Copyright.txt Loading commit data...
DartConfig.cmake Loading commit data...
README.rst Loading commit data...
bootstrap Loading commit data...
cmake_uninstall.cmake.in Loading commit data...
configure Loading commit data...
doxygen.config Loading commit data...