Changeset 21677 for src/Pugs/Embed/Perl5.hs
- Timestamp:
- 08/01/08 14:20:21 (5 months ago)
- Files:
-
- 1 modified
-
src/Pugs/Embed/Perl5.hs (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Embed/Perl5.hs
r21673 r21677 15 15 import qualified Data.ByteString.UTF8 as Str 16 16 17 evalPCR :: FilePath-> String -> String -> [(String, String)] -> IO String18 evalPCR pathmatch rule subrules = do19 (inp, out, err, pid) <- initPCR path17 evalPCR :: [FilePath] -> String -> String -> [(String, String)] -> IO String 18 evalPCR [path] match rule subrules = do 19 (inp, out, err, pid) <- initPCR $ head path 20 20 (`mapM` subrules) $ \(name, rule) -> do 21 21 let nameStr = escape name … … 357 357 nullEnv = unsafePerformIO (newStablePtr (error "undefined environment")) 358 358 359 evalPCR :: FilePath-> String -> String -> [(String, String)] -> IO String360 evalPCR path match rule subrules = do359 evalPCR :: [FilePath] -> String -> String -> [(String, String)] -> IO String 360 evalPCR paths match rule subrules = do 361 361 let bridgeMod = "Pugs::Runtime::Match::HsBridge" 362 362 bridgeFile = "Pugs/Runtime/Match/HsBridge.pm"; 363 inv <- evalPerl5 (unlines 363 incs = map (\p -> " unshift @INC, '"++p++"';") paths 364 inv <- evalPerl5 (unlines $ 364 365 [ "if (!$INC{'"++bridgeFile++"'}) {" 365 , " unshift @INC, '"++path++"';"366 ," eval q[require '"++bridgeFile++"'] or die $@;"366 ] ++ incs ++ 367 [ " eval q[require '"++bridgeFile++"'] or die $@;" 367 368 , "}" 368 369 , "'"++bridgeMod++"'"
