src/INICommand.cpp
branchv_0
changeset 16 db994a2ddffa
parent 15 0cf8bcb9c8fc
child 17 4b1612d20cb2
--- a/src/INICommand.cpp	Tue Nov 24 12:21:33 2020 +0100
+++ b/src/INICommand.cpp	Wed Nov 25 21:35:07 2020 +0100
@@ -28,9 +28,11 @@
 
 #include "INICommand.h"
 #include "lib/INIReader.h"
+#include "lib/BasicUnescapingINIHandler.h"
 
 using namespace std;
 using namespace relpipe::writer;
+using namespace relpipe::in::ini::lib;
 
 namespace relpipe {
 namespace in {
@@ -49,6 +51,7 @@
 
 		// TODO: configurable hierarchy delimiter
 		// TODO: escape delimiter characters that are part of the section names
+		// TODO: hierarchical sections should be returned as an array/sequence when such data type is supported in the Relational pipes format and API
 		for (int i = 0; i < currentSection.size(); i++) {
 			if (i > 0)result << "/";
 			result << currentSection[i];
@@ -166,7 +169,9 @@
 void INICommand::process(std::istream& input, std::shared_ptr<writer::RelationalWriter> writer, Configuration& configuration) {
 	FlatINIContentHandler handler(writer, configuration);
 	std::shared_ptr<INIReader> reader(INIReader::create(input));
-	reader->addHandler(&handler);
+	// TODO: configure the INIReader (features/properties) according to our Configuration (sub-keys etc.)
+	BasicUnescapingINIContentHandler unescapingHandler(handler, true);
+	reader->addHandler(&unescapingHandler);
 	reader->process();
 
 }