summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Tardon <dtardon@redhat.com>2016-03-26 10:20:33 +0100
committerDavid Tardon <dtardon@redhat.com>2016-03-26 12:45:47 +0100
commitfba82b08952a5988ab73dcfb13523b47d1993676 (patch)
tree4cebbfeeca7a2bed4235ef490848a2ebdfc0bb9f
parent1d601f27be23ceca06ea6412b4059b6bca355e92 (diff)
detect T602 files
-rw-r--r--src/lib/SW602Document.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/lib/SW602Document.cpp b/src/lib/SW602Document.cpp
index eee2177..62fd91d 100644
--- a/src/lib/SW602Document.cpp
+++ b/src/lib/SW602Document.cpp
@@ -52,6 +52,14 @@ DetectionInfo::DetectionInfo()
template<class Header>
void fillDetectionInfo(const Header &header, DetectionInfo &info);
+void fillDetectionInfo(const T602Header &header, DetectionInfo &info)
+{
+ info.m_kind = SW602Document::KIND_TEXT;
+ info.m_type = SW602Document::TYPE_T602;
+ info.m_needsEncoding = header.encoding() == SW602Document::ENCODING_UNSPECIFIED;
+ info.m_confidence = SW602Document::CONFIDENCE_EXCELLENT;
+}
+
void fillDetectionInfo(const WinText602Header &/*header*/, DetectionInfo &info)
{
info.m_kind = SW602Document::KIND_TEXT;
@@ -111,6 +119,11 @@ SW602Document::Confidence SW602Document::isSupported(librevenge::RVNGInputStream
}
}
}
+ else
+ {
+ if (probe<T602Header>(*input, info))
+ return pass(info, kind, type, needsEncoding);
+ }
return CONFIDENCE_NONE;
}
@@ -151,6 +164,13 @@ SW602Document::Result SW602Document::parse(librevenge::RVNGInputStream *const in
switch (type)
{
+ case TYPE_T602:
+ {
+ const boost::shared_ptr<RVNGInputStream> input_(input);
+ T602Parser parser(input_);
+ parser.parse(document);
+ return RESULT_OK;
+ }
case TYPE_WINTEXT602:
{
if (!input->existsSubStream("CONTENTS"))