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