summaryrefslogtreecommitdiff
path: root/src/GF/System
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2009-12-13 18:50:29 +0000
committerkrasimir <krasimir@chalmers.se>2009-12-13 18:50:29 +0000
commitf85232947e74ee7ef8c7b0ad2338212e7e68f1be (patch)
tree667b886a5e3a4b026a63d4e3597f32497d824761 /src/GF/System
parentd88a865faff59c98fc91556ff8700b10ee5f2df8 (diff)
reorganize the directories under src, and rescue the JavaScript interpreter from deprecated
Diffstat (limited to 'src/GF/System')
-rw-r--r--src/GF/System/NoReadline.hs33
-rw-r--r--src/GF/System/NoSignal.hs29
-rw-r--r--src/GF/System/Readline.hs35
-rw-r--r--src/GF/System/Signal.hs27
-rw-r--r--src/GF/System/UseEditline.hs36
-rw-r--r--src/GF/System/UseHaskeline.hs43
-rw-r--r--src/GF/System/UseReadline.hs36
-rw-r--r--src/GF/System/UseSignal.hs72
8 files changed, 0 insertions, 311 deletions
diff --git a/src/GF/System/NoReadline.hs b/src/GF/System/NoReadline.hs
deleted file mode 100644
index 1f1050e8c..000000000
--- a/src/GF/System/NoReadline.hs
+++ /dev/null
@@ -1,33 +0,0 @@
-----------------------------------------------------------------------
--- |
--- Module : GF.System.NoReadline
--- Maintainer : BB
--- Stability : (stable)
--- Portability : (portable)
---
--- > CVS $Date: 2005/05/10 15:04:01 $
--- > CVS $Author: bringert $
--- > CVS $Revision: 1.1 $
---
--- Do not use readline.
------------------------------------------------------------------------------
-
-module GF.System.NoReadline (fetchCommand, setCompletionFunction, filenameCompletionFunction) where
-
-import System.IO.Error (try)
-import System.IO (stdout,hFlush)
-
-fetchCommand :: String -> IO (String)
-fetchCommand s = do
- putStr s
- hFlush stdout
- res <- try getLine
- case res of
- Left e -> return "q"
- Right l -> return l
-
-setCompletionFunction :: Maybe (String -> String -> Int -> IO [String]) -> IO ()
-setCompletionFunction _ = return ()
-
-filenameCompletionFunction :: String -> IO [String]
-filenameCompletionFunction _ = return []
diff --git a/src/GF/System/NoSignal.hs b/src/GF/System/NoSignal.hs
deleted file mode 100644
index 5d82a431e..000000000
--- a/src/GF/System/NoSignal.hs
+++ /dev/null
@@ -1,29 +0,0 @@
-----------------------------------------------------------------------
--- |
--- Module : GF.System.NoSignal
--- Maintainer : Bjorn Bringert
--- Stability : (stability)
--- Portability : (portability)
---
--- > CVS $Date: 2005/11/11 11:12:50 $
--- > CVS $Author: bringert $
--- > CVS $Revision: 1.1 $
---
--- Dummy implementation of signal handling.
------------------------------------------------------------------------------
-
-module GF.System.NoSignal where
-
-import Control.Exception (Exception,catch)
-import Prelude hiding (catch)
-
-{-# NOINLINE runInterruptibly #-}
-runInterruptibly :: IO a -> IO (Either Exception a)
---runInterruptibly = fmap Right
-runInterruptibly a =
- p `catch` h
- where p = a >>= \x -> return $! Right $! x
- h e = return $ Left e
-
-blockInterrupt :: IO a -> IO a
-blockInterrupt = id
diff --git a/src/GF/System/Readline.hs b/src/GF/System/Readline.hs
deleted file mode 100644
index ee38cdc0b..000000000
--- a/src/GF/System/Readline.hs
+++ /dev/null
@@ -1,35 +0,0 @@
-{-# OPTIONS -cpp #-}
-
-----------------------------------------------------------------------
--- |
--- Module : GF.System.Readline
--- Maintainer : BB
--- Stability : (stable)
--- Portability : (portable)
---
--- > CVS $Date: 2005/05/10 15:04:01 $
--- > CVS $Author: bringert $
--- > CVS $Revision: 1.2 $
---
--- Uses the right readline library to read user input.
------------------------------------------------------------------------------
-
-module GF.System.Readline (fetchCommand, setCompletionFunction, filenameCompletionFunction) where
-
-#ifdef USE_HASKELINE
-
-import GF.System.UseHaskeline
-
-#elif USE_READLINE
-
-import GF.System.UseReadline
-
-#elif USE_EDITLINE
-
-import GF.System.UseEditline
-
-#else
-
-import GF.System.NoReadline
-
-#endif
diff --git a/src/GF/System/Signal.hs b/src/GF/System/Signal.hs
deleted file mode 100644
index fe8a12483..000000000
--- a/src/GF/System/Signal.hs
+++ /dev/null
@@ -1,27 +0,0 @@
-{-# OPTIONS -cpp #-}
-
-----------------------------------------------------------------------
--- |
--- Module : GF.System.Signal
--- Maintainer : Bjorn Bringert
--- Stability : (stability)
--- Portability : (portability)
---
--- > CVS $Date: 2005/11/11 11:12:50 $
--- > CVS $Author: bringert $
--- > CVS $Revision: 1.3 $
---
--- Import the right singal handling module.
------------------------------------------------------------------------------
-
-module GF.System.Signal (runInterruptibly,blockInterrupt) where
-
-#ifdef USE_INTERRUPT
-
-import GF.System.UseSignal (runInterruptibly,blockInterrupt)
-
-#else
-
-import GF.System.NoSignal (runInterruptibly,blockInterrupt)
-
-#endif
diff --git a/src/GF/System/UseEditline.hs b/src/GF/System/UseEditline.hs
deleted file mode 100644
index 6d51a1be3..000000000
--- a/src/GF/System/UseEditline.hs
+++ /dev/null
@@ -1,36 +0,0 @@
-----------------------------------------------------------------------
--- |
--- Module : GF.System.UseReadline
--- Maintainer : BB
--- Stability : (stable)
--- Portability : (portable)
---
--- > CVS $Date: 2005/05/10 15:04:01 $
--- > CVS $Author: bringert $
--- > CVS $Revision: 1.1 $
---
--- Use GNU readline
------------------------------------------------------------------------------
-
-module GF.System.UseEditline (fetchCommand, setCompletionFunction, filenameCompletionFunction) where
-
-import System.Console.Editline.Readline
-
-fetchCommand :: String -> IO (String)
-fetchCommand s = do
- setCompletionAppendCharacter Nothing
- --setBasicQuoteCharacters ""
- res <- readline s
- case res of
- Nothing -> return "q"
- Just s -> do addHistory s
- return s
-
-setCompletionFunction :: Maybe (String -> String -> Int -> IO [String]) -> IO ()
-setCompletionFunction Nothing = setCompletionEntryFunction Nothing
-setCompletionFunction (Just fn) = setCompletionEntryFunction (Just my_fn)
- where
- my_fn prefix = do
- s <- getLineBuffer
- p <- getPoint
- fn s prefix p
diff --git a/src/GF/System/UseHaskeline.hs b/src/GF/System/UseHaskeline.hs
deleted file mode 100644
index 140407439..000000000
--- a/src/GF/System/UseHaskeline.hs
+++ /dev/null
@@ -1,43 +0,0 @@
-----------------------------------------------------------------------
--- |
--- Module : GF.System.UseReadline
--- Maintainer : BB
--- Stability : (stable)
--- Portability : (portable)
---
--- > CVS $Date: 2005/05/10 15:04:01 $
--- > CVS $Author: bringert $
--- > CVS $Revision: 1.1 $
---
--- Use GNU readline
------------------------------------------------------------------------------
-
-module GF.System.UseHaskeline (fetchCommand, setCompletionFunction, filenameCompletionFunction) where
-
-import System.Console.Haskeline
-import System.Directory
-
-fetchCommand :: String -> IO (String)
-fetchCommand s = do
- settings <- getGFSettings
- res <- runInputT settings (getInputLine s)
- case res of
- Nothing -> return "q"
- Just s -> return s
-
-getGFSettings :: IO (Settings IO)
-getGFSettings = do
- path <- getAppUserDataDirectory "gf_history"
- return $
- Settings {
- complete = completeFilename,
- historyFile = Just path,
- autoAddHistory = True
- }
-
-
-setCompletionFunction :: Maybe (String -> String -> Int -> IO [String]) -> IO ()
-setCompletionFunction _ = return ()
-
-filenameCompletionFunction :: String -> IO [String]
-filenameCompletionFunction _ = return []
diff --git a/src/GF/System/UseReadline.hs b/src/GF/System/UseReadline.hs
deleted file mode 100644
index a0e051601..000000000
--- a/src/GF/System/UseReadline.hs
+++ /dev/null
@@ -1,36 +0,0 @@
-----------------------------------------------------------------------
--- |
--- Module : GF.System.UseReadline
--- Maintainer : BB
--- Stability : (stable)
--- Portability : (portable)
---
--- > CVS $Date: 2005/05/10 15:04:01 $
--- > CVS $Author: bringert $
--- > CVS $Revision: 1.1 $
---
--- Use GNU readline
------------------------------------------------------------------------------
-
-module GF.System.UseReadline (fetchCommand, setCompletionFunction, filenameCompletionFunction) where
-
-import System.Console.Readline
-
-fetchCommand :: String -> IO (String)
-fetchCommand s = do
- setCompletionAppendCharacter Nothing
- setBasicQuoteCharacters ""
- res <- readline s
- case res of
- Nothing -> return "q"
- Just s -> do addHistory s
- return s
-
-setCompletionFunction :: Maybe (String -> String -> Int -> IO [String]) -> IO ()
-setCompletionFunction Nothing = setCompletionEntryFunction Nothing
-setCompletionFunction (Just fn) = setCompletionEntryFunction (Just my_fn)
- where
- my_fn prefix = do
- s <- getLineBuffer
- p <- getPoint
- fn s prefix p
diff --git a/src/GF/System/UseSignal.hs b/src/GF/System/UseSignal.hs
deleted file mode 100644
index 20c70a568..000000000
--- a/src/GF/System/UseSignal.hs
+++ /dev/null
@@ -1,72 +0,0 @@
-{-# OPTIONS -cpp #-}
-----------------------------------------------------------------------
--- |
--- Module : GF.System.UseSignal
--- Maintainer : Bjorn Bringert
--- Stability : (stability)
--- Portability : (portability)
---
--- > CVS $Date: 2005/11/11 11:12:50 $
--- > CVS $Author: bringert $
--- > CVS $Revision: 1.1 $
---
--- Allows SIGINT (Ctrl-C) to interrupt computations.
------------------------------------------------------------------------------
-
-module GF.System.UseSignal where
-
-import Control.Concurrent (myThreadId, killThread)
-import Control.Exception (SomeException,catch)
-import Prelude hiding (catch)
-import System.IO
-
-#ifdef mingw32_HOST_OS
-import GHC.ConsoleHandler
-
-myInstallHandler handler = installHandler handler
-myCatch = Catch . const
-myIgnore = Ignore
-#else
-import System.Posix.Signals
-
-myInstallHandler handler = installHandler sigINT handler Nothing
-myCatch = Catch
-myIgnore = Ignore
-#endif
-
-{-# NOINLINE runInterruptibly #-}
-
--- | Run an IO action, and allow it to be interrupted
--- by a SIGINT to the current process. Returns
--- an exception if the process did not complete
--- normally.
--- NOTES:
--- * This will replace any existing SIGINT
--- handler during the action. After the computation
--- has completed the existing handler will be restored.
--- * If the IO action is lazy (e.g. using readFile,
--- unsafeInterleaveIO etc.) the lazy computation will
--- not be interruptible, as it will be performed
--- after the signal handler has been removed.
-runInterruptibly :: IO a -> IO (Either SomeException a)
-runInterruptibly a =
- do t <- myThreadId
- oldH <- myInstallHandler (myCatch (killThread t))
- x <- p `catch` h
- myInstallHandler oldH
- return x
- where p = a >>= \x -> return $! Right $! x
- h e = return $ Left e
-
--- | Like 'runInterruptibly', but always returns (), whether
--- the computation fails or not.
-runInterruptibly_ :: IO () -> IO ()
-runInterruptibly_ = fmap (either (const ()) id) . runInterruptibly
-
--- | Run an action with SIGINT blocked.
-blockInterrupt :: IO a -> IO a
-blockInterrupt a =
- do oldH <- myInstallHandler myIgnore
- x <- a
- myInstallHandler oldH
- return x