diff --git a/CHANGELOG.md b/CHANGELOG.md index 985c49c09..6e0f007fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -209,6 +209,7 @@ Bug #5313: Node properties of identical type are not applied in the correct order Bug #5326: Formatting issues in the settings.cfg Bug #5328: Skills aren't properly reset for dead actors + Bug #5345: Dopey Necromancy does not work due to a missing quote Feature #1774: Handle AvoidNode Feature #2229: Improve pathfinding AI Feature #3025: Analogue gamepad movement controls diff --git a/components/compiler/scanner.cpp b/components/compiler/scanner.cpp index 6d66b0493..83686e4c1 100644 --- a/components/compiler/scanner.cpp +++ b/components/compiler/scanner.cpp @@ -282,6 +282,8 @@ namespace Compiler if (!scanName (name)) return false; + else if(name.empty()) + return true; TokenLoc loc (mLoc); mLoc.mLiteral.clear(); @@ -368,6 +370,26 @@ namespace Compiler mErrorHandler.warning ("string contains newline character, make sure that it is intended", mLoc); else { + bool allWhitespace = true; + for (size_t i = 1; i < name.size(); i++) + { + //ignore comments + if (name[i] == ';') + break; + else if (name[i] != '\t' && name[i] != ' ' && name[i] != '\r') + { + allWhitespace = false; + break; + } + } + if (allWhitespace) + { + name.clear(); + mLoc.mLiteral.clear(); + mErrorHandler.warning ("unterminated empty string", mLoc); + return true; + } + error = true; mErrorHandler.error ("incomplete string or name", mLoc); break;