diff options
| author | krasimir <krasimir@chalmers.se> | 2009-12-13 18:50:29 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2009-12-13 18:50:29 +0000 |
| commit | f85232947e74ee7ef8c7b0ad2338212e7e68f1be (patch) | |
| tree | 667b886a5e3a4b026a63d4e3597f32497d824761 /src/GF/System | |
| parent | d88a865faff59c98fc91556ff8700b10ee5f2df8 (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.hs | 33 | ||||
| -rw-r--r-- | src/GF/System/NoSignal.hs | 29 | ||||
| -rw-r--r-- | src/GF/System/Readline.hs | 35 | ||||
| -rw-r--r-- | src/GF/System/Signal.hs | 27 | ||||
| -rw-r--r-- | src/GF/System/UseEditline.hs | 36 | ||||
| -rw-r--r-- | src/GF/System/UseHaskeline.hs | 43 | ||||
| -rw-r--r-- | src/GF/System/UseReadline.hs | 36 | ||||
| -rw-r--r-- | src/GF/System/UseSignal.hs | 72 |
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 |
