Merge pull request #1190 from eVITAERC/patch/1151-windows-texlive
PDF: Use / as path separators in latex input only
This commit is contained in:
commit
c3a2fc643c
1 changed files with 15 additions and 12 deletions
|
@ -56,11 +56,11 @@ import Data.List (intercalate)
|
|||
#endif
|
||||
|
||||
withTempDir :: String -> (FilePath -> IO a) -> IO a
|
||||
withTempDir f =
|
||||
withTempDir =
|
||||
#ifdef _WINDOWS
|
||||
withTempDirectory "." (f . changePathSeparators)
|
||||
withTempDirectory "."
|
||||
#else
|
||||
withSystemTempDirectory f
|
||||
withSystemTempDirectory
|
||||
#endif
|
||||
|
||||
#ifdef _WINDOWS
|
||||
|
@ -99,8 +99,7 @@ handleImage' baseURL tmpdir (Image ils (src,tit)) = do
|
|||
let ext = fromMaybe (takeExtension src) $
|
||||
extensionFromMimeType mime
|
||||
let basename = UTF8.toString $ B64.encode $ UTF8.fromString src
|
||||
-- note: we want / even on Windows, for TexLive:
|
||||
let fname = tmpdir ++ "/" ++ basename <.> ext
|
||||
let fname = tmpdir </> basename <.> ext
|
||||
BS.writeFile fname contents
|
||||
return $ Image ils (fname,tit)
|
||||
_ -> do
|
||||
|
@ -152,18 +151,22 @@ extractMsg log' = do
|
|||
runTeXProgram :: String -> Int -> FilePath -> String
|
||||
-> IO (ExitCode, ByteString, Maybe ByteString)
|
||||
runTeXProgram program runsLeft tmpDir source = do
|
||||
let file = tmpDir ++ "/input.tex"
|
||||
let file = tmpDir </> "input.tex"
|
||||
exists <- doesFileExist file
|
||||
unless exists $ UTF8.writeFile file source
|
||||
let programArgs = ["-halt-on-error", "-interaction", "nonstopmode",
|
||||
"-output-directory", tmpDir, file]
|
||||
env' <- getEnvironment
|
||||
#ifdef _WINDOWS
|
||||
let sep = ";"
|
||||
-- note: we want / even on Windows, for TexLive
|
||||
let tmpDir' = changePathSeparators tmpDir
|
||||
let file' = changePathSeparators file
|
||||
#else
|
||||
let sep = ":"
|
||||
let tmpDir' = tmpDir
|
||||
let file' = file
|
||||
#endif
|
||||
let texinputs = maybe (tmpDir ++ sep) ((tmpDir ++ sep) ++)
|
||||
let programArgs = ["-halt-on-error", "-interaction", "nonstopmode",
|
||||
"-output-directory", tmpDir', file']
|
||||
env' <- getEnvironment
|
||||
let sep = searchPathSeparator:[]
|
||||
let texinputs = maybe (tmpDir' ++ sep) ((tmpDir' ++ sep) ++)
|
||||
$ lookup "TEXINPUTS" env'
|
||||
let env'' = ("TEXINPUTS", texinputs) :
|
||||
[(k,v) | (k,v) <- env', k /= "TEXINPUTS"]
|
||||
|
|
Loading…
Reference in a new issue