Fix undefined use of cctype functions

This commit is contained in:
Hielke Morsink 2021-10-28 10:54:09 +02:00
parent b21643a692
commit 76b5479bbb
No known key found for this signature in database
GPG Key ID: FE0B343DF883E7F2
7 changed files with 16 additions and 15 deletions

View File

@ -392,9 +392,10 @@ namespace OpenRCT2::Ui
{
filtersb << ' ';
}
else if (isalpha(c))
else if (isalpha(static_cast<unsigned char>(c)))
{
filtersb << '[' << static_cast<char>(tolower(c)) << static_cast<char>(toupper(c)) << ']';
auto uc = static_cast<unsigned char>(c);
filtersb << '[' << static_cast<char>(tolower(uc)) << static_cast<char>(toupper(uc)) << ']';
}
else
{

View File

@ -1497,13 +1497,13 @@ static bool filter_string(const ObjectRepositoryItem* item)
// Make use of lowercase characters only
for (int32_t i = 0; name_lower[i] != '\0'; i++)
name_lower[i] = static_cast<char>(tolower(name_lower[i]));
name_lower[i] = static_cast<char>(tolower(static_cast<unsigned char>(name_lower[i])));
for (int32_t i = 0; type_lower[i] != '\0'; i++)
type_lower[i] = static_cast<char>(tolower(type_lower[i]));
type_lower[i] = static_cast<char>(tolower(static_cast<unsigned char>(type_lower[i])));
for (int32_t i = 0; object_path[i] != '\0'; i++)
object_path[i] = static_cast<char>(tolower(object_path[i]));
object_path[i] = static_cast<char>(tolower(static_cast<unsigned char>(object_path[i])));
for (int32_t i = 0; filter_lower[i] != '\0'; i++)
filter_lower[i] = static_cast<char>(tolower(filter_lower[i]));
filter_lower[i] = static_cast<char>(tolower(static_cast<unsigned char>(filter_lower[i])));
// Check if the searched string exists in the name, ride type, or filename
bool inName = strstr(name_lower, filter_lower) != nullptr;

View File

@ -93,7 +93,7 @@ private:
utf8 filterStringLower[sizeof(_filterString)];
String::Set(filterStringLower, sizeof(filterStringLower), _filterString);
for (int32_t i = 0; filterStringLower[i] != '\0'; i++)
filterStringLower[i] = static_cast<utf8>(tolower(filterStringLower[i]));
filterStringLower[i] = static_cast<utf8>(tolower(static_cast<unsigned char>(filterStringLower[i])));
// Fill the set with indices for tracks that match the filter
for (uint16_t i = 0; i < _trackDesigns.size(); i++)
@ -101,7 +101,7 @@ private:
utf8 trackNameLower[USER_STRING_MAX_LENGTH];
String::Set(trackNameLower, sizeof(trackNameLower), _trackDesigns[i].name);
for (int32_t j = 0; trackNameLower[j] != '\0'; j++)
trackNameLower[j] = static_cast<utf8>(tolower(trackNameLower[j]));
trackNameLower[j] = static_cast<utf8>(tolower(static_cast<unsigned char>(trackNameLower[j])));
if (strstr(trackNameLower, filterStringLower) != nullptr)
{

View File

@ -178,7 +178,7 @@ namespace String
{
for (size_t i = 0; i < a.size(); i++)
{
if (tolower(a[i]) != tolower(b[i]))
if (tolower(static_cast<unsigned char>(a[i])) != tolower(static_cast<unsigned char>(b[i])))
{
return false;
}
@ -212,7 +212,7 @@ namespace String
return false;
}
}
else if (tolower(ai) != tolower(bi))
else if (tolower(static_cast<unsigned char>(ai)) != tolower(static_cast<unsigned char>(bi)))
{
return false;
}
@ -822,7 +822,7 @@ namespace String
for (auto c : value)
{
// Keep alphanumeric and other accepted characters intact
if (std::isalnum(c) || c == '-' || c == '_' || c == '.' || c == '~')
if (std::isalnum(static_cast<unsigned char>(c)) || c == '-' || c == '_' || c == '.' || c == '~')
{
escaped << c;
}

View File

@ -56,7 +56,7 @@ namespace OpenRCT2::Scripting
auto result = s.substr(sizeof("PERMISSION_") - 1);
for (auto& c : result)
{
c = std::tolower(c);
c = std::tolower(static_cast<unsigned char>(c));
}
return result;
}

View File

@ -332,7 +332,7 @@ int32_t strcicmp(char const* a, char const* b)
{
for (;; a++, b++)
{
int32_t d = tolower(*a) - tolower(*b);
int32_t d = tolower(static_cast<unsigned char>(*a)) - tolower(static_cast<unsigned char>(*b));
if (d != 0 || !*a)
return d;
}
@ -353,7 +353,7 @@ int32_t strlogicalcmp(const char* s1, const char* s2)
return *s1 != '\0';
if (*s1 == '\0')
return -1;
if (!(isdigit(*s1) && isdigit(*s2)))
if (!(isdigit(static_cast<unsigned char>(*s1)) && isdigit(static_cast<unsigned char>(*s2))))
{
if (toupper(*s1) != toupper(*s2))
return toupper(*s1) - toupper(*s2);

View File

@ -39,7 +39,7 @@ static std::string sanitizeTestName(const std::string& name)
std::string res;
for (char c : nameOnly)
{
if (isalnum(c))
if (isalnum(static_cast<unsigned char>(c)))
res += c;
}
return res;