diff --git a/src/common/string_util.cpp b/src/common/string_util.cpp index f3ad3d68a407947a7cf5bd889aa9e742f4f46bee..2099eebb8b5488c86507ca1b26622d7c433234ab 100644 --- a/src/common/string_util.cpp +++ b/src/common/string_util.cpp @@ -168,15 +168,14 @@ void SplitString(const std::string& str, const char delim, std::vector<std::stri output.pop_back(); } -std::string TabsToSpaces(int tab_size, const std::string& in) { - const std::string spaces(tab_size, ' '); - std::string out(in); - +std::string TabsToSpaces(int tab_size, std::string in) { size_t i = 0; - while (out.npos != (i = out.find('\t'))) - out.replace(i, 1, spaces); - return out; + while ((i = in.find('\t')) != std::string::npos) { + in.replace(i, 1, tab_size, ' '); + } + + return in; } std::string ReplaceAll(std::string result, const std::string& src, const std::string& dest) { diff --git a/src/common/string_util.h b/src/common/string_util.h index daa071f83bf921945d0c5aa0941baabe5d6682c7..4a2143b5929c1a6eec97f4f5281bacba6200ae82 100644 --- a/src/common/string_util.h +++ b/src/common/string_util.h @@ -57,7 +57,7 @@ static bool TryParse(const std::string& str, N* const output) { return false; } -std::string TabsToSpaces(int tab_size, const std::string& in); +std::string TabsToSpaces(int tab_size, std::string in); void SplitString(const std::string& str, char delim, std::vector<std::string>& output);