start event numbers with 1 v_0
authorFrantišek Kučera <franta-hg@frantovo.cz>
Thu, 26 Nov 2020 17:08:49 +0100
branchv_0
changeset 19 967f73af64a4
parent 18 a8c1381ef103
child 20 9187f0439ca9
start event numbers with 1
src/lib/INIReader.cpp
--- 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(']', &quote, &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('=', &quote, &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', &quote, &found);
 				if (!quote) value = trim(value);
 
-				INIContentHandler::EntryEvent event;
-				event.lineNumber = lineNumber;
-				event.eventNumber = ++eventNumber;
 				event.key = fullKey;
 				event.fullKey = fullKey;
 				event.value = value;