aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b>2009-04-08 20:19:50 +0000
committerfiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b>2009-04-08 20:19:50 +0000
commit0395ba157eed757fa7b7e3dc278302c566902c22 (patch)
treef5854a6e55ac4483b6ec657af702014bc80ff768
parent750f9e9f4ab6d7ec7f3ea58c3e32aab33995ca89 (diff)
downloadpandoc-0395ba157eed757fa7b7e3dc278302c566902c22.tar.gz
Fixed regression with --preserveTabs.
Brought back optPreserveTabs. The trick of setting tabStop to 0 to mean "preserve tabs" had a bad side effect: strings of 0 spaces were interpreted as indentation. So, with --preserve-tabs, unindented paragraphs were treated as code. Resolves Issue #138. git-svn-id: https://pandoc.googlecode.com/svn/trunk@1559 788f1e2b-df1e-0410-8736-df70ead52e1b
-rw-r--r--src/pandoc.hs11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/pandoc.hs b/src/pandoc.hs
index bc0948709..3887a952f 100644
--- a/src/pandoc.hs
+++ b/src/pandoc.hs
@@ -131,6 +131,7 @@ writeDoc _ = prettyPandoc
-- | Data structure for command line options.
data Opt = Opt
{ optTabStop :: Int -- ^ Number of spaces per tab
+ , optPreserveTabs :: Bool -- ^ Preserve tabs instead of converting to spaces
, optStandalone :: Bool -- ^ Include header, footer
, optReader :: String -- ^ Reader format
, optWriter :: String -- ^ Writer format
@@ -166,6 +167,7 @@ data Opt = Opt
defaultOpts :: Opt
defaultOpts = Opt
{ optTabStop = 4
+ , optPreserveTabs = False
, optStandalone = False
, optReader = "" -- null for default reader
, optWriter = "" -- null for default writer
@@ -226,7 +228,7 @@ options =
, Option "p" ["preserve-tabs"]
(NoArg
- (\opt -> return opt { optTabStop = 0 }))
+ (\opt -> return opt { optPreserveTabs = True }))
"" -- "Preserve tabs instead of converting to spaces"
, Option "" ["tab-stop"]
@@ -507,7 +509,8 @@ main = do
-- thread option data structure through all supplied option actions
opts <- foldl (>>=) (return defaultOpts') actions
- let Opt { optTabStop = tabStop
+ let Opt { optTabStop = tabStop
+ , optPreserveTabs = preserveTabs
, optStandalone = standalone
, optReader = readerName
, optWriter = writerName
@@ -633,7 +636,9 @@ main = do
readSource "-" = getContents
readSource src = readFile src
- doc <- fmap (reader startParserState . tabFilter tabStop . intercalate "\n") (readSources sources)
+ let convertTabs = tabFilter (if preserveTabs then 0 else tabStop)
+
+ doc <- fmap (reader startParserState . convertTabs . intercalate "\n") (readSources sources)
doc' <- do
#ifdef _CITEPROC