@@ -159,17 +159,16 @@ convertWithOpts opts args = do
159159 Just _ -> return $ optDataDir opts
160160
161161 -- assign reader and writer based on options and filenames
162− let readerName = case map toLower (optReader opts) of
163− [] -> defaultReaderName
162+ let readerName = case optReader opts of
163+ Nothing -> defaultReaderName
164164 (if any isURI sources
165165 then "html"
166166 else "markdown") sources
167− x -> x
167+ Just x -> map toLower x
168168
169− let writerName = case map toLower (optWriter opts) of
170− [] -> defaultWriterName outputFile
171− "epub2" -> "epub"
172− x -> x
169+ let writerName = case optWriter opts of
170+ Nothing -> defaultWriterName outputFile
171+ Just x -> map toLower x
173172 let format = takeWhile (`notElem` ['+','-'])
174173 $ takeFileName writerName -- in case path to lua script
175174
@@ -515,8 +514,8 @@ data Opt = Opt
515514 { optTabStop :: Int -- ^ Number of spaces per tab
516515 , optPreserveTabs :: Bool -- ^ Preserve tabs instead of converting to spaces
517516 , optStandalone :: Bool -- ^ Include header, footer
518− , optReader :: String -- ^ Reader format
519− , optWriter :: String -- ^ Writer format
517+ , optReader :: Maybe String -- ^ Reader format
518+ , optWriter :: Maybe String -- ^ Writer format
520519 , optParseRaw :: Bool -- ^ Parse unconvertable HTML and TeX
521520 , optTableOfContents :: Bool -- ^ Include table of contents
522521 , optBaseHeaderLevel :: Int -- ^ Base header level
@@ -580,8 +579,8 @@ defaultOpts = Opt
580579 { optTabStop = 4
581580 , optPreserveTabs = False
582581 , optStandalone = False
583− , optReader = "" -- null for default reader
584− , optWriter = "" -- null for default writer
582+ , optReader = Nothing
583+ , optWriter = Nothing
585584 , optParseRaw = False
586585 , optTableOfContents = False
587586 , optBaseHeaderLevel = 1
@@ -645,13 +644,13 @@ options :: [OptDescr (Opt -> IO Opt)]
645644options =
646645 [ Option "fr" ["from","read"]
647646 (ReqArg
648− (\arg opt -> return opt { optReader = arg })
647+ (\arg opt -> return opt { optReader = Just arg })
649648 "FORMAT")
650649 ""
651650
652651 , Option "tw" ["to","write"]
653652 (ReqArg
654− (\arg opt -> return opt { optWriter = arg })
653+ (\arg opt -> return opt { optWriter = Just arg })
655654 "FORMAT")
656655 ""
657656