@@ -17,8 +17,10 @@ import Prelude
1717import Data.Algorithm.Diff
1818import qualified Data.ByteString as BS
1919import qualified Data.Text as T
20−import Data.List (isSuffixOf)
20+import Data.List (isSuffixOf, intercalate)
21+import Data.Maybe (catMaybes)
2122import System.Directory
23+import qualified System.Environment as Env
2224import System.Exit
2325import System.FilePath (joinPath, splitDirectories, takeDirectory, (</>))
2426import System.IO (hPutStr, stderr)
@@ -38,15 +40,15 @@ runTest :: String -- ^ Title of test
3840 -> String -- ^ Expected output
3941 -> TestTree
4042runTest testname pandocpath cmd inp norm = testCase testname $ do
43+ mldpath <- Env.lookupEnv "LD_LIBRARY_PATH"
44+ mdyldpath <- Env.lookupEnv "DYLD_LIBRARY_PATH"
4145 let findDynlibDir [] = Nothing
4246 findDynlibDir ("build":xs) = Just $ joinPath (reverse xs) </> "build"
4347 findDynlibDir (_:xs) = findDynlibDir xs
4448 let mbDynlibDir = findDynlibDir (reverse $ splitDirectories $
4549 takeDirectory $ takeWhile (/=' ') cmd)
46− let dynlibEnv = case mbDynlibDir of
47− Nothing -> []
48− Just d -> [("DYLD_LIBRARY_PATH", d),
49− ("LD_LIBRARY_PATH", d)]
50+ let dynlibEnv = [("DYLD_LIBRARY_PATH", intercalate ":" $ catMaybes [mbDynlibDir, mdyldpath])
51+ ,("LD_LIBRARY_PATH", intercalate ":" $ catMaybes [mbDynlibDir, mldpath])]
5052 let env' = dynlibEnv ++ [("PATH",takeDirectory pandocpath),("TMP","."),("LANG","en_US.UTF-8"),("HOME", "./"),("pandoc_datadir", "..")]
5153 let pr = (shell cmd){ env = Just env' }
5254 (ec, out', err') <- readCreateProcessWithExitCode pr inp