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