module Magic.Init(magicOpen, magicLoad, magicLoadDefault)
where
import Foreign.Ptr
import Foreign.C.String
import Magic.Types
import Foreign.C.Types
import Magic.Utils
import Magic.TypesLL
import Foreign.Marshal.Utils
magicOpen :: [MagicFlag] -> IO Magic
magicOpen mfl =
fromMagicPtr "magicOpen" (magic_open flags)
where flags = flaglist2int mfl
magicLoadDefault :: Magic -> IO ()
magicLoadDefault m = withMagicPtr m (\cmagic ->
checkIntError "magicLoadDefault" m $ magic_load cmagic nullPtr)
magicLoad :: Magic -> String -> IO ()
magicLoad m s = withMagicPtr m (\cmagic ->
withCString s (\cs ->
checkIntError "magicLoad" m $ magic_load cmagic cs))
foreign import ccall unsafe "magic.h magic_open"
magic_open :: CInt -> IO (Ptr CMagic)
foreign import ccall unsafe "magic.h magic_load"
magic_load :: Ptr CMagic -> CString -> IO CInt