hunk ./Hedi.cabal 2 -Version: 0.1 +Version: 0.1.1 hunk ./Hedi.cabal 17 - Build-Depends: base,mtl,parsec,regex-posix,readline,QuickCheck, + Build-Depends: editline,base,mtl,parsec,regex-posix,QuickCheck, hunk ./Hedi.cabal 21 - Build-Depends: base,mtl,parsec,regex-posix,readline,QuickCheck, + Build-Depends: editline,base,mtl,parsec,regex-posix,QuickCheck, hunk ./Main.hs 4 -import System.Console.Readline +import System.Console.Editline.Readline hunk ./Main.hs 30 +handleWith :: (IOError -> k) -> IO a -> ErrorT k IO a hunk ./Main.hs 32 +strictReadFile :: String -> IO String hunk ./docs/Editor.html 100 -> :: String :: String :: Maybe String :: Maybe String :: Maybe :: Maybe :: Maybe :: Maybe m ( m )) => ) => String String String String String String String String String String String String Monad m => Monad m => :: String -> m (Maybe String) :: String -> m (Maybe String) :: String -> m () :: String -> m () :: String -> m () :: String -> m () :: String -> m () :: String -> m () :: String -> ErrorT String m String :: String -> ErrorT String m String :: String -> String -> ErrorT String m () :: String -> String -> ErrorT String m () :: String -> ErrorT String m String :: String -> ErrorT String m String :: m FilePath :: m FilePath String String String String String String String String String String String String String String Int Int Int Int Int Int String String String String Char Char m = ErrorT m = ErrorT m => Maybe a -> m => Maybe a -> m => m => ( -> Maybe a -> -> Maybe a) -> m => String -> m => String -> m (Maybe String) m (Maybe String) m (Maybe String) m (Maybe String) m => String -> m => String -> m => String -> m => String -> m => String -> m => String -> -> m ( -> m ) :: String :: String :: Maybe String :: Maybe String :: Maybe :: Maybe :: Maybe :: Maybe Eq Eq Show Show m ( m )) => ) => String String String String String String String String String String String StringShow Show Error Error Monad m => Monad m => :: String -> m (Maybe String) :: String -> m (Maybe String):: String:: String:: String:: String:: String:: String:: String:: String-> ErrorT String m String-> ErrorT String m String:: String:: String-> String-> String-> ErrorT String m ()-> ErrorT String m () :: String -> ErrorT String m String :: String -> ErrorT String m String :: m FilePath :: m FilePathshow/hide Instances
SIO IO
SIO CState
String String String String String String String String String String String String String StringEq Eq Show Show Int Int Int Int Int Int String String String String Char CharShow Show Show Show Show Show Show Show m = ErrorT m = ErrorT => Maybe a=> Maybe a -> Maybe a -> Maybe a m => String -> m => String -> m (Maybe String) m (Maybe String) m (Maybe String) m (Maybe String) m => String -> m => String -> m => String -> m => String -> m => String -> m => String -> -> m (-> m ) version 2.0.0.0 version 2.3.0 a = a -> Maybe a a = a -> Maybe a :: Int :: Int :: Int :: Int :: [String] :: [String] :: String :: String :: [String] :: [String] :: Either [String] [String] :: Either [String] [String] :: [String] -> :: [String] -> -> Maybe [String] -> Maybe [String] :: Int -> :: Int -> -> Maybe [String] -> Maybe [String] -> Maybe String -> Maybe String :: Int -> :: Int -> :: [String] -> :: [String] -> :: [String] -> :: [String] -> :: Int -> :: Int -> :: Int -> :: Int -> :: Int -> :: Int -> :: Int -> :: Int -> -> Bool -> Bool a = a -> Maybe a a = a -> Maybe a :: Int :: Int :: Int :: IntShow Show :: [String] :: [String] :: String :: String :: [String] :: [String] :: Either [String] [String] :: Either [String] [String]Eq Eq Show Show :: [String] -> :: [String] -> -> Maybe [String] -> Maybe [String] :: Int -> :: Int -> -> Maybe [String] -> Maybe [String] -> Maybe String -> Maybe String :: Int -> :: Int -> :: [String] -> :: [String] -> :: [String] -> :: [String] -> :: Int -> :: Int -> :: Int -> :: Int -> :: Int -> :: Int -> :: Int -> :: Int -> -> Bool -> Bool version 2.0.0.0 version 2.3.0 m => Either String () -> m => Either String () -> m => String -> m => String -> m String -> m String -> m String m String m => Either String () -> m => Either String () -> => String=> String m String -> m String -> m String m String version 2.0.0.0 version 2.3.0 :: String :: String :: String :: String :: [String] :: [String] :: [String] :: [String] :: String :: String :: CharParser () :: CharParser () :: CharParser () [ :: CharParser () [ :: String -> GenParser Char () a -> a -> Maybe b -> Either String (Maybe b) :: String -> GenParser Char () a -> (a -> Maybe b) -> Either String (Maybe b) :: [[String]] -> String :: [[String]] -> String :: String -> Either String (Maybe String) :: String -> Either String (Maybe String) :: String -> String -> Either String (Maybe String) :: String -> String -> Either String (Maybe String) :: String :: String :: String :: String :: [String] :: [String] :: [String] :: [String] :: String :: StringShow Show :: CharParser () :: CharParser () :: CharParser () [ :: CharParser () [=> String=> String-> GenParser Char () a-> GenParser Char () a-> a -> Maybe b-> a -> Maybe b-> Either String (Maybe b)-> Either String (Maybe b) :: [[String]] -> String :: [[String]] -> String:: String:: String-> Either String (Maybe String)-> Either String (Maybe String):: String:: String-> String-> String-> Either String (Maybe String)-> Either String (Maybe String) version 2.0.0.0 version 2.3.0handleWith :: (IOError -> k) -> IO a -> ErrorT k IO astrictReadFile :: String -> IO String :: String -> ErrorT String IO String :: String -> ErrorT String IO String :: IO () :: IO () :: IO () :: IO ()handleWith :: (IOError -> k) -> IO a -> ErrorT k IO aSource
strictReadFile :: String -> IO StringSource
:: String -> ErrorTStringIOString

a SIO data made right for running the editor -

:: IO () :: IO () :: IO () :: IO () version 2.0.0.0 version 2.3.0 m (Int, m (Int, -> a -> -> (a -> m b -> m b) -> ( -> Maybe a -> -> Maybe a) -> -> -> ( -> Maybe -> Maybe -> ) -> -> a -> -> (a -> m b -> Int -> m b) -> (Int -> -> Maybe a -> -> Maybe a) -> -> Int -> -> (Int -> -> Maybe -> Maybe -> ) -> m (Int, m (Int, -> Maybe a -> Maybe a -> Maybe -> Maybe -> Int -> -> Int -> -> Maybe a -> Maybe a-> Int -> -> Int -> -> Maybe -> Maybe version 2.0.0.0 version 2.3.0 m Bool m Bool m => String -> Either String m => (String -> Either String -> ) -> ( m () -> m ()) -> m => String -> Either String m => (String -> Either String -> ) -> ( m () -> m ()) -> m [String] m [String] m Bool m Bool=> String -> Either String => String -> Either String => String -> Either String => String -> Either String m [String] m [String] version 2.0.0.0 version 2.3.0 = GenParser Char () = GenParser Char () :: String -> Either String :: String -> Either String = GenParser Char () = GenParser Char () :: String -> Either String :: String -> Either String version 2.0.0.0 version 2.3.0 :: Version

:: String -> ErrorT String IO String Source
:: Version :: IO FilePath
getBinDir :: IO FilePathSource
:: IO FilePath
getDataDir :: IO FilePathSource
:: FilePath -> IO FilePath :: FilePath -> IOFilePath version 2.0.0.0 version 2.3.0 = String = StringShow Show = State = State :: String -> :: String -> :: String -> :: String -> :: String -> :: String -> (Maybe String) (MaybeString) version 2.0.0.0 version 2.3.0 s m = StateT ( s m = StateT ( (Monad m, MonadState ( (Monad m, MonadState ( Monad m => Monad m => ( s m a s m a) s m Bool s m Bool s m Bool s m Bool :: Monad m => :: Monad m => :: Monad m => :: Monad m => Show s => Show (Show s => Show ( s m = StateT ( s m = StateT ( (Monad m, MonadState ( (Monad m, MonadState ( Monad m => Monad m => ( s m a s m a)Monad m => MonadState s (Monad m => MonadState s (MonadTrans (MonadTrans (Monad m => Monad (Monad m => Monad (Monad m => Functor (Monad m => Functor (MonadIO m => MonadIO (MonadIO m => MonadIO ( s m Bool s m Bool

the MonadState instance for the wrapper -

s m Bool s m Bool:: Monad m:: Monad m:: Monad m:: Monad m version 2.0.0.0 version 2.3.0TestTestTestTestTestTestEditorEditorTestTestUndoUndoEngineEngineHelperHelperEngineEngineHelperHelperEditorEditorEditorEditorEditorEditorEditorEditorMainMainEditorEditorHelperHelperEditorEditorEditorEditorEditorEditorEngineEngineEngineEngineHelperHelperEngineEngineEditorEditorEditorEditorEditorEditorUndoUndoEngineEngineMainMainHelperHelperUndoUndoEditorEditor version 2.0.0.0 version 2.3.0Haskell Code by HsColour +Editor.hs hunk ./docs/src/Engine.html 5 -Haskell Code by HsColour +Engine.hs hunk ./docs/src/Eval.html 5 -Haskell Code by HsColour +Eval.hs hunk ./docs/src/Helper.html 5 -Haskell Code by HsColour +Helper.hs hunk ./docs/src/Main.html 5 -Haskell Code by HsColour +Main.hs hunk ./docs/src/Main.html 12 -import System.Console.Readline +import System.Console.Editline.Readline hunk ./docs/src/Main.html 38 -handleWith h f = ErrorT $ Exc.catch (Right `fmap` f) (return . Left . h) -strictReadFile x = readFile x >>= \x -> Exc.evaluate (length x) >> return x - --- |launches an external program , catching output and errors, return on exit -externalCommand :: String -> ErrorT String IO String -externalCommand s = ErrorT $ do - (_,output,error,h) <- runInteractiveCommand s - status <- waitForProcess h - output <- hGetContents output - error <- hGetContents error - return $ case status of - ExitSuccess -> Right output - ExitFailure _ -> Left error - --- | the greetings -greetings :: IO () -greetings = putStrLn . render $ - text "Hedi command line editor. " <> ( - text "Version 0.1" $$ - text "Released under BSD licence." $$ - text "Copyright 2008 Paolo Veronelli" $$ - text "Homepage http://code.haskell.org/Hedi") - $$ text " " - $$ text "Type \"he\" for help or \"he command\" for help on command" - $$ text "Type \"CTRL-D\" to quit without saving" - -main :: IO () -main = do - run (liftIO greetings >> commandLoop parse eval) - (Stato empty "" Nothing Nothing Nothing) - return () - +handleWith :: (IOError -> k) -> IO a -> ErrorT k IO a +handleWith h f = ErrorT $ Exc.catch (Right `fmap` f) (return . Left . h) +strictReadFile :: String -> IO String +strictReadFile x = readFile x >>= \x -> Exc.evaluate (length x) >> return x + +-- |launches an external program , catching output and errors, return on exit +externalCommand :: String -> ErrorT String IO String +externalCommand s = ErrorT $ do + (_,output,error,h) <- runInteractiveCommand s + status <- waitForProcess h + output <- hGetContents output + error <- hGetContents error + return $ case status of + ExitSuccess -> Right output + ExitFailure _ -> Left error + +-- | the greetings +greetings :: IO () +greetings = putStrLn . render $ + text "Hedi command line editor. " <> ( + text "Version 0.1" $$ + text "Released under BSD licence." $$ + text "Copyright 2008 Paolo Veronelli" $$ + text "Homepage http://code.haskell.org/Hedi") + $$ text " " + $$ text "Type \"he\" for help or \"he command\" for help on command" + $$ text "Type \"CTRL-D\" to quit without saving" + +main :: IO () +main = do + run (liftIO greetings >> commandLoop parse eval) + (Stato empty "" Nothing Nothing Nothing) + return () + hunk ./docs/src/Offset.html 5 -Haskell Code by HsColour +Offset.hs hunk ./docs/src/Operation.html 5 -Haskell Code by HsColour +Operation.hs hunk ./docs/src/Parser.html 5 -Haskell Code by HsColour +Parser.hs hunk ./docs/src/Test.html 5 -Haskell Code by HsColour +Test.hs hunk ./docs/src/Undo.html 5 -Haskell Code by HsColour +Undo.hs hunk ./Main.hs 50 - text "Version 0.1" $$ + text "Version 0.1.1" $$ hunk ./docs/Editor.html 22 ->Hedi-0.1: Line oriented editorHedi-0.1.1: Line oriented editorHedi-0.1: Line oriented editorHedi-0.1.1: Line oriented editorHedi-0.1: Line oriented editorHedi-0.1.1: Line oriented editorHedi-0.1: Line oriented editorHedi-0.1.1: Line oriented editor :: CharParser () :: CharParser () :: CharParser () [ :: CharParser () [ -> GenParser -> GenParser :: CharParser () :: CharParser () :: CharParser () [ :: CharParser () [-> GenParser -> GenParser Hedi-0.1: Line oriented editorHedi-0.1.1: Line oriented editorHedi-0.1: Line oriented editorHedi-0.1.1: Line oriented editorHedi-0.1: Line oriented editorHedi-0.1.1: Line oriented editorHedi-0.1: Line oriented editorHedi-0.1.1: Line oriented editor = GenParser = GenParser = GenParser = GenParser Hedi-0.1: Line oriented editorHedi-0.1.1: Line oriented editorHedi-0.1: Line oriented editorHedi-0.1.1: Line oriented editorHedi-0.1: Line oriented editorHedi-0.1.1: Line oriented editorHedi-0.1: Line oriented editor (Index)Hedi-0.1.1: Line oriented editor (Index)Hedi-0.1: Line oriented editorHedi-0.1.1: Line oriented editorHedi-0.1: Line oriented editorHedi-0.1.1: Line oriented editorHedi-0.1: Line oriented editorHedi-0.1.1: Line oriented editorHedi-0.1: Line oriented editorHedi-0.1.1: Line oriented editor text "Version 0.1" $$ + text "Version 0.1.1" $$ hunk ./makefile 10 - && darcs push catenova.org:public_html/Hedi --all \

getLibexecDir :: IO FilePath