@@ -32,9 +32,9 @@ module Main where
3232import Text.Pandoc
3333import Text.Pandoc.UTF8
3434import Text.Pandoc.Shared ( joinWithSep, HTMLMathMethod (..) )
35−import Text.Regex ( mkRegex, matchRegex )
3635import System.Environment ( getArgs, getProgName, getEnvironment )
3736import System.Exit ( exitWith, ExitCode (..) )
37+import System.FilePath ( takeExtension )
3838import System.Console.GetOpt
3939import System.IO
4040import Data.Maybe ( fromMaybe )
@@ -338,48 +338,44 @@ usageMessage programName options = usageInfo
338338 options
339339
340340-- Determine default reader based on source file extensions
341−defaultReaderName :: [String] -> String
341+defaultReaderName :: [FilePath] -> String
342342defaultReaderName [] = "markdown"
343343defaultReaderName (x:xs) =
344− let x' = map toLower x in
345− case (matchRegex (mkRegex ".*\\.(.*)") x') of
346− Nothing -> defaultReaderName xs -- no extension
347− Just ["xhtml"] -> "html"
348− Just ["html"] -> "html"
349− Just ["htm"] -> "html"
350− Just ["tex"] -> "latex"
351− Just ["latex"] -> "latex"
352− Just ["ltx"] -> "latex"
353− Just ["rst"] -> "rst"
354− Just ["native"] -> "native"
355− Just _ -> "markdown"
344+ case takeExtension (map toLower x) of
345+ ".xhtml" -> "html"
346+ ".html" -> "html"
347+ ".htm" -> "html"
348+ ".tex" -> "latex"
349+ ".latex" -> "latex"
350+ ".ltx" -> "latex"
351+ ".rst" -> "rst"
352+ ".native" -> "native"
353+ _ -> defaultReaderName xs
356354
357355-- Determine default writer based on output file extension
358−defaultWriterName :: String -> String
356+defaultWriterName :: FilePath -> String
359357defaultWriterName "-" = "html" -- no output file
360358defaultWriterName x =
361− let x' = map toLower x in
362− case (matchRegex (mkRegex ".*\\.(.*)") x') of
363− Nothing -> "markdown" -- no extension
364− Just [""] -> "markdown" -- empty extension
365− Just ["tex"] -> "latex"
366− Just ["latex"] -> "latex"
367− Just ["ltx"] -> "latex"
368− Just ["context"] -> "context"
369− Just ["ctx"] -> "context"
370− Just ["rtf"] -> "rtf"
371− Just ["rst"] -> "rst"
372− Just ["s5"] -> "s5"
373− Just ["native"] -> "native"
374− Just ["txt"] -> "markdown"
375− Just ["text"] -> "markdown"
376− Just ["md"] -> "markdown"
377− Just ["markdown"] -> "markdown"
378− Just ["db"] -> "docbook"
379− Just ["xml"] -> "docbook"
380− Just ["sgml"] -> "docbook"
381− Just [[x]] | x `elem` ['1'..'9'] -> "man"
382− Just _ -> "html"
359+ case takeExtension (map toLower x) of
360+ "" -> "markdown" -- empty extension
361+ "tex" -> "latex"
362+ "latex" -> "latex"
363+ "ltx" -> "latex"
364+ "context" -> "context"
365+ "ctx" -> "context"
366+ "rtf" -> "rtf"
367+ "rst" -> "rst"
368+ "s5" -> "s5"
369+ "native" -> "native"
370+ "txt" -> "markdown"
371+ "text" -> "markdown"
372+ "md" -> "markdown"
373+ "markdown" -> "markdown"
374+ "db" -> "docbook"
375+ "xml" -> "docbook"
376+ "sgml" -> "docbook"
377+ [x] | x `elem` ['1'..'9'] -> "man"
378+ _ -> "html"
383379
384380main = do
385381