diff options
34 files changed, 131 insertions, 83 deletions
diff --git a/base/commandLine.cpp b/base/commandLine.cpp index 16a2b6f9f0..aa589ed15f 100644 --- a/base/commandLine.cpp +++ b/base/commandLine.cpp @@ -277,7 +277,7 @@ void registerDefaults() { // resp. between "--some-option" and "--no-some-option". #define DO_OPTION_BOOL(shortCmd, longCmd) \ if (isLongCmd ? (!strcmp(s+2, longCmd) || !strcmp(s+2, "no-"longCmd)) : (tolower(s[1]) == shortCmd)) { \ - bool boolValue = (isLower(s[1]) != 0); \ + bool boolValue = (Common::isLower(s[1]) != 0); \ s += 2; \ if (isLongCmd) { \ boolValue = !strcmp(s, longCmd); \ diff --git a/common/config-manager.cpp b/common/config-manager.cpp index d4035e8b92..aaa812bc94 100644 --- a/common/config-manager.cpp +++ b/common/config-manager.cpp @@ -29,7 +29,7 @@ static bool isValidDomainName(const Common::String &domName) { const char *p = domName.c_str(); - while (*p && (isAlnum(*p) || *p == '-' || *p == '_')) + while (*p && (Common::isAlnum(*p) || *p == '-' || *p == '_')) p++; return *p == 0; } diff --git a/common/util.cpp b/common/util.cpp index 0a7d0f1e89..e605a267d5 100644 --- a/common/util.cpp +++ b/common/util.cpp @@ -415,9 +415,6 @@ void updateGameGUIOptions(const String &options, const String &langOption) { } } -} // End of namespace Common - - // // TODO: Instead of a blind cast, we might want to verify // if c equals EOS; and/or is in the range -255..+255; @@ -435,10 +432,6 @@ bool isDigit(int c) { return isdigit((byte)c); } -bool isNumber(int c) { - return isnumber((byte)c); -} - bool isLower(int c) { return islower((byte)c); } @@ -450,3 +443,5 @@ bool isSpace(int c) { bool isUpper(int c) { return isupper((byte)c); } + +} // End of namespace Common diff --git a/common/util.h b/common/util.h index 1df7bbb9c3..617bc3dcfa 100644 --- a/common/util.h +++ b/common/util.h @@ -34,17 +34,6 @@ ((((size_t)value) & ((alignment) - 1)) == 0) -//namespace{ -bool isAlnum(int c); -bool isAlpha(int c); -bool isDigit(int c); -bool isNumber(int c); -bool isLower(int c); -bool isSpace(int c); -bool isUpper(int c); -//} - - #ifdef MIN #undef MIN #endif @@ -144,6 +133,70 @@ extern void hexdump(const byte * data, int len, int bytesPerLine = 16, int start */ bool parseBool(const String &val, bool &valAsBool); + +/** + * Test whether the given character is alphanumeric (a-z, A-Z, 0-9). + * If the parameter is outside the range of a signed or unsigned char, then + * false is returned. + * + * @param c the character to test + * @return true if the character is alphanumeric, false otherwise. + */ +bool isAlnum(int c); + +/** + * Test whether the given character is an alphabetic letter (a-z, A-Z). + * If the parameter is outside the range of a signed or unsigned char, then + * false is returned. + * + * @param c the character to test + * @return true if the character is TODO, false otherwise. + */ +bool isAlpha(int c); + +/** + * Test whether the given character is a decimal-digit (0-9). + * If the parameter is outside the range of a signed or unsigned char, then + * false is returned. + * + * @param c the character to test + * @return true if the character is a decimal-digit, false otherwise. + */ +bool isDigit(int c); + +/** + * Test whether the given character is a lower-case letter (a-z). + * If the parameter is outside the range of a signed or unsigned char, then + * false is returned. + * + * @param c the character to test + * @return true if the character is a lower-case letter, false otherwise. + */ +bool isLower(int c); + +/** + * Test whether the given character is a white-space. + * White-space characters are ' ', '\t', '\r', '\n', '\v', '\f'. + * + * If the parameter is outside the range of a signed or unsigned char, then + * false is returned. + * + * @param c the character to test + * @return true if the character is a white-space, false otherwise. + */ +bool isSpace(int c); + +/** + * Test whether the given character is an upper-case letter (A-Z). + * If the parameter is outside the range of a signed or unsigned char, then + * false is returned. + * + * @param c the character to test + * @return true if the character is an upper-case letter, false otherwise. + */ +bool isUpper(int c); + + /** * List of game language. */ diff --git a/engines/agi/agi.cpp b/engines/agi/agi.cpp index e1c52c7c5e..e9c9645768 100644 --- a/engines/agi/agi.cpp +++ b/engines/agi/agi.cpp @@ -250,7 +250,7 @@ void AgiEngine::processEvents() { // Not a special key, so get the ASCII code for it key = event.kbd.ascii; - if (isAlpha(key)) { + if (Common::isAlpha(key)) { // Key is A-Z. // Map Ctrl-A to 1, Ctrl-B to 2, etc. if (event.kbd.flags & Common::KBD_CTRL) { diff --git a/engines/agi/wagparser.cpp b/engines/agi/wagparser.cpp index 00602420e2..61feac5d17 100644 --- a/engines/agi/wagparser.cpp +++ b/engines/agi/wagparser.cpp @@ -112,11 +112,11 @@ WagFileParser::~WagFileParser() { bool WagFileParser::checkAgiVersionProperty(const WagProperty &version) const { if (version.getCode() == WagProperty::PC_INTVERSION && // Must be AGI interpreter version property version.getSize() >= 3 && // Need at least three characters for a version number like "X.Y" - isDigit(version.getData()[0]) && // And the first character must be a digit + Common::isDigit(version.getData()[0]) && // And the first character must be a digit (version.getData()[1] == ',' || version.getData()[1] == '.')) { // And the second a comma or a period for (int i = 2; i < version.getSize(); i++) // And the rest must all be digits - if (!isDigit(version.getData()[i])) + if (!Common::isDigit(version.getData()[i])) return false; // Bail out if found a non-digit after the decimal point return true; diff --git a/engines/agos/script_pn.cpp b/engines/agos/script_pn.cpp index 70540343ed..60a1376f25 100644 --- a/engines/agos/script_pn.cpp +++ b/engines/agos/script_pn.cpp @@ -466,8 +466,8 @@ void AGOSEngine_PN::opn_opcode35() { void AGOSEngine_PN::opn_opcode36() { for (int i = 0; i < _dataBase[57] + 1; ++i) _wordcp[i] = 0; - if (isSpace(*_inpp)) - while ((*_inpp) && (isSpace(*_inpp))) + if (Common::isSpace(*_inpp)) + while ((*_inpp) && (Common::isSpace(*_inpp))) _inpp++; if (*_inpp == 0) { setScriptReturn(false); @@ -481,7 +481,7 @@ void AGOSEngine_PN::opn_opcode36() { } int ct = 1; - while ((*_inpp != '.') && (*_inpp != ',') && (!isSpace(*_inpp)) && (*_inpp != '\0') && + while ((*_inpp != '.') && (*_inpp != ',') && (!Common::isSpace(*_inpp)) && (*_inpp != '\0') && (*_inpp!='"')) { if (ct < _dataBase[57]) _wordcp[ct++] = *_inpp; @@ -581,7 +581,7 @@ void AGOSEngine_PN::opn_opcode46() { return; } x++; - while ((*x != '.') && (*x != ',') && (*x != '"') && (!isSpace(*x)) && (*x != '\0')) + while ((*x != '.') && (*x != ',') && (*x != '"') && (!Common::isSpace(*x)) && (*x != '\0')) pcf(*x++); setScriptReturn(true); } diff --git a/engines/agos/string.cpp b/engines/agos/string.cpp index 4298ff6155..ee1b9df246 100644 --- a/engines/agos/string.cpp +++ b/engines/agos/string.cpp @@ -152,7 +152,7 @@ const byte *AGOSEngine::getStringPtrByID(uint16 stringId, bool upperCase) { } if (upperCase && *dst) { - if (isLower(*dst)) + if (Common::isLower(*dst)) *dst = toupper(*dst); } diff --git a/engines/agos/string_pn.cpp b/engines/agos/string_pn.cpp index 8f31da6f58..4d4e2be16a 100644 --- a/engines/agos/string_pn.cpp +++ b/engines/agos/string_pn.cpp @@ -137,7 +137,7 @@ void AGOSEngine_PN::pcf(uint8 ch) { if ((ch != 32) || (_bp + _xofs != 50)) _buffer[_bp++] = ch; } - if ((ch != 254) && (!isSpace(ch)) && (_bp < 60)) + if ((ch != 254) && (!Common::isSpace(ch)) && (_bp < 60)) return; /* We know have a case of needing to print the text */ if (_bp + _xofs > 50) { diff --git a/engines/cge/text.cpp b/engines/cge/text.cpp index 9fb3c95e93..fd4120d49d 100644 --- a/engines/cge/text.cpp +++ b/engines/cge/text.cpp @@ -72,7 +72,7 @@ int16 Text::count() { strcpy(tmpStr, line.c_str()); if ((s = strtok(tmpStr, " =,;/\t\n")) == NULL) continue; - if (!isDigit(*s)) + if (!Common::isDigit(*s)) continue; counter++; @@ -105,7 +105,7 @@ void Text::load() { strcpy(tmpStr, line.c_str()); if ((s = strtok(tmpStr, " =,;/\t\n")) == NULL) continue; - if (!isDigit(*s)) + if (!Common::isDigit(*s)) continue; int r = atoi(s); diff --git a/engines/cine/detection.cpp b/engines/cine/detection.cpp index 65b2285f11..823b8e38b5 100644 --- a/engines/cine/detection.cpp +++ b/engines/cine/detection.cpp @@ -141,7 +141,7 @@ SaveStateList CineMetaEngine::listSaves(const char *target) const { for (file = filenames.begin(); file != filenames.end(); ++file) { // Jump over savegame files that don't end with a digit (e.g. "fw.3" is ok, "fw.a" is not). - if (!isDigit(file->lastChar())) + if (!Common::isDigit(file->lastChar())) continue; // Obtain the last digit of the filename, since they correspond to the save slot diff --git a/engines/hugo/util.cpp b/engines/hugo/util.cpp index 1428fc93a3..fdc676e6a7 100644 --- a/engines/hugo/util.cpp +++ b/engines/hugo/util.cpp @@ -119,7 +119,7 @@ char *strlwr(char *buffer) { char *result = buffer; while (*buffer != '\0') { - if (isUpper(*buffer)) + if (Common::isUpper(*buffer)) *buffer = tolower(*buffer); buffer++; } diff --git a/engines/kyra/gui.cpp b/engines/kyra/gui.cpp index 07d8b307f3..1156b17957 100644 --- a/engines/kyra/gui.cpp +++ b/engines/kyra/gui.cpp @@ -56,7 +56,7 @@ void GUI::updateSaveFileList(Common::String targetName, bool excludeQuickSaves) s1 = (*i)[i->size() - 3]; s2 = (*i)[i->size() - 2]; s3 = (*i)[i->size() - 1]; - if (!isDigit(s1) || !isDigit(s2) || !isDigit(s3)) + if (!Common::isDigit(s1) || !Common::isDigit(s2) || !Common::isDigit(s3)) continue; s1 -= '0'; s2 -= '0'; diff --git a/engines/mohawk/livingbooks_code.cpp b/engines/mohawk/livingbooks_code.cpp index b961e20f78..bb8f7a0d05 100644 --- a/engines/mohawk/livingbooks_code.cpp +++ b/engines/mohawk/livingbooks_code.cpp @@ -1766,7 +1766,7 @@ uint LBCode::parseCode(const Common::String &source) { { Common::String tempString; while (pos < source.size()) { - if (!isAlpha(source[pos]) && !isDigit(source[pos])) + if (!Common::isAlpha(source[pos]) && !Common::isDigit(source[pos])) break; tempString += source[pos++]; } @@ -1777,7 +1777,7 @@ uint LBCode::parseCode(const Common::String &source) { } break; default: - if (isDigit(token)) { + if (Common::isDigit(token)) { const char *in = source.c_str() + pos - 1; // FIXME: handle floats? char *endptr; @@ -1792,11 +1792,11 @@ uint LBCode::parseCode(const Common::String &source) { WRITE_BE_UINT16(tmp, (int16)intValue); code.push_back(tmp[0]); code.push_back(tmp[1]); - } else if (isAlpha(token)) { + } else if (Common::isAlpha(token)) { Common::String tempString; tempString += token; while (pos < source.size()) { - if (!isAlpha(source[pos]) && !isDigit(source[pos])) + if (!Common::isAlpha(source[pos]) && !Common::isDigit(source[pos])) break; tempString += source[pos++]; } diff --git a/engines/parallaction/dialogue.cpp b/engines/parallaction/dialogue.cpp index 3bb4404b98..e0bd6a6677 100644 --- a/engines/parallaction/dialogue.cpp +++ b/engines/parallaction/dialogue.cpp @@ -381,7 +381,7 @@ protected: } void accumPassword(uint16 ascii) { - if (!isDigit(ascii)) { + if (!Common::isDigit(ascii)) { return; } diff --git a/engines/parallaction/parser_br.cpp b/engines/parallaction/parser_br.cpp index fb6a4102d1..82940340bc 100644 --- a/engines/parallaction/parser_br.cpp +++ b/engines/parallaction/parser_br.cpp @@ -524,14 +524,14 @@ DECLARE_COMMAND_PARSER(location) { ctxt.cmd->_startPos.x = -1000; ctxt.cmd->_startPos2.x = -1000; if (_tokens[ctxt.nextToken][0] != '\0') { - if (isDigit(_tokens[ctxt.nextToken][0]) || _tokens[ctxt.nextToken][0] == '-') { + if (Common::isDigit(_tokens[ctxt.nextToken][0]) || _tokens[ctxt.nextToken][0] == '-') { ctxt.cmd->_startPos.x = atoi(_tokens[ctxt.nextToken]); ctxt.nextToken++; ctxt.cmd->_startPos.y = atoi(_tokens[ctxt.nextToken]); ctxt.nextToken++; } - if (isDigit(_tokens[ctxt.nextToken][0]) || _tokens[ctxt.nextToken][0] == '-') { + if (Common::isDigit(_tokens[ctxt.nextToken][0]) || _tokens[ctxt.nextToken][0] == '-') { ctxt.cmd->_startPos2.x = atoi(_tokens[ctxt.nextToken]); ctxt.nextToken++; ctxt.cmd->_startPos2.y = atoi(_tokens[ctxt.nextToken]); @@ -677,7 +677,7 @@ DECLARE_COMMAND_PARSER(text) { createCommand(_parser->_lookup); - if (isDigit(_tokens[1][1])) { + if (Common::isDigit(_tokens[1][1])) { ctxt.cmd->_zeta0 = atoi(_tokens[1]); ctxt.nextToken++; } else { @@ -714,7 +714,7 @@ DECLARE_COMMAND_PARSER(unary) { DECLARE_ZONE_PARSER(limits) { debugC(7, kDebugParser, "ZONE_PARSER(limits) "); - if (isAlpha(_tokens[1][1])) { + if (Common::isAlpha(_tokens[1][1])) { ctxt.z->_flags |= kFlagsAnimLinked; ctxt.z->_linkedName = _tokens[1]; } else { @@ -1003,7 +1003,7 @@ DECLARE_INSTRUCTION_PARSER(text) { int _si = 1; - if (isDigit(_tokens[1][1])) { + if (Common::isDigit(_tokens[1][1])) { ctxt.inst->_y = atoi(_tokens[1]); _si = 2; } else { @@ -1066,7 +1066,7 @@ DECLARE_INSTRUCTION_PARSER(endif) { void ProgramParser_br::parseRValue(ScriptVar &v, const char *str) { - if (isDigit(str[0]) || str[0] == '-') { + if (Common::isDigit(str[0]) || str[0] == '-') { v.setImmediate(atoi(str)); return; } diff --git a/engines/parallaction/parser_ns.cpp b/engines/parallaction/parser_ns.cpp index 13c42b30e1..36b8640a60 100644 --- a/engines/parallaction/parser_ns.cpp +++ b/engines/parallaction/parser_ns.cpp @@ -534,7 +534,7 @@ DECLARE_INSTRUCTION_PARSER(endscript) { void ProgramParser_ns::parseRValue(ScriptVar &v, const char *str) { - if (isDigit(str[0]) || str[0] == '-') { + if (Common::isDigit(str[0]) || str[0] == '-') { v.setImmediate(atoi(str)); return; } diff --git a/engines/queen/talk.cpp b/engines/queen/talk.cpp index 72cb40bd7a..94bc105bb0 100644 --- a/engines/queen/talk.cpp +++ b/engines/queen/talk.cpp @@ -657,7 +657,7 @@ void Talk::stringAnimation(const SpeechParameters *parameters, int startFrame, i } else if (parameters->animation[0] == 'E') { // Talking head animation return; - } else if (!isDigit(parameters->animation[0])) { + } else if (!Common::isDigit(parameters->animation[0])) { debug(6, "Error in speak string animation: '%s'", parameters->animation); return; } else diff --git a/engines/saga/interface.cpp b/engines/saga/interface.cpp index dd99f5854a..a7bd7edbe5 100644 --- a/engines/saga/interface.cpp +++ b/engines/saga/interface.cpp @@ -1151,7 +1151,7 @@ void Interface::processStatusTextInput(Common::KeyState keystate) { if (_statusTextInputPos >= STATUS_TEXT_INPUT_MAX) { break; } - if (isAlnum(keystate.ascii) || (keystate.ascii == ' ')) { + if (Common::isAlnum(keystate.ascii) || (keystate.ascii == ' ')) { _statusTextInputString[_statusTextInputPos++] = keystate.ascii; _statusTextInputString[_statusTextInputPos] = 0; } @@ -1209,7 +1209,7 @@ bool Interface::processTextInput(Common::KeyState keystate) { _textInputPos = _textInputStringLength + 1; break; default: - if (((keystate.ascii <= 255) && (isAlnum(keystate.ascii))) || (keystate.ascii == ' ') || + if (((keystate.ascii <= 255) && (Common::isAlnum(keystate.ascii))) || (keystate.ascii == ' ') || (keystate.ascii == '-') || (keystate.ascii == '_')) { if (_textInputStringLength < save_title_size - 1) { ch[0] = keystate.ascii; diff --git a/engines/sci/engine/kstring.cpp b/engines/sci/engine/kstring.cpp index 735b1b2187..fe8d631497 100644 --- a/engines/sci/engine/kstring.cpp +++ b/engines/sci/engine/kstring.cpp @@ -147,7 +147,7 @@ reg_t kReadNumber(EngineState *s, int argc, reg_t *argv) { Common::String source_str = s->_segMan->getString(argv[0]); const char *source = source_str.c_str(); - while (isSpace(*source)) + while (Common::isSpace(*source)) source++; /* Skip whitespace */ int16 result = 0; @@ -246,14 +246,14 @@ reg_t kFormat(EngineState *s, int argc, reg_t *argv) { /* int writelength; -- unused atm */ - if (xfer && (isDigit(xfer) || xfer == '-' || xfer == '=')) { + if (xfer && (Common::isDigit(xfer) || xfer == '-' || xfer == '=')) { char *destp; if (xfer == '0') fillchar = '0'; else if (xfer == '=') align = ALIGN_CENTER; - else if (isDigit(xfer) || (xfer == '-')) + else if (Common::isDigit(xfer) || (xfer == '-')) source--; // Go to start of length argument strLength = strtol(source, &destp, 10); diff --git a/engines/sci/graphics/text16.cpp b/engines/sci/graphics/text16.cpp index bd89e237f0..7eaa0168b8 100644 --- a/engines/sci/graphics/text16.cpp +++ b/engines/sci/graphics/text16.cpp @@ -100,7 +100,7 @@ int16 GfxText16::CodeProcessing(const char *&text, GuiResourceId orgFontId, int1 // cX -> sets textColor to _textColors[X-1] curCode = textCode[0]; curCodeParm = textCode[1]; - if (isDigit(curCodeParm)) { + if (Common::isDigit(curCodeParm)) { curCodeParm -= '0'; } else { curCodeParm = -1; diff --git a/engines/sci/parser/vocabulary.cpp b/engines/sci/parser/vocabulary.cpp index 44e11d5b1f..e56158ecc1 100644 --- a/engines/sci/parser/vocabulary.cpp +++ b/engines/sci/parser/vocabulary.cpp @@ -534,7 +534,7 @@ bool Vocabulary::tokenizeString(ResultWordListList &retval, const char *sentence do { c = sentence[pos_in_sentence++]; - if (isAlnum(c) || (c == '-' && wordLen) || (c >= 0x80)) { + if (Common::isAlnum(c) || (c == '-' && wordLen) || (c >= 0x80)) { currentWord[wordLen] = lowerCaseMap[c]; ++wordLen; } diff --git a/engines/sci/resource.cpp b/engines/sci/resource.cpp index a95a7e9b35..50b3387159 100644 --- a/engines/sci/resource.cpp +++ b/engines/sci/resource.cpp @@ -1558,7 +1558,7 @@ void ResourceManager::readResourcePatches() { name = (*x)->getName(); // SCI1 scheme - if (isDigit(name[0])) { + if (Common::isDigit(name[0])) { char *end = 0; resourceNr = strtol(name.c_str(), &end, 10); bAdd = (*end == '.'); // Ensure the next character is the period @@ -1566,7 +1566,7 @@ void ResourceManager::readResourcePatches() { // SCI0 scheme int resname_len = strlen(szResType); if (scumm_strnicmp(name.c_str(), szResType, resname_len) == 0 - && !isAlpha(name[resname_len + 1])) { + && !Common::isAlpha(name[resname_len + 1])) { resourceNr = atoi(name.c_str() + resname_len + 1); bAdd = true; } diff --git a/engines/sci/resource_audio.cpp b/engines/sci/resource_audio.cpp index 4eb94cca69..684e1a1d0d 100644 --- a/engines/sci/resource_audio.cpp +++ b/engines/sci/resource_audio.cpp @@ -198,7 +198,7 @@ void ResourceManager::readWaveAudioPatches() { for (Common::ArchiveMemberList::const_iterator x = files.begin(); x != files.end(); ++x) { Common::String name = (*x)->getName(); - if (isDigit(name[0])) + if (Common::isDigit(name[0])) processWavePatch(ResourceId(kResourceTypeAudio, atoi(name.c_str())), name); } } diff --git a/engines/scumm/smush/smush_player.cpp b/engines/scumm/smush/smush_player.cpp index 36de5e470b..a53b808ba1 100644 --- a/engines/scumm/smush/smush_player.cpp +++ b/engines/scumm/smush/smush_player.cpp @@ -90,13 +90,13 @@ public: assert(def_end != NULL); char *id_end = def_end; - while (id_end >= def_start && !isDigit(*(id_end-1))) { + while (id_end >= def_start && !Common::isDigit(*(id_end-1))) { id_end--; } assert(id_end > def_start); char *id_start = id_end; - while (isDigit(*(id_start - 1))) { + while (Common::isDigit(*(id_start - 1))) { id_start--; } diff --git a/engines/scumm/string.cpp b/engines/scumm/string.cpp index 8a689fffa9..bcb45e2e92 100644 --- a/engines/scumm/string.cpp +++ b/engines/scumm/string.cpp @@ -1389,10 +1389,10 @@ void ScummEngine_v7::loadLanguageBundle() { } else if (*ptr == '#') { // Number of subtags following a given basetag. We don't need that // information so we just skip it - } else if (isDigit(*ptr)) { + } else if (Common::isDigit(*ptr)) { int idx = 0; // A number (up to three digits)... - while (isDigit(*ptr)) { + while (Common::isDigit(*ptr)) { idx = idx * 10 + (*ptr - '0'); ptr++; } @@ -1430,12 +1430,12 @@ void ScummEngine_v7::loadLanguageBundle() { for (i = 0; i < _languageIndexSize; i++) { // First 8 chars in the line give the string ID / 'tag' int j; - for (j = 0; j < 8 && !isSpace(*ptr); j++, ptr++) + for (j = 0; j < 8 && !Common::isSpace(*ptr); j++, ptr++) _languageIndex[i].tag[j] = toupper(*ptr); _languageIndex[i].tag[j] = 0; // After that follows a single space which we skip - assert(isSpace(*ptr)); + assert(Common::isSpace(*ptr)); ptr++; // Then comes the translated string: we record an offset to that. diff --git a/engines/sky/control.cpp b/engines/sky/control.cpp index 6363789d3a..036659a677 100644 --- a/engines/sky/control.cpp +++ b/engines/sky/control.cpp @@ -974,7 +974,7 @@ void Control::handleKeyPress(Common::KeyState kbd, Common::String &textBuf) { // Allow the key only if is a letter, a digit, or one of a selected // list of extra characters - if (isAlnum(kbd.ascii) || strchr(" ,().='-&+!?\"", kbd.ascii) != 0) { + if (Common::isAlnum(kbd.ascii) || strchr(" ,().='-&+!?\"", kbd.ascii) != 0) { textBuf += kbd.ascii; } } diff --git a/engines/sky/detection.cpp b/engines/sky/detection.cpp index 51f7330f09..2b702e99ea 100644 --- a/engines/sky/detection.cpp +++ b/engines/sky/detection.cpp @@ -206,7 +206,7 @@ SaveStateList SkyMetaEngine::listSaves(const char *target) const { // Extract the extension Common::String ext = file->c_str() + file->size() - 3; ext.toUppercase(); - if (isDigit(ext[0]) && isDigit(ext[1]) && isDigit(ext[2])) { + if (Common::isDigit(ext[0]) && Common::isDigit(ext[1]) && Common::isDigit(ext[2])) { int slotNum = atoi(ext.c_str()); Common::InSaveFile *in = saveFileMan->openForLoading(*file); if (in) { diff --git a/engines/sword1/animation.cpp b/engines/sword1/animation.cpp index a1c02c861a..e274e02cfd 100644 --- a/engines/sword1/animation.cpp +++ b/engines/sword1/animation.cpp @@ -115,7 +115,7 @@ bool MoviePlayer::load(uint32 id) { int startFrame = strtoul(ptr, const_cast<char **>(&ptr), 10); int endFrame = strtoul(ptr, const_cast<char **>(&ptr), 10); - while (*ptr && isSpace(*ptr)) + while (*ptr && Common::isSpace(*ptr)) ptr++; if (startFrame > endFrame) { @@ -132,7 +132,7 @@ bool MoviePlayer::load(uint32 id) { if (*ptr == '@') { ++ptr; color = strtoul(ptr, const_cast<char **>(&ptr), 10); - while (*ptr && isSpace(*ptr)) + while (*ptr && Common::isSpace(*ptr)) ptr++; } diff --git a/engines/sword25/util/lua/lbaselib.cpp b/engines/sword25/util/lua/lbaselib.cpp index 940ddcd4f9..659c61d956 100644 --- a/engines/sword25/util/lua/lbaselib.cpp +++ b/engines/sword25/util/lua/lbaselib.cpp @@ -59,7 +59,7 @@ static int luaB_tonumber (lua_State *L) { luaL_argcheck(L, 2 <= base && base <= 36, 2, "base out of range"); n = strtoul(s1, &s2, base); if (s1 != s2) { /* at least one valid digit? */ - while (isSpace(*s2)) s2++; /* skip trailing spaces */ + while (Common::isSpace(*s2)) s2++; /* skip trailing spaces */ if (*s2 == '\0') { /* no invalid trailing characters? */ lua_pushnumber(L, (lua_Number)n); return 1; diff --git a/engines/sword25/util/lua/llex.cpp b/engines/sword25/util/lua/llex.cpp index 6c7eb78060..f8433d3afa 100644 --- a/engines/sword25/util/lua/llex.cpp +++ b/engines/sword25/util/lua/llex.cpp @@ -186,7 +186,7 @@ static void trydecpoint (LexState *ls, SemInfo *seminfo) { sprintf(buf, "%.1f", 1.0); ls->decpoint = '.'; for (i = 0; buf[i]; i++) { - if (!isSpace(buf[i]) && !isDigit(buf[i])) { + if (!Common::isSpace(buf[i]) && !Common::isDigit(buf[i])) { ls->decpoint = buf[i]; break; } @@ -202,13 +202,13 @@ static void trydecpoint (LexState *ls, SemInfo *seminfo) { /* LUA_NUMBER */ static void read_numeral (LexState *ls, SemInfo *seminfo) { - lua_assert(isDigit(ls->current)); + lua_assert(Common::isDigit(ls->current)); do { save_and_next(ls); - } while (isDigit(ls->current) || ls->current == '.'); + } while (Common::isDigit(ls->current) || ls->current == '.'); if (check_next(ls, "Ee")) /* `E'? */ check_next(ls, "+-"); /* optional exponent sign */ - while (isAlnum(ls->current) || ls->current == '_') + while (Common::isAlnum(ls->current) || ls->current == '_') save_and_next(ls); save(ls, '\0'); buffreplace(ls, '.', ls->decpoint); /* follow locale for decimal point */ @@ -311,7 +311,7 @@ static void read_string (LexState *ls, int del, SemInfo *seminfo) { case '\r': save(ls, '\n'); inclinenumber(ls); continue; case EOZ: continue; /* will raise an error next loop */ default: { - if (!isDigit(ls->current)) + if (!Common::isDigit(ls->current)) save_and_next(ls); /* handles \\, \", \', and \? */ else { /* \xxx */ int i = 0; @@ -319,7 +319,7 @@ static void read_string (LexState *ls, int del, SemInfo *seminfo) { do { c = 10*c + (ls->current-'0'); next(ls); - } while (++i<3 && isDigit(ls->current)); + } while (++i<3 && Common::isDigit(ls->current)); if (c > UCHAR_MAX) luaX_lexerror(ls, "escape sequence too large", TK_STRING); save(ls, c); @@ -410,7 +410,7 @@ static int llex (LexState *ls, SemInfo *seminfo) { return TK_DOTS; /* ... */ else return TK_CONCAT; /* .. */ } - else if (!isDigit(ls->current)) return '.'; + else if (!Common::isDigit(ls->current)) return '.'; else { read_numeral(ls, seminfo); return TK_NUMBER; @@ -420,21 +420,21 @@ static int llex (LexState *ls, SemInfo *seminfo) { return TK_EOS; } default: { - if (isSpace(ls->current)) { + if (Common::isSpace(ls->current)) { lua_assert(!currIsNewline(ls)); next(ls); continue; } - else if (isDigit(ls->current)) { + else if (Common::isDigit(ls->current)) { read_numeral(ls, seminfo); return TK_NUMBER; } - else if (isAlpha(ls->current) || ls->current == '_') { + else if (Common::isAlpha(ls->current) || ls->current == '_') { /* identifier or reserved word */ TString *ts; do { save_and_next(ls); - } while (isAlnum(ls->current) || ls->current == '_'); + } while (Common::isAlnum(ls->current) || ls->current == '_'); ts = luaX_newstring(ls, luaZ_buffer(ls->buff), luaZ_bufflen(ls->buff)); if (ts->tsv.reserved > 0) /* reserved word? */ diff --git a/engines/sword25/util/lua/lobject.cpp b/engines/sword25/util/lua/lobject.cpp index 1890aaae68..1ffee52556 100644 --- a/engines/sword25/util/lua/lobject.cpp +++ b/engines/sword25/util/lua/lobject.cpp @@ -90,7 +90,7 @@ int luaO_str2d (const char *s, lua_Number *result) { if (*endptr == 'x' || *endptr == 'X') /* maybe an hexadecimal constant? */ *result = cast_num(strtoul(s, &endptr, 16)); if (*endptr == '\0') return 1; /* most common case */ - while (isSpace(*endptr)) endptr++; + while (Common::isSpace(*endptr)) endptr++; if (*endptr != '\0') return 0; /* invalid trailing characters? */ return 1; } diff --git a/graphics/font.cpp b/graphics/font.cpp index 7b48fe9999..3b00cd8568 100644 --- a/graphics/font.cpp +++ b/graphics/font.cpp @@ -184,7 +184,7 @@ int Font::wordWrapText(const Common::String &str, int maxWidth, Common::Array<Co // 'wrap point' where wrapping could take place. Everything that // came before it can now safely be added to the line, as we know // that it will not have to be wrapped. - if (isSpace(c)) { + if (Common::isSpace(c)) { line += tmpStr; lineWidth += tmpWidth; @@ -208,7 +208,7 @@ int Font::wordWrapText(const Common::String &str, int maxWidth, Common::Array<Co if (lineWidth > 0) { wrapper.add(line, lineWidth); // Trim left side - while (tmpStr.size() && isSpace(tmpStr[0])) { + while (tmpStr.size() && Common::isSpace(tmpStr[0])) { tmpStr.deleteChar(0); // This is not very fast, but it is the simplest way to // assure we do not mess something up because of kerning. diff --git a/gui/launcher.cpp b/gui/launcher.cpp index b23ef23511..d1e6569c56 100644 --- a/gui/launcher.cpp +++ b/gui/launcher.cpp @@ -90,7 +90,7 @@ public: protected: bool tryInsertChar(byte c, int pos) { - if (isAlnum(c) || c == '-' || c == '_') { + if (Common::isAlnum(c) || c == '-' || c == '_') { _editString.insertChar(c, pos); return true; } |