mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	Merge pull request #4444 from FearlessTobi/port-1684
Port yuzu-emu/yuzu#1684: "common/string_util: Minor cleanup"
This commit is contained in:
		
						commit
						dc16ba009e
					
				
					 4 changed files with 17 additions and 96 deletions
				
			
		|  | @ -4,11 +4,10 @@ | |||
| 
 | ||||
| #include <algorithm> | ||||
| #include <cctype> | ||||
| #include <cerrno> | ||||
| #include <codecvt> | ||||
| #include <cstdio> | ||||
| #include <cstdlib> | ||||
| #include <cstring> | ||||
| #include <locale> | ||||
| #include <sstream> | ||||
| #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<u32>(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"; | ||||
| } | ||||
|  |  | |||
|  | @ -5,8 +5,6 @@ | |||
| #pragma once | ||||
| 
 | ||||
| #include <cstddef> | ||||
| #include <iomanip> | ||||
| #include <sstream> | ||||
| #include <string> | ||||
| #include <vector> | ||||
| #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 <typename I> | ||||
| 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 <typename N> | ||||
| 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<std::string>& output); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue