Changeset 3943 for src/Pugs/Embed/Perl5.hs
- Timestamp:
- 05/27/05 03:15:20 (4 years ago)
- svk:copy_cache_prev:
- 5515
- Files:
-
- 1 modified
-
src/Pugs/Embed/Perl5.hs (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Embed/Perl5.hs
r3942 r3943 101 101 perl5_set_svref :: CString -> PugsVal -> IO () 102 102 foreign import ccall "perl5.h perl5_apply" 103 perl5_apply :: PerlSV -> PerlSV -> Ptr PerlSV -> P erlSV-> CInt -> IO PerlSV103 perl5_apply :: PerlSV -> PerlSV -> Ptr PerlSV -> PugsVal -> CInt -> IO PerlSV 104 104 foreign import ccall "perl5.h perl5_can" 105 105 perl5_can :: PerlSV -> CString -> IO Bool 106 106 foreign import ccall "perl.h perl5_eval" 107 perl5_eval :: CString -> P erlSV-> CInt -> IO PerlSV107 perl5_eval :: CString -> PugsVal -> CInt -> IO PerlSV 108 108 foreign import ccall "perl5.h perl5_init" 109 109 perl5_init :: CInt -> Ptr CString -> IO PerlInterpreter 110 111 foreign import ccall "pugsembed.h pugs_getenv" 112 pugs_getenv :: IO PugsVal 113 foreign import ccall "pugsembed.h pugs_setenv" 114 pugs_setenv :: PugsVal -> IO () 110 115 111 116 foreign import ccall "pugsembed.h pugs_SvToVal" … … 120 125 interp <- perl5_init 3 argv 121 126 case env of 122 Just val -> withCString "pugs::env" $ \name ->do127 Just val -> do 123 128 ptr <- fmap castStablePtrToPtr $ newStablePtr val 124 p erl5_set_svref nameptr129 pugs_setenv ptr 125 130 Nothing -> return () 126 131 return interp … … 157 162 vnumToSV int = perl5_newSVnv (realToFrac int) 158 163 159 callPerl5 :: PerlSV -> PerlSV -> [PerlSV] -> P erlSV-> CInt -> IO PerlSV164 callPerl5 :: PerlSV -> PerlSV -> [PerlSV] -> PugsVal -> CInt -> IO PerlSV 160 165 callPerl5 sub inv args env cxt = do 161 166 withArray0 nullPtr args $ \argv -> do … … 165 170 canPerl5 sv meth = withCString meth $ \cstr -> perl5_can sv cstr 166 171 167 evalPerl5 :: String -> P erlSV-> CInt -> IO PerlSV172 evalPerl5 :: String -> PugsVal -> CInt -> IO PerlSV 168 173 evalPerl5 str env cxt = withCString str $ \cstr -> perl5_eval cstr env cxt 169 174
