[Scummvm-cvs-logs] scummvm master -> e6d1337e115d4a49d9103e33b1e75133d237e090

bluegr bluegr at gmail.com
Wed Oct 15 17:52:07 CEST 2014


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
e6d1337e11 SCI: Ignore most of the non-alphanumeric characters in the parser


Commit: e6d1337e115d4a49d9103e33b1e75133d237e090
    https://github.com/scummvm/scummvm/commit/e6d1337e115d4a49d9103e33b1e75133d237e090
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2014-10-15T18:51:14+03:00

Commit Message:
SCI: Ignore most of the non-alphanumeric characters in the parser

This is a more proper handling of non-alphanumeric characters (e.g.
apostrophes) in SCI games with a parser - bug #6608

Changed paths:
    engines/sci/parser/vocabulary.cpp



diff --git a/engines/sci/parser/vocabulary.cpp b/engines/sci/parser/vocabulary.cpp
index 3344b79..7fc02dc 100644
--- a/engines/sci/parser/vocabulary.cpp
+++ b/engines/sci/parser/vocabulary.cpp
@@ -535,9 +535,9 @@ bool Vocabulary::tokenizeString(ResultWordListList &retval, const char *sentence
 		if (Common::isAlnum(c) || (c == '-' && wordLen) || (c >= 0x80)) {
 			currentWord[wordLen] = lowerCaseMap[c];
 			++wordLen;
-		} else if (c == '\'' && wordLen && (sentence[pos_in_sentence] == 's' || sentence[pos_in_sentence] == 'S')) {
-			// Skip apostrophe-s at the end of the word, if it exists
-			pos_in_sentence++;	// skip the 's'
+		} else if (!Common::isAlpha(c) && c != '-' && c != ' ' && c != '\0' && (g_sci->getLanguage() != Common::JA_JPN)) {
+			// Skip non-alphanumeric characters in the string.
+			// Note: hyphens ('-'), spaces and string terminators are handled in the other branches.
 		} else {
 			// Continue on this word. Words may contain a '-', but may not start with
 			// one.






More information about the Scummvm-git-logs mailing list