From 14d5c640f6bd989c08e1d9cee1787e33c353667c Mon Sep 17 00:00:00 2001
From: ilor <kailoran@gmail.com>
Date: Fri, 25 Feb 2011 10:45:36 +0100
Subject: [PATCH] Reader::set_option draft

---
 libcorpus2/io/reader.h       | 3 +++
 libcorpus2/io/xcesreader.cpp | 9 +++++++++
 libcorpus2/io/xcesreader.h   | 2 ++
 3 files changed, 14 insertions(+)

diff --git a/libcorpus2/io/reader.h b/libcorpus2/io/reader.h
index 15adbbb..c18a029 100644
--- a/libcorpus2/io/reader.h
+++ b/libcorpus2/io/reader.h
@@ -46,6 +46,9 @@ public:
 
 	virtual boost::shared_ptr<Chunk> get_next_chunk() = 0;
 
+	virtual void set_option(const std::string& /*option*/) {
+	}
+
 	const Tagset& tagset() {
 		return tagset_;
 	}
diff --git a/libcorpus2/io/xcesreader.cpp b/libcorpus2/io/xcesreader.cpp
index a33aeb4..8d71c35 100644
--- a/libcorpus2/io/xcesreader.cpp
+++ b/libcorpus2/io/xcesreader.cpp
@@ -89,4 +89,13 @@ XcesReaderImpl::~XcesReaderImpl()
 {
 }
 
+void XcesReader::set_option(const std::string& option)
+{
+	if (option == "loose") {
+		impl_->set_loose_tag_parsing(true);
+	} else if (option == "strict") {
+		impl_->set_loose_tag_parsing(false);
+	}
+}
+
 } /* end ns Corpus2 */
diff --git a/libcorpus2/io/xcesreader.h b/libcorpus2/io/xcesreader.h
index 004b62f..3260693 100644
--- a/libcorpus2/io/xcesreader.h
+++ b/libcorpus2/io/xcesreader.h
@@ -42,6 +42,8 @@ public:
 		return *is_;
 	}
 
+	void set_option(const std::string& option);
+
 protected:
 	void ensure_more();
 
-- 
GitLab