PDF: Better detection of a Cygwin environment.
Should close #5451. Unlike the earlier fix, this one doesn't spill out to stderr when 'uname -o' fails.
This commit is contained in:
parent
fb73b5c27b
commit
b6f9318c9b
1 changed files with 8 additions and 1 deletions
|
@ -42,6 +42,7 @@ import Text.Pandoc.Error (PandocError (PandocPDFProgramNotFoundError))
|
|||
import Text.Pandoc.MIME (getMimeType)
|
||||
import Text.Pandoc.Options (HTMLMathMethod (..), WriterOptions (..))
|
||||
import Text.Pandoc.Process (pipeProcess)
|
||||
import System.Process (readProcessWithExitCode)
|
||||
import Text.Pandoc.Shared (inDirectory, stringify)
|
||||
import qualified Text.Pandoc.UTF8 as UTF8
|
||||
import Text.Pandoc.Walk (walkM)
|
||||
|
@ -89,7 +90,13 @@ makePDF program pdfargs writer opts doc =
|
|||
-- user names (see #777)
|
||||
let withTempDir templ action = do
|
||||
tmp <- getTemporaryDirectory
|
||||
if '~' `elem` tmp
|
||||
uname <- E.catch
|
||||
(do (ec, sout, _) <- readProcessWithExitCode "uname" ["-o"] ""
|
||||
if ec == ExitSuccess
|
||||
then return $ Just sout
|
||||
else return Nothing)
|
||||
(\(_ :: E.SomeException) -> return Nothing)
|
||||
if '~' `elem` tmp || uname == Just "Cygwin" -- see #5451
|
||||
then withTempDirectory "." templ action
|
||||
else withSystemTempDirectory templ action
|
||||
(newCommonState, res) <- liftIO $ withTempDir "tex2pdf." $ \tmpdir' -> do
|
||||
|
|
Loading…
Add table
Reference in a new issue