From ce2b023e13fcae31710da4fbb2ada2d0e8f5f4cc Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Wed, 19 Jul 2023 15:21:39 -0700 Subject: Refine command line option preprocessor and add tests for #8956. The substantive change here is the `-strue` will now work instead of being interpreted as `-s -true`. This is somewhat ad hoc, but I don't think we'll ever have an output format named `rue`, so it's probably okay. --- src/Text/Pandoc/App/CommandLineOptions.hs | 8 ++++++++ test/command/8956.md | 24 ++++++++++++++++++------ 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/Text/Pandoc/App/CommandLineOptions.hs b/src/Text/Pandoc/App/CommandLineOptions.hs index 22e824ade..e76344088 100644 --- a/src/Text/Pandoc/App/CommandLineOptions.hs +++ b/src/Text/Pandoc/App/CommandLineOptions.hs @@ -238,8 +238,16 @@ pdfEngines = nubOrd $ map snd engines preprocessArgs :: [String] -> [String] preprocessArgs [] = [] preprocessArgs ("--":xs) = "--" : xs -- a bare '--' ends option parsing +-- note that -strue is interpreted as -strue while +-- -stmarkdown is interpreted as -s -tmarkdown preprocessArgs (('-':c:d:cs):xs) | isShortBooleanOpt c + , case toLower <$> (d:cs) of + "true" -> True + "false" -> True + _ -> False + = ('-':c:d:cs) : preprocessArgs xs + | isShortBooleanOpt c , isShortOpt d = splitArg (c:d:cs) ++ preprocessArgs xs preprocessArgs (x:xs) = x : preprocessArgs xs diff --git a/test/command/8956.md b/test/command/8956.md index 1f78afd63..02ab292ae 100644 --- a/test/command/8956.md +++ b/test/command/8956.md @@ -1,10 +1,12 @@ ``` -% pandoc -itslidy +% pandoc -iNtslidy +# One + - one - two ^D -
- +
+

1 One

  • one
  • two
  • @@ -18,13 +20,16 @@ after tab ``` ^D +Pandoc + Meta { unMeta = fromList [] } + [ CodeBlock ( "" , [] , [] ) "\tafter tab" ] ```` ``` -% pandoc -strue +% pandoc -sfalse +hi ^D -2> Could not find data file templates/default.rue -=> 97 +

    hi

    ``` ``` @@ -34,3 +39,10 @@ hi

    hi

    ``` +``` +% pandoc --standalone=FALSE +hi +^D +

    hi

    +``` + -- cgit v1.2.3