summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraarne <unknown>2005-08-17 14:13:55 +0000
committeraarne <unknown>2005-08-17 14:13:55 +0000
commitb235391d514986d56d8ce7067da0547fc403df2a (patch)
tree054b2f84a9c83c8170e477b0fc88ececf8269cdb
parentdfba9956ae4e0d1a485a165cc83bc382580a5513 (diff)
edit command ct pos1 pos2; fixed undo bug
-rw-r--r--src/GF/Shell/CommandL.hs6
-rw-r--r--src/GF/Shell/Commands.hs13
-rw-r--r--src/GF/UseGrammar/Session.hs7
3 files changed, 14 insertions, 12 deletions
diff --git a/src/GF/Shell/CommandL.hs b/src/GF/Shell/CommandL.hs
index 79f822c7f..3697c85db 100644
--- a/src/GF/Shell/CommandL.hs
+++ b/src/GF/Shell/CommandL.hs
@@ -5,9 +5,9 @@
-- Stability : (stable)
-- Portability : (portable)
--
--- > CVS $Date: 2005/08/17 14:43:50 $
+-- > CVS $Date: 2005/08/17 15:13:55 $
-- > CVS $Author: aarne $
--- > CVS $Revision: 1.20 $
+-- > CVS $Revision: 1.21 $
--
-- (Description of the module)
-----------------------------------------------------------------------------
@@ -110,7 +110,7 @@ pCommandMsg s = (m,pCommandWords $ words c) where
"'" : _ -> CTop
"+" : _ -> CLast
"mp" : p -> CMovePosition (readIntList (unwords p))
- "ct" : p -> CCopyPosition (readIntList (unwords p))
+ "ct" : p:q:_ -> CCopyPosition (readIntList p) (readIntList q)
"r" : f : _ -> CRefineWithAtom f
"w" : f:i : _ -> CWrapWithFun (f, readIntArg i)
"ch": f : _ -> CChangeHead f
diff --git a/src/GF/Shell/Commands.hs b/src/GF/Shell/Commands.hs
index 2bcf59dba..b1160d151 100644
--- a/src/GF/Shell/Commands.hs
+++ b/src/GF/Shell/Commands.hs
@@ -5,9 +5,9 @@
-- Stability : (stable)
-- Portability : (portable)
--
--- > CVS $Date: 2005/08/17 14:43:50 $
+-- > CVS $Date: 2005/08/17 15:13:55 $
-- > CVS $Author: aarne $
--- > CVS $Revision: 1.40 $
+-- > CVS $Revision: 1.41 $
--
-- temporary hacks for GF 2.0
--
@@ -76,7 +76,7 @@ data Command =
| CTop
| CLast
| CMovePosition [Int]
- | CCopyPosition [Int]
+ | CCopyPosition [Int] [Int]
| CRefineWithTree String
| CRefineWithClip Int
| CRefineWithAtom String
@@ -257,12 +257,13 @@ execECommand env c = case c of
in (case et of
Ok t -> refineByTrees der cgr [t] s
Bad m -> changeMsg [m] s)
- CCopyPosition p -> action2command $ \s -> do
+ CCopyPosition p q -> action2command $ \s -> do
s1 <- goPosition p s
let t = actTree s1
- let compat = actVal s1 == actVal s
+ s2 <- goPosition q s1
+ let compat = actVal s1 == actVal s2
if compat
- then refineWithTree der cgr t s
+ then refineWithTree der cgr t s2
else return s
CRefineParse str -> \s ->
diff --git a/src/GF/UseGrammar/Session.hs b/src/GF/UseGrammar/Session.hs
index 4271a0034..e54d0e3fb 100644
--- a/src/GF/UseGrammar/Session.hs
+++ b/src/GF/UseGrammar/Session.hs
@@ -5,9 +5,9 @@
-- Stability : (stable)
-- Portability : (portable)
--
--- > CVS $Date: 2005/06/11 20:27:05 $
+-- > CVS $Date: 2005/08/17 15:13:55 $
-- > CVS $Author: aarne $
--- > CVS $Revision: 1.11 $
+-- > CVS $Revision: 1.12 $
--
-- (Description of the module)
-----------------------------------------------------------------------------
@@ -88,6 +88,7 @@ removeClip n ss@((s,(ts,cb),(i,b)):_) = (s,(ts, drop n cb),(i,b)) : ss
changeMsg :: [String] -> ECommand
changeMsg m ((s,ts,(_,b)):ss) = (s,ts,(m,b)) : ss -- just change message
+changeMsg m _ = (s,ts,(m,b)) : [] where [(s,ts,(_,b))] = initSState
changeView :: ECommand
changeView ((s,ts,(m,(v,b))):ss) = (s,ts,(m,(v+1,b))) : ss -- toggle view
@@ -126,7 +127,7 @@ undoCommand :: Int -> ECommand
undoCommand n ss =
let k = length ss in
if k < n
- then changeMsg ["cannot go all the way back"] []
+ then changeMsg ["cannot go all the way back"] [last ss]
else changeMsg ["successful undo"] (drop n ss)
selectCand :: CGrammar -> Int -> ECommand