From b9eeba9aa2c8bc5c24f9c1fa5d05ba29e358276b Mon Sep 17 00:00:00 2001 From: fiddlosopher Date: Tue, 2 Jan 2007 07:37:42 +0000 Subject: Modified main 'pandoc' program so that if it is called with program name = 'hsmarkdown' (e.g. through a symlink, on a system with real symbolic links), it will translate markdown to HTML in strict mode and interpret all command-line options as arguments, like Markdown.pl. git-svn-id: https://pandoc.googlecode.com/svn/trunk@405 788f1e2b-df1e-0410-8736-df70ead52e1b --- src/Main.hs | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/src/Main.hs b/src/Main.hs index 3476a950b..534d99c95 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -342,7 +342,12 @@ defaultWriterName x = main = do args <- getArgs - let (actions, sources, errors) = getOpt Permute options args + prg <- getProgName + let compatMode = (prg == "hsmarkdown") + + let (actions, sources, errors) = if compatMode + then ([], args, []) + else getOpt Permute options args if (not (null errors)) then do @@ -353,8 +358,14 @@ main = do else return () + let defaultOpts' = if compatMode + then defaultOpts { optReader = "markdown" + , optWriter = "html" + , optStrict = True } + else defaultOpts + -- thread option data structure through all supplied option actions - opts <- foldl (>>=) (return defaultOpts) actions + opts <- foldl (>>=) (return defaultOpts') actions let Opt { optPreserveTabs = preserveTabs , optTabStop = tabStop @@ -408,11 +419,11 @@ main = do let addBlank str = str ++ "\n\n" let removeCRs str = filter (/= '\r') str -- remove DOS-style line endings let filter = tabFilter . addBlank . removeCRs - let startParserState = defaultParserState { stateParseRaw = parseRaw, - stateTabStop = tabStop, - stateStandalone = standalone && - (not strict), - stateStrict = strict } + let startParserState = + defaultParserState { stateParseRaw = parseRaw, + stateTabStop = tabStop, + stateStandalone = standalone && (not strict), + stateStrict = strict } let csslink = if (css == "") then "" else "