1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-02-06 21:45:35 +00:00

double bug in script name handling workaround (Fixes #1730)

This commit is contained in:
Marc Zinnschlag 2015-01-03 13:54:46 +01:00
parent 9f6a2d00e8
commit bbbf431ae3
3 changed files with 8 additions and 7 deletions

View file

@ -112,6 +112,7 @@ namespace Compiler
scanner.scan (mScriptParser); scanner.scan (mScriptParser);
mState = EndNameState; mState = EndNameState;
scanner.allowNameStartingwithDigit();
return true; return true;
} }

View file

@ -19,6 +19,12 @@ bool Compiler::QuickFileParser::parseName (const std::string& name, const TokenL
bool Compiler::QuickFileParser::parseKeyword (int keyword, const TokenLoc& loc, Scanner& scanner) bool Compiler::QuickFileParser::parseKeyword (int keyword, const TokenLoc& loc, Scanner& scanner)
{ {
if (keyword==Scanner::K_begin)
{
scanner.allowNameStartingwithDigit();
return true;
}
if (keyword==Scanner::K_end) if (keyword==Scanner::K_end)
return false; return false;

View file

@ -314,12 +314,10 @@ namespace Compiler
bool Scanner::scanName (char c, std::string& name) bool Scanner::scanName (char c, std::string& name)
{ {
bool first = true;
bool error = false; bool error = false;
name.clear(); name.clear();
name += c;
putback (c);
while (get (c)) while (get (c))
{ {
@ -352,13 +350,9 @@ namespace Compiler
putback (c); putback (c);
break; break;
} }
if (first && (std::isdigit (c) || c=='`' || c=='-'))
error = true;
} }
name += c; name += c;
first = false;
} }
return !error; return !error;