Fix for FBX Files that do not have a Comma on a new line in a data block
authorlutz.hoeren <lutz.hoeren@redplant.de>
Thu, 17 Dec 2015 10:48:44 +0000 (11:48 +0100)
committerlutz.hoeren <lutz.hoeren@redplant.de>
Thu, 17 Dec 2015 10:48:44 +0000 (11:48 +0100)
code/FBXParser.cpp

index 0368d52..5961ac4 100644 (file)
@@ -125,13 +125,20 @@ Element::Element(const Token& key_token, Parser& parser)
 
         if (n->Type() == TokenType_DATA) {
             tokens.push_back(n);
-
+                       TokenPtr prev = n;
             n = parser.AdvanceToNextToken();
             if(!n) {
                 ParseError("unexpected end of file, expected bracket, comma or key",parser.LastToken());
             }
 
-            const TokenType ty = n->Type();
+                       const TokenType ty = n->Type();
+
+                       // some exporters are missing a comma on the next line
+                       if (ty == TokenType_DATA && prev->Type() == TokenType_DATA && (n->Line() == prev->Line() + 1)) {
+                               tokens.push_back(n);
+                               continue;
+                       }
+
             if (ty != TokenType_OPEN_BRACKET && ty != TokenType_CLOSE_BRACKET && ty != TokenType_COMMA && ty != TokenType_KEY) {
                 ParseError("unexpected token; expected bracket, comma or key",n);
             }