fixed issue 1, changed function type of readline
[CleanReadLine.git] / ReadLine.dcl
index d66e37e..f859e32 100644 (file)
@@ -1,13 +1,19 @@
 definition module ReadLine
 
+import StdEnv
+
+:: Maybe a = Nothing | Just a
 :: HistoryItem = {line :: String, timestamp :: String}
 :: HistoryState = {entries :: [HistoryItem], offset :: Int, flags :: Int}
 
+instance toString HistoryItem
+instance toString HistoryState
+
 //Non-library functions
 setReadLineName :: !String !*env -> !*env
 
 //Readline
-readLine :: !String !Bool !*env -> (!String, !*env)
+readLine :: !String !Bool !*env -> (!Maybe String, !*env)
 
 //Initializing History and State Management
 //Note that this HAS to be executed when you want to add entries when the
@@ -18,11 +24,21 @@ historySetHistoryState :: !HistoryState !*env -> !*env
 
 //History List Management
 addHistory :: !String !*env -> !*env
+addHistoryTime :: !String !*env -> !*env
+removeHistory :: !Int !*env -> (!HistoryItem, !*env)
+replaceHistoryEntry :: !Int !String !*env -> (!HistoryItem, !*env)
 clearHistory :: !*env -> !*env
-//TODO some more functions
+stifleHistory :: !Int !*env -> !*env
+unstifleHistory :: !*env -> !*env
+historyIsStifled :: !*env -> (!Int, !*env)
 
 //Information About the History List
-//TODO
+historyList :: !*env -> (![HistoryItem], !*env)
+whereHistory :: !*env -> (!Int, !*env)
+currentHistory :: !*env -> (!Maybe HistoryItem, !*env)
+historyGet :: !Int !*env -> (!Maybe HistoryItem, !*env)
+historyGetTime :: HistoryItem -> String
+historyTotalBytes :: !*env -> (!Int, !*env)
 
 //Moving Around the History List
 //TODO