From 2cd049a1bf66f486e7110449854ceb253268fff7 Mon Sep 17 00:00:00 2001
From: mpickering <matthewtpickering@gmail.com>
Date: Wed, 20 Aug 2014 18:11:37 +0100
Subject: [PATCH] Txt2Tags reader: Header is now parsed only if standalone flag
 is set

---
 src/Text/Pandoc/Readers/Txt2Tags.hs | 5 ++++-
 tests/Tests/Old.hs                  | 2 +-
 tests/Tests/Readers/Txt2Tags.hs     | 2 +-
 tests/txt2tags.native               | 1 +
 4 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/Text/Pandoc/Readers/Txt2Tags.hs b/src/Text/Pandoc/Readers/Txt2Tags.hs
index 3a51b9d84..dc221568c 100644
--- a/src/Text/Pandoc/Readers/Txt2Tags.hs
+++ b/src/Text/Pandoc/Readers/Txt2Tags.hs
@@ -91,7 +91,10 @@ readTxt2TagsNoMacros = readTxt2Tags def
 
 parseT2T :: T2T Pandoc
 parseT2T = do
-  _ <- (Nothing <$ try blankline) <|> (Just <$> (count 3 anyLine))
+  -- Parse header if standalone flag is set
+  optional ((readerStandalone . stateOptions <$> getState) 
+            >>= guard 
+            >> (() <$ (try blankline) <|> () <$ (count 3 anyLine)))
   config <- manyTill setting (notFollowedBy setting)
   -- TODO: Handle settings better
   let settings = foldr (\(k,v) -> B.setMeta k (MetaString v)) nullMeta config
diff --git a/tests/Tests/Old.hs b/tests/Tests/Old.hs
index 300430e79..256855a1d 100644
--- a/tests/Tests/Old.hs
+++ b/tests/Tests/Old.hs
@@ -141,7 +141,7 @@ tests = [ testGroup "markdown"
             "haddock-reader.haddock" "haddock-reader.native"
           ]
         , testGroup "txt2tags"
-          [ test "reader" ["-r", "t2t", "-w", "native"]
+          [ test "reader" ["-r", "t2t", "-w", "native", "-s"]
               "txt2tags.t2t" "txt2tags.native" ]
         , testGroup "epub" [
             test "features" ["-r", "epub", "-w", "native"]
diff --git a/tests/Tests/Readers/Txt2Tags.hs b/tests/Tests/Readers/Txt2Tags.hs
index 4748cdc07..fd7c767e0 100644
--- a/tests/Tests/Readers/Txt2Tags.hs
+++ b/tests/Tests/Readers/Txt2Tags.hs
@@ -12,7 +12,7 @@ import Data.Monoid (mempty, mconcat)
 import Text.Pandoc.Readers.Txt2Tags
 
 t2t :: String -> Pandoc
-t2t s = readTxt2Tags (T2TMeta "date" "mtime" "in" "out") def ('\n' : s)
+t2t s = readTxt2Tags (T2TMeta "date" "mtime" "in" "out") def s
 
 infix 4 =:
 (=:) :: ToString c
diff --git a/tests/txt2tags.native b/tests/txt2tags.native
index 9f80d6d2c..5e741b609 100644
--- a/tests/txt2tags.native
+++ b/tests/txt2tags.native
@@ -1,3 +1,4 @@
+Pandoc (Meta {unMeta = fromList []})
 [Para [Str "This",Space,Str "document",Space,Str "describes",Space,Str "all",Space,Str "the",Space,Str "details",Space,Str "about",Space,Str "each",Space,Str "txt2tags",Space,Str "mark.",Space,Str "The",Space,Str "target",Space,Str "audience",Space,Str "are",Space,Strong [Str "experienced"],Space,Str "users.",Space,Str "You",Space,Str "may",Space,Str "find",Space,Str "it",Space,Str "useful",Space,Str "if",Space,Str "you",Space,Str "want",Space,Str "to",Space,Str "master",Space,Str "the",Space,Str "marks",Space,Str "or",Space,Str "solve",Space,Str "a",Space,Str "specific",Space,Str "problem",Space,Str "about",Space,Str "a",Space,Str "mark."]
 ,Para [Str "If",Space,Str "you",Space,Str "are",Space,Str "new",Space,Str "to",Space,Str "txt2tags",Space,Str "or",Space,Str "just",Space,Str "want",Space,Str "to",Space,Str "know",Space,Str "which",Space,Str "are",Space,Str "the",Space,Str "available",Space,Str "marks,",Space,Str "please",Space,Str "read",Space,Str "the",Space,Link [Str "Markup",Space,Str "Demo"] ("MARKUPDEMO",""),Str "."]
 ,Para [Str "Note",Space,Str "1:",Space,Str "This",Space,Str "document",Space,Str "is",Space,Str "generated",Space,Str "directly",Space,Str "from",Space,Str "the",Space,Str "txt2tags",Space,Str "test-suite.",Space,Str "All",Space,Str "the",Space,Str "rules",Space,Str "mentioned",Space,Str "here",Space,Str "are",Space,Str "100%",Space,Str "in",Space,Str "sync",Space,Str "with",Space,Str "the",Space,Str "current",Space,Str "program",Space,Str "code."]