diff options
| author | fiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b> | 2009-01-31 17:13:41 +0000 | 
|---|---|---|
| committer | fiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b> | 2009-01-31 17:13:41 +0000 | 
| commit | ede0d805a03f1f9a6c5c4790980a7de56eea8945 (patch) | |
| tree | daed3f7c66cdbfc87cc44fc1a98f8c68aa70332d /src/Text | |
| parent | 5a9e3b744584baf13c11301d05ea66250e7b4ffb (diff) | |
| download | pandoc-ede0d805a03f1f9a6c5c4790980a7de56eea8945.tar.gz | |
Moved tabFilter to Shared.
Removed optPreserveTabs; instead, tabstop of 0 means preserve tabs.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@1532 788f1e2b-df1e-0410-8736-df70ead52e1b
Diffstat (limited to 'src/Text')
| -rw-r--r-- | src/Text/Pandoc/Shared.hs | 21 | 
1 files changed, 21 insertions, 0 deletions
diff --git a/src/Text/Pandoc/Shared.hs b/src/Text/Pandoc/Shared.hs index 6854e5ae6..13eab9bdb 100644 --- a/src/Text/Pandoc/Shared.hs +++ b/src/Text/Pandoc/Shared.hs @@ -49,6 +49,7 @@ module Text.Pandoc.Shared (                       wrapTeXIfNeeded,                       BlockWrapper (..),                       wrappedBlocksToDoc, +                     tabFilter,                       -- * Parsing                       (>>~),                       anyLine, @@ -285,6 +286,26 @@ wrappedBlocksToDoc = foldr addBlock empty             addBlock (Pad d) accum = d $$ text "" $$ accum             addBlock (Reg d) accum = d $$ accum +-- | Convert tabs to spaces and filter out DOS line endings. +-- Tabs will be preserved if tab stop is set to 0. +tabFilter :: Int       -- ^ Tab stop +          -> String    -- ^ Input +          -> String +tabFilter tabStop = +  let go _ [] = "" +      go _ ('\n':xs) = '\n' : go tabStop xs +      go _ ('\r':'\n':xs) = '\n' : go tabStop xs +      go _ ('\r':xs) = '\n' : go tabStop xs +      go spsToNextStop ('\t':xs) = +        if tabStop == 0 +           then '\t' : go tabStop xs +           else replicate spsToNextStop ' ' ++ go tabStop xs +      go 1 (x:xs) = +        x : go tabStop xs +      go spsToNextStop (x:xs) = +        x : go (spsToNextStop - 1) xs +  in  go tabStop +  --  -- Parsing  --  | 
