@@ -26,7 +26,7 @@ import Control.Monad
26import Control.Monad.Trans
26import Control.Monad.Trans
27import Data.Aeson.Encode.Pretty (encodePretty', Config(..), keyOrder,
27import Data.Aeson.Encode.Pretty (encodePretty', Config(..), keyOrder,
28 defConfig, Indent(..), NumberFormat(..))
28 defConfig, Indent(..), NumberFormat(..))
29−import Data.Char (toLower, toUpper)
29+import Data.Char (toLower)
30import Data.List (intercalate, sort)
30import Data.List (intercalate, sort)
31#ifdef _WINDOWS
31#ifdef _WINDOWS
32#if MIN_VERSION_base(4,12,0)
32#if MIN_VERSION_base(4,12,0)
@@ -143,10 +143,12 @@ options =
143 , Option "" ["wrap"]
143 , Option "" ["wrap"]
145 (\arg opt ->
145 (\arg opt ->
146− case safeRead ("Wrap" ++ uppercaseFirstLetter arg) of
146+ case arg of
147− Just o -> return opt { optWrapText = o }
147+ "auto" -> return opt{ optWrapText = WrapAuto }
148+ "none" -> return opt{ optWrapText = WrapNone }
149+ "preserve" -> return opt{ optWrapText = WrapPreserve }
148− Nothing -> E.throwIO $ PandocOptionError
150+ _ -> E.throwIO $ PandocOptionError
149− "--wrap must be auto, none, or preserve")
151+ "--wrap must be auto, none, or preserve")
150 "auto|none|preserve")
152 "auto|none|preserve")
151 "" -- "Option for wrapping text in output"
153 "" -- "Option for wrapping text in output"
@@ -209,15 +211,15 @@ options =
209 case safeRead arg of
211 case safeRead arg of
210 Just t | t >= 1 && t <= 6 ->
212 Just t | t >= 1 && t <= 6 ->
211 return opt { optTOCDepth = t }
213 return opt { optTOCDepth = t }
212− _ -> E.throwIO $ PandocOptionError
214+ _ -> E.throwIO $ PandocOptionError
213− "TOC level must be a number between 1 and 6")
215+ "TOC level must be a number 1-6")
214 "NUMBER")
216 "NUMBER")
215 "" -- "Number of levels to include in TOC"
217 "" -- "Number of levels to include in TOC"
217 , Option "N" ["number-sections"]
219 , Option "N" ["number-sections"]
219 (\opt -> return opt { optNumberSections = True }))
221 (\opt -> return opt { optNumberSections = True }))
220− "" -- "Number sections in LaTeX"
222+ "" -- "Number sections"
222 , Option "" ["number-offset"]
224 , Option "" ["number-offset"]
@@ -232,13 +234,19 @@ options =
233 , Option "" ["top-level-division"]
235 , Option "" ["top-level-division"]
235− (\arg opt -> do
237+ (\arg opt ->
236− let tldName = "TopLevel" ++ uppercaseFirstLetter arg
237− case safeRead tldName of
238+ case arg of
239+ "section" -> return opt{ optTopLevelDivision =
241+ "chapter" -> return opt{ optTopLevelDivision =
238− Just tlDiv -> return opt { optTopLevelDivision = tlDiv }
243+ "part" -> return opt{ optTopLevelDivision =
245+ "default" -> return opt{ optTopLevelDivision =
239− _ -> E.throwIO $ PandocOptionError
247+ _ -> E.throwIO $ PandocOptionError $
240− ("Top-level division must be " ++
248+ "Top-level division must be " ++
241− "section, chapter, part, or default"))
249+ "section, chapter, part, or default" )
242 "section|chapter|part")
250 "section|chapter|part")
243 "" -- "Use top-level division type in LaTeX, ConTeXt, DocBook"
251 "" -- "Use top-level division type in LaTeX, ConTeXt, DocBook"
@@ -945,10 +953,6 @@ handleUnrecognizedOption "-R" = handleUnrecognizedOption "--parse-raw"
945handleUnrecognizedOption x =
953handleUnrecognizedOption x =
946 (("Unknown option " ++ x ++ ".") :)
954 (("Unknown option " ++ x ++ ".") :)
948−uppercaseFirstLetter :: String -> String
949−uppercaseFirstLetter (c:cs) = toUpper c : cs
950−uppercaseFirstLetter [] = []
952readersNames :: [String]
956readersNames :: [String]
953readersNames = sort (map fst (readers :: [(String, Reader PandocIO)]))
957readersNames = sort (map fst (readers :: [(String, Reader PandocIO)]))