forked from hashirama/mdict-hs
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 60f4cc8216 | |||
| 5b67ca2164 | |||
| 7b64430472 |
2 changed files with 16 additions and 11 deletions
4
MDict.hs
4
MDict.hs
|
|
@ -75,8 +75,8 @@ isMDDFile path = map toLower (takeExtension path) == ".mdd"
|
|||
|
||||
-- FFI imports
|
||||
foreign import ccall "mdict_init" c_mdict_init :: CString -> IO (Ptr ())
|
||||
foreign import ccall "mdict_destory" c_mdict_destroy :: Ptr () -> IO CInt
|
||||
foreign import ccall "&mdict_destory" raw_mdict_destroy_finalizer :: FunPtr (Ptr () -> IO CInt)
|
||||
foreign import ccall "mdict_destroy" c_mdict_destroy :: Ptr () -> IO CInt
|
||||
foreign import ccall "&mdict_destroy" raw_mdict_destroy_finalizer :: FunPtr (Ptr () -> IO CInt)
|
||||
foreign import ccall "mdict_lookup" c_mdict_lookup :: Ptr () -> CString -> Ptr (Ptr CChar) -> IO ()
|
||||
foreign import ccall "mdict_atomic_lookup" c_mdict_atomic_lookup :: CString -> CString -> IO CString
|
||||
foreign import ccall "mdict_locate" c_mdict_locate :: Ptr () -> CString -> Ptr (Ptr CChar) -> CInt -> IO ()
|
||||
|
|
|
|||
|
|
@ -3,17 +3,22 @@
|
|||
import System.Environment (getArgs)
|
||||
import System.Exit (exitFailure)
|
||||
import Control.Monad (when)
|
||||
import MDict (lookupInCollection)
|
||||
import MDict
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
args <- getArgs
|
||||
when (length args < 2) $ do
|
||||
putStrLn "Usage: Main <dictionary_dir> <query_key>"
|
||||
exitFailure
|
||||
args <- getArgs
|
||||
when (length args < 2) $ do
|
||||
putStrLn "Usage: Main <dictionary_dir> <query_key>"
|
||||
exitFailure
|
||||
|
||||
let dictDir = args !! 0
|
||||
queryKey = args !! 1
|
||||
let dict = args !! 0
|
||||
queryKey = args !! 1
|
||||
|
||||
-- Process all files
|
||||
lookupInCollection dictDir queryKey
|
||||
res <- processDictionary dict queryKey
|
||||
html <- case res of
|
||||
Left err -> error err
|
||||
Right h -> return h
|
||||
|
||||
|
||||
putStrLn (html)
|
||||
|
|
|
|||
Loading…
Reference in a new issue