diff options
author | luigi1111 <luigi1111w@gmail.com> | 2024-05-20 22:50:16 -0500 |
---|---|---|
committer | luigi1111 <luigi1111w@gmail.com> | 2024-05-20 22:50:16 -0500 |
commit | 7f752115ef981e6d6d300353a6fda0167eb8bf30 (patch) | |
tree | f0dab5a9e8f0be4039adf58b2b387f1da217e334 | |
parent | Merge pull request #9064 (diff) | |
parent | Cleanup string_tools. (diff) | |
download | monero-7f752115ef981e6d6d300353a6fda0167eb8bf30.tar.xz |
Merge pull request #9149
c56ee14 Cleanup string_tools. 1. Use boost::filesystem for already available operations. 2. Use boost::string for already available operations. (0xFFFC0000)
-rw-r--r-- | contrib/epee/include/string_tools.h | 17 | ||||
-rw-r--r-- | contrib/epee/src/readline_buffer.cpp | 3 | ||||
-rw-r--r-- | contrib/epee/src/string_tools.cpp | 83 |
3 files changed, 40 insertions, 63 deletions
diff --git a/contrib/epee/include/string_tools.h b/contrib/epee/include/string_tools.h index 7fcd02726..887f4aa40 100644 --- a/contrib/epee/include/string_tools.h +++ b/contrib/epee/include/string_tools.h @@ -31,6 +31,7 @@ #include "mlocker.h" #include <boost/utility/string_ref.hpp> +#include <boost/algorithm/string.hpp> #include <sstream> #include <string> #include <cstdint> @@ -69,23 +70,19 @@ namespace string_tools #ifdef _WIN32 std::string get_current_module_path(); #endif - bool set_module_name_and_folder(const std::string& path_to_process_); - bool trim_left(std::string& str); - bool trim_right(std::string& str); + void set_module_name_and_folder(const std::string& path_to_process_); + void trim_left(std::string& str); + void trim_right(std::string& str); //---------------------------------------------------------------------------- inline std::string& trim(std::string& str) { - trim_left(str); - trim_right(str); + boost::trim(str); return str; } //---------------------------------------------------------------------------- - inline std::string trim(const std::string& str_) + inline std::string trim(const std::string& str) { - std::string str = str_; - trim_left(str); - trim_right(str); - return str; + return boost::trim_copy(str); } std::string pad_string(std::string s, size_t n, char c = ' ', bool prepend = false); diff --git a/contrib/epee/src/readline_buffer.cpp b/contrib/epee/src/readline_buffer.cpp index ac68d1fdb..cefde158c 100644 --- a/contrib/epee/src/readline_buffer.cpp +++ b/contrib/epee/src/readline_buffer.cpp @@ -1,4 +1,5 @@ #include "readline_buffer.h" +#include "string_tools.h" #include <readline/readline.h> #include <readline/history.h> #include <iostream> @@ -173,7 +174,7 @@ static void handle_line(char* line) line_stat = rdln::full; the_line = line; std::string test_line = line; - boost::trim_right(test_line); + epee::string_tools::trim_right(test_line); if(!test_line.empty()) { if (!same_as_last_line(test_line)) diff --git a/contrib/epee/src/string_tools.cpp b/contrib/epee/src/string_tools.cpp index 3abb83c74..d8580c216 100644 --- a/contrib/epee/src/string_tools.cpp +++ b/contrib/epee/src/string_tools.cpp @@ -38,9 +38,12 @@ #include <cstdlib> #include <string> #include <type_traits> +#include <system_error> #include <boost/lexical_cast.hpp> +#include <boost/algorithm/string.hpp> #include <boost/algorithm/string/predicate.hpp> #include <boost/utility/string_ref.hpp> +#include <boost/filesystem.hpp> #include "misc_log_ex.h" #include "storages/parserse_base_utils.h" #include "hex.h" @@ -147,46 +150,33 @@ namespace string_tools return pname; } #endif - - bool set_module_name_and_folder(const std::string& path_to_process_) - { - std::string path_to_process = path_to_process_; + + void set_module_name_and_folder(const std::string& path_to_process_) + { + boost::filesystem::path path_to_process = path_to_process_; + #ifdef _WIN32 path_to_process = get_current_module_path(); #endif - std::string::size_type a = path_to_process.rfind( '\\' ); - if(a == std::string::npos ) - { - a = path_to_process.rfind( '/' ); - } - if ( a != std::string::npos ) - { - get_current_module_name() = path_to_process.substr(a+1, path_to_process.size()); - get_current_module_folder() = path_to_process.substr(0, a); - return true; - }else - return false; - } + get_current_module_name() = path_to_process.filename().string(); + get_current_module_folder() = path_to_process.parent_path().string(); + } //---------------------------------------------------------------------------- - bool trim_left(std::string& str) - { - for(std::string::iterator it = str.begin(); it!= str.end() && isspace(static_cast<unsigned char>(*it));) - str.erase(str.begin()); - - return true; - } - //---------------------------------------------------------------------------- - bool trim_right(std::string& str) - { + void trim_left(std::string& str) + { + boost::trim_left(str); + return; + } - for(std::string::reverse_iterator it = str.rbegin(); it!= str.rend() && isspace(static_cast<unsigned char>(*it));) - str.erase( --((it++).base())); + //---------------------------------------------------------------------------- + void trim_right(std::string& str) + { + boost::trim_right(str); + return; + } - return true; - } - //---------------------------------------------------------------------------- std::string pad_string(std::string s, size_t n, char c, bool prepend) { if (s.size() < n) @@ -199,28 +189,17 @@ namespace string_tools return s; } - std::string get_extension(const std::string& str) - { - std::string res; - std::string::size_type pos = str.rfind('.'); - if(std::string::npos == pos) - return res; - - res = str.substr(pos+1, str.size()-pos); - return res; - } + std::string get_extension(const std::string& str) + { + return boost::filesystem::path(str).extension().string(); + } + //---------------------------------------------------------------------------- - std::string cut_off_extension(const std::string& str) - { - std::string res; - std::string::size_type pos = str.rfind('.'); - if(std::string::npos == pos) - return str; + std::string cut_off_extension(const std::string& str) + { + return boost::filesystem::path(str).stem().string(); + } - res = str.substr(0, pos); - return res; - } - //---------------------------------------------------------------------------- #ifdef _WIN32 std::wstring utf8_to_utf16(const std::string& str) { |