diff --git a/src/common/string_util.cpp b/src/common/string_util.cpp index c556d5040..541a2bf4e 100644 --- a/src/common/string_util.cpp +++ b/src/common/string_util.cpp @@ -4,11 +4,10 @@ #include #include -#include #include -#include #include -#include +#include +#include #include "common/common_paths.h" #include "common/logging/log.h" #include "common/string_util.h" @@ -33,24 +32,6 @@ std::string ToUpper(std::string str) { return str; } -// For Debugging. Read out an u8 array. -std::string ArrayToString(const u8* data, std::size_t size, int line_len, bool spaces) { - std::ostringstream oss; - oss << std::setfill('0') << std::hex; - - for (int line = 0; size; ++data, --size) { - oss << std::setw(2) << (int)*data; - - if (line_len == ++line) { - oss << '\n'; - line = 0; - } else if (spaces) - oss << ' '; - } - - return oss.str(); -} - // Turns " hej " into "hej". Also handles tabs. std::string StripSpaces(const std::string& str) { const std::size_t s = str.find_first_not_of(" \t\r\n"); @@ -71,40 +52,6 @@ std::string StripQuotes(const std::string& s) { return s; } -bool TryParse(const std::string& str, u32* const output) { - char* endptr = nullptr; - - // Reset errno to a value other than ERANGE - errno = 0; - - unsigned long value = strtoul(str.c_str(), &endptr, 0); - - if (!endptr || *endptr) - return false; - - if (errno == ERANGE) - return false; - -#if ULONG_MAX > UINT_MAX - if (value >= 0x100000000ull && value <= 0xFFFFFFFF00000000ull) - return false; -#endif - - *output = static_cast(value); - return true; -} - -bool TryParse(const std::string& str, bool* const output) { - if ("1" == str || "true" == ToLower(str)) - *output = true; - else if ("0" == str || "false" == ToLower(str)) - *output = false; - else - return false; - - return true; -} - std::string StringFromBool(bool value) { return value ? "True" : "False"; } diff --git a/src/common/string_util.h b/src/common/string_util.h index 091735d5f..d8fa4053e 100644 --- a/src/common/string_util.h +++ b/src/common/string_util.h @@ -5,8 +5,6 @@ #pragma once #include -#include -#include #include #include #include "common/common_types.h" @@ -19,42 +17,11 @@ std::string ToLower(std::string str); /// Make a string uppercase std::string ToUpper(std::string str); -std::string ArrayToString(const u8* data, std::size_t size, int line_len = 20, bool spaces = true); - std::string StripSpaces(const std::string& s); std::string StripQuotes(const std::string& s); -// Thousand separator. Turns 12345678 into 12,345,678 -template -std::string ThousandSeparate(I value, int spaces = 0) { - std::ostringstream oss; - -// std::locale("") seems to be broken on many platforms -#if defined _WIN32 || (defined __linux__ && !defined __clang__) - oss.imbue(std::locale("")); -#endif - oss << std::setw(spaces) << value; - - return oss.str(); -} - std::string StringFromBool(bool value); -bool TryParse(const std::string& str, bool* output); -bool TryParse(const std::string& str, u32* output); - -template -static bool TryParse(const std::string& str, N* const output) { - std::istringstream iss(str); - - N tmp = 0; - if (iss >> tmp) { - *output = tmp; - return true; - } else - return false; -} - std::string TabsToSpaces(int tab_size, std::string in); void SplitString(const std::string& str, char delim, std::vector& output); diff --git a/src/core/hle/service/ir/extra_hid.cpp b/src/core/hle/service/ir/extra_hid.cpp index 31b63257e..2a00ac08f 100644 --- a/src/core/hle/service/ir/extra_hid.cpp +++ b/src/core/hle/service/ir/extra_hid.cpp @@ -165,8 +165,10 @@ void ExtraHID::OnDisconnect() { void ExtraHID::HandleConfigureHIDPollingRequest(const std::vector& request) { if (request.size() != 3) { - LOG_ERROR(Service_IR, "Wrong request size ({}): {}", request.size(), - Common::ArrayToString(request.data(), request.size())); + std::string request_string; + for (auto request_part : request) + request_string += fmt::format("{:02x} ", request_part); + LOG_ERROR(Service_IR, "Wrong request size ({}): {}", request.size(), request_string); return; } @@ -188,8 +190,11 @@ void ExtraHID::HandleReadCalibrationDataRequest(const std::vector& request_b "ReadCalibrationDataRequest has wrong size"); if (request_buf.size() != sizeof(ReadCalibrationDataRequest)) { + std::string request_buf_string; + for (auto request_buf_part : request_buf) + request_buf_string += fmt::format("{:02x} ", request_buf_part); LOG_ERROR(Service_IR, "Wrong request size ({}): {}", request_buf.size(), - Common::ArrayToString(request_buf.data(), request_buf.size())); + request_buf_string); return; } @@ -223,8 +228,10 @@ void ExtraHID::OnReceive(const std::vector& data) { HandleReadCalibrationDataRequest(data); break; default: - LOG_ERROR(Service_IR, "Unknown request: {}", - Common::ArrayToString(data.data(), data.size())); + std::string data_string; + for (auto data_part : data) + data_string += fmt::format("{:02x} ", data_part); + LOG_ERROR(Service_IR, "Unknown request: {}", data_string); break; } } diff --git a/src/core/movie.cpp b/src/core/movie.cpp index a0f237cf3..1374349f6 100644 --- a/src/core/movie.cpp +++ b/src/core/movie.cpp @@ -358,9 +358,9 @@ Movie::ValidationResult Movie::ValidateHeader(const CTMHeader& header, u64 progr return ValidationResult::Invalid; } - std::string revision = - Common::ArrayToString(header.revision.data(), header.revision.size(), 21, false); - revision = Common::ToLower(revision); + std::string revision; + for (auto header_part : header.revision) + revision += fmt::format("{:02x}", header_part); if (!program_id) Core::System::GetInstance().GetAppLoader().ReadProgramId(program_id);