COMMON: Filter non-ASCII values in ctype.h-style isFOO functions

This commit is contained in:
Max Horn 2012-02-20 16:15:10 +01:00
parent 4f8665fc83
commit 02ebd55214

View File

@ -415,32 +415,37 @@ void updateGameGUIOptions(const String &options, const String &langOption) {
}
}
//
// TODO: Instead of a blind cast, we might want to verify
// if c equals EOS; and/or is in the range -255..+255;
// and return false if it isn't.
//
#define ENSURE_ASCII_CHAR(c) \
if (c < 0 || c > 127) \
return false
bool isAlnum(int c) {
ENSURE_ASCII_CHAR(c);
return isalnum((byte)c);
}
bool isAlpha(int c) {
ENSURE_ASCII_CHAR(c);
return isalpha((byte)c);
}
bool isDigit(int c) {
ENSURE_ASCII_CHAR(c);
return isdigit((byte)c);
}
bool isLower(int c) {
ENSURE_ASCII_CHAR(c);
return islower((byte)c);
}
bool isSpace(int c) {
ENSURE_ASCII_CHAR(c);
return isspace((byte)c);
}
bool isUpper(int c) {
ENSURE_ASCII_CHAR(c);
return isupper((byte)c);
}