summaryrefslogtreecommitdiff
path: root/src/GF/Shell/CommandL.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/GF/Shell/CommandL.hs')
-rw-r--r--src/GF/Shell/CommandL.hs15
1 files changed, 10 insertions, 5 deletions
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