mirror of
https://github.com/jgm/pandoc.git
synced 2026-08-29 01:41:20 +08:00
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.
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
+18
-6
@@ -1,10 +1,12 @@
|
||||
```
|
||||
% pandoc -itslidy
|
||||
% pandoc -iNtslidy
|
||||
# One
|
||||
|
||||
- one
|
||||
- two
|
||||
^D
|
||||
<div class="slide section level6">
|
||||
|
||||
<div id="one" class="slide section level1" number="1">
|
||||
<h1><span class="header-section-number">1</span> One</h1>
|
||||
<ul class="incremental">
|
||||
<li>one</li>
|
||||
<li>two</li>
|
||||
@@ -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
|
||||
<p>hi</p>
|
||||
```
|
||||
|
||||
```
|
||||
@@ -34,3 +39,10 @@ hi
|
||||
<p>hi</p>
|
||||
```
|
||||
|
||||
```
|
||||
% pandoc --standalone=FALSE
|
||||
hi
|
||||
^D
|
||||
<p>hi</p>
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user