From 648fed20a6cefa737f4c59756362d2617725c4a7 Mon Sep 17 00:00:00 2001 From: Jan Date: Sun, 28 Mar 2021 13:07:45 +0200 Subject: [PATCH] Fix zone definition parser adding spaces after field to field value --- .../Parsing/ZoneDefinition/ZoneDefinitionLexer.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ZoneCommon/Parsing/ZoneDefinition/ZoneDefinitionLexer.cpp b/src/ZoneCommon/Parsing/ZoneDefinition/ZoneDefinitionLexer.cpp index 4f489d32..fb81b579 100644 --- a/src/ZoneCommon/Parsing/ZoneDefinition/ZoneDefinitionLexer.cpp +++ b/src/ZoneCommon/Parsing/ZoneDefinition/ZoneDefinitionLexer.cpp @@ -14,6 +14,7 @@ std::string ZoneDefinitionLexer::ReadField() const auto startPos = m_current_line_offset - 1; const auto lineSize = currentLine.m_line.size(); + auto lastNonSpaceOffset = m_current_line_offset; while (m_current_line_offset < lineSize) { const auto c = currentLine.m_line[m_current_line_offset]; @@ -36,9 +37,12 @@ std::string ZoneDefinitionLexer::ReadField() break; m_current_line_offset++; + + if (!isspace(c)) + lastNonSpaceOffset = m_current_line_offset; } - return std::string(currentLine.m_line, startPos, m_current_line_offset - startPos); + return std::string(currentLine.m_line, startPos, lastNonSpaceOffset - startPos); } ZoneDefinitionParserValue ZoneDefinitionLexer::GetNextToken()