summaryrefslogtreecommitdiff
path: root/src/GF/Shell/PShell.hs
diff options
context:
space:
mode:
authoraarne <unknown>2004-03-24 15:09:06 +0000
committeraarne <unknown>2004-03-24 15:09:06 +0000
commitdc71ffcf5bae1f2b91467de273c71e7c3294acb3 (patch)
treea4e705bba717aa9f7421c000cfa5756d5eb8462b /src/GF/Shell/PShell.hs
parent31836c0da9ba7a716ee0480e6219d771da4999fa (diff)
Restoring old functionality
Diffstat (limited to 'src/GF/Shell/PShell.hs')
-rw-r--r--src/GF/Shell/PShell.hs12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/GF/Shell/PShell.hs b/src/GF/Shell/PShell.hs
index 666b5b681..f890a8dcf 100644
--- a/src/GF/Shell/PShell.hs
+++ b/src/GF/Shell/PShell.hs
@@ -35,7 +35,7 @@ pCommandLine s = pFirst (chks s) where
pCommandOpt :: [String] -> (Command, Options, [CommandArg])
pCommandOpt (w:ws) = let
(os, co) = getOptions "-" ws
- (comm, args) = pCommand (w:co)
+ (comm, args) = pCommand (abbrevCommand w:co)
in
(comm, os, args)
pCommandOpt s = (CVoid, noOptions, [AError "no parse"])
@@ -45,6 +45,15 @@ pInputString s = case s of
('"':_:_) -> [AString (init (tail s))]
_ -> [AError "illegal string"]
+-- command rl can be written remove_language etc.
+
+abbrevCommand :: String -> String
+abbrevCommand = hds . words . map u2sp where
+ u2sp c = if c=='_' then ' ' else c
+ hds s = case s of
+ [w@[_,_]] -> w
+ _ -> map head s
+
pCommand :: [String] -> (Command, [CommandArg])
pCommand ws = case ws of
@@ -81,6 +90,7 @@ pCommand ws = case ws of
"ps" : s -> aString CPutString s
"st" : s -> aTerm CShowTerm s
"!" : s -> aUnit (CSystemCommand (unwords s))
+ "sc" : s -> aUnit (CSystemCommand (unwords s))
"sf" : l : [] -> aUnit (CSetLocalFlag (language l))
"sf" : [] -> aUnit CSetFlag