--- a/src/lib/INIReader.cpp Thu Nov 26 11:41:55 2020 +0100
+++ b/src/lib/INIReader.cpp Thu Nov 26 17:08:49 2020 +0100
@@ -196,10 +196,10 @@
while (input.good()) { // TODO: condition
{
+ INIContentHandler::WhitespaceEvent event;
+ event.lineNumber = lineNumber;
std::string whitespace = readAllWhitespace();
if (whitespace.size()) {
- INIContentHandler::WhitespaceEvent event;
- event.lineNumber = lineNumber;
event.eventNumber = ++eventNumber;
event.whitespace = whitespace;
for (INIContentHandler* handler : handlers) handler->whitespace(event);
@@ -216,11 +216,11 @@
} else if (ch == '[') {
if (inSection) for (INIContentHandler* handler : handlers) handler->endSection();
inSection = true;
- get();
- readAllWhitespace();
INIContentHandler::SectionStartEvent event;
event.lineNumber = lineNumber;
event.eventNumber = ++eventNumber;
+ get();
+ readAllWhitespace();
event.name = readTokenAndEatTerminator(']', "e, &found);
readSpacesAndTabs();
@@ -243,14 +243,18 @@
for (INIContentHandler* handler : handlers) handler->startSection(event);
} else if (isComment(ch)) {
- get();
- readSpacesAndTabs();
INIContentHandler::CommentEvent event;
event.lineNumber = lineNumber;
event.eventNumber = ++eventNumber;
+ get();
+ readSpacesAndTabs();
event.comment = readUntil('\n', &found);
for (INIContentHandler* handler : handlers) handler->comment(event);
} else {
+ INIContentHandler::EntryEvent event;
+ event.lineNumber = lineNumber;
+ event.eventNumber = ++eventNumber;
+
std::string fullKey = readToken('=', "e, &found);
if (!found) throw std::logic_error(std::string("missing = after key: '") + fullKey + "'");
if (!quote) fullKey = trim(fullKey);
@@ -265,9 +269,6 @@
std::string value = readToken('\n', "e, &found);
if (!quote) value = trim(value);
- INIContentHandler::EntryEvent event;
- event.lineNumber = lineNumber;
- event.eventNumber = ++eventNumber;
event.key = fullKey;
event.fullKey = fullKey;
event.value = value;