From 02c579ff3c8256f2e3529f76a6f665a85fec084d Mon Sep 17 00:00:00 2001
From: John MacFarlane <jgm@berkeley.edu>
Date: Fri, 1 Nov 2019 21:48:30 -0700
Subject: [PATCH] Revert "ALlow multiple comma-separated files for
 `--defaults`."

This reverts commit e96f3fd813b3f8b73c3457ff6e9177e2a4a74164.
---
 MANUAL.txt                                |  5 ++---
 src/Text/Pandoc/App/CommandLineOptions.hs | 13 ++++++-------
 2 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/MANUAL.txt b/MANUAL.txt
index 92c439f32..de6c48446 100644
--- a/MANUAL.txt
+++ b/MANUAL.txt
@@ -356,12 +356,11 @@ header when requesting a document from a URL:
     `slidy`, `slideous`, or `s5` directory
     placed in this directory will override pandoc's normal defaults.
 
-`-d` *FILE*[,*FILE*,...], `--defaults=`*FILE*[,*FILE*,...]
+`-d` *FILE*, `--defaults=`*FILE*
 
 :   Specify a set of default option settings.  *FILE* is a YAML
     file whose fields correspond to command-line option
-    settings.  (Multiple files may be specified, separated by
-    commas.) All options for document conversion, including input
+    settings.  All options for document conversion, including input
     and output files, can be set using a defaults file.  The file will
     be searched for first in the working directory, and then in
     the `defaults` subdirectory of the user data directory
diff --git a/src/Text/Pandoc/App/CommandLineOptions.hs b/src/Text/Pandoc/App/CommandLineOptions.hs
index cf5fb51dc..019ec9220 100644
--- a/src/Text/Pandoc/App/CommandLineOptions.hs
+++ b/src/Text/Pandoc/App/CommandLineOptions.hs
@@ -64,7 +64,6 @@ import Data.Text (Text)
 import Text.DocTemplates (ToContext(toVal), Context(..))
 import qualified Text.Pandoc.UTF8 as UTF8
 import qualified Data.YAML as Y
-import Data.List.Split (splitWhen)
 
 parseOptions :: [OptDescr (Opt -> IO Opt)] -> Opt -> IO Opt
 parseOptions options' defaults = do
@@ -162,8 +161,11 @@ options =
 
     , Option "d" ["defaults"]
                  (ReqArg
-                  (\arg opt ->
-                      foldM applyDefaults opt (splitWhen (==',') arg)
+                  (\arg opt -> do
+                      let fp' = if null (takeExtension arg)
+                                   then addExtension arg "yaml"
+                                   else arg
+                      foldM applyDefaults opt [fp']
                   )
                   "FILE")
                 ""
@@ -980,10 +982,7 @@ splitField s =
 
 -- | Apply defaults from --defaults file.
 applyDefaults :: Opt -> FilePath -> IO Opt
-applyDefaults opt filepath = runIOorExplode $ do
-  let fp = if null (takeExtension filepath)
-              then addExtension filepath "yaml"
-              else filepath
+applyDefaults opt fp = runIOorExplode $ do
   setVerbosity $ optVerbosity opt
   dataDirs <- liftIO defaultUserDataDirs
   let fps = case optDataDir opt of