util: refactor upper/lowercase functions
This includes renaming Downcase() to ToLower() and make it return a string rather than modify referenced arg. Also adds ToUpper() string version.
This commit is contained in:
parent
e5fdda68c6
commit
0481fa2584
6 changed files with 48 additions and 24 deletions
|
@ -37,8 +37,8 @@ bool fNameLookup = DEFAULT_NAME_LOOKUP;
|
||||||
static const int SOCKS5_RECV_TIMEOUT = 20 * 1000;
|
static const int SOCKS5_RECV_TIMEOUT = 20 * 1000;
|
||||||
static std::atomic<bool> interruptSocks5Recv(false);
|
static std::atomic<bool> interruptSocks5Recv(false);
|
||||||
|
|
||||||
enum Network ParseNetwork(std::string net) {
|
enum Network ParseNetwork(const std::string& net_in) {
|
||||||
Downcase(net);
|
std::string net = ToLower(net_in);
|
||||||
if (net == "ipv4") return NET_IPV4;
|
if (net == "ipv4") return NET_IPV4;
|
||||||
if (net == "ipv6") return NET_IPV6;
|
if (net == "ipv6") return NET_IPV6;
|
||||||
if (net == "onion") return NET_ONION;
|
if (net == "onion") return NET_ONION;
|
||||||
|
|
|
@ -37,7 +37,7 @@ public:
|
||||||
bool randomize_credentials;
|
bool randomize_credentials;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum Network ParseNetwork(std::string net);
|
enum Network ParseNetwork(const std::string& net);
|
||||||
std::string GetNetworkName(enum Network net);
|
std::string GetNetworkName(enum Network net);
|
||||||
bool SetProxy(enum Network net, const proxyType &addrProxy);
|
bool SetProxy(enum Network net, const proxyType &addrProxy);
|
||||||
bool GetProxy(enum Network net, proxyType &proxyInfoOut);
|
bool GetProxy(enum Network net, proxyType &proxyInfoOut);
|
||||||
|
|
|
@ -1532,17 +1532,9 @@ BOOST_AUTO_TEST_CASE(test_ToLower)
|
||||||
BOOST_CHECK_EQUAL(ToLower(0), 0);
|
BOOST_CHECK_EQUAL(ToLower(0), 0);
|
||||||
BOOST_CHECK_EQUAL(ToLower('\xff'), '\xff');
|
BOOST_CHECK_EQUAL(ToLower('\xff'), '\xff');
|
||||||
|
|
||||||
std::string testVector;
|
BOOST_CHECK_EQUAL(ToLower(""), "");
|
||||||
Downcase(testVector);
|
BOOST_CHECK_EQUAL(ToLower("#HODL"), "#hodl");
|
||||||
BOOST_CHECK_EQUAL(testVector, "");
|
BOOST_CHECK_EQUAL(ToLower("\x00\xfe\xff"), "\x00\xfe\xff");
|
||||||
|
|
||||||
testVector = "#HODL";
|
|
||||||
Downcase(testVector);
|
|
||||||
BOOST_CHECK_EQUAL(testVector, "#hodl");
|
|
||||||
|
|
||||||
testVector = "\x00\xfe\xff";
|
|
||||||
Downcase(testVector);
|
|
||||||
BOOST_CHECK_EQUAL(testVector, "\x00\xfe\xff");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(test_ToUpper)
|
BOOST_AUTO_TEST_CASE(test_ToUpper)
|
||||||
|
@ -1553,6 +1545,10 @@ BOOST_AUTO_TEST_CASE(test_ToUpper)
|
||||||
BOOST_CHECK_EQUAL(ToUpper('{'), '{');
|
BOOST_CHECK_EQUAL(ToUpper('{'), '{');
|
||||||
BOOST_CHECK_EQUAL(ToUpper(0), 0);
|
BOOST_CHECK_EQUAL(ToUpper(0), 0);
|
||||||
BOOST_CHECK_EQUAL(ToUpper('\xff'), '\xff');
|
BOOST_CHECK_EQUAL(ToUpper('\xff'), '\xff');
|
||||||
|
|
||||||
|
BOOST_CHECK_EQUAL(ToUpper(""), "");
|
||||||
|
BOOST_CHECK_EQUAL(ToUpper("#hodl"), "#HODL");
|
||||||
|
BOOST_CHECK_EQUAL(ToUpper("\x00\xfe\xff"), "\x00\xfe\xff");
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(test_Capitalize)
|
BOOST_AUTO_TEST_CASE(test_Capitalize)
|
||||||
|
|
|
@ -546,9 +546,18 @@ bool ParseFixedPoint(const std::string &val, int decimals, int64_t *amount_out)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Downcase(std::string& str)
|
std::string ToLower(const std::string& str)
|
||||||
{
|
{
|
||||||
std::transform(str.begin(), str.end(), str.begin(), [](char c){return ToLower(c);});
|
std::string r;
|
||||||
|
for (auto ch : str) r += ToLower((unsigned char)ch);
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string ToUpper(const std::string& str)
|
||||||
|
{
|
||||||
|
std::string r;
|
||||||
|
for (auto ch : str) r += ToUpper((unsigned char)ch);
|
||||||
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Capitalize(std::string str)
|
std::string Capitalize(std::string str)
|
||||||
|
|
|
@ -199,6 +199,8 @@ bool ConvertBits(const O& outfn, I it, I end) {
|
||||||
* Converts the given character to its lowercase equivalent.
|
* Converts the given character to its lowercase equivalent.
|
||||||
* This function is locale independent. It only converts uppercase
|
* This function is locale independent. It only converts uppercase
|
||||||
* characters in the standard 7-bit ASCII range.
|
* characters in the standard 7-bit ASCII range.
|
||||||
|
* This is a feature, not a limitation.
|
||||||
|
*
|
||||||
* @param[in] c the character to convert to lowercase.
|
* @param[in] c the character to convert to lowercase.
|
||||||
* @return the lowercase equivalent of c; or the argument
|
* @return the lowercase equivalent of c; or the argument
|
||||||
* if no conversion is possible.
|
* if no conversion is possible.
|
||||||
|
@ -209,17 +211,22 @@ constexpr char ToLower(char c)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts the given string to its lowercase equivalent.
|
* Returns the lowercase equivalent of the given string.
|
||||||
* This function is locale independent. It only converts uppercase
|
* This function is locale independent. It only converts uppercase
|
||||||
* characters in the standard 7-bit ASCII range.
|
* characters in the standard 7-bit ASCII range.
|
||||||
* @param[in,out] str the string to convert to lowercase.
|
* This is a feature, not a limitation.
|
||||||
|
*
|
||||||
|
* @param[in] str the string to convert to lowercase.
|
||||||
|
* @returns lowercased equivalent of str
|
||||||
*/
|
*/
|
||||||
void Downcase(std::string& str);
|
std::string ToLower(const std::string& str);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts the given character to its uppercase equivalent.
|
* Converts the given character to its uppercase equivalent.
|
||||||
* This function is locale independent. It only converts lowercase
|
* This function is locale independent. It only converts lowercase
|
||||||
* characters in the standard 7-bit ASCII range.
|
* characters in the standard 7-bit ASCII range.
|
||||||
|
* This is a feature, not a limitation.
|
||||||
|
*
|
||||||
* @param[in] c the character to convert to uppercase.
|
* @param[in] c the character to convert to uppercase.
|
||||||
* @return the uppercase equivalent of c; or the argument
|
* @return the uppercase equivalent of c; or the argument
|
||||||
* if no conversion is possible.
|
* if no conversion is possible.
|
||||||
|
@ -229,13 +236,25 @@ constexpr char ToUpper(char c)
|
||||||
return (c >= 'a' && c <= 'z' ? (c - 'a') + 'A' : c);
|
return (c >= 'a' && c <= 'z' ? (c - 'a') + 'A' : c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the uppercase equivalent of the given string.
|
||||||
|
* This function is locale independent. It only converts lowercase
|
||||||
|
* characters in the standard 7-bit ASCII range.
|
||||||
|
* This is a feature, not a limitation.
|
||||||
|
*
|
||||||
|
* @param[in] str the string to convert to uppercase.
|
||||||
|
* @returns UPPERCASED EQUIVALENT OF str
|
||||||
|
*/
|
||||||
|
std::string ToUpper(const std::string& str);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Capitalizes the first character of the given string.
|
* Capitalizes the first character of the given string.
|
||||||
* This function is locale independent. It only capitalizes the
|
* This function is locale independent. It only converts lowercase
|
||||||
* first character of the argument if it has an uppercase equivalent
|
* characters in the standard 7-bit ASCII range.
|
||||||
* in the standard 7-bit ASCII range.
|
* This is a feature, not a limitation.
|
||||||
|
*
|
||||||
* @param[in] str the string to capitalize.
|
* @param[in] str the string to capitalize.
|
||||||
* @return string with the first letter capitalized.
|
* @returns string with the first letter capitalized.
|
||||||
*/
|
*/
|
||||||
std::string Capitalize(std::string str);
|
std::string Capitalize(std::string str);
|
||||||
|
|
||||||
|
|
|
@ -388,7 +388,7 @@ bool ArgsManager::ParseParameters(int argc, const char* const argv[], std::strin
|
||||||
key.erase(is_index);
|
key.erase(is_index);
|
||||||
}
|
}
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
std::transform(key.begin(), key.end(), key.begin(), ToLower);
|
key = ToLower(key);
|
||||||
if (key[0] == '/')
|
if (key[0] == '/')
|
||||||
key[0] = '-';
|
key[0] = '-';
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue