aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2016-01-06 10:44:56 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2016-01-06 10:44:56 -0800
commit363ecfebc32c6fe15d81634422e8607847f588fb (patch)
tree72e0c248d5fc8847457724764c7900df9a8a5e92
parent73d1175838ca3ab5cb70de92adf691a471602408 (diff)
downloadpandoc-363ecfebc32c6fe15d81634422e8607847f588fb.tar.gz
Make file globbing work on windows.
Windows cmd doesn't expand wildcards; the application has to do this. So on windows we use 'glob' to expand.
-rw-r--r--pandoc.cabal3
-rw-r--r--pandoc.hs9
2 files changed, 11 insertions, 1 deletions
diff --git a/pandoc.cabal b/pandoc.cabal
index e0b4f6021..c52b30d3f 100644
--- a/pandoc.cabal
+++ b/pandoc.cabal
@@ -300,7 +300,8 @@ Library
Build-Tools: hsb2hs >= 0.3.1
other-modules: Text.Pandoc.Data
if os(windows)
- Cpp-options: -D_WINDOWS
+ Cpp-options: -D_WINDOWS
+ Build-depends: Glob >= 0.7 && < 0.8
Ghc-Options: -rtsopts -Wall -fno-warn-unused-do-bind
Ghc-Prof-Options: -fprof-auto-exported -rtsopts
Default-Language: Haskell98
diff --git a/pandoc.hs b/pandoc.hs
index a4906382a..26558aa61 100644
--- a/pandoc.hs
+++ b/pandoc.hs
@@ -73,6 +73,9 @@ import Text.Pandoc.Readers.Txt2Tags (getT2TMeta)
import Paths_pandoc (getDataDir)
import Text.Printf (printf)
import Text.Pandoc.Error
+#ifdef _WINDOWS
+import System.FilePath.Glob (glob)
+#endif
type Transform = Pandoc -> Pandoc
@@ -1056,7 +1059,13 @@ main = do
-- thread option data structure through all supplied option actions
opts <- foldl (>>=) (return defaultOpts) actions
+
+-- on windows we need to do our own file globbing, since the shell doesn't.
+#ifdef _WINDOWS
+ mapM glob args >>= convertWithOpts opts . concat
+#else
convertWithOpts opts args
+#endif
convertWithOpts :: Opt -> [FilePath] -> IO ()
convertWithOpts opts args = do