From e6e29eab786a687223d42adc100a6a156b2b1807 Mon Sep 17 00:00:00 2001 From: aarne Date: Fri, 3 Jun 2005 21:44:36 +0000 Subject: editor command sequence --- src/GF/Shell/CommandL.hs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'src/GF/Shell/CommandL.hs') diff --git a/src/GF/Shell/CommandL.hs b/src/GF/Shell/CommandL.hs index 889af5b6f..62d3f9e87 100644 --- a/src/GF/Shell/CommandL.hs +++ b/src/GF/Shell/CommandL.hs @@ -5,9 +5,9 @@ -- Stability : (stable) -- Portability : (portable) -- --- > CVS $Date: 2005/04/21 16:23:19 $ --- > CVS $Author: bringert $ --- > CVS $Revision: 1.16 $ +-- > CVS $Date: 2005/06/03 22:44:36 $ +-- > CVS $Author: aarne $ +-- > CVS $Revision: 1.17 $ -- -- (Description of the module) ----------------------------------------------------------------------------- @@ -25,6 +25,7 @@ import GF.Compile.ShellState import GF.Infra.Option import GF.UseGrammar.Session import GF.Shell.Commands +import GF.Shell.PShell (wordsLits) import Data.Char import Data.List (intersperse) @@ -77,14 +78,18 @@ getCommand = do -- | decodes UTF8 if u==False, i.e. if the grammar does not use UTF8; -- used in the Java GUI, which always uses UTF8 -getCommandUTF :: Bool -> IO (String,Command) +getCommandUTF :: Bool -> IO [(String,Command)] getCommandUTF u = do s <- getLine - return $ pCommandMsg $ if u then s else decodeUTF8 s + return $ pCommandMsgs $ if u then s else decodeUTF8 s + +pCommandMsgs :: String -> [(String,Command)] +pCommandMsgs = map (pCommandMsg . unwords) . concatMap (chunks ";;" . words) . lines pCommand :: String -> Command pCommand = snd . pCommandMsg + pCommandMsg :: String -> (String,Command) pCommandMsg s = (m,pCommandWords $ words c) where (m,c) = case s of -- cgit v1.2.3