From 3899cd3c8fb3eccb73a43208e90d88cfcc64c41c Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Fri, 3 Apr 2015 22:24:35 +0200 Subject: Identifiers may not end with an underscore --- src/formats/osml/OsmlStreamParser.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/formats/osml/OsmlStreamParser.cpp') diff --git a/src/formats/osml/OsmlStreamParser.cpp b/src/formats/osml/OsmlStreamParser.cpp index daf800a..acad57b 100644 --- a/src/formats/osml/OsmlStreamParser.cpp +++ b/src/formats/osml/OsmlStreamParser.cpp @@ -441,7 +441,15 @@ Variant OsmlStreamParserImpl::parseIdentifier(size_t start, bool allowNSSep) // Abort if this character is not a valid identifer character if ((first && Utils::isIdentifierStartCharacter(c)) || (!first && Utils::isIdentifierCharacter(c))) { - identifier.push_back(c); + if (Utils::isIdentifierEndCharacter(c) || + (reader.fetchPeek(c2) && Utils::isIdentifierCharacter(c2))) { + identifier.push_back(c); + } else { + // Break if a non-identifier-end character is reached and the + // next character is a non-identifer character + reader.resetPeek(); + break; + } } else if (c == ':' && hasCharSinceNSSep && reader.fetchPeek(c2) && Utils::isIdentifierStartCharacter(c2)) { identifier.push_back(c); -- cgit v1.2.3