diff --git a/utilities/utilities.cpp b/utilities/utilities.cpp index be175eb5..4d915940 100644 --- a/utilities/utilities.cpp +++ b/utilities/utilities.cpp @@ -392,9 +392,12 @@ void replace_slashes(std::string &Filename) } // returns potential path part from provided file name -std::string_view substr_path(std::string const &Filename) +std::string substr_path(std::string const &Filename) { - return (Filename.rfind('/') != std::string::npos ? Filename.substr(0, Filename.rfind('/') + 1) : ""); + // String::substr returns new string so substr_path has to return std::string + if (auto pos = Filename.rfind('/'); pos != std::string::npos) + return Filename.substr(0, pos + 1); + return {}; } // returns length of common prefix between two provided strings diff --git a/utilities/utilities.h b/utilities/utilities.h index fafb708e..5097173f 100644 --- a/utilities/utilities.h +++ b/utilities/utilities.h @@ -214,7 +214,7 @@ void erase_leading_slashes(std::string &Filename); void replace_slashes(std::string &Filename); // returns potential path part from provided file name -std::string_view substr_path(std::string const &Filename); +std::string substr_path(std::string const &Filename); // returns common prefix of two provided strings std::ptrdiff_t len_common_prefix(std::string_view a, std::string_view b);